1 RNO Bonner Lab Runoff (RNO) VERSION: 1987.2 22 Dec 1987 This is a document formatter with similar syntax to Digital Standard Runoff (DSR). Helpful test files (*.TST,*.RNO) are Available In SYS_RUNOFF:. You may also use this to give you help on DSR syntax. 2 OPERATION RUNOFF can be initiated in several ways. The general formats are: $ RUNOFF command_string/options ... or $ RUNOFF The operating system will ask you for the input file name. 3 COMMAND_STRING System programs usually require a command string to specify such things as input files and various options. A standard command string has one of the following forms: input1-file,input2-file,... The command string syntax is described more completely in the User's Guide for the relevant operating system. 3 FILE_SPECIFICATION A file specification has the following form: Dev:[Directory.subdir...]Filename.Typ;Ver In this specification, Dev must be a legal device code. If omitted, the default value is SY:, the system disk. Directory must be a valid direc- tory name of the form [Name1.Name2 . . .Namen]. If omitted, the default is the current default directory. Filename is any 1- to 9-character al- phanumeric string that specifies a file name. Typ is a 1- to 3-character alphanumeric file type. Finally, Ver is the version number of the file. This field also normally can be omitted since it defaults on input to the highest existing version number for the file and on output to the highest existing version number plus one. Normally you need only specify the Filename. Default file specifications (any part of which may be overridden): Input: SY:name.RNO Output: SY:name.DOC Table of contents: SY:name.RNT If the name is omitted on the Output or Toc files, it is assumed to be the same as the first Input name. In other words: $ RUNOFF /TOC file is the same as: $ RUNOFF /OUT=file.doc /TOC=file.rnt file 3 OPTIONS A command string may have one or more options associated with it. 4 FORMAT An option is an indicator, consisting of a slash and a two-character ASCII name, used to select program options. Options may be used any- where in the command string. The option itself may have three forms. For example, If the option designator is SW, then: /SW sets the option action; /NOSW negates the option action In addition, the option identifier can be followed by any number of values. The permitted values are strings or decimal numbers. Any numeric value can be preceded with a + or a - sign; The following are valid option specifications. /FF=27 /NOFF /ul=L 4 LIST TABLE of RNO OPTIONS [NO] indicates the option may be negated. The negative of /CR is /NOCR /APPENDIX=([l],[h]) -- Output only indicated appendix range. /CHAPTER=([l],[h]) -- Output only indicated chapter range. /[NO]CR -- Output CR,LF in file. /[NO]DEBUG -- Type out input lines (debug) /[NO]EP -- Errors printed in .DOC file /[NO]EVEN -- Output even numbered pages. /[NO]FF=[n] -- Put form-feed at end of page. /[NO]HYPHENATE -- Hyphenate output /[NO]ODD -- Output odd numbered pages. /OUTPUT=file -- Specify output file name /PAGES=([l],[h]) -- Output only indicated page range /PS=([h],[w]) -- Set page size to H,W (height,width) /RIGHT=n -- Right shift output. n=amount of shift. /[NO]SPOOL -- Spool the output file. /TOC[=file] -- Create an intermediate table of contents file /[NO]TT -- Bypass checks and do a write all on output. /[NO]UC -- Force ALL uppercase output /UL=x -- Underline x=[B-backspace, S-simulate, L-line, N-none] /[NO]WAIT -- Wait at beginning of a page. /[NO]WR -- Warning message output. /[NO]2P -- Two pass operation. DEFAULT: /CR/NODE/NOEP/EV/OD/PS=(58,60)/HY/NOSP/TT/UL=L/NOWA/WR/NO2P 4 /APPENDIX /APPENDIX=([l],[h]) -- Output only indicated appendix range. l = lowest appendix to print h = highest appendix to print default = print all For example, if you wish to print appendix 5, type: /APPENDIX=(5,5) If you wish to print appendices 3 to 6: /APPENDIX=(3,6) If you wish to print appendices 2, etc.: /APPENDIX=2 Appendix numbers may range from 0 to 8,388,607. (Not available in DSR) 4 /CHAPTER /CHAPTER=([l],[h]) -- Output only indicated chapter range. l = lowest chapter to print h = highest chapter to print default = print all If you wish to print chapters 1 to 5, type: /CHAPTER=(1,5) or /CHAPTER=(,5) If you wish to print chapter 4 on: /CHAPTER=4 Chapter numbers may range from 0 to 8,388,607. (Not available in DSR) 4 /CR /CR -- Output CR,LF in file. (DEFAULT) /NOCR -- Output regular text (No CR,LF). When you use /CR, the output file will contain the necessary codes to advance the paper. With /NOCR, no carriage returns or line feeds are output. The file type is "CR". This mode is intended for outputing text that may be edited by any editor or copied by FLX. This mode doesn't work properly if the output line exceeds 256 characters. It should never be used if escape sequences, half spacing, or equations are desired. (Not available in DSR) 4 /DEBUG /DEBUG -- Type all input lines. /NODEBUG -- Do not type input lines. (DEFAULT) This is intended as a debugging aid. Input lines are typed on your terminal so you can view exactly where errors are in relation to the input. (Subset of DSR) 4 /EP /EP -- Error messages are printed in .DOC file. Only non fatal error messages appear in the output file. Fatal messages are typed on the terminal. /NOEP -- Error messages are typed at terminal. (Similar to /MESSAGE in DSR) 4 /EVEN /EVEN -- Output even numbered pages. (DEFAULT) /NOEVEN -- Do not output even numbered pages. If you wish to print on both sides of you paper, you can first print the odd pages by using /NOEVEN; then you can turn the paper over and print the even pages using /NOODD. You might want to use /RIGHT with /NOEVEN if you need extra margin for binding on odd numbered pages. (Not available in DSR) 4 /FF /FF -- Use form-feed at end of each page. (DEFAULT) /NOFF=[n] -- Simulate Form-feeds with blank lines When you use /FF, form feeds are only output at the end of a page. This causes the printer to advance to the next page. When you start printing, the paper must be properly adjusted because there is no form feed at the beginning of the first page. Most printers keep track of the paper and automatically advance to the beginning of the next page when given a form-feed. /NOFF is usually used with primitive line printers that do not recog- nize form-feeds, or it can be used to have output text that is free of form-feeds. The end of each page will be padded with sufficient blank lines to advance the paper to the beginning of the next page. n is pa- per length, (normally 66) set by your system manager. n must be less than 128. If n is 0, then no blank lines separate pages. (Similar to /SIMULATE and /FORM_SIZE in DSR) 4 /HYPHENATE /HYPHENATE -- Hyphenate output. (DEFAULT) /NOHYPHENATE -- Do not hyphenate output. When /NOHYPHENATE is used output will not be hyphenated. Neither auto or manual hyphenation will work. This overrides the .ENABLE HYPHENA- TION command. (Not available in DSR) 4 /ODD /ODD -- Output odd numbered pages. (DEFAULT) /NOODD -- Do not output odd numbered pages. This command is used to separate even, from odd pages. See /EVEN. (Not available in DSR) 4 /PAGES /PAGES=([l],[h]) -- Output only indicated page range. l = lowest page to print h = highest page to print default = print all This option should be used with the /APPENDIX,or /CHAPTER options for chapter oriented text. Page numbers can range from 1 to 4000 If h is omitted, there is no maximum page number. If l is omitted, it is as- sumed to be page 1. For example, if you wish to print pages 5 to 10, then specify /PAGES=(5,10) or you wish to print pages 6 to the end of the document, specify /PAGES=6 (Subset of DSR) 4 /PS /PS=([h],[w]) -- Set initial page size to h,w (height,width) default=/PS=(58,60) (See PAGE SIZE command). If a .PAGE SIZE command is used in your .RNO file, it will override this option setting. H must be larger than 15 and less than 128. W must be larger than 15 less than 256. (Similar to /FORM_SIZE in DSR) 4 /RIGHT /RIGHT=n -- Right shift output. n=amount of shift. This adds extra space to the left margin. The shift is in addition to the .LEFT MARGIN and the .ENABLE BAR commands. EXAMPLE: If you wish to add 5 spaces (1/2 inch PICA type): /RIGHT=5 (Same as in DSR) 4 /SPOOL /SPOOL -- Spool the output file. /NOSPOOL -- Do not spool output file. causes the output file to be printed on the line printer. NOTE: This does not apply to the TOC file. (Not available in DSR) 4 /TT /TT -- Do write all output. (DEFAULT) /NOTT -- Normal output. In /TT mode, the text is output without any changes. This bypasses normal operating system checking of output. This option works only if you send the output directly to a terminal or printer, and not to a file. The device must be defined as a terminal type device. This op- tion affects only the .DOC output and not the .RNT file. Sometimes the operating system will swallow control codes sent to the output device; this option insures that this will not happen. (Not available in DSR) 4 /UC /UC -- Force ALL uppercase output. The output will all be in caps. /NOUC -- Allow normal case conversion. (DEFAULT) (Not available in DSR) 4 /UL /UL=B -- Underline with a spacing-backspace. This type of underlining may fail to work properly if sub/superscripts or weird selectable fonts are used in the text. Alternate fonts must have the underscore in the normal ASCII position for this option to work. /UL=L -- Underline via line overprint with underline character. (DEFAULT) /UL=N -- Underlining suppressed. This overrides the .ENABLE UNDERLINING command. /UL=S -- Simulate underline with hyphen character on next line. This is used for line printers that have no special features. Some- times this option may add an extra line to a page to accomodate underlining. To avoid this, .LAYOUT n,s with s greater than 0 should be used. This reserves an extra line for possible underlines. (Similar to several options in DSR) 4 /WAIT /WAIT -- Wait at beginning of each page. /NOWAIT -- Print each page with no wait. (DEFAULT) /WAIT is useful if your printer must have some adjustments at the top of each page, or if you must feed in each page manually. RNO will wait for you to press the "return" key on the terminal before printing the next page. (Same as /PAUSE in DSR) 4 /WR /WR -- Warning message output. (DEFAULT) /NOWR -- No warning message output. Warning messages notify you of problems with the input that might cause you difficulties. Warning messages do not indicate that a problem ac- tually occured, only that one might occur. (Not available in DSR) 4 /2P /2P -- Two pass operation. /NO2P -- One pass operation. (DEFAULT) RNO can perform 2 passes so that all substitutions are defined on the first pass, and all text output on the second. This allows both for- ward and backward references. The .TYPE commands are executed for the second pass, but not for the first. This option will cause error mes- sages to appear in different places. All multiple substitute defini- tions appear during pass 1 while all other messages except fatal messages appear during pass 2. Fatal messages appear only once, and, if they occur, output may be missing. RNO will take about twice as long to execute in 2 pass mode. (Not available in DSR) 4 /OUTPUT /OUTPUT=file Normally the output file is created in the users default directory with the same file name as the first input file, and the extension .DOC. If you wish to specify the file name, you should use this option. (Same as in DSR) 4 /TOC /TOC[=file] To get a table of contents, you must create a .RNT file using this option. Then pass .RNT file through RNO to create the table of contents. If the file name is not specified, it is the same as the first input file with the extension .RNT (Similar to DSR) 2 FLAG_CHARACTERS 3 UNDERLINE & Ampersand UNDERLINE The character ampersand "&" is used to specify underlining. The am- persand will cause the character following it to be underlined, e.g. &f&o&o becomes foo. To begin underlining a whole section of --- text, precede the section by ^& and follow the section by \&. Any spaces in the section will not be underlined. To underline a single space or tab, precede it by &. Text with imbedded spaces can be un- derlined, spaces and all, by issuing the command .UNDERLINE " ". You can specify which characters will or will not be underlined with the .UNDERLINE and .NO UNDERLINE commands. (In DSR, you underline spaces by preceding them with an accept flag "_".) 3 SPACE # Number-Sign Quoted or non expandable SPACE It is sometimes necessary to include spaces that should not be treated as word separators. For this purpose, RUNOFF treats the number-sign character "#" as a quoted space; i.e. it will produce exactly one space in the output. Normal spaces might be expanded to multiple spaces to justify the text, but quoted spaces will not be expanded. Also, normal spaces mark the end of the previous word and the beginning of the next. Text with imbedded quoted spaces are not be broken at the quoted spaces or split into separate lines. 3 ACCEPT _ Underline ACCEPT or Quote character The underscore character "_" is used as an accept flag to allow the appearance of the special characters (ampersand, number-sign, cir- cumflex, or back-slash) in the output. The character immediately following an underscore will be transmitted to the output with no formatting effect. The underscore itself is a special character re- quiring quoting. The following 12 cases occur: _& _^ _\ __ _$ _| _= _% _< _# _{ _} If normal spaces or tabs are preceded by an ACCEPT character, they are converted to non-expandable spaces. 3 UPPERCASE ^ Circumflex UPPERCASE shift or mode lock As described above, the circumflex character "^" is used to convert the letter following to upper-case. It is also used to lock the case mode to upper case, and the underline mode to "underline all text". If ^ is to appear in the printed text, it must be preceded by the quote character "_^". User-defined special flags can be locked on using the circumflex. For example, if your printer sup- ports bolding, "^*" would be used to turn on bolding. 3 LOWERCASE \ Backslash LOWERCASE shift or mode unlock As described above, the backslash character "\" is used to convert the letter following to lower-case. It is also used to lock the case mode in lowercase, and to disable underlining. If a backslash is to appear in the printed text, it must be preceded by the quote character "_\". The backslash is also used to turn off special features. For example, "\*" would be used to turn off bolding if your printer supports it. 3 CAPITALIZE < Less-than CAPITALIZE next word If .FLAGS CAPITALIZE has been defined, the less-than character "<" will capitalize the entire word it precedes. If < is to appear in the printed text, it must be preceded by the quote character "_<". An appearance of a circumflex followed by less than "^<" permanently locks RUNOFF into capitalize mode. This mode can be cancelled by a double circumflex "^^". This flag is not normally used with termi- nals that have lowercase. 3 HYPHENATION = Equals-sign HYPHENATE character If .FLAGS HYPHENATE has been specified, the equals character "=" is used to control hyphenation. If it precedes a word, the word will not be hyphenated. If it is imbedded inside a word, it specifies where that word can be hyphenated. The word is only hyphenated if necessary to fill out a line. When hyphenation is specified for a word, no automatic hyphenation is used. When the hyphenate flag ap- pears at the end of a line, it specifies that the next line is a continuation of the current one and that a hyphen may appear at this point. If = is to appear in the printed text, it must be preceded by the quote character "_=". 3 OVERSTRIKE % Percent-Sign OVERSTRIKE character If .FLAGS OVERSTRIKE has been defined, the percent character "%" will generate a backspace to allow overstriking of the previous character to form new composite characters. If overstriking is de- fined and you wish to use the percent character in the text, it must be preceded by an underscore "_%". The default is .NO FLAGS OVERSTRIKE. Multiple backspaces can be generated, but you should be careful when using this feature: backspacing past the left margin is not allowed, and some printers do not support backspacing. (DSR doesn't support multiple backspacing) 3 PERIOD + Plus PERIOD character If .FLAGS PERIOD has been defined, the plus-Sign "+" will generate an extra space when followed by a normal space. For example J+ M will appear in the output as J M. 3 CONTROL . Period CONTROL character If a period appears at the beginning of a line, it indicates that the rest of the line is a control or command. 3 SUBSTITUTE $ Dollar-Sign SUBSTITUTE character If .FLAGS SUBSTITUTE has been enabled, the dollar sign marks the beginning of a substitution label. RUNOFF will then substitute the text specified by a .DEFINE SUBSTITUTE command for the label. Per- manently defined substitutions are already in affect for the current date and time. See: .FLAGS SUBSTITUTE. 3 BREAK | Vertical bar BREAK character If .FLAGS BREAK is enabled, this character indicates where a word or expression may be broken. A word containing a break will not be hy- phenated, but will be broken if necessary. Words may contain both specified hyphenation and break points. You can automatically specify breaks on a character by using the .AUTOBREAK command. If .TAB RIGHT is enabled, this flag also marks where a string is justified. If the break character appears at the end of a line, it specifies that the next line is a continuation of the current one. 3 INDEX > Greater than INDEX/SUBINDEX flags If .FLAGS INDEX is enabled, this character can be used to mark terms to be indexed. If .FLAGS SUBINDEX is enabled, the character can be used inside an .INDEX command to denote subindex terms. For further explanation, see the section on indexing. 3 EQUATION { } Braces EQUATION formatting characters If .FLAGS EQUATION is enabled, these characters are used to delimit either the numerator or denominator of a fraction. The numerator and denominator are further separated by a slash "/". (Not available in DSR) 3 USER_DEFINED ???? User defined flags The user can define any other special character as a flag by using the .FLAGS SPECIAL or .FLAGS ESCAPE commands. Any flag so defined obeys the printing rules defined above. The meaning of the flag is entirely up to the user. (Not available in DSR) 3 NOTE NOTE All of the above flags can be undefined by a .NO FLAGS command. They can be defined and changed to a different character by a .FLAGS command. For example, if you use the equals sign fre- quently, you can change the hyphenation flag to the seldom used tilde. This is done by entering the following line: .FLAGS HYPHENATE ~ 2 FORMAT_OF_COMMANDS This chapter contains a list of all RUNOFF commands. You may not want to read all of this chapter, as it is intended to be a reference manual. If you have never used RUNOFF before, then you should read the chapter "INTRO- DUCTION TO THE COMMANDS". All commands begin with a period(.). Any line in the source file beginning with a period is assumed to contain one or more commands. If the text after the period is not recognized as a command, an error message is typed. Most commands have arguments following them. An argument is a number or string of text that controls how the command works. Multiple arguments can be separated by spaces, tabs, or commas. If the arguments are separated by commas, any number of tabs or spaces can appear before or after the comma. Certain conventions are used to describe the arguments of a command. If the argument is enclosed inside square brackets [], it can be omitted. 3 NUMBERS Most arguments are numbers. If the number is preceded by a minus sign (-), it will be entered as a negative value. If it is preceded by +-, it is a relative argument. A relative argument changes the old value by + or - the value specified. Many arguments have limits. For example, page numbers must be within the range 1 to 8,388,607. Each command documents the limits on its arguments. For example, the command .LEFT MARGIN 5, will set the left margin to ex- actly 5, whereas the command .LEFT MARGIN +5 will set the left margin to its old value plus 5, and .LEFT MARGIN -5 will set it to the old value minus 5. 3 LITERALS Some commands have literal arguments. A literal is a string of text en- closed in either apostrophes (') or quotes ("). If quotes are used to delimit the string and you wish to use a quote inside the string, you must use two quotes in a row. Similarly, if the text is enclosed in apostrophes, a double apostrophe within the text will be interpreted as a single apostrophe. For example legal literals are: '"legal" literal' """legal"" literal" Either of these will appear as: "legal" literal The following are not legal literals: 'illegal literal" 'illegal' literal' ''illegal literal' Tabs enclosed inside a literal are treated as single spaces. A literal is also terminated by the end of a line. (This termination might not be supported in future versions.) 3 MULTIPLE More than one command can be entered on a single line. The commands can be optionally separated by a semicolon ";", spaces, or tabs. If a semi- colon is used as a separator, the next command must immediately follow with no intervening spaces or tabs. A command that is followed by text must be the last command on a line, and cannot have other commands after it on the same line. These include: .APPENDIX .CHAPTER .FIRST TITLE .HEADER LEVEL .INDEX .LIST ELEMENT .REQUIRE .SEND .SUBTITLE .TITLE For example, the following is a legal set of commands all on 1 line: .TT 10 .Fill;.EH .Title GONE WITH THE WIND Commands can have text following them, provided the text is separated from the command by a semicolon (;). For example, the following line will produce a centered title. .C;THIS IS A TITLE When the semicolon is used as a separator, it indicates that the rest of the line is to be treated just as if a new line had begun. 3 ABBREVIATIONS Many commands can be abbreviated. Standard abbreviations are given below each command. Many other abbreviations will work, but only the standard ones are guaranteed to work. Multi-word commands can appear without spaces. For example, the following forms of the .PAGE SIZE command are all legal: .PAGE SIZE 20,20, 4, 1, 1 .PAGE SIZE 20 , 20 .PAGESIZE 20 20 .PS ,,1,2 .ps , , 1 2 .PAG SIZ 25 Many commands have defaults. In other words, if an argument is not specified, a default value of the argument will be used. 3 USER It is possible to define your own commands. RUNOFF will search for ei- ther a standard command or a user defined command. To specify one or the other, preface a user command with an underscore "_" and a standard com- mand with a dollar sign "$". For example, you might have a user command called FIGURE, but there is also a standard command of the same name. To use your command, type ._FIGURE and to use the standard command, type .$FIGURE 2 COMMANDS 3 BLANK .BLANK [-n] .B [-n] skips n absolute lines. .BLANK is like .SKIP, except that the number of lines skipped is independent of line spacing. If the page is empty, .BLANK does nothing. n can be negative to move to n lines from the end of the page. The maximum value of n is 127 for normal spacing and 255 for half spacing. .BLANK should not be used to skip lines to leave room for artwork or figures because no lines will be skipped if the current position is at the top of a page. Values of n that are negative or greater than 6 are not allowed in footnotes or text sections. .BLANK 6 will leave 1 inch of space on the page. DEFAULT: .BLANK 1 3 BREAK .BREAK .BR causes a break. That is, 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. .BREAK LINE .BRL causes a break at the end of the next line. (Useful when defining commands.) 3 CENTER .CENTER [LINE][+-n] .CENTRE [+-n] .C [LINE] [+-n] causes a break, and centers the following line of text in the source file. If n is not specified, the centering will be halfway between the right and left margins. If n is specified as an absolute argu- ment (no sign), the centering will be over column n. If n is a re- lative argument, the centering will be over the default center plus the relative value of n. If a .RIGHT command has been already specified for the current line, the .CENTER command will be treated as an error. Tab stops are converted to single spaces for centered lines. NOTE The definition of n differs from the previous version of RUNOFF and DSR. 4 TEXT .CENTER TEXT [+-n] .C TEXT [+-n] .END CENTER .ECN centers lines of text that follow until an .END CENTER command is encountered. .CENTER TEXT differs from .CENTER LINE in that will center more than 1 line of text. Centering automatically prevents filling and justification. The argument n has the same meaning as for .CENTER LINE. (NOT available in DSR) 3 FIGURE .FIGURE [n] .FG n leaves n lines blank to make room for a figure or diagram. If fewer than n lines remain on the current page, the page is advanced and n blank lines are left at the top of the next page. .FIGURE guaran- tees that n blank lines will be generated, while .BLANK will does not if the position happens to be at the top or bottom of the page. If n is greater than the number of lines/page, an entirely blank page is produced. If a figure caption follows the figure command, it may not appear on the same page as the reserved space unless .TEST TEXT has been used to guarantee enough space. To guarantee the caption and figure are on the same page, use .TEXT. .FIGURE is not allowed during footnotes. If the current page doesn't have enough space for the figure, the rest of the page is left blank and n lines are left blank at the top of the next page. The maximum value of n is 127 for normal spacing and 255 for half spacing. DEFAULT: .FIGURE 1 4 DEFERRED .FIGURE DEFERRED [n] .FGD [n] reserves n lines on the current page, or, if there is not enough room, n lines at the top of the next page. This command differs from .FIGURE in that if there is no room for the figure on the current page, the current page will be filled with text right to the bottom line. Unlike .FIGURE, this command cannot be followed by the figure caption unless the .TEXT DEFERRED command is used. .FIGURE DEFERRED can not be used inside a footnote, note, or text section. The maximum value of n is 127 for normal spacing and 255 for half spacing. .FIGURE DEFERRED is equivalent to: .TEXT DEFERRED .BLANK n .END TEXT 3 INDENT .INDENT [-n] .I [-n] .LEFT [-n] .L [-n] causes a break, and sets the next line to begin n spaces to the right of the left margin. If the value of n is negative, the next line will begin to the left of the left margin. However, a line cannot begin to the left of column 0. DEFAULT: .INDENT paragraph-indentation 3 PARAGRAPH .PARAGRAPH [-n], [v], [t], [b] .P [-n], [v], [t], [b] causes a break, and starts a paragraph. If n is present, it speci- fies the number of spaces the paragraph is to be indented. (n can also have a negative value). v is the vertical spacing, or number of lines between paragraphs. v can range from 0 to 5. t is the TEST TEXT value. If there is not room for t lines on the page, a new page is started. b is the bottom test value. It specifies the minimum number of lines allowed on the next page. For example, if b is 2, then any paragraph that is split between two pages will have at least 2 lines on the second page. t and b are ignored during a text section or footnote. .PARAGRAPH is equivalent to: .SKIP v .INDENT n .TEST TEXT t,b (parameter b is not available in DSR) 4 SET .SET PARAGRAPH [-n], [v], [t], [b] .SPR [-n], [v], [t], [b] sets the paragraph parameters without actually starting a paragraph. The parameters specified in this command also have an effect on the following commands: .PARAGRAPH .LIST ELEMENT .NOTE .PRINT INDEX .DO INDEX DEFAULT: .SET PARAGRAPH 5,1,2,2 3 RIGHT .RIGHT [-n] .R [-n] breaks the line, and places the text that follows flush with the right margin if n is zero or unspecified. If n is specified, the text is placed n spaces to the left (n positive) or n to the right (n negative) of the right margin. If .RIGHT is issued after .CENTER or .CENTER TEXT, but before .END CENTER, the command will be re- jected with a "conflicting command" message. Tab stops are con- verted to single spaces for right justified lines. .RIGHT TEXT [-n] .R TEXT [-n] .END RIGHT .ER begins a section of text all of which is to be right justified. Each input line after this command causes a break, until an .END RIGHT is encountered. 3 SKIP .SKIP [-n] .S [-n] skips n spaced lines. The number of blank lines produced is n times the spacing. If the position is currently at the top of a page, .SKIP does nothing. If n is larger than the number of lines left on the page, a new page is started but no lines are skipped on it. The maximum value of n is 127 for normal spacing and 255 for half spacing. If n is negative, RUNOFF will skip n lines from the bottom of the page. Negative skips will work if the position is currently at the top of a page. Skip should not be used to leave room for artwork or figures; use .FIGURE or .TEXT instead. Negative skips, or skips greater than 6, are not allowed during footnotes or text sections. If n is not specified, it is assumed to be 1. If the spacing is 1, .SKIP 6 will leave 1 inch of space. If the spacing is 2 or 3, then 2 or 3 inches will be left. DEFAULT: .SKIP 1 3 FOOTNOTE .FOOTNOTE .FN saves space for a footnote. When the bottom of the page is reached, the text following the .FOOTNOTE command will be printed. If insuf- ficient room remains on the current page, the footnote continues at the bottom of the following page. The text of the footnote begins on the line following the .FOOTNOTE command, and ends with .END FOOTNOTE. Indentation, case lock, justify, margins, spacing, bar, and fill are preserved around footnotes. In addition, all status is preserved. See .SAVE STATUS. However, commands that affect page formatting are illegal in a footnote. A footnote within a footnote is also illegal. If the footnote overflows from the current page onto the next page, it is possible that the line referring to the footnote will also be printed on the next page. To prevent this, either preface the .FOOTNOTE command with a command that causes a break, or place enough text between the reference and the command to guarantee a full line of text. Normally .FOOTNOTE does not draw a line between the body of the text and the footnotes. If you want a line to be drawn automatically, use .PERMANENT FOOTNOTE. 4 END .END FOOTNOTE .EFN causes a break, and ends a footnote. The previous version of RUN- OFF used an exclamation point "!" to do this. The exclamation point is not supported in this version. Each .FOOTNOTE or .PERMANENT FOOTNOTE command must be followed by an .END FOOTNOTE command. Other versions of RUNOFF also required a parameter after the .FOOTNOTE command. 4 PERMANENT .PERMANENT FOOTNOTE .PFN saves information for a permanent footnote header. This command may only be issued before other footnote commands. If it is is- sued and a footnote command has already been given for the current page, an error will be generated. Text following this command is taken as a permanent footnote header that is printed between the body of text on a page and the footnotes at the bottom. Permanent margins, spacing, and fill/justify mode are also set up for footnotes. The left margin, right margin, and spacing can be set during a permanent footnote, and their values will be restored be- fore every subsequent .FOOTNOTE command. For example, to separate the footnote from the text by a blank line and a divider, and to indent both margins by 2 with no justification, you could use the following sequence of instructions: (NOT available in DSR) .PERMANENT FOOTNOTE .LEFT MARGIN +2 .RIGHT MARGIN -2 .NO JUSTIFY .SKIP 2;------- footnote ------- .END FOOTNOTE A permanent footnote will not be printed at the bottom of the page if no regular footnotes are declared. If the permanent footnote is longer than 6 lines, it is rejected with an error message. 3 NOTE .NOTE [;][title] .NT [;][title] formats notes. A note is text set off from the rest of the document by reduced margins and a centered title. The text of the note fol- lows the .NOTE command, and is terminated by an .END NOTE command. .NOTE skips 2 lines, reduces both margins, centers the title text (if no text is given, it centers the word "NOTE"), skips 1 more line, and issues a .TEST TEXT t,b, where t and b are determined by the last .PARAGRAPH or .SET PARAGRAPH command. The text of the note is then printed. The same indentation is applied to both the left and right margins. The amount of indentation that is applied will be 20,15,10, or 5, whichever produces no more than a 25% reduction in the text line. If the indentation produces a text line less than the minimum, no indentation is used, and an error message is produced. Unlike DSR, notes may not be imbedded inside other notes. .END NOTE [n] .EN [n] terminates the .NOTE command, skips n lines, and resets the margins and spacing modes to their settings before the last .NOTE command. DEFAULT: .END NOTE 2 3 PAGE .PAGE .PG causes a BREAK and an advance to a new page. If the current page is empty, a page advance is not performed. Like an automatic page ad- vance, this command prints the title (if given) and page numbers on every page. The next page number can be selected with the .NUMBER command. This command is illegal during a footnote or note. If you wish to end the page without causing a break in the text, use .IMMEDIATE TEST TEXT (.ITT). To produce a break at the end of the current line, use .ITT 127. .PAGE EVEN .PGE causes a page advance to the next even numbered page, skipping an odd numbered page if necessary. This command is illegal during a subpage, footnote, note, or text section. (not available in DSR) .PAGE ODD .PGO causes a page advance to the next odd numbered page, skipping an even numbered page if necessary. This command is illegal during a subpage, footnote, note, or text section. (not available in DSR) 3 SUBPAGE .SUBPAGE .SPG .END SUBPAGE .ES produces a new page, but the page number is unchanged and letters are appended to the page number until an .END PAGE command is encountered. This command permits the insertion of additional pages within an existing document without changing the existing page numbering. Subpages can be renumbered with the .NUMBER SUBPAGE command. While subpaging is in effect, .TEXT commands are illegal. Deferred text is never printed on subpages. For example, if you are on page 5 and .SUBPAGE is used, a page num- bered 5A will be produced. Subsequent pages will be numbered 5B, 5C and so on. After an .END SUBPAGE, the next page number will be 6. 3 PAGING .PAGING .PA .NO PAGING .NPA turns document paging on or off and causes a break in the text. When no paging is in effect, neither footnotes nor text sections are allowed, but a new page can be produced with the .PAGE command. .CHAPTER, .APPENDIX, or .PAGE SIZE commands will enable paging. These commands are illegal inside a note, footnote, or text section. DEFAULT: PAGING 3 TEXT .TEXT .TX .END TEXT .ETX specifies a text section that is to be kept all on one page. The text section is ended by a .PAGE, .END TEXT, or another .TEXT command. If the text section is too long to fit on the current page, the rest of the current page will be blank and the section will begin at the beginning of the next page. With this command you can guarantee that a given section of text will not be split between 2 pages unless it is too long to fit on 1 page. If a .PAGE command terminates a section, the rest of the page after the section will be blank. This command is illegal inside a footnote, note, or subpage. Likewise, footnotes and .TEST PAGE, .TEST TEXT, or .FIGURE DEFERRED are illegal inside this command. This command causes a break. (not available in DSR) 4 DEFERRED .TEXT DEFERRED .TXDEF starts a text section that will be printed later if it doesn't fit on the current page. The normal .TEXT command leaves the bottom of the current page blank if the text section doesn't fit. The .TEXT DEFERRED command will save the text for printing on later pages if necessary. If text is deferred, the current page will be filled with the text that follows the next .END TEXT or .PAGE command. The deferred text section is terminated by a .TEXT, .TEXT DEFERRED, .END TEXT, or .PAGE command. Several deferred sections can be defined at one time; they will appear on later pages as necessary. The .TEXT DEFERRED command is useful for de- fining figures with captions. If the page length is changed in the middle of the document, deferred pages might not appear cor- rectly, since the decision to defer the text is based on the original page size. This command causes a break. 4 NOTE NOTE .TEXT DEFERRED does not modify the rules applicable to the .SKIP, .FIGURE and .BLANK commands. If a .SKIP command fol- lows the .TEXT command and the text appears at the top of a page, the .SKIP command is ignored. This will cause trouble when a .TEXT DEFERRED is followed by .PAGE. If .SKIP follows the .TEXT DEFERRED, it will be ignored and the text will be shortened with the result that the intended text will not fill the page, and regular lines might appear at the bottom of the page. If you need to skip lines after .TEXT, you should use the .FIGURE command to reserve exactly the space you need. 4 EXAMPLE Examples To reserve 10 blank lines followed by a caption: .TEXT DEFERRED .FIGURE 10 This is figure 3.5 .END TEXT To reserve a whole page with 50 blank lines followed by a caption: .TEXT DEFERRED .FIGURE 50 This is figure 3.6 .PAGE To reserve room for 2 figures in a row: .TEXT DEFERRED .FIGURE 20 Figure 3.7 TEXT DEFERRED .FIGURE 20 Figure 3.8 .END TEXT 4 FLUSH .FLUSH flushes out all deferred text. If a .PAGE command is issued with deferred text pending, you are not guaranteed of getting a blank page. A blank page could, of course, be guaranteed by issuing several page commands in a row, but a better way of forcing a blank page is .FLUSH .PAGE 3 TEST The test commands check to see if there is enough room on the current page for more text. (not available in DSR) 4 PAGE .TEST PAGE [t] [,b] .TP [t] [,b] causes a BREAK followed by a conditional page advance. If there are fewer than t lines left on the page, an advance to the next page is performed. When you specify b, test page operates slightly differently: the text following the test page up to the next command that causes a break is treated as a block. Thus, b is useful in preventing orphan lines. t specifies the minimum number of lines at the top of the block and b the minimum number of lines at the bottom. The text will be arranged to maintain the minimum number of lines/page. In other words, the first t lines will all be on the same page, and the last b lines will also all be on a single page. The first t lines might not necessarily be on the same page with last b lines. (The b parameter is not available in DSR) .IMMEDIATE TEST PAGE [t] [,b] .ITP [t] [,b] performs a .TEST PAGE, but doesn't cause a break. If fewer than t lines remain on the current page, a new page is started and the current line becomes the first line on the new page. This command is useful if you wish to test for sufficient space on the current page without breaking the line. (not available in DSR) 4 TEXT .TEST TEXT [t] [,b] .TT [t] [,b] causes a break and tests to see if there is enough room on the current page for t lines of text. If not, a new page is started. This command differs from .TEST PAGE in that the actual space re- quired will depend on the current spacing. (not available in DSR) .IMMEDIATE TEST TEXT [t] [,b] .ITT [t] [,b] performs a .TEST TEXT without causing a break. (not available in DSR) 3 TITLE .TITLE [;][text] .T [;][text] .NO TITLE break the text and set the title for the top of the page. .TITLE takes the remaining text as the title and outputs it on every page at line 0. The title is normally left justified with respect to the permanent left margin. See the .PAGE SIZE command. The permanent margins allow different margins for the headers than for the text. Titles are also produced by these commands: .FIRST TITLE, .CHAPTER, or .APPENDIX. Titles can contain any special characters, but au- toindexing will not work and tabs are converted to spaces. Normally only the flags enabled at the last .TITLE or .SUBTITLE command will be used in producing the title/subtitle. If you wish to control the flags, use the .SAVE HEADER command. If a flag is specified or removed with a .FLAGS command, all subsequent titles and subtitles will be affected. .NO TITLE inhibits printing of either the title or the subtitle at the top of the page. Title printing is reinstated by the .TITLE command. (The optional [;] is not used in DSR) 4 FIRST .FIRST TITLE [;][text] .FT [;][text] is similar to .TITLE, but is used to specify the title to be printed on the first page of the document. This command must precede all text in the source file. Use of the FIRST TITLE com- mand is the only way to print a title line on the first page of the document. If the page number is formatted to appear on the same line as the title, it will not appear on the first page un- less a .FIRST TITLE command is issued. If the title is blank, only the page number will be printed. If the page number is at the bottom of the page, it will be printed on the first page whether or not a .FIRST TITLE command is used. The .FIRST TITLE command is equivalent to: .HEADERS .TITLE [ text ] (DSR doesn't support any parameters after .FIRST TITLE. If you wish to use this command in the same way as DSR, include a .TITLE command on the line after .FIRST TITLE.) 3 SUBTITLE .SUBTITLE [;][text] .ST [;][text] specifies the text to be used as the subtitle that appears directly under the title. The subtitle is aligned on the same margin as the title. The subtitle is not printed if the .NO TITLE command is in force. If you do not wish to have a subtitle, use the .SUBTITLE command without any text. (The optional [;] is not used in DSR) 3 LAYOUT .LAYOUT [code] [,spacing] .LO [code] [,spacing] breaks the current line and changes the layout of the title and page numbers on the page. This command does not have any affect on the current page. The next page will have the new layout. If you want to change only the first page of each chapter, use the .CHAPTER LAYOUT command. The spacing is the number of blank lines between the last line on the page and the page number. If the code is 0, then the spacing is the number of blank lines minus 1 between the bottom of the text and the bottom of the page. Pages with different layouts but the same spacing will have the same number of lines on a page regardless of whether the page number is at the top or bottom of the page. If the spacing is omitted, it is assumed to be 2 ex- cept for code 0. For code 0, it is assumed to be -1 if not specified. If layout 0 is used, the first page of a document will not have a page number unless .FIRST TITLE or .HEADERS commands are used at the beginning. However, all other layouts will number every page. This is consistent with DSR usage. The layout codes are: 4 CODE CODE PAGE LAYOUT ---- ---- ------ 0 Title flush left, page number flush right 1 Title center ,number bottom center 2 Title right odd page/left even ,number bottom center 3 Title left, number bottom center 4 Title left, number bottom right 5 Title center, number bottom right 6 Title center, number bottom right odd/left even 7 Title top, number bottom, both right odd/left even 8 Title left, number right odd/left even 9 Title right odd/left even, number bottom right 10 Title center, number bottom left 11 Title right odd/left even, number bottom left 12 Title left, number bottom left 13 Title right, number bottom left 14 Title right, number bottom center 15 Title right, number bottom right odd/left even 16 Title right, number bottom right DEFAULT: .LAYOUT 0 (Codes 5-16 not available in DSR) 4 CHAPTER .CHAPTER LAYOUT [code] [,spacing] .CHLO [code] [,spacing] changes the layout for the first page of a chapter or appendix without having any effect on other pages. The parameters are specified in the same manner as for the .LAYOUT command. If this command is not used, or used with no parameters, the layout will be the same for all pages of a document. (Not available in DSR) 3 HEADERS .HEADERS [on] .HD [on] .NO HEADERS [on] .NHD control whether the page header (title, subtitle, and page number) is printed. If a layout other than 0 is used, the page number is still printed at the bottom of the page and only the title and sub- title can be suppressed. If the header lines are disabled, the text begins at the top margin where the header would normally start. The first page of output from RUNOFF is formatted as if the .NO HEADERS command had been issued, while subsequent pages are formatted as if the .HEADERS command had been issued. This can be changed by issu- ing the .FIRST TITLE command before any text on the first page. 4 SPACING .HEADERS SPACING [n] .HDSP [n] sets the spacing between the title and the first line of text. The value n is the number of lines to skip. If n is not speci- fied, the current spacing per line of text is used as the default. The minimum value for n is 1. If 0 is specified, the value of 1 is assumed. DEFAULT: .HEADER SPACING 3 (Not available in DSR) 3 CHAPTER .CHAPTER [;][title] .CH [;][title] indicates the beginning of a chapter with the specified title. Suc- cessive .CHAPTER commands number the following chapters sequentially. The title can contain escape sequences. Tabs within the title are treated as ordinary spaces. This command declares the layout to be chapter oriented, which has effects on the page numbers and the section headers. The effect of this command is as if the following command string were entered: .NO HEADER .PAGE SIZE .PAGE .FIGURE 12 .CENTER; CHAPTER n and n is incremented by 1 automatically. After a "CHAPTER n", the following commands are performed: .BLANK 2 .CENTER; title .BLANK 3 .TITLE title .FILL .HEADER .SUBTITLE 4 RESULT The resulting chapter heading will have a centered title and chapter number. The chapters of this document are an example of the chapter format. All special printer features* are turned off, and underlining is turned off at the beginning of the chapter and after the chapter title. In addition the case, margins, spacing, and justify/fill modes are reset, any subtitles are cleared, and the chapter name is set to the title. The title will appear in CAPS unless it contains a shift down (\\). If the .NO AUTOTITLE or .NO TITLE command is used, the page title will not automatically be the same as the chapter title. To con- trol the margins and spacing, use the .PAGE SIZE command to set the permanent margins and spacing before the .CHAPTER command is executed. It is possible to reformat the chapters with the .STYLE CHAPTER command. Chapter numbers can be selected to be letters or Roman numerals with the .DISPLAY CHAPTER command. In addition, the .DISPLAY CHAPTER command can be used to change the word "CHAPTER" to another word, or just blank space. .DISPLAY CHAPTER can underline chapter ti- tles, or use bolding on printers that support this feature. The STYLE and DISPLAY commands, when used together, can completely alter the chapter header. 4 STYLE .STYLE CHAPTER [n1],[-n2],[-n3],[-n4],[-n5] .STCH [n1],[-n2],[-n3],[-n4],[-n5] changes the style of the chapter and appendix headers. 1. n1 = Number of lines to skip before the word CHAPTER. 2. n2 = Number of lines to skip after the word CHAPTER. If n2=-1, the title and the word CHAPTER will appear on the same line. 3. n3 = Number of lines between the title and text. If n3=-1, the title and any following text will be placed on the same line. 4. n4 = Number of spaces to indent the word CHAPTER. 5. n5 = Number of spaces to indent the title. If n4 or n5 are -1, the line will be centered. If n4 or n5 are -2, the line will be right justified. DEFAULT: .STYLE CHAPTER 12,1,3,-1,-1. (Not available in DSR) 3 APPENDIX .APPENDIX [;][title] .AX [;][title] indicates the start of an appendix with the specified title. Suc- cessive .APPENDIX commands assign identifying letters in alphabeti- cal order. This command performs the same functions as .CHAPTER except that an appendix results. This command acts as if the fol- lowing command string were entered: .NO HEADER .PAGE SIZE .PAGE .FIGURE 12 .CENTER APPENDIX a .BLANK 2 .CENTER; title .BLANK 3 .TITLE title .FILL .HEADER .SUBTITLE The letter following the word APPENDIX is incremented before it is printed. Both .STYLE CHAPTER and .DISPLAY APPENDIX alter the look of the appendix header. 3 sections A section header consists of a section number of the form n1.n2.n3... followed by a section title. If either the .CHAPTER or .APPENDIX command has been used, then the current chapter or appendix number is attached to the front of the section number, giving it the form n0.n1.n2.n3... The level of the section header is equal to the number of numbers in the section header (not counting n0). The exception is header level 1, which has the form n.0. The .STYLE HEADERS command can be used to override the default form and print section numbers as a single number or letter, or with no number at all. The following commands control the header levels. See also .DISPLAY LEVELS, .NUMBER LEVEL, .ENABLE TRAILING ZERO and .ENABLE LEVELS. 4 example Examples Here is an example of the first header level: 1.0 The first header level! Here is an example of a header at level 4: 1.2.3.4 Example of a header The following is a header at level 6: 3.1.1.1.1.1 Example of a header The following is a header at level 3 in chapter number 7: 7.3.2.1 4 LEVEL .HEADER LEVEL [+-n] [;][title] .HL [+-n] [;][title] starts a section with the specified section number and section title. n can range from 1 to 6. Successive .HEADER LEVEL com- mands at the same level cause the section numbers to increase sequentially. If the document is chapter oriented, then n will be the chapter number. Otherwise, it is the number of the .HL 1 level. The .HEADER LEVEL command issues the commands: .BREAK .TEST PAGE 7 .BLANK 2 then prints the section number, two spaces, and the section name. If the level number is preceded by + or -, the current level number is the previous one + or - the value specified. If the title is omitted, only the number is printed, and the next line of text follows, separated by 2 spaces. In this case, no distinction is made between different level numbers. If the title is too long to fit on 1 line, it is filled, justi- fied, and continued on the next line with indentation to line up with the first part of the title. Autohyphenation is not per- formed on header titles. 4 default DEFAULT LEVEL 1 capitalizes the section title and skips a line. LEVEL 2 prints the section title (no caps) and skips a line. LEVELS 3,4,5 The title and the text following it are separated by a dash. These defaults can be changed by the .STYLE HEADERS command. 4 SET .SET LEVEL +-n .SL +-n Sets the level for the next HEADER LEVEL command. 4 STYLE .STYLE HEADERS [n1],[n2],...[n9],[n10] .STHL [n1],...[n10] changes the format used for various levels of section headers. .STYLE HEADERS also causes a line break. If a value is not sup- plied, the default is used. Default values are shown below in (). n1 = Lowest level at which text starts on same line as title. (3) n2 = Lowest level with title capitalized. (1) n3 = Highest level with first letter of title in CAPS. (6) n4 = Lowest level with no level number. (7) n5 = Lowest level with centered title and number. If the title and text are on the same line, no centering occurs. (7) n6 = Number of blank lines before the header. (2) n7 = Number of blank lines after the title. (1) n8 = Implicit test page value (7) n9 = Number of spaces between section number and title. (2) n10= Largest level printed as n.m.... (6) (n10 not available in DSR) DEFAULT: STYLE HEADERS 3,1,6,7,7,2,1,7,2,6 4 INDENT .INDENT LEVELS n1,n2 causes the header levels to be indented by n1 from the left margin and n2 from the right margin. A positive value of n1 causes in- dentation to the right of the left margin. A positive value of n2 causes indentation to the left of the right margin. (Not available in DSR) .INDENT LEVEL TITLES [n1],[n2]...[n6] causes the section titles to be indented from the normal level in- dention by an additional fixed amount. This can be used, for ex- ample, to line up all of the titles for level 1 independently of the titles for level 2. If the spacing specified in the .STYLE HEADERS command is greater then the spacing specified by the .INDENT LEVEL TITLES, the style spacing is used. When n is omit- ted the indentation is not altered. DEFAULT: .INDENT LEVEL TITLES 0,0,0,0,0,0 3 AUTOBREAK .AUTOBREAK ["characters-to-test"] .AB ["characters-to-test"] .NO AUTOBREAK ["characters-to-disable"] .NAB enables or disables automatic optional breaks after selected characters. The selected characters are specified in a literal string. For example, to produce breaks after hyphens, issue the command .AB '-'. Then, if the word self-deceit overflows the end of a line, the word will break after the hyphen. This command is also useful in tabulation; see the .TAB RIGHT command for further information. If you turn off autobreak for spaces, they no longer act as separators between words. A character preceded by an accept flag "_" will not autobreak. (Not available in DSR) DEFAULT: .NO AUTOBREAK 3 AUTOHYPHENATE .AUTOHYPHENATE [size],[begin],[end],[mode][,"chars"] .AH [size],[begin],[end],[mode][,"chars"] .NO AUTOHYPHENATE [,"chars"] .NAH [,"chars"] controls automatic hyphenation. When automatic hyphenation is turned on, words will be hyphenated automatically wherever necessary. If hyphenation is turned off with .DISABLE HYPHENATION, all hyphenation, including autohyphenation, is disabled until an .ENABLE HYPHENATION is issued. Autohyphenation follows the normal rules of style. A hyphenated word will always have at least 2 letters on the end of first line, and at least 3 on the beginning of the next. These rules can be changed by the command parameters. If a command parameter is omitted, it maintains its previous value. When automatic hyphenation is turned off, user selectable hyphena- tion can still be used. Autohyphenation can be turned off tem- porarily for 1 word by preceding the word with the hyphenate flag. .NO AUTOHYPHENATE turns off all autohyphenation, and specifies characters that are not allowed inside hyphenated words. For exam- ple, specifying "." will prevent hyphenation of words at the end of sentences. To allow autohyphenation, but disable hyphenation when these characters are present, the .NO AUTOHYPHENATE command must be followed by the .AUTOHYPHENATE command. For additional help see .ENABLE HYPHENATION. 4 PARAMETERS 1. size = The minimum number of characters/word. 2. begin = The minimum number of characters at the beginning of a line. 3. end = The minimum number of characters at end of a line. 4. mode = The hyphenation mode. 0 produces maximum hyphenation with possibly some inaccuracy. 1 hyphenates according to the suffix/prefix tables only, for maximum accuracy. 5. "chars"= Special characters allowed in hyphenated words. DEFAULT: .AH 5,2,3,0,'\/.,()"@' For more information see .ENABLE HYPHENATION. (Not available in DSR) 3 AUTOPARAGRAPH .AUTOPARAGRAPH .AP .NO AUTOPARAGRAPH .NAP controls whether any blank line or a line starting with a space or tab is to be considered the start of a new paragraph. .AUTOPARAGRAPH allows normally typed text to be justified without special commands. It does not cause a paragraph if blank lines are followed by a command. Autoparagraphing works only if FILL is enabled. When autoparagraphing and fill are enabled, all tabs at the start of a line are removed. SEE - .PARAGRAPH, .SET PARAGRAPH DEFAULT: .NO AUTOPARAGRAPH 3 AUTOTABLE .AUTOTABLE .AT .NO AUTOTABLE .NAT controls whether or not lines starting with a space or tab are con- sidered to be the start of a new paragraph. This command allows normally typed text to be justified without special commands. AU- TOTABLE works only if FILL is enabled. When AUTOTABLE and FILL are enabled, all tabs at the start of a line are removed. See .AUTOPARAGRAPH. DEFAULT: .NO AUTOTABLE 3 AUTOTITLE .AUTOTITLE .ATI .NO AUTOTITLE .NATI controls the generation of automatic titles. When AUTOTITLE is enabled, then each time a .CHAPTER or .APPENDIX command is given, the chapter or appendix title will be used as the title at the top of the page. DEFAULT: .AUTOTITLE (Not available in DSR) 3 AUTOSUBTITLE .AUTOSUBTITLE [+-n] .AST [+-n] .NO AUTOSUBTITLE .NAST controls the automatic changing of subtitles. When AUTOSUBTITLE is enabled, each header level command lower than n sets the subtitle to the current header level title. DEFAULT: .NO AUTOSUBTITLE The default for n is 1 3 BEGIN_BAR .BEGIN BAR .BB .END BAR .EB controls whether the change bar is printed in the document. After a .BEGIN BAR, change bars are printed until an .END BAR. See .ENABLE BAR. 3 FILL .FILL .F .NO FILL .NF controls whether or not subsequent output lines are filled. The .FILL command causes a break in the text, and sets the justification mode to be that specified by the last appearance of .JUSTIFY or .NO JUSTIFY. When FILL is enabled, successive words from the source text are added to the output line until the adding of one more word would exceed the right margin. If hyphenation is enabled, RUNOFF will attempt to break words that would cause line overflow into syllables. The end of an input line is treated as a space unless the .NO SPACE command has been issued. Initially FILL is enabled, so it does not need to issued except after a .NO FILL. .NO FILL is useful if you want to type a table or text and you want the output to look exactly like the input. (This could also be done with the .LITERAL command.) DEFAULT: .FILL 4 RULES RULES 1. When .FILL is enabled, multiple or redundent spaces are removed. This includes the following: (A) Spaces following spaces. (B) Spaces following non expandable spaces "#". (C) Spaces following "tabs". (D) Spaces at the beginning of a line. 2. When FILL is enabled, the end of a line is treated exactly like a space. 3. If both FILL and PERIOD are enabled, any punctuation followed by a space is converted to "punctuation", "space", "non ex- pandable space". 4. If FILL is disabled, the end of a line is treated as a break ("|"). 5. Regardless of whether FILL is enabled or disabled, if the input line is longer than the available page size and it con- tains no "normal" spaces, it will be truncated to fit the available space. The only exception to this is when the line contains a "break" character ("|"); then the line is divided at the break character to make it fit. 3 JUSTIFY .JUSTIFY .J .NO JUSTIFY .NJ controls whether or not a line is filled out with additional spaces so that the last word ends exactly on the right margin. With justi- fication turned off, output lines will have a ragged right margin. DEFAULT: .JUSTIFY 4 RULES RULES 1. If justification is enabled, all "normal" spaces are expanded or padded to right justify the final output. 2. If a break occurs between lines, then the previous line is NOT --- justified. 3. If an input line is shorter than the output line size and it contains no "normal" spaces, the line cannot be justified. This is indicated by an error message: "Can't justify line" 4. If .VARIABLE SPACING is enabled, justification will be done by adding micro spaces, rather than full spaces. If the character width is not 1, then justification may not occur un- less variable spacing is enabled. 5. If justification is disabled, the output will not be padded with extra spaces, but if filling is enabled, redundant spaces will be removed. 6. .FILL normally turns justification off unless preceded by .NO JUSTIFY. 7. .NO FILL always turns off justification. In order to justify but not fill (not recommended), a .JUSTIFY command must follow every .NO FILL command. 3 KEEP 4 LINES .KEEP [LINES] .K [LINES] .NO KEEP [LINES] .NK [LINES] controls whether or not blank lines are kept in .NO FILL mode. Normally blank lines in the input are ignored. DEFAULT: .NO KEEP LINES (DSR uses .KEEP/.NO KEEP) 4 TABS .KEEP TABS .K TABS .NO KEEP TABS .NK TABS controls whether or not tabs at the beginning of a line are kept in .FILL mode. Autoparagraph mode also causes all tabs at the beginning of an input line to be discarded, so .KEEP TABS may not work with .AUTOPARAGRAPH. (Not available in DSR) DEFAULT: .KEEP TABS 3 LITERAL .LITERAL .LT .END LITERAL .ELI allows text to appear literally as typed. .LITERAL turns off fill and all flags to permit printing of text exactly as it appears in the source file. In addition, all commands are disabled until an .END LITERAL. When LITERAL is enabled, commands appear in the out- put as if they were normal text. Tabs are still recognized inside a literal. Blank lines are output instead of being ignored. This command is almost equivalent to the following sequence of commands: .NO FILL .KEEP .NO FLAGS ALL .NO FLAGS CONTROL The .LITERAL command can be turned off by the .END LITERAL command. Tabs are still expanded inside a literal, and if a special feature has been turned on it will remain on for the duration of the literal. For example, if the literal is preceded by "^&" the entire literal text will be underlined. If you want to use flags inside a literal, use the commands .NO FILL .KEEP to simulate the effect of a literal. You can turn off individual flags with a .DISABLE FLAGS command. 3 PERIOD .PERIOD ["chars"] .PR ["chars"] .NO PERIOD ["chars"] .NPR ["chars"] controls whether or not additional spaces are printed after every terminal punctuation that is followed by at least one space or tab character. .PERIOD causes two spaces to be printed after terminal punctuation. .NO PERIOD disables conversion of punctuation/space to punctuation/two spaces and specifies characters that will not cause 2 spaces when .PERIOD is engaged. If you do not want 2 spaces to be inserted after a punctuation mark, you can quote the character or use a non expandable space after it. For example, if you want to use an abbreviation such as "Char.", you can avoid the extra spaces by writing it "Char_." or "Char.#". "chars" is a list of characters to be added to the terminal punctua- tion list; the terminal punctuation list will be changed only if "chars" are specified. (This parameter is not available in DSR.) Alternatively, the PERIOD flag can be used to add extra spaces without enabling .PERIOD. DEFAULT: .PERIOD ".:;?!" 3 SEPARATED_EQUATION .SEPARATED EQUATION .SEQ .END SEPARATED EQUATION .ESEQ enables or disables separated equation mode. If separated equation mode is enabled, an equation will automatically generate extra lines to separate it properly from other equations or text. Separated equation mode does not generate a break. It also cannot be used in a FOOTNOTE. This restriction may be changed in a future release. If you format an equation with the SEPARATED EQUATION mode off and the equation occupies more than the alloted spacing, it may print over other text. SEE - .ENABLE EQUATION, .FLAGS EQUATION DEFAULT: .END SEPARATED EQUATION (Not available in DSR) 3 UNDERLINE .UNDERLINE "chars to underline" .UN "chars to underline" .NO UNDERLINE "chars to not underline" .NUN "chars to not underline" specifies which characters are underlinable. Normally all characters other than spaces are underlinable. To enable underlin- ing of spaces, for example, you would use the following command: .UNDERLINE " " If you did not wish to underline common punctuation marks, you would use the command: .NO UNDERLINE ".,?!;:" If you don't want to underline either the apostrophe or quotes: .NO UNDERLINE "'""" ;SEE .ENABLE UNDERLINING and .FLAGS UNDER- LINE for more information. (Not available in DSR) DEFAULT: .NO UNDERLINE " " 3 VARIABLE_SPACING .VARIABLE SPACING .VARSP .NO VARIABLE SPACING .NVARSP controls the variable spacing mode. If variable spacing mode is enabled, microspaces are used to pad out room between words in order to create a justified line. To use this feature with your printer, it must either be a DIABLO compatible or you must define an appropriate escape sequence for variable spacing with the .DEFINE VARIABLE SPACE command. If variable size characters are used and they are to be justified, then variable spacing must be enabled. Variable spacing should not be confused with proportional spacing. With variable spacing each letter is still assumed to occupy the same amount of physical space as opposed to a proportionally spaced font. NOTE When using .VARIABLE SPACING and .UNDERLINE" ", the option /UL:L will not work correctly. Gaps will be left in the underlining at each variable spacing point. In this case /UL:B is recommended. (Not available in DSR) DEFAULT: .NO VARIABLE SPACING 3 MARGINS 4 LEFT .LEFT MARGIN [+-n] .LM [+-n] sets the left margin to n, where n must be at least 16 less than the right margin but not less than 0. The initial left margin setting is 0. If n is not specified, the permanent margin is restored. If the margin is specified with a + or - sign, n is ad- ded to or subtracted from the current margin. For example: .LEFT MARGIN +5 moves the margin 5 spaces to the right. .LEFT MARGIN -5 moves the margin back 5 spaces to the left. .LEFT MARGIN sets the margin to the value last specifed in a .PAGE SIZE command. Tab stops are relative to the margin at 0. In other words, if you set .LEFT MARGIN 10 .TAB STOPS 10,15,20,25, then the tab stop at 10 will be ineffective because it is already at the left margin. 4 RIGHT .RIGHT MARGIN [+-n] .RM [+-n] sets the right margin to n, where n must be 16 greater than the left margin. The initial right margin setting is 60. If n is not supplied, the current page width (set with the PAGE SIZE command) is used. If the margin is specified with a + or - sign, n is ad- ded to or subtracted from the current margin. 4 TOP .TOP MARGIN [+-n] .TM [+-n] sets the top margin (the number of blank lines at the top of the page) to n. The top margin must be less than the total number of lines on the page. The default value is 0. If n is not speci- fied, the top margin is reset to the default or permanent value. See the .PAGE SIZE command for more information. If the margin is specified with a + or - sign, n is added to or subtracted from the current margin. (Not available in DSR) 4 PAGE .PAPER SIZE [+-h],[+-w],[+-l],[+-t],[s] .PAGE SIZE [+-h],[+-w],[+-l],[+-t],[s] .PS [+-h],[+-w],[+-l],[+-t],[s] sets the size of the page to h lines high by w characters wide. Also, the LEFT MARGIN is set to l, the TOP MARGIN to t and the spacing to s. These settings are permanent since they are now the new default for the duration of the document. If a .PAGE SIZE command is given in the middle of a page, the page length (h) and top margin (l) will not change for the current page, but will change for the next page only. The left/right margins and spacing (l,w,s) will change for the current page. Every .CHAPTER or .APPENDIX command will reinstate the permanent settings. Other margin commands without any margins specified will also reset the requested margin to the permanent value. All values can be set to the permanent values by issuing the .PAGE SIZE command without any parameters. The permanent values are used to determine the margins of the heading on each page. Older versions of RUNOFF used only the temporary right margin to set the header margins. If the margins are set so that there are fewer than 16 lines on a page or fewer than 16 spaces per line, the .PAGE SIZE command will be rejected with an error message. This restriction also applies to the margin commands. The maximum h is 127. DEFAULT: .PAGE SIZE 58,60,0,0,1. (DSR doesn't support permanent margins or parameters l,t,s) 4 NOTE NOTE If you wish this command or any other margin command to set the margins for the entire document, including the first page, you must put the command before any text and before .BLANK, .SKIP, .FIGURE, .CHAPTER, or any other command that generates text. 3 SPACING .SPACING [lines] .SP [lines] sets the number of spaces between lines. Spacing can range from 1 to 5 lines. If n is omitted, the permanent spacing (normally 1) is restored. The permanent spacing is set by the .PAGE SIZE command. This command influences .PARAGRAPH, .SET PARAGRAPH, .TEST TEXT, and .SKIP It has no effect on .TEST PAGE, .FIGURE, or .BLANK. .SPACING 1 is like single spacing on a typewriter, and .SPACING 2 is like double spacing. .CHAPTER or .APPENDIX resets the spacing to the permanent value. .PAGE SIZE also restores the permanent value if the spacing parame- ter is not specified. DEFAULT: .SPACING 1 4 HALF .HALF SPACING [half lines] .NO HALF SPACING is similar to the spacing command except that it turns on half spacing. "half lines" is the number of half lines per line of text. text. Once half spacing is enabled, every command that specifies spacing will work in increments of half lines. If "half lines" is omitted, the current spacing will remain unchanged. The .HALF SPACING command does not change any spacing unless n is ---- --- specified or unless one of the commands listed above is used. Commands that are affected by half spacing are: .BLANK .FIGURE .FIGURE DEFERRED .PAGE SIZE .TOP MARGIN .SPACING .HEADER SPACING .LAYOUT .STYLE LEVELS .STYLE CHAPTER .HALF SPACING 2 - Produces single spacing .HALF SPACING 3 - Produces 1&1/2 spacing .HALF SPACING 4 - Produces double spacing After .NO HALF SPACING, all commands that specify a spacing will work in increments of 1 space only. Previously specified spacing will, however, remain the same. This means that if you have set the spacing to 3 half lines and you wish it to be single spacing, you must subsequently issue .SPACING 1. NOTE .HALF SPACING will only work properly if the printer supports subscripting. You may have to use the .DEFINE SUBSCRIPT command. (Not available in DSR) DEFAULT: .NO HALF SPACING 3 LOCK .LOCK locks a number of page formatting parameters. While locked, these parameters cannot be changed. All commands that change the page format are locked. The following commands will give error messages if issued after a .LOCK command: .ENABLE NUMBERING .DISABLE NUMBERING .ENABLE NUMBERING CHAPTER .DISABLE NUMBERING CHAPTER .HEADERS UPPER .HEADERS LOWER .HEADERS MIXED .HEADERS PAGE .HEADERS NO PAGE .HEADERS SPACING .NO HEADERS .HEADERS .INDENT LEVELS .PAGE SIZE .TOP MARGIN .STYLE (all commands) .STANDARD .NO NUMBER .NO NUMBER CHAPTER .NO TITLE .LAYOUT .DISPLAY (all commands) In addition, .NUMBER CHAPTER will not reinstate chapter numbering, and .NUMBER PAGE will not reinstate page numbering. If you are careful to put all page formatting commands into a separate file, this command will probably not be necessary. If, however, you have been foolish enough to sprinkle them throughout your text, or you need to merge several documents into a single coherent tome, this command can be a valuable short cut. This command is intended to facilitate merging several files into 1 document. First set up all the parameters mentioned above and then lock them. If you still have page formatting commands in the rest of the document, they will not be obeyed. Thus, you can produce a uniform document with the same formatting throughout. (Not available in DSR) 3 TABS Lists of items can be conveniently expressed in tabular form using the tab key and the .TAB STOPS command. Every time you press the "tab" key you have entered a tab into the text. Just as on a typewriter, a tab will make the text begin at the next tab stop. The tab stops are set us- ing the .TAB STOPS command. Items can be right justified or center justified if a right stop is specified. When tabbing, it is suggested that you use the .NO JUSTIFY command or the .NO FILL command. If justi- fication is on, you will either get error messages or unpredictable results. Tab stops to the left of the left margin are not effective. You should also .DISABLE HYPHENATION when using the tabs. See also: ENABLE TABS, KEEP TABS, FLAGS TAB 4 STOPS .TAB STOPS ["ell"][+n1],["ell"][+n2], . . . .TS ["ell"][+n1],["ell"][+n2], . . . clears all previous tabs, and sets new ones. Each n specifies the column number for a tab stop. That is, n2 must be bigger than n1, and so on. If a tab stop is +n, then it will be n more than the previous one. If the first stop is +n, then it will be n more than the left margin. If n is prefaced by either R, C, or L, then the text is right, center, or left justified. If the number is preceded by a literal, then the text inside the literal is used as an ellipse to fill in the space generated by the tab. The maximum literal size is 15 characters. DEFAULT: .TAB STOPS 8,16,24,32,40,48,56,64,. . . (+- tab stops are defined differently in DSR) (The R,L parameters, and ellipses are not available in DSR) 5 EXAMPLE Example: .TAB STOPS +5,+10,+10,+10,+10 sets up a series of stops every 10 columns with the first one 5 from the left margin. .TAB STOPS 10,20,30,40,50 also sets up a series of stops every 10 columns, but the first stop is at column 10. The first tab is 10 from the left margin only if the left margin is at zero. .TAB STOPS ". " L20,C25,R40 sets up the first column to be filled with ellipses with the text left justified on column 20, center justified on column 25, and right justified on column 40. 4 PROPORTIONAL .TAB PROPORTIONAL n,["ell"][+-n1],["ell"][+-n2],,, .TABP n,["ell"][+-n1],["ell"][+-n2],,, sets the tab stops to create n columns across the page between the left and right margins. The first column begins at the left margin and ends at the first tab stop. The second column begins at the first tab stop and ends at the second one. The last column ends at the right margin. n must be 2 or larger. Tab stops are set so that all unspecified columns have equal width. The column 1 position is specified by n1, column 2 by n2, and so on. When you omit a column, it is unspecified. If you specify a column as either + or -n, then it is n larger or smaller than the unspeci- fied ones. Using + or -, you can increase or decrease each column width from an evenly spaced one. A column width cannot exceed 127. The actual number of tab stops set up is n-1. For example, if you want 3 columns, only 2 tab stops are set up. You can specify ellipses, and right or left justification as in the .TAB STOPS command. (Not available in DSR) 5 EXAMPLE For example, if you wish to set up 7 columns with 10 spaces in the second column, and 5 spaces in the 6'th column, then specify .TAB PROPORTIONAL 7,,10,,,,5 If you wish to set up 7 columns with the first and last only 5 spaces wide to allow for indented columns, then specify .TAB PROPORTIONAL 7,5,,,,,,5 This last example is a typical setup for a table. If you set up your table and then, after looking at the result, you decide to increase column 2 by 2 spaces and decrease column 4 by 1 space, then specify .TAB PROPORTIONAL 7,5,+2,,-1,,,5 When the .TAB PROPORTIONAL command is used, all previously specified tab stops are cleared. .TAB PROPORTIONAL is easier to use than .TAB STOPS for evenly proportioning columns. 4 LEFT .TAB LEFT .TL sets unspecified tabs to left justification. If you do not specify either .TAB LEFT or RIGHT, then .TAB LEFT is assumed. (Not available in DSR) For example, .NO FILL .TAB STOPS +10,+10,+10,+10 .TAB LEFT 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 will produce the following text: 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 4 RIGHT .TAB RIGHT .TR causes the text following an unspecified tab to be right justified. The text is right justified at the next tab terminator. The text is considered to be terminated by either a space, tab, end of line, break character, or autobreak character. If the break character is used to define the right side of the text, a .FLAGS BREAK command must be issued. This allows tables to be typed with the text right justified, or lined up with an ar- bitrary point (defined by the break). (Not available in DSR) 4 EXA EXAMPLES -------- Entering the text .NO FILL .TAB STOPS +20,+10,+10,+10 .TAB RIGHT 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 produces the following output: 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 Listing a column of figures right justified: .NO FILL .TAB STOPS R+20,R+10,R+10,R+10 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 produces the output 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar April Jones 152.75 0.00 3.78 1000.50 Smith 4.95 300.22 5.75 54.95 4 EXB Columns of figures lined up along the decimal points using the break flag: .NO FILL .FLAGS BREAK .TAB STOPS R+10,R+10,R+10,R+10 12345678901234567890123456789012345678901234567890 1|.23 3|.1415 75|.2 789|.0 55|.2 100|.98765 produces the output 12345678901234567890123456789012345678901234567890 1.23 3.1415 75.2 789.0 55.2 100.98765 4 EXC Here is another way of lining up decimal points using autobreak: .NO FILL .FLAGS BREAK .TAB STOPS R+10,R+10,R+10,R+10 .AUTOBREAK "." 12345678901234567890123456789012345678901234567890 1.23 3.1415 75.2 789.0 55.2 100.98765 produces the output 12345678901234567890123456789012345678901234567890 1.23 3.1415 75.2 789.0 55.2 100.98765 4 EXD Centered justification: .tabp 5,C7,C,C,C,C7 .tr .nf 123456789012345678901234567890123456789012345678901234567890 Mary Prunella Eve Sue Theresa Sadie Helen Agripinella produces 123456789012345678901234567890123456789012345678901234567890 Mary Prunella Eve Sue Theresa Sadie Helen Agripinella 4 EXE Laundry lists If you want To set up a series of tab stops for a list of items, and if no item needs to go in any particular column, you can produce the desired effect by setting .FILL .NO JUSTIFY. Each item should be pre- ceded by a tab. If you wish the left hand column to line up with the left margin use .NO KEEP TABS. Otherwise, the first column will line up on the first tab stop. 4 DISABLED Note Tab stops are disabled and converted to single spaces when: 1. After .RIGHT 2. After .CENTER 3. During equations 4. Inside titles/subtitles 3 ELLIPSES .ELLIPSES .ELL .NO ELLIPSES .NELL causes tabbed text to be filled with ellipses rather than spaces. This command only changes tab stops that do not have ellipses asso- ciated with them. In other words, if you tab and this feature is enabled, the text will be padded with ellipses ( . . . .) rather than spaces between tab stops. DEFAULT: .NO ELLIPSES (Not available in DSR) 4 EXAMPLE For example, if you type .NO FILL .TAB STOPS " "R+15,R+13,R+13,R+13 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar .ELLIPSES Jones 152.75 0.00 3.78 .NO ELLIPSES Smith 4.95 300.22 5.75 .ELLIPSES Brown 0.00 1056.19 25.49 the following text will be produced: 12345678901234567890123456789012345678901234567890 NAME Jan Feb Mar Jones 152.75 . . . 0.00 . . . . 3.78 Smith 4.95 300.22 5.75 Brown 0.00 . . 1056.19 . . . 25.49 3 COMMENT .COMMENT text .; text .! text causes the line to be ignored. The text is not printed in the output. Comments may contain useful information that you need when re-editing the file. For example, you might wish to add comments to a string of .DEFINE ESCAPE and .DEFINE SUBSTITUTE to remind you what each escape sequence and substitution does. 3 NO_SPACE .NO SPACE .NSP joins 2 filled lines without the normal space between them. If .FILL is engaged and you issue .NO SPACE after a line, a space will not be automatically generated in the output .DOC file. The end of a line may still cause a break. This condition could be forced by ending the previous line with a break flag. For example, Dis .NO SPACE;combobulate Will be printed as: Discombobulate 3 REQUIRE .REQUIRE 'filespec' .REQ 'filespec' allows input text to be taken from the specified file. A .REQUIRE command can be imbedded in files that have been required. Required files can be nested in this fashion to a depth of 5 input files are open at once. An attempt to require a sixth level of input will cause an error. The default filetype for a required file is .RNO. The filename can be enclosed in either single (') or double (") quotes. If any commands follow the .REQUIRE command on the same, they will be ignored. DEFAULT: file type=.RNO (DSR allows 10 levels of nesting) 4 EXA The .REQUIRE command allows a document to be easily broken up into reasonable chunks. For example, each section of a document could be put in a separate file and a master file that requires each section in order could be used to create the complete document. If the order of the sections needed to be rearranged, all that must be done is to change the order of the .REQUIRE statements in the master file. Overall formatting commands such as .PAGE SIZE, .DISPLAY, .HEADER ... could also be put into a separate that could be required at the begin- ning of each section. Commonly used substitutions and escape sequences can be put in a file that is required at the beginning of any file that needs them. 4 EXB The .REQUIRE statement can be used to simplify the generation of a series of letters with the same body but different inside addresses and salutations. Make a master file that contains the inside addresses and salutations and put the line .REQUIRE "LETTER" after each salutation. Create a file LETTER.RNO with the actual text of the letter. Running the master file through RUNOFF will then pro- duce a string of personalized letters. Later you can change the con- tents of LETTER.RNO to get another set of personalized letters for mass mailings. 4 EXC The .REQUIRE statement can be used to get input from a terminal. For example, .REQUIRE "TI:" can be combined with the .TYPE command to prompt the user for input that RUNOFF will accept from the terminal. The input must be ter- minated by CTRL-Z. 4 BINARY .REQUIRE BINARY [spacing] 'file-specification' .REQ BIN 'file-spec' transfers input from the specified file directly to the .DOC out- put file with no interpretation. Before the transfer, a break is performed and a test page is executed with the specified spacing. The .REQUIRE BINARY is useful for inserting diagrams and other graphical input into the text file. "Spacing" tells RUNOFF how much space to allow for the binary input file. .REQUIRE BINARY is illegal during a note, footnote, or text section. It is your responsibility to make sure enough space is available on the cur- rent page for the output by specifying the correct spacing. If the input file contains more than a fraction of a page, you may need to increment the current page number with .NUMBER PAGE +n. 3 SAVE These commands save and restore the current status of various variables. The status is restored automatically under certain conditions, or can be restored on demand with the RESTORE command. There are some similar com- mands in DSR, but they currently do not do the same thing. 4 LIST List of commands saved as part of the status: ---- -- -------- ----- -- ---- -- --- ------- .AUTOBREAK .AUTOHYPHENATE .AUTOPARAGRAPH .LOWERCASE .FILL .JUSTIFY .PERIOD .UPPERCASE .ENABLE/DISABLE BAR CONTINUE ESCAPE EQUATION FLAGS HYPHENATION INDEXING OVERSTRIKING SUBSTITUTION TABS UNDERLINING The options specified in the .PERIOD and .AUTOHYPHENATE commands are not saved or restored. 4 APPENDIX .SAVE APPENDIX saves the status. Restored automatically by an .APPENDIX command. 4 CHAPTER .SAVE CHAPTER saves the status. Restored automatically by a .CHAPTER command. 4 HEADERS .SAVE HEADERS saves the status. Restored automatically whenever a page header or page number are printed. Normally the page header is produced using the status at the last .TITLE, .SUBTITLE, or any command that automatically generates titles and subtitles. This is useful for preventing or allowing features as underlining to appear in the page header. In particular, the .FILL mode is saved, and ap- plies to the title, subtitle, and page number. 4 LEVELS .SAVE LEVELS saves the status. Restored automatically by a .HEADER LEVEL command. The status is only restored if the header level number is printed. Non-numbered levels do not restore status. For exam- ple, you can restore .FILL, .JUSTIFY etc for each section of the document. 4 STATUS .SAVE STATUS saves the status. Restored automatically by the .RESTORE STATUS command. .RESTORE STATUS immediately restores the status saved by the last SAVE STATUS command. 3 SETUP .SETUP escape sequences sends the specified escape sequence to the output file without in- terpretation before any other text. The escape sequence can consist of numbers and literals. This command is designed to set up the printer, and must precede all text. For examples of escape se- quences see .DEFINE ESCAPE. (Not available in DSR) 3 TRACE .TRACE generates an error message to aid in debugging your .RNO file. An output error message informs you whenever a footnote, note, or text section is being formatted, if fill, justify, or lock modes are on. The current flags characters (except for special flags) are listed. In addition, the current margins and spacing are printed. The page size and spacing are specified in half lines. (Not available in DSR) 3 TYPE .TYPE text causes the "text" to be typed on your terminal. The text must not be longer than 72 characters. This command is useful in tracing the progress of RUNOFF, for issuing a prompt before .REQUIRE "TI:" for user input. (Not available in DSR) 3 DEFINE Not available in DSR. 4 COMMAND .DEFINE COMMAND /label/command string allows the user to define new commands. The label consists of up to 40 letters. Imbedded spaces inside the label are treated as optional syntax elements. The actual command can have single, multiple or no spaces. The command string must be a legal set of commands to be substituted for the label. If a command is defined the same label as a normal command, the normal command will be used and the defined one ignored. .ENDIF will be ignored if used in a defined command. .DEFINE COMMAND must be the last command on the line. All text following this command is treated as the com- mand definition. When the defined command is encountered by RUN- OFF, the command string is substituted. Defined commands can be nested to 3 levels. To prevent conflict with future commands all user commands should begin with the letter Q. .DEFINE COMMAND is invaluable for defining commands that exist in other versions of RUNOFF, but are not available in this version. 5 PARAMETERS Parameters to be substituted into the command should be marked by %. Text parameters following titles, subtitles, and so on cannot be substituted; they must be included in the previous command. In other words, parameters can be nested. 5 EXAMPLE EXAMPLE .QHEADER A could be defined to skip a line, indent both margins by 5 spaces, and output a centered line of text: .DEFINE COMMAND /QHEADER A/.s.lm+5.rm-5.c; Acceptable variants of the command are .QHEADERA, .QHEADER A, and .QHEADER A The first command after the label, s, need not be preceded by a decimal point, as a decimal is already implied. For example, the previous command could be defined as: .DEFINE COMMAND /QHEADER A/s.lm+5.rm-5.c; An example of parameter substitution is: .DEFINE COMMAND /Q/.s %.i % The command .Q 5,8 would then skip 5 lines and indent 8. 4 ESCAPE .DEFINE ESCAPE "escape label" [,modifiers] definition Modifiers LCK - specifies that escape sequence is a lock/unlock pair. VSP,spacing - indicates that the escape sequence will change the vertical position by the specified spacing. HSP,spacing - indicates that the escape sequence will change the horizontal position by the specified spacing. PSP - indicates that the horizontal spacing specified by HSP is applied to all printable characters following the escape sequence. CHR - indicates that the lock/unlock pair is used to change only 1 printable character. 4 ITEM .DEFINE ITEM /name/ [format],[n] defines a numbered item that can be included in your text. "name" is a substitution label for the item, and "format" is the format used to display the item; see .DISPLAY PAGE. The initial value for the item, n, must be specified in the range 0 to 8,388,607 or as a series of letters from A to RIFZW. If letters are used for n, then the format must not be omitted. When an item is defined, it is included in the SUBSTITUTE table. The value can be in- cremented or changed by .NUMBER ITEM. For example, the following commands will define, increment and display a number: .DEFINE ITEM /FIG$/ .NUMBER ITEM /FIG$/ +1 $FIG$ DEFAULT: .DEFINE ITEM /item/ D 1 4 NUMBER .DEFINE NUMBER parameter /label/ defines a numeric substitution. The parameter determines what number is used in the substitution. Normally the number must be defined before you use the label. You can reference the label be- fore the .DEFINE NUMBER statement if you use the /2P option. Parameters are: Param. Number substituted APPENDIX Current Appendix or chapter CHAPTER Current Chapter or appendix LIST Current List element LEVEL Current Header level PAGE Current Page-subpage number ITEM /name/ Item named 5 RESTRICTIONS The LEVEL cannot be defined inside a footnote or text section. You should be careful mixing these commands with .TEXT DEFERRED. The text deferred command can cause the output text to appear on another page, or in another section of your text. If you use .DEFINE NUMBER PAGE, it will only work properly in 2 pass mode. In particular, definitions inside text deferred will only give the correct page number after the text has been output. The actual page number may be off by 1 page even in 2 pass mode if the defini- tion appears after the symbol is used. For this to always work correctly, an infinite pass mode would be necessary. As a practi- cal matter, you can help RUNOFF by defining the label to be approx- imately the same length as the anticipated number. .DEFINE NUMBER LEVEL should not follow .NUMBER LEVEL or precede .HEADER LEVEL. If it does, it may not give the correct level number. 5 EXAMPLES EXAMPLE If you want to refer to a section in your document with the label SECA$, then in that section place the command: .DEFINE NUMBER LEVEL 'SECA$' Later in your document you can refer to the section with See section $SECA$ . . . The following command will print the current chapter number: .DEFINE NUMBER CHAPTER /CHAPA$/ ; $CHAPA$ To define a label with the same number as an item: .DEFINE NUMBER ITEM /item/ /label/ For further examples, see test files: ITEM.TST and DEFNUM.TST 4 SUBSTITUTE .DEFINE SUBSTITUTE /label/ text defines a substitution to be made in the text. The label is preceded and followed by a delimiter of your choice. The label must be no more than 40 characters long, and should not contain spaces or tabs. The command and the first delimiter must be separated by one or more spaces or tabs, but no spaces are necessary after the second delimiter unless you wish to include them in the text. When a substitute flag is fol- lowed by a defined label, the specified text will be substituted for the flag+label. The text can contain another substitution. Up to 3 levels of substitution can be nested. The rules for multiple definitions of escape sequences also apply to substitutions. .DEFINE SUBSTITUTE must be the last command on the line. All text following this command is treated as the substitution definition. 5 EXAMPLE EXAMPLE: If you wish to abbreviate the phrase The party of the first part define and enable substitution with .DEFINE SUBSTITUTE /P1$/The party of the first part .FLAGS SUBSTITUTE Then every time you type $P1$ you will get instead the substitute phrase The party of the first part 5 DELIMITERS This example of define substitute could have used different delimiters if you needed to used the delimiters in the text. For ex- ample, it could be done as follows: .DEFINE SUBSTITUTE :P1$:The party of the first part ... or .DEFINE SUBSTITUTE "P1$"The party of the first part 5 LABELS The substitution label or name can consist of any printable character. Upper case or lowercase letters can be used, but the case of the letter will be ignored except for the first character. In other words, the following commands are equivalent: .DEFINE SUBSTITUTE /ABC/ .DEFINE SUBSTITUTE /Abc/ .DEFINE SUBSTITUTE /AbC/ But the following are not equivalent: .DEFINE SUBSTITUTE /aBC/ .DEFINE SUBSTITUTE /ABC/ 5 DSR_CONVENTIONS A special convention is used to define DSR compatible substitutions. If the first character of the substitution name is a dollar sign, the dollar sign stands for the substitute flag. If the substitute flag is changed to a character other than the dollar sign, then the de- fined substitution is considered to begin with the new substitute flag. When the substitution is searched for, the case of the input characters is ignored. An example of such a substitution is the $$DATE permanently defined substitution. For example, the following input: .FLAGS SUBSTITUTE @ .DEFINE SUBSTITUTE /$TEST/This is a test @@test !! will produce the following line: This is a test !! 4 SUBSCRIPT .DEFINE SUBSCRIPT [parameters] allows the user to define the subscript escape sequence, which is an escape sequence that moves the text down 1/2 space on the page. The se- quence must not exceed a maximum of 40 numbers or characters. The parameters can be either numbers or literals. The default is: .DEFINE SUBSCRIPT 27,"U" The subscript sequence be properly defined for equations of half spacing to work. For an LA-50 the sequence would be: .DEFINE SUBSCRIPT 27,"K" 4 SUPERSCRIPT .DEFINE SUPERSCRIPT [parameters] allows the user to define the superscript escape sequences, which is an escape sequence that moves the text down 1/2 space on the page. The sequence must not exceed a maximum of 40 numbers or characters. The parameters can be either numbers or literals. The default is: .DEFINE SUPERSCRIPT 27,"D" This must be properly defined for equations of half spacing to work. For an LA-50 it would be: .DEFINE SUPERSCRIPT 27,"L" 4 VARIABLE_SPACE .DEFINE VARIABLE SPACE n,[parameters] defines a micro space value, n, in microspaces/unit, for im- plementing variable spacing between words. Normally 1 unit is 1 space. The parameters define the escape sequence that produces a microspace. The escape sequence can have up to 20 numbers or characters. The default is: .DEFINE VARIABLE SPACE 6,27,31,3," ",27,31,13 This defines 6 microspaces/space for a DIABLO style printer at 10 pitch. .DEFINE VARIABLE SPACE 5,27,31,3," ",27,31,11 Defines 12 pitch Diablo. This available as an option in RNPRE when you build RUNOFF. To do the same for an LA-50 in 10 pitch with 180 dots/inch graphics: .DEFINE VARIABLE SPACE 6,27,"Pq",62,62,62,27,"" For proportional fonts, the micro space definition will probably be equal to the minimum movement of the carriage, and n=1. This must be properly defined for justification of proportional fonts. 3 DELETE (Not available in DSR) 4 COMMAND .DELETE COMMAND /label/ deletes an already defined command. Only commands defined by .DEFINE COMMAND can be removed. Neither this command nor .DELETE SUBSTITUTE reclaim the space in the substitution tables, so exten- sive useage of defines and deletes can cause the tables to overflow. .DELETE COMMAND is illegal in 2 pass mode. 4 SUBSTITUTE .DELETE SUBSTITUTE /label/ deletes an already defined substitution. Only commands defined by .DEFINE SUBSTITUTE can be removed. This command is illegal in 2 pass mode. 3 RESET (Not available in DSR) 4 ESCAPE .RESET ESCAPE resets all escape sequences. The internal table of all escape se- quences is cleared so that you can enter new ones with the .DEFINE ESCAPE command. After giving this command no escape sequences are any longer defined. If you need to reset escape sequences, this should be done only once at the beginning of your input file. 4 SUBSTITUTE .RESET SUBSTITUTE resets the table of substitutions so that all the previously de- fined substitutions and commands are no longer available. The permanently defined substitutions ($$DATE...) and defined commands are also no longer defined. To remove a single entry, use .DELETE SUBSTITUTE or .DELETE COMMAND. This command can be dangerous, so use with caution. It should done only once at the beginning of your input file. This command is illegal in 2 pass mode. 3 DISPLAY The display commands control how numbers such as the page number, chapter number, and so on, are displayed. Numbers can be displayed as normal (decimal) numbers, letters, or Roman numerals. Extra text can be added to the numbers as pre- or post-fixes. Pre- and post-fixes can be used to automatically control the format of various headers. For example, you can automatically underline headers, or print them in boldface on printers that support bolding. The display commands, like the DSR com- mands, produce a break. 4 FORMAT Table of Formats The format code produces numbers in the specified format: Format Description ------ ----------- D Decimal numbers (1,2,3,....) LU Letters uppercase (A,B,C,....,Z,AA,AB,AC....) LL Letters lowercase (a,b,c,....,z,aa,ab,ac....) LM Letters mixed (first is uppercase) (A,B,C,....,Z,Aa,Ab,...) RU Roman numerals uppercase (I,II,III,IV,....) RL Roman lowercase (i,ii,iii,iv,....) RM Roman mixed (I,Ii,Iii,Iv,....) 4 PRE-FIX Pre/Post-fix The pre- or post-fix specifies text to be printed before or after the number. The value is specified as a literal of up to 40 characters. Any flag characters included in the pre- or post-fix text are inter- preted at the time the page is printed. The autoindex flag is ignored in the pre-fix and tabs are converted to spaces. All spaces are treated as non-expandable. The pre-fix size can be extended by a substitution. When this is done, the number of levels of substitution is reduced, since the pre/post-fix is essentially another level of substitution. The pre- or post-fixes can be enclosed in either apos- trophes (') or quotes ("). See the rules applicable to literal parameters. DSR doesn't support the "pre-fix" or "post-fix" parameters. 4 APPENDIX .DISPLAY APPENDIX ["pre-fix",] [format] [,"post-fix"] .DAX ["pre-fix",] [format] [,"post-fix"] controls the format of the appendix number. The pre/post-fixes apply only to the first page of the appendix, but the format sets the style of the appendix number, page number, index, and header levels. The page number and index are only changed if chapter numbering is used. DEFAULT: .DISPLAY APPENDIX "APPENDIX " , LU , "" 4 CHAPTER .DISPLAY CHAPTER ["pre-fix",] [format] [,"post-fix"] .DCH ["pre-fix",] [format] [,"post-fix"] controls the printed format of the chapter numbers when the .CHAPTER command is used. The command determines what is printed before and after the chapter number on the title page of each chapter. DEFAULT: .DISPLAY CHAPTER "CHAPTER " , D , "" For example, if you want sections to be numbered with Roman numerals rather than chapters, include the following in your .RNO file: .DISPLAY 'Section (' , RU , ')' When you issue the .CHAPTER command for the 6'th time, you will get the following chapter header: Section (VI) 4 ELEMENTS .DISPLAY ELEMENTS ["pre-fix",] [format] [,"post-fix"] .DLE ["prefix",] [format] [,"post-fix"] sets the format of the current LIST element. "l" and "r" are the left and right characters to put around the list number. See .LIST, .LIST ELEMENT, .END LIST for explanations of the list elements. Once you have specified the display characteristics for a given list, the same characteristics will remain specified when additional .LIST or .END LIST commands are encountered. The op- tional characters can be delimited by either quotes ["] or a pair of apostrophes [']. DEFAULT: .DISPLAY ELEMENTS "" , D , "." If you wish to set up lists at the beginning of the document to normal outline form, issue the following commands: .LIST 0 .LIST 0 .DISPLAY ELEMENTS LU .LIST 0 .DISPLAY ELEMENTS LL .END LIST 0 .END LIST 0 .END LIST 0 This will display lists in the form (decimal number, capital letter, lowercase letter). 4 LEVELS .DISPLAY LEVELS [fm1,][fm2,][fm3,][fm4,][fm5,][fm6,] .DISPLAY LEVELS [level,]["pre-fix",] [form,] ["post-fix"] .DHL [fm1,][fm2,][fm3,][fm4,][fm5,][fm6,] specifies the format for display of the header level numbers. fm1 to fm6 are format codes for LEVELS 1 to 6. Each format code can be preceded by a pre-fix and followed by a post-fix. The pre-fix and post-fix are 40 char literals that will appear before and after the numbers. If the number is not printed, the post-fix is omitted. When the pre- and post-fix are defined, the .HEADER LEVEL command will automatically turn off underlining and all printer special features before the pre-fix and after the label. The levels can be specified by number or sequentially. For exam- ple, the following command will set number underlining with upper- case letters for level 2 and title underlining with roman numerals for level 3: .DISPLAY LEVELS 2,"^&",LU,"\&",RU,"^&" (DSR doesn't support Level numbers, pre-fix or post-fix) DEFAULT: .DISPLAY LEVELS D,D,D,D,D,D 4 NUMBER .DISPLAY NUMBER ["pre-fix",] [format] [,"post-fix"] .DNM ["pre-fix",] [format] [,"post-fix"] controls the format of the page numbers printed at the top of the page and in the index and table of contents. The pre- and post-fixes specify text to be printed before and after the page number. The pre-fix and post-fix are only printed on the indivi- dual pages, and do not appear in the index or table of contents page numbers. The format applies to the page number, which can be either a regular decimal number, Roman numeral, or a letter. See the table of formats. If the format is not specified, then it remains unchanged. If you wish to specify the post-fix only, you must either specify the pre-fix, the format, or include commas to mark their absence. DEFAULT: .DISPLAY NUMBER "Page " , D , "" 5 EXAMPLE If you want pages to be numbered in lower case roman numerals, you would use the following command: .DISPLAY NUMBER RL If you wish to print a 4 page memorandum, and on each page you want the page number and the total number of pages as n/4 underlined, you would issue the following command: .DISPLAY NUMBER "^&" "/4\&" The first page is numbered 1/1, the second 1/2, and so on. --- --- The RUNOFF manual was produced with the following format: .DISPLAY NUMBER "- " " -". 4 SUBPAGE .DISPLAY SUBPAGE [format] .DSP [format] controls the format of the subpage number. DEFAULT: .DISPLAY SUBPAGE "" LU "" 4 SUBTITLE .DISPLAY SUBTITLE ["pre-fix"] [,"post-fix"] sets pre- and post-fixes that are to appear with the subtitle at the top of the page. The .DISPLAY SUBTITLE command must appear before the .SUBTITLE command or .HEADER LEVEL command that it modifies. The .HEADER LEVEL command produces automatic subtitles if .AUTOSUBTITLE is on. DEFAULT: .DISPLAY SUBTITLE "" "" 4 TITLE .DISPLAY TITLE ["pre-fix"] [,"post-fix"] sets pre- and post-fixes that are to appear with the title at the top of the page. The .DISPLAY TITLE command must appear before the .TITLE command or .CHAPTER command that it modifies. The .CHAPTER command produces automatic titles if .AUTOTITLE is on. DEFAULT: .DISPLAY TITLE "" "" 4 TOC_PAGE .DISPLAY TOC PAGE ["pre-fix"] [,"post-fix"] This command sets pre- and post-fixes that are to appear with the page number in the .RNT file. This modifies the format of the page numbers as they appear along the right margin of the table of contents. The format of the page number is also controlled by .DISPLAY NUMBER, .DISPLAY SUBPAGE, .DISPLAY CHAPTER, and .DISPLAY APPENDIX. The page numbers at the top and bottom of the table of contents are not modified by this command. 3 DISABLE See ENABLE 3 ENABLE 4 INTRODUCTION These commands enable or disable various actions. Some of the enable commands can be confused with the FLAGS commands, but they are very different. A FLAGS command turns on recognition of special characters or combinations of characters, but does not affect whether the flag causes the desired action. If recognition of a flag is turned on, then the enable/disable commands can be used to cause the action of the flag to actually occur or not. For example, if you turn on recognition of the overstrike flag with .FLAGS OVERSTRIKE, then the flag is also enabled. The flag character, normally a percent sign " % ", will then cause overstriking and will not appear in the text. If .DISABLE OVERSTRIKING command is then issued, the percent sign will still not appear in the text, unless quoted, but no overstriking will occur. See the FLAGS section for further information on the use of flags. 4 BAR .ENABLE BAR [n1] [,n2] [,"c"] .EBB [n1] [,n2] [,"c"] .DISABLE BAR .DBB controls the printing of change bars. A change bar is a vertical bar printed in the left margin of a document. It is generally used to denote sections of the document that have been changed since the last printing. Change bars will not actually be printed unless a .BEGIN BAR command is issued. The .ENABLE BARS command is normally issued at the beginning of a document. When change bars are enabled, change bars are printed n1 spaces to the right of the left margin and normal text is printed n1+n2 spaces to the right of the left margin. For example, if n1 is 4 and n2 is 3, text will be indented by 7 and change bars will appear to the left of the text with two spaces in between. The default values for n1 and n2 are 0 and 3. The character printed in the change bar posi- tion can be changed by specifying the literal "c". If a null literal "" is used, the character reverts to the default. (n1,n2, and "c" are not supported in DSR) DEFAULT: .DISABLE BAR 4 COMMAND .ENABLE COMMAND REPLACEMENT .DISABLE COMMAND REPLACEMENT controls the ability to replace permanently defined commands with user defined commands. If a user command is the same as a per- manent command, the permanent command will be performed unless prefaced by an underscore "_". For example, if you define the following command: .DEFINE COMMAND /p/.s 1 .tt 5 .i 5 the command would not normally be performed unless you either .ENABLE COMMAND REPLACEMENT ...or ._P When command replacement is enabled, you can still select per- manent commands by beginning them with a dollar sign "$". In the example above, .$P invokes the permanent command and ._P invokes the user defined command. When command replacement is enabled, RUNOFF may be slower if you have defined many commands or substitutions. (Not supported in DSR) Default: .DISABLE COMMAND REPLACEMENT 4 CONTINUE .ENABLE CONTINUE .ECO .DISABLE CONTINUE .DES controls the action at the end of a line when a break or hyphena- tion flag occurs. When CONTINUE is enabled, the line will not au- tomatically break at the end of the input line when in NO FILL mode. In FILL mode, no space will occur between the word at the end of the line and the word at the beginning of the next input line. When CONTINUE is enabled, the break and hyphenate characters still have their usual meaning, and hyphenation or breaks may occur at the end of the input line if there is not suf- ficient space for the next word in the output line. If the break or hyphenation flag is followed by a space, then it is not at the end of the line. (Not supported in DSR) DEFAULT: .DISABLE CONTINUE 4 ESCAPE .ENABLE ESCAPE .EES .DISABLE ESCAPE .DES controls the output of escape sequences. When ESCAPE is diabled, the escape sequence flags will be recognized but not executed. DEFAULT: .ENABLE ESCAPE (Not supported in DSR) 4 EQUATION .ENABLE EQUATION n .EEQ n .DISABLE EQUATION .DEQ controls the action of the equation formatting flag. The parame- ter n is the number of half lines to allocate above and below each character. If you are formatting equations with many subscripts or superscripts, n=1 may look better because more blank space is added to the fractions. When the equation is disabled but has had recognition turned on by the .FLAGS EQUATION command, left and right braces { } are translated to be normal parentheses ( ). (Not supported in DSR) DEFAULT: .ENABLE EQUATION 4 FLAGS .ENABLE FLAGS [flag] .DISABLE FLAGS [flag] controls whether or not flags are enabled. The possible flags are: ACCEPT ALL BREAK CAPITALIZE ESCAPE EQUATION HYPHENATE INDEX LOWERCASE OVERSTRIKE SPACE SPECIAL SUBINDEX SUBSTITUTE TAB UNDERLINE UPPERCASE By default all flags are initially enabled. If no flag is speci- fied or ALL is specified, all flags except the TAB flag are enabled or disabled. Flags disabled by .NO FLAGS ALL can be enabled by a .FLAGS ENABLE flag command. Flags that have not been defined by a .FLAGS command cannot be enabled. The enable status of flags can be saved with the .SAVE command. Disabling a flag does not redefine or remove the flag character. For example, if you wish to use the ampersand (&) for some other purpose than as the underline flag, you could undefine it with a .NO FLAGS UNDERLINE. You could also .DISABLE FLAGS UNDERLINE to use the am- persand as a printable character. (Not supported in DSR) 4 HYPHENATION .ENABLE HYPHENATION .EHY .DISABLE HYPHENATION .DHY Controls hyphenation. When hyphenation is enabled, RUNOFF will hyphenate words at the end of an output line. Hyphenation defined by the user with the hyphenate flag can also be used. Automatic hyphenation is enabled with the .AUTOHYPHENATE command. RUNOFF will not hyphenate: 1. The last line on the page 2. A line following 2 hyphenated lines 3. Equations The following will inhibit autohyphenation: 1. Escape sequences inside a word 2. Overstrikes 3. Non expandable spaces "#" 4. Tabs in front of a word 5. Invalid punctuation Valid punctuation marks are: / \ . , ( ) " @ For example, words containing hyphens are not hyphenated; these words can be broken by using a break character or by issuing the command .AUTOBREAK "-" The valid punctuation marks can be changed by the .AUTOHYPHENATION command. The hyphenation algorithm is not ideal; there are certain problems that you must overcome manually. The hyphenation routine receives no warning when a paragraph is ending. Consequently, it may hyphenate the last word in a paragraph. This can be avoided by using the .FLAGS HYPHENATE command and marking the last word in a paragraph for no hyphenation. Also, periods could be declared as invalid punctuation. If a footnote overflows to the next page, the hyphenation routine may hyphenate the last word on a page. This can be avoided by use of the hyphenation flag, or by forcing the page breaks with the .PAGE command. Try to avoid footnotes that overflow to the next page. DEFAULT: .ENABLE HYPHENATION 4 INDEXING .ENABLE INDEXING .EIX .DISABLE INDEXING .DIX controls the collection and printing of index entries. DEFAULT: .ENABLE INDEXING 4 LEVELS .ENABLE LEVELS [+-n1],[+-n2] enables output of header levels up to n1, and TOC output up to n2. In other words, the .DOC file will have header levels 1 to n1 and the .RNT file will have levels up to n2. If n2 is greater than n1, the .RNT file will only contain levels up to n1. If n is not specified, the default value is assumed. There is no .DISABLE LEVELS command (Not supported in DSR) DEFAULT: .ENABLE LEVELS 6,6 4 NUMBERING .ENABLE NUMBERING .ENMPG .DISABLE NUMBERING .DNMPG controls whether page numbers are printed. Numbering does not start if it has been turned off by a .NO NUMBER command. When page numbering is disabled, page numbers will not be printed, but pages will still be counted. The .NUMBER command will not turn on the printing of page numbers when page numbering is disabled. DEFAULT: .ENABLE NUMBERING 5 CHAPTER .ENABLE NUMBERING CHAPTER .ENMCH .DISABLE NUMBERING CHAPTER .DNMCH controls the form of page numbering. When enabled, pages are numbered in the chapter form N-M, where N is the chapter number and M is the page number. Once chapter numbering has been dis- abled, it will not be reenabled by any command except .ENABLE NUMBERING CHAPTER. (Not supported in DSR) DEFAULT: .ENABLE NUMBERING CHAPTER 4 ODD .ENABLE ODD .EODD .DISABLE ODD .DODD controls whether or not the first page of each chapter is forced to be an odd number. If enabled, and a page must be skipped, an intermediate numbered page with with no text will be produced to force the chapter onto the proper page. (Not supported in DSR) DEFAULT: .DISABLE ODD 4 OVERSTRIKING .ENABLE OVERSTRIKING .EOV .DISABLE OVERSTRIKING .DOV enables or disables the overstriking flag. If recognition of the overstrike flag has been turned on by the .FLAGS OVERSTRIKE com- mand, but overstriking is disabled, RUNOFF will not do any over- striking, and the overstrike flag character will not appear in the output. Previous versions of RUNOFF attempted to omit overstruck characters, but this is, unfortunately, not possible in all cir- cumstances, so this feature had to be omitted. DEFAULT: .ENABLE OVERSTRIKING 4 PAGING .ENABLE PAGING .EPAG .DISABLE PAGING .DPAG enables or disables pagination. When PAGING is disabled, the .PAGE SIZE command will not turn paging on, and the .PAGE command will not produce a page. See .PAGING. DEFAULT: .ENABLE PAGING (Not available in DSR) 4 SUBSTITUTION .ENABLE SUBSTITUTION .ESST .DISABLE SUBSTITUTION .DSST enables or disables the substitute flag. When recognition of the substitute flag is turned on, but the flag is disabled, the sub- stitution will be recognized, but no substitution will be made. DEFAULT: .ENABLE SUBSTITUTION (Not available in DSR) 4 TABS .ENABLE TABS .ETB .DISABLE TABS .DTB controls how the tab key is interpreted for producing tabulated or columnar output. Tabs are normally enabled, so you do not need to enable them unless they have been previously disabled. When tabs are disabled, they are treated as ordinary spaces. (Not supported in DSR) DEFAULT: .ENABLE TABS 4 TOC .ENABLE TOC .ETC .DISABLE TOC .DTC controls whether or not output is sent to the table of contents file. When disabled, neither CHAPTER, .HEADER LEVEL, .APPENDIX, nor .SEND TOC commands will output anything to the .RNT file. This command can be used to control which items are placed in the TOC. DEFAULT: .ENABLE TOC 4 TRAILING_ZERO .ENABLE TRAILING ZERO .DISABLE TRAILING ZERO controls whether or not header levels are printed with trailing zeroes. For a non-chapter-oriented document, the command .HL 1 will print a header level number in the form 1.0 If trailing zeroes are disabled, the number appear as 1 (Not available in DSR) DEFAULT: .ENABLE TRAILING ZERO 4 UNCONDITIONAL .ENABLE UNCONDITIONAL .EUNC .DISABLE UNCONDITIONAL .DUNC controls the printing of unconditional text. When enabled, all text that is not preceded by an .IF command will appear in the output. When disabled, all input that follows is ignored except for .ENABLE UNCONDITIONAL and .IF commands. These commands cannot be used inside a note, footnote or text section, and must be the first command on a line. When an .IF command is encountered, RUN- OFF will continue processing text as if UNCONDITIONAL were enabled until the matching .ENDIF command is reached. These commands can be used to generate multiple table of contents for sections, figures, tables, and so forth. By disabling normal text, you can have RUNOFF pick out only desired sections and ig- nore the rest. (NOT available in DSR) DEFAULT: .ENABLE UNCONDITIONAL 4 UNDERLINING .ENABLE UNDERLINING .EUL .DISABLE UNDERLINING .DUL enables or disables the underline flag. NOTE The DSR Pocket Reference uses .EUN instead of .EUL, but the DST manual uses .EUL, so this has been adopted as the standard abbreviation. .EUN and .DUN will also work, but these might not be supported in the future. .DEFAULT: .ENABLE UNDERLINING 3 END This command ends a feature. To find out more see one of the features listed below: BAR CENTER FOOTNOTE IF LIST LITERAL NOTE RIGHT SEPARATED EQUATION SUBPAGE TEXT 3 FLAGS A flag is a character that performs some special action. For example, the ampersand (&) flag causes the next character to be underlined. The predefined flags and their default characters are ACCEPT (_), BREAK (|), CAPITALIZE (<), CONTROL (.), EQUATION ({, }), LOWERCASE (\), HYPENATE (=), INDEX/SUBINDEX (>), OVERSTRIKE (%), PERIOD (+), SPACE(#), SUBSTITUTE ($), UNDERLINE (&), and UPPERCASE (^). In addition, flags can be defined by the user for escape sequences that cause special actions on the printer. The character associated with any flag can be changed to a different character. Normally, flags should be defined once at the beginning of a document, and not redefined later in the document. The .FLAGS commands are illegal inside a note or footnote. Two classes of RUNOFF commands affect flags: the .FLAGS flag-name and .NO FLAGS flag-name commands turn on and off the recognition of a flag character, and the .ENABLE/.DISABLE flag-action commands enable or dis- able the action of a flag. Recognition of flag characters means that the flag character will not be used for text, and it will not appear in the output. A recognized flag may or may not perform its flag task, depending or whether or not it has been enabled. Enabling the action of a flag means that it will perform its task if it is recognized. You can disable and reenable the operation of some flags without affecting their recognition. You can change a flag from the default character to another character. You might want to do this if, for example, you are frequently using a default flag character as regular text. First turn off recognition of the current flag character with a .NO FLAGS flag-name command. Then specify a new flag character with the appropriate .FLAGS flag-name command. All flags can be turned on or off with the .ENABLE FLAGS and .DISABLE FLAGS commands. 4 EXAMPLE Example: the following command will redefine the double quotes as the underline flag. .FLAGS UNDERLINE " After issuing this command, any character preceded by quotes (") will be underlined. The ampersand (&), which is the default underline character, will now be merely a simple printable character. When the .NO FLAGS command disables the selected flag character, it becomes a normal printable character. If you issue a .FLAGS command with a character that is already in use as a flag, RUNOFF will reject the com- mand and produce an error message. To turn off underlining but still recognize the flag, use the .DISABLE UNDERLINING command. 4 ACCEPT .FLAGS ACCEPT [new flag] .FL ACCEPT [new flag] .NO FLAGS ACCEPT .NFL ACCEPT turns on or off recognition of the accept flag. The accept flag causes the flag character that follows it to be printed as a normal character rather than be interpreted as a flag. The default character for the accept flag is the underscore (_). Initially recognition of the accept flag is turned on and the flag is disabled. A tab following the underscore flag is treated as a normal tab character. DSR uses this flag in a slightly incompatible way: if it is followed by a non printable character the character is included in the output and is counted as a single character. This convention was rejected for Bonner Lab Runoff as it makes dealing with con- trol codes very difficult. To output control codes use the .DEFINE ESCAPE command. 4 ALL .FLAGS [ALL] .FL [ALL] .NO FLAGS [ALL] .NFL [ALL] turns on or off recognition of all flags that have been previously defined. This is analogous to a master switch that turns on or off all other switches. .FLAGS ALL only performs a useful func- tion if it is preceded by a .NO FLAGS ALL. .NO FLAGS ALL disables recognition of all flags except the CONTROL flag and the TAB flag. 4 BREAK .FLAGS BREAK [new flag] .FL BREAK [new flag] .NO FLAGS BREAK .NFL BREAK turns on or off recognition of the break flag. The break flag marks where RUNOFF may break word or expression at the end of a line. The default character for the break flag is the vertical bar (|). Initially recognition of the break flag flag is off. A word will only be broken at the flag if the rest of the word would otherwise exceed the right margin. If more thatn one break flag is present in a word that requires a break, RUNOFF leaves as much of the word as possible on the line. If an .ENABLE CONTINUE com- mand has been issued, and the break flag occurs at the end of an input line, text will continue immediately with the next line with no space being inserted. 4 CAPITALIZE .FLAGS CAPITALIZE [new flag] .FL CAPITALIZE [new flag] .NO FLAGS CAPITALIZE .NFL CAPITALIZE turns on or off recognition of the capitalize flag. The capital- ize flag causes the entire word directly following it to be capitalized. The default character for the capitalize flag is the less-than (<). Initially recognition of the capitalize flag is off. (^<) can be used to perform a shift lock to upper case. All characters will then be printed in upper case until a shift release (^^) is encountered. 4 CONTROL .FLAGS CONTROL [new flag] .FL CONTROL [new flag] .NO FLAGS CONTROL .NFL CONTROL turns on or off recognition of the control flag. The control flag is the character that appears at the beginning of a line (at the left margin) to indicate that the line is a command instead of text. When the character is to be accepted as a text character, you do not need to precede it by an accept flag (_) as long as the position is not at the left margin. If you need the accept flag to appear at the left margin, precede it by an accept flag. The default character for the control flag is the period(.). Warning: once a .NO FLAGS CONTROL has been issued, you can no longer give any more commands, including .FLAGS CONTROL. So this is a non-reversable command. 4 ESCAPE .FLAGS ESCAPE [escape flag] .FL ESCAPE [escape flag] .NO FLAGS ESCAPE .NFL ESCAPE turns on or off recognition of the escape sequence flags. Escape sequence flags are sets of special control characters (escape se- quences) that cause a printer to perform a variety of control functions such as printing characters in bold or changing the font to be used for printing. Initially recognition of the escape se- quence flags is turned off and they are disabled. Two escape se- quence flags are initially defined: the circumflex (^) and the back slash (\). You can also specify an additional escape character of your choice. See the .DEFINE ESCAPE command for a complete description of how to use escape sequences. (Not available in DSR) 4 EQUATION .FLAGS EQUATION .FL EQUATION .NO FLAGS EQUATION .NFL EQUATION turns on or off recognition of the equation formatting flags. The default characters used for the formatting flags are the left and right brace ({}), and recognition of the flags is turned off. See the section on Equation Formatting for a complete description of the use of these flags. (Not available in DSR) 4 LOWERCASE .FLAGS LOWERCASE [new flag] .FL LOWERCASE [new flag] .NO FLAGS LOWERCASE .NFL LOWERCASE turns on or off recognition of the lowercase flag. The lowercase flag temporarily sets the case mode to lower case. It is also used to turn off features such as underlining. The default character used for the lowercase flag is the backslash (\). Initially recognition of the lowercase flag is turned on and the flag is enabled. 4 HYPHENATE .FLAGS HYPHENATE [new flag] .FL HYPHENATE [new flag] .NO FLAGS HYPHENATE .NFL HYPHENATE turns on or off recognition of the hyphenation flag. If the hypenation flag appears inside a word, it specifies the point at which the word may be hyphenated. If it precedes the word, it in- dicates that the word cannot be hyphenated. More than one hy- phenation point can be specified in a word. When explicit hy- phenation is specified, no automatic hyphenation will occur for the word. If the .ENABLE CONTINUE command is issued, then the current input line is continued when the hyphen flag appears at the end of the line. The default character for the hyphenation flag is the equal (=) sign. Initially recognition of the hyphena- tion flag is turned off. 4 INDEX .FLAGS INDEX [new flag] .FL INDEX [new flag] .NO FLAGS INDEX .NFL INDEX turns on or off recognition of the index flag. When the index flag precedes a word, that word is automatically included in the index and not printed as part of the normal text. The default character for the index flag is the right arrow (>). The word to be indexed should be terminated by either a space, tab, non ex- pandable space (#), hyphenate flag (=), index flag (>), or end of line. If more than 1 word needs to be part of the index term, the words should be separated by a quoted space (_ ). Initially recognition of the index flag is turned off. See the section on INDEXING for a complete discussion of how to create an index for your document. 4 OVERSTRIKE .FLAGS OVERSTRIKE [new flag] .FL OVERSTRIKE [new flag] .NO FLAGS OVERSTRIKE .NFL OVERSTRIKE turns on or off recognition of the overstrike flag. This flag generates a backspace so that the previous character can be over- stiken with the next character, allowing formation of composite characters for approximate scientific symbols or for adding diacritical marks for foreign languages. For example, a O over- striken with a - produces a theta (O-). The default overstrike character is the percent sign (%). Initially recognition of the overstrike character is turned off. 4 PERIOD .FLAGS PERIOD [new flag] .FL PERIOD [new flag] .NO FLAGS PERIOD .NFL PERIOD turns on or off recognition of the period flag. If in fill mode, the period flag inserts extra expandable space after a period, colon, question mark, or exclamation point followed by an end-of-line space. For example, when this flag is on: A+ B will appear as: A B By default 2 spaces are inserted, but this can be changed with the .PERIOD command. The default period flag is the period (.). Initially recognition of the period flag is on and the flag enabled. 4 SPACE .FLAGS SPACE [new flag] .FL SPACE [new flag] .NO FLAGS SPACE .NFL SPACE turns on or off recognition of the space flag. The space flag produces one unexpandable space (not affected by justification) in the output file for every occurance in the input file. If the space flag is inserted between two words, they are treated as one word by RUNOFF (although they will appear as separate words in the output file). The default character for the space flag is the number sign (#). Initially recognition of the space flag is turned on and it is enabled. 4 SPECIAL .FLAGS SPECIAL [flag1][flag2][flag3] . . . .FL SPECIAL [flag1][flag2][flag3] . . . .NO FLAGS SPECIAL [flag1][flag2][flag3] . . . .NFL SPECIAL [flag1][flag2][flag3] . . . turns on or off recognition of special characters that will trigger the generation of escape sequences in the output file. The first character of the escape sequence defined by the .DEFINE ESCAPE command must be the circumflex (^). For example, if you want the left square bracket ([) to be an escape sequence flag that causes an escape character followed by a D to be output, you would enter the following commands: .FLAGS SPECIAL [ .DEFINE ESCAPE /^[/ 33,"D" Once you have done this, the left square bracket is no longer printable unless preceded by the accept flag (_). Note that more than one flag character can be specied with a single .FLAGS SPE- CIAL command. This command also turns on or off processing of all other special flags previously defined. (Not available in DSR) 4 SUBINDEX .FLAGS SUBINDEX [new flag] .FL SUBINDEX [new flag] .NO FLAGS SUBINDEX .NFL SUBINDEX turns on or off recognition of the subindex flag. Subindex en- tries marked with this flag are collected and alphabetized below the primary entry to which they refer. The subindex flag is only recognized inside an .INDEX command. Since the subindex flag is not recognized as normal text, it can be the same character as the index flag. The default character for the subindex flag is the right arrow (>). See the section on INDEXING for information on the use of the subindex flag. 4 SUBSTITUTE .FLAGS SUBSTITUTE [new flag] .FL SUBSTITUTE [new flag] .NO FLAGS SUBSTITUTE .NFL SUBSTITUTE turns on or off the substitution flag. When this flag is turned on, it causes either a date or a time to be substituted in the output file. This is the only flag that must be paired with itself. The default character for the substitution flag is the dollar sign ($), so ($$) must be used to trigger a substitution. Eight permanent substitutions are defined by RUNOFF. Suppose the current date and time is January 17,1983 15:23:51 then the permanent substitutions are Symbol Resulting output $$DATE 17 Jan 83 $$TIME 15:23:51 $$YEAR 1983 $$MONTH January $$DAY 17 $$HOURS 15 $$MINUTES 23 $$SECONDS 51 The pair of dollar signs ($$) that denote the permanent substitutions are both redefined if the substitute flag is redefined. For example, if you redefine the substitute flag to be ", then to print the date you must type: ""DATE. The permanent substitutions can be typed in either lowercase or uppercase letters. The following are equally valid: $$DATE $$date $$DaTe. 4 TAB .FLAGS TAB [new flag] .FL TAB [new flag] .NO FLAGS TAB .NFL TAB turns on or off recognition of the tab flag. The default character for the tab flag is a tab. When some other character is defined as the tab flag, then a tab in the input text will produce a space. This command is useful in making RNO compatible with other word formatters. Most editors do not display tab characters, so this command could also be used to make tabs vis- able by reassigning them to an unused printable character. And using a visible character for a tab can make it easier to form output into columns. Initially recognition of the tab flag is turned on and it is enabled. (This is not available in DSR) 4 UNDERLINE .FLAGS UNDERLINE [new flag] .FL UNDERLINE [new flag] .NO FLAGS UNDERLINE .NFL UNDERLINE turns on or off recognition of the underline flag. The underline flag causes the next character to be underlined. The default character for the underline flag is the ampersand (&). If the un- derline flag is paired with the uppercase flag(^&), it locks un- derlining on until an occurance of the underline flag paired with the lowercase flag(\&). Initially recognition of the underline flag is on, and it is enabled. 4 UPPERCASE .FLAGS UPPERCASE [new flag] .FL UPPERCASE [new flag] .NO FLAGS UPPERCASE .NFL UPPERCASE turns on or off recognition of the uppercase flag. A single oc- curance of the uppercase flag serves the same purpose as a typwriter SHIFT key by capitalizing the single letter that follows it. It has no effect if the character following is not a letter. The default character for the uppercase flag is the circumflex (^). When the uppercase flag is paired with a capitalize flag (^<), the action is the same as performing a SHIFT-LOCK on a typwriter: the text that follows will appear in uppercase until the SHIFT-LOCK is removed with a (\<). When the uppercase flag is paired with the underline flag (^&), underlining is locked on un- til the occurance of (\&). Two uppercase flags in a row (^^) turns off the lower case lock. If the circumflex is used exten- sively in the text, you may want to specify an alternate character for the uppercase flag. Initially recognition of the uppercase flag is turned on and the flag is enabled. 3 LIST .LIST [n] ["char"] .LS [n] ["char"] specifies the beginning of a list of items. The left margin is moved 9 spaces to the right for the first .LIST command, and 4 addi- tional spaces for each subsequent nested LIST. n specifies the number of blank lines to appear before each item. The .LIST ELEMENT command is used to specify each item in the list, and the .END LIST command is used to end the list. 4 MARGINS If the .SPACING setting is greater than 1, the actual number of blank lines is n times the spacing. If n is omitted, the current paragraph spacing is used. If the optional character "char" is specified, then the character is output rather than a number. Thus, a "bullet" can be produced by specifying "o" as the optional character. If you wish to indent by a different amount than the default, the margins can be changed by using .LEFT MARGIN or .RIGHT MARGIN after .LIST. See also .NUMBER LIST and .DISPLAY ELEMENTS. DEFAULT: .LIST paragraph-spacing 4 ELEMENT .LIST ELEMENT [;]text .LE [;]text specifies the start of each item in the list. If the text of the item appears on the same line as the command, the text must be separated from the command with any number of intervening spaces or tabs, or (optionally) one semicolon. Each list element entry produces a number followed by a decimal point "." and two spaces followed by the text. If you prefer letters, roman numerals or some character other than the decimal point, see the .DISPLAY ELE- MENTS command. The text lines up with the left margin, and the item numbers are placed 4 spaces to the left of the left margin. If there are not 4 spaces between the current margin and the per- manent margin, then the number will be lined up with the permanent margin. A .TEST TEXT t,b is performed for each list element using the value set in the last .PARAGRAPH or .SET PARAGRAPH command. Both widow and orphan lines are prevented by the paragraph test values. The .LIST ELEMENT command can be issued without a preceding .LIST command, in which case the element might be considered to be the 0'th or base list. (the [;] is required in DSR) 4 END .END LIST n .ELS n terminates a list and restores the margins to their previous set- tings before the last .LIST command. The optional value n causes a .SKIP n after the last item in the list. DEFAULT: END LIST paragraph-spacing 4 NESTING NESTING Lists can be nested up to 10 deep. That is, up to 10 .LIST commands can be used without any intervening .END LIST commands. This number can be modified by the system manager when RUNOFF is built. 4 EXAMPLE EXAMPLE Suppose you wish to make a list of the colors of the rainbow. You could do this by issuing the following commands. .list 0 .le RED .le ORANGE .le YELLOW .le GREEN .le BLUE .le VIOLET .end list The result would be the following: 1. RED 2. ORANGE 3. YELLOW 4. GREEN 5. BLUE 6. VIOLET It is possible to precede the list with letters as A,B,C ... and so on, or by Roman numerals. To do this, see the .DISPLAY LIST command. 3 IF .IF aaa [bbb] ... causes the following text down to the next .END aaa or .ELSE aaa to be processed only if one or more of the labels aaa, bbb, ... have been defined by a .VARIANT command. Otherwise the text is ignored. Each label can be up to 40 numbers or letters in length in either upper or lower case. The label case is ignored, so ABC or abc are equivalent labels. The only special symbols allowed in labels are the underscore "_" and the asterisk "*". Other special symbols or blanks are not allowed. If the labels have not been defined, text processing is suppressed until the next .ENDIF or .ELSE is encountered. (DSR supports only single labels) 4 NOT .IF NOT aaa [bbb] ... causes the following text down to the next .END aaa or .ELSE aaa to be ignored if one or more of the labels aaa, bbb, ... have been defined by a .VARIANT command. Otherwise the text is processed. .ELSE aaa changes true conditionals to false and false to true. After an .IF, the action is the same as if an .IF NOT were issued with the same label. After an .IF NOT the action is the same as if an .IF were issued with the same label. Only a single .ELSE should fol- low an .IF or .IF NOT. The label aaa must either be the same as the label for the previous .IF or .IF NOT, or it must be "*". 4 END .ENDIF aaa terminates the range of an .IF or .IF NOT statement. The label aaa must either be the same as the label for the previous .IF or .IF NOT, or it must be *. The .ENDIF command must not be used in- side a defined command, or RUNOFF will not recognize it. If con- ditional text containing .REQUIRE commands is not processed, any .ENDIF inside one of the required files will not be seen. NOTE If a literal command is used inside an IF and the text is not processed, an .ENDIF will still be recognized after the .LITERAL because the literal command is not recognized, so the text following it will be treated as normal text. 4 VARIANT .VARIANT aaa [bbb] ... .NO VARIANT aaa [bbb] ... defines a label aaa that is used to control the action of sub- sequent .IF commands. If the label is present in the VARIANT statement, then .IF aaa will cause text to be printed and .IF NOT aaa will suppress text. .NO VARIANT undefines the label aaa. The .VARIANT command only affects subsequent IF/IFNOT commands, and has no affect on previous IF/IFNOT commands. Multiple labels can be specified with one variant command. A label can contain a "*" as the last character to indicate that the rest of the label is wild. If a label is wild, only the characters up to the "*" are matched; the rest of the label is ignored. For example, "A*" will define all labels beginning with A as variants. 4 IMMEDIATE .IMMEDIATE IF label .IIF label .IMMEDIATE IFNOT label .IIFNOT label are similar to .IF and .IFNOT except that they apply only to the rest of the current line and they are not followed by .ELSE or .ENDIF. This command can be used inside a defined command, and need not be the first command on a line. 4 WARNING Warning If IF/ELSE/ENDIF commands are not the first command on a line, or if they are inside a defined command, they will be ignored and an error message will result. 4 AEXAMPLE Example: .VARIANT NOTES1 .IF NOTES1 This line is printed .ELSE NOTES1 This line is not printed .ENDIF NOTES1 .IF NOT NOTES1 This line is not printed .ENDIF NOTES1 .IF undefined This line is not printed .ENDIF undefined .IFNOT undefined This line is printed .ELSE undefined This line is not printed .ENDIF undefined 4 BEXAMPLE Example: Consider the following problem: You have used a .REQUIRE at the top of several .RNO files to define some commonly used substitutions and escapes. You now make up a main .RNO file that requires several of these .RNO files. Unfortunately, the main file will cause the prefix file to be required several times, and each time it is required, a string of error messages will be generated: RNO -- Substitution already defined The way to avoid this problem is to execute the prefix file only once. This can be guaranteed by putting the statement .IFNOT prefix at the top of the prefix file, and the statements .VARIANT prefix .ENDIF prefix at the bottom of the prefix file. 4 CEXAMPLE Example: Here is an example of the .NO VARIANT command: .VARIANT abc .IF abc This line will appear .ENDIF abc .NO VARIANT abc .IF abc This line will not appear .ELSE abc This line will appear .ENDIF abc 4 DEXAMPLE Example: Here is an example of multiple labels: .Variant abc .IF abc def This line appears .ENDIF * .IF abc This line appears .ENDIF * .IF def This line will not appear .ENDIF * 4 EEXAMPLE IMMEDIATE example: The following illustrates the use of the IMMEDIATE IF command: .VARIANT A .IIF A;This line appears. .IIFNOT A;This line will not appear. .IIF B;This line will appear. .IIFNOT B;This line will not appear. 4 NESTING Nesting IF statements can be nested one inside another. Remember, however, that once an .IF aaa or .IFNOT aaa causes text to be skipped, no further text will be processed until .ENDIF aaa. RUNOFF allows up to levels of nesting. Here is a nesting example: .VARIANT B .IF B This line is processed .IF C This line is not .ELSE C .IF B This line is processed .ELSE B This line is not .ENDIF B .ENDIF C .ELSE B This line is not .IFNOT C This line is not .ENDIF C .ENDIF B Here is an example of improper nesting: .IF B .IF C .ENDIF B .ENDIF C 4 RESTRICTIONS RESTRICTIONS Each time you use IF/IFNOT/VARIANT commands, a label is added to the internal symbol table. If you have defined too many labels, RUNOFF will run out of dynamic memory. If multiple labels are used with an IF command, only the last one is added to the symbol table, so if you always use the same last label, you can safely have a large variety of labels before the last one. 3 INDEX .INDEX [text] .X [text] adds an index entry along with the current page number to the inter- nal index buffer. The command does not cause a break. If in FILL mode, the index command must appear immediately after the item to be indexed. If in NO FILL mode, the index command must appear im- mediately after the line containing the index item. If RUNOFF breaks the line because it is too long, the index page number may be incorrect. Underlining, overstriking, and escape sequences are not recognized in index keywords because there is no rational way to al- phabetize keywords if they are used. A given keyword can be indexed more than once. If a keyword is indexed more than one time on a given page, only one entry appears for that page in the index. SEE also the commands .ENABLE INDEXING and .DISABLE INDEXING. 4 ENTRY .ENTRY index term .Y index term puts an index term into the index, but doesn't include the current page number. This command requests optimization for subindex entries. 4 DO .DO INDEX [;][text] .DX [;][text] clears the title and subtitle, uses the text as a header, and starts a new page. The entire contents of the internal index buffer is printed and the buffer is reset. The .DO INDEX command is equivalent to: .TITLE .SUBTITLE .FLUSH .PAGE .C; [text] .S 4 .PRINT INDEX If no text is specified, the word INDEX is used as the header text. 4 PRINT .PRINT INDEX ["entry"] .PX ["entry"] prints the specified entry in the internal index buffer. If no entry is specified, the entire index buffer is printed and the buffer is reset. (If an entry is specified, the internal index buffer is not reset.) The "entry" must be a previously specified index term. This term and all of its subindex terms will be printed. 4 FORMAT Entries are printed in alphabetic order and are set against the left margin. Chapter and subpage numbers are printed in the same format as specified by the .DISPLAY CHAPTER or .DISPLAY SUBPAGE commands. Regular line spacing is used, except that a new paragraph is formed between entries with different first letter. Orphan lines at the end of the page are prevented by the paragraph test page value. Paragraph indentation is used to indent extra page numbers that cannot fit on the line with the index entry. If both FILL and JUSTIFY are enabled, the entry is followed by ellipses ( . . . ) and the page numbers are printed right justified with respect to the current right margin. If FILL is disabled, the ellipses are omitted. If JUSTIFY is disabled, the page numbers will start 2 spaces after the index entry, and no justification will occur. (This use of FILL and JUSTIFY as well as the paragraph spacing is not the same as in DSR) 4 DELETE .DELETE INDEX "entry" deletes an index entry from the internal index buffer. (The buffer is not shortened, so no space is saved.) This command is useful for breaking the index into several parts. Each part can be printed separately by .PRINT INDEX and the deleted. Finally, all of the remaining parts can be printed and the internal index buffer reset. 4 RESET .RESET INDEX resets the internal index buffer so that it contains no entries. This is done automatically by .DO INDEX or an unqualified .PRINT INDEX. 4 SUBINDEX SUBINDEX Terms can be subindexed by issuing the command .FLAGS SUBINDEX. Each subindex item is marked by a subindex flag. Subindex items will appear indented by 2 spaces more than the previous item when a .PRINT INDEX command or .DO INDEX is issued. For example, the following text: .FLAGS SUBINDEX .INDEX flags>substitute .INDEX flags>index .PRINT INDEX produces: flags index 1 substitute 1 4 AUTOINDEX AUTOINDEX Index terms can be generated automatically without using the .INDEX command if the .FLAGS INDEX command has been issued. Any term preceded by an index flag (>) will be automatically indexed. For further infor- mation see: FLAGS INDEX. Autoindexing cannot be done inside a .TITLE, .SUBTITLE, .CHAPTER, .APPENDIX, or .HEADER LEVEL command. 4 OPTIMIZATION The index facility can optimize the speed of index processing by keep- ing internal quick reference tables in dynamic memory. A table is always kept for the main entries. You can control whether tables are kept for subentries by using the .ENTRY statement. For example, if you know that a large set of subindex entries will be made under the entry NAMES, then you should request subindex optimization with the following command: .ENTRY NAMES> This command must precede any .INDEX commands with the main entry NAMES. If you do not wish optimization for the subentries of NAMES, then use the command: .ENTRY NAMES The optimization applies to all levels of subindex entries. For exam- ple, .ENTRY NAMES>Authors>British .ENTRY NAMES>Authors>American .X NAMES>Authors>French will optimize all subentries under NAMES,Authors,British, and American. Subentries under French will not be optimized. The number of subindex entries must be greater than 26 for optimization to improve the execu- tion speed. 3 NO Many commands may be prefaced by NO to turn off the feature. The follow- ing features are disabled by NO. For more information see the documenta- tion on the feature. AUTOBREAK AUTOHYPHENATE AUTOPARAGRAPH AUTOSUBTITLE AUTOTABLE AUTOTITLE ELLIPSES FILL FLAGS HALF SPACING HEADERS JUSTIFY KEEP NUMBER NUMBER PAGING PERIOD SPACE TITLE UNDERLINE VARIANT 3 NUMBER These commands set numbers for various items. The number can be speci- fied either as a decimal number or a string of letters. The letter A corresponds to 1, B to 2, Z to 26, AA to 27, AB to 28, and so on. If the number is preceded by a plus sign "+", the new value is the old value plus the specified increment. If the number is omitted, it is assumed to be 1. No number should exceed 8,388,607 or RIFZW. DSR allows larger numbers, but both RNO and DSR incorrectly handle Roman numerals larger than 3999. 4 APPENDIX .NUMBER APPENDIX [+-n] specifies a number or letter to be used as the identifying letter for a subsequent APPENDIX command. See NUMBER CHAPTER. 4 CHAPTER .NUMBER CHAPTER [+-n] .NMCH [+-n] specifies a number or letter to be used in a subsequent CHAPTER command. This command is useful when a chapter of a document oc- cupies a source file of its own. In this case, .NUMBER CHAPTER should be the first command of the source file. .NUMBER CHAPTER can also be used to skip a chapter that will be inserted later. To skip chapters, specify +n. For example, if the current chapter is 10 and you specify .NUMBER CHAPTER +2, the next chapter will be 12. .NUMBER CHAPTER enables chapter numbering, so that each .CHAPTER or .APPENDIX command will reset the page number to 1 and cause the chapter or appendix number to be printed with the page number as part of the page header. (Default). 5 NO .NO NUMBER CHAPTER disables chapter numbering, so that page numbers are not reset with each chapter or appendix, and the chapter/appendix number is not printed as part of the header. If this command is used, it must be issued before the first .CHAPTER or .APPENDIX command. If you intend to control chapter numbering, but wish running page numbers, then you must reissue this command after each after each .NUMBER CHAPTER command. Chapter numbering can be permanently disabled with the .DISABLE NUMBERING CHAPTER command. 4 LEVEL .NUMBER LEVEL [+-n1],[+-n2],[+-n3],[+-n4],[+-n5],[+-n6] .NMLV [+-n1],[+-n2],[+-n3],[+-n4],[+-n5],[+-n6] specifies the beginning number of a sequence of headers. It should be issued immediately before the first .HEADER LEVEL that you wish to affect. If the next .HEADER LEVEL command specifies a level different from the one implied in the .NUMBER LEVEL command, you will get unexpected results. If n1 is omitted then the next level will be 1.0. For example the following command sequence is specified: .NUMBER HEADER 5,4,3,2 .HEADER LEVEL The result of this would be: 5.4.3.2 If the current level is 1.2.3.4 and .NUMBER LEVELS +1,+1,-1,-1 is specified, the next section header will be 2.3.2.3. 4 ITEM .NUMBER ITEM /name/ [+-n1] .NMIT /name/ [+-n1] specifies a new value for the item "name". The item must have been previously defined by the .DEFINE ITEM command. 4 LIST .NUMBER LIST [+-n] .NMLS [+-n] sets the next number in a list to n. For example, if the current list element is numbered 10 and you specify .NUMBER LIST +2, the the next element will be 12. 4 PAGE .NUMBER [PAGE] [+-n] .NMPG [+-N] .NO NUMBER .NNM controls page numbering. The .NUMBER PAGE command indicates the beginning of a new page numbering sequence by specifying the number for the next page. For example, if you wish to skip several pages for inserting diagrams, artwork, or any other items that require a full pages, you can do so by issuing the commands: .NUMBER PAGE +n .PAGE The next page number will be the current page number plus n. If you issue .NUMBER PAGE 10, then the next page will be 10. If the current page is 10 and you specify .NUMBER PAGE +2, the next page will be 12. If the current page is 10 and you specify .NUMBER PAGE -1, the next page will be 9. .NUMBER PAGE +1 is essentially redundant. The page number is normally right justified with respect to the permanent right margin. See the .PAGE SIZE command. .NO NUMBER PAGE stops page numbering. However, pages continue to be counted, so that the normal page number will appear if page numbering is resumed with the .NUMBER command. To disable page numbering and not have pages numbered, use the .DISABLE NUMBERING command. 4 SUBPAGE .NUMBER SUBPAGE [+-n] .NMSPG [+-n] indicates the beginning of a new sequence of subpage numbers by using the specified subpage number or letter on the next page. 2 TABLE_OF_CONTENTS RUNOFF can produce a table of contents (TOC) for your document that in- cludes all chapters and and section headers at level 1. The .ENABLE LEVELS command can be used to include other header levels in the TOC. The addi- tion of items to the TOC can be enabled or disabled by the .ENABLE TOC and .DISABLE TOC commands. The resulting TOC is not quite the same as that produced by DSR in that the header levels are not indented by the same amount. (This may be changed in future versions.) 3 FILESPEC A TOC file is produced if you have specified a second output filespec when envoking RUNOFF. The default extension of the TOC file is .RNT. For example, to get a TOC file and a regular runoff file, type >RNO EXAMPLE,EXAMPLE=EXAMPLE The two files EXAMPLE.DOC and EXAMPLE.RNT will be produced from the input EXAMPLE.RNO. EXAMPLE.RNT file must then be passed through RUNOFF to get the final TOC file. If the .RNT is not satisfactory, you can edit it be- fore this final step. >RNO EXAMPLE.TOC=EXAMPLE.RNT The final EXAMPLE.DOC and EXAMPLE.TOC files can be printed separately or a new composite file can be created: $ COPY EXAMPLE.TOC,EXAMPLE.DOC EXAMPLE.TXT The composite file EXAMPLE.TXT is now a complete document to be printed. The following commands control the TOC output. 3 SEND .SEND TOC [;]text .STC text sends the "text" to the .RNT file. The text can be used to control the TOC output. The text can actually be a set of commands. For example, .REQUIRE "FORMAT" might be used to insert a set of commands to control the format of the TOC. If the same command appears in the text, you insure that the TOC and documentation all have the same format. .SEND PAGE TOC [n] [;text] sends text and the current page number to the .RNT file. If n is specified, the text is preceded by .IF TOCn and followed by .ENDIF TOCn. The parameter n must be in the range 1 to 9. This command facilitates multiple indices. You can use the .DISABLE UN- CONDITIONAL command to turn off regular index entries, and pick up and print the conditional entries in a second or third pass. 3 BEGIN .TOC .END TOC are not normally used. They are automatically placed in the .RNT file by RUNOFF. .TOC enables formatting for the table of contents. It does the following: 1. New pages for each chapter are inhibited. 2. The .CHAPTER command uses the paragraph test page to check the number of lines available. 3. All tab stops are cleared. 4. .NO NUMBER CHAPTER 5. .STYLE CHAPTER 1,-1,-1,0,2 6. .STYLE HEADERS ,,,,,0,0,0 This sets "skips" and "test page for levels" to zero. 7. .INDENT LEVELS 8,8 .END TOC is the complement to .TOC. It ends the table of contents and allows normal text processing. It does the following: 1. New pages are allowed at the start of each chapter. 2. Tab stops are NOT changed. --- 3. .NUMBER CHAPTER 4. .STYLE CHAPTER 12,1,3,-1,-1 5. .STYLE HEADERS ,,,,,2,1,7 6. .INDENT LEVELS 0,0 The format of the final table of contents can be altered either by edit- ing the .RNT file or by using .STC to add extra commands. The following hints may help you in designing your own format. 1. The .RNT file needs .FILL to operate properly so do not edit a .NO FILL command into it. 2. The page numbers are right justified using tabs without ellipses enabled. If you want ellipses, use the .SEND TOC .ELLIPSES command. 3. .ENABLE LEVELS n1,n2 can be used to automatically determine which header levels are printed in the table of contents. The parameter n2 is the maximum header level to output to the .RNT file and hence the maximum to appear in the table of contents. 4. A title page can be placed in front of the table of contents by putting it into a separate file called TITLE and inserting .STC .REQUIRE "TITLE" at the front of the .RNO file. 5. You can number the table of contents in lower roman numerals with the command .STC .DISPLAY NUMBER RL. 6. The .STYLE commands can be inserted into the .RNT file to con- trol the actual format of the final table. By doing this you can vary the spacing between the entries, the spacing between items in the entries, the capitalization of the header levels and so on. 7. .INDENT LEVELS can be used to change the HEADER LEVEL indentation. 8. A foreword or preface can be inserted into the table of contents file by .STC .REQUIRE "PREFACE". The same numbering as the table of contents will be used. You may wish to .END TOC at the beginning of the PREFACE.RNO file if the preface contains sec- tion headers. 3 FIGURES FIGURES Separate tables of contents can be generated for figures and tables. To do this, use the .SEND PAGE TOC to send the figure names to the .RNT file, specifying n=1 for figures, n=2 for tables. For example, assume you are creating a document called BUILDING for which you want a separate TOC of figures. At the beginning of the BUILDING.RNO file use the commands: .SEND TOC .IF TOC0 .DUNC .SEND TOC .ENDIF TOC0 And at the end of BUILDING.RNO: .SEND TOC .EUNC To send a figure title to a separate TOC you could use a command such as .SEND PAGE TOC 1;Figure 5 - TOP VIEW OF BUILDING Then create the following .RNO file that requires 3 passes through BUILDING.RNT: .REQ "BUILDING.RNT" .VARIANT TOC0 .VARIANT TOC1 .PAGE .C;FIGURES .REQ "BUILDING.RNT" .NO VARIANT TOC1 .VARIANT TOC2 .PAGE .C;TABLES .REQ "BUILDING.RNT" Up to 9 different tables of contents can be created in this fashion. 2 EQUATIONS An equation formatting routine designed to format multiple nested fractions has been added to RUNOFF (not available in DSR). To use this facility, the equation flag must be enabled with the .FLAGS EQUATION command. Braces { } are used as flags to describe how an equation is to be formatted. If a brace must appear in the text of the equation, it must be preceded by the underscore _. Subscripts or superscripts are handled properly in format- ting fractions, but you may wish to add extra space between the fraction line and the numerator or denominator. This can be done with the command .ENABLE EQUATION 1 to add 1/2 line, or .ENABLE EQUATION 2 to add 1 whole line. Fractions are formatted in the following manner: express the fraction as {NUMERATOR}/{DENOMINATOR} and RUNOFF will output: NUMERATOR ___________ DENOMINATOR 3 NOTE Some operating systems modify text before sending it to the output file. In particular, VMS swallows some backspaces! This can cause equations not to appear properly. If you are having problems formatting equations, try having RUNOFF send the output directly to your terminal or to the printer rather than to a file. 3 FEATURES Inside an equation, the following features are disabled: 1. Underline flags 2. Fill 3. Underlining 4. Break flags - No break is caused; the line is continued. 5. Hyphenation - Hyphenation flags can be used to continue a line. 6. Autobreak 7. Tabs If an equation will not fit on a single line, it will be continued on the next line. 3 NESTING Fractions can be nested inside each other. For example {{A}/{B} + {C}/{D}}/{DENOMINATOR}. A/B and C/D are both nested to the second level. The maximum nesting is about 6 deep. If the nesting is all in numera- tors, then it is limited to a depth of 12. If it is all in denominators, it is limited to a depth of 6. Example of 4 levels of nesting in numerators: {1+{2+{3+{4}/{D}}/{C}}/{B}}/{A} Example of 6 levels of nesting in denominators: {1}/{A+ {2}/{B+{3}/{C+{4}/{D+{5}/{E+{6}/{F}}}}}} 3 SPACING Spaces or tabs can be freely used between numerators and denominators outside the braces for clarity; they will not appear in the final output. For example, {A}/{B} will format the same as {A} / {B}. In ad- dition, tabs and spaces are treated as non-expandable spaces. As a result, fractions are never expanded to right justify the text. If an equation is imbedded inside a normal line of text and FILL is enabled, only the text outside the equation is filled. The commands .CENTER and .RIGHT will center or right justify equations. In addition, centered and right justified tab stops can be used to line up equations. 3 VERTICAL_SPACING If a fraction occupies too much space to fit within the current line spacing, the .SEPARATED FRACTION command can be used to automatically generate enough space to separate fractions. If you prefer to manually adjust the spacing, then the .FIGURE command should be used. You may wish to put equation numbers along the right margin opposite the equation. This can be done by by resetting the tab stops, and setting tab right. A single tab should precede the number to be justified. The following example shows the commands necessary to do this: .TAB STOPS .TAB RIGHT {A + B}/{C + D} eq._#5 Is printed as: A + B _____ eq.#5 C + D 3 WARNING WARNING A fraction cannot be split between 2 lines. If a fraction im- bedded in text is too big to fit on the current line, it is moved down to the next line. If the fraction is still too big, then RUNOFF will try to break it. The break will probably result in the error message: RNO -- Missing right brace in equation A string of other error messages will probably follow the first one and the output text will usually look very strange. The extra error messages should be ignored. The solution to this problem is to break the fraction up into 2 separate fractions. 3 COMMANDS The commands used to control equation formatting are: 1. .FLAGS EQUATION 2. .NO FLAGS EQUATION 3. .ENABLE EQUATION n 4. .DISABLE EQUATION 5. .SEPARATED EQUATION 6. .END SEPARATED EQUATION NOTE The equation formatting routine will only work properly with word processing style hard copy printers that support sub/su- perscript escape sequences and backspacing. If the sub/super- scripting escape sequences are not the same as used by DIABLO printers, they must be defined first by the .DEFINE SUBSCRIPT and .DEFINE SUPERSCRIPT commands. Care must also be taken with some printers to see that the paper doesn't slip, as this will produce unacceptable output. If the top margin is not large enough, equations inside titles or subtitles can cause problems. 2 SPECIAL_CHARACTERS 3 FLAGS Flag characters Below is a list of RUNOFF's flag characters. To cause a flag to appear in the text as a normal character, it must be preceded by the underscore character "_" (itself a special character). Since the special characters can be changed by the .FLAGS commands, this list may not represent the actual usage for your document. ^ UPPERCASE the next character, or LOCK a function. ^^ No case conversion. \ LOWERCASE the next character, or UNLOCK a function. \\ Lowercase all text. < CAPITALIZE word. * ^< capitalize all text. * # SPACE character (non expandable or quoted space). = HYPHENATE specification, or continue mark. * & UNDERLINE the following character (also "^&,/&"). _ ACCEPT the following character. % OVERSTRIKE the previous character by the next character. * $ SUBSTITUTE defined text for abbreviation. * > INDEX/SUBINDEX flags. * | BREAK text with no spaces, or continue. * + PERIOD will add extra space if followed by space. * { EQUATION flag 1. * (Not in DSR) } EQUATION flag 2. * (Not in DSR) "tab" TAB flag character causes tabulation. (Not a flag in DSR) * Only becomes a special character if the FLAG is engaged. 3 PUNCTUATION Terminal punctuation . : ; ? ! These characters, if followed by a separator (space or tab), will appear in the output with 1 extra space after them. This feature works only when both .FILL and .PERIOD are engaged. These characters can be changed with the .PERIOD command. Valid punctuation / \ . , " ( ) @ These characters are valid in a hyphenated word. Any other non-alphabetic character will prevent autohyphenation. These characters can be changed by the .AUTOHYPHENATE command. 2 LIST_OF_COMMANDS * Indicates the command causes a line BREAK. $ Indicates a command forbidden during a FOOTNOTE. D Indicates the default setting ~ Indicates not available in DSR Type A to see all commands beginning with A... 3 A Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- APPENDIX [;][title] - - - - - - - - AX - - - - *$ Start an appendix AUTOBREAK ["chars"] - - - - - - - - AB - - - - $ ~ The characters may cause a line break AUTOHYPHENATE [n1,...n4][,"chars"] - - - AH - - - - $D~ (n1=size, n2=begin, n3=end, n4=mode) Enable automatic hyphenation "chars" are allowed in hyphenated word until NO AUTOHYPHENATE AUTOPARAGRAPH - - - - - - - - - - AP - - - - $ Begin paragraphs for lines with leading spaces, tabs, or blank lines until NO AUTOPARAGRAPH AUTOSUBTITLE - - - - - - - - - - AST - - - - $ Subtitle is same as current section (header level) until NO AUTOSUB- TITLE AUTOTABLE - - - - - - - - - - - AT Enable automatic table format until NO AUTOTABLE AUTOTITLE - - - - - - - - - - - ATI - - - - $D~ Enable title is same as current chapter/appendix 3 B Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- BEGIN BAR - - - - - - - - - - - BB - - - - Left hand margin will have a bar in it until .END BAR BLANK [-space] - - - - - - - - - B - - - - * Skip lines independently from spacing, except at top of page. BREAK - - - - - - - - - - - - BR - - - - * Start a new line BREAK LINE - - - - - - - - - - - BRL - - - - * Break at end of next line. 3 C Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- CENTER [LINE][+-n] - - - - - - - - C [LINE] - - * Center 1 line CENTER TEXT [+-n] - - - - - - - - C TEXT - - - * ~ Center a section until END CENTER CENTRE [+-n] - - - - - - - - - - C - - - - * CHAPTER [;][title] - - - - - - - - CH - - - - *$ Start a chapter CHAPTER LAYOUT [code][,spacing] - - - - CHLO - - - $ ~ Change the layout of first page of chapter COMMENT [comment text] - - - - - - - ; - - - - - - ! The comment is not included in the output 3 D Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- DEFINE - Defines a command or macro COMMAND /command/text - - - - - - - - - - - $ ~ Define a new command ESCAPE escape definition - - - - - - - - - - $ ~ Define special characters to output control codes. ITEM /label/ [format],[+-n] - - - - - - - - - ~ The label is a number to appear in text SUBSTITUTE /label/text - - - - - - - - - - - $ ~ Set up text to be substituted for label DEFINE NUMBER - Defines a substitution label for a current "number" APPENDIX /label/ - - - - - - - - - - - - - ~ CHAPTER /label/ - - - - - - - - - - - - - ~ ITEM /item/ /label/ - - - - - - - - - - - - ~ LEVEL /label/ - - - - - - - - - - - - - - ~ LIST /label/ - - - - - - - - - - - - - - ~ PAGE /label/ - - - - - - - - - - - - - - ~ SUBSCRIPT escape def - - - - - - - - - - - ~ Define subscript for equation formatting SUPERSCRIPT escape def - - - - - - - - - - - ~ Define superscript for equation formatting VARIABLE SPACE escape def - - - - - - - - - - ~ Define how to do variable spacing DELETE INDEX "entry" - - - - - - - - - - - - ~ Remove an entry from index table DELETE SUBSTITUTE /label/ - - - - - - - - - - - ~ Remove a substitution label from table of subst. DISABLE - Turns off features turned on by .ENABLE BAR - - - - - - - - - - - - DBB - - - - D ESCAPE - - - - - - - - - - - DES - - - - ~ COMMAND REPLACEMENT - - - - - - - $D~ EQUATION - - - - - - - - - - DEQ - - - - ~ FLAGS [flag] - - - - - - - - - DFL - - - - D~ HYPHENATION - - - - - - - - - DHY - - - - INDEXING - - - - - - - - - - DIX - - - - NUMBERING - - - - - - - - - - DNMPG - - - $ ~ NUMBERING CHAPTER - - - - - - - DNMCH - - - $ ~ ODD - - - - - - - - - - - - DOD - - - - D~ SUBSTITUTION - - - - - - - - - DSST - - - PAGING - - - - - - - - - - - DPAG - - - ~ TABS - - - - - - - - - - - - DTB - - - - ~ TOC - - - - - - - - - - - - DTC - - - - DISBLE TRAILING ZERO - - - - - - - $ ~ OVERSTRIKING - - - - - - - - - DOV - - - - UNCONDITIONAL - - - - - - - - - DUNC - - - *$ ~ UNDERLINING - - - - - - - - - DUL - - - - DISPLAY - Change format of specified number (form = D,LU,LL,LM,RU,RL,RM) APPENDIX ["pre",][form][,"post"] - - DAX - - - - *$ CHAPTER ["pre",][form][,"post"] - - - DCH - - - - *$ ELEMENTS ["pre",][form][,"post"] - - DLE - - - - *$ LEVELS [f1],...[f6] - - - - - - - DHL - - - - *$ LEVELS [level,]["pre",][format,]["post"] - - - - - * ~ NUMBER ["pre",][form][,"post"] - - - DNM - - - - *$ SUBPAGE [form] - - - - - - - - DSP - - - - *$ SUBTITLE ["pre"],["post"] - - - - - - - - - - ~ TITLE ["pre"],["post"] - - - - - - - - - - - ~ TOC PAGE ["pre"],["post"] - - - - - - - - - - ~ DO INDEX [title] - - - - - - - - - DX - - - - *$ Print the index as an appendix 3 E Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- ELLIPSES - - - - - - - - - - - ELL - - - - $ ~ Unspecified tabs are converted to ellipses ELSE aaaa Follows IF aaaa command ENABLE - Enables features turned off by disable BAR n1,n2 - - - - - - - - - - EBB - - - - D Allow change bars in left margin n1,n2 are spaces before, after bar COMMAND REPLACEMENT - - - - - - - $ ~ Allow user commands to replace permanent commands ESCAPE - - - - - - - - - - - ESC - - - - D~ Allow control code output FLAGS [flag] - - - - - - - - - EFL - - - - D~ Allow specified flag to be used EQUATION n - - - - - - - - - - EEQ - - - - D~ Allow equation formatting HYPHENATION - - - - - - - - - EHY - - - - D Allow hyphenation INDEXING - - - - - - - - - - EIX - - - - D Entries will be made in index table LEVELS [+-out],[+-toc] - - - - - - - - - - - $ ~ Enables header levels for output and table of contents NUMBERING - - - - - - - - - - ENMPG - - - $ ~ Page numbers are produced NUMBERING CHAPTER - - - - - - - ENMCH - - - $ ~ Page numbers include chapter number (1-2) ODD - - - - - - - - - - - - EOD - - - - ~ Chapters start only on odd page numbers PAGING - - - - - - - - - - - EPAG - - - D~ Pages are formatted TABS - - - - - - - - - - - - ETB - - - - D~ Tabs are converted to multiple spaces TOC - - - - - - - - - - - - ETC - - - - D Entries are made in table of contents file TRAILING ZERO - - - - - - - - - $D~ Enable trailin zero for header level 1 (1.0...) OVERSTRIKING - - - - - - - - - EOV - - - - D The overstrike flag is obeyed SUBSTITUTION - - - - - - - - - ESST - - - D Text may be substituted for a defined label UNCONDITIONAL - - - - - - - - - ENUNC - - - *$D~ Unconditional commands are obeyed and text is output UNDERLINING - - - - - - - - - EUL - - - - D Text may be underlined END - Ends a feature BAR - - - - - - - - - - - - EB - - - - CENTER - - - - - - - - - - - ECN - - - - ~ FOOTNOTE - - - - - - - - - - EFN - - - - IF aaaa LIST [space] - - - - - - - - - ELS - - - - *$ LITERAL - - - - - - - - - - - EL - - - - *$ NOTE - - - - - - - - - - - - EN - - - - *$ RIGHT - - - - - - - - - - - ER - - - - * ~ SEPARATED EQUATION - - - - - - - ESEQ - - - D~ SUBPAGE - - - - - - - - - - - ES - - - - *$ TEXT - - - - - - - - - - - - ETX - - - - *$ ~ ENTRY index term - - - - - - - - - Y - - - - Defines index term without page number 3 F Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- FIGURE [space] - - - - - - - - - FG - - - - *$ Skips lines independently of spacing. Works at top of page. FIGURE DEFERRED [space] - - - - - - FGD - - - - *$ Skips lines independently of spacing, where space permits. FILL - - - - - - - - - - - - F - - - - D Starts fill mode until NO FILL (normal mode of usage) FIRST TITLE - - - - - - - - - - FT - - - - $ Defines title to appear on all pages including first. FLAGS - Turns on and defines a special character to do something. ACCEPT [new flag] - - - - - - - FL ACCEPT - - $D [ALL] - - - - - - - - - - - FL [ALL] - - $ BREAK [new flag] - - - - - - - - FL BREAK - - $ CAPITALIZE [new flag] - - - - - - FL CAPITALIZE $ CONTROL [new flag] - - - - - - - FL CONTROL - $D ESCAPE [new flag] - - - - - - - FL ESCAPE - - $ ~ EQUATION - - - - - - - - - - FL EQUATION - ~ HYPHENATE [new flag] - - - - - - FL HYPHENATE - $ INDEX [new flag] - - - - - - - - FL INDEX - - $ PERIOD [new flag] - - - - - - - FL PERIOD - - $ LOWERCASE [new flag] - - - - - - FL LOWERCASE - $D OVERSTRIKE [new flag] - - - - - - FL OVERSTRIKE $ SUBINDEX [new flag] - - - - - - - FL SUBINDEX - $ SUBSTITUTE [new flag] - - - - - - FL SUBSTITUTE $ TAB [new flag] - - - - - - - - FL TAB - - - $ ~ UNDERLINE [new flag] - - - - - - FL UNDERLINE - $D UPPERCASE [new flag] - - - - - - FL UPPERCASE - $D FLUSH - - - - - - - - - - - - - - - - - * ~ Flushes out all deferred text FOOTNOTE - - - - - - - - - - - FN - - - - $ Start a footnote until END FOOTNOTE 3 H Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- HALF SPACING [spacing] - - - - - - - - - - - - ~ Enable and define half spacing HEADERS [on] - - - - - - - - - - HD [on] - - $D Enable output of headers (title/subtitle) at top of page HEADER LEVEL [+-level][;][title] - - - HL - - - - *$ Starts a numbered section in document HEADERS LOWER - - - - - - - - - - - - - - - $ HEADERS MIXED - - - - - - - - - - - - - - - $D HEADERS NO PAGE - - - - - - - - - - - - - - $ ~ HEADERS PAGE - - - - - - - - - - - - - - - $D~ HEADERS SPACING [spacing] - - - - - - HDSP - - - ~ Sets spacing between title and first line of text. HEADERS UPPER - - - - - - - - - - - - - - - $ 3 I Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- IF aaaa [bbbb]... Text following is output if aaaa is "true" until ELSE or ENDIF IF NOT aaaa [bbbb]... Text following is not output if aaa is "false"until ELSE or ENDIF IMMEDIATE IF aaaa - - - - - - - - IIF - - - - ~ Rest of line ignored if aaaa is false IMMEDIATE IF NOT aaaa - - - - - - - IIFNOT - - - ~ Rest of line ignored if aaaa is true IMMEDIATE TEST PAGE [n] - - - - - - ITP - - - - $ ~ Starts new page if fewer than n line remain on page IMMEDIATE TEST TEXT [n] - - - - - - ITT - - - - $ ~ Starts new page if fewer than n lines of text can be put on page INDENT [-spaces] - - - - - - - - - I - - - - * Indent line from left margin INDENT LEVELS [-l],[-r] - - - - - - - - - - - $ ~ Secify left, right indentation for header levels (sections) INDEX entry - - - - - - - - - - X - - - - Specify term to be indexed with page number 3 J Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- JUSTIFY - - - - - - - - - - - - J - - - - D Output text is left and right justified 3 K Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- KEEP [LINES] - - - - - - - - - - K - - - - Blank lines in input also appear in output in NO FILL mode KEEP TABS - - - - - - - - - - - - - - - - ~ Tabs at beginning of lines are kept and not removed in FILL mode 3 L Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- LAYOUT [code] [,spacing] - - - - - - LO - - - - *$ Change overall page layout of title/subtite and page number (0=all at top 1-15=Header top,number bottom) ( 1=C,C 2=LR,C 3=L,C 4=L,R 5=C,R 6=C,LR) ( 7=LR,LR 8=L,LR 9=LR,R 10=C,L 11=LR,L 12=L,L) (13=R,L 14=R,C 15=R,LR 16=R,R) LEFT MARGIN [+-n] - - - - - - - - LM - - - - * Sets the left margin LIST [lines] ["string"] - - - - - - LS - - - - *$ Begin a numbered list of items separated by blank lines until end list LIST ELEMENT [;]text - - - - - - - LE - - - - *$ Print current number in list LITERAL - - - - - - - - - - - - LT - - - - * Text following this command appears in output exactly as typed until END LITERAL LOCK - - - - - - - - - - - - - - - - - - $ ~ Lock some parameters so they can not be changed LOWER CASE - - - - - - - - - - - LC - - - - All text will be in same case as input 3 N Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- NO - turns off selected features AUTOBREAK ["chars"] - - - - - - - NAB - - - - $D~ AUTOHYPHENATE "chars" - - - - - - NAH - - - - $ AUTOPARAGRAPH - - - - - - - - - NAP - - - - $D AUTOSUBTITLE - - - - - - - - - NAST - - - $D AUTOTABLE - - - - - - - - - - NAT AUTOTITLE - - - - - - - - - - NATI - - - $ ~ ELLIPSES - - - - - - - - - - NELL - - - $D~ FILL - - - - - - - - - - - - NF - - - - * FLAGS [flag name] - - - - - - - NFL - - - - $ HALF SPACING - - - - - - - - - - - - - - D~ HEADERS [on] - - - - - - - - - NHD JUSTIFY - - - - - - - - - - - NJ - - - - KEEP - - - - - - - - - - - - NK - - - - D NUMBER - - - - - - - - - - - NNM - - - - $ NUMBER CHAPTER - - - - - - - - - - - - - $ ~ PAGING - - - - - - - - - - - NPA - - - - $ PERIOD ["chars"] - - - - - - - - NPR SPACE - - - - - - - - - - - NSP - - - - TITLE - - - - - - - - - - - - - - - - $ ~ UNDERLINE "characters" - - - - - - NUN - - - - ~ VARIANT aaaa [bbbb]... - - - - - - - - - - - ~ NOTE [;title] - - - - - - - - - - N - - - - *$ Starts an indented note until END NOTE NUMBER - Sets the new number APPENDIX [+-n] - - - - - - - - NMAX - - - $ CHAPTER [+-n] - - - - - - - - - NMCH - - - $D ITEM [+-n] - - - - - - - - - - NMIT - - - ~ LEVEL [+-n1],....,[+-n6] - - - - - NMLV - - - $ LIST [+-n] - - - - - - - - - - NPLS - - - $ [PAGE] [+-n] - - - - - - - - - NMPG - - - $D SUBPAGE [+-n] - - - - - - - - - NMSPG - - - $ 3 P Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- PAGE - - - - - - - - - - - - - PG - - - - *$ Starts a new page if paging enabled PAGE EVEN - - - - - - - - - - - PGE - - - - *$ ~ Starts a new even numbered page PAGE ODD - - - - - - - - - - - PGO - - - - *$ ~ Starts a new odd numbered page PAGE SIZE [+-h],[+-w],[+-l],[+-t],[s] - - PS - - - - $ Sets page size, permanent margins, sets PAGING PAGING - - - - - - - - - - - - PA - - - - * D Text will be divided into pages PAPER SIZE - - - - - - - - - - PS - - - - $ Synonym for page size PARAGRAPH [-n],[v],[t],[b] - - - - - P - - - - * Starts a new paragraph until command causing break (n=indent, v=skip, t=test, b=bottom test) PERIOD "characters" - - - - - - - - PR - - - - $D Enables specified characters to end sentence (produce 2 spaces) PERMANENT FOOTNOTE - - - - - - - - PFN - - - - $ ~ Starts a section of text to begin each footnote until END FOOTNOTE PRINT INDEX "entry" - - - - - - - - PX - - - - *$ Prints the index and clear it 3 R Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- RESET - Removes all entries in a table ESCAPE - - - - - - - - - - - - - - - - $ ~ INDEX - - - - - - - - - - - - - - - - ~ SUBSTITUTE - - - - - - - - - - - - - - - $ ~ RESTORE STATUS - - - - - - - - - - - - - - ~ Restores status saved by SAVE STATUS REQUIRE 'file spec' - - - - - - - - REQ - - - - $ Input now is taken from specified file REQUIRE BINARY [spacing ]'file-spec' - - REQ BIN - - * ~ The specified file is transferred to output file RIGHT [-indent] - - - - - - - - - R - - - - *$ Line is right but not left justified RIGHT MARGIN [+-n] - - - - - - - - RM - - - - * Set right margin RIGHT TEXT [-indent] - - - - - - - R TEXT - - - * ~ Section of text is right, but not left justified until END RIGHT 3 S Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- SAVE - Saves the current status CHAPTER - - - - - - - - - - - - - - - - ~ Current status is restored at each CHAPTER command HEADER - - - - - - - - - - - - - - - - ~ Current status is restored at each page header LEVEL - - - - - - - - - - - - - - - - ~ Current status is restored at each HEADER LEVEL command STATUS - - - - - - - - - - - - - - - - ~ Current status is restored at each RESTORE command SEND PAGE TOC [n;]text - - - - - - - - - - - - ~ Text followd by page number will appear in table of contents SEND TOC [;]text - - - - - - - - - STC - - - - Text will appear in table of contents SEPARATED EQUATION - - - - - - - - SEQ - - - - ~ Begins separated equation mode until END SEPARATED EQUATION SET LEVEL [+-n] - - - - - - - - - SL - - - - Sets the level for the next .HL command. SET PARAGRAPH [-n],[v],[t],[b] - - - - STP - - - - $ Sets paragraph params (n=indent, v=skip, t=test, b=bottom test) SETUP escape sequence - - - - - - - - - - - - ~ Setup printer before text SKIP [lines] - - - - - - - - - - S - - - - * Skips lines depending on spacing except at top of page SPACING [s] - - - - - - - - - - SP - - - - $ Sets line spacing STYLE CHAPTER [n1],...[n5] - - - - - STCH - - - $ ~ Changes style of first chapter page (1-3 = spacing, 4,5=indent (-1 centered,-2 right just) STYLE HEADERS [n1],...[n10] - - - - - STHL - - - *$ Changes style of header levels (sections) (line,CAPS,Cap,number,center,skip1,skip2,test,indent,[n.m]) SUBPAGE - - - - - - - - - - - - SPG - - - - *$ Starts a subpage until END SUBPAGE SUBTITLE [subtitle] - - - - - - - - ST - - - - $ Sets line of text to appear in subtitle 3 T Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- TAB LEFT - - - - - - - - - - - TL - - - - $D~ Unspecified tabs left justify TAB PROPORTIONAL n,["ell"][R/C/L][+-n1],.. TABP - - - $ ~ Sets up proportionally spaced tab stops TAB RIGHT - - - - - - - - - - - TR - - - - $ ~ Unspecified tabs right justify TAB STOPS ["ell"][R/C/L]+n1,... - - - - TS - - - - $ Sets up ellipses, justification and location of tab stops TEST PAGE [n] - - - - - - - - - - TP - - - - *$ Starts new page if fewer than n lines remain on this page TEST TEXT [n] - - - - - - - - - - TT - - - - *$ ~ New page if fewer than n lines of text may be output on this page TEXT - - - - - - - - - - - - - TX - - - - *$ ~ Starts a block of text that may not be split between pages until TEXT, END TEXT, or PAGE TEXT DEFERRED - - - - - - - - - - TXD - - - - *$ ~ Starts a block of text to appear on a later page until TEXT, END TEXT, or PAGE TITLE [title] - - - - - - - - - - T - - - - $D Sets line of text to appear as page title TOP MARGIN [+-n] - - - - - - - - - TM - - - - *$ ~ Sets top margin for the next page 3 U Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- UNDERLINE "characters" - - - - - - - UN - - - - ~ The specified characters may be underlined UNDERLINE SPACES - - - - - - - - - - - - - - ~ Spaces may be underlined UNDERLINE NO SPACES - - - - - - - - - - - - - D~ Disables underlining of spaces UPPER CASE - - - - - - - - - - - UC - - - - D All text will be output in upper case 3 V Command - - - - - - - - - - - - Abbreviation - Opt. ------- ------------ ---- VARIABLE SPACING - - - - - - - - - VARSP - - - * ~ Enable variable spacing VARIANT aaaa - - - - - - - - - - - - - - - ~ Sets aaaa to be true until NO VARIANT 2 ERRORS RUNOFF produces error messages in the following format: RNO -- error message Most of the error messages are self-explanatory. In some cases, RUNOFF prints the line in which the error has occured, so that the user can exa- mine the problem and correct it. Following the source line is the line number and file name in which that source line appears. If the error oc- cured in a substitution, the substitution label is printed followed by the section in error inside brackets. FOR FURTHER HELP TYPE: the first word in the error message. 3 BAD * RNO -- Bad parameters A command parameter is not "correct". The command listed is listed up to the point where the bad parameter appears. An example of a bad parameter would be .INDENT 25 when you only have 20 characters per line. (Remember that the minimum number of characters per line is 16 and the minimum number of lines/page is also 16.) The following is a partial list of com- mands that generate this error: (A) .DEFINE ESCAPE when input is not decimal or literal. (B) .DEFINE SUBSTITUTE without delimiters around the label, or with blanks or tabs in the label. (C) .DISPLAY with a format that is not one of the following: D, LU, LL, LM, RU, RL, or RM. (D) Commands that take literals as input when the apostrophe (') or quotes (") are missing. (E) Commands with input numbers that are too big or too small. For ex- ample, .HEADER LEVEL 7 is nonsensical and is flagged as an error. 3 CAN * RNO -- Can't indent list element The user has nested lists that cause RNO to attempt indenting beyond the right margin. * RNO -- Can't justify line: A line of text was found containing no spaces (other than quoted spaces), so the line could not be justified. * RNO -- Can't reduce margins A .NOTE command occured after the margins were set to values that prevent the .NOTE command from reducing margins by 5. The margins cannot be re- duced to less than 16 characters/line. 3 CHARACTER * RNO -- Character already defined as flag In attempting to enable a character as a flag, it was discovered that the same character is already being used for another flag. You should decide which flag you want and either disable the previous flag with a .NO FLAGS command, or use a different character for the second flag. * RNO -- Character specified is not special flag In attempting to disable an individual special flag, it was found that the flag character was not previously defined as a special flag in a .FLAGS SPECIAL command. 3 COMMAND * RNO -- Command string syntax error The command string cannot be deciphered. The general form of the RUNOFF command string is: Documentfile,Tocfile=Inputfile/Options The Options or the Tocfile can be omitted, but the other items must be specified. See the COMMAND STRING section. * RNO -- Command illegal inside user defined command The IF/IFNOT/ELSE and ENDIF commands cannot be used inside user defined commands. 3 CONFLICT * RNO -- Conflicting command The indicated command conflicts with a previous command. Some possibili- ties are: (A) The current command is .RIGHT, but a .CENTER has also been specified for the current line. (B) The current command is .CENTER, but .RIGHT or .INDENT has already been specified. (C) The current command is .INDENT, but .RIGHT has been specified. 3 DEFERRED * RNO -- Deferred page overflow The number of lines of text after the .TEXT DEFERRED command take up more space than is available on a page. You must either reduce the amount of text or increase the page size. This error will also occur if you forget to end the section of text with either .END TEXT, .TEXT, .TEXT DEFERRED, or .PAGE. 3 DEFINITION * RNO -- Definition too long The definition of subscripts, superscripts must not exceed 40 numbers and characters. The definition of variable spacing must not exceed 20 numbers and characters. 3 EXTRANEOUS * RNO -- Extraneous chars after legal command One or more extraneous characters appear after a legal command and before the next command. These are either typographical errors or you used the command improperly. The command is executed in either case. 3 IF * RNO -- IF - too many nestings Nesting of more than 31 IF statements was attempted. The maximum nesting depth is 31. 3 ILLEGAL * RNO -- Illegal command This message encompasses a large range of errors. The following is a partial list of commands that will generate this message: (A) .END FOOTNOTE, if no .FOOTNOTE command precedes it. (B) .END LIST, if no .LIST command precedes it, or if the spacing is greater than 5 or less than 0. (C) .END LITERAL, if no .LITERAL command precedes it. (D) .END NOTE, if no .NOTE command precedes it. * RNO -- Illegal command after .LOCK command You used .LOCK at the head of the document and subsequent illegal com- mands were encountered. You can probably ignore this error message if your document is satisfactory. The inclusion of the .LOCK command was designed to exclude the statements that are now illegal. * RNO -- Illegal command after a .TEXT command A text section was probably not ended with an .END TEXT command. * RNO -- Illegal command during footnote An .END FOOTNOTE statement is probably missing at the end of a footnote. Statements that change the overall page format are forbidden during footnotes. * RNO -- Illegal command during note A note is probably not ended with an .END NOTE command. * RNO -- Illegal command on subpage A .TEXT DEFERRED, .PAGE EVEN, or .PAGE ODD command might have been used after a .SUBPAGE command, or a subpage was not ended with an .END SUBPAGE command. * RNO -- Illegal flag character Only special characters can be used as flags. They are: ^ ! " # $ % & ' ( ) * = [ ] { } ~ + ` | < > ? _ \ / , . Numbers or letters cannot be used as flag characters. 3 IMPROPERLY * RNO -- Improperly nested IF, ENDIF, or ELSE Either: (A) An .ELSE or .ENDIF was not preceded by an .IF or .IFNOT with the same label. (B) An .ELSE was preceded by another .ELSE with the same label. Only one .ELSE per .IF is allowed. (C) The current .IF statement was preceded by another .IF with the same label. Each .IF must be followed by an .ENDIF with the same label. (D) The end of the document was reached and the .ENDIF corresponding to the current .IF was not found. 3 INPUT * RNO -- Input file error A read error has occured on an input file. One of the following condi- tions may exist: (A) The file contains a line of text with more than 512 characters. You should edit the file and shorten all such long lines to less than 512 characters. (B) A problem exists with a physical device (e.g. device cycled down). (C) The file is corrupted, or the format is wrong. (D) The file is a nonsource file. (Object file, etc.) * RNO -- Input file open error The file system, while attempting to open an input file, has detected an error. One of the following conditions may exist: (A) The user directory file is protected against an open. (B) A problem exists with the physical device. (C) The volume is not mounted. (D) The specified file directory does not exist. (E) The file does not exist as specified. * RNO -- Input file specification error An error exists in the input file specification. Correct the specifica- tion and re-enter the command. 3 INSUFFICIENT * RNO -- Insufficient dynamic memory One of the following commands filled up the dynamic memory: (A) .FOOTNOTE (B) .TEXT (C) .DEFINE ESCAPE - permanent (D) .DEFINE Command - permanent (E) .DEFINE ITEM - permanent (F) .DEFINE SUBSTITUTE - permanent (G) .DEFINE NUMBER - permanent (H) .INDEX - permanent (I) .IF,.IFNOT,.VARIANT - permanent All IF labels,index entries, escape sequences, and substitutions reduce dynamic memory permanently until the end of the current document, while footnotes and .TEXT only use it temporarily. If you define many substi- tutions or use .INDEX frequently, you must cut down on these statements. If the error occured during a footnote or .TEXT, you can reduce the amount of text before the .END statement. Instead of .TEXT and .END TEXT, use .TEST PAGE or .TEST TEXT. If you are currently using the non-overlaid version of RUNOFF, switch to the overlaid version. If using the overlaid version, you should switch to a smaller overlaid version. On RT-11 try the virtual version. This message is fatal, and you may not get any output if RUNOFF is in 2 pass mode. 3 INTERNAL * RNO -- Internal error - Contact your system manager This message is caused by an internal program error. You should never get this message. If you do, contact the system manager, unless you are already that person. This error indicates that RUNOFF is not working properly and should be fixed. It is also possible that you have had a hardware malfunction if the same version of RUNOFF used to work on the same identical text. Identical means no changes at all!! This is a fa- tal message, and you may not get any output as a result. 3 LITERAL * RNO -- Literal or label too long The length of the literal or label exceeds the maximum allowed. Several commands cause this error: (A) .IF commands - the maximum label is 40 characters. (B) .DEFINE commands - the maximum label is 40 characters. (C) .DISPLAY commands - the maximum literal length is 40 characters. (D) .DISPLAY ELEMENTS or .LIST command - the maximum literal length is 1 character. 3 MAXIMUM * RNO -- Maximum list level exceeded More than 10 lists were attempted to be created. That is, the command .LIST was issued more than 10 times without any .END LIST statements. Subsequent .LIST statements are ignored. * RNO -- Maximum subindex levels exceeded An attempt was made to subindex more than 6 times. The index terms are ignored. You can only use the subindex flag 6 times inside an .INDEX command. 3 MISSING * RNO -- Missing END FOOTNOTE At the end of the document an END FOOTNOTE command is missing. * RNO -- Missing END LIST At the end of the document one or more END LIST commands are missing. * RNO -- Missing END LITERAL At the end of the document an END LITERAL command is missing. * RNO -- Missing END NOTE At the end of the document an END NOTE command is missing. * RNO -- Missing END TEXT At the end of the document an END TEXT command is missing. * RNO -- Missing parameter The command requires a parameter. Look up the command description to determine the missing parameter. * RNO -- Missing denominator in equation At the end of the line, the end of a numerator was not found. You forgot to: (A) close the numerator with a right brace }, and you did not supply a denominator, or (B) put an underscore "_" in front of a left brace "{" that you wanted to print. * RNO -- Missing right braces (}) in equation One of the following errors have been made: (A) You forgot to close a fraction with a right brace }. The number of right braces must be the same as the number of left braces in all fractions. (B) The fraction was too wide to fit on the current line and it over- flowed to the next one. Normally this mistake will result in a whole string of error messages following the Missing right brace message. 3 OUTPUT * RNO -- Output file error A write error has occured on the output file. One of the following con- ditions exists: (A) The device is full or is write protected. (B) The hardware has failed. (C) The user does not have write access privileges to the file. * RNO -- Output file open failure The file system, while attempting to open the output file, has detected an error. One of the following conditions may exist: (A) The user's directory file is protected against an open. (B) A problem exists with the physical device. (C) The volume is not mounted. (D) The specified file directory does not exist. (E) The device is full of write protected. * RNO -- Output file specification error An error exists in the output file specification. Correct the specifica- tion and re-enter the command. 3 PERMANENT * RNO -- Permanent footnote error A permanent footnote was specified while a footnote was pending for the current output page. You must specify the permanent footnote first. * RNO -- Permanent footnote too long A permanent footnote longer than 6 lines was specified. The footnote is ignored. 3 SUBSTITUTION * RNO (WARNING) -- Substitution is not unique The substitution has been defined, but you might have trouble using it because it is not unique. You have done one of the following: (A) The label is contained within an existing label. For example, you defined the label "ABC" but you previously defined "ABCD". (B) The label contains a previously defined label. For example, you at- tempted to define the label "Sigma", but you previously defined "Sig". This message can be turn off by the /NOWR option. 3 SYMBOL * RNO -- Symbol already defined One of the following errors occured: (A) .DEFINE ESCAPE - The escape sequence you are attempting to define is already defined. Either change the sequence name, or .RESET ESCAPE. (B) .DEFINE SUBSTITUTE - The substitution name or abbreviation has already been defined. You must change the name or .RESET SUBSTITUTE. 3 SYNTAX * RNO -- Syntax error in equation An equation is incorrectly formatted. Fractions are formatted as: {Numerator}/{Denominator} You have made one of the following mistakes: (A) There are extraneous characters between the numerator and denominator. For example, the following is an error: }/Denominator (B) You have started a numerator or denominator with a right brace } when you should have used a left brace {. (C) You have omitted the slash / between the numerator and denominator. The following expression is an example of this error: {Numerator}{Denominator} Many times this error will be followed by other error messages. These extra messages can probably be ignored. Usually syntax errors will also cause the Missing right braces message. 3 TOO * RNO -- Too many nested fractions While the equation flag is engaged, an attempt was made to format frac- tions using the braces { } and too many fractions have been nested on top of one another. For example, if you input the following expression: {{A}/{B}}/{Denominator} you have nested fractions up to a depth of 2. When the nesting exceeds a depth of 6, the equation formatting may fail. See the section on EQUA- TION FORMATTING. * RNO -- Too many nested .REQ More than 5 nested levels of .REQUIRE have been found. This means that the original file contained a .REQ for a second file, which contained a .REQ for a third file, and so on. When the .REQ for a sixth file was is- sued, it was ignored and this error message was issued. To fix this er- ror you must rearrange your files to prevent more than 5 input files being in use at one time. * RNO -- Too many nested substitutions More than 3 levels of substitution have been attempted. This means that the first substitution contained a second, the second contained a third and the third contained a fourth. The fourth level is ignored. * RNO -- Too many tabs specified The maximum number of tabs stops you may specify is 32. Any more are ignored. 3 UNDEFINED * RNO -- Undefined escape seq. An escape flag or a special flag was used and the escape sequence cor- responding to the flag was not been defined. You must define it with the .DEFINE ESCAPE command. * RNO -- Undefined substitution (A) The substitution flag ($) was followed by an unrecognized label. Either you made a typographical error in the label, or you wished to print the substitute flag character in the text, but forgot to precede it with an Accept flag character(_). (B) The item used in .NUMBER ITEM, .DISPLAY ITEM, or .DEFINE NUMBER ITEM is undefined. You must define it via .DEFINE ITEM. 3 UNRECOGNIZED * RNO -- Unrecognized command A command or abbreviation was probably misspelled. Any input line is considered to begin with a command if the first character in column 1 is a decimal point. If you wish to begin a line of text with a decimal point, insert a space before it to prevent it from being confused with a command. 2 AUTHOR --- VMS/RSX --- John Clement T. W. Bonner Lab Rice University P.O. Box 1892 Houston, Tx, 77251 Tel (713) 527-8101x2037 Arpanet: CLEMENT@PHYSICS.RICE.EDU or: @RICE.EDU:CLEMENT@PHYSICS.RICE.EDU Bitnet: BONNER@RICE --- Rt-11 --- Robert Walraven Multiware, Inc. 437 F Street Davis, CA 95616