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>xy
160 escape sequences - *b,*t,*n,*s,*",**,*cnnn BSHTNLspace"*\nnn
161 Arithmetic adecimal number; # followed by octal digits - an octal number; @
162 followed by hexadecimal digits - a hexadecimal number