Google
 

Trailing-Edge - PDP-10 Archives - BB-M836A-BM - tools/sed/sedrno.man
There are 2 other files named sedrno.man in the archive. Click here to see a list.


                                RUNOFF

                             December 1979

       The RUNOFF file that created this manual can be found as
                            RNO:RUNOFF.RNM


|  This manual was created with the purpose of being read using the
|  full  96  character  set  of  ASCII.   Any attempts to read this
|  manual with less than the 96 character set will result  in  some
|  sections being unreadable.

|  All changes to this  manual  (from  the  initial  version)  have
|  change  bars  (!  or  |) in the leftmost column of the line that
|  contains changed information.  This manual will  always  reflect
|  the  version of RUNOFF residing on NEW:  (if there is no version
|  on NEW:  then it reflects SYS:).

   RUNOFF is a DECsystem-10 program that  enables  you  to  prepare
   documents  easily  in  conjunction with a text editor.  The user
   prepares his material using a text editor such as SOS  or  TECO.
   The  user  includes not only textual material, but also case and
   formatting  information.   RUNOFF  then  takes  the   file   and
   reproduces  it  onto the line printer, teletype or other file to
   produce a final copy or  final  file  image.   It  performs  the
   formatting  and case shifting as directed, and will also perform
   line  justification,  page  numbering  and  titling,  etc.,   as
   desired.

   The principal benefit of such a program is that  files  prepared
   for  use  with  it may be edited and corrected easily.  Small or
   large amounts of material may be added or deleted, and unchanged
   material  need  not be retyped.  After a set of changes, you run
   your file through RUNOFF to produce a new copy which is properly
   paged  and  formatted.   Documentation  may  thus  be updated as
   necessary without requiring extensive retyping.

|  This writeup is as complete a description of RUNOFF  as  can  be
|  found.   The  UTILITIES  manual  can  be  consulted  for  a  DEC
|  description of RUNOFF (standard DEC supplied RUNOFF without  any
|  of  the  fancy DIABLO, Hyphenation, and MACRO features.).  There
   are three HELP files which list all the switches and commands to
   RUNOFF.   "HELP  RUNOFF"  will  type  a  list  of  all  switches
   allowable in the RUNOFF command string and a  short  description
   of  each.   "HELP RUNINP" types a list of all commands allowable
   in the source file and  a  short  description  of  each.   "HELP
   RUNHYP"  types  a list of the additional commands available from
   the latest version of RUNOFF.











                              CHAPTER 1

                           ON-LINE OPERATION



   RUNOFF can be run in the following way:

       .R RUNOFF
       *command-string

   "command-string" has the following format:

       outfile/switches=infile

   or just (for default outfile):

       infile/switches

|  Switches will be read from SWITCH.INI if a line of the form
|      RUNOFF<:NAME>/SWITCHES
|  exists.  (<:NAME> is optional) if :NAME is  specified  then  the
|  set  of switches on that line may be accessed by /OPTION:NAME in
|  the command string to RUNOFF.

   The default device is DSK:.  The default output name is the same
   as  the  input name.  The default output extension is a function
   of the input extension as follows:

   input ext ... output ext
     .RNO           .MEM
     .RND           .DOC
     .RNH           .HLP
     none           .MEM
     .FOR           .PLM
     .MAC           .PLM
     .F40           .PLM
     other          .MEM

   If no input extension is supplied in the command,  the  standard
   extensions will be tried.
   ON-LINE OPERATION                                       Page 1-2


   1.1  SWITCHES

   Switches may appear most anywhere in the command.  The following
   are the more commonly used switches.


   /BAR:n      Specify character to be used to generate change bar.
|       The  character is specified in octal or it may be specified
|       as a quoted  character  (i.e.   "!"  or  041  would  enable
|       exclamation as the change bar character).

   /CRETURN    Generate blank lines with carriage return - linefeed
        sequences rather than just linefeed.

   /DOWN:n     Move the text on each page down n lines,  leaving  n
        blank lines at the top of the page.

   /DRAFT      Include all text and commands excluded  by  .IF  and
        related commands.  Also makes /SEQUENCE default.

|  /DEVICE:  xxx
|       This switch allows mode settings that are only useful  when
|       used with an Anderson Jacobson (AJ) or DIABLO terminal.  It
|       is necessary to use this  switch  to  get  true  half-space
|       up/down on the DIABLO or AJ terminals.  This switch is also
|       necessary if MICROspacing is to be used (/MICRO switch).
|  
|       xxx is one of the following:
|       LPT - Default.  Normal RUNOFF mode for the line printer.
|  
|       AJ - 10 pitch for the AJ terminal.
|  
|       AJ12 - 12 pitch for the AJ terminal.
|  
|       AJP - AJ for the  line  printer.   Leaves  out  super-  and
|       subscripts  and  replaces  special  characters  with quoted
|       spaces.  Useful for quickly seeing the horizontal layout of
|       a page.
|  
|       DIABLO - 10 pitch for the DIABLO terminal.
|  
|       D12 - 12 pitch for the DIABLO terminal.
|  
|       DP - same as AJP above except for the DIABLO.

|  /HEADER:SPACE
|       The word "Page" is replaced by spaces in the header.

|  /HYPHENATE:xxx
|       YES - Default
|  
|       NO - Overrides any .HYPHENATE commands in the file.
|  
|       NOQUERY - Normally, the hyphenation  facility  queries  the
|       user  when  it  cannot  determine  how  to hyphenate a word
   ON-LINE OPERATION                                       Page 1-3


|       because it is not in the dictionary.  This switch turns off
|       the querying.
|  
|       NOUPDATE - Normally, the hyphenation facility  updates  the
|       dictionary  with  any user specified words that result from
|       the  querying  procedure.   This  switch  turns   off   the
|       updating.
|  
|       COPY - If you create your own dictionary, then you may edit
|       using  any  text editor available.  If you do, however, you
|       must use this switch so that it can be formatted  correctly
|       by  RUNOFF.   All entries to the dictionary MUST be made in
|       alphabetical order and have the following format:
|                     HYPHENATION,HY PHEN A TION
|       The first word is the word that will be matched (in  UPPER,
|       lower  or  Mixed  case.   The  hyphenation  routines do all
|       comparisons in UPPER case, so one must realize that  it  is
|       impossible  to  hyphenate  differently due to case changes)
|       and the second word (separated by a comma)  is  the  actual
|       hyphenation  of  the  word.   A  space or hyphen show where
|       hyphenation will occur, but a hyphen may only (and must) be
|       used  when  there  is  a  hyphen  in  the first word (match
|       string).
|  
|  
|  /HLENGTH:n  Defaults  to  4.   Don't  hyphenate  words  with   n
|       characters  or  less.   This  will keep the dictionary size
|       smaller.
|  
|  /HSPACES:n  Defaults to 3.  Has the same purpose as the  integer
|       argument used with the .HYPHENATE command.
|  
|  /HWORDS:n   Defaults to 20.   The  number  of  user  replies  to
|       queries before the dictionary is updated.
|  
|  /HBUFFERS:n Defaults to 20.   Number  of  dictionary  blocks  in
|       core.

   /IRANGE:r   Only output pages resulting from input in  specified
        range.  The range r is specified just as for /ORANGE.

   /LINES:n    There are initially n lines per page.

|  /MICRO      This switch is used in conjunction with the Anderson
|       Jacobson (AJ) terminals and DIABLO terminals for making all
|       inter-word spaces on the same line the same size (to within
|       1/60th  of  an  inch).   This  command  has  no  affect  on
|       terminals other than the AJ or DIABLO.  This switch must be
|       used  in  conjunction with the /DEVICE:xxx switch described
|       above.  With MICROspacing specified,  underlining  is  done
|       with backspaces.
|                                  NOTE
|  
|           Typing on an AJ or DIABLO with micro-spacing at 300
|           baud is considerably slower than without.  (at 1200
|           baud speed is not a consideration)




   /NOBAR      Disable  change  bars  (even  though   .ENABLE   BAR
        specified in input file).

|  /NONOTE     Use default note indenting.

|  /NOTE:n     Set indent n for the .NOTE command.

   /NOUNDERLINE Suppress underlining.

   /ORANGE:r   Only output pages  and  lines  in  specified  output
        range.  The range is specified as follows:

            "L1/P1:L2/P2"

        Where L1  and  L2  are  optional  initial  and  final  line
        numbers.   L1  defaults  to  the  beginning of the page, L2
        defaults to the end.  P1 and P2 are the initial  and  final
        pages.   If  the document uses the .CHAPTER RUNOFF command,
        the page numbers are  specified  as  C-P  where  C  is  the
        chapter number and P is the page number within the chapter.
        The initial position defaults to the beginning of the  file
        document, the final position defaults to the end.

        RUNOFF behaves  kind  of  strange  when  line  numbers  are
        specified  (a  bug  perhaps?).  Only lines L1 through L2 on
        each of pages P1  through  P2  are  printed.   Fortunately,
        there is rarely a need to specify any line number at all.

        For Example:
            /ORANGE:"/5" prints page 5 through the end.
            /ORANGE:"/3:/7" will print pages 3 through 7.
            /ORANGE:"/3-1:/3-3" prints pages 3-1 through 3-3.

   /PAUSE      Pause before the first page  and  after  each  page.
        RUNOFF pauses by waiting for a character to be typed on the
        terminal.  Any character will do, it will not echo.

   /RIGHT:n    Move text on each page to the right n spaces.   This
        is  the  preferred way to leave a left margin (over a .LEFT
        MARGIN in the file).  It allows the document to be prepared
        without  right shifting (to allow double column printing on
        a page, see LIST program) and then right  shifted  for  the
        final  copy.   The document may be shifted right any number
        of spaces without  affecting  the  function  of  the  .LEFT
        MARGIN and .RIGHT MARGIN commands within the file.

   /SELECT:"string"
        This switch, given  in  the  command  line  to  RUNOFF,  is
        supposed  to  set  the  selection  string.   The  string is
   ON-LINE OPERATION                                       Page 1-5


        enclosed in quotes, not "_" as is used in front of  special
        characters   in   .SELECT.    Unfortunately,   due   to   a
        communication problem between SCAN and RUNOFF, this  switch
        does not work.

   /SEQUENCE   Include line and page numbers from the input file at
        the  left  side  of  output.   Line  numbers  will  be line
        sequence numbers if present, else absolute line numbers.

   /SIMULATE   Simulate  formfeeds  with  linefeeds.   RUNOFF  will
        pause  before  printing  the  first  page  to  allow  paper
        adjustment.  Simulating formfeeds allows multipage text  to
        be printed on a terminal not supporting formfeeds.

   /SPACING:n  Start  with  .SPACING  n.   To  double  space  text,
        /SPACING:2  can be used.  Don't double space an entire file
        until the (near) final copy.

|  /TYPESET:xxx
|       This switch causes RUNOFF to produce a  file  suitable  for
|       typesetting.  xxx is one of the following:
|  
|            CAT - typeset file to CAT
|  
|            LPT - typeset file to LPT:
|  
|            TXT - typeset file to TXT

   /UNDERLINE:CHARACTER
        Underline by backspacing and overprint.
   /UNDERLINE:LINE
        Underline by overprinting line (Default).
   /UNDERLINE:NONE
        Suppress underlining.  Useful when printing underlined text
        on a video terminal which erases on overprint.
   /UNDERLINE:ch
        Use specified character for underlining rather  than  usual
        underline.  The character may be specified in octal or as a
        quoted string.

   /VARIANT:(variable,variable,...)
        Enable listed variables.  Parentheses  may  be  omitted  if
        only  one variable is specified.  See .VARIABLE and related
        commands for further information.

   /WIDTH:n    Specify initial right margin.
   ON-LINE OPERATION                                       Page 1-6


   1.2  SOURCE FILE FORMAT

   As stated above, the source file contains the  textual  material
   which  will  appear on the final copy in addition to information
   to specify formatting.  Upper and  lower  case  information  may
   also  be supplied so that text can be prepared on and upper case
   only terminal.  All  command  information  consists  of  regular
   ASCII  printing  characters so that a listing of the source file
   may be examined if the final copy is not exactly as desired.

   All material in the source file  is  taken  to  be  source  text
   except  those  lines  beginning with a period.  A line beginning
   with a period is assumed to be a command, and must match one  of
   those   listed  below.   The  commands  provide  the  formatting
   information, and control various optional modes of operation.

   Usually the text is filled and justified  as  it  is  processed.
   That  is,  the  program  FILLS a line by adding successive words
   from the source text until one more word would cause  the  right
   margin to be exceeded.  The line is then JUSTIFIED by making the
   word spacings larger until the last word  in  the  line  exactly
   meets the right margin.

   The user may occasionally wish  to  reproduce  the  source  text
   exactly,  which  is done by disabling filling and justification.
   The program may be set to fill but not justify,  in  which  case
   the  output  will  be  normal  except  that  lines  will  not be
   justified to the right margin.

   When the fill mode is on, spaces and carriage returns  occurring
   in  the  source  text  are  treated  only  as  word  separators.
   Multiple separators are ignored.

   Some of the commands cause a BREAK in the output.  A break means
   that  the  current line is output without justification, and the
   next word goes at the beginning of the next line.   This  occurs
   at the end of paragraphs.

   The program will advance to new pages as necessary, placing  the
   title  (if  given)  and the page number at the top of each page.
   The user may explicitly call for a page advance  where  desired,
   and  may  inhibit  the  occurrence  of  a  page  advance  within
   specified material.
   ON-LINE OPERATION                                       Page 1-7


   1.3  CASE INFORMATION

   RUNOFF normally preserves the case (upper or lower) used in  the
   source  file.   Text  is most easily prepared on a terminal with
   lower case, if one is available.  If  not,  TECO  and  SOS  have
   facilities  for  entering  upper and lower case on an upper case
   only terminal.  The following information is for users  with  an
   upper  case  only terminal and not wishing to use their editor's
   facilities for upper/lower case.

   Specification of case for files prepared on an upper  case  only
   teletype  may  be  done  with  two characters, up-arrow (^), and
   back-slash (\).  The appearance of an up-arrow causes the letter
   immediately  following  to  be  transmitted  in upper case.  The
   appearance  of  a  back-slash  causes  the  letter   immediately
   following  to  be  converted  to  lower  case.   Any  letter not
   preceded by one  of  these  characters  is  transmitted  in  the
   current  mode.  The mode is initially upper case, and is changed
   by the occurrence of two  successive  case  control  characters.
   Two  up-arrows  (^^) cause the mode to be set to upper case, and
   two back-slashes (\\) cause the mode to be set to lower case.

   The use of the above corresponds to the use  of  the  shift  and
   shift-lock  keys  on  a  typewriter.  Usually, typing appears in
   lower case (begin the file with \\).   To  type  one  letter  in
   upper  case,  the  shift  key is used.  The shift-lock is set to
   type a series of upper case letters, after which it is released.

   If a .FLAG CAPITALIZE command appears in  the  input  file,  the
   character  <  preceding  any  word  will  cause  that word to be
   capitalized.

   The following shows the uses of the case control characters:

   \\^HERE IS A ^SAMPLE ^SENTENCE  IN  ^^UPPER\\  <CASE  AND  LOWER
   CASE.

   becomes:

   Here is a Sample Sentence in UPPER CASE and lower case.
   ON-LINE OPERATION                                       Page 1-8


   1.4  SPECIAL CHARACTERS

   The character ampersand (&) is  used  to  specify  underscoring.
   The  ampersand  will  cause  the  character  following  it to be
   underscored, e.g.  &f&o&o becomes foo.

   Underlining of a string of characters  can  also  be  specified,
   similar to the use of the shift lock operations described above.
   An appearance of ampersand preceded by up-arrow (^&) will  cause
   underlining  of  all  following  characters  except  space.   An
   appearance of ampersand preceded by backslash (\&) will  disable
   this mode.

   It is occasionally necessary to include spaces in the text which
   should  not  be  treated  as word separators.  For this purpose,
   RUNOFF treats numbersign (#) as a quoted space;  i.e.   it  will
   print as exactly one space in the output, will never be expanded
   nor changed to a carriage return.

   To allow the appearance of the  special  characters  (ampersand,
   number-sign,   up-arrow,  or  back-slash)  in  the  output,  the
   character left-arrow or  underscore  (_)  is  used  as  a  quote
   character.   The  character  immediately  following a left-arrow
   will be transmitted to the output  with  no  formatting  effect.
   The  left  arrow  itself is thus another case requiring quoting.
   The following five cases occur:  _&, _^, _\, __, and _#.











                              CHAPTER 2

                               COMMANDS



   The following commands will be recognized if  they  are  at  the
   beginning  of  a  line  started  with a period.  Any line in the
   source file beginning with a period is  assumed  to  be  one  of
   these commands.  If it is not, an error diagnostic will be typed
   and the line will be ignored.  Some commands take  one  or  more
   decimal numbers following.  These are separated from the command
   by a space.

   Commands may  be  abbreviated.   The  standard  abbreviation  is
   listed  below with each command.  Commands may also be shortened
   by leaving off letters from the end, just so long as the command
   remains unique.

   Commands may be placed one per line or several on a line if they
   are  separated  with  semicolon (";").  Commands which require a
   text argument must be followed by the end  of  the  line  rather
   than ";".

   Comments may be included after ".!" or ".;" commands.

        .!This is a comment
        .;Or it may be done this way.
        .!One may string commands together as follows:
        .skip 2;.test page 7;.indent -3
   COMMANDS                                                Page 2-2


   2.1  FORMATTING


   .BREAK                                            .

        Causes a break, i.e.  the current line will be output  with
        no justification, and the next word of the source text will
        be placed at the beginning of the next line.   Note:   this
        command has the shortest abbreviation of any, only a "." on
        a line by itself is required.

   .SKIP n                                           .S n

        Causes a break after which n*(line spacing) lines are  left
        blank.   If  the  skip  would  leave room for less than two
        printed lines on the page (i.e.  if  there  are  less  than
        n+2*(line  spacing)  lines left), the output is advanced to
        the top of the next page.

   .BLANK n                                          .B n

        Exactly like SKIP,  except  that  n  (rather  than  n*(line
        spacing))  lines  are specified.  BLANK is used where space
        is to be left independent of the line spacing;  SKIP, where
        the space should be relative to the size of line space.

   .FIGURE n                                         .FG n

        Like BLANK except that if less than n lines remain  on  the
        current  page, the page will be advanced, and n blank lines
        will be left at the top of the new page.  Principally  used
        where  it is desired to leave room for a figure to be drawn
        in manually.

   .FIGURE DEFERRED n                                .FG D n

        Leave n contiguous blank lines for a figure.  If  there  is
        sufficient room left on the page, cause a break and leave n
        blank lines.  Otherwise, fill out rest of  page  with  text
        and  leave  n  blank  lines  at  the  top of the next page.
        Depending on which version of RUNOFF you use, a  break  may
        or may not be done when the figure is put on the next page.

   .INDENT n                                         .I n

        See .LEFT below.
   COMMANDS                                                Page 2-3


   .LEFT n                                           .L n

        Causes a break and sets the next line to begin n spaces  to
        the  right  of the left margin.  n may be negative to cause
        the line to begin to the left of the  left  margin  (useful
        for numbered paragraphs).

   .CENTER n                                         .C n

        This command causes a break after which it centers the next
        line  following  in the source file.  The centering is over
        the column n/2, independent of the setting of the left  and
        right  margins.   If  n  is missing, n is assumed to be the
        paper width (initially 60) plus the leftmost  column  times
|       two  (initially  0)  (n  =  width + (2 * leftmost column)).
        (See PAPER SIZE command.) The text to be  centered  may  be
        included  on the same line as the command if separated with
        a semicolon, i.e.:







   2.2  HYPHENATION

|  When an attempt is made by RUNOFF to hyphenate a  word  that  is
|  not  in  its  dictionary,  a  query  will  be  made  of the user
|  requesting a syllabication for the word.  The query will  be  in
|  the  form  of <word>? where < and > are meta-symbols that do not
|  appear on the screen.  The user responds by typing the syllables
|  of  the  word,  in  order,  separated  by spaces, and terminated
|  either by a carriage return or a switch.  The user  may  respond
|  by just hitting carriage return to avoid typing syllabication if
|  the word is not to be hyphenated and is not to be put  into  the
|  dictionary.   (Currently  RUNOFF  will  try  to  hyphenate words
|  containing  non-alphabetic  characters.   Until   this   changes
|  hitting  a carriage return will suffice to ignore the word.) The
|  switches have the following interpretations:
|  
|       /Q - Turn querying off from here on.
|       /U - Turn updating off from here on.
|       /Y - Turn updating back on.
|       /S - Skip;  same as no syllabication.  Don't hyphenate this
|       word.
|       /N - Turn hyphenation off.
|       /H - Hyphenate this word but don't update the dictionary.
|       no switch - Hyphenate the word and update the dictionary.
|  
|       Example:
|       indicate?  in di cate/H
|       computer?  user response
|  
   COMMANDS                                                Page 2-4


|  The first word is the word being matched  and  the  second  word
|  (separated by a comma) is the actual hyphenation of the word (in
|  UPPER, lower or Mixed case.  The  hyphenation  routines  do  all
|  comparisons  in  UPPER  case,  so  one  must  realize that it is
|  impossible to hyphenate differently due  to  case  changes).   A
|  space or hyphen shows where hyphenation will occur, but a hyphen
|  may only (and must) be used when there is a hyphen in the  first
|  word (match string).
|  
|  Hyphenation is invoked by the .HYPHENATE command.   The  default
|  is that RUNOFF will not try to hyphenate if there are only up to
|  3 extra spaces on the current line (/HSPACES switch), or if  the
|  word that would be hyphenated has a length less than or equal to
|  4 (/HLENGTH switch).
|  
|  .HYPHENATE file n
|  
|       file is the name of a file  containing  syllabications  for
|       words.   The  file  name  is  specified in the usual TOPS10
|       format.    It   defaults    to    a    system    dictionary
|       (RNO:HYPHEN.DIC).   n is an integer that defaults to 5.  It
|       is the maximum extra spaces on the line before  hyphenation
|       is invoked.







   2.3  PAGE FORMATTING


   .PAGE                                             .PG

        Causes a break and an advance to a new page.  Does  nothing
        if the current page is empty.  Titling and numbering as for
        automatic page advance.

   .TEST PAGE n                                      .TP n

        Causes a break followed by a conditional page advance.   If
        there are n or more lines remaining on the current page, no
        advance is made and no lines are skipped.   Otherwise,  the
        page  is advanced as for PAGE.  This command should be used
        to ensure that the following n lines are all output on  the
        same page.

   .SUBPAGE                                          .SBP

        Begin a subpage.  The  subpage  has  same  page  number  as
        original,  except an "A" is added to number the first time,
        then the rest of the letters are added for each  succeeding
        subpage.
   COMMANDS                                                Page 2-5


   .END SUBPAGE                                      .ES

        End a subpage.  Page numbering returns to normal.

   .NUMBER n                                         .NM n

        Turns on page numbering (normal) and,  if  n  is  supplied,
        sets the current page number to n.

|       n can also be one of the following:
|  
|            DECIMAL - Decimal page numbering.  (Default)
|  
|            ROMAN - Lower case Roman numeral page numbering.
|  
|            CHROMAN - Roman numeral uppercase chapter numbers
|  
|            CHDECIMAL - Decimal chapter numbers.  (Default)
|  
|            CONSECUTIVE - Consecutive page numbers, regardless  of
|            chapters.

   .NONUMBER                                         .NNM

        Turns off  page  numbering.   Pages  will  continue  to  be
        counted, so the normal page number will appear if numbering
        is re-enabled.

   .HEADER x                                         .HD x

        Begin including headers at the top  of  each  page  (except
        page 1).  This is default.

|       x can be one of the following:
|  
|            UPPER - "Page" is written in upper case.
|  
|            LOWER - "Page" is written in lower case.
|  
|            MIXED - "Page" is written in upper/lower case.   (This
|            is default)
|  
|            SPACE - "Page" is replaced by spaces.
|  
|            BOTTOM - Page numbering is done on the bottom center.
|  
|            CHBOTTOM - First page of chapters numbered  on  bottom
|            center.
|  
|            CENTER - Number on top center.  No titles.
|  
|            TOP - no page numbering on bottom.
|  
|            RIGHT - Page numbering on  top  right  only.   (Normal
|            mode)
   COMMANDS                                                Page 2-6


   .NO HEADER                                        .NHD

        Discontinue putting a header at the top of each page.

   .FIRST TITLE                                      .FT

        Include title and page number on page 1 also.

   .PAGING                                           .PA

        Begin breaking document  into  pages  whenever  a  page  is
        filled.   Default  except  when  extension of input file is
        ".RNH" (Help file).

   .NO PAGING                                        .NPA

        Stop automatic splitting of documents into pages.  Does not
        affect .PAGE commands.

   .TITLE text                                       .T text

        This command takes the remaining text on the  line  as  the
        title.   This text will appear at the top of all subsequent
        pages, at position 0, on the top line with the page number.
        The title is initially blank.

   .SUBTITLE text                                    .ST text

        This command takes the remaining text on the  line  as  the
        subtitle.   This  text  will appear on the line immediately
        following the title  and  page  number.   The  subtitle  is
        initially  blank.   The  subtitle  is not indented, but may
        contain leading spaces  to  achieve  the  same  effect,  if
        desired.

   .NO SUBTITLE                                      .NST

        Clear any subtitle which was in effect.

   .CHAPTER text                                     .CH text

        Starts a new chapter using text specified in command as the
        chapter  title.   The  chapter  begins  on  a  new page and
        centers "CHAPTER n" were n is incremented  by  1  for  each
        chapter.  A blank line is then skipped before centering the
        chapter title.  Three more blank lines are  skipped  before
        the  actual  text of the chapter begins.  The chapter title
        is set as the title appearing at the top of each page.


                                   NOTE

|           The .CHAPTER command no  longer  resets  the  case,
            margins,  spacing,  and justify/fill modes to their
            standard settings.
   COMMANDS                                                Page 2-7


   .APPENDIX text                                    .AX text

        Starts next appendix using text specified as  the  appendix
        title.   The  APPENDIX  command  functions  just  like  the
        CHAPTER command except it  generates  different  words  and
        numbering.   Appendices  are  numbered  A,  B, ....   Pages
        within an appendix are numbered A-2, A-3, ....

   .HEADER LEVEL n text                              .HL n text

        Starts a section at  the  level  specified  and  takes  the
        following text as the header.  n can be in the range from 1
        to 5.  The sections are  numbered  automatically.   Section
        numbers  are  of  the form i.j.k.l.m.  If this is a chapter
        oriented document, then i is the chapter number,  otherwise
        is  the  .HL  1  level.   For  header  levels  1 and 2, the
        following line of text begins on a new line.  Header levels
        3,  4,  and 5 end with a space dash space and then the text
        begins.







   2.4  MODE SETTING


   .JUSTIFY                                          .J

        Causes a break and  sets  subsequent  output  lines  to  be
        justified.  (Initial setting)

   .NOJUSTIFY                                        .NJ

        Causes a break and  prevents  justification  of  subsequent
        output lines to make a ragged right margin.

   .FILL                                             .F

        Causes a break and specifies that subsequent  output  lines
        be   filled.   Sets  the  justification  mode  to  be  that
        specified by the last appearance of JUSTIFY  or  NOJUSTIFY.
        (Initial setting)
   COMMANDS                                                Page 2-8


   .NOFILL                                           .NF

        Causes a break and prevents filling  of  subsequent  output
        lines.  Also turns off justification.


                                   NOTE

         1. The nofill-nojustify mode need be used  only  where
            there  are  several  lines of material to be copied
            exactly.  A single line example  will  not  require
            using these commands if there are breaks before and
            after.
         2. Normally FILL and NOFILL  are  used  to  turn  both
            filling  and  justification  on  and  off.   It  is
            usually  desirable  to  do  both.    A   subsequent
            appearance of a justification command will override
            the fill command however.
         3. Because of the action of FILL, a single  occurrence
            of  NOJUSTIFY  will cause the remainder of the file
            to be unjustified, with filling as  specified.   In
            order  to justify but not fill (not recommended), a
            JUSTIFY command must follow every NOFILL command.



   .LITERAL                                          .LT

        Take the following text literally.  No changes are made  to
        it  -  line  length remains as is, even if beyond the right
        margin, and blank lines are left  as  is.   Text  is  still
        divided  into  pages  and  numbered.   An .END LITERAL must
        follow any .LITERAL.

   .END LITERAL                                      .EL

        Ends literal text.  Follows every  .LITERAL  command  after
        all text to be take literally.

   .AUTOPARAGRAPH                                    .AP

        Any blank lines in the input file  or  any  line  beginning
        with  a  space  will  begin  a  new paragraph.  Blank lines
        followed by a command to not begin a new paragraph.

   .NOAUTOPARAGRAPH                                  .NAP

        Turns off AUTOPARAGRAPH mode.  (Default)

   .PERIOD                                           .PR

        Leave two spaces after ".", "!", "?", ":", and  ";".   This
        is the default mode.  If you wish to treat these characters
        as regular text (i.e.  don't leave two spaces after  each),
        precede  the character with the quote character (_).  Note:
   COMMANDS                                                Page 2-9


        RUNOFF normally ignores multiple spaces  between  words  or
        after punctuation (they are treated like a single space).

   .NO PERIOD                                        .NPR

        Don't leave two spaces after ".", "!", "?", ":",  and  ";".
        Only  one space is left, unless justifying the right margin
        causes an extra space.

   .CONTROL CHARACTERS                               .CC

        Allow control characters in the  input  file.   A  possible
        application for this is inserting control characters in the
        file to set up or position the carriage of  terminals  such
        as those using the QUME printer.

   .ENABLE BAR                                       .EBB

        Set to allow change bars.  All text will be  shifted  right
        to  allow  room  for the bars.  No bar actually begins till
        the .BEGIN BAR command.

   .DISABLE BAR                                      .DBB

        Ignore all following change  bars.   This  is  the  default
        mode.

   .RIGHT n                                          .R n

        Causes a break, then adjusts the horizontal position of the
        next line to leave n spaces between the end of the line and
        the right margin.  The line length must not  exceed  <right
        margin column number> minus n.

   .PARAGRAPH n,v,t                                  .P n,v,t

        This command causes a break, skips v blank lines, indents n
        spaces,  and  tests  for t lines left on the page (if fewer
        lines it goes to the next page).  The numbers are optional,
        they  are  normally  not  specified.   v  defaults to leave
        (m+1)/2 blank lines, where m is the regular  line  spacing.
        n defaults to 5.

   .NOTE text                                        .NT text

        Starts an indented note.  Skips 2 blank lines, centers  the
        text  (or  the  word "NOTE" if no text given), reduces both
|       margins by 15.  If the left margin is zero then the  indent
|       for  the  note  will  be  4  rather  than  15.   If this is
|       undesirable then the /NOTE:n switch may be  given  where  n
|       specifies  the indent for the left and right margins.  (The
|       4 and 15 indent must be there for a reason, so rather  than
|       change  a  possible  standard,  an  override  facility  was
|       added).  The text on the following lines will be  formatted
        with these reduced margins.
   COMMANDS                                               Page 2-10


   .END NOTE                                         .EN

        Terminates the .NOTE command.   Skips  2  blank  lines  and
        resets  the  margins  to  their  settings  before the .NOTE
        command.

   .LIST n                                           .LS n

|       Starts an indented list  with  spacing  n  (default  is  1)
|       between  elements  in  the  list.  The left margin is moved
        right 9 spaces for the first  .LIST  command,  and  4  more
        spaces for each subsequent nested .LIST.

   .LIST ELEMENT;text                                .LE;text

        Starts an item in the list, used in  conjunction  with  the
|       .LIST   command.    The   elements   are  numbered/lettered
|       sequentially and the  number/letter  is  given  a  negative
|       indent so the list lines up.  The number/letter is followed
|       by a period and 2 spaces so the indent  will  be  -4.   The
|       list  elements  are  separated  by  the  standard paragraph
|       spacing and .TEST PAGE.  Nested lists will  be  alternately
|       numbered/lettered.

   .END LIST                                         .ELS

        Terminates the .LIST command and returns to settings before
        the last .LIST command.

   .FOOTNOTE n                                       .FN n

        Allocates n*(line spacing)  lines  at  the  bottom  of  the
        current  page  for  a  footnote  [1].  If insufficient room
        remains on the current page, space will be allocated at the
        bottom  of  the  following page.  The text for the footnote
        begins on the  line  following  the  command,  and  it  may
        contain  any  appropriate  commands  (e.g.   CENTER,  SKIP)
        necessary  to  format  the  footnote.   The   footnote   is
        terminated  by  a  line beginning with an exclamation point
        (the remainder of which is ignored).  The  lines  delimited
        by this line and the FOOTNOTE command are put into a buffer
        to be processed when the output moves to within the  stated
        distance of the bottom of the page.  If a page has multiple
        footnotes,  the  allocated  space  is  the   sum   of   the
        allocations  for  all  footnotes assigned to the page.  The
        user  must  include  his  choice  of   footnote-designating
        symbols within the text.


   --------------------

   [1] This is a footnote.  This text was  specified  by  text  and
   commands  following  a  FOOTNOTE  4  command.   Some versions of
   RUNOFF draw a dividing line of dashes.  If your RUNOFF  doesn't,
   you may include the dashes as part of the footnote.
   COMMANDS                                               Page 2-11


        The current values  of  left  and  right  margin  and  line
        spacing   are   saved  and  restored  after  processing  of
        footnotes.  Therefore,  a  footnote  may  contain  commands
        which  change  these  parameters,  and  the  effect will be
        limited to the footnote text.

        The actual space taken by the footnote may be more or  less
        than that specified by n.  The n merely allocates space and
        should be the user's best guess.   If  it  is  considerably
        off,  the  footnote  lines  may overflow the page, or extra
        space may be left at the bottom.   The  user  may  wish  to
        adjust n after examining a first draft printout.

|       Several  additions  have  been  added   to   the   footnote
|       capability.   The  left margin defaults to the minimum left
|       margin that appeared on that page but does reflect negative
|       indentations.   A  2"-long horizontal line will precede the
|       first footnote on each page.  A blank  line  precedes  each
|       footnote on a page.

|  .LEFT MARGIN FOOTNOTE n                           .LMF n
|  
|       Sets left  margin  for  footnotes  to  n.   (overrides  the
|       computed one)

   .INDEX text

        This command takes the remaining text on the line as a  key
        word  or  words  and  adds  it, along with the current page
        number, to the internal index buffer.  The command does not
        cause  a  break.   It  should appear immediately before the
        item to be indexed.  A key word or  words  may  be  indexed
        more  than once.  Words are converted to lower case, except
        where ^, ^^, \, and \\ are included in the text  to  modify
        the case.

   .SUBINDEX key1>key2                               .X key1>key2

        Put key1 in the index with key2 as a subindex.

   .PRINT INDEX                                      .PX

        Causes a break after which it prints the entire contents of
        the  index  buffer.   Entries  are  printed in alphabetical
        order, and are set against the left margin.   Regular  line
        spacing  is  used, except that a blank line is left between
        entries of different first  letters.   The  number  of  the
        first  page on which each entry appeared is put on the same
        line as the entry, beginning at  the  middle  of  the  line
        (midway  between  the  left and right margins).  Additional
        page numbers for  multiple  entries  follow,  separated  by
        commas.  The index buffer is left empty.
   COMMANDS                                               Page 2-12


   .DO INDEX (text)                                  .DX (text)

        Forces a new page, centers the text, if given, otherwise it
        centers  the  word  "INDEX".  (A period (.) terminates this
        command unless the period is quoted.) (You do not type  the
        parentheses.)  This command causes a .BREAK and then prints
        the entire contents  of  the  index  buffer.   Entries  are
        printed  in  alphabetic  order and are set against the left
        margin.

   .LOWER CASE                                       .LC

        Set the typeout mode to lower case.  This command acts  the
        same   as   typing   two   backslashes  (\\).   NOTE:   two
        backslashes only set lower case if a .FLAG command has  not
        redefined their function.

   .UPPER CASE                                       .UC

        Sets the output mode to uppercase.  This command  acts  the
        same  as  typing  two  circumflexes (^^).  This mode is the
        default.  There is no need for you to type in this  command
        unless you previously altered the mode to lower case.

   .BEGIN BAR                                        .BB

        Begin a change bar.  Change bars consist  of  a  bar  drawn
        vertically  along  the  left margin.  The character used is
        normally vertical bar (|) but may be changed with the  /BAR
        switch.   No  bars  will  be generated unless first enabled
        (see .ENABLE BAR).

   .END BAR                                          .EB

        End a change bar begun with .BEGIN BAR.







   2.5  FLAG SETTING


|  .NOFLAG xxx
|  
|       This command will disable a previous .FLAG xxx command.

   .FLAG CAPITALIZE

        Enables the < character to capitalize the  entire  word  it
        precedes.  This mode is initially off.
   COMMANDS                                               Page 2-13


   .FLAG INDEX

        Enables the > character to place the  following  word  into
        the  index.   Serves same function as .INDEX command except
        the indexed word is included in the output file.  This mode
        is initially off.

|  .FLAG HALFUP |
|  
|       Indicates that in the future  the  vertical  bar  (|)  will
|       indicate  a  superscript.  The defaults are OFF and |.  Any
|       other character can be used.  When used in conjunction with
|       the  /DEVICE:xx  switch  this  will  give  true  half-space
|       up/down on the DIABLO and AJ terminals.  Whole  lines  will
|       be used when the /DEVICE switch is omitted.
|  
|  .FLAG HALFDOWN /
|  
|       Same as HALFUP except for subscripting.
|  
|  .FLAG BACKSPACE
|  
|       Allows definition of a character to  stand  for  backspace.
|       There  is  no  default  character,  but  OFF is the default
|       switch setting.
|  
|  .FLAG LEFTBRACE {
|  
|       Left parenthesis for  sub-  and  super-  script  groupings.
|       Defaults are ON and {.
|  
|  .FLAG RIGHTBRACE }
|  
|       Right parenthesis for sub-  and  super-  script  groupings.
|       Defaults are ON and }.
|  
|  .FLAG ALIGNMENT ~
|  
|       Allows  alignment  of  a  subscript  under  a  superscript.
|       Defaults  are  ON and ~.  The use of the ~ must immediately
|       follow a sub- (super-) script  and  immediately  precede  a
|       super- (sub-) script.
   COMMANDS                                               Page 2-14


   2.6  PARAMETER SETTINGS


   .LEFT MARGIN n                                    .LM n

        Causes a break, after which the left margin is set to n.  N
        must  be  less  than  the right margin but not less than 0.
        The initial setting is 0.  The amount of  any  indent  plus
        the left margin must not be less than 0.

   .RIGHT MARGIN n                                   .RM n

        Causes a break after which the right margin is set to n.  N
        must  be greater than the left margin.  The initial setting
        is 60.

        The number of characters on a line will be equal to or less
        than  the  right  margin  minus  the  left margin minus any
        indenting which may be specified.  Even if filling has been
        disabled lines will not be extended past the right margin.

   .SPACING n                                        .SP n

        Causes a break after which the line spacing will be set  to
        n.   n  must be within the range 1 to 5.  Single spacing is
        1, double spacing is 2, etc.  The initial setting is 2.

   .PAPER SIZE n,m,o                                 .PS n,m,o

        This command sets .PAGING.  It  also  sets  the  number  of
        lines  per  page  to  n.   n  includes the top heading of 3
        lines.  It must be greater than 10.  The initial setting is
        58.  The page number and title appear on the top line.  The
        second argument, m, is optional.  If present, it  sets  the
        paper  width in columns (initially 60).  It must be greater
        than the left margin, and it is set into the  right  margin
|       as  if  a  RIGHT MARGIN m command had also been typed.  The
|       third argument, o, is optional.  If present,  it  sets  the
|       leftmost  column  to  be  used  for  centering (default 0).
|       Centering is done between  o  and  o+m.   This  command  is
        usually  used  only  at the beginning of a file, but may be
        used throughout if needed.

   .TAB STOPS n ...  n                               .TS n ...  n

        Clears all previous tab stops and sets  new  tab  stops  as
        specified.   The several n must be greater than zero and in
        increasing order.  They are  the  positions  of  tab  stops
        independent of the setting of the left margin, although any
        which are less than the left margin will not be seen.   Tab
        stops  are  initially at 8-column intervals (9, 17, 25, 33,
        41, 49, 57, 65).
                                   NOTE

|           Tab stops, unlike  margin  setting  commands,  deal
|           with  the  column number rather than the horizontal
|           page position.  The leftmost postion in margins  is
|           0  (zero) while the leftmost position for tabs is 1
|           (one).



        Tabs should be used only in lines which will be unjustified
        and  unfilled,  i.e.   where filling is disabled or a break
        immediately follows.  Clearly, the spaces  specified  by  a
        tab  character  should  not  be  expanded  to  justify  the
        line--this would defeat the effect of tab formatting.  If a
        tab appears at a point where no further tab stops have been
        set on a line, the tab will be treated  as  though  it  had
        been a space.

   .NUMBER APPENDIX n

        Set chapter number to "Appendix n"  where  n  is  a  letter
        specified by you.

   .NUMBER CHAPTER n

        Set chapter number to the decimal number n.

   .NUMBER INDEX

        Set chapter number to "INDEX".   Following  pages  will  be
        "INDEX-2", ....

   .NUMBER LEVEL a,b,c...

        Set next header level to a.b.c...

   .NUMBER LIST d,n

        Set the list counter for  depth  d  to  n  (For  .LIST  and
        friends).

   .NUMBER PAGE n

        Resume page numbering (if disabled with .NONUMBER) and  set
        page  number  to  n.   Also will set a page number within a
        chapter for chapter oriented documents  (includes  appendix
        and index).

   .NUMBER SUBPAGE ch

        Set subpage number to ch (ch is a letter).
   COMMANDS                                               Page 2-16


|  2.7  TABLES
|  
|  Tables, for example the table of contents, have  been  added  to
|  RUNOFF.
|  
|  .TABLE {<ID>} {<  of pages>} <NAME>               .TA ...
|  
|       Starts a table.  The <ID> is a single digit number.   Table
|       0  is  the  default  and  is used for the table of contents
|       based on .HL information but must still be started  with  a
|       .TA  command.   The  number  of  pages  defaults to one and
|       indicates how much space in pages should be  left  for  the
|       table.   If  only one number is given to the command, it is
|       the number of pages.  <NAME> is the title of the table.
|  
|  .TE {<ID>} {<LEVEL>} <ENTRY>
|  
|       Adds an entry to the  table  <ID>,  which  must  have  been
|       previously started.  Field defaults to one.  The entry will
|       be put into the table indented according  to  its  <LEVEL>.
|       The  first  entry  must be made at the minimum level.  That
|       level  will  appear  left  justified  and  spaced   around.
|       Entries  at  other  levels  are  indented  in  multiples of
|       (<LEVEL> - the minimum level).  .CHAPTER and  .HL  commands
|       automatically  make  entries  for table 0 after it has been
|       started.  The level for .CHAPTER is  0;   for  .HL  is  the
|       given header level.
|  
|  .DO TABLE {<ID>}                                  .DT {<ID>}
|  
|       Outputs the table with the  given  <ID>.   If  no  <ID>  is
|       given, it outputs all tables that have been defined.




|  
|  
|  
|  2.8  MACROS
|  
|  A new command and new flag allow the definition and expansion of
|  MACROS.  MACROS may be nested and have up to three arguments.
|  
|  
|                                NOTE
|  
|                 Improper use of MACROS may  result
|                 in   obscure   messages   such  as
|                 "?Illegal Memory Reference at User
|                 PC    xxxxxx".     These   useless
|                 messages  should  be  fixed  in  a
|                 future  version,  but  for now, if
|                 RUNOFF gives such messages and you
|                 are using MACROS, be suspect.
   COMMANDS                                               Page 2-17


|  .DEFINE <name> <text> cr
|  .DEFINE <name> cr
|    <text1> cr
|    <text2> cr
|      ...
|    <text3> ! cr
|  
|  <, >, and cr are metasyntactic delimiters.
|  
|  
|                                NOTE
|  
|                 A multi-line MACRO must  be  ended
|                 with  an "!" (exclamation) while a
|                 single line MACRO needs only to be
|                 terminated  with  a  cr  (carriage
|                 return).  If an argument  is  seen
|                 past the MACRO name then the MACRO
|                 will be considered a  single  line
|                 MACRO.
|  
|  
|  .FLAG MACRO $
|  
|       $ is the default.  This flag is  normally  off.   $name  or
|       $name$  will  then  give  the  expansion of the macro named
|       name.
|  
|       $name(arg1,  arg2)  gives  an  expansion   after   argument
|       substitution.   Other  commas or parentheses in macros must
|       be quoted.  Inside of the macro, $$1, $$2, and $$3 refer to
|       the arguments.  ($ is the flag character.)
|  
|       Several special macros have been predefined.
|  
|       $FRACT(num,  den)  yields  a  fraction  with  a  horizontal
|       dividing  line  and  num  as  the  numerator and den as the
|       denominator.
|  
|       $TRIPLE(from, to, op) yields a  three  level  configuration
|       such  as  a  summation with limits given by $triple(I-1, n,
|       @s).  Each line is centered.
|  
|       $UTRIP(from,to,op) yields a  triple  with  each  line  left
|       justified.
|  
|       $HALFR(c) causes 'c' (a single  character)  to  be  printed
|       half  a  space  to the right on the AJ or DIABLO.  (AJ12 or
|       D12 must be specified if 12-pitch is to be used.)
|  
|       $RTEDGE(text) places its text argument  against  the  right
|       margin.  Does not cause a line break.
   COMMANDS                                               Page 2-18


|  2.9  COUNTERS
|  
|  A part  of  the  macro  facility  that  can  be  used  to  count
|  footnotes,  pages,  etc.   A counter is 1-6 characters long, the
|  first alphabetic, the others  alphanumeric.   A  description  is
|  given  below  of how counters can be defined, how they are used,
|  and which counters are predefined.
|  
|  .COUNTER <name> <value>                           .CO <name>
|       <value> <value> is optional and defaults to 0.  <value> can
|       be a decimal number, counter  name,  or  counter  name  +/-
|       decimal number.
|  
|  .SET <name> <value>
|       <value> is optional and defaults to 0.
|  
|  .INCREMENT <name> <value>                         .INC ...
|       <value> is an optional increment and defaults to 1.
|  
|  
|                                Usage
|  
|  
|       Counters are used as  macros.   (Brackets  denote  optional
|       choices.)
|       .FLAG MACRO $
|       $name{$}      - Counter value substituted in text.
|       $name+/-n{$}  - Counter value +/- n substituted in text.
|  
|       Predefined counters:
|  
|  
|       PAGE - Current page number.
|  
|       CHAPTER - Current chapter number.
|  
|       HL1 - Section level 1.  ..  - ...  HL5 - Section level 5.
|  
|       FOOTNOTE - Number of last footnote.
|  
|       FIGURE - Number of last figure.
|  
|       LMARG - Left Margin
|  
|       TBLLVL - Maximum header level to be inserted in  the  table
|       of contents.
|  
|       FRAUND - If this is non-zero, then fractions are done  with
|       half-up underlining.
|  
|       BOTNUM - Number of blank lines left below page numbers when
|       at page bottom (initialized to 8) (set to 4 for thesis)
|  
|       HWPLN - Number of lines that will fit on paper (initialized
|       to 66) (set to 64 to be accurate for AJ or line printer)
   COMMANDS                                               Page 2-19


|       CHPDWN - Number of  lines  to  skip  before  chapter  start
|       (initialized to 12)
|  
|       HEADSP - Number of lines to skip before .HL (initialized to
|       3)
|  
|       IF and IFNOT can use counters for arguments with 0  meaning
|       false and non-zero meaning true.







   2.10  CONDITIONALS

   Text and commands may be  conditionally  skipped  or  processed,
   depending  on  the  value  of  variables  defined  by  the user.
   Variable names consist of up to 6 letters (no  digits  allowed).
   All  variables  to  be used are declared at the beginning of the
   input file with the .VARIABLE command.  Variable values will  be
   false  unless  listed in the /VARIANT switch to RUNOFF (see list
   of switches for format).  Text and commands to be  conditionally
   processed  are  bracketed  by  .IF  and .ENDIF (.IFNOT and .ELSE
   also).

   .VARIABLE name ch ch                              .VR name ch ch

        Declares variable specified (name).  Value  will  be  false
        unless same name was also specified in /VARIANT switch.

        The two characters, ch and ch, are any  two  non-blank  and
        non-comma  characters.   They  are used only with /DRAFT to
        indicate whether text would be generated without the /DRAFT
        switch.   This  is  because  /DRAFT  causes  all text to be
        generated whether or not conditional is  true.   The  first
        character  is  output  at the beginning of each line if the
        text would not be, the second character if it would be.  No
        character  is  output on the last line if no break was done
        before the ENDIF command occurs.

             .VARIABLE EXTRAS [ ]

   .IF name

        Process the following text (up to .ENDIF or .ELSE) only  if
        variable name was specified with a /VARIANT switch.
   COMMANDS                                               Page 2-20


   .IFNOT name

        Process the following text (up to .ENDIF or .ELSE) only  if
        variable name was NOT specified with a /VARIANT switch.

   .ELSE name

        Reverse sense  of  .IF  or  .IFNOT.   If  input  was  being
        processed,  quit  till  .ENDIF, otherwise begin processing.
        Variable name must match name  used  in  preceding  .IF  or
        .ENDIF.

   .ENDIF name                                       .EI name

        End conditional processing.  If input  was  being  skipped,
        resume processing.  Otherwise pretty much ignore .ENDIF.











                              CHAPTER 3

                         PROGRAM LOGIC MANUALS



   RUNOFF can produce a Program Logic Manual (PLM)  from  a  source
   code  file  written  in  Fortran, Macro, or some other language.
   The comments in the program  are  written  to  allow  RUNOFF  to
   process  them  selectively.   Only selected comments go into the
   PLM (comments may be either text or RUNOFF  commands).   Special
   characters  are used to indicate to RUNOFF which comments are to
   be used.

   RUNOFF must know  what  comment  character  was  used  and  what
   characters  imbedded  in the comments enable or disable RUNOFF's
   processing  of  comments.   There  are  four  of  these  special
   characters.  Together they make up the SELECTION STRING.  RUNOFF
   assumes certain selection strings for  each  language  it  knows
   (language  determined  by extension on file).  If the default is
   not acceptable (which it is not for F40), the  selection  string
   may  be  changed  with  the .SELECT command.  The four selection
   characters are as listed below.

   Comment character
        This character defaults to ";" for  Macro-10  and  "!"  for
        FORTRAN  and  most  other languages.  The F40 compiler does
        not accept "!" as a comment so it is  necessary  to  change
        the   comment  character  to  "C"  or  some  other  comment
        character.  Note that "c" is quite  a  different  character
        from "C" as far as RUNOFF is concerned.

   Single command character
        This character defaults to "&".  It immediately follows the
        comment  character  to  tell RUNOFF to read the rest of the
        line.

   Block start character
        This character defaults to "+".  It immediately follows the
        comment  character  to  tell  RUNOFF  to  read each comment
        following this line.  The comment characters themselves are
        not included in the PLM.
   PROGRAM LOGIC MANUALS                                   Page 3-2


   Block end character
        This character defaults to "-".  It immediately follows the
        comment character to terminate a block begun with the begin
        block character ("+").


   .SELECT string                                    .SL string

        Set  the  selection  string.   String  consists   of   four
        characters  as  described  above (same order).  Any special
        characters in the string must be  quoted  with  "_".   This
        command  need  not  be used if the default selection string
        determined by the file's extension is correct.  It must  be
        used  for  a  FORTRAN  program  using  "C" for comments.  A
        sample program follows:

             C Set comment character for RUNOFF
             C!&.SELECT C_&+-
             C This line is ignored by RUNOFF, as is next
             statement.
                   A=B*C-DEF
             C+
             C.RIGHT MARGIN 25
             C This line is included due to the + beginning a
             block.
             C Continues till next line.
             C-
                   END

        This program (called file.F40 here) is processed:

             .R RUNOFF
             *file.F40

        And the result in file file.PLM:

             This line is included due
             to   the  +  beginning  a
             block.   Continues   till
             next line.
                                 INDEX
          (Entries entirely in upper case are command names.)



   /bar:n . . . . . . . . . . . . . 1-2
   /creturn . . . . . . . . . . . . 1-2
   /device: . . . . . . . . . . . . 1-2
   /down:n  . . . . . . . . . . . . 1-2
   /draft . . . . . . . . . . . . . 1-2
   /hbuffers:n  . . . . . . . . . . 1-3
   /header:space  . . . . . . . . . 1-2
   /hlength:n . . . . . . . . . . . 1-3
   /hspaces:n . . . . . . . . . . . 1-3
   /hwords:n  . . . . . . . . . . . 1-3
   /hyphenate:xxx . . . . . . . . . 1-2
   /irange:r  . . . . . . . . . . . 1-3
   /lines:n . . . . . . . . . . . . 1-3
   /micro . . . . . . . . . . . . . 1-3
   /nobar . . . . . . . . . . . . . 1-4
   /nonote  . . . . . . . . . . . . 1-4
   /note:n  . . . . . . . . . . . . 1-4
   /nounderline . . . . . . . . . . 1-4
   /orange:r  . . . . . . . . . . . 1-4
   /pause . . . . . . . . . . . . . 1-4
   /right:n . . . . . . . . . . . . 1-4
   /select:"string" . . . . . . . . 1-4
   /sequence  . . . . . . . . . . . 1-5
   /simulate  . . . . . . . . . . . 1-5
   /spacing:n . . . . . . . . . . . 1-5
   /typeset:xxx . . . . . . . . . . 1-5
   /underline:ch  . . . . . . . . . 1-5
   /underline:character . . . . . . 1-5
   /underline:line  . . . . . . . . 1-5
   /underline:none  . . . . . . . . 1-5
   /variant:(variable,variable,...)  1-5
   /width:n . . . . . . . . . . . . 1-5

   APPENDIX text  . . . . . . . . . 2-7
   AUTOPARAGRAPH  . . . . . . . . . 2-8

   BEGIN BAR  . . . . . . . . . . . 2-12
   BLANK n  . . . . . . . . . . . . 2-2
   BREAK  . . . . . . . . . . . . . 2-2
   Break  . . . . . . . . . . . . . 1-6

   Case specifying  . . . . . . . . 1-7
   CENTER n . . . . . . . . . . . . 2-3
   CHAPTER text . . . . . . . . . . 2-6
   Command format . . . . . . . . . 1-6
   Command string . . . . . . . . . 1-1
   Commands
     conditional  . . . . . . . . . 2-19
     counters . . . . . . . . . . . 2-18
     flag setting . . . . . . . . . 2-12
     formatting . . . . . . . . . . 2-2
     hyphenation  . . . . . . . . . 2-3
     macros . . . . . . . . . . . . 2-16
     mode setting . . . . . . . . . 2-7
     page formatting  . . . . . . . 2-4
     parameter  . . . . . . . . . . 2-14
     tables . . . . . . . . . . . . 2-16
   CONTROL CHARACTERS . . . . . . . 2-9
   COUNTER <name> <value> . . . . . 2-18
   Counters . . . . . . . . . . . . 2-18

   DEFINE <name>  . . . . . . . . . 2-17
   DISABLE BAR  . . . . . . . . . . 2-9
   DO INDEX (text)  . . . . . . . . 2-12
   DO TABLE  {<id>} . . . . . . . . 2-16
   Double spacing . . . . . . . . . 2-14

   ELSE name  . . . . . . . . . . . 2-20
   ENABLE BAR . . . . . . . . . . . 2-9
   END LIST . . . . . . . . . . . . 2-10
   END LITERAL  . . . . . . . . . . 2-8
   END NOTE . . . . . . . . . . . . 2-10
   END SUBPAGE  . . . . . . . . . . 2-5
   ENDIF name . . . . . . . . . . . 2-20
   Exclamation point  . . . . . . . 2-10

   FIGURE DEFERRED n  . . . . . . . 2-2
   FIGURE n . . . . . . . . . . . . 2-2
   FILL . . . . . . . . . . . . . . 2-7
   Filling of text  . . . . . . . . 1-6
   FIRST TITLE  . . . . . . . . . . 2-6
   FLAG ALIGNMENT . . . . . . . . . 2-13
   FLAG BACKSPACE . . . . . . . . . 2-13
   FLAG CAPITALIZE  . . . . . . . . 2-12
   FLAG HALFDOWN  . . . . . . . . . 2-13
   FLAG HALFUP  . . . . . . . . . . 2-13
   FLAG INDEX . . . . . . . . . . . 2-13
   FLAG LEFTBRACE . . . . . . . . . 2-13
   FLAG MACRO $ . . . . . . . . . . 2-17
   FLAG RIGHTBRACE  . . . . . . . . 2-13
   FOOTNOTE n . . . . . . . . . . . 2-10

   HEADER LEVEL n text  . . . . . . 2-7
   HEADER x . . . . . . . . . . . . 2-5
   HYPHENATE file n . . . . . . . . 2-4

   IF name  . . . . . . . . . . . . 2-19
   IFNOT name . . . . . . . . . . . 2-20
   INCREMENT <name> <value> . . . . 2-18
   INDENT n . . . . . . . . . . . . 2-2
   INDEX text . . . . . . . . . . . 2-11

   Justification of text  . . . . . 1-6
   JUSTIFY  . . . . . . . . . . . . 2-7

   LEFT MARGIN FOOTNOTE n . . . . . 2-11
   LEFT MARGIN n  . . . . . . . . . 2-14
   LEFT n . . . . . . . . . . . . . 2-3
   LIST ELEMENT;text  . . . . . . . 2-10
   LIST n . . . . . . . . . . . . . 2-10
   LITERAL  . . . . . . . . . . . . 2-8
   LOWER CASE . . . . . . . . . . . 2-12

   Macros . . . . . . . . . . . . . 2-16

   NO HEADER  . . . . . . . . . . . 2-6
   NO PAGING  . . . . . . . . . . . 2-6
   NO PERIOD  . . . . . . . . . . . 2-9
   NO SUBTITLE  . . . . . . . . . . 2-6
   NOAUTOPARAGRAPH  . . . . . . . . 2-8
   NOFILL . . . . . . . . . . . . . 2-8
   NOFLAG . . . . . . . . . . . . . 2-12
   NOJUSTIFY  . . . . . . . . . . . 2-7
   NONUMBER . . . . . . . . . . . . 2-5
   NOTE text  . . . . . . . . . . . 2-9
   NUMBER APPENDIX n  . . . . . . . 2-15
   NUMBER CHAPTER n . . . . . . . . 2-15
   NUMBER INDEX . . . . . . . . . . 2-15
   NUMBER LEVEL a,b,c...  . . . . . 2-15
   NUMBER LIST d,n  . . . . . . . . 2-15
   NUMBER n . . . . . . . . . . . . 2-5
   NUMBER PAGE n  . . . . . . . . . 2-15
   NUMBER SUBPAGE ch  . . . . . . . 2-15

   On-Line Operation  . . . . . . . 1-1

   PAGE . . . . . . . . . . . . . . 2-4
   Page Numbering . . . . . . . . . 1-6, 2-5
   PAGING . . . . . . . . . . . . . 2-6
   PAPER SIZE n,m,o . . . . . . . . 2-14
   PARAGRAPH n,v,t  . . . . . . . . 2-9
   PERIOD . . . . . . . . . . . . . 2-8
   PRINT INDEX (text) . . . . . . . 2-11
   PRogram Logic Manuals  . . . . . 3-1

   Quote character  . . . . . . . . 1-8
   Quoted Space . . . . . . . . . . 1-8

   RIGHT MARGIN n . . . . . . . . . 2-14
   RIGHT n  . . . . . . . . . . . . 2-9

   SELECT string  . . . . . . . . . 3-2
   SET <name> <value> . . . . . . . 2-18
   Single spacing . . . . . . . . . 2-14
   SKIP n . . . . . . . . . . . . . 2-2
   Source file format . . . . . . . 1-6
   Space  . . . . . . . . . . . . . 1-6, 1-8
   SPACING n  . . . . . . . . . . . 2-14
   Special Characters . . . . . . . 1-8
   SUBINDEX . . . . . . . . . . . . 2-11
   SUBPAGE  . . . . . . . . . . . . 2-4
   SUBTITLE text  . . . . . . . . . 2-6
   Switches . . . . . . . . . . . . 1-2

   TAB STOPS n ... n  . . . . . . . 2-14
   TABLE {<id>} {<pages>} <name>  . 2-16
   Tables . . . . . . . . . . . . . 2-16
   TE {<id>} {<level>} <entry>  . . 2-16
   TEST PAGE n  . . . . . . . . . . 2-4
   Title  . . . . . . . . . . . . . 1-6
   TITLE text . . . . . . . . . . . 2-6

   Underscoring . . . . . . . . . . 1-8
   UPPER CASE . . . . . . . . . . . 2-12

   VARIABLE name ch ch  . . . . . . 2-19

   Word spacing . . . . . . . . . . 1-6