PROFF - Portable ROFF (1 of 5)

Ozan Yigit oz at yetti.UUCP
Tue Jan 14 14:57:20 AEST 1986


#!/bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #!/bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	READ_ME
#	proff.man
# This archive created: Mon Jan 13 23:49:39 1986
export PATH; PATH=/bin:$PATH
echo shar: extracting "'READ_ME'" '(1426 characters)'
if test -f 'READ_ME'
then
	echo shar: over-writing existing file "'READ_ME'"
fi
sed 's/^X//' << \SHAR_EOF > 'READ_ME'
XProff - A portable formatter
X
XThis is the first distribution of PROFF, a formatter based
Xon software tools ROFF. It is mainly a C re-write of ROFF,
X(now known as FORMAT), with some expansions. It is mainly
Xintended for non-UN*X systems, CP/M, MS-DOS and the like.
X
XProff was originally written for The Faculty of Administrative
XStudies, York University, to supplement their microcomputer
Xenvironment. As of this release, the formatter is in the
Xcontrol of The Faculty of Administrative Studies.
X
XThere is no man page for proff, for it was never intended
Xfor UN*X systems. There is, however two comprehensive
Xdocuments to answer all questions.
X
XThe C code for PROFF is quite warped, and should be approached
Xcarefully. [Ok..Ok.. it is all my fault.. too much midnight
Xoil..]	It is reasonably customazible, by changing proffsym.new.
XThis file is processed by ltb, a static hash table generator.
XThis approach is most useful to change the operator keywords,
Xcreate aliases, and it also bypassess the initialization
Xoverhead. [see the makefile for the right output file names
Xfor ltb]
X
XPROFF is not copyrighted, at least for this release. Future
Xreleases may contain York University copyright.
X
XPlease send me all updates, bugfixes and other tidbits,
Xso that future releases may be coordinated smoothly.
X
Xenjoy.
X		oz
X		bitnet: oz at yuyetti
X			oz at yusol
X		usenet: {ihnp4|decvax|allegra|linus}!utzoo!yetti!oz
X		phonet: (416) 667 3976
X
SHAR_EOF
if test 1426 -ne "`wc -c 'READ_ME'`"
then
	echo shar: error transmitting "'READ_ME'" '(should have been 1426 characters)'
fi
echo shar: extracting "'proff.man'" '(61510 characters)'
if test -f 'proff.man'
then
	echo shar: over-writing existing file "'proff.man'"
fi
sed 's/^X//' << \SHAR_EOF > 'proff.man'
X
X
X
X
X
X
X
X
X                       PROFF User's Guide
X
X                           Version 1.0
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                         ***  *******
X                         ***  *********
X                              **      **
X                              **      **
X                              *********
X                              *******
X                              **
X                              **
X                              **
X                         ******
X                         ****
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                  Ozan S. Yigit & Steven Tress
X                           March 1984
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                       1
X
X
X11..00 IInnttrroodduuccttiioonn     
X
X     This manual  describes  PROFF,  a  formatter  based  on  the
XFORMAT utility presented in _S_o_f_t_w_a_r_e _T_o_o_l_s_.  
X
X     PROFF was  produced to provide a powerful formatter that can
Xbe  used  under  a  variety  of  microcomputers, thus providing a
Xconsistent  formatting  tool  across  environments.  PROFF can be
Xused  to  format memos, reports, form letters  and documents such
Xas  this  manual.  It  can  also  be  configured  to mimic  other
Xformatting systems of similar nature.  
X
X     This document  itself was produced with PROFF, using most of
Xits  advanced  features.   PROFF  took  care  of  such  things as
Xauto-paragraphing  and  the  production of  the Table of Contents
Xas the manual was being formatted.  
X
X     PROFF was  developed  under  a Digital Equipment Corporation
XRainbow  100,  using  Mark  Williams  C  Compiler for portability
Xreasons.  PROFF  is  available  under  VAX/VMS  operating system.
XPROFF  implementations  for   IBM  PC and APPLE ][ microcomputers
Xare also underway.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
XRainbow,    VAX/VMS   are   trademarks   of   Digital   Equipment
XCorporation.  
XMark  Williams  C  Compiler  is  a  trademark  of  Mark  Williams
XCompany.  
XIBM  is a registered trademark of International Business Machines
XInc.  
XAPPLE is a trademark of Apple Computer Inc.  
XUNIX is a trademark of Bell Laboratories.  
X
X
X
X
X
X
X1.0                    Proff User's Guide                       2
X
X
X22..00 GGeenneerraall DDeessccrriippttiioonn    
X
X22..11 TThhee IInnppuutt    
X
X     The text  that  is to be formatted by PROFF is typed into an
Xinput  file using any text editor. This file contains the text to
Xbe formatted as well as PROFF commands.  
X
X     Each line  in  the  input file is either a command line or a
Xtext  line.  A  command  line is a line that begins with a period
X(".").  All other lines are text lines. The command lines are not
Xprinted  -  they  tell  PROFF  how you want it to format the text
Xthat  follows.  Appendix  A  summarizes all of the PROFF commands
Xfor a quick reference.  
X
X22..11..11 TTeexxtt     
X
X     Text can  be  entered  into  the  input  file in any format.
XPROFF  removes  all  extra  blanks  and  tabs  between words when
Xoperating  in  fill  mode.  This  means  you do not have to worry
Xabout  how many words you put on a line, and you can break  lines
Xwherever  it is convenient to your typing. Note however, that you
Xcannot break a word between two lines.  
X
X     Blanks and  tabs at the beginning of a line are not removed.
XThis  is  useful  for  producing  special  tables  and performing
Xspecial  types  of  indentation.   Thus, normal text lines should
Xnot have any leading tabs or blanks.  
X
X22..11..22 CCoommmmaannddss     
X
X     A command  is  a line that starts with a period. Immediately
Xfollowing  the  period  is a command name. Some commands accept a
Xnumeric  quantity  or a character string parameter, which must be
Xseparated  from  the  command  name  by  a  space or a comma. For
Xexample, an indent command might appear as follows: 
X
X     |
X     |It is to do nothing that the elect exists.
X     |.in 5
X     |- Oscar Wilde
X     |
X
X     Assuming that  the  left margin was at column 1, PROFF would
Xproduce the following: 
X
X     |
X     |It is to do nothing that the elect exists.
X     |     - Oscar Wilde
X     |
X
X     (In the  examples above, as in those following, the vertical
X
X
X
X
X
X1.0                    Proff User's Guide                       3
X
X
Xline  indicates  the  left  edge of input or the left edge of the
Xprinted page).  
X
X     The number  following  the command may be preceeded by a "+"
Xor  "-"  sign.   This plus or minus sign indicates an addition or
Xsubtraction  of  the  number to or from the current value for the
Xcommand. for example, the text: 
X
X     |
X     |Nothing to do but work,
X     |.in +3
X     |Nothing to eat but food,
X     |.in -3
X     |Nothing to wear but clothes
X     |.in +3
X     |To keep one from going nude.
X     |.in +7
X     |-Benjamin King
X     |
X
Xwill produce as output:
X
X     |
X     |Nothing to do but work,
X     |   Nothing to eat but food,
X     |Nothing to wear but clothes
X     |   To keep one from going nude.
X     |          -Benjamin King
X     |
X
X     If a  number  is not supplied with a command that requires a
Xnumber,  PROFF  will  use  a default value. The defaults for each
Xcommand are summarized in Appendix A.  
X
X22..22 TThhee OOuuttppuutt    
X
X     The main  functions  performed  by  PROFF  are   _f_i_l_l_i_n_g and
X_j_u_s_t_i_f_y_i_n_g_.   A  line  is filled by packing as many words onto it
Xas  will  fit.  The  line  is  justified  by spacing words evenly
Xbetween  the  left  and  right  margins.  When  PROFF  starts, it
Xassumes  that  the text is to be filled and justified. Of course,
Xwhen  fill and justify are not needed (as in the case of a letter
Xor  a  table), there are commands to turn these features off, and
Xback on again, as necessary.  
X
X     When PROFF  is  in  fill  mode, it normally strips out extra
Xspaces and tabs  between words.  
X
X     Many PROFF  commands  cause  a _b_r_e_a_k to occur in the output.
XThis  means  that the line currently being filled is  immediately
Xoutput. Any following text goes into a new output line.  
X
X
X
X
X
X
X1.0                    Proff User's Guide                       4
X
X
X22..33 EExxeeccuuttiinngg PPRROOFFFF    
X
X     Once a  text  file is ready for formatting, PROFF is started
Xby  typing  the  program name, various options, name of the input
Xfile and the name of the output file. For example the command 
X
X     A> proff  -po5 proffman.prf proff.man 
X
Xwould  produce  this  document  as  proff.man, from an input file
Xproffman.prf,   shifted  right  by 5 spaces.  (The symbol "A>" is
XCP/M system prompt).  
X
X22..44 BBiibblliiooggrraapphhiicc NNootteess    
X
X     PROFF wa   produced   by   re-writing   the  Software  Tools
XFormatter   FORMAT.   Some  of  the  ideas  are  from  Freshwater
XInstitute  RUNOFF,  NROFF,   University  of  Waterloo  SCRIPT and
Xother  formatters  of similar nature. The underlying ideas of the
Xmentioned  above  formatters  may  be  found in _S_o_f_t_w_a_r_e _T_o_o_l_s by
XB.W.  Kernighan and P.J. Plauger. 1976. (Addison-Wesley, Reading,
XMass.).  
X
X22..55 RReeffeerreenncceess aanndd RReeaaddiinnggss   
X
XBrian W. Kernighan and P. J. Plauger,
X_S_o_f_t_w_a_r_e _T_o_o_l_s
XAddison-Wesley (1976)
X
XR. Furuta, J. Scofield and A. Shaw,
X_D_o_c_u_m_e_n_t _F_o_r_m_a_t_t_i_n_g _S_y_s_t_e_m_s_:
X_S_u_r_v_e_y_, _C_o_n_c_e_p_t_s_, _a_n_d _i_s_s_u_e_s
XACM Computing Surveys, Sept. 1982, Pp. 417
X
XMark Stuart Brader,
X_A_n _I_n_c_r_e_m_e_n_t_a_l _T_e_x_t _F_o_r_m_a_t_t_e_r
XDepartment of Computer Science
XUniversity of Waterloo, CS-81-12
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                       5
X
X
X33..00 CCoommmmaanndd DDeessccrriippttiioonnss    
X
X     This section  describes PROFF commands. Commands specify how
Xthe  program  is  to  process  the  text lines in the input file.
XLines  in the input file that begin with a period (or the control
Xcharacter  selected  by  the  user)   immediately  followed  by a
Xcommand  name  are  commands.  Any line that begins with a period
Xand  followed  by  a  #  or ! is a comment line and is ignored by
XPROFF  - this allows you to put information in the file that will
Xbe neither processed nor output by PROFF.  
X
X     As described  earlier,  some of the commands can be followed
Xby  "parameters".   Parameters  are  used in executing a command;
Xfor  example, in the command ".sp 3", the parameter "3" tells the
Xformatter  to  insert  3  blank  lines  into  the  document.  The
Xfollowing conventions are used in describing the parameters: 
X
X   o Parameters  surrounded  by  square brackets are optional. If
X     not supplied, PROFF assumes a default value.  
X     (e.g. .sp [n]) 
X
X   o Parameters  surrounded  by  angle  brackets  are  mandatory.
X     PROFF  will  display  a fatal error message if the parameter
X     is absent. (e.g. .set <variable name>) 
X
X   o Parameters  surrounded  by squiggly brackets are to be typed
X     exactly as indicated. (e.g. .pn {roman}) 
X
X   o A  bar  character  seperating the parameters within brackets
X     indicate  an  alternative. (e.g. .st [+|-][n] means both .st
X     [+n] and .st [-n]) 
X
X     In describing  the  commands, the command is typed exacty as
Xaccepted  by  PROFF with the associated control character default
X(".").  If  more  than  one  form  of  the command is accepted by
XPROFF,  the  command names are separated with a bar indicating an
Xalternative.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                       6
X
X
X33..11 FFiilllliinngg aanndd JJuussttiiffyyiinngg   
X
X.fi | .f | .fill 
X
X     The  fill  command  causes  a line to be filled with as many
X     words  as  the  right  margin  allows. For this purpose, all
X     extra  blanks  and tabs are removed between words. Each word
X     is  separated  with  a  single  blank.  PROFF  automatically
X     assumes fill mode during the startup.  
X
X.nf | .nofill 
X
X     No  fill  discontinues the filling of the text. PROFF simply
X     copies  the  text to the output. This command may be used to
X     pass   tables   and   other   text   unaltered  through  the
X     formatter.  
X
X.ju | .j | .justify 
X
X     Justify  causes  the  words  on  a  line to be evenly spaced
X     between  the left and the right margins. Note that lines can
X     be  justified  only  if  lines  are also being filled. PROFF
X     automatically assumes justify mode during the startup.  
X
X.nj | .nojustify 
X
X     No justify discontinues the text justification.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                       7
X
X
X33..22 TTeexxtt FFoorrmmaattttiinngg    
X
X.br | .break 
X
X     Break  causes  a  break: the current line is printed without
X     justification,  and the next word is placed at the beginning
X     of  a  new  line.  Note  that  many  PROFF commands cause an
X     implicit break.  
X
X.in | .lm | .leftmargin [+|-][n] 
X
X     Indent  causes  a  break and indents the following lines [n]
X     spaces  to the right of the left margin. [n] can be negative
X     to  allow  beginning  a line to the left of the left margin,
X     however,  a  line cannot begin to the left of column 0. If a
X     plus  or  minus  sign  is  used with n, then [n] is added or
X     subtracted to or from the current value.  
X
X.ti | .i | .left [+|-][n] 
X
X     Temporary  indent  is identical to the indent command except
X     that  it   applies  only  to  the next line of printed text.
X     Thus,  the  command ".ti +5" would cause the next line to be
X     printed 5 spaces to the right of those that follow.  
X
X.st | .spaceto [-][n] 
X
X     Spaceto  allows  spacing  to  line  [n]  from the top of the
X     current  page.  If a negative [n] is specified, than spacing
X     is  performed  to  line  [n]  from  the  bottom  of the page
X     (excluding  the footer lines). Thus, footnotes can be set at
X     a  fixed  distance  from the bottom of the page by a command
X     such as ".st -5".  
X
X.sp | .s | .skip [n] 
X
X     Space  causes a break and skips [n] lines, except at the top
X     of   a  page.  The space command is dependent on the setting
X     of line spacing.  
X
X.ce | .center [n | on | off] 
X
X     Center  causes  the  next  [n]  lines of text to be centered
X     between  the  left  and  right  margins.  Centering  may  be
X     started  with  "on" and terminated with "off", in which case
X     all input lines between these commands will be centered.  
X
X.ul | .underline [n | on | off] 
X
X     Underline  command  causes  the  text  on the next [n] input
X     lines  to  be  underlined  when  printed. If [n] is omitted,
X     only  the  next  line  is  underlined. This command does not
X
X
X
X
X
X1.0                    Proff User's Guide                       8
X
X
X     cause  a  break,  so  words in filled text may be underlined
X     by: 
X
X
X          |
X          |The "Pay-off" Theory: Only
X          |.ul
X          |losers
X          |believe in luck, horses, horoscopes
X          |and
X          |.ul
X          |lotteries.
X          |
X
X     to get
X
X          | 
X          |The "Pay-off" Theory: Only _l_o_s_e_r_s believe in 
X          |luck, horses, horoscopes and _l_o_t_t_e_r_i_e_s_.  
X          | 
X
X          Underlining may  be  started  with  "on" and terminated
X     with "off", similar to the centering command.  
X
X.ul | .underline [all | words] 
X
X     This  version  of  the  underline command is used to set the
X     mode of underlining: 
X
X          all   - underline across all characters,
X                  including spaces.
X          words - underline words only
X
X
X.bd | .bold [n | on | off] 
X
X     The  bold  command  causes  the  text  on the next [n] input
X     lines  to be highlighted by overstriking. If [n] is omitted,
X     only  the  next line is highlighted.  Bolding may be started
X     with  "on"  and  terminated with "off" as in the case of the
X     center and underline commands.  
X
X.db | .dbo | .disablebolding 
X
X     Turns  the  bolding  off,  all bolding commands are ignored.
X     This feature is useful for rough drafts.  
X
X.eb | .ebo | .enablebolding 
X
X     Turns  the  bolding  feature  back  on. Bolding is turned on
X     during the PROFF startup.  
X
X
X
X
X
X
X1.0                    Proff User's Guide                       9
X
X
X33..33 PPaaggee FFoorrmmaattttiinngg    
X
X.ls | .spc | .spacing [n] 
X
X     Line  spacing is the command to set line spacing. Set n to 1
X     for single spacing, 2 for double spacing etc.  
X
X.bp | .pg | .page [n] 
X
X     The  begin  page  command  causes  a break, ends the current
X     page,  outputs footers if required and begins a new page. If
X     [n]  is  present, the page number is set to [n]. The default
X     action is to number the pages incrementally.  
X
X.pn | .pagenumber {roman} | {arabic} 
X
X     Page  number  command defines the format of the page number.
X     Uppercase  roman  numerals  may  be  obtained  with  "roman"
X     keyword.  To  convert  the  page  numbers  back  to  normal,
X     "arabic"  is  specified.  PROFF  uses  arabic  numerals as a
X     default.  
X
X.np | .nopaging 
X
X     No  paging  disables  the  pagination.  When  PROFF is in no
X     paging  mode,  "begin  page"  (.bp)  and "page length" (.pl)
X     commands  are  ignored. This mode of operation is especially
X     useful  for  using  the  proff  output with the multi-column
X     formatter (MC).  
X
X.pa | .paging 
X
X     Paging  enables  normal page generation. This command starts
X     a   new  page  and  restores  the  page  length to the value
X     previous to the ".np" command.  
X
X.ne | .need | .tp | .testpage [n] 
X
X     Test  page  checks  to see whether at least [n] lines remain
X     in  the  current  page.  If  less  than this number of lines
X     remain,  printing  will  resume at the top of a new page. If
X     [n] is missing, it is assumed to be zero.  
X
X.he | .header <text> 
X
X     Header  sets  the  text  to  be printed on top of each page.
X     <text>  is   divided  into  sections  which  are  to be left
X     justified,  centered  and  right justified. To divide <text>
X     into  these  three  parts, the first character is assumed to
X     be   a   separator.   (e.g.   /left/center/right/)  But  any
X     non-alphanumeric  character may also be used. The characters
X     "#"  and  "%"  are replaced with the current page number and
X
X
X
X
X
X1.0                    Proff User's Guide                      10
X
X
X     day/time in the header.  
X
X.fo | .footer <text> 
X
X     Footer  is  identical to header except that it sets the text
X     to be printed at the bottom of each page.  
X
X.oh <text> 
X
X     The odd header command sets the header for odd pages only.  
X
X.eh <text> 
X
X     The  even  header  command  sets  the  header for even pages
X     only.  
X
X.of <text> 
X
X     The odd footer command sets the footer for odd pages only.  
X
X.ef <text> 
X
X     The  even  footer  command  sets  the  footer for even pages
X     only.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      11
X
X
X33..44 PPaaggee LLaayyoouutt    
X
X     These commands  are  used  to  specify where on the page you
Xwant  the  formatted  text  to be placed. The general layout of a
Xpage is as follows: 
X
X        page offset (.po)                               |
X        |                                               |
X        V                                               |
X        +----+-------------------------------------+----+ -+
X        |    |  top margin (m1) includes header    |    |  |
X        +----+-------------------------------------+----+  |
X        |    |          top margin 2 (m2)          |    |  |
X        +----+-------------------------------------+----+  |
X        |    |                  .                  |    |  P
X        |    |<-- indent (.in)  .                  |    |  A
X        |    |                  .                  |    |  G
X        |    |                  T                  |    |  E
X        |    |                  E                  |    |
X        |    |                  X                  |    |  L
X        |    |                  T                  |    |  E
X        |    |                  .                  |    |  N
X        |    |               right margin (.rm) -->|    |  G
X        |    |                  .                  |    |  T
X        |    |                  .                  |    |  H
X        |    |                  .                  |    |  |
X        +----+-------------------------------------+----+  |
X        |    |          bottom margin 3 (m3)       |    |  |
X        +----+-------------------------------------+----+  |
X        |    |  bottom margin (m4) includes footer |    |  |
X        +----+-------------------------------------+----+ -+
X        |                                               |
X        |                                               |
X
X.po | .offset [+|-][n] 
X
X     The  page  offset command moves the entire page to the right
X     or  left  depending  on the specified value. All indentation
X     is  according  to  the  page  offset.  PROFF  assumes a page
X     offset  of  0 during the startup. If [n] is specified with a
X     plus  or  minus,  it  will  be  added or subtracted from the
X     current value.  
X
X.rm | .rightmargin [+|-][n] 
X
X     Right  Margin  sets  the  position  of  the  last  printable
X     character  from  the  left  edge of the page to [n]. Default
X     value  for  right  margin is 65.  A plus or minus value will
X     be  added  or  subtracted from the current value.  If [n] is
X     not specified, right margin is set to the default value.  
X
X.pl | .ps | .pagesize [n] 
X
X
X
X
X
X1.0                    Proff User's Guide                      12
X
X
X     Page  length  is used to set the number of lines that are to
X     be  printed on a page including the header and footer lines.
X     After  [n]  lines are printed, the paper will advance to the
X     top  of  next  page. The default page length is 66 lines (11
X     inches  for  6  lines/inch).  This  command  is  disabled if
X     nopaging is set.  
X
X.m1 [n] 
X
X     Margin  1  sets  the  number of lines (including the header)
X     which  will  be  left  at  the  top  of the page to [n]. The
X     default  setting  is  3.  If  [n]  is omitted, is set to the
X     default.  
X
X.m2 [n] 
X
X     Margin  2  sets the number of blank lines between the header
X     and the first line of text. The default setting is 2.  
X
X.m3 [n] 
X
X     Margin  3  sets the number of blank lines between the footer
X     and the last line of text. The default setting is 2.  
X
X.m4 [n] 
X
X     Margin  4  sets  the  number of lines (including the footer)
X     which  will  be  left  at the bottom of the page to [n]. The
X     default setting is 3.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      13
X
X
X33..55 TTaabbllee ooff CCoonntteennttss   
X
X     This section  describes  the  the  commands that are used to
Xgenerate  a table of contents. Basically, a contents line command
Xis  used  in every place in the document where an entry is needed
Xin  the  table  of  contents.  PROFF stores the text and the page
Xnumber  when  it  encounters this command.  After the the body of
Xthe  document  is  processed,  a print contents command dumps the
Xcontents  table.  The  contents  should  be dumped in a new page,
Xwith  nofill.  Page  numbering should be disabled if the table of
Xcontents is to be used in front of the document.  
X
X
X.cl | .contline [<n> <text>] 
X
X     Contents  line specifies a line of <text> to be entered into
X     the  table of contents. <n> specifies the level at which the
X     item  is  to  be  printed  in  the  table. When the table is
X     printed,  each  level  of entry will be indented by specific
X     number  of  spaces.  <text> appears in the output exactly as
X     it  appears  in  the  contents  line  command,  except  that
X     leading  blanks are removed.  If no options specified in the
X     contents   line,  a  blank  is  inserted  during  the  table
X     output.  
X
X.pc | .printcont [n] 
X
X     Print  Contents  causes  the  currently accumulated table of
X     contents  to  be printed. If [n] is specified, it is used as
X     the  indent  value for each level.  If [n] is not specified,
X     it is defaulted to 3.  
X
X          A contents   line   at   level   0   is   as   wide  as
X     rightmargin-indent.  The  outlook  of  the table of contents
X     may  be  changed  by  altering  the  right margin and indent
X     values.  A  typical  table  of  contents  may be produced as
X     follows: 
X
X          |.page
X          |.he ////
X          |.fo ////
X          |.nofill
X          |.sp
X          |.center
X          |Table of Contents
X          |.sp
X          |.printcont
X
X     The  following example illustrates the generation of a table
X     of  contents. Note that only one table of contents is active
X     for a PROFF session.  
X
X
X
X
X
X
X1.0                    Proff User's Guide                      14
X
X
X
X          .cl
X          .cl 0 A. Introduction
X          Introduction
X                  text
X                  .
X          .cl
X          .cl 0 B. Methods
X          Methods
X                  text
X                  .
X          .cl 1 a) Sampling Procedures
X          Sampling
X                  text
X                  .
X          .cl 1 b) Laboratory Procedures
X          Laboratory
X                  text
X                  .
X          .cl
X          .cl 0 C. Results
X          Results
X                  text
X                  .
X                  .
X          .pg
X          .nf
X          .he ////
X          .fo ////
X          .ce
X          Table of Contents
X          .sp
X          .pc
X
X     These commands will produce the following table:
X
X                          Table of Contents
X
X          A. Introduction...............................   1
X
X          B. Methods....................................   3
X             a) Sampling Procedures.....................   3
X             b) Laboratory Procedures...................   4
X
X          C. Results....................................   5
X
X     Macros   may  be  defined  as  described  in  the  following
X     sections to help the generation of the table of contents.  
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      15
X
X
X33..66 MMiisscceellllaanneeoouuss     
X
X     This section    describes    miscellaneous   commands   that
Xradically  increase  the  formatting  powers  of  PROFF. With the
Xassistance  of  variables,  PROFF  can  generate form letters and
Xdocuments  with  dynamic  parts.  The ability to save and restore
Xformatter  context  eliminates  the  need  to  remember the exact
Xsettings of the formatter across the document.  
X
X.vs | .set <variable> [definition] 
X
X     Set  variable   defines  a  variable to be later used in the
X     document.   If  the  definition part is left out, PROFF uses
X     the  variable name as a prompt and allows the user to define
X     the  variable  interactively.  Variable  names  cannot start
X     with   a   numeric   character,   and   may   only   contain
X     alphanumeric   characters.  The definition of a variable may
X     not  contain  any  blanks,  unless  they  are  surrounded by
X     double-quotes.  To  get  a  double  quote  within a a quoted
X     definition, two double-quotes are used.  
X
X          Once the  variable  is defined, it can be used anywhere
X     in  the  document,  including  the  command  line  itself. A
X     variable  substitution  is  invoked by a dollar sign ($). (A
X     literal  $ is inserted into text using _$).  A variable name
X     must  be  delimited  by  a non-alphanumeric character within
X     the   text.  If  the  contents  of  the  variable  is  to be
X     appended  to  other   alphanumeric  characters,  it  must be
X     surrounded  by  wiggly  braces  ("{" and "}"). The following
X     is an example of variable usage: 
X
X     |.nf
X     |.vs v1 Murphy
X     |${v1}'s first law:
X     |       Nothing is as easy as it looks.
X     |${v1}'s second law:
X     |       Everything takes longer than you think.
X     |Charley's observation:
X     |       Computers were invented by $v1.
X     |
X
X     Produces the following:
X
X     |
X     |Murphy's first law:
X     |       Nothing is as easy as it looks.
X     |Murphy's second law:
X     |       Everything takes longer than you think.
X     |Charley's observation:
X     |       Computers were invented by Murphy.
X     |
X
X
X
X
X
X
X1.0                    Proff User's Guide                      16
X
X
X.vg | .get <variable> <prompt> 
X
X     Get   variable   is  the  interactive  version  of  variable
X     definition.  In  this   variant,  a prompt string is used to
X     obtain  the  value  of  the  variable, which is typed at the
X     user's  terminal.  If  the  prompt  string  is  to   contain
X     blanks,  tabs etc., it must be enclosed in double quotes. No
X     quotes are necessary for input text.  
X
X.nr <a-z> [+|-][n] 
X
X     Number  register  is  used  to define registers that contain
X     numeric  values.   There are 26 number registers, named a-z.
X     The  command ".nr x n" sets the number register "x" to value
X     n;  ".nr  x  +n" increments the number register by n; ".nr x
X     -n"  decrements  the  number register by n. The value of the
X     number  register  x  is placed in the text by the appearance
X     of  @nx.  A  literal  @  may  be  inserted using _ at .  Number
X     registers  may  be used on command lines and anywhere in the
X     text.  
X
X.cc | .cchar [char] 
X
X     Control  Character   sets  the  character that distinguishes
X     PROFF   commands  from  text  to be formatted. As a default,
X     control  character  is set to  (".") period.  This character
X     may  be  changed to something other than a period, either to
X     mimic  other  formatters  or  to  disallow interpretation of
X     lines  beginning  with  a period. (This document makes heavy
X     use of the .cc command).  
X
X.ec | .echar [char] 
X
X     Escape  Character   sets  the  character  that disallows the
X     interpretation  of spacial characters such as @ and $. PROFF
X     uses an underline ("_") character as a default.  
X
X.so | .source | .include | .require [filename] 
X
X     The  source  (include)  command  allows external files to be
X     inserted  into  the  input file during the formatting. Using
X     this  feature, tables, graphs and other  documents generated
X     outside  PROFF  may  be  included  into  the  document being
X     formatted.  This  feature is also very useful in including a
X     common  set  of  macros during formatting. Include files may
X     be  nested inside other include files. Currently, PROFF only
X     allows  a  nested  include files level of 8. Filename may be
X     enclosed in quotes.  
X
X.sv | .save 
X
X     The  save command allows the saving of the current formatter
X
X
X
X
X
X1.0                    Proff User's Guide                      17
X
X
X     context  on  a   pushdown  stack.  The  saved context of the
X     formatter  segment (FSECT) includes the following values and
X     flags: 
X
X     values                  flags           on   |  off
X     ------                  -----           
X     indent          (.in)   fill            (.fi | .nf)
X     right margin    (.rm)   justify         (.ju | .nj)
X     offset          (.po)   paging          (.pa | .np)
X     line spacing    (.ls)   number type     (.pn)
X     page length     (.pl)   bolding         (.eb | .db)
X     margin values   (.m1)   autoparagraph   (.ap | .na)
X                     (.m2)
X                     (.m3)
X                     (.m4)
X     control char    (.cc)
X     escape char     (.ec)
X
X
X.rs | .restore 
X
X     The  restore command pops the context stack and restores the
X     values and flags as defined above.  
X
X.lx | .lex <command> [equate] 
X
X     The  lexical modification command is essentially a permanent
X     replacement  of  a  given  command. This command is used for
X     changing  the  command  names without resorting to the macro
X     facility.  Lex permanently removes the old command name from
X     command  tables and replaces it with the new definition.  If
X     the  equate is not specified, the command  becomes undefined
X     and  is  no  longer  recognised by PROFF. The command equate
X     should not contain  non-alphanumeric characters.  
X
X.ap | .autoparagraph 
X
X     The   autoparagraph   command   turns   on   the   automatic
X     paragraphing  feature.  If  auto-paragraphing  is  on, every
X     line  that starts with a  _b_l_a_n_k or a  _t_a_b character starts a
X     new  paragraph.  A  new  line  is  generated  (.sp)  and the
X     beginning  of  the  paragraph  is  indented  by five spaces.
X     Autoparagraphing   is   the   equivalent  of  the  following
X     commands: 
X          |
X          |textextextextext
X          |.sp
X          |.ti +5
X          |textextextextext
X          |
X
X.na | nap | .noautoparagraph 
X
X
X
X
X
X1.0                    Proff User's Guide                      18
X
X
X     No Autoparagraph command disables auto-paragraphing.  
X
X.wr | .write <string> 
X
X     Write  is  a  special  output  command,  only  to be used to
X     configure  printers  and  other  output  devices with escape
X     sequences.  This command outputs the associated string as it
X     is  encountered,  without  going  through  the normal output
X     routines  of the formatter. Currently, the output string may
X     contain  control  characters specified as "^<char>", decimal
X     numbers  within  the  range  of 1-255, and other characters.
X     Blanks  within  the  string  are skipped. Any portion of the
X     string  enclosed  with  double  quotes  is  output as is. To
X     output  a  double  quote,  two  double  quotes  must be used
X     within  the quoted string.  Following is a typical string to
X     set a Digital La-100 printer to letter quality print mode: 
X
X          |
X          |.wr ^["[2z"
X          |
X
X     In  the  control string, "^[" is the ASCII equivalent of the
X     Escape  (esc) character.  Following mapping table is used to
X     convert  characters  starting  with  a caret to their binary
X     equivalents: ("|" indicates an alternative) 
X
X          Control chr     Dec.    Oct.    Hex.
X          -----------     ----    ----    ----
X          ^a | ^A (soh)   1       01      01
X          ^b | ^B (stx)   2       02      02
X          ^c | ^C (etx)   3       03      03
X          ^d | ^D (eot)   4       04      04
X          ^e | ^E (enq)   5       05      05
X          ^f | ^F (ack)   6       06      06
X          ^g | ^G (bel)   7       07      07
X          ^h | ^H (bs)    8       10      08
X          ^i | ^I (ht)    9       11      09
X          ^j | ^J (nl)    10      12      0A
X          ^k | ^K (vt)    11      13      0B
X          ^l | ^L (np)    12      14      0C
X          ^m | ^M (cr)    13      15      0D
X          ^n | ^N (so)    14      16      0E
X          ^o | ^O (si)    15      17      0F
X          ^p | ^P (dle)   16      20      10
X          ^q | ^Q (dc1)   17      21      11
X          ^r | ^R (dc2)   18      22      12
X          ^s | ^S (dc3)   19      23      13
X          ^t | ^T (dc4)   20      24      14
X          ^u | ^U (nak)   21      25      15
X          ^v | ^V (syn)   22      26      16
X          ^w | ^W (etb)   23      27      17
X          ^x | ^X (can)   24      30      18
X
X
X
X
X
X1.0                    Proff User's Guide                      19
X
X
X          ^y | ^Y (em)    25      31      19
X          ^z | ^Z (sub)   26      32      1A
X          ^[      (esc)   27      33      1B
X          ^\      (fs)    28      34      1C
X          ^]      (gs)    29      35      1D
X          ^^      (rs)    30      36      1E
X          ^_      (us)    31      37      1F
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      20
X
X
X33..77 DDeeffiinniinngg NNeeww CCoommmmaannddss ((MMaaccrrooss))  
X
X     In document  formatting,  it is common to repeat a series of
Xcommands  at  several places in the document. PROFF allows you to
Xdefine  a  new command that will replace these repeated commands.
XThis  not  only  saves  typing  but ensures that _e_x_a_c_t_l_y the same
Xsequence  of  commands are applied throughout the document. A new
Xcommand  that you define is formally called a _m_a_c_r_o_.  To define a
Xmacro,  you  must  use  the  define macro (.de | .define) and end
Xmacro (.en) commands.  
X
X.de | .define <macro name> 
X
X     Define  is  used  to define a <macro name> to which a series
X     of   commands  to  be  assigned.  This  definition  line  is
X     followed  by  any number of PROFF commands and/or text which
X     define  the action that the macro will subsequently produce.
X     Macros may refer to other macros.  
X
X.en 
X
X     End  macro  is  the last line in the command definition. You
X     must  put  in  this  command  to  finish a currently defined
X     macro. ".en" command should not be re-defined as a macro.  
X
XThe  example below defines macros ".note" and ".endnote", similar
Xto the RUNOFF commands of the same name.  
X
X     |
X     |.define note
X     |.sp
X     |.ce
X     |NOTE
X     |.sp
X     |.fi
X     |.in +5
X     |.rm -5
X     |.en
X     |
X     |.define endnote
X     |.sp
X     |.nf
X     |.in -5
X     |.rm +5
X     |.en
X     |
X
X     A macro  is  used  like  any  other  PROFF  command, control
Xcharacter  followed  immediately   by  the name of the macro. For
Xexample, the above macros may be used as follows: 
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      21
X
X
X
X     |
X     |.note
X     |textextextextextextextextextext
X     |              .
X     |              .
X     |              .
X     |.endnote
X     |
X
XThe  following  note  is  generated  by the same macros described
Xpreviously.  
X
X                              NOTE
X
X     Flap's  Law:  Any  inanimate  object, regardless of its
X     position  or  configuration, may be expected to perform
X     at  any time in a totally unexpected manner for reasons
X     that  are  either  entirely  obscure or else completely
X     mysterious.  
X
XSpecial  symbols  may  be  used  within a macro definition. These
Xsymbols  represent the parameters passed to a macro, delimited by
Xblanks  or  commas.   These symbols are $0 for macro name, $1 for
Xthe  first  parameter,  $2 for the second parameter and so on, up
Xto  $9  for  the ninth parameter. Currently, macro parameters may
Xonly  contain  alphanumerics,  no string parameters are possible.
XThe previous macro "note" may now be defined as follows: 
X
X     |
X     |.define note
X     |.sp
X     |.ce
X     |$2 $3 $4 $5 $6 $7 $8 $9
X     |.nr m $1
X     |.sp
X     |.fi
X     |.in +$1
X     |.rm -$1
X     |.en
X     |
X     |.define endnote
X     |.sp
X     |.nf
X     |.in - at nm
X     |.rm + at nm
X     |.en
X     |
X
X     In this  version  of  the  "note"  and "endnote" macros, the
Xfirst  parameter  ($1)  is used to pass the value for indentation
Xand   right  margin  adjustment.   All  the  rest  of  the  macro
X
X
X
X
X
X1.0                    Proff User's Guide                      22
X
X
Xparameters  ($2  -  $9)  are  used  as the title of the note. The
Xindent  value  passed as the first parameter is also saved in the
Xnumber  register  "m"  to  communicate it to the "endnote" macro,
Xsuch  that  when  the  endnote  macro  is called, both indent and
Xright  margin  values are adjusted back to normal. It is possible
Xand  may be more useful to use ".save" and ".restore" commands to
Xaccomplish  the  same  task,  especially  if the macro alters the
Xcurrent   formatting   context   drastically.   The  ".note"  and
X".endnote" macros may be called as follows: 
X
X     |
X     |.note 5 Asimov's Law of Robotics
X     |textextextextextextextextextext
X     |              .
X     |              .
X     |              .
X     |.endnote
X     |
X
X     In this  usage,  the  indent  value  will be adjusted by +5,
Xright  margin will be adjusted by -5, and the title "Asimov's Law
Xof Robotics" will appear centered above the note.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      23
X
X
X44..00 EExxeeccuuttiinngg PPRROOFFFF    
X
X     The PROFF  program  may be invoked with a series of optional
Xparameters  and  filenames  on  the  command  line.  The  command
Xsynopsis is: 
X
XPROFF [+n] [-n] [-v] [-s] [-pon] [-ifile] input [output] 
X
XThe    square    brackets   indicate   an   optional   parameter.
XInterpretation of the parameters is as follows: 
X
X     ++nn 
X          Start  the  printing  of the document at the first page
X          with number n.  
X
X     --nn 
X          Stop  printing  at  the first page numbered higher than
X          n.  
X
X     --vv 
X          Verbose  mode.  PROFF  indicates the source files being
X          included  into  document, and produces a summary of the
X          number  of  textlines  read in, the number of lines and
X          actual  pages  generated.  A  memory  usage  summary of
X          internal  storage for macros, stacks and tables is also
X          displayed.  
X
X     --ss 
X          Stop  before  each  page,  including  the  first one to
X          allow  paper  adjustment. A prompt is given just before
X          the  first page. For each page thereafter, the terminal
X          bell  is  rung  to indicate that another sheet of paper
X          is needed.  
X
X     --ppoonn 
X          Sets  the page offset to n. This is equivalent to ".po"
X          command  within  the  document.  It is recommended that
X          -pon  option  be  used  instead of embedding the offset
X          value within the document.  
X
X     --iiffiillee 
X          Includes  the  given  file  to  the formatted document.
X          This  is equivalent to a ".include file" command within
X          the  document.  This  option  may be repeated more than
X          once, -ifile1 -ifile2 etc.  
X
X     iinnppuutt 
X          Specifies  the  input  file to be formatted. PROFF does
X          not   impose   any   file  extension.  The  recommended
X          extension is ".PRF".  
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      24
X
X
X
X     oouuttppuutt 
X          Specifies  the  output file for the formatted document.
X          If  this  is  omitted, output is directed to the user's
X          terminal.  
X
XFollowing are some examples of PROFF command lines: 
X
X     A>PROFF -v proffman.prf 
X
XFormat  this  document (proffman.prf) in verbose mode, and output
Xthe formatted document to the terminal.  
X
X     A>PROFF +5 -imacros.pma proffman.prf 
X
XFormat  this document, include the external file MACROS.PMA, skip
Xthe  first  four  pages  and output the formatted document to the
Xterminal.  
X
X     A>PROFF -po10 proffman.prf proff.man 
X
XFormat  this  document, shift the entire document by 10 spaces to
Xright and output to a file called proff.man.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      25
X
X
X55..00 TTiippss oonn uussiinngg PPRROOFFFF  
X
X55..11 CCaarree aanndd FFeeeeddiinngg ooff MMeemmoorryy 
X
X     PROFF uses  a  dynamic  memory allocation scheme for some of
Xits  operations.   These  are  macro definitions, contents lines,
Xvariables  and  save  context   operation.   Running  PROFF under
Xmicrocomputers  with  limited  memory  resources  (64k  or  less)
Xrequire some care in using these commands: 
X
Xa) Do   not  declare  macros  that  are  not  needed  within  the
X   document.  
X
Xb) Do  not use comments within macros. Due to delayed evaluation,
X   comments   will  also  be  stored  as  a  part  of  the  macro
X   definition.  
X
Xc) Where  possible,  avoid  using too much text within macros. It
X   is  just  as  easy  to  pass  the information during the macro
X   call.  
X
Xd) Use only the shortest form of commands within macros.  
X
Xe) Be brief in contents line text.  
X
Xf) Use  short  variable  names as long as it is not so cryptic as
X   to be confusing.  
X
Xg) Avoid unnecessary blanks within the variable definitions.  
X
Xh) Avoid  too many context saves without a corresponding restore.
X   The restore operation reclaims the memory used for a save.  
X
X
X     Even if  the formatter is used with a system of large memory
Xresources,  some  of the precautions above are applicable. (Utz's
X4th   law   of  Computer  Programming:  Any  given  program  will
Xeventually  expand  to  fill all the available memory.) Using the
X-v  option  under  memory-restricted  systems  may  be  useful in
Xdetermining the memory usage.  
X
X
X55..22 FFoorrmmaattttiinngg wwiitthhoouutt ffuussss   
X
X     PROFF, using  its  default  settings, may provide reasonably
Xformatted  output in many situations.  As an example, examine the
Xdocument  PROFF.TUT.  This  document  does not use ANY formatting
Xcommands. All formatting is done with the default settings.  
X
X
X55..33 VVaarriiaabblleess wwiitthhiinn mmaaccrrooss   
X
X
X
X
X
X
X1.0                    Proff User's Guide                      26
X
X
X     Variable expansions  may  be  performed  within  the macros.
XTypically,  one of the parameters of the macro is assumed to be a
Xvariable, which is expanded only after the macro is used. Thus: 
X
X     |
X     |.define xx
X     |.ce
X     |$$1
X     |.cl $$1
X     |.en
X     |
X
XThe  macro xx assumes the first parameter to be a variable, which
Xis  centered  on  the  page,  and  also  entered  in the table of
Xcontents.   Note the usage of "$$1". The lines within a macro are
Xscanned  from  right  to left for parameter expansion. Thus, "$1"
Xis  expanded  first,  resulting  in "$<first parameter>". This is
Xlater expanded as a variable.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      27
X
X
X66..00 EExxaammppllee mmaaccrrooss    
X
X     .!
X     .! macros to create a point-form lists.
X     .! note the use of number registers within
X     .! the macros.
X     .!------------
X     .define list
X     .nr a $1        
X     .in $1
X     .en
X     .!------------
X     .define item
X     .sp
X     .ti - at na
X     $1
X     .en
X     .!------------
X     .define nolist
X     .in - at na
X     .sp
X     .en
X     .!------------
X
XThe  "list" macro is used to generate point-form lists. The first
Xparameter  is  an  indent value, size of point-str + 1. A typical
Xusage may be as  follows: 
X
X     |
X     |Project work involves:
X     |.sp
X     |.list 3                { size-of-point-str + 1 }
X     |.item a)               { "a)" is the point-str }
X     |choosing a topic
X     |.item b)
X     |defining the topic
X     |.item c)
X     |research
X     |.item d)
X     |organizing the notes
X     |{etc.}
X     |.nolist                { readjusts the indent  }
X     |
X
XThe above usage will produce the following:
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      28
X
X
X
X     |
X     |Project work involves:
X     |
X     |a) choosing a topic
X     |
X     |b) defining the topic
X     |
X     |c) research
X     |
X     |d) organizing the notes
X     |
X
XThe  point-form  recommendations  under  section  5.1  (Care  and
XFeeding  of   Memory)  were generated with the same set of macros
Xdescribed above.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                    Proff User's Guide                      29
X
X
X77..00 AAcckknnoowwlleeddggeemmeennttss     
X
X     This document  was  edited  by  Terry  Lim and Steven Tress.
XThe  format  of  the  document is largely based on The Freshwater
XInstitute  RUNOFF  User's  Guide.  The  Quotes  for  the  various
Xformatting  examples  are from THE QUOTABLE NOTHING BOOK and from
X1001  LOGICAL  LAWS, ACCURATE AXIOMS, PROFOUND PRINCIPLES, TRUSTY
XTRUISMS,  HOMEY  HOMILIES, COLORFUL COROLLARIES, QUOTABLE QUOTES,
XAND  RAMBUNCTIOUS  RUMINATIONS  FOR  ALL WALKS OF LIFE, by Peers,
XBennet and Booth, Fawcett Columbine Books, New York.  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0                        Appendix A                          30
X
X
XAAppppeennddiixx AA     
X                       Summary of Commands
X
X----------------------------------------------------------
X.fi | .f | .fill
X                default:        initial: yes    break: yes
X                begin filling output lines
X----------------------------------------------------------
X.nf | .nofill
X                default:        initial: no     break: yes
X                stop filling
X----------------------------------------------------------
X.ju | .j | .justify
X                default:        initial: yes    break: yes
X                begin justifying filled lines
X----------------------------------------------------------
X.nj | .nojustify
X                default:        initial: no     break: yes
X                stop justifying
X----------------------------------------------------------
X.br | .break
X                default:        initial:        break: yes
X                cause a break and output current line
X----------------------------------------------------------
X.in | .lm | .leftmargin [+|-][n]
X                default: 0      inital: 0       break: yes
X                set left margin to column n+1
X----------------------------------------------------------
X.ti | .i | .left [+|-][n]
X                default: 0      initial:        break: yes
X                temporarily indent next output n spaces
X----------------------------------------------------------
X.st | .spaceto [-][n]
X                default: 0      initial:        break: yes
X                space to line +n from top
X                space to line -n from bottom
X----------------------------------------------------------
X.sp | .s | .skip [n]
X                default: 1      initial:        break: yes
X                space n lines except at top of page
X----------------------------------------------------------
X.ce | .center [n | on | off]
X                default: 1      initial         break: yes
X                center next n lines
X                center until turned off
X----------------------------------------------------------
X.ul | .underline [n | on | off]
X                default: 1      initial         break: no
X                underline next n lines
X                underline until turned off
X----------------------------------------------------------
X
X
X
X
X
X
X1.0                        Appendix A                          31
X
X
X----------------------------------------------------------
X.ul | .underline [all | words]
X                default: words  initial: words  break: no
X                set mode for underline - words or all
X----------------------------------------------------------
X.bd | .bold [n | on | off]
X                default: 1      initial:        break: no
X                boldface (overstrike) next n lines
X                boldface until turned off
X----------------------------------------------------------
X.db | .dbo | .disablebolding
X                default:        initial: no     break: no
X                disable bolding
X----------------------------------------------------------
X.eb | .ebo | .enablebolding
X                default:        initial: yes    break: no
X                enable bolding
X----------------------------------------------------------
X.ls | .spc | .spacing [n]
X                default: 1      initial: 1      break: no
X                set line spacing to n
X----------------------------------------------------------
X.bp | .pg | .page [n]
X                default: +1     initial: 1      break: yes
X                begin a new page and number it n
X----------------------------------------------------------
X.pn | .pagenumber {roman} | {arabic}
X                default:        initial: arabic break: no
X                set page numbering to arabic or roman
X----------------------------------------------------------
X.np | .nopaging
X                default:        initial: no     break: yes
X                disable paging
X----------------------------------------------------------
X.pa | .paging
X                default:        initial: yes    break: yes
X                enable paging
X----------------------------------------------------------
X.ne | .need | .tp | .testpage [n]
X                default: 0      initial:        break: yes/no
X                need n lines. Break and generate a new page
X                if not available
X----------------------------------------------------------
X.he | .header <text>
X                default: null   initial: null   break: no
X                set header to text (/left/center/right/)
X----------------------------------------------------------
X.fo | .footer <text>
X                default: null   initial: null   break: no
X                set footer to text (/lef/center/right/)
X----------------------------------------------------------
X
X
X
X
X
X
X1.0                        Appendix A                          32
X
X
X----------------------------------------------------------
X.oh <text>
X                default: null   initial: null   break: no
X                set header on odd pages to text
X----------------------------------------------------------
X.eh <text>
X                default: null   initial: null   break: no
X                set header on even pages to text
X----------------------------------------------------------
X.of <text>
X                default: null   initial: null   break: no
X                set footer on odd pages to text
X----------------------------------------------------------
X.ef <text>
X                default: null   initial: null   break: no
X                set footer on odd pages to text
X----------------------------------------------------------
X.po | .offset [+|-][n]
X                default: 0      initial: 0      break: yes
X                set page offset to n spaces
X----------------------------------------------------------
X.rm | .rightmargin [+|-][n] 
X                default: 65     initial: 65     break: no
X                set right margin to column n
X----------------------------------------------------------
X.pl | .ps | .pagesize [n]
X                default: 66     initial: 66     break: no
X                set page length to n lines
X----------------------------------------------------------
X.m1 [n]
X                default: 3      initial: 3      break: no
X                lines between top of page and header
X----------------------------------------------------------
X.m2 [n]
X                default: 2      initial: 2      break: no
X                lines between header and text
X----------------------------------------------------------
X.m3 [n]
X                default: 2      initial: 2      break: no
X                lines between text and footer
X----------------------------------------------------------
X.m4 [n]
X                default: 3      initial: 3      break: no
X                lines between footer and bottom
X----------------------------------------------------------
X.cl | .contline [<n> <text>]
X                default:        initial:        break: yes
X                enter text into table of contents at level
X                n
X----------------------------------------------------------
X
X
X
X
X
X
X
X1.0                        Appendix A                          33
X
X
X----------------------------------------------------------
X.pc | .printcont [n]
X                default: 3      initial: 3      break: yes
X                print table of contents, indent each level
X                n spaces
X----------------------------------------------------------
X.vs | .set <variable> [definition]
X                default:        initial:        break: no
X                set variable to text
X----------------------------------------------------------
X.vg | .get <variable> <prompt>
X                default:        initial:        break: no
X                set variable interactively, using text
X                as prompt
X----------------------------------------------------------
X.nr <a-z> [+|-][n]
X                default: 0      initial: 0      break: no
X                set number register (a-z) to n
X----------------------------------------------------------
X.cc | .cchar [char]
X                default: "."    initial: "."    break: no
X                set command control character to char
X----------------------------------------------------------
X.ec | .echar [char]
X                default: "_"    initial: "_"    break: no
X                set universal escape character to char
X----------------------------------------------------------
X.so | .source | .include | .require [filename]
X                default:        initial: input  break: no
X                switch input to file
X----------------------------------------------------------
X.sv | .save
X                default:        initial:        break: yes
X                save the current formatter context on 
X                context stack
X----------------------------------------------------------
X.rs | .restore
X                default:        initial:        break: yes
X                restore the formatter context from context
X                stack
X----------------------------------------------------------
X.lx | .lex <command> [equate]
X                default:        initial:        break: no
X                rename a command
X----------------------------------------------------------
X.ap | .autoparagraph
X                default:        initial: no     break: no
X                enable auto-paragraphing
X----------------------------------------------------------
X
X
X
X
X
X
X
X
X1.0                        Appendix A                          34
X
X
X----------------------------------------------------------
X.na | nap | .noautoparagraph
X                default:        initial: yes    break: no
X                disable auto-paragraphing
X----------------------------------------------------------
X.wr | .write <string>
X                default:        initial:        break: no
X                write a special string to output. line
X                counter does not change
X----------------------------------------------------------
X.de | .define <macro name>
X                default:        initial:        break: no
X                define a macro command - ends at ".en"
X----------------------------------------------------------
X.en
X                default:        initial:        break: no
X                end the macro definition
X----------------------------------------------------------
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                        Table Of Contents
X
X                            PROFF 1.0
X1.0 Introduction    .......................................    1
X
X2.0 General Description   .................................    2
X
X   2.1 The Input   ........................................    2
X      2.1.1 Text    .......................................    2
X      2.1.2 Commands    ...................................    2
X
X   2.2 The Output   .......................................    3
X
X   2.3 Executing PROFF   ..................................    3
X
X   2.4 Bibliographic Notes   ..............................    4
X
X   2.5 References and Readings  ...........................    4
X
X3.0 Command Descriptions   ................................    5
X
X   3.1 Filling and Justifying  ............................    6
X      .fi | .f | .fill.....................................    6
X      .nf | .nofill........................................    6
X      .ju | .j | .justify..................................    6
X      .nj | .nojustify.....................................    6
X
X   3.2 Text Formatting   ..................................    7
X      .br | .break.........................................    7
X      .in | .lm | .leftmargin [+|-][n].....................    7
X      .ti | .i | .left [+|-][n]............................    7
X      .st | .spaceto [-][n]................................    7
X      .sp | .s | .skip [n].................................    7
X      .ce | .center [n | on | off].........................    7
X      .ul | .underline [n | on | off]......................    7
X      .ul | .underline [all | words].......................    8
X      .bd | .bold [n | on | off]...........................    8
X      .db | .dbo | .disablebolding.........................    8
X      .eb | .ebo | .enablebolding..........................    8
X
X   3.3 Page Formatting   ..................................    9
X      .ls | .spc | .spacing [n]............................    9
X      .bp | .pg | .page [n]................................    9
X      .pn | .pagenumber {roman} | {arabic}.................    9
X      .np | .nopaging......................................    9
X      .pa | .paging........................................    9
X      .ne | .need | .tp | .testpage [n]....................    9
X      .he | .header <text>.................................    9
X      .fo | .footer <text>.................................   10
X      .oh <text>...........................................   10
X      .eh <text>...........................................   10
X      .of <text>...........................................   10
X
X
X                              - I -
X
X
X
X
X
X      .ef <text>...........................................   10
X
X   3.4 Page Layout   ......................................   11
X      .po | .offset [+|-][n]...............................   11
X      .rm | .rightmargin [+|-][n]..........................   11
X      .pl | .ps | .pagesize [n]............................   11
X      .m1 [n]..............................................   12
X      .m2 [n]..............................................   12
X      .m3 [n]..............................................   12
X      .m4 [n]..............................................   12
X
X   3.5 Table of Contents  .................................   13
X      .cl | .contline [<n> <text>].........................   13
X      .pc | .printcont [n].................................   13
X
X   3.6 Miscellaneous    ...................................   15
X      .vs | .set <variable> [definition]...................   15
X      .vg | .get <variable> <prompt>.......................   15
X      .nr <a-z> [+|-][n]...................................   16
X      .cc | .cchar [char]..................................   16
X      .ec | .echar [char]..................................   16
X      .so | .source | .include | .require [filename].......   16
X      .sv | .save..........................................   16
X      .rs | .restore.......................................   17
X      .lx | .lex <command> [equate]........................   17
X      .ap | .autoparagraph.................................   17
X      .na | nap | .noautoparagraph.........................   17
X      .wr | .write <string>................................   18
X
X   3.7 Defining New Commands (Macros) .....................   20
X      .de | .define <macro name>...........................   20
X      .en..................................................   20
X
X4.0 Executing PROFF   .....................................   23
X
X5.0 Tips on using PROFF ...................................   25
X   5.1 Care and Feeding of Memory..........................   25
X   5.2 Formatting without fuss  ...........................   25
X   5.3 Variables within macros  ...........................   25
X
X6.0 Example macros   ......................................   27
X
X7.0 Acknowledgements    ...................................   29
X
XAppendix A    .............................................   30
X
X
X
X
X
X
X
X
X
X                             - II -
X
SHAR_EOF
if test 61510 -ne "`wc -c 'proff.man'`"
then
	echo shar: error transmitting "'proff.man'" '(should have been 61510 characters)'
fi
#	End of shell archive
exit 0
-- 
Usenet: [decvax|allegra|linus|ihnp4]!utzoo!yetti!oz
Bitnet: oz@[yusol|yuyetti]
		In the beginning, there was Word all right, except
		it wasn't fixed number of bits.



More information about the Comp.sources.unix mailing list