[alt.sources] Psroff 2.0 Part 01 of 16

clewis@ecicrl.UUCP (Chris Lewis) (11/17/90)

Submitted-by: Chris Lewis <clewis@ecicrl.uucp>
Archive-name: psroff2.0/Part01

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then feed it
# into a shell via "sh file" or similar.  To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix@uunet.uu.net if you want that tool.
# Contents:  README MANIFEST adapters adapters/cmn.post.S fonts.lj
#   fonts.lj/S.22.pk.UU lib man tests utils utils/fonts utils/maps
#   widths widths/widthjt widths/widthlj widths/widthps
# Wrapped by clewis@ecicrl on Fri Nov 16 23:34:51 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
echo If this archive is complete, you will see the following message:
echo '          "shar: End of archive 1 (of 16)."'
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
  echo shar: Extracting \"'README'\" \(28990 characters\)
  sed "s/^X//" >'README' <<'END_OF_FILE'
X		PSROFF RELEASE 2.0 PL5 README 2.3 90/11/16
X
X			May 14, 1990
X			Chris Lewis
X
X	This alt.sources release is based at patch level 5 of psroff 2.0.
X
X	defs.h contains the level at which the sources have been patched.
X	Previously, psroff 2.0 was only available via ftp.  If you had the
X	ftp version, I suggest you completely replace it with this one,
X	or, you can simply patch yours to this level - contact me for
X	patch 5.
X
X	Please see the end of this file for my contact information
X	and for enrollment in the psroff mailing list.
X
XPlease read this document, especially any new patches (if any) near
Xthe end before reconfiguring.  If you have difficulties, read the
XTROUBLE file.  See STEP-BY-STEP INSTRUCTIONS near the end for precise
Xinstallation details.
X
XNormal UNIX troff only prints its output on WANG C/A/T Phototypesetters.
XThis package contains a generic interface between standard troff and
Xother types of printers.  The package has a driver for PostScript printers
X(Eg: Apple Laserwriters), a driver for HP LaserJet and DeskJet family
Xprinters (including incremental downloading of PK or SFP format fonts),
Xand Ditroff output options (tpscript driving Postscript printers,
Xjetroff driving HP Laserjets, xtroff driving X.11, xproof driving DMD
Xterminals, psdit etc. and more to come...)
X
XIn fact, this package can be used to, in effect, upgrade CAT troff
Xto be ditroff.  There are limitations, but you get what you pay for.
X
XApplicability:
X    - You must have CAT troff, *not* ditroff (eg: *not* DWB 1.? or 2.?).
X    - Printers:
X	- If you have a laserjet, you should be able to use this
X	  package directly.  Alternately, you can cause psroff
X	  to generate ditroff and drive jetroff with it.
X	- I believe the above comments also hold true for DeskJet
X	  printers.
X	- If you have a postscript printer use postscript output.
X	  Or, generate ditroff and use tpscript.  Mine's better,
X	  so there! ;-)
X	- If you have ditroff drivers (eg: dit2dvi etc.) you can
X	  configure psroff to drive them.
X	- If you have real ditroff, then use ditroff and throw psroff
X	  in the trash bucket.
X
XBeware of the use of any ditroff-only-isms.  Psroff doesn't support
Xfeatures in ditroff but not CAT troff (yet...).
X
XThis is a formal release.  There are probably rough edges however,
Xparticularly with fine-tuning width tables for specific printers and
Xsome of the more esoteric ditroff configurations.  Further, there
Xis some testing code for emulating ditroff drawing commands (see
Xcatconv).
X
XI encourage people to experiment with psroff (particularly the configuration
Xfiles) and PLEASE PLEASE PLEASE send me your changes so that I can
Xencorporate them into new releases and updates.
X
XThis package is currently in production at our site and has been so for
Xnearly two years (in various incarnations).  The previous version of
Xpsroff (version 1.0) was posted in comp.sources.unix in October 1989.
XThis version is a lot better.
X
XIf you send me your name and e-mail address, I'll put you on the psroff
Xmailing list, and you'll get express delivery of any small patches (see
XCONTACT INFO at end of this README).  Patches are also shipped out through
Xcomp.sources.unix and/or comp.sources.bugs, but the latency can be rather
Xhigh at times.  A current list of FTP-access sites can be obtained by
Xsending me mail.
X
XCredit/copyright where credit's due:
X
X 1) All code, except where noted below, is Copyright 1985, 1986, 1987,
X    1988, 1989, 1990 Chris Lewis, All Rights Reserved.
X
X    Permission to copy and further distribute is freely given provided
X    this copyright notice remains intact and that this software is not
X    sold for profit.
X
X 2) psdtwid and some of the character drawing and spacing
X    stuff (bracket font in ps.lib) is from ditroff2ps/tpscript:
X
X    Copyright:	1985, Stephen Frede, UNSW Australia
X	    Use it and copy it as much as you want, but don't pretend you
X	    wrote it, or sell it for profit.
X
X    Michael Rourke wrote some of the code that I borrowed.
X
X    Excellent stuff.
X
X 4) There are a few minor tweaks (specifically: headers on font width
X    tables, and BSDHACK) influenced by David MacKenzie's (djm@wam.umd.edu or
X    edf@rocky2.rockefeller.edu) and Sverre Froyen's (boulder!fesk!sverre,
X    sunpeaks!seri!fesk!sverre) troff2lj package.  No code was directly
X    borrowed, and no copyright appears on the sources consulted.
X    (troff2lj downloads SFP's, not incrementally, and doesn't support
X    PK files)
X
X 5) The S.*.pk font files that I've distributed with this release are
X    MATH8 encoded PK fonts, which are combination of several things:
X
X	- characters from Donald Knuth's cmr, cmsy, cmmi TeX fonts.
X	  These are public domain.
X
X	- Rick Richardson's cmtrf font (bracket building characters)
X	  from jetroff which Rick has graciously permitted me to
X	  distribute provided that they are only used with psroff.
X
X	- Each S.*.pk file was created by converting them to SFP's,
X	  merging them into another SFP (using Ronald Florence's makeS
X	  program), and converting them back to PK's using Rick
X	  Richardson's sfp2pk program (included in jetroff), and
X	  also available from the mims-iris font archives at waterloo.
X
X	  Sorry, I cannot distribute either program, but pk2sfp can
X	  be used to merge font files more generally than makeS.
X
X	  See LASERFONTS on how to build psroff fonts from TeX PK's.
X
X 6) The manual page for CAT troff format was written by Henry Spencer
X    at the University of Toronto.  Without which this stuff would
X    never have been written.
X
XRemarks:
X
X    - This was developed with a relatively old (eg: Lisa Xenix) troff, and
X      may be slightly incompatible with the latest versions of CAT troff.
X      See BSDHACK and FONT8/FONT4 in defs.h
X
X    - The PostScript driver is fully complete.  It uses the
X      built-in fonts on the AppleLaser.  A few characters not in
X      these fonts are faked by the invocation of drawing routines
X      defined in the file "ps.lib" (which is the definitions of things
X      needed by the driver).  Or the bracket font (also in ps.lib).
X      Eg: 1/2, 1/4, 3/4, circle, bell system logo and box are
X      constructed by PostScript subroutines and/or the bracket font.
X      The Bell System logo isn't really - try this:
X
X	    \s36\(bs\s0
X
X      The first person to correctly identify what it is (without reading
X      ps.lib) gets a pat on the back ;-)
X
X      The only two characters that don't exactly map properly are
X      left and right hand.  I use double arrows instead.  This seems
X      to be a relatively common convention.
X
X    - The ditroff driver is fully complete and should work flawlessly
X      provided that you use the proper width tables and you get the
X      troff font:character -> ditroff font:character translations
X      right.  You will probably want to take the ditroff width tables
X      that come with your ditroff backend and run them through
X      gfnttab (discussed later).
X
X    - Fonts:
X	- postscript driving - psroff uses what's on the printer - the
X	  configuration (ps.fonts) supplied corresponds to a subset
X	  of the AppleLaserwriter PLUS.  This should be satisfactory
X	  with all modern postscript printers (the original Laserwriter
X	  apparently is missing some of the fonts).  You may have
X	  problems with Helvetica Narrow fonts on printers like LN03's.
X
X	- ditroff driving - psroff uses whatever comes with the ditroff->
X	  printer converter.  Eg: with xtroff, psroff would use the
X	  font files that come with X windows.  With jetroff, psroff
X	  would use the font files that come with jetroff, etc.
X	  If you're driving a postscript printer via a ditroff backend,
X	  chances are that you're using fonts on the printer (eg: tpscript)
X	  and the "ps" widths will be satisfactory or can be manually
X	  tweaked slightly.
X
X	- HPLJ: to support downloading, you must obtain a set of font
X	  files that are sufficient for the sort of stuff you are doing.
X	  psroff has been designed to work with MATH8 encoded fonts
X	  (for the CAT S font), and ROMAN8 encoded fonts for all others
X	  (eg: R, I, B etc.).  Minimally, you should obtain from Hewlett
X	  Packard (or other sources) Roman, RomanItalic, and RomanBold
X	  all in ROMAN8 encodings, in the following point sizes:
X
X	     6 7 8 9 10 11 12 14 16 18 20 22 24 28 36
X
X	  From most sources these will be in HP "SFP" format.  I've
X	  included with psroff a set of PK (TeX) format font files
X	  for the S font in all of the sizes listed above.  These
X	  "S" fonts are designed to be as close to HP MATH8 as possible.
X
X	  Psroff supports both PK and SFP format font files.
X	  Normal PK font files (eg: that come with TeX) do not have
X	  anything close to the same encoding as HP.  The S PKs I supply
X	  are specially reordered (actually a merge of four PKs) to
X	  reflect MATH8 encoding.  You can also use TeX PK fonts
X	  directly (after a name change to reflect psroff's file
X	  naming conventions) for the non-S fonts.  cmr, cmit, and
X	  cmb can be used for Roman, Italic and Bold respectively.
X	  *BEWARE*, there are a *lot* of characters missing or
X	  out-and-out wrong in Knuth's standard PK files (relative
X	  to ROMAN8 ordering).  Particularly box-drawing characters.
X	  I've included a couple R, I and B PK files that can be used
X	  to have a bit of fun until you have better font files.
X	  pk2sfp gives a method of merging PK files - see testmerge
X	  entry in utils/Makefile.  R.10.pk, I.10.pk and B.10.pk
X	  in the lj.fonts directory were created this way.
X
X	  From Hewlett Packard, SFP's usually come on DOS diskettes
X	  that can be "cat"'ed to the printer.  These are what you want.
X	  Just remember to do BINARY copies from the floppies...
X
X	  I got this mail message from Ronald Florence about HPLJ fonts:
X
X		> May 14, 1990 (or thereabouts)
X
X		> I just received a notice in the mail from HP, announcing
X		> that they are about to discontinue the following soft
X		> fonts:
X
X		> 	TmsRmn/Helv	Roman 8		(33412AD)
X		> 	TmsRmn/Helv	Roman 8		(33412AF)
X		> 	TmsRmn/Helv	Ascii		(33412AE)
X
X		> Together, the first two sets provide Times Roman and
X		> Helvetica SFP fonts, including bold and italics, from
X		> 6 to 30 points.  They can be ordered from HP Direct
X		> (800/538-8787).
X
X	  These are the fonts that Ronald has been using and they work
X	  quite well.  Other soft fonts will probably work, but you
X	  may have to tweak the translation tables.
X
X	  So, order yours today...  (No, neither of us are in the
X	  employ of HP).  You may also be able to get good SFP's
X	  from the font archive at Waterloo.
X
X	  Alternately, if you have TeX fonts, the file LASERFONTS
X	  describes how to make fonts compatible with psroff.
X
X	  Software is supplied (utils and widths directories) to
X	  extract width information from PK and SFP font files and
X	  is built into the makefiles.
X
X    - The width tables supplied (widths/widthps) are in ditroff
X      makedev-input-format (ASCII ditroff width tables).  I've
X      specified them in ditroff format because it's easier to manipulate
X      than CAT troff ft?? or ft??.c files.  dit2catwid/gfnttab convert
X      these width files into ft?? files.  Further, if you're going to
X      use a ditroff backend (tpscript, xtroff etc.) you'll probably
X      need to feed them through the "makedev" utility so that the backend
X      can understand the width tables.  I do not supply a makedev, but
X      one has been posted, and one (written by Duane Hesser, dhh@teltone.com)
X      is included with jetroff.  pk2ditwid takes PK and SFP files and
X      produces widthtables compatible with gfnttab (but not necessarily
X      with makedev).
X
X    - Width tables: Postscript:
X      (<printercommand> is how you sent output to your
X      postscript printer.  You might use "lp -dlaserwriter".)
X      These are in the utils subdirectory:
X
X	showfont: If you type:
X			    showfont <fontname> | <printercommand>
X		  (eg: showfont Times-Roman) this will dump the entire
X		  Postscript Times-Roman font (plus some constructions
X		  that troff2ps uses) in a table.  Each character is
X		  in a box, along with several numbers.  The number
X		  in the center at the bottom of the box is the width
X		  in CAT scaling (size of 6 point character in 1/432's).
X		  The ditroff width tables are the size of a 10 point
X		  character, by default in 1/300's, but can be changed
X		  by a resolution directive in a DESC file (eg: widthps
X		  is in 1/720's).
X
X	dit2catwid.c: takes ditroff like font tables and converts them
X		  to CAT codes suitable for (at least) Xenix troff.
X		  (some attempt has been made to make it work for
X		  systems that need a.out.h headers on their width
X		  tables).  See the gfnttab script to see how it's
X		  used.
X
X	gfnttab:  Used to run dit2catwid to compile the width tables
X		  and place them in /usr/lib/font/<printer>/ft??.
X		  see lib/psrofflib.S
X
X	psdtwid:  fire it off to your Postscript printer, and it
X		  will send back a shar file containing ditroff
X		  style char tables.  (Neat - thanks Michael!)
X
X		  usage:
X			psdtwid | <printercommand>
X
X	widths/widthps/*:   width tables for postscript and ditroff driving
X		  postscript.  (Most from tpscript (thanks Michael), but
X		  some generated here with psdtwid)
X	widths/width*/*:   other width tables.
X
X    - Width tables: ditroff backends: (eg: jetroff, xtroff, psdit etc.)
X	- install the backends *first*.
X	- Find the DESC/R/S/I etc. files that come with the backend, or
X	  are generated by installing the backend (eg: jetroff's makefont
X	  stuff).
X	- Copy these files to the appropriate widths/width<xx> subdirectory.
X	  Notes:
X		- I've used "jt" for jetroff, the jt.fonts file is already
X		  at least partially set up.
X		- "ps" is for ditroff->postscript (tpscript) and direct
X		  postscript driving and these width files are supplied.
X		  And would probably work with other ditroff->postscript
X		  converters except for possible character mapping changes
X		  (see jt.fonts).
X	- Make in the widths directory will build the ft* files that you
X	  need, and make install will install them in the proper places.
X	  (normally /usr/lib/font/<xx>/ft*).  These are also done by
X	  top level make invocations.
X	- Some ditroff backends (jetroff f'r instance) need to be able
X	  to read the "makedev compiled" font files.  For which you need
X	  makedev (makedev is part of ditroff, but a PD version was
X	  posted to the net sometime ago and a copy is included in the
X	  jetroff release).
X
X    - Width tables: HPLJ.  See the installation instructions below.
X
X    - There is some code to allow the sending of arbitrary commands to
X      the driver - the ".sR" macro.  This works well unless you're using
X      the ".MT" macro in MM.  sR directives before the ".MT" will
X      confuse MM.  See the manual page for psroff.1 for details on
X      .sR.  Further, ".tm" has been redefined to make use of the
X      .sR facility.
X
X    - psroff has 8-font troff support, but:
X
X	    a) it's never been tested.
X	    b) I'm no longer convinced that the cat.5 man page is
X	       correct on how the decoding works.
X
X    - psroff has BSDHACK support (one of the tilt opcodes being
X      replaced by an opcode to multiply the next vertical motion
X      by 64), but this has not been tested.  I never heard of it
X      before til I saw it in Froyen's troff2lj source.  This cannot
X      be defined at the same time as 8-font support.  Frankly, I
X      can't understand why they bothered - so you save a few opcodes
X      here and there - vcat output is enormous!
X
X    - ".S" files are the source files and are converted to a filename
X      without the suffix by a sedscript that contains the configuration.
X      Whenever you touch the top-level makefile, the sedscript is changed
X      and all of the ".S" files are rebuilt.  If you make a makefile change
X      (eg: configuration), do a "make makefiles" before using submakes.
X      (though, if you simply say make, this will be done for you).  Only
X      change .S files...
X
XSee the MANIFEST for a file-by-file description of the files.
X
XSTEP-BY-STEP INSTRUCTIONS (after unpacking the release):
X
X	- Use /usr/bin/s5make on Ultrix.
X
X	- NOTE: You may wish to try running "make check" at this
X	  point, it should be able to find out the correct "HEADERSIZE"
X	  and "trofftype" setting so you don't have to guess later on.
X	  In any event, if you have problems and wish to ask me for help,
X	  I will be requiring that you mail me a copy of the output
X	  of "make check".
X
X	- type "make unpackljfonts"  This will uudecode the font
X	  files I've supplied and remove the .UU files.  This
X	  step is unneccessary if you're not using Laserjets,
X	  but it will regain you some space.
X
X	- take a copy of the Makefile, defs.h and lib/psrofflib.S and
X	  squirrel them away somewhere.  I'm not going to produce
X	  patch-independent configurators, so if a patch has to come
X	  out, they may well zap these three files.  If so, you'll
X	  have to fix them manually.  Other files (lib/*.fonts and
X	  lib/*.lib) are field-configurable, and it is possible I
X	  will patch a few of them later (particularly lj.fonts).
X
X	- If you are using the supplied width tables (widths/widthps),
X	  all is fine.  But, if you're going to be driving another
X	  package (eg: jetroff, tpscript, psdit, xtroff etc.) I suggest
X	  you find the ditroff-format ASCII width tables (DESC, R, I,
X	  S etc.), copy them to the appropriate widths/width<xx> area,
X	  modify psrofflib.S to know how to use these width tables,
X	  and possibly create *.fonts and *.lib files.  psrofflib.S
X	  has copious comments on how to configure psroff.
X
X	  psdit, tpscript, xtroff, and xproof work reasonably well using
X	  the Postscript widths in widthps.
X
X	- edit Makefile and change whatever you need to.
X
X	- edit defs.h and define either BSD or ATT.  A few other options will
X	  pertain to you.  Take special note of HEADERSIZE.  Take a look
X	  at /usr/lib/font/ftR.  Is it 224 bytes long?  If so, HEADERSIZE
X	  should be 0.  Otherwise you will probably have to set it to the
X	  size of your a.out.h structure.  Ultrix and Sun appear to always
X	  be HEADERSIZE = 32.
X
X	  With Laserjet driving:
X
X	    MDLF	max # downloaded fonts supported per page.
X			LJ+ have this as 16.  Later models support more.
X	    PRELOAD	# fonts statically downloaded.
X	    SFP		enables SFP's with incremental font downloading.
X			Needs INCR.
X	    INCR	enable incremental font downloading.  Needs PARTIAL.
X	    PARTIAL	enable partial font downloading (only those characters
X			troff could possibly use are downloaded).  Needs PK.
X	    PK		enables PK font handling.  If PK is off, the only
X			downloading supported is "cat <sfpfile>".
X	    COMPRESS	permits you to compress SFP files.
X
X	    Why all this config?  Well, when INCR is defined up to 16 fonts
X	    could be incore at any given moment, which can chew up a lot
X	    of space (especially with large pointsize SFP's).  I very
X	    much doubt that you can use INCR on a 64K address space machine.
X	    (or even split I&D!)  But you really *do* want to use INCR,
X	    otherwise you might blow the Laserjet's memory, and use of INCR
X	    *dramatically* decreases the transmission time to the printer.
X
X	    If INCR not defined, at most only one font will be in core.
X
X	    If PARTIAL is defined, only those characters that troff *could*
X	    use (remember ROMAN8 and MATH8 fonts have 192 characters each,
X	    but R and S have less than 108 each) are loaded into memory,
X	    and only they are downloaded to the Laserjet.  This cuts down
X	    the amount of laserjet memory used for fonts by about half,
X	    and also cuts down transmission time.
X
X	    If PARTIAL is undefined, whole PK or SFPs are downloaded.
X	    if PK is undefined, only whole SFP's are downloaded.
X
X	    Certain HPLJ clones will apparently not work with incremental
X	    downloading.  If your printer screws up, undef INCR, but
X	    make sure you have PARTIAL turned on and try again.
X
X	- edit lib/psrofflib.S according to the instructions you find.
X	  Take special note of -T/-F handling for troff (trofftype) -
X	  check out your troff manual page!  Suns and Ultrix want
X	  trofftype='-F/usr/lib/font/$width/ftXX'.
X
X	- If you're going to be driving HP Laserjets:
X
X	  If you have PK fonts from TeX, ensure that PKFONTS is set
X	  reasonably in the Makefile.  type:
X
X		make buildljfonts
X
X	  This will generate under $NEWFONTS a whole pile of
X	  SFP's (PK's if SFP2PK is set to a good sfp2pk program,
X	  such as Rick Richardson's jetroff utility).  It will
X	  also generate a $NEWFONTS/lj.fonts.new whose entries
X	  should be *merged* (not copied) with lib/lj.fonts.
X	  buildljfonts will generate a fair number of things,
X	  so you may have to fix your Makefile/defs.h configuration.
X	  Caution: if you have a lot of PK's, this will use up a LOT
X	  of space - 5000 blocks or more!
X
X	- if you're going to be driving HP Laserjets, type:
X
X		su root
X		make installljfonts
X
X	  This will attempt to copy the fonts I've supplied plus
X	  any created in the previous step to the $LJF directory.
X
X	- Type
X		make check
X
X	  This will attempt to figure out whether you got some of the
X	  more important options correct (trofftype & HEADERSIZE).
X
X	- Type
X
X		make
X
X	  This will build everything (including width tables for any
X	  HPLJ fonts you have supplied).
X
X	- If you want to test psroff without actually installing it,
X	  you will have to install the width tables (because troff's
X	  limited as to where it will look for the width tables).
X	  As root,
X		make installwidths
X	  Will install the widths as FONTDIR/ps/ftXX (which shouldn't
X	  conflict with anything you already have, and you'll be
X	  able to run "make test" without doing the "make install" first.
X	  Actually, psroff will work without this being done, but it
X	  will use the width tables that came with your troff, so the
X	  output will look a little odd (along with giving you a warning
X	  to that effect)
X
X	- Final installation:
X	  As root,
X		make install
X		make installwidths
X	  Will install everything.
X
X	- "make test" will print a test page.  If you have problems,
X	  please run "make test", fill in the blanks, and FAX me the
X	  result.  (the test page has the fax number).  The test page
X	  exercises all R & S troff characters at 10 point, and displays
X	  a few other characters at different point sizes.  If you don't
X	  want to run psroff itself (eg: you've got troff2ps in a printer
X	  daemon), type:
X
X		make TEST
X		tbl TEST | troff -t -T<whatever> | <troff2ps server>
X
X	  "<troff2ps server>" may be "troff2ps -T<whatever> | your printer".
X
X	  "TEST" is generated via make to include some information about
X	  your configuration to help me diagnose your problems.
X
X	- If you have problems, read the TROUBLE file which describes
X	  some trouble-shooting.
X
X	- HPLJ tuning:
X	    bestmatch: in lj.c's bestmatch function there is are arrays
X		"bigtry" and "smalltry".  These arrays provide a scan
X		sequence finding a font size "close" to a requested font
X		size that lj.fonts indicates isn't present.  If there
X		are holes in your fonts, you may want to experiment with
X		these arrays.
X	    tbl box corners: depending on where you got your fonts from,
X		you may have to slightly adjust the box drawing characters
X		to match up at the corners of tbl boxes.  To do this,
X		append to lj.fonts:
X
X		    normal
X		    ru N _ 0 -200
X		    symbol
X		    br N | -220 0
X
X		The two numbers are the X and Y shifts of the corresponding
X		characters, where the numbers are scaled by (.01 * pointsize)
X		to get a shift in 1/720'ds.  Adjust these (carefully examine
X		tbl output to decide whether you want to move ru or br).
X
X		The distributed defaults (which are shown here) are suitable
X		for HP Times-Roman font floppies.
X
X	    - performance: you can preload commonly used fonts into your
X	      laserjet and thereby greatly reduce transmission time.
X	      Consult the manual page for pk2sfp about the -P, -i, -S and -p
X	      options (don't forget to mark the pointsizes you've downloaded
X	      as "b" in the lj.fonts file).
X
X	- ditroff tuning: Many of the ditroff converters have slightly
X	  different correspondences between what character is in what
X	  font.  You may want to modify the *.fonts file that you're
X	  using to make sure that every character you want is being
X	  printed correctly.  As an example, with tpscript "@" and
X	  "^" aren't S font characters - they're in the normal fonts,
X	  but the dt.c table says they're "symbol".  To tune for
X	  tpscript:
X
X	    - modify psrofflib to have "-ptp" option to troff2ps (t2arg).
X	    - copy dt.fonts to tp.fonts (in LIBDIR/lib).
X	    - append to tp.fonts the following font override sequence:
X
X		symbol
X		^	N
X		@	N
X
X	  psdit and xtroff appear to require the same things to be done
X	  for "^" and "@" (psdit prints nothing without these, and xtroff
X	  prints some other characters instead).
X
X	  Jetroff requires similar things, and jt.fonts has a more
X	  extensive example of this.  Font overrides are documented
X	  more completely next:
X
X	- If you want to play around with character mappings.....
X	  Eg: adding accents for your own language (ie: German)
X	  The most important thing to remember is that you cannot extend
X	  the CAT's character sets without modifying troff - unlike ditroff
X	  where you can add them by changing the makedev files.  This
X	  is how you do overrides:
X
X	    - Put in a map override in the appropriate *.fonts file that
X	      emits the character you want in place of a character you
X	      don't need in the appropriate *.fonts file.  Eg: for
X	      "germandbls" in ditroff, emit "ss" instead of "ct" for
X	      the cent character.  Your override (in dt.fonts) would
X	      look like:
X
X		ct N ss
X
X	      The complete override format is:
X
X		<troffchar> N|S|n <sequence> <x adjust> <y adjust> <scale>
X
X	      x adjust, y adjust, scale default to 0, 0 and 100 respectively.
X	      x and y adjust are multiplied by .01, then the pointsize
X	      and of the output driver to give the shift factor in
X	      1/resolution units.  Scale allows you to change the size
X	      of that one character (eg: you think bullet is too small), but
X	      it isn't recommended too much (it may not work reasonably
X	      on non-postscript drivers).  Again, scale is prescaled by
X	      .01 first, so 100 is 1-1.
X
X	      <sequence> defaults to <troffchar>.  N means normal mapping
X	      (eg: for fonts other than S with no cross font jumping),
X	      S means symbol font, and "n" means specific font (usually >3 -
X	      eg: special bracket fonts).
X
X	    - Modify the width table for the character you're replacing
X	      to have the width for the character you're emitting.
X	      Eg: for germandbls in ditroff, replace the "ct" entry's
X	      width in widths/widthps/R with the width for "ss".  This
X	      latter step is not necessary with laserjets because the
X	      build procedure builds a new width table using the
X	      remapping.
X
X    - Adding fonts after installation:
X	- New Laserjet fonts should be installed in the $LJF directory.
X	- Non-laserjet fonts should have their ditroff width table placed
X	  in the proper widths/width?? directory.
X	- Ensure that the appropriate lib/*.fonts file contains the fonts
X	  you're adding.
X	- at the top level, type:
X	    make register
X	- then
X	    su root
X	    make installwidths
X
XFuture directions:
X
XYou may have noticed a compile flag called "OPT" which is defined in
Xthe distributed version of defs.h.  If enabled (via -Z/W), this enables the
Xexperimental optimizer that I'm working on.  It works well with Postscript
Xoutput, but not with laserjet unless the fonts you use are VERY good.
XIt's disabled by default.  The optimizer does two things: it emits as many
Xcharacters as it can as one print directive, rather than one CAT code
Xper print.  On postscript and HPLJ's this is a BIG win (printer execution
Xspeeds 3 or more times faster), but it won't work with ditroff.  The
Xoptimizer requires access to the CAT troff width tables, and if troff2ps
Xcan't find them, it simply doesn't optimize.  The other thing the optimizer
Xdoes is enable a new backend transmission feature (\(bs\(bs<directive>\(bs)
Xwhich will ultimately *replace* the ".tm M<directive>" feature.  Once
Xthis occurs, troff stderr can unmerged with stdout, psfig will work better,
Xand special directives will no longer require breaks.  And, I might
Xbe able to emulate \X better, and maybe even (gasp) \D and friends.
X
XThe intent is, that when I'm satisfied with the optimizer, possibly after
Xsome patching), I can either ship a patch that explicitly makes it default,
Xor tell you to do it manually in the patch preamble.  Stay tuned.
X
XCONTACT INFO:
X
X    Chris Lewis
X    Elegant Communications Inc.
X    481 University Avenue, Suite 602
X    Toronto, Ontario, Canada
X    Voice Phone: Canada (416)-595-5425
X    FAX: Canada (416)-595-5439
X    Userid's for e-mail contact:
X	Psroff enquiries/help/mailing list enrollment: psroff-request
X	Non-psroff mail only: clewis
X    UUCP routing: {uunet!attcan,utzoo}!lsuc!eci386!<userid>
X    Possible internet routing: lsuc!eci386!<userid>@uunet.uu.net
X    Alternates: <user>@eci386.uucp
END_OF_FILE
  if test 28990 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
  fi
  # end of 'README'
fi
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
  echo shar: Extracting \"'MANIFEST'\" \(8007 characters\)
  sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X----------------------------------------------------------
X README                     1	READ ME FIRST!
X MANIFEST                   1	This shipping list
X LASERFONTS                10	How to build Laserjet fonts from PK's.
X Makefile                   6	Main Makefile
X TROUBLE                    5	psroff problem trouble-shooting guide
X adapters                   1	macro adapter library directory
X adapters/Makefile         16	Makefile for macro adapter libraries.
X adapters/cmn.post.S        1	common post-include-real-macros code
X adapters/cmn.pre.S        16	common pre-include-real-macros code (.sR etc.)
X adapters/tmac.an.S        16	man macro adapter
X adapters/tmac.e.S         16	ME macro adapters
X adapters/tmac.m.S         16	MM macro adapters
X adapters/tmac.s.S         16	MS macro adapters
X adapters/tmac.t2.S        16	A MM macro extension
X audit.S                    7	Configuration auditor
X cattab.c                   7	CAT code/width table index tables
X debug.c                   12	debug print routine (used everywhere)
X defs.h                     7	main definitions.
X dt.c                       6	Ditroff driver
X dt.h                      16	Ditroff driver header
X fonts.lj                   1	LJ fonts directory
X fonts.lj/B.10.pk.UU       12	starter set PK font
X fonts.lj/H.10.pk.UU       13	starter set PK font
X fonts.lj/HI.10.pk.UU       2	starter set PK font
X fonts.lj/I.10.pk.UU       11	starter set PK font
X fonts.lj/R.10.pk.UU       12	starter set PK font
X fonts.lj/S.10.pk.UU       12	MATH8 encoded S font PK file
X fonts.lj/S.11.pk.UU       12	MATH8 encoded S font PK file
X fonts.lj/S.12.pk.UU       11	MATH8 encoded S font PK file
X fonts.lj/S.14.pk.UU       10	MATH8 encoded S font PK file
X fonts.lj/S.16.pk.UU        9	MATH8 encoded S font PK file
X fonts.lj/S.18.pk.UU        8	MATH8 encoded S font PK file
X fonts.lj/S.20.pk.UU        3	MATH8 encoded S font PK file
X fonts.lj/S.22.pk.UU        1	MATH8 encoded S font PK file
X fonts.lj/S.24.pk.UU        6	MATH8 encoded S font PK file
X fonts.lj/S.28.pk.UU        5	MATH8 encoded S font PK file
X fonts.lj/S.36.pk.UU        2	MATH8 encoded S font PK file
X fonts.lj/S.6.pk.UU        13	MATH8 encoded S font PK file
X fonts.lj/S.7.pk.UU        13	MATH8 encoded S font PK file
X fonts.lj/S.8.pk.UU        13	MATH8 encoded S font PK file
X fonts.lj/S.9.pk.UU         8	MATH8 encoded S font PK file
X lib                        1	library file directory
X lib/Makefile               7	Library makefile
X lib/confid.ps             16	confidential overlay example
X lib/dj.fonts              16	Deskjet font table
X lib/dj.lib                16	Deskjet prolog
X lib/dt.fonts              13	Ditroff font table
X lib/jt.fonts              16	Jetroff font table
X lib/lethead.ps             6	letterhead overlay example
X lib/lj.fonts              13	Laserjet font table
X lib/lj.lib                16	Laserjet prolog
X lib/ps.fonts              16	postscript font table
X lib/ps.lib                 6	postscript prolog
X lib/psrofflib.S           13	psroff shells script configuration table
X lj.c                       2	Laserjet driver
X lj.h                      16	Laserjet driver header file.
X makeincl.S                16	include file for makes
X man                        1	man directory
X man/Makefile              16	Makefile for man pages
X man/cat.5.S               10	Describes CAT codes
X man/dumpft.1.S             5	dumpft manual page.
X man/hpinterp.1.S          13	dumpft manual page.
X man/pk2sfp.1.S             4	pk2sfp/pk2ditwid/pktype man page
X man/psroff.1.S            10	psroff man page
X man/troff2ps.1.S           8	troff2 man page
X opt.c                     11	optimizer
X pk.c                       3	PK/SFP font handler
X pk.h                      15	PK/SFP font handler headers
X pkc.c                     12	PK/SFP cache handler
X pkc.h                     16	PK/SFP cache handler header
X ps.c                       4	Postscript driver
X ps.h                      16	Postscript driver header
X psroff.S                  13	psroff shell script
X t2conf.c                  16	troff2ps driver table
X tests                      1	test files directory
X tests/Makefile            16	Makefile for tests
X tests/chartab.m           13	a test file
X tests/ltest.m              9	a test file
X tests/testtab.m           13	short exhaustive test file
X troff2.c                   5	troff2 mainline
X utils                      1	utility program directory
X utils.c                    7	utility functions for troff2
X utils/Makefile            11	utility program makefile
X utils/calcfonts.S          7	perl TeX -> SFP builder
X utils/catconv.S           15	Converts ditroff input to CAT troff input
X utils/dumpft.c            10	generates interesting stuff
X utils/fonts                1	a couple of interesting PK's
X utils/fonts/README        16	Attribution.
X utils/fonts/cmbx10.pk.UU  10	Useful PK's
X utils/fonts/cmmi10.pk.UU   9	"
X utils/fonts/cmr10.pk.UU   10	"
X utils/fonts/cmsl10.pk.UU   9	"
X utils/fonts/cmss10.pk.UU  11	"
X utils/fonts/cmssi10.pk.UU  9	"
X utils/fonts/cmsy10.pk.UU   8	"
X utils/fonts/cmti10.pk.UU   8	"
X utils/fonts/cmtt10.pk.UU  12	"
X utils/hpinterp.c           4	dumps HPLJ codes in human readable format
X utils/lj2ps.S              9	stupid HPLJ to Postscript converter for testing
X utils/maps                 1	PK->SFP merge maps
X utils/maps/S.cmtrf        16	Extracts cmtrf from S fonts.
X utils/maps/alnum.ROMAN8    3	"
X utils/maps/cmmi.MATH8     16	translate tables for mapping PK's into SFP's
X utils/maps/cmr.MATH8      16	"
X utils/maps/cmr.ROMAN8     16	"
X utils/maps/cmss.ROMAN8    16	"
X utils/maps/cmsy.MATH8     16	"
X utils/maps/cmsy.ROMAN8    16	"
X utils/maps/cmti.MATH8     16	"
X utils/maps/cmti.ROMAN8    16	"
X utils/maps/cmtrf.MATH8    16	"
X utils/maps/cmtrf.ROMAN8   16	"
X utils/maps/cmtt.ROMAN8    16	"
X utils/mkenctab.S          16	converts troff2ps -z into encoding tables
X utils/pk2ditwid.c         13	extracts ditroff format width from PK/SFP fonts
X utils/pk2ps.c             11	PK/SFP dump on Postscript printer
X utils/pk2sfp.c             9	turns PK's/SFP's into SFP's.
X utils/pktype.c            12	human readable dump of PK's and SFP's.
X utils/psdtwd.S             3	uploader of Postscript printer widths
X utils/psxlate.c           12	postscript page flipper
X utils/showfont.S          11	prints sexy postscript font tables
X widths                     1	width files and handlers directory
X widths/Makefile           11	Makefile for width tables
X widths/dit2catwid.c        8	turns ditroff width tables into CAT ones.
X widths/gfnttab.S          15	runs dit2catwid/installs width tables
X widths/widthjt             1	jetroff width tables directory (empty)
X widths/widthlj             1	LJ width tables directory (empty)
X widths/widthps             1	PS width tables directory
X widths/widthps/AB         15	Postscript width files
X widths/widthps/AI         15	"
X widths/widthps/AR         15	"
X widths/widthps/AX         15	"
X widths/widthps/B          14	"
X widths/widthps/BB         14	"
X widths/widthps/BI         14	"
X widths/widthps/BO         14	"
X widths/widthps/BR         14	"
X widths/widthps/BX         14	"
X widths/widthps/C          14	"
X widths/widthps/CB         14	"
X widths/widthps/CO         14	"
X widths/widthps/CX         14	"
X widths/widthps/DESC       16	"
X widths/widthps/H          14	"
X widths/widthps/HB         14	"
X widths/widthps/HO         14	"
X widths/widthps/HX         13	"
X widths/widthps/Hb         15	"
X widths/widthps/Hi         15	"
X widths/widthps/Hr         15	"
X widths/widthps/Hx         14	"
X widths/widthps/I          14	"
X widths/widthps/NB         15	"
X widths/widthps/NI         15	"
X widths/widthps/NR         15	"
X widths/widthps/NX         15	"
X widths/widthps/PB         15	"
X widths/widthps/PI         15	"
X widths/widthps/PR         15	"
X widths/widthps/PX         15	"
X widths/widthps/R          14	"
X widths/widthps/S          14	"
X widths/widthps/S2         14	"
X widths/widthps/ZC         15	"
X widths/widthps/ZD         16	"
END_OF_FILE
  if test 8007 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
  fi
  # end of 'MANIFEST'
fi
if test ! -d 'adapters' ; then
    echo shar: Creating directory \"'adapters'\"
    mkdir 'adapters'
fi
if test -f 'adapters/cmn.post.S' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'adapters/cmn.post.S'\"
else
  echo shar: Extracting \"'adapters/cmn.post.S'\" \(71 characters\)
  sed "s/^X//" >'adapters/cmn.post.S' <<'END_OF_FILE'
X.\"@(#)ident cmn.post 2.1 90/07/18
X.\"Turn ligatures off (again)
X'lg 0
END_OF_FILE
  if test 71 -ne `wc -c <'adapters/cmn.post.S'`; then
    echo shar: \"'adapters/cmn.post.S'\" unpacked with wrong size!
  fi
  # end of 'adapters/cmn.post.S'
fi
if test ! -d 'fonts.lj' ; then
    echo shar: Creating directory \"'fonts.lj'\"
    mkdir 'fonts.lj'
fi
if test -f 'fonts.lj/S.22.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.lj/S.22.pk.UU'\"
else
  echo shar: Extracting \"'fonts.lj/S.22.pk.UU'\" \(13015 characters\)
  sed "s/^X//" >'fonts.lj/S.22.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fonts.lj/S.22.pk
XM]UD``7``````````!":N``0FKI"_(0```$9"6_I#U2U?3373337333733373
XM]--=---=---=---=---=/TTUTTTUTTTUTTTUT_3373337333733373]--=--
XM-=-+(;9;$K9+!;1:]K1*\26R6N$ULDK21;)*P76P6T6P2V6N6V6N2W6M6X6L
XM2Y6K6Z]:I+M:E;Q:A+U:=;Y:9+]:5;]:5,%:-<%:-,-:),-:%<-:%,597%64
XMQU=<=73(5ER55,I47+]33,4ES5%,Z@S_C0?2;27434.^L,$D````>&$H]2;$
XMO?O1QMC%S,O2R\?/SL[%TLK`F,+6QZPWN:Q<2L=IC#P\*<M8;'P[C.1UR\*7
XMT45<W"=]-$3/PE?40UT<$WUD)-/!%]="/5Q]DQ36Q=J-?#W&V<'=;:P-UMO`
XMW&W,#;;=P-IMW!V6W,/7C:Q=9!/9Q]4R37<<'30DUG/!T5--1UPL]$33=\+-
XM54T7G"RU=,Z+P\=H7+G"P\.);'K$Q:FWPZQ];"B<#*TL7.SL_'R]++S,78QM
XM&]^\0)`\)0```%M)/?4SNAVWUYU:'3XJ/1I='BH].AU9UWVQ`#H-T0H1W0`Z
XM`=M]>=6AT^*CT:71XJ/3H=6==]L;H+"A)@```%](*/4FPKVIO%T\&LG.PXS<
XMK%?/R*PI7$Q)Q'P,'"C%;$P,!\9<?`I\=,JX;(3,MFR4S;1LE,^R;*30L5RS
XMTL3*33PLM-/!S#U<#,/6O,/7K,/8K+/8O*/8P,D]C!R$UL+)/5Q,@]51O'33
XM8KQSTF2\9-!FO&3.:+Q4S'K`Q$RGP,#$7&C"P<-<.<3$P&JLC'C,RL:<G.Q+
XMQ=/!PJVJL),J````7S0WZS`3`0,5WKW,':<7V'-]9U?4=WTGE]![;0;!;.;#
XM;,;$?*?%?(?'?&?)?$?+?"?-?`?/>GT7A]-V?5='UW)]G"V\#=K?@!%@$8WZ
XMW<#;PMER?7='U79]-X?1>GSWP'S7PGRWQ'R7QGQWR'Q7RGQ&S&PVSFP6T&M]
XM!Y?2=WU'5]9S?8<7VL'<O>43`0,0D`XM````7T(%\A<=80C!UA"@4#P```!!
XM,C#Y+M,])L^,V<R<R<R<R<R<R<R<NLNLNLNLN<R<R<R<R<R<R<R<WXT)T)T)
XMT)T)T)T)T)T*SZSZSZT)T)T)T)T)T)T)T)T(T6TS$*!0/0```$$R,/DN$]-M
XM&-"="="="="="="="="L^L^L^M"="="="="="="="=#XS9S)S)S)S)S)S)S)
XMRZRZRZRZRYS)S)S)S)S)S)S)S8SVTCTPN"Q#````.C)`_3_B`4F\BKC,>XSF
XMJ,]:^-!*XHT3KCC2*N2-,NV9C>G;P-/BT,J0;D0```!-1$+\0;<M?TU?;3^-
XM'Z#/\AG-\CG+\EG)\GG'\IG%\J&</RHYP?*EF_\J>;WRJ9N_*KFY\JV;?RKY
XMM?*QFS\K.;'RM9K_*WFM\KF:ORNYJ?*]FG\K^:7RP9H_+#FA\L69\L>7_47]
XM8_V!VK"22````$@]0OM`S;`2Q]QY?8?!?4?%?1;);.?+?+?-?)?/?'?1?%?3
XM?#]]5\%]=[C7BGV7F-F(?;=_C;A>*-V#^=V2C?@H8L\F@?EBSR;&YFTVQN)B
XMSR:?&-^"^=V3XHW87XVX=]MXC9B7V7J->+?7?!]]5\-]-\5]%\=\]\E\U\M\
XMM\YLEM%\5]1\%]AY?<QP$KS0H(Y+````0#E"_4'`XCVN)=CB?6XIU+#3\AC2
XM(IT?(XT"2<_R6,XUG-\GC,-YRRB<LIC*.9R2J<DK",@["<<K&<<K*,8[*<4K
XM.<4K2,0[2<,K6</RMHPBMYP?*XC`*YF_\KJ+XKN;WRO(O"O9N_*^BZ*_FY\L
XM"+@L&;?RPHMCPIM3PXM$PXLVP:L*OK%N*VMKP*`O3@```#XU0/P_'EV"/2,?
XM/47DUB`!\.,L0K?ER+?C+$(`(EY"UE_4,2U"(](RY=@0R!A0````13Y`_3\*
XMUZWZT^`JC?C3S;Q^+=K=H(U2````0SA`^S\=HOVSG#LTG'E*R(2<EUG)9:R5
XM:<I'G)1ZR3B<DYG)*:R"J<@K"<<ZK'*PG'*QG&*QK%*RG5G5^=6=7YU9U?G5
XMG5C5?779\]HMHMHMHMHMHL<K8L@OM2R2M"R3LRRBLRRRLBS"L2S#L"S3HLU)
XM+.22S5@LUG+-=BS84LR5+(LTV3VBVSVBL%!3````(2(T_2G(K(Q<-H;`3#*T
XMT3TCTCTCTCTCTCTDTCTO31Y4TO71]M!]!\^<ZLV\R\S`R\'+P<O`S+S+S:SH
XMT'T/;171XDT4TCRR1,R<]<.@750```!(/4'[0(C"BSL;ZQL+2ZM)M[>V>YM;
XMA;NSNDO+&[-IFPF6)+**>R0CM(A[0Q.V>&MEN'9KA+EF6Y2Z56N4NF1;HKU4
XM748FU>)276L-CCK8G:[&C9K7L<WBP[2PAE4```!#.$#[/\'BTM?``1H!/G@!
XM'"VLK3D8&<YUA7RG>'?&>8E\-ZBGP7N+>WP(P'E\&,%WC!C!A?C"C"@YPHPI
XM*,.,.!YYPXPY&,.,."G"C"D_C"C"A8P8P8=\&,%Y?`C`>WN+?!>HI\-YB7QG
XM>'?*=85\Z1@9T\K:P@$>>`$Z`1P-?BTL$*!O5P```$@]0/L_M>+#S;'7K9YH
XMP(MXMKBVBUHXM8M(>+2+.)XHLXLHL.L8LHL8LGLHL7L^*+&+"+1[&+![6+"*
XMBV]["*>X>HE[IJB7NGF(>\>(AKYHAVP':&;"=85L5S@VR;W,N-.QV.>-FM>Q
XMS>+#M+"B6````$,Z0?Q`R\#>R->8G2?$?.?(?+?*?);.;&?0?#?2?!C2C`?4
XM>WUGF-:'G6EHV(7YV)2-J#Z)VI.-J$^=B5XHV(?XUHE]9ZC4BWU'P6U&PGTG
XMP_;2;%;0;']=!<E<Y<M,Y,Q<Q<WTS$P2P$RDP$P3RCP2$L`\H\`B+!+*+!(O
XM+!/(/!(CP2R"P3,L$L@L$D/`/&/`-.+&QL9?Q<;%;%Q\0[BR60```&50/O8[
XM"$$#(_`P4"Y_`LF@'$JP&ENP&%P:`83"L!9<.@%5Q+`47%L!)<>@$DR+`07)
XMK?7+K>3,O<7-K<3.O:7/O871K832O673K574O475O277K238O079K/7;K.3<
XMO,7=K,3>O*7?O(4!&LA`$KQE`3K%4!2\10%;PE`7K"0!B\!0&:M0&ZI`'+A0
XM':A`'K90'[10(:1`(K)0(Z%0),0"7"`G_``IH"OX`M8"]-JPJUH````Q+T/]
XM0<R-C"T\;0:'S4P6RSQ5R2R%QRREQ2RUQ2S%PURUPFREP8R5P8R6P(REP'RU
XMP5S&P3S6Y=ULJ+;'PH;$=T=L-<$E?!7$)'P%QB-[7'(WI<DB>5RB%Y7,F%S9
XM=LV6;.AGSH9L^%?/=FT'5]!U]\]U?0=7T&9\]V?/9VT&;WSV?WSFELUJ;-6_
XM;,7!7+7";)7$7(7&7&7(7#;*7`?,:'S\;2P]><Z0AUP```!?0E/R/M0]-M",
XMZ@RZ+*HLJBRJ+*HLJARZ'*HLJBRJ+*HLJBRJ'+H<JBRJ+*HLJBRJ+*H<NARJ
XM+*HLJBRJ+*HLSYSZ+.HLZBSJ+.HL^ASZ'/HLZBSJ+.HLZBSZ'/H<^BSJ+.HL
XMZBSJ+/H<^ASZ+.HLZBSJ+.HL^@T(TFU#`#Z-80C!UA"0AEX```!?0E/R/A/4
XM;2C0H,^BSJ+.HLZBSJ+/H<^ASZ+.HLZBSJ+.HL^ASZ'/HLZBSJ+.HLZBSZ'/
XMH<^BSJ+.HLZBSJ+\^<RBRJ+*HLJBRJ+*H<NARJ+*HLJBRJ+*HLJARZ'*HLJB
XMRJ+*HLJBRJ'+H<JBRJ+*HLJBRJ++H,Z-!M,P!"76$(P=8=@*7P```"XN!0#K
XM#H"PBF$````[,RO]*<E]W!V&9-5:337`307#3"*EQ%P2E<9<`H;&6RAL=J*%
XMR&HG;)62=LIH)GRF@F;+9R9\MG)GRV8F?,9B;WS&4F]\UD)WS6,H?-8BELYB
XM*'SF$I]\Z*?.>WSFP>-LYL)<U\)<LQ615<DR6"9,<T6"=,1&5BE,%)1BI7:T
XM0\##PIQ(R%>@QF(````T,E3]0<A\VQR59<5+!,,[-,$K5,`K9;XKA+TKE;LK
XMI;HKM?N2NV^X*\:W*];[8KUK8KY;<KUK<KU;<KUK<KU;@KQ;@KQ;DK"26Z*;
XM6\*2=KPJM;LK"32Z*]2Y*]6W\K];;ROVM/+`:T\L![+B+!>R+!:RXRP7L3P'
XMLBP7LBP6LRP'LO/`:S._:T2^:S(2O6M"$KQK4B*[6V(BNEMB0KA;<D*W6X)2
XMM5N28[%;HH1VO"JROBL8P2U.,M3C+4XRU.(M4=:@;&,````P+SW^*;-\NPNR
XMJSNBFUN"FWMRBYM2AWBT)ULELR=;1;(G.X.Q)SN3L28[L[`F*]*B8[TJ)O*_
XM*";RP"<LHF+*\E++XB0LPC+.(BSN(A+/XDT.(]#B/1XBT?/1+1XST.,]#C/0
XMXCT?*Y"PBV0````I)D/]0<UM&\U6/+2BR4P"QTPBQ4PRQ$Q2PTU?35XUU6U'
XMTXTXTITITITJT:TIS\#,PLI4C(5HQ5E\1;;#7!;!;"7`;#7`7%2VQ4IL9*;'
XM.6R#CWR#?B?)-N-\DW;)-_?)-_?(.6R"KVQSIL8[;&+!7%/!7%+#7#+%3"/&
XM3`/(2CRE8\W`T7R`P$!E````)1XJ_"C6K4T='2T(V&V6VFVFVFVFVGVFVGVF
XMVGVFVGVMMMQ-Q>1]KC;<7<]MSUW?7=7=33.%Q+5UT='6BK!U9@```"@G5/Q`
XMS.8MDBG/P<Q9+*,<#)1)R3USUSUSUSUSUSUSU_/7/7/737/737/7/737/7]-
XM;TUSU^)-;C36]=;C37Y%UFUEUFU7U7U)TZTL#0PL[$S,7,Q<S$SL+0P-*=2-
XM5M;C76]-<\LJ3,*3SC5-"M-L0+!G9P```"XI/?TI=<1\"+P))3E&1R9'*D4G
XM5#M4)U,\!B*&(L)2*&$L-2*(Q%\2E\51*6Q8E\6/EL9K;&;CIL9JXVQFKC;&
XM:N-L9JXVQFKC;&:FQFP%QFP3QVUVUN-M;C;6XVUN)M==D\'`EF@````K)4/]
XM0=M0$9W44]M'/9.4UTI-5+343$TUQ=%=!=!=%=!=%K72:FTFI=-I;3:5U&^&
XMU&]VU69]5F;6;U?5=6UG1]9T?696UG3B?6<^(!1'UG/B?6='UF7VUG1]9E]]
XM5U?59FU7;VU6?VU&AM-I;36FTFM=)<71;%T5T%T%T5T$TTQ-1+752DUDE-@X
XM/;-4W:`07;#`.VD````A%ROZ*;/674]M/C;3XVT^)M/C;3XFT^)M/VU&T1XA
XM;1C]$A;0(ET2)=`C7"1;)5HG2#DV2ZT7P,!\:@```#4L*_LIPP&UUET6TYT&
XMTJQM$QC&T#*,;"2,:R9L:R@]%I/=:#WF<M]G(!!F(!%E(!)C,!)C,!-A,!6P
XM%-3=8\VFB=AK?7;0;5;2;4]M-M-M-K'C-M1J(FU5HC]M1J(VU5DC;662-M98
XM)&UT@D;71R1ME$-EVI@]U8"P@6L````V+$+[0,!MJ-M]MMI]IMKWVFVO?:;:
XM]]IMKWVFVO?:;:]]IMKWVFVO?:;:]]KVVO?8C7(7U3%]0S;3-'T35]`W;/1W
XMS4A\Q*;+2WR4P'R$PFQUPGQ5PWQ%Q6PUQGP5QWP%R6MLEY;*>&S&=LUU;.='
XMSV-]!Q?1<6TV%=5A/76@9VP````X,#W]*;4]%;@[EK=;AK=K;C:W:VXVMVMN
XM-K=K;C:W:VXVMVMN)K=K=K=I'C=K=I+B9[9I)WM7@GBTB">;(B5RB;$C5RBJ
XM)48H859'1"ECL9BF5[-;!L[C;.XVSN-L[B;/71/1L&QM````+BLJ^RF7RS3!
XMRE+"R6/!R6XI;):FR&KVR6KVR&KVR&MLA<!L=K;(7`;';`;&;!;&7!]L9<)L
XM5<-L1<-L1<1L1,5L-,9L),9L),=L%,AL!,EK3):TRFE<MH3-9ES69,]D3185
XMTZU)UTV@L'UN````*"94_D#+YBV,'+Q,B)+%<<#%99Q'TFTWTGTO?2]]+B?2
XMXWU&U/?4;5;54[R,?(>3Q\;&0[QSUCUCUCUCUCUDUCUCUO35XDU>)-;B75]M
XM5].-.=*]#`S\+-P\W$S,3,Q,W"SL'0O1G4?4;476]-5,@[3).4S$5,Z])L'`
XM9F\````L)RO]*=AP$-#;9DV%I=5<727270737%U5IM59;6:%UV=M=F;99'V'
XM1ME_-]E^(GVGXQ?:<FVG)]IR?:8WV7-]ED?8=6V&;VUV=M9I766EU5Q=-=%-
XM)=--!=5*785EV]`!!]BP;G`````T,"K^*+V*VXW'W6W66BDL=,`I+&3`*BQB
XMPBHL4L,I/$/".2Q2PRHL0L0J+$+#.3U3D]4J/4\Z/4.4T_.DTO2DTCM-%+31
XM2ET.)+7/6USTP%SO7`;,;`;,7!;+]L)LI<-LGVPWR%Q5RCQSP[!Z<0```#`J
XM/?TISVU;T55<Y)3,2ERDP$R4P5QTPFQ4Q%Q%Q%PUQ6P6Q6P5QFP&QFP%QV^V
XMQGXJ;'?CEL=Y]L=Z;':VQGKVQVOVQFML9L!\5<%\1<)\-L&,-<)A+!7#8BM,
XM5B*5Q60U;&9;R&=LMM?C;7XVU^-M?B;87:/:L&QR````-#`J_2C(S\;3P]7!
XMU\#7P(>,Q[;+;";);$7(;%;&;&;&7(7%7)7$;);#7*;";*;"7+;!;+;!;+7!
XMXVRVP.)LML'VRFPFREP_;)7%7(7&7'7'7'3)3&3*7$3,3#3.3!302ETE9=;`
XMVGTPL$9S````*"LJ_BB].M:-=]AMAEP"RTP3RDPCRBQ"RBQ#R3Q#R2Q3R"QC
XMR"Q3W//;XDVN--I=KTVN)=GB79]MGUV>)MAMI=L\\,!U=````#(L*_TII=LZ
XMC96#0]=V)DU84G74A"A=5S*6U6,I;64BIM92*EV$$J;802IM@Q*VV#'RIMD\
XM;://;:+/;;+&VBSVVRQMHL]MLL]MHM!=HM!MHM#VV2T6V"T_77+4;5+674+7
XM73+971+;6SW6=`$-`!6-8+"T=0```#<N5/M`U1`0XRW^,M_C+?XRW^,M_RW)
XMU<30<B1<Q6)ER%@H3&62E,-:*TP5LK6UP"P$I<$L!87!+"5FP2PE9<(L)57#
XM+"5&PBPV-<,L-B;#+#8EQ"PV\6PRQ,#\0L-A]L,L1A;#+#8EQ"PV+UPRPV-<
XM,L-47#+"55PBPF5L$L)77!+!6%P2P%I,`L!;6RM<%+*EPTHI7%2"A<A6)ES&
XM,C;0Q-6=SB+?XRW^,M_C+?XBU+"@=@```#HR/?TIAMZ]05-&TB0G;0)2=\\D
XM*7S24I?,+&;++'?)+);(+*]\8LQL4LU\,LY\(M!L$M%[+2>BU&HM1X+5=RUV
XM8MAE+9]S+;8BW)W8W_8!#W`0;??>G<(7VR-MKR1]@F;7)VUBA]0I?3*VTO+`
XM?0+";/+#?-+$?,+&;++'?)+(?)+)?'+*?&+,>18LUY)"SV@D+19B0M-D)AU*
XMWG?`RW<````\-E3]0`&Q`G\@)N,@)N,@)N,@)N,@)N,M]=4M$ZC4+06#0],L
XM=B9-(KA2==`LA"A=`M!S*6PM%C*6PM)2*FLM-2*EPM1!*FPM1!*FPM0Q*VLM
XM4Q\J;"U3QM`M4\]L+6+/;0+6+&PM8L]M`M8L;0+5+&T"UBSVT"U2T&T"U"T6
XMPM4M%=`M0M)=`M,M-=`M(M1K+3+4:RTBUELM$M=;+0+962P]M8*SW5<I,!!6
XM)T`2@250%M0!R@(B`FXR`FXR`FXR`FXR`G$!4+"&>````#DU*_\I`4/`'86R
XMUGDM:(+7B"V'<MIF+;9BW%4MU5+>3B0M\T(!`T+*'),RRCR"3B+)3((^(LE,
XM@D\LD\@D/(3'-#R#R"4\@\<U/(/')CQTQC8\=,4W/&7%-TQ&Q#A,-\-(7!04
XMP%I:84IK=G)F?`QSQL+%7$Q,-L/&P8P<BKO*?#;'8`UY````%P1;]T,2$/T2
XM$,`_>@```"H=6_I#VUUUV5VDVEVEVTV_7:[>7:]=M-M=I=I-I=E===]=U=U-
XMU=Q=Q-SUW.WEW/7<3<7<7=3=7=7?4,@_>P```"H=6_I#7?7=7=3=7<7<3<]=
XMSMY=SUW$W%W%W4W5W5WUUUV5VDVEVEVTV_7:[>7:]=M-M=I=I-I=E===L+!E
XM?````%](+_4LPH`4*\(!`YQ]TXR=PWS-HUS]DUT=9$J,'50XPKU$*,6]%2?(
XMK/4FRZS6)LVLMB7/K(<ET;Q8)-2\*#35P8I$UM%3V<]3VLQSW,F#W<>3`0PL
XM`@$X`%`P*A"\$"H0D!Q]````7T@O]2P=P0GAW`!$C<$)X=P`1(W!">'<$,!O
XM?@```"H?6_M#$M_TWEWO3>7>XDWEWO3>7>]-Y=[TWEWO3>7>XDWEWO3>7>]-
XMY=[TWEWN)-Y=[TWEWO3>7>]-Y=[TWEWN)-Y=[TWEWO3>7>]-Y=[B3>7>]-Y=
XM[TWEWO3>7>]-Y=[B3>7>]-Y?WDWR$)"O?P```%M)0/4]I*"OH*^FJ::JJZ.K
XMIJZAKJ.Q>QH:"*%:&*"8I).:2'>H@8J'9JNCJV5JVAK61:^:]3:P>P8O6Q>Q
XM46LELJ'[-;.@M#M*#DU:'3;Q734FT6-=%4]L]E;-9_;+:6R6H6QVHGQ7HWPW
XMI7P7IWOWJ7O7JXN8K8MXKXM8L9L9M(KXMXK8N9J9O(IXOYHYP9H9Q(F,>'C*
XM=7S7-\]C;186T_H=6=?WV?7;.Y"P.*$```!!)T[S/,<M@]==7WTYT;S\',Q<
XMEA46QV)2;$<U-\"$5(B&5H.G5\:5G"M;K!7!3@'L5=<\8'`YH@```'AA(?4E
XMQ"UDU5U4U5U5U4U5U5U5U6U&U'TX!M4PRQU<^`T'T6TFTETUTUU$U%TUU$U%
XMU$UBB[`XHP```$$G3O,\QCU^`>7%3!7!JUO"E9QG5Z.&5HB$5(P'-3?$8E)L
XM=A46R<7,P<^]&=/WU5USV2Q@<#ND````>&$A]26++6347434737434737372
XM;2;1?0@,_5(&D=@]5H#3?4;4;5757575357575357536+$"P<:8````N*2[^
XM+A+:78?6G4K3P-%"C/1(S46,Q'C*28R$N,9,"<1,*,-,2,%,:+3(B4R8A,N&
XM3-A$SX)-"!]-*]"!3/@DS81,N&3)B$R(E,:+3$C!3"C#3`G$2XQDF,A'C*18
XMS$2,U"C/P-&M.=1]9=DMH+!QJ````"XI+OXNVBV5UGU)TZT<#/@DS81,R%3*
XMATR(E,:+3$G`3#C"3!C$2XQDF,A(C)1HRT2,U"C/08T+_208T$*,]$C-1HRT
XMB,E)C(2XQDP8Q$PXPDQ)P$QHM,B)3*ATS(5,V$3/@DT<#3K4G6?87:(0V`JP
XM````+BX%`$4.@*`VM0```%,\-O4T$]DQ[)77L-5O%=52;38VT61\]UC+AXR8
XMFL.K"QO;&SM+.TML^YR[[%Q+_,M;L*`VM@```%,\-O4TN[7,O\3%OLNYS[:T
XML[2SL;VQL*PZF,F'C+A7SW1M%C;38O7546U;#LG743V3$*!@MP```%,V/_(T
XMP+^\Q;G'M\FURK2SR[#/K0G1C2?3?3?4;4;4]M1M5=5M7UU6U?75;5XEUMH0
XMK!XEUFUO76;6]=9M9=9M;VUFUFU7U7U7U8U)TZTK'1L\_*N,FYQ[S$P+\9!<
XMN@```%]"/_(TL+VMPJK$J,:FQZ6CR:',H,V<Z,]]!]!]%M%M'VT6TETFTO72
XM;2]=)M+J!=-M/UTVT_73;373;3]M-M-M)])])]*-&="@SZ'/I,S'J<:JQ*S"
XML;P0D%R[````7T(_\C0;RQPJS$JL:IQ\RDSZ'/H-"=&-)])])])M-M/VTVTU
XMTVT_73;3]=-NH--=)OTETFTO72;272;1]M%M%M%]!]!\^,Z<V@S*')HZ7'IL
XM:HQ*K"K;VP"09;X```!?0E/R/K&\K<*JQ*C&IL>EI,F@S*#-G.C/C/?0?1;1
XM;1]M%M)=)M)=)M+B72;2Z5TVT^)=-M-=-M-=-M/VTVTVTGTGTHT8T9T*#0H<
XMZDS,>IQJK$K<&QO``^K435+6/5/4$)!DOP```%]"4_(^&\L<&MQ*K&J<?,I,
XMZAT*#0G1C1C2?2?2;3;3]M-M-=-M-=-M/B73;ITUTFXM)=)M)=)M)=)M'VT6
XMT6T7T'SXSXSIS:#,H,FDI<>FQJC$JL*MO`!`+4/5/6+534.0$L@```!3/!GU
XM'QT!!Z'1ZHS5SC&P.\P```!!*BOU*L2M'$S,C)RL;.P]#!TKU)_6?87BVCXM
XMP0`5[B'</BVEV'_6G4O2P=##SL;*R<C,Q-&L0(#&S0```'AA4/4]KYC2HLFJ
XMPK"]M+F8EIBUE:"5L9.HDZV2KI*JD;*1J)"VD*60NI"BB^B@C`B>C"B<?&>:
XM?(>8?*>6?,>5;.:4;0:2]M)I!M1H765VUF9=A5;89/7:4VVF+B7<46W)+I#>
XMDMQN(5W%)MIC]=I4;895V%9M9G766&U&D/;2:2;0:4;.:5?,>6?*>8?(>:?&
XM><C"B>C`B@B^BBD+J0I9"VD*B1LI&JDJZ2K9.HD[&5H)6UF):8N;2]L,*JR:
XM+2F*\+`VS@```#8D4/4]Q$TVT>>-'D;3XTU2QVDI8[4EL<,B($HB+#&U);-I
XM*6QN--/C;1[+C1[!;3Y4Q+!;SP```#8D4/4]Q$TVT>:-'C;3XDQFDI8[4EL<
XM,B($HB+#&F)J-I*6QN)-/C;1YHT6TT`H33;1YHT>)M/B3(&TP!27)Y'!0D!J
XM0DP1ER>4*TLL?B33XFT>:-%M-,2P;=4````X+5#U/=5MFM;`U&-=)E7156T&
XM2.+.9)S72<UEG-9GS7=<[B?:;:XWV?C9XGV>.-E]GDC8G8XXV)V.2-E]GCC9
XMXGV?C9XWVFVN)\U8?,=VS)9LR5?,^5;-E5SH5L]F705ETE-M3`UJV6U0P,C8
XM````02Q)]D(!0P&_4!E@&5W*1=G9U]K6B)U7Q]1M)])M.-!M.K;4NFT\GVU%
XM)G;48V9M1497U%1T?39'1]-5<WTV9R]]-7<GTF=R?26'&-)8T]%HT_T5G3T&
XMG3T%K3QJT_Q;T[:]/[7-.FS3I=#3EM#3^5T=.&T=.%TH%X72<G=M)R=UTW*&
XM72@H5M*#=5TW1T;3='1=1U9%U&9R;3=G)=1W8EU&G--JO4:ZTVT(TVTGTFU'
XMQ]68C6VM?9V52MQ0&6`9]0&S`4"A%-D```!425/[/\2PW[C8OM/"S[&;',FV
XMG*>\?'?`?$;$;";&;`;(:^7,6\7.6Z706X726W342V746T766R786Q3:2P7:
XM6DW$E=Q83>1UWE9,&+Q&2^.#N45;P[(K=42\.U&W1$NSMQMD-;H[D;522Z2Y
XM&V0DN4MUM4)+E+9K5!6X2W:UFY2W:VBX6W:VBX6X2WC[A,^.>W7/FV7.7Q2W
XM3.0DMUS4);9<Q3]+=+P;1$6W2Z&T54MTNAM$9+A+@;5&6X.X&T5TN3MAM4A;
XMD[0;592Z.Q*V2ENT<K=;!+Z+E+%=A;)=9;1=1;9-1+==);A=!;I<Y;Q<Q;YL
XMAL!L9L)L1L1\!\=[Q\J;:<RQFQS\+3OMBXW[#$!0$=H````S*"K[*1@!UN>W
XMK6&`$(@,X````$H86^!""Q[7E<@-X0```$H86^!$X$.M$..@.N(```!*&UO@
XM0KQ+IKE[B+>+>+>+>+>+>+>+>;:;>+>;:;>+>;>+?YMOFV^;:K;YMN*K:;;D
XMJVFV[9JVP$/C````2AQ=\D35[=KBU*U/K4K5G5G5K4K4K4G5G5G4G5G4G3K5
XMC77:C7K8G8G7G8G7G7G7K6K6K6G7G6K6^M;BK6[=H*@XY````$H;6^!$[9JW
XMFWY*MYM^*K?YMZM_FX^;CYN(N)N(N)N)N(N)N)N(N8N8N8N8N8N8N8N7NFO$
XMR`WP````2AE;[T(.W@0]*H`,\0```$H96^]$ENUPNZ@X\@```$H<6_)"2]:[
XM>ZBZFYFYFYFYFYFYFYBZBYFYFYBYFY^;GYN?FXJX^;BKCYN/JXFXY*N)N.V:
XMR$/S````2AM=X$3MVM7BK5^M6M6=6M6M6=:=:=:=>=:=>=>->M=]E==]2M.-
XM2=.=2=.=2=2=2=2M.M2=2M/ZT^*M/MVM0*`Z]````$H<6_)$M^V:MYM^2K>;
XM?ZM_FWJW^;>K?YM_FW^;>;B+B;>;B+B+B;>;>;>;>;>;>;>+E[IKM+W8"_4`
XM``!*"EW@1``Z0!@)]@```%Q;`@`9U'!E^P```'AA-?4OG$U&TUTVTFTUTVTF
XMTFTUTVTFTFTKV2P8_"CL.,Q8M]"`SX'.@<V#RX3*A<B'RH7,A\Z%SX30@]&!
XMTH'2@--]/%CL./PI#!DKV5;4;4;474;4;4;474;4;474;42QV`O\````,R@J
XM^RD`:2!P9?T```!X837U+[%-1M1=1M1M1=1M1M1M1=1M1M1I6]DL&0PH_#CL
XM73?3@-*!TH'1@]"$SX7.A\R%RH?(A<J$RX/-@<Z!SX#0>+Q8S#CL*/P9*]TF
XMTFTFTUTVTFTFTUTVTFTUTVU$G)`=_@```%](2_5#N3VDVNMEN-P0GAW+GK-;
X(C<$)X=P0]?8F
X`
Xend
END_OF_FILE
  if test 13015 -ne `wc -c <'fonts.lj/S.22.pk.UU'`; then
    echo shar: \"'fonts.lj/S.22.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'fonts.lj/S.22.pk.UU'
fi
if test ! -d 'lib' ; then
    echo shar: Creating directory \"'lib'\"
    mkdir 'lib'
fi
if test ! -d 'man' ; then
    echo shar: Creating directory \"'man'\"
    mkdir 'man'
fi
if test ! -d 'tests' ; then
    echo shar: Creating directory \"'tests'\"
    mkdir 'tests'
fi
if test ! -d 'utils' ; then
    echo shar: Creating directory \"'utils'\"
    mkdir 'utils'
fi
if test ! -d 'utils/fonts' ; then
    echo shar: Creating directory \"'utils/fonts'\"
    mkdir 'utils/fonts'
fi
if test ! -d 'utils/maps' ; then
    echo shar: Creating directory \"'utils/maps'\"
    mkdir 'utils/maps'
fi
if test ! -d 'widths' ; then
    echo shar: Creating directory \"'widths'\"
    mkdir 'widths'
fi
if test ! -d 'widths/widthjt' ; then
    echo shar: Creating directory \"'widths/widthjt'\"
    mkdir 'widths/widthjt'
fi
if test ! -d 'widths/widthlj' ; then
    echo shar: Creating directory \"'widths/widthlj'\"
    mkdir 'widths/widthlj'
fi
if test ! -d 'widths/widthps' ; then
    echo shar: Creating directory \"'widths/widthps'\"
    mkdir 'widths/widthps'
fi
echo shar: End of archive 1 \(of 16\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 16 archives.
    echo "Read the README to get started with psroff installation"
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still must unpack the following archives:
    echo "        " ${MISSING}
fi
exit 0
-- 
Chris Lewis, Phone: TBA
UUCP: uunet!utai!lsuc!ecicrl!clewis
Moderator of the Ferret Mailing List (ferret-request@eci386)
Psroff mailing list (psroff-request@eci386)