ttrrooffff -- Command

Extended text-formatting language
ttrrooffff [_o_p_t_i_o_n ...] [_f_i_l_e ...]

The command ttrrooffff  is the COHERENT typesetter and text-formatting language.
It  performs  typeset-quality text  formatting,  suitable  for printing  on
either the  Hewlett-Packard LaserJet II or III printers,  or on any printer
for which the PostScript language has been implemented.

_t_r_o_f_f _I_n_p_u_t
ttrrooffff  processes  each  given  _f_i_l_e,  or  the standard  input  if  none  is
specified, and  prints the  formatted result  on the standard  output.  The
input must consist of text with formatting commands embedded within it.

ttrrooffff provides a  full suite of commands that set  line length, page length
and  page offset,  generate vertical  and horizontal  motions, indentation,
fill and  adjust output lines,  and center text.  The  great flexibility of
ttrrooffff lies  in its acceptance of user-defined macros  to control almost all
higher-level formatting.  For  example, the formation of paragraphs, header
and footer  areas, and footnotes  must all be  implemented by the  user via
macros.

ttrrooffff uses a  superset of the commands and syntax  used by nnrrooffff, the other
COHERENT  text-formatter: files  prepared  for the  latter  usually can  be
processed through the  former without requiring any changes.  ttrrooffff differs
from nnrrooffff  in that nnrrooffff  can perform only  monospaced formatting, whereas
ttrrooffff can handle multiple fonts of type, both monospaced and proportionally
spaced.  It  lets you  load font-width tables  dynamically, so you  can use
whatever fonts  you have loaded into  your printer at a  given time.  ttrrooffff
also lets  you move about  the page in  increments other than  sixths of an
inch vertically or tenths of an inch horizontally.

ttrrooffff  produces  output  either  in  the  Hewlett-Packard  Printer  Control
Language  (PCL) or  PostScript, whichever  you prefer.   The former  can be
printed on  the Hewlett-Packard LaserJet  family of laser  printer, and can
use any  PCL bitmapped  ``soft font''.   The latter can  be printed  on any
printer that  supports the  PostScript language, and  can use any  font for
which  you have  an  Adobe Font  Metric  description.  The  default is  PCL
output; to  obtain PostScript, use  the -pp command-line  option.  See below
for information on how to manage downloadable fonts.

_C_o_m_m_a_n_d-_l_i_n_e _O_p_t_i_o_n_s
Command-line options may be listed in any order.  They are as follows:

-dd      Debug: print  each request before  execution.  This option  is very
        useful when you are writing and debugging new macros.

-DD      Display the  available fonts.   These are  all the fonts  that have
        been loaded into ttrrooffff with the .llff primitive (described below).

-ff _n_a_m_e Write the temporary file into file _n_a_m_e.

-ii _f_i_l_e_s
        Read from the standard input after reading the given _f_i_l_e_s.

-kk      Keep: do not erase the temporary file.

-ll      Landscape mode: output is  rotated 90 degrees, with default size 11
        by 8.5 inches rather than 8.5 by 11 inches.

-mm_n_a_m_e  Include the macro file /uussrr/lliibb/ttmmaacc._n_a_m_e in the input stream.

-nn_N     Number the first page of output _N.

-pp      Produce  output for  a  PostScript printer  rather than  for a  HP-
        compatible printer.

-rr_a_N    Set number register _a to the value _N.

-rr_a_b_N   Set number register _a_b to  value _N.  For obvious reasons, _a_b cannot
        contain a digit.

-xx      Do not eject  to the bottom of the last  page when text ends.  This
        option lets you use ttrrooffff interactively, which is especially useful
        when debugging macros.

If  the environmental  variable TTRROOFFFF  is  set when  ttrrooffff is  invoked, its
contents are  prefixed to the list of  command-line arguments.  This allows
the user to  set commonly used options once in  the environment rather than
on each ttrrooffff command line.

_t_r_o_f_f _P_r_i_m_i_t_i_v_e_s
As noted earlier, ttrrooffff's command set  is a superset of that used by nnrrooffff:
see the Lexicon  entry on nnrrooffff for information on  the commands and escape
sequences shared by ttrrooffff  and nnrrooffff. This article describes the primitives
that ttrrooffff does _n_o_t share with nnrrooffff.

Please note that the basic ttrrooffff unit is one-tenth of a point.  A printer's
point is 1/12 of a pica,  which is in turn one-sixth of an inch; therefore,
there are 72 points and 720 ttrrooffff units in an inch.

.ccoo _e_n_d_m_a_r_k
     Copy input  to output file  directly, with no  processing.  If _e_n_d_m_a_r_k
     argument  is  present,  ttrrooffff  copies  input  until it  finds  a  line
     containing  _e_n_d_m_a_r_k followed  by \nn.   If no  _e_n_d_m_a_r_k is  given, ttrrooffff
     copies input  until it finds a line  containing .ccoo\nn.  This directive
     is useful for embedding PostScript commands in an input file.

.ccss _X_X _N _M
     Set  font _X_X  to use  constant character spacing.   The width  of each
     character is _N  divided by 36 ems.  If _M  is present, it specifies the
     width of an em; otherwise,  _N  assumes the point size em for the given
     font.

.ffdd  Display the currently available fonts.

.ffpp _N _X_X
     Associate  font name  _X_X with  numeric  font position  _N. The  given _N
     should be  a number between  1 and 9.  Subsequently,  the numeric font
     position can  be used in  an escape sequence  \ff_N to select  the font.
     (This  nomenclature comes  from  the days  when phototypesetters  used
     print  wheels that  were set  in fixed positions  on the  device.) The
     nnrrooffff primitive  .rrff performs a similar task, and  is more flexible in
     its syntax.

.ffzz _X_X _N
     Fix the  point size of font  _X_X at _N. The point size  of the font will
     not be affected by subsequent .ppss commands or \ss_N point size escapes.

.llff _X_X _f_i_l_e [_n]
     Load font-width table from _f_i_l_e and use it for font _X_X. If _f_i_l_e is not
     found,   ttrrooffff    looks   for    /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffwwtt/_f_i_l_e   or
     /uussrr/lliibb/rrooffff/ttrrooffff_ppss/ffwwtt/_f_i_l_e (depending on whether the -pp option is
     used).

     The optional third argument sets  the default point size of the loaded
     font  to _n.  Note that  this argument  takes effect  only if  ttrrooffff is
     running in -pp (PostScript) mode.

     For example,  to load the font-width table for  the PCL bitmapped font
     ccnn009900rrppnn.uusspp (which sets Century Roman, nine point, portrait mode) and
     name it font RRSS, use the command:

         .lf RS cn090rpn.usp

     To do the same thing under PostScript, use the command:

         .lf RS Century_R.fwt 9

     Thereafter, you can reference font RRSS with either .fftt RRSS or \ff(RRSS.

     Note that the second argument to this primitive must name a font-width
     table generated by the  COHERENT command ffwwttaabbllee, not the font itself,
     although both may have the same name.

     Please  note that  .llff  is unique  to the  COHERENT implementation  of
     ttrrooffff, and cannot be ported to other implementations.

.ppss _Npp
     Set point size to _N points.  The default point size is 10 point.

.rrbb _f_i_l_e
     Read input  from _f_i_l_e  and copy it  to the output  without processing.
     This  directive is  useful for  including files  containing PostScript
     routines in the output.

.ssss _N
     Set the minimum word spacing to _N divided by 36 ems.

.vvss _Npp
     Set the  vertical spacing to  _N points.  The  default vertical spacing
     for ttrrooffff is 11 points.

_E_s_c_a_p_e _S_e_q_u_e_n_c_e_s
ttrrooffff  recognizes the  following  escape sequences,  in  addition to  those
recognized by nnrrooffff:

\ss'_N'
     Set the  point-size escape sequence  to _N. Like the  .ppss primitive, it
     changes the point  size to _N. The specified _N  may have a leading plus
     or minus sign to make the new size relative to the current point size.

\XX_d_d Output  character _d_d  where _d_d  are two  hexadecimal digits.   This is
     useful  for  forcing  ttrrooffff to  print  characters  outside the  normal
     printable  range, e.g.,  those  with the  high-order  bit set.   ttrrooffff
     reserves the following values for its internal use:

          <ctrl-space>        0X00 Ignored
          <ctrl-A>            0X01 Leader dots, same as ``\a''
          <ctrl-I>            0X09 Tab, same as ``\t''
          <ctrl-J>            0X10 Newline

     The  hexadecimal  values  to  which  characters  map depend  upon  the
     character set  that you (or your printer) use.   For example, to print
     the character `'  using the Hewlett-Packard Laser-Jet printer and the
     Pacific Page cartridge, use the escape sequence \XXFFBB.

     The escape  sequence \XX  is unique  to the COHERENT  implementation of
     nnrrooffff and ttrrooffff. Code that uses it will behave differently when ported
     to other implementations.

_N_u_m_b_e_r _R_e_g_i_s_t_e_r_s
The basic unit  of measure under ttrrooffff is the  decipoint, or one-tenth of a
printer's point.   A point  is one-tenth  of a pica,  which in turn  is one
sixth  of an  inch;  therefore, there  are  72 points  in an  inch, or  720
decipoints.  All ttrrooffff number registers that hold information about page or
type dimensions hold that  information in decipoints.  For this reason, the
decipoint is sometimes called the ``machine unit.''

The following  table shows how other units of  measure translate into ttrrooffff
machine units:

     inch:                         1ii = 720uu
     vertical line space:          1vv = 110uu
     centimeter:                   1cc = 283uu
     em:                           1mm = 100uu
     en:                           1nn = 50uu
     pica:                         1PP = 120uu
     point:                        1pp = 10uu

If you are  working with PostScript, you must remember  to divide the value
of a ttrrooffff number register by  ten before you pass the value to PostScript,
or  you will  see very  strange  results on  your page  -- or  likelier, no
results at all.

_S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s
ttrrooffff includes  a set of  escape sequences for  setting special characters.
These     escape     sequences     are     defined     in     the     files
/uussrr/lliibb/rrooffff/ttrrooffff_*/ssppeecciiaallss.rr.  If  you  have  additional  fonts  or  an
extended PostScript  cartridge on your printer, you  can modify these files
to change the current definitions or add new ones.

The following  shows the escape sequences  currently defined in ssppeecciiaallss.rr,
and the character each prints:

\(em --                  \(hy -                   \(bu ->
\(sq []                  \(ru _                   \(14 1/4
\(12 1/2                 \(34 3/4                 \(fi fi
\(fl fl                  \(ff ff                  \(Fi ffi
\(Fl ffl                 \(de degrees             \(dg +
\(fm '                   \(ct c|                   \(rg (r)
\(co (c)                 \(tm [tm]                \(pl +
\(mi -                   \(eq =                   \(** *
\(sc section              \(aa '                   \(ga `
\(ul _                   \(sl /                   \(*a alpha
\(*b beta                \(*g gamma               \(*d delta
\(*e epsilon             \(*z zeta                \(*y eta
\(*h theta               \(*i iota                \(*k kappa
\(*l lambda              \(*m mu                  \(*n nu
\(*c xi                  \(*o omicron             \(*p pi
\(*r rho                 \(*s sigma               \(ts sigma
\(*t tau                 \(*u upsilon             \(*f phi
\(*x chi                 \(*q psi                 \(*w omega
\(*A Alpha               \(*B Beta                \(*G Gamma
\(*D Delta               \(*E Epsilon             \(*Z Zeta
\(*Y Eta                 \(*H Theta               \(*I Iota
\(*K Kappa               \(*L Lambda              \(*M Mu
\(*N Nu                  \(*C Xi                  \(*O Omicron
\(*P Pi                  \(*R Rho                 \(*S Sigma
\(*T Tau                 \(*U Upsilon             \(*F Phi
\(*X Chi                 \(*Q Psi                 \(*W Omega
\(sr square root         \(rn                     \(>= >_
\(<= <_                   \(== ==                  \(~= ~_
\(ap ~                   \(!= =/                   \(-> ->
\(<- <-                  \(ua |^                   \(da |v
\(mu x                   \(di /                   \(+- +_
\(cu union               \(ca intersection        \(sb subset of
\(sp superset of         \(ib improper subset of  \(ip improper superset of
\(in infinity            \(pd partial derivitive  \(gr gradient
\(no not                 \(is integral            \(pt proportional to
\(es O/                   \(mo member of           \(br |
\(dd double dagger       \(rh ->                  \(lh <-
\(or |                   \(ci O                   \(lt (
\(lb (                   \(rt )                   \(rb )
\(lk (                   \(rk )                   \(bv |
\(lf [                   \(rf ]                   \(lc [
\(rc ]

_P_r_i_n_t_e_r _C_o_n_f_i_g_u_r_a_t_i_o_n
ttrrooffff  reads  several  files  in  directory  /uussrr/lliibb/rrooffff/ttrrooffff_ppccll  (when
generating   PCL  output)   or   /uussrr/lliibb/rrooffff/ttrrooffff_ppss  (when   generating
PostScript)  to  find   printer-specific  information.   It  reads  special
character definitions from  file ssppeecciiaallss.rr. It reads font loading requests
from file ffoonnttss.rr. It copies file  .pprree at the beginning of the output.  It
copies file .ppoosstt at the end of the output.  In landscape mode, ttrrooffff looks
for files .pprree_llaanndd and .ppoosstt_llaanndd  instead.  You can change these files as
desired to include printer-specific commands in ttrrooffff output.

_M_a_n_a_g_i_n_g _F_o_n_t_s
As noted  above, ttrrooffff  produces output  in either of  two page-description
languages: the  Hewlett-Packard Page  Description Language (PCL),  which is
the  ``native   language''  of  Hewlett-Packard's   LaserJet  printers;  or
PostScript.   The  COHERENT system  also  comes with  tools  that lets  you
process  fonts, so  that you  can use with  ttrrooffff either  downloadable soft
fonts or the fonts that are on board your printer.

The following two sections describe how to manage fonts under PCL and under
PostScript.  You  should refer to  the section that is  appropriate to your
type of printer.

_P_C_L _F_o_n_t_s
Before ttrrooffff can use a font, it must know the following information:

-> What the width of every character of the font is, and
-> How it can tell the printer to print that font.

Both pieces of information are stored  in a file called a _f_o_n_t-_w_i_d_t_h _t_a_b_l_e.
Before ttrrooffff  can use a  font, it must  read the font-width  table for that
font.

To load a  font-width table into ttrrooffff, use the  primitive .llff.  Its syntax
is as follows:

    .llff _X_X _f_i_l_e

_X_X gives  the name by which  you will call the font  in your ttrrooffff program.
_f_i_l_e is  the font-width table  for this font.   If _f_i_l_e is not  a full path
name, ttrrooffff looks for it in directory /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffwwtt.

COHERENT comes with font-width tables  for a number of commonly used fonts.
The  following tables  are  for the  fonts built  into the  Hewlett-Packard
LaserJet III:

_T_a_b_l_e............ _D_e_s_c_r_i_p_t_i_o_n
CCGGTTiimmeess_BB.ffwwtt.... Times Bold, scalable, rotatable
CCGGTTiimmeess_BBII.ffwwtt... Times Bold Italic, scalable, rotatable
CCGGTTiimmeess_II.ffwwtt.... Times Italic, scalable, rotatable
CCGGTTiimmeess_RR.ffwwtt.... Times Roman, scalable, rotatable
CCoouurr1100_BB.ffwwtt..... Courier Bold, ten point, portrait
CCoouurr1100_II.ffwwtt..... Courier Italic, ten point, portrait
CCoouurr1100_RR.ffwwtt..... Courier Roman, ten point, portrait
CCoouurr1122LL_BB.ffwwtt.... Courier Bold, 12 point, landscape
CCoouurr1122LL_RR.ffwwtt.... Courier Roman, 12 point, landscape
CCoouurr1122_BB.ffwwtt..... Courier Bold, 12 point, portrait
CCoouurr1122_II.ffwwtt..... Courier Italic, 12 point, portrait
CCoouurr1122_RR.ffwwtt..... Courier Roman, 12 point, portrait
LLiinneeppLL_RR.ffwwtt..... Line Printer, 8.5 point, landscape
LLiinneepp_RR.ffwwtt...... Line Printer, 8.5 point, portrait
UUnniivveerrss_BB.ffwwtt.... Univers Bold, scalable, rotatable
UUnniivveerrss_BBII.ffwwtt... Univers Bold Italic, scalable, rotatable
UUnniivveerrss_II.ffwwtt.... Univers Italic, scalable, rotatable
UUnniivveerrss_RR.ffwwtt.... Univers Roman, scalable, rotatable

Note  that the  scalable Hewlett-Packard  fonts are set  by default  at 250
points in size -- that is,  about 3.5 inches.  Because you cannot scale PCL
fonts when you load them, you must use the .ppss primitive to size the font.

The  following ttrrooffff  program demonstrates scalable  fonts on  the Hewlett-
Packard LaserJet III:

    .lf TR CGTimes_R.fwt
    .lf TB CGTimes_B.fwt
    .lf TI CGTimes_I.fwt
    .lf UR Univers_R.fwt
    .lf UB Univers_B.fwt
    .lf UI Univers_I.fwt
    .vs 14p
    .ps 12p
    \f(TRThis is Times Roman, 12 point.
    .sp
    \f(TBThis is Times Bold, 12 point.
    .sp
    \f(TIThis is Times Italic, 12 point.
    .vs 26p
    .ps 24p
    \f(URThis is Univers Roman, 24 point.
    .sp
    \f(UBThis is Univers Bold, 24 point.
    .sp
    \f(UIThis is Univers Italic, 24 point.
    .br

Note that this  program does not run correctly if  downloaded to a LaserJet
II, or to any printer that is running PostScript.

The COHERENT command ffwwttaabbllee lets  you build new font-width tables.  It can
build tables for  PCL bit-mapped soft fonts, as well  as for fonts that are
built into the LaserJet III.

To manipulate PCL bit-mapped soft fonts, do the following:

-> Use the command ffwwttaabbllee to build  a font-width table from the font.  The
   input  to ffwwttaabbllee  should be  the soft  font itself;  and the  output of
   ffwwttaabbllee should be redirected  into an appropriately named file.  See the
   lists of tables  given above for an idea of  how to name your font-width
   table.

-> Move    the   newly    created   font-width    table    into   directory
   /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffwwtt.

-> Move the  font itself into  directory /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffoonnttss. You
   may need  to create  this directory  if this is  the first time  you are
   using soft fonts.

-> Include the  instruction .llff in  your ttrrooffff file to  load the font-width
   table and  name the  font, as  shown above.  If  you use the  same fonts
   repeatedly, you may wish to put  the .llff primitives into a separate file
   that you always include on your ttrrooffff command line via the environmental
   variable TTRROOFFFF.

-> Before you  print your document,  load the soft font  into your printer.
   If you are using the hhpp  spooler to spool files to your printer, use the
   command hhpprr  -ff. If you  are using the  MLP spooler, then  you must pre-
   process the font with the command ppccllffoonntt, then spool the processed font
   to device hhpprraaww. Both commands  are described in detail in their Lexicon
   entries.  Briefly, to load  font ttrr110000bbppnn.uusspp into your printer, use the
   command

       hpr -f /usr/lib/roff/troff_pcl/fonts/tr100bpn.usp

   or the command:

       pclfont /usr/lib/roff/troff_pcl/fonts/tr100bpn.usp | lp -d hpraw

   These commands also  let you specify what ``slot'' to  put the font; you
   can  use this  to help  manage fonts  in your  printer.  By  placing the
   frequently used  fonts in the lower  slots, you can then  load the less-
   frequently used  fonts into  the upper  slots, and overwrite  just those
   fonts when you change fonts for  another printing job.  You must do such
   font management by hand -- COHERENT  does not include a utility to do it
   for you.

   You may wish  to write the font-loading commands into  a script that you
   execute before  you print a job.   You must reload fonts  every time you
   power up your printer or clear its memory.

To build a font-width table for a font built into your LaserJet III, do the
following:

-> Each font on your printer is  described with a .ttffmm file, which comes on
   a disk  with your printer.  (If  you did not receive  such a disk, check
   with  the dealer  from which  you  purchased your  printer, or  write to
   Hewlett-Packard.) Use  the COHERENT command ddoossccpp to  copy the .ttffmm file
   for the font that interests you from the disk.

-> Use the  command ffwwttaabbllee  -tt to build  the font-width table.   Its input
   should be  the .ttffmm  file that you  just uploaded.  Redirect  its output
   into an appropriate named file.

-> Move    the   newly    created   font-width    table    into   directory
   /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffwwtt.

-> Note that because  the font is build into your  printer, you do not need
   to download anything before you can  use the font.  When ttrrooffff reads the
   font-width table, it will know how to invoke the font on your printer.

_P_o_s_t_S_c_r_i_p_t _F_o_n_t_s
Before ttrrooffff can use a font, it must know the following information:

-> What the width of every character of the font is, and
-> How it can tell the printer to print that font.

Both pieces of information are stored  in a file called a _f_o_n_t-_w_i_d_t_h _t_a_b_l_e.
Before ttrrooffff  can use a  font, it must  read the font-width  table for that
font.

To  load a  font  into ttrrooffff,  use  the primitive  .llff.  Its  syntax is  as
follows:

    .llff _X_X _f_i_l_e [_n]

_X_X gives  the name by which  you will call the font  in your ttrrooffff program.
_f_i_l_e is  the font-width table  for this font.   If _f_i_l_e is not  a full path
name, ttrrooffff looks for it either in directory /uussrr/lliibb/rrooffff/ttrrooffff_ppss/ffwwtt.

The  optional argument  nn lets  you size  the font.   This applies  only to
PostScript scalable fonts.  All fonts  that are loaded with this option are
_n_o_t affected by the .ppss primitive.

For example, the instruction

    .lf HR  HelvNar_R.fwt  12

loads a font  for PostScript output.  The font is  named HHRR. The font-width
table is read from file /uussrr/lliibb/rrooffff/ttrrooffff_ppss/HHeellvvNNaarr_RR.ffwwtt, which defines
the font Helvetica Narrow Roman.  Finally,  it sizes the font to 12 points.
Hereafter, the instructions .fftt HHRR or \ff(HHRR invoke this font.

COHERENT comes with font-width tables  for a number of commonly used fonts.
The following tables are for  PostScript fonts.  LaserJet III, and are kept
in directory /uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ffwwtt.  All are, of course, scalable and
rotatable:

_T_a_b_l_e............ _D_e_s_c_r_i_p_t_i_o_n
AAvvaanntt_BB.ffwwtt...... Avant-Garde Roman (Gothic Book)
AAvvaanntt_BBII.ffwwtt..... Avant-Garde Bold Italic
AAvvaanntt_II.ffwwtt...... Avant-Garde Italic
AAvvaanntt_RR.ffwwtt...... Avant-Garde Roman
BBooookkmmaann_BB.ffwwtt.... Bookman Bold
BBooookkmmaann_BBII.ffwwtt... Bookman Bold Italic
BBooookkmmaann_II.ffwwtt.... Bookman Italic
BBooookkmmaann_RR.ffwwtt.... Bookman Roman
CCeennttuurryy_BB.ffwwtt.... Century Bold
CCeennttuurryy_BBII.ffwwtt... Century Bold Italic
CCeennttuurryy_II.ffwwtt.... Century Italic
CCeennttuurryy_RR.ffwwtt.... Century Roman
CChhaanncceerryy_II.ffwwtt... Zapf Chancery Italic
CCoouurriieerr_BB.ffwwtt.... Courier Bold
CCoouurriieerr_BBII.ffwwtt... Courier Bold Italic
CCoouurriieerr_II.ffwwtt.... Courier Italic
CCoouurriieerr_RR.ffwwtt.... Courier Roman
DDiinnggbbaattss.ffwwtt..... Zapf Dingbats
HHeellvvNNaarr_BB.ffwwtt.... Helvetica Narrow Bold
HHeellvvNNaarr_BBII.ffwwtt... Helvetica Narrow Bold Italic
HHeellvvNNaarr_II.ffwwtt.... Helvetica Narrow Italic
HHeellvvNNaarr_RR.ffwwtt.... Helvetica Narrow Roman
HHeellvv_BB.ffwwtt....... Helvetica Bold
HHeellvv_BBII.ffwwtt...... Helvetica Bold Italic
HHeellvv_II.ffwwtt....... Helvetica Italic
HHeellvv_RR.ffwwtt....... Helvetica Narrow
PPaallaa_BB.ffwwtt....... Zapf Calligraphic Bold (Palatino)
PPaallaa_BBII.ffwwtt...... Zapf Calligraphic Bold Italic
PPaallaa_II.ffwwtt....... Zapf Calligraphic Italic
PPaallaa_RR.ffwwtt....... Zapf Calligraphic Roman
SSyymmbbooll.ffwwtt....... Symbols
TTiimmeess_BB.ffwwtt...... Times Bold
TTiimmeess_BBII.ffwwtt..... Times Bold Italic
TTiimmeess_II.ffwwtt...... Times Italic
TTiimmeess_RR.ffwwtt...... Times Roman

Note that these tables are designed  for the fonts used on the Pacific Page
implementation  of the  PostScript language.  They  may not  work correctly
with genuine Adobe fonts.

The following gives an example program to demonstrate the PostScript fonts:

    .lf HR  HelvNar_R.fwt  12
    .lf HC  Avant_B.fwt    24
    .lf DB  Dingbats.fwt    9
    .vs 14
    .sp
    \f(HRThis is 12-point Helvetic Narrow Roman
    .vs 26
    .sp
    \f(HCThis is 24-point Avant-Garde
    .vs 11
    .sp
    \fRA row of dingbats:  \f(DBa row of dingbats

This program will not work unless  you format using the -pp option to ttrrooffff,
and print it on a  PostScript printer.  Please note that because PostScript
is a portable language, you can print the PostScript output of ttrrooffff on any
printer that implements PostScript, not just the Hewlett-Packard LaserJet.

COHERENT comes with tools with which you can ``cook'' fonts so that you can
use with  with ttrrooffff, whether the  fonts are downloadable soft  fonts or on
board a  cartridge.  To cook  fonts that are  on-board a cartridge  in your
printer, do the following:

-> First, the  PostScript cartridge  should come with  a set of  files that
   give font-width  information.  These have the  suffix .aaffmm; there should
   be one  file for each  font in your  cartridge.  If you  did not receive
   such  a  cartridge, contact  the  dealer from  which  you purchased  the
   cartridge,  or contact  the cartridge's  manufacturer.  Use  the command
   ddoossccpp to copy the .aaffmm files from the disk onto your COHERENT system.

-> Use the  command ffwwttaabbllee -pp  to cook each  .aaffmm file into  ttrrooffff's font-
   width table  format.  Each font-width table that  you create should have
   the suffix  .ffwwtt, and should  be named so that  it appropriate describes
   the font.  See the above table of font-width tables for examples.

   Move    the   newly   created    font-width   tables    into   directory
   /uussrr/lliibb/rrooffff/ttrrooffff_ppss/ffwwtt.

   Thereafter, when  you write  a ttrrooffff program,  use the .llff  primitive to
   load the font-width table.  You may wish to create a file called ffoonnttss.rr
   that  routinely  loads  all  of  the  font-width  tables  that  you  use
   routinely.  You do  _n_o_t need to load fonts into  your printer; the font-
   width table  includes the  information needed  so that ttrrooffff  can invoke
   them from your cartridge.

COHERENT  comes with  tools to  help you manage  download soft  fonts under
PostScript.  Note  that the fonts  must be in  the Adobe Font  Metric (AFM)
format.  To manage downloadable AFM fonts, do the following:

-> A  downloadable AFM  font comes  in three files:  a file  of information
   about the  font, which  has the  suffix .iinnff; a  file that  contains the
   font-width table,  which has the  suffix .aaffmm; and a  file that contains
   the font  itself, which has  the suffix .ppffbb.   You can ignore  the .iinnff
   file;  it is  not used  in this  process.  You  should use  the COHERENT
   command ddoossccpp  -bb to  copy the  .ppffbb from the  floppy disk; and  use the
   command ddoossccpp -aa to copy the .aaffmm file from floppy disk.  (The options -
   bb and -aa stand, respectively, for binary and ASCII modes.)

-> Use the command

       fwtable -p _f_o_n_t_n_a_m_e.afm _f_o_n_t_n_a_m_e.fwt

   to  generate the  font-width table  from the .aaffmm  file.  Note  that the
   font-width table should have the suffix .ffwwtt.  By convention, you should
   give  the font-width  table  the same  name  as the  font,  to help  you
   remember  which  table  goes with  which  font;  this,  however, is  not
   required.  For  example, to  create the  font-width table for  the Adobe
   font Avant Garde bold, use the following command:

       fwtable -p avgb____.afm avgb____.fwt

-> Move    the   newly    created   font-width    table    into   directory
   /uussrr/lliibb/rrooffff/ttrrooffff_ppss/ffwwtt.

-> Next, use the command PPSSffoonntt to  ``cook'' the .ppffbb file into a form that
   can be downloaded to your printer.   Note that a font can be cooked into
   either of two  forms.  The first form permits the  font to stay resident
   in your printer, so that you can use it to print an indefinite number of
   documents.  The second form does not permit the font to stay resident in
   your printer, but it does permit you to include the font directly within
   your ttrrooffff output.   The first form is the default  output of PPSSffoonntt; to
   create the  second form, invoke PPSSffoonntt with its  option -ss. For example,
   to cook the font Avant Garde  bold into the first output format, use the
   command:

       PSfont avgb____.pfb avgb____.ps1

   To it into the second form, use the command:

       PSfont -s avgb____.pfb avgb____.ps2

   Note that  the suffix .ppss11  indicates the first  (stay-resident) form of
   the font, whereas the suffix .ppss22 indicates the second (includable) form
   of  the  font.   These suffixes  are  simply  conventions,  and are  not
   required.

-> Move the  newly created fonts  into directory /uussrr/lliibb/rrooffff/ttrrooffff_ppss/ppss.
   Note that you may need to  create this directory when you first begin to
   process fonts.

-> When you  create a ttrrooffff program,  use the primitive .llff  to include the
   font-width table for this font and size the font, as described above.

-> If you have processed the fonts into the first (stay-resident) form, you
   must load them into your printer before you can print any documents.  To
   download  the font,  use either  the command  hhpprr -BB  or the  command llpp
   -dd_p_r_i_n_t_e_r (where  _p_r_i_n_t_e_r names the  printer to which the  font is being
   downloaded).   For example,  to download  the Avant  Garde bold  font to
   printer hhpprraaww, use the command:

       lp -dhpraw /usr/lib/roff/troff_ps/ps/avgb____.ps1

   (For more information  on the command llpp, see its  entry in the Lexicon,
   or  see the  entry for  pprriinntteerr.)  You may  wish to  create a  script to
   download the fonts that you use commonly.  Note that you must reload the
   fonts into  your printer every time  you either power up  the printer or
   clear out its memory.   Note, too, that downloading and processing stay-
   resident fonts  may take several minutes,  depending upon your printer's
   make.

-> To use the ``includable'' form of a font, use the ttrrooffff primitive .rrbb to
   load  it  into the  ttrrooffff.  For  example, to  include  Avant Garde  bold
   directly within  your ttrrooffff output,  include the following  statement in
   your ttrrooffff source:

       .rb /usr/lib/roff/troff_ps/ps/avgb____.ps2

   If you use  some downloadable fonts commonly, you may  wish to include a
   set of  .rrbb statements for  the fonts in  file ffoonnttss.rr. Note  that files
   that include  downloadable fonts will be _m_u_c_h larger  than those that do
   not use them.

_F_i_l_e_s
/ttmmpp/rrooff* -- Temporary files
/uussrr/lliibb/ttmmaacc.* -- Standard macro packages
/uussrr/lliibb/rrooffff/ttrrooffff_ppccll/ -- Support files directory for PCL
/uussrr/lliibb/rrooffff/ttrrooffff_ppss/ -- Support files directory for PostScript
/uussrr/lliibb/rrooffff/ttrrooffff_*/.pprree --  Output prefix
/uussrr/lliibb/rrooffff/ttrrooffff_*/.pprree_llaanndd -- Output prefix, landscape mode
/uussrr/lliibb/rrooffff/ttrrooffff_*/.ppoosstt -- Output suffix
/uussrr/lliibb/rrooffff/ttrrooffff_*/.ppoosstt_llaanndd -- Output suffix, landscape mode
/uussrr/lliibb/rrooffff/ttrrooffff_*/ffoonnttss.rr -- Font definitions
/uussrr/lliibb/rrooffff/ttrrooffff_*/ffwwtt/ -- Directory for font width tables
/uussrr/lliibb/rrooffff/ttrrooffff_*/ssppeecciiaallss.rr -- Special character definitions

_S_e_e _A_l_s_o
ccooll, ccoommmmaannddss, ddeerrooffff, ffwwttaabbllee, hhpprr, llpp, mmaann, mmss, nnrrooffff, pprriinntteerr, PPSSffoonntt
_n_r_o_f_f, _T_h_e _T_e_x_t-_F_o_r_m_a_t_t_i_n_g _L_a_n_g_u_a_g_e, tutorial

Adobe Systems Incorporated:  _P_o_s_t_S_c_r_i_p_t _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l. Reading,
Mass.: Addison-Wesley Publishing Company, Inc., 1988.

Adobe  Systems  Incorporated: _P_o_s_t_S_c_r_i_p_t  _L_a_n_g_u_a_g_e  _T_u_t_o_r_i_a_l _a_n_d  _C_o_o_k_b_o_o_k.
Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1988.

Emerson, S.L., Paulsell,  K.: _t_r_o_f_f _T_y_p_e_s_e_t_t_i_n_g _f_o_r _U_n_i_x _S_y_s_t_e_m_s. Englewood
Cliffs, N.J.: Prentice-Hall, Inc., 1987 (ISBN 0-13-930959-4).  _R_e_c_o_m_m_e_n_d_e_d.

Lawson, A.:  _P_r_i_n_t_i_n_g _T_y_p_e_s: _A_n _I_n_t_r_o_d_u_c_t_i_o_n.   Boston: Beacon Press, 1971.
_A_n _e_x_c_e_l_l_e_n_t _i_n_t_r_o_d_u_c_t_i_o_n _t_o _t_y_p_e _a_n_d _t_y_p_e_s_e_t_t_i_n_g.

Lawson,  A.: _A_n_a_t_o_m_y  _o_f _a  _T_y_p_e_f_a_c_e. Boston:  David R.  Godine, Publisher,
1990.  _A_n _e_x_c_e_l_l_e_n_t _i_n_t_r_o_d_u_c_t_i_o_n _t_o _t_h_e _f_a_m_i_l_i_e_s _o_f _t_y_p_e_f_a_c_e_s.

Tufte,  E.W.: _T_h_e  _V_i_s_u_a_l  _D_i_s_p_l_a_y _o_f  _Q_u_a_n_t_i_t_a_t_i_v_e _I_n_f_o_r_m_a_t_i_o_n.  Cheshire,
Conn.: Graphics  Press, 1983.  _S_u_p_e_r_b_l_y  _i_n_t_r_o_d_u_c_e_s _t_h_e _s_u_b_j_e_c_t  _o_f _g_r_a_p_h_i_c
_d_e_s_i_g_n.

University of  Chicago Press: _A  _M_a_n_u_a_l _o_f _S_t_y_l_e _f_o_r  _A_u_t_h_o_r_s, _E_d_i_t_o_r_s, _a_n_d
_C_o_p_y_w_r_i_t_e_r_s, ed. 12,  revised.  Chicago: University of Chicago Press, 1969.
_S_t_i_l_l _t_h_e  _b_e_s_t _o_n_e-_v_o_l_u_m_e _r_e_f_e_r_e_n_c_e  _f_o_r _c_o_p_y _e_d_i_t_o_r_s: _i_f  _y_o_u'_r_e _g_o_i_n_g _t_o
_p_u_b_l_i_s_h _m_a_n_u_a_l_s, _y_o_u _s_h_o_u_l_d _d_o _i_t _r_i_g_h_t.

_N_o_t_e_s
Like nnrrooffff, ttrrooffff should be used with the macro packages mmss, which is found
in  the  file  /uussrr/lliibb/ttmmaacc.ss,  and  mmaann,  which  is  found  in  the  file
/uussrr/lliibb/ttmmaacc.aann.

ttrrooffff output, unlike that of  nnrrooffff, cannot be processed through a terminal
driver.  If  you redirect the output  of ttrrooffff to a  terminal, all you will
see is the literal program it outputs.

Laser printers cannot  print on an area near each  edge of the output page.
Output sent to the unprintable  area will disappear.  On some printers, the
_l_o_g_i_c_a_l _p_a_g_e  does not  correspond to the  _p_h_y_s_i_c_a_l _p_a_g_e, so  printed ttrrooffff
output may be offset from the specified position on the physical page.
