1 08/30/79  runoff, rf
  2 
  3 Syntax:  rf paths {-control_args}
  4 
  5 
  6 Function: types out text segments in manuscript form.
  7 
  8 
  9 Arguments:
 10 paths
 11    are pathnames of input segments or multisegment files; the runoff suffix
 12    need not be given.
 13 
 14 
 15 Control arguments:
 16 -ball N, -bl N
 17    convert output to a form suitable for an N typeball.
 18 -character, -ch
 19    create entryname.chars, listing page and line numbers of special characters,
 20    normally not printable, that must be drawn in by hand.
 21 -device N, -dv N
 22    prepare output compatible with device N.
 23 -from N, -fm N
 24    start printing at the page numbered N.
 25 -hyphenate, -hph
 26    call user-supplied procedure to perform hyphenation.
 27 -indent N, -in N
 28    set initial indentation to N.
 29 -no_pagination, -npgn
 30    suppress page breaks.
 31 -number, -nb
 32    print source segment line numbers in output.
 33 -page N, -pg N
 34    change the initial page number to N.
 35 -parameter arg, -pm arg
 36    assign arg as a string to the internal variable "Parameter".
 37 -pass N
 38    make N passes over the input.
 39 -segment, -sm
 40    direct output to the segment or multisegment file named entryname.runout,
 41    where entryname is the name of the input segment.
 42 -stop, -sp
 43    wait for a carriage return before each page.
 44 -to N
 45    finish printing after the page numbered N.
 46 -wait, -wt
 47    wait for a carriage return before the first page.
 48 
 49 
 50 Control requests:  are defined below.  If the request has a
 51 default, it is in parentheses following the definition.
 52 The following conventions are used to specify arguments of
 53 control requests.
 54 #     integer constant
 55 c     character
 56 cd    character pair
 57 exp   expression (either numeric or string)
 58 n     integer expression
 59 +/-n  +/- indicates update by n; if sign not present, set to n
 60 f     segment name
 61 t     title of the form 'part1'part2'part3'
 62 
 63 .ad          right justify text (on)
 64 .ar          arabic page numbers (arabic)
 65 .bp          begin new page
 66 .br          break, begin new line
 67 .cc c        change special character from % to c (%)
 68 .ce n        center next n lines (1)
 69 .ch cd....   note "c" in chars segment as "d"
 70 .ds          double space (off)
 71 .ef # t      defines even footer line #
 72 .eh # t      defines even header line #
 73 .eq N        next N lines are equations (1)
 74 .ex text     call command processor with "text"
 75 .fh t        format of footnote demarcation line (underscore)
 76 
 77 
 78 .fi          fill output lines (on)
 79 .fo # t      equivalent to--  .ef # t, .of # t
 80 .fr c        controls footnote numbering--  "t" reset each page,
 81              "f" continuous, "u" suppress numbering
 82 .ft          delimits footnotes
 83 .gb xxx      "go back" to label xxx
 84 .gf xxx      "go forward" to label xxx
 85 .he # t      equivalent to: .eh # t, .oh # t
 86 .if f exp    segment f.runoff inserted at point of request;
 87              value of "exp" assigned to "Parameter"
 88 .in +/-n     indent left margin n spaces (0)
 89 .la xxx      define label xxx
 90 .li n        next n lines treated as text (1)
 91 
 92 
 93 .ll +/-n     line length is n (65)
 94 .ma +/-n     equivalent to-- .m1 +/-n, .m4 +/-n (4)
 95 .mp +/-n     print only every nth page (1)
 96 .ms +/-n     multiple space of n lines (1)
 97 .m1 +/-n     margin above headers set to n (4)
 98 .m2 +/-n     margin between headers and footers set to n (2)
 99 .m3 +/-n     margin between last text line and last footer set to n (2)
100 .m4 +/-n     margin between first footer and page bottom set to n (4)
101 .na          does not right justify (off)
102 .ne n        need n lines; begin new page if not enough remain (1)
103 .nf          does not fill output lines;
104              print them exactly as entered (off)
105 
106 
107 .of # t      defines odd footer line #
108 .oh # t      defines odd header line #
109 .op          next page number is odd
110 .pa +/-n     begin page n
111 .pi n        skip n lines if n remain; otherwise
112              skip n on next page before any text (1)
113 .pl +/-n     set page length to n lines
114 .rd          read one line of text from the user_input I/O switch
115              and process it in place of .rd line
116 .ro          roman numeral page numbers (arabic)
117 .rt          "return" from this input segment
118 .sk n        skip n page numbers (1)
119 .sp n        space n lines (1)
120 .sr sym exp  assign value of "exp" to variable named "sym"
121 
122 
123 .ss          single space (on)
124 .tr cd....   translate nonblank character c into d on output
125 .ts n        process next input line only if n is not zero (1)
126 .ty xxx      write "xxx" onto error_output I/O switch
127 .un n        indent next text line n spaces less (left margin)
128 .ur text     substitute values of variables in "text",
129              and scan line again
130 .wt          read one line of text from user_input I/O switch and
131              discard it
132 .*           comment line; ignored
133 .~           comment line; ignored, but included in chars
134              output segment
135 
136 
137 Built-in symbols:  runoff has over 50 internal variables,
138 which are available to the user.  In addition, the user can
139 set his own variables with the .sr control request.  See the
140 runoff command in the MPM Commands for the list of built-in
141 symbols.
142 
143 
144 Expressions:  can be either arithmetic or string and consist
145 of numbers and operators in appropriate combinations.  The
146 operators and order of precedence are--
147 ^  (bit-wise negation), -(unary)
148 *,/,\  (remainder)
149 +,-  (binary)
150 =, <, >, /, <, >  (all are comparison operators
151                    that yield -1 for true or 0 for false)
152 &  (bit-wise AND)
153 |  (bit-wise OR), = (bit-wise equivalence)
154 Parentheses for grouping.
155 
156 The values can have the following forms --
157 String
158    <string>=<basicstring> | <concatenation> | <substr>; <basicstring>="xxx"
159    <concatenation>=<string><basicstring>; <substr>=<string>(x,y)
160    escape sequences - *b,*t,*n,*s,*",**,*cnnn (BS,HT,NL,space,",*,\nnn)
161 Arithmetic adecimal number; # followed by octal digits - an octal number; @
162    followed by hexadecimal digits - a hexadecimal number