RUNOFF BONNER LAB version - ii - TABLE OF CONTENTS CHAPTER I INTRODUCTION 1 CHAPTER II VMS OPERATING PROCEDURES 2 II.1 INITIATING RUNOFF 2 II.2 RNO COMMAND STRING 2 CHAPTER III SOURCE FILE FORMAT 9 III.1 CASE INFORMATION 9 III.2 SPECIAL CHARACTERS 10 CHAPTER IV INTRODUCTION TO THE COMMANDS 14 CHAPTER V RUNOFF COMMANDS 19 V.1 BASIC TEXT FORMATTING 21 V.2 FOOTNOTE / NOTE 24 V.3 PAGE FORMATTING 26 V.4 PAGE HEADERS 29 V.5 LISTS 32 V.6 CHAPTER/APPENDIX FORMATTING 34 V.7 SECTION HEADERS 35 V.8 NUMBERING 37 V.9 DISPLAY COMMANDS 39 V.10 MODE SETTING 43 V.11 PARAMETER SETTING 49 V.12 TAB STOPS 52 V.13 FLAGS 57 V.14 ENABLE/DISABLE 63 V.15 DEFINE, DELETE, AND RESET 70 V.16 MISC COMMANDS 78 V.17 SAVE/RESTORE COMMANDS 80 V.18 INDEXING 82 V.19 TABLE OF CONTENTS 84 V.20 EQUATION FORMATTING 87 V.21 CONDITIONAL TEXT 89 APPENDIX A RUNOFF LIMITATIONS 94 APPENDIX B RUNOFF ERROR MESSAGES 95 APPENDIX C BUILDING RUNOFF 103 APPENDIX D SPECIAL CHARACTERS 112 APPENDIX E LIST OF COMMANDS (ALPHABETICAL) 114 APPENDIX F RUNOFF (SPALDING VERSION) 124 APPENDIX G SPECIAL PRINTER SUPPORT 126 INDEX 128 - iii - RUNOFF Revision Date: November 1987 Program Version: 1987.2 Document Printed : 22 Dec 1987 10:29:01 NOTICE: This document describes a program that Digital Equipment Cor- poration has no commitment to offer or support at this time. This docu- ment is believed to be an accurate description of RUNOFF. Feel free to distribute this program to other users, but please do not sell it. This version of RUNOFF is a major rewriting of RNO. The revisions es- sentially add almost all features from DSR to RUNOFF while maintaining compatibility. There are 3 known incompatible changes, to the .CENTER, .NUMBER, and .FOOTNOTE commands. The additions include the .REQUIRE command, overstrike capability, and escape sequence handling. A macro facility via the SUBSTITUTE flag has been added and permanent margins are also implemented. The permanent margins can cause incompatible out- put with respect to the headers if they are not set. In addition, all FLAGS are redefinable, and all can be enabled/disabled. The escape se- quence handling has been designed to give the user the ability to define arbitrary sequences, and intermix them with standard RUNOFF text. Since both this version of RUNOFF and previous versions use ASCII non printing characters internally, including such characters in your input file can be disastrous. To prevent this, all such characters with the exception of CR, LF, TAB are ignored. The philosophy of this version of RUNOFF has been to create a program that can handle virtually any printer with minimal support for any specific printer. As a result, general mechanisms have been included for printer control, but only suggested escape sequence definitions have been added as part of the permanent escape sequence table. The maximum size page is 127 lines by 255 characters (21 by 25 inches). This should be adequate for all but the most perverse applications. You are welcome to make modifications and additions to the this version. There are hints in INTERNALS.DOC and also in the section on building RUNOFF. I would appreciate a copy of any mods, so they can be incor- porated into future distributions. If you have any problems with this version, I will be glad to answer your questions. I do not guarantee that all errors can be patched. I will try to maintain this version and release new versions with most bugs fixed and some enhancements added. This program runs on RSX/IAS/VMS/RT/TSX and presumably RSTS. The RT version was prepared by Gary McMillian, a graduate student here at the Rice Physics department, and is now being maintained by the DECUS RT-11 SIG. - iv - --- 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 CHAPTER I INTRODUCTION RUNOFF is a text formatting program that facilitates the design and pro- duction of printed documents such as memos, letters, manuals, etc. Input to RUNOFF is a file containing the text of the document, case and formatting information, and other pertinent information such as how lines should be justified, how pages should be numbered and titled, and so forth. The output from RUNOFF is a ready-to-print document. After a input file has been processed, it remains available for further editing. The formatting information consists of commands and flags. Command lines are signalled by a period in the first position and may contain one or more commands and text. Within the text are special characters, called flags, that specify character modifications such as underlining or bolding. RUNOFF reduces the amount of interaction needed for preparation of a do- cument by allowing both textual correction and formatting changes to be executed in one pass through the source file. And since text changes do not effect the basic design, documents can be updated without extensive retyping. - 1 - CHAPTER II VMS OPERATING PROCEDURES II.1 INITIATING RUNOFF 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. II.2 RNO 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. II.2.1 File specifications 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 out- put 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 - 2 - CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 3 - SECTION: RNO COMMAND STRING - 22 DEC 1987 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 Editing RUNOFF Output RUNOFF output files cannot normally be edited with the stan- dard editors. This version can produce editable output if you use the /NOCR option when the text is processed. If You do this, /UL=L will not work, but the output may easily be edited. If this option is used, the ouput text/line must not exceed 256 characters, the output buffer size. If you need to use this feature with more than 256 characters/line, see BUILDING RNO for how to change the output buffer size. II.2.2 RNO OPTIONS A command string may have one or more options associated with it. An option is an indicator, consisting of a slash and a two-character ASCII name, used to select program options. Options may be used anywhere in the command string. The option itself may have three forms. For exam- ple, 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 CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 4 - SECTION: RNO COMMAND STRING - 22 DEC 1987 Fourteen options control the RNO program. These options, described below, may be specified on either the input or output file specification. The defaults may be set by the system manager at Task Build time. 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 This following is a detailed explanation of each option. /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) CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 5 - SECTION: RNO COMMAND STRING - 22 DEC 1987 /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) /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) /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) /EP -- Error messages are printed in .DOC file. Only non fatal er- ror 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) /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) CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 6 - SECTION: RNO COMMAND STRING - 22 DEC 1987 /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 automa- tically advance to the beginning of the next page when given a form-feed. /NOFF is usually used with primitive line printers that do not recognize 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 paper 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) /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 HYPHENATION command. (Not available in DSR) /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) /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 op- tions 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 assumed 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) /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) CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 7 - SECTION: RNO COMMAND STRING - 22 DEC 1987 /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) /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) /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 termi- nal or printer, and not to a file. The device must be de- fined as a terminal type device. This option affects only the .DOC output and not the .RNT file. Sometimes the operat- ing system will swallow control codes sent to the output device; this option insures that this will not happen. (Not available in DSR) /UC -- Force ALL uppercase output. The output will all be in caps. /NOUC -- Allow normal case conversion. (DEFAULT) (Not available in DSR) /UL=B -- Underline with a spacing-backspace. This type of underlining may fail to work properly if sub/su- perscripts 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. Sometimes this option may add an extra line to a page to ac- comodate 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) CHAPTER: VMS OPERATING PROCEDURES - RUNOFF - 8 - SECTION: RNO COMMAND STRING - 22 DEC 1987 /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) /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 indi- cate that a problem actually occured, only that one might occur. (Not available in DSR) /2P -- Two pass operation. /NO2P -- One pass operation. (DEFAULT) RNO can perform 2 passes so that all substitutions are de- fined on the first pass, and all text output on the second. This allows both forward and backward references. The .TYPE commands are executed for the second pass, but not for the first. This option will cause error messages to appear in different places. All multiple substitute definitions 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) /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) /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) CHAPTER III SOURCE FILE FORMAT The source file contains the textual material that will appear on the final copy, plus information to specify formatting. All command infor- mation consists of regular ASCII printing characters, so a listing of the source file can be examined if the final copy is not exactly as desired. All material in the source file is taken to be source text except those lines beginning with a period. A line beginning with a period is as- sumed to be a command, and must match one of those listed in the chapter on commands. The commands provide the formatting information and con- trol various optional modes of operation. III.1 CASE INFORMATION NOTE The following section explains how to change the case of the input text. If your terminal has a shift key you, do not need to read this section. Case is specified by the the circumflex (^) and the back-slash (\) characters. The appearance of a circumflex causes the letter im- mediately following to be transmitted in upper case. The appearance of a back-slash causes the letter immediately following to be converted to lower case. Any letter not preceded by one of these characters is transmitted in the current mode. The mode is initially upper case, and is changed by the occurance of two successive case control characters. Two circumflexes (^^) cause the mode to be set to upper case, and two back-slashes (\\) cause the mode to be set to lower case. When the text is in upper case mode (^^), the text is printed exactly as typed, i.e., no case conversion occurs. If in lower case mode (\\), however, all text is converted to lower case except where explicitly specified as upper case by a single upper shift character (^). The following example illustrates the use of the case control characters: H\\ERE IS A ^SAMPLE ^SENTENCE IN ^^UPPER CASE\\ AND LOWER CASE. becomes: Here is a Sample Sentence in UPPER CASE and lower case. - 9 - CHAPTER: SOURCE FILE FORMAT - RUNOFF - 10 - SECTION: CASE INFORMATION - 22 DEC 1987 If the .FLAGS CAPITALIZE comand has been issued, the capitalization flag, less-than (<), is enabled, and any word it precedes will be capitalized. After the word, the case mode returns to its previous value. If the capitalization character is enabled, a whole section of text can be capitalized by inserting ^< in front of the text and ^^ after the text. As with the lower case lock, a single character can be forced to lower case rather than upper case by preceding it with (\). These case change control symbols always override the actual case of the input text and the implied case of a command. For example, the command .HEADER LEVEL would normally produce a capitalized title for level number 1. This can be changed by preceding the title with \\ to force it to lower case. III.2 SPECIAL CHARACTERS & Ampersand UNDERLINE The character ampersand "&" is used to specify underlining. The ampersand 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 sin- gle space or tab, precede it by &. Text with imbedded spaces can be underlined, spaces and all, by issuing the command .UNDERLINE " ". You can specify which characters will or will not be under- lined with the .UNDERLINE and .NO UNDERLINE commands. (In DSR, you underline spaces by preceding them with an accept flag "_".) # 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. _ 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 requiring quoting. The following 12 cases occur: _& _^ _\ __ _$ _| _= _% _< _# _{ _} If normal spaces or tabs are preceded by an ACCEPT character, they are converted to non-expandable spaces. CHAPTER: SOURCE FILE FORMAT - RUNOFF - 11 - SECTION: SPECIAL CHARACTERS - 22 DEC 1987 ^ 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. \ 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. < 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 "^<" per- manently locks RUNOFF into capitalize mode. This mode can be can- celled by a double circumflex "^^". This flag is not normally used with terminals that have lowercase. = 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 appears 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 pre- ceded by the quote character "_=". % 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) CHAPTER: SOURCE FILE FORMAT - RUNOFF - 12 - SECTION: SPECIAL CHARACTERS - 22 DEC 1987 + 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. . 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. $ 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 cur- rent date and time. See: .FLAGS SUBSTITUTE. | 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 hyphenated, 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. > 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. { } 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) ???? 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) CHAPTER: SOURCE FILE FORMAT - RUNOFF - 13 - SECTION: SPECIAL CHARACTERS - 22 DEC 1987 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 frequently, you can change the hyphena- tion flag to the seldom used tilde. This is done by en- tering the following line: .FLAGS HYPHENATE ~ CHAPTER IV INTRODUCTION TO THE COMMANDS When you first use RUNOFF, the wealth of available commands may seem confusing, but you will find this wealth can be used to speed the crea- tion of documents. The first thing you should learn is how to create simple documents such as letters. For this you will need the following commands: 1. .RIGHT MARGIN sets the right margin. 2. .LEFT MARGIN sets the left margin. 3. .TOP MARGIN sets the top margin. 4. .PAGE SIZE combines all the above, and sets the page length. This command should always be used if you wish to produce docu- ments with numbered pages. 5. .PARAGRAPH starts paragraphs. 6. .CENTER centers a line of text. 7. .RIGHT right justifies a line of text. 8. .INDENT indents the next line. 9. .SPACING sets the spacing to single, double, triple .... 10. .HALF SPACING enables in-between spacing such as 1&1/2, 2&1/2 .... (Only works on some printers.) 11. .SKIP skips a line (or 2, if double spacing, 3 etc.) In other words, it skips lines according to the spacing selected. 12. .BLANK skips multiple lines independent of spacing. 13. .FIGURE or .FIGURE DEFERRED reserves n lines, independent of spacing, for inserting drawings, or other artwork later. 14. .BREAK starts a new line. This is called breaking the text. 15. .PAGE starts a new page. 16. .FILL automatically fills each line with words until no more will fit. 17. .JUSTIFY pads the text with spaces so that each line is justi- fied at the right margin. 18. .AUTOHYPHENATE causes long words at the end of a line to be au- tomatically hyphenated. The task of setting up paragraphs can be simplified by using the .AUTOPARAGRAPH command. Once this command has been given, any line pre- ceded by a blank, tab, or a blank line automatically starts a new paragraph. When this command is used, the input text can be formatted to "look" like the final document. The .SET PARAGRAPH command can be used in conjunction with the .AUTOPARAGRAPH to control the format of each paragraph. - 14 - CHAPTER: INTRODUCTION TO THE COMMANDS - RUNOFF - 15 - A frequently asked question is: How do I do bibliographies or tables? This can be done by setting up a negative indentation and adding the same indentation to the left margin. As a result, every time you begin a paragraph, the line will start on the old left margin, and the text will be indented. EXAMPLE: the input -------- --- ----- .left margin +5. set paragraph -5 .p;_.SET PARAGRAPH [-indent],[-skip],[test page] .BR;sets the format produced by the _.PARAGRAPH command, the _.AUTOPARAGRAPH, or _.AUTOTABLE feature. The indentation can be either positive or negative. produces the following text -------- --- --------- ---- .SET PARAGRAPH [-indent],[-skip],[test page] sets the format produced by the .PARAGRAPH command, the .AUTOPARAGRAPH, or .AUTOTABLE feature. The indentation can be either positive or negative. You can control the overall look of the pages with the .HEADER, .LAYOUT, and .TITLE/.SUBTITLE commands. The default page format is to place a title, subtitle, and page number at the top of the page. The location of the title/subtitle and the page number can be varied using the .LAYOUT command, which allows 17 different placements. The title and subtitle can be specified by the .TITLE or .SUBTITLE command. If no ti- tle is specified, none appears. The .NO TITLE command will suppress both the title and subtitle without suppressing the page number. The .NO HEADER command, on the other hand, will suppress title,subtitle, and page number. The .DISABLE NUMBERING command will suppress the page number without affecting the title/subtitle. Normally the page number is preceded by the word "Page". To display only a number with no extra word, use the .DISPLAY NUMBER command. The .DISPLAY NUMBER command can be used to substitute some other text for the word "Page", and can be used to add extra text after the page number. For example, .DISPLAY NUMBER could be used to number the pages of a 4 page document as 1/4,2/4,3/4,4/4. The .DISPLAY command can be used to switch page numbers to other forms. Normally the first page of a document will not have the title/subtitle printed on it. This can be changed with the .FIRST TITLE command. A common problem with formatting text is deciding how to arrange it on each page. For example, you may wish to force a particular section of text to fall all on the same page rather than have it possibly be split between 2 pages. This can be achieved using the .TEXT and .END TEXT commands. An alternate way to guarantee a fixed number of lines all on the same page is to use the .TEST TEXT command or the .TEST PAGE command. You should be aware that the .PARAGRAPH command has an au- tomatic .TEST TEXT built into it. You may wish to reserve part of a page for a figure with a caption. This is easily achieved with the .TEXT DEFERRED and .END TEXT commands. CHAPTER: INTRODUCTION TO THE COMMANDS - RUNOFF - 16 - If there is not enough space on the current page for the text between these commands, the text will be stored and reproduced on the next page that has enough space. You can reserve a whole page by using .TEXT DEFERRED and .PAGE to complete the reserved text. Several captioned figures can be generated and mixed with text in this way without without leaving partial pages blank. After you are able to format a letter or simple few page document, you will want to learn more advanced techniques. If you need to produce lists, such as the list above of simple commands, you can use the com- mands .LIST, .LIST ELEMENT, and .END LIST. These commands make creation and modification of lists simple and perhaps even enjoyable. 1. .LIST is used to begin a list. 2. .LIST ELEMENT starts each entry in the list. To insert more entries in the list, you need only insert a new .LIST ELEMENT command with the added text, and the list will be appropriately numbered. 3. .END LIST terminates the list. If you need to produce lists preceded by Roman numerals or letters rather than numbers the .DISPLAY ELEMENTS command allows you to change the list format. If you are dealing with a large document, you should consider breaking it up into sections. A master file for creating the entire document can be created using a .REQUIRE "filename" command to include each of the sections of the document. You could reshuffle the order of the various sections latter simply by rearranging the order of the .REQUIRE state- ments in the master file. Whenever a document is to be longer than a single page, you should consider breaking it up into sections. You can also divide a large document into chapters and appendices with the .CHAPTER and .APPENDIX commands. These commands automatically format the beginning of each chapter or appendix in an identical fashion and cause the chapters to be numbered in the order in which they occur. If you later need to insert a new chapter, the chapters are automa- tically renumbered. The "look" of the chapters can be modified by the .STYLE CHAPTER command. This command sets up the margins and placement of the chapter number and title. For some documents might want to have the page number placed in different locations depending on whether or not the current page is the first page of a chapter. The .CHAPTER LAYOUT command can be used to control the layout of the first page of each chapter independently of subsequent pages. .DISPLAY CHAPTER and .DISPLAY APPENDIX can be used to select either letters, roman numerals, or normal Arabic numerals for numbering the chapters and appendices. Whenever a document is chapter oriented, the page numbers are printed as chapter-page. For example, the 5th page in chapter 2 would be numbered 2-5. If sequential page numbering without the chapter numbers is desired, then .DISABLE NUMBERING CHAPTER should be used. In addition to (or instead of) dividing a document into chapters, it may be necessary to divide it into sections of text that are headed by a section number followed by a title. A section number is a string of numbers separated by periods. For example, 3.2.5 or 1.2. A string of 3 numbers is called a third header level, 2 numbers a second and 1 the first. You can automatically generate headers with the .HEADER LEVEL command. This command allows you to easily insert additional sections CHAPTER: INTRODUCTION TO THE COMMANDS - RUNOFF - 17 - because RUNOFF will automatically renumber the remaining sections correctly. Headers can be reformatted with the .STYLE HEADERS command, which controls the spacing and placement of the headers. In addition, the .INDENT LEVELS command indents the left and right margins of the headers as desired. If you need to use letters or Roman numerals in- stead of normal decimal numbers, you can use the .DISPLAY LEVELS command to change the type of numeral. You may want to have the sections of a document defined in outline form. That is, instead of numbering sections a.b.c... you wish to use large letters for level 1, numbers for level 2, and small letters for level 3. This can be accomplished with the .STYLE HEADERS and .DISPLAY LEVELS commands. The STYLE command can be used to suppress the a.b.c form of numbering and the DISPLAY command can be used to specify the numbering format. In addition, the section title can be centered, underlined, and capitalized automatically. The next page number or chapter number can be assigned with the .NUMBER commands. Subpage numbering can also be performed. Subpage numbering allows extra pages to be inserted without having to reformat and reprint the whole document. For example, after page 12 you could insert sub- pages 12A, 12B, and 12C by using the .SUBPAGE and .END SUBPAGE commands. The actual subpage number can be specified with the .NUMBER SUBPAGE command. The .NUMBER commands can be used to skip page numbers. It is also possible to format only selected pages and chapters by using the /CHAPTER, /APPENDIX, and /PAGES options. If you need to reproduce your document in in book form with both sides of the paper printed, there are several commands to aid you. The .ENABLE ODD command forces the first page of each chapter onto an odd numbered page. .PAGE ODD or .PAGE EVEN can be used to pick which page you wish to have next. In addition, you can select only odd or even page output with the /ODD or /EVEN options. By splitting your document into odd and even pages you can first print out the odd pages, then reinsert the paper and print the even pages on the other side of the paper. The /RIGHT option can be used to move the text over to account for an extra binding margin. Text can be underlined by using the underline flag. Underlining is af- fected by the .FLAGS UNDERLINE, .ENABLE UNDERLINING and .DISABLE UNDER- LINING commands. Normally only printable characters are underlined; the space character is not normally underlined. To cause it (or any other non-underlined character) to be underlined, you can use the .UNDERLINE command to define it as underlinable. Likewise, if you never want to underline certain characters, such as punctuation or numbers, you can define them not underlinable with the .NO UNDERLINE command. A whole cornucopia (or Pandoras box) of additional features can be con- trolled with the .FLAGS commands. These commands allow you to enable and redefine special symbols to perform various functions such as under- lining, capitalization, hyphenation, overstriking, breaking, and substituting. The .ENABLE or .DISABLE commands let you control when these features are used. (See the section on SPECIAL CHARACTERS.) Most of these features are self explanatory. Three of them are worth men- tioning here. CHAPTER: INTRODUCTION TO THE COMMANDS - RUNOFF - 18 - 1. OVERSTRIKING is where more than one symbol is printed at the same spot. For example, overstriking an oh "O" with a minus sign "-" can produce the Greek letter theta. 2. BREAK is a special way of telling RUNOFF where it may break a line as opposed to hyphenating it. It is also used to control tabulation. (See also the AUTOBREAK command.) 3. SUBSTITUTION allows abbreviations to be defined for long or commonly used lines of text, numbers, or symbols. Substitution can be used to create complex symbols that can be printed on special line printers. See .DEFINE SUBSTITUTE, .RESET SUBSTI- TUTE, .FLAGS SUBSTITUTE, and .ENABLE SUBSTITUTION If you need to number various items in the text, such as footnote numbers, figure numbers, table numbers, and equation numbers, you can set up such numbers and increment them with the .DEFINE ITEM and .NUMBER ITEM commands. You can also set up substitution labels for various reference numbers such as a chapter, section, appendix, or item number with the .DEFINE NUMBER commands. Typing a table in column format can be onerous task, even with the tab stops on a typewriter. RUNOFF contains tab stops that are settable by the .TAB STOPS and .TAB PROPORTIONAL commands. In addition, you can right justify columns or even center justify columns using the .TAB STOPS command. The .AUTOBREAK command will allow you align columns of numbers along the decimal point. (see the TAB command for examples.) Items can be connected by ellipses to guide the eye. The .ELLIPSES com- mand will cause ellipses rather than spaces to appear whenever you tab to the next item. RUNOFF can automatically take care of footnotes. The .FOOTNOTE command allows you to type the footnote at the same point it is referenced, but have it appear at the bottom of the page. RUNOFF can also produce an index and a table of contents for your document. Finally, a few special features should be mentioned that may be avail- able if you have a word processing style printer: 1. EQUATION FORMATTING allows you to easily format equations to be typed equations on the printer. 2. VARIABLE SPACING improves the look of the output when you right justify the text by balancing the white space throughout the line. Since this version of RUNOFF is almost the same as Digital Standard Run- off (DSR), the DSR manual can be used as a guide to most of the basic features. However, many advanced features in this version are not available in either DSR or any other version of RUNOFF. VAX/VMS users may prefer this version to DSR because of the extra features available for customizing documents. For those who use VAX/VMS and either RSX, RT, or IAS, this version of RUNOFF is particularly convenient because it runs essentially transparently on all these systems. (DEC does not sup- port RUNOFF or DSR on RSX, RT, or IAS, so users of these systems have no other choice but to use one of the versions of RUNOFF available through DECUS.) CHAPTER V RUNOFF 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 "INTRODUCTION TO THE COMMANDS". All commands begin with a period(.). Any line in the source file begin- ning 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. Multi- ple arguments can be separated by spaces, tabs, or commas. If the argu- ments 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. 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 do- cuments 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. 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.) 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 - 19 - CHAPTER: RUNOFF COMMANDS - RUNOFF - 20 - 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. 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 com- mand 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. 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 command with a dollar sign "$". For example, you might have a user com- mand 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 21 - V.1 BASIC TEXT FORMATTING .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 .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.) .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 ab- solute argument (no sign), the centering will be over column n. If n is a relative 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 22 - SECTION: BASIC TEXT FORMATTING - 22 DEC 1987 .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) .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 guarantees 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 .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 cur- rent 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 NOTE .BLANK, .SKIP, and .FIGURE are similar commands. If you want to leave 1 inch of space, .BLANK 6 would be appropriate. If you need 3 lines of space, .SKIP 3 is the correct command. If you need to leave space at the top of a page, or need a guaranteed amount of space, use .FIGURE or .FIGURE DEFERRED. When choosing between .SKIP and .BLANK, remember that .SKIP is appropriate if you are concerned with the number of text lines to skip, where CHAPTER: RUNOFF COMMANDS - RUNOFF - 23 - SECTION: BASIC TEXT FORMATTING - 22 DEC 1987 text lines may be more than 1 physical line, whereas .BLANK is appropriate when the space to be left is an ab- solute value such as, for example, .5 inches (which is normally 3 physical lines). .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 .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 dur- ing a text section or footnote. .PARAGRAPH is equivalent to: .SKIP v .INDENT n .TEST TEXT t,b (parameter b is not available in DSR) .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 .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 rejected with a "conflicting command" message. Tab stops are converted to single spaces for right justified lines. CHAPTER: RUNOFF COMMANDS - RUNOFF - 24 - SECTION: BASIC TEXT FORMATTING - 22 DEC 1987 .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. .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. Nega- tive skips, or skips greater than 6, are not allowed during foot- notes 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 V.2 FOOTNOTE / NOTE .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 insufficient room remains on the current page, the footnote con- tinues at the bottom of the following page. The text of the foot- note 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 addi- tion, all status is preserved. See .SAVE STATUS. However, com- mands that affect page formatting are illegal in a footnote. A footnote within a footnote is also illegal. If the footnote over- flows 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. Nor- mally .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 25 - SECTION: FOOTNOTE / NOTE - 22 DEC 1987 .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. .PERMANENT FOOTNOTE .PFN saves information for a permanent footnote header. This command may only be issued before other footnote commands. If it is issued 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 per- manent footnote, and their values will be restored before every subsequent .FOOTNOTE command. For example, to separate the foot- note from the text by a blank line and a divider, and to indent both margins by 2 with no justification, you could use the follow- ing 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. .NOTE [;][title] .NT [;][title] formats notes. A note is text set off from the rest of the docu- ment by reduced margins and a centered title. The text of the note follows 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 deter- mined 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 26 - SECTION: FOOTNOTE / NOTE - 22 DEC 1987 .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 V.3 PAGE FORMATTING .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 advance, 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) .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 SUB- PAGE 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, CHAPTER: RUNOFF COMMANDS - RUNOFF - 27 - SECTION: PAGE FORMATTING - 22 DEC 1987 5C and so on. After an .END SUBPAGE, the next page number will be 6. .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 .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 sec- tion 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) .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 de- fined at one time; they will appear on later pages as necessary. The .TEXT DEFERRED command is useful for defining figures with captions. If the page length is changed in the middle of the docu- ment, deferred pages might not appear correctly, since the decision to defer the text is based on the original page size. This command causes a break. CHAPTER: RUNOFF COMMANDS - RUNOFF - 28 - SECTION: PAGE FORMATTING - 22 DEC 1987 NOTE .TEXT DEFERRED does not modify the rules applicable to the .SKIP, .FIGURE and .BLANK commands. If a .SKIP com- mand follows 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 regu- lar 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. 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 .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 The test commands check to see if there is enough room on the cur- rent page for more text. (not available in DSR) .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 com- mand that causes a break is treated as a block. Thus, b is useful in preventing orphan lines. t specifies the minimum number of CHAPTER: RUNOFF COMMANDS - RUNOFF - 29 - SECTION: PAGE FORMATTING - 22 DEC 1987 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) .TEST TEXT [t] [,b] .TT [t] [,b] causes a break and tests to see if there is enough room on the cur- rent 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) V.4 PAGE HEADERS The page header consists of a title and subtitle printed at the top of each page, as well as a page number. This title is printed on the first line below the top margin, and the subtitle on the next line. The page number will normally appear right justified on the same line with the title. The page number is normally preceded by the word "Page". The title and subtitle are normally left justified. The actual location of title, subtitle, and page number are controlled by the .LAYOUT command. In addition to the following commands, the .NUMBER PAGE, .DISPLAY NUMBER .NO NUMBER, and .NO NUMBER CHAPTER commands control the page header. .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 30 - SECTION: PAGE HEADERS - 22 DEC 1987 permanent margins allow different margins for the headers than for the text. Titles are also produced by these commands: .FIRST TI- TLE, .CHAPTER, or .APPENDIX. Titles can contain any special characters, but autoindexing 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) .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 unless 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.) .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) .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 31 - SECTION: PAGE HEADERS - 22 DEC 1987 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 except 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: 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) .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) .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 32 - SECTION: PAGE HEADERS - 22 DEC 1987 changed by issuing the .FIRST TITLE command before any text on the first page. .HEADERS PAGE .HEADERS NO PAGE controls whether RUNOFF prints the word PAGE in front of the page number. This command is equivalent to .DISPLAY NUMBER "PAGE ". DEFAULT: .HEADERS PAGE (Not available in DSR) .HEADERS UPPER .HEADERS MIXED .HEADERS LOWER enables the header and specifies the format of the pre-header. UPPER, MIXED or LOWER cause the word "PAGE" to be printed before the page number in all upper case, capitalized, or all lower case respectively. NOTE The .DISPLAY NUMBER command should be used rather than .HEADERS UPPER .HEADERS LOWER, .HEADERS MIXED, .HEADERS NO PAGE, and .HEADERS PAGE. It is a more versatile com- mand and it can perform all the same functions of these other HEADERS commands. .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 specified, 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) V.5 LISTS The following commands format lists of items. .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 ad- ditional spaces for each subsequent nested LIST. n specifies the number of blank lines to appear before each item. The .LIST ELE- MENT command is used to specify each item in the list, and the .END LIST command is used to end the list. CHAPTER: RUNOFF COMMANDS - RUNOFF - 33 - SECTION: LISTS - 22 DEC 1987 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 .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 pro- duces a number followed by a decimal point "." and two spaces fol- lowed by the text. If you prefer letters, roman numerals or some character other than the decimal point, see the .DISPLAY ELEMENTS 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 permanent 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) .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 NESTING Lists can be nested up to 10 deep. That is, up to 10 .LIST com- mands can be used without any intervening .END LIST commands. This number can be modified by the system manager when RUNOFF is built. 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 34 - SECTION: LISTS - 22 DEC 1987 .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. V.6 CHAPTER/APPENDIX FORMATTING .CHAPTER [;][title] .CH [;][title] indicates the beginning of a chapter with the specified title. Successive .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 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 control the margins and spacing, use the .PAGE SIZE command to set the permanent margins and spacing before the .CHAPTER command is executed. -------- footnote -------- * Special features are only turned off if the appropriate escape sequences are defined as LCK. CHAPTER: RUNOFF COMMANDS - RUNOFF - 35 - SECTION: CHAPTER/APPENDIX FORMATTING - 22 DEC 1987 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 under- line chapter titles, or use bolding on printers that support this feature. The STYLE and DISPLAY commands, when used together, can completely alter the chapter header. .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) .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. V.7 SECTION HEADERS 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 excep- tion is header level 1, which has the form n.0. The .STYLE HEADERS CHAPTER: RUNOFF COMMANDS - RUNOFF - 36 - SECTION: SECTION HEADERS - 22 DEC 1987 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. 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 .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 commands 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 dis- tinction is made between different level numbers. If the title is too long to fit on 1 line, it is filled, justified, and continued on the next line with indentation to line up with the first part of the title. Autohyphenation is not performed on header titles. 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 37 - SECTION: SECTION HEADERS - 22 DEC 1987 | .SET LEVEL +-n | .SL +-n | Sets the level for the next HEADER LEVEL command. .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 .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 inden- tation 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 exam- ple, 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 omitted the indenta- tion is not altered. DEFAULT: .INDENT LEVEL TITLES 0,0,0,0,0,0 V.8 NUMBERING 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 as- sumed 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 38 - SECTION: NUMBERING - 22 DEC 1987 .NUMBER APPENDIX [+-n] specifies a number or letter to be used as the identifying letter for a subsequent APPENDIX command. See NUMBER 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 occu- pies 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). .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 in- tend 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. .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. .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 39 - SECTION: NUMBERING - 22 DEC 1987 .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. .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 num- bering is resumed with the .NUMBER command. To disable page num- bering and not have pages numbered, use the .DISABLE NUMBERING command. .NUMBER SUBPAGE [+-n] .NMSPG [+-n] indicates the beginning of a new sequence of subpage numbers by us- ing the specified subpage number or letter on the next page. V.9 DISPLAY COMMANDS 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 exam- ple, you can automatically underline headers, or print them in boldface on printers that support bolding. The display commands, like the DSR commands, produce a break. CHAPTER: RUNOFF COMMANDS - RUNOFF - 40 - SECTION: DISPLAY COMMANDS - 22 DEC 1987 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,....) 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 apostrophes (') or quotes ("). See the rules applicable to literal parameters. DSR doesn't support the "pre-fix" or "post-fix" parameters. .DISPLAY APPENDIX ["pre-fix",] [format] [,"post-fix"] .DAX ["pre-fix",] [format] [,"post-fix"] controls the format of the appendix number. The pre/post-fixes ap- ply 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 num- bering is used. DEFAULT: .DISPLAY APPENDIX "APPENDIX " , LU , "" .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 41 - SECTION: DISPLAY COMMANDS - 22 DEC 1987 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) .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). .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 example, the following command will set number underlining with uppercase 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 .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 42 - SECTION: DISPLAY COMMANDS - 22 DEC 1987 individual pages, and do not appear in the index or table of con- tents 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 , "" 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 "- " " -". .DISPLAY SUBPAGE [format] .DSP [format] controls the format of the subpage number. DEFAULT: .DISPLAY SUBPAGE "" LU "" .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 be- fore the .SUBTITLE command or .HEADER LEVEL command that it modifies. The .HEADER LEVEL command produces automatic subtitles if .AUTOSUBTITLE is on. DEFAULT: .DISPLAY SUBTITLE "" "" .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 "" "" .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 43 - SECTION: MODE SETTING - 22 DEC 1987 V.10 MODE SETTING .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 .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. 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 hyphena- tion with possibly some inaccuracy. 1 hyphenates accord- ing 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 44 - SECTION: MODE SETTING - 22 DEC 1987 (Not available in DSR) .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 .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 .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) .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 45 - SECTION: MODE SETTING - 22 DEC 1987 .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. .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 justifica- tion 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 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 fol- lowed by a space is converted to "punctuation", "space", "non expandable 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 contains 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. .JUSTIFY .J .NO JUSTIFY .NJ CHAPTER: RUNOFF COMMANDS - RUNOFF - 46 - SECTION: MODE SETTING - 22 DEC 1987 controls whether or not a line is filled out with additional spaces so that the last word ends exactly on the right margin. With justification turned off, output lines will have a ragged right margin. DEFAULT: .JUSTIFY RULES 1. If justification is enabled, all "normal" spaces are ex- panded 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 unless variable spacing is enabled. 5. If justification is disabled, the output will not be pad- ded with extra spaces, but if filling is enabled, redun- dant 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. .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) .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 begin- ning of an input line to be discarded, so .KEEP TABS may not work with .AUTOPARAGRAPH. (Not available in DSR) DEFAULT: .KEEP TABS CHAPTER: RUNOFF COMMANDS - RUNOFF - 47 - SECTION: MODE SETTING - 22 DEC 1987 .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 en- tire literal text will be underlined. If you want to use flags in- side 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. .LOWER CASE .LC sets the case mode to lowercase. This command has the same effect as typing two backslashes (\\). .LOWER CASE is not normally used unless your terminal lacks lower case. .UPPER CASE .UC sets the case mode to uppercase. This command has the same effect as typing two circumflexes (^^). (Uppercase is the default case mode). There is no need to use .LOWER CASE unless the mode was previously altered to lower case. .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 punc- tuation list; the terminal punctuation list will be changed only CHAPTER: RUNOFF COMMANDS - RUNOFF - 48 - SECTION: MODE SETTING - 22 DEC 1987 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 ".:;?!" .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) .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 " " .UNDERLINE SPACES .UNDERLINE NO SPACES controls whether or not spaces are underlined. .UNDERLINE SPACES is the same as .UNDERLINE " ". (Not available in DSR) .VARIABLE SPACING .VARSP .NO VARIABLE SPACING .NVARSP CHAPTER: RUNOFF COMMANDS - RUNOFF - 49 - SECTION: MODE SETTING - 22 DEC 1987 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 oc- cupy the same amount of physical space as opposed to a propor- tionally spaced font. NOTE When using .VARIABLE SPACING and .UNDERLINE" ", the op- tion /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 V.11 PARAMETER SETTING .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 set- ting 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. .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 added to or subtracted from the current margin. CHAPTER: RUNOFF COMMANDS - RUNOFF - 50 - SECTION: PARAMETER SETTING - 22 DEC 1987 .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 specified, the top margin is reset to the default or permanent value. See the .PAGE SIZE command for more information. If the margin is speci- fied with a + or - sign, n is added to or subtracted from the cur- rent margin. (Not available in DSR) .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 com- | mand 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 com- mand 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) 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. .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 51 - SECTION: PARAMETER SETTING - 22 DEC 1987 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 .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. Com- mands 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 sup- ports subscripting. You may have to use the .DEFINE SUB- SCRIPT command. (Not available in DSR) DEFAULT: .NO HALF SPACING .STANDARD n .SD n returns all parameters to their initial settings and sets the page width to n. This command has been retained for compatability with previous versions of RUNOFF and is NOT recommended. The .PAGE SIZE --- command with no parameters will reset margins to the permanent CHAPTER: RUNOFF COMMANDS - RUNOFF - 52 - SECTION: PARAMETER SETTING - 22 DEC 1987 values, while this command resets them to "installation standard". If .STANDARD 70 is specified, margins are reset as follows: .PAGE SIZE 58,60,0,3 .SPACING 1 .FILL .SET PARAGRAPH 5,1,2 The actual parameters may differ according to the "installation standard". .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) V.12 TAB STOPS 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 using 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 53 - SECTION: TAB STOPS - 22 DEC 1987 .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 pre- ceded 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) 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. .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 posi- tion 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 unspecified ones. Using + or -, you can increase or decrease each column width from an evenly spaced one. A column width cannot exceed 127. The ac- tual 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) 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 54 - SECTION: TAB STOPS - 22 DEC 1987 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 speci- fied tab stops are cleared. .TAB PROPORTIONAL is easier to use than .TAB STOPS for evenly proportioning columns. .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 .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 arbitrary point (defined by the break). (Not available in DSR) CHAPTER: RUNOFF COMMANDS - RUNOFF - 55 - SECTION: TAB STOPS - 22 DEC 1987 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 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 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 56 - SECTION: TAB STOPS - 22 DEC 1987 12345678901234567890123456789012345678901234567890 1.23 3.1415 75.2 789.0 55.2 100.98765 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 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 pro- duce the desired effect by setting .FILL .NO JUSTIFY. Each item should be preceded 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. Note Tab stops are disabled and converted to single spaces when: 1. After .RIGHT 2. After .CENTER 3. During equations 4. Inside titles/subtitles .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) 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 57 - SECTION: TAB STOPS - 22 DEC 1987 .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 V.13 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 ac- tions 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. 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 58 - SECTION: FLAGS - 22 DEC 1987 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. .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 control codes very difficult. To output control codes use the .DEFINE ESCAPE command. .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 function if it is preceded by a .NO FLAGS ALL. .NO FLAGS ALL disables recogni- tion of all flags except the CONTROL flag and the TAB flag. .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 command 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 59 - SECTION: FLAGS - 22 DEC 1987 .FLAGS CAPITALIZE [new flag] .FL CAPITALIZE [new flag] .NO FLAGS CAPITALIZE .NFL CAPITALIZE turns on or off recognition of the capitalize flag. The capitalize 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. .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. .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 func- tions such as printing characters in bold or changing the font to be used for printing. Initially recognition of the escape sequence flags is turned off and they are disabled. Two escape sequence 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) .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 60 - SECTION: FLAGS - 22 DEC 1987 the section on Equation Formatting for a complete description of the use of these flags. (Not available in DSR) .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 recog- nition of the lowercase flag is turned on and the flag is enabled. .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 hyphena- tion point can be specified in a word. When explicit hyphenation 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 hyphenation flag is turned off. .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 expandable 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 com- plete discussion of how to create an index for your document. .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 61 - SECTION: FLAGS - 22 DEC 1987 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. .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. .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 pro- duces 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. .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 com- mand 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 SPECIAL command. This command also turns on or off processing of all other special flags previously defined. CHAPTER: RUNOFF COMMANDS - RUNOFF - 62 - SECTION: FLAGS - 22 DEC 1987 (Not available in DSR) .FLAGS SUBINDEX [new flag] .FL SUBINDEX [new flag] .NO FLAGS SUBINDEX .NFL SUBINDEX turns on or off recognition of the subindex flag. Subindex entries 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. .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 out- put 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 per- manent 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. .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 63 - SECTION: FLAGS - 22 DEC 1987 formatters. Most editors do not display tab characters, so this command could also be used to make tabs visable 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) .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 under- lining 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. .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 until the occurance of (\&). Two uppercase flags in a row (^^) turns off the lower case lock. If the circumflex is used extensively 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. 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 V.14 ENABLE/DISABLE 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 64 - SECTION: ENABLE/DISABLE - 22 DEC 1987 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. .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 in- dented 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 position 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 | .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 pre- | faced 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 permanent | 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 65 - SECTION: ENABLE/DISABLE - 22 DEC 1987 .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 sufficient 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 .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) .ENABLE EQUATION n .EEQ n .DISABLE EQUATION .DEQ controls the action of the equation formatting flag. The parameter 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 recog- nition turned on by the .FLAGS EQUATION command, left and right braces { } are translated to be normal parentheses ( ). (Not supported in DSR) DEFAULT: .ENABLE EQUATION .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 66 - SECTION: ENABLE/DISABLE - 22 DEC 1987 be saved with the .SAVE command. Disabling a flag does not rede- fine 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 ampersand as a printable character. (Not supported in DSR) .ENABLE HYPHENATION .EHY .DISABLE HYPHENATION .DHY Controls hyphenation. When hyphenation is enabled, RUNOFF will hy- phenate words at the end of an output line. Hyphenation defined by the user with the hyphenate flag can also be used. Automatic hy- phenation 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 hy- phenate the last word in a paragraph. This can be avoided by using the .FLAGS HYPHENATE command and marking the last word in a para- graph for no hyphenation. Also, periods could be declared as in- valid 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 .ENABLE INDEXING .EIX .DISABLE INDEXING .DIX controls the collection and printing of index entries. DEFAULT: .ENABLE INDEXING CHAPTER: RUNOFF COMMANDS - RUNOFF - 67 - SECTION: ENABLE/DISABLE - 22 DEC 1987 .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 LEV- ELS command (Not supported in DSR) DEFAULT: .ENABLE LEVELS 6,6 .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 .ENABLE NUMBERING CHAPTER .ENMCH .DISABLE NUMBERING CHAPTER .DNMCH controls the form of page numbering. When enabled, pages are num- bered in the chapter form N-M, where N is the chapter number and M is the page number. Once chapter numbering has been disabled, it will not be reenabled by any command except .ENABLE NUMBERING CHAPTER. (Not supported in DSR) DEFAULT: .ENABLE NUMBERING CHAPTER .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 in- termediate numbered page with with no text will be produced to force the chapter onto the proper page. (Not supported in DSR) DEFAULT: .DISABLE ODD .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 68 - SECTION: ENABLE/DISABLE - 22 DEC 1987 command, 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 circum- stances, so this feature had to be omitted. DEFAULT: .ENABLE OVERSTRIKING | .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) .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 substi- tution will be recognized, but no substitution will be made. DEFAULT: .ENABLE SUBSTITUTION (Not available in DSR) .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 .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 69 - SECTION: ENABLE/DISABLE - 22 DEC 1987 | .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 .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 ignore the rest. (NOT available in DSR) DEFAULT: .ENABLE UNCONDITIONAL .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 70 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 V.15 DEFINE, DELETE, AND RESET The DEFINE, DELETE, and RESET commands are not available in DSR. These commands can be used to define features, such as bolding, that are available in DSR. .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 op- tional syntax elements. The actual command can have single, multi- ple 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 command definition. When the defined command is encountered by RUNOFF, 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. 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. 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. .DEFINE ESCAPE "escape label" [,modifiers] definition defines escape sequences for control of a variety of printers. Each escape sequence is indicated in the text by either a backslash (\), carot (^), or a symbol of your choice, followed by another symbol. For example, ^* might enable bolding by issuing the appropriate escape sequence to turn on bolding, and \* might dis- able bolding by issuing a turn off sequence. CHAPTER: RUNOFF COMMANDS - RUNOFF - 71 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 The escape sequence is entered as follows: First, select which 2 character label you want to represent the sequence. The first character must be either ^,\, or your own flag character, while the second one can be any other character. They are entered as a literal. For example, the label ^* could be en- tered as "^*" or '^*' or "^","*". You can define your own flag character with the .FLAGS ESCAPE command. (If you change the up- percase flag from ^ or the lowercase flag from \, then the new up- percase and lowercase flags should be the first character of an escape sequence, and you must specify the new upper/lowercase flags with a .FLAGS command before defining the escape sequences.) Next, enter the modifiers. These define how the escape sequence is handled. Modifiers LCK - specifies that escape sequence is a lock/unlock pair. For example, if ^* and \* are defined as a lock/unlock pair, then the first appearance of ^* will "lock" this feature on and a subsequent appearance of ^* will be ignored as long as \* is not used in between them. In other words, the lock is ^* and unlock is \*. When an escape sequence is defined as a lock/unlock pair, it will not act on headers, but will only change text, much in the same way the underline flag works. Only 16 escape sequences can be declared LCK. If a line con- tains only the "lock" sequence, then the unlock sequence will be output automatically at the end off the line and the next line will be preceded automatically by the lock sequence. This process continues until an "unlock" sequence flag is encountered. If you define a sequence that changes the character style, it should always be defined as a lock/unlock pair. Some examples of operations that change character style are hardware underlining, shadow printing, bolding, font changes, and ribbon color changes. The LCK attribute can be used to output sequences automa- tically at the beginning and end of each line. This can be useful if you have a printer that doesn't respond to CR,LF, but uses some other control character. The control character can be output at the end (or beginning) of each line as half of a lock/unlock pair. VSP,spacing - indicates that the escape sequence will change the vertical position by the specified spacing. The spacing parameter is specified in half lines, with 1 being 1/2 line advance, -1 is 1/2 line backwards. HSP,spacing - indicates that the escape sequence will change the horizontal position by the specified spacing. position. Sequences that modify the position are considered to be print- able characters, while sequences without HSP are considered to be attribute changes. If an escape sequence does not have the HSP attribute and a space follows an escape sequence, the space will be deleted from the output (while in fill mode). PSP - indicates that the horizontal spacing specified by HSP is ap- plied to all printable characters following the escape sequence. This attribute modifies the HSP attribute by CHAPTER: RUNOFF COMMANDS - RUNOFF - 72 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 specifying that a sequence will change the character width and by letting RUNOFF know what the new width is. The width can only be 0,1,2,... or multiples of the normal width. If HSP is specified as a number other than 1, certain aspects of fill are disabled. Spaces will not be expanded if it is necessary to justify the text. Only "normal" spaces with HSP=1 are ex- panded unless .VARIABLE SPACING is enabled. This feature al- lows imbeding extra wide text inside normal text, or centering extra wide text. A whole line of extra wide text cannot be justified, but a mixed line of normal and wide text can. If an escape sequence changes the permanent spacing to a value other than 1, then it should also have the attribute LCK. If it does not, a variety of things will be messed up, including underlining and margins. CHR - indicates that the lock/unlock pair is used to change only 1 printable character. This attribute should be used only if the lock/unlock pair is designed to function similarly to the underline flag. You must also declare the escape character in a .FLAGS SPECIAL command. Following the modifiers is the escape sequence itself. Printable characters can be entered as literals ('This is a literl'), while non printable must be entered as a decimal value. Numbers and literals can be separated by blanks,tabs, and or commas. Two com- mas in a row constitute a null, and are illegal. If you define an escape sequence twice in your text, only the first definition will be obeyed unless you reset escape before the second one. The second definition will cause an error message. If you use a large number of different escape sequences frequently, you should define the most commonly used ones first. This will in- crease the speed with which RUNOFF can find them. Escape sequences can be very tricky. To use them intelligently the following rules will be helpful. 1. Always use LCK and define a lock/unlock pair for a se- quence that changes the text attributes. Such sequences are ones that (A) Change font (B) Change all character spacing (C) Underline characters (D) Change ribbon color (E) Bold or shadow print characters 2. Always define HSP for sequences that output printable characters. 3. Always define HSP and PSP for sequences that permanently change the horizontal spacing. 4. Always define VSP for sequences that change the vertical position. 5. Use /UL:L instead of /UL:B for the underlining option, especially if sub or superscripted expressions are to be underlined. /UL:L is also necessary if alternate fonts substitute other characters for the underscore. 6. If a font switch results in a pitch change that is not an even multiple of the normal font, you must handle this CHAPTER: RUNOFF COMMANDS - RUNOFF - 73 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 change manually. If such a change is defined as a lock/unlock pair, RUNOFF will be able to print headers in the old pitch while using the new one for text. New mar- gins should be set for the new pitch, while the old per- manent margins are maintained to control the headers. Underlining will not work properly in the new pitch unless /UL:B is used. 7. If a single font is used throughout, then no attributes need be defined for the font change. 8. Never use letters after ^ or when defining escape sequence labels. Combinations like ^A will defeat the uppercase flag for the letter "A", and /A defeats the lowercase flag for "A". 9. Escape sequences can be used inside substitutions, but you should be careful to use the proper options. 10. Escape sequences can interact badly with the equation for- matting if you are not careful. Each partial line advance is noted, and the equation formatting will shift the equa- tions to allow for subscripts and superscripts. If characters are moved up or down by less than 1/2 line, you should probably not specify the actual vertical movement (VSP). 11. Some sequences may conflict with DEC device handler conventions. In particular XON(17) or XOFF(19) will be intercepted by the device handler on RSX or VMS. These codes should be avoided in escape sequence definitions. If they must be used, then the terminal should be in pas- sall mode or the output must be sent directly to the device with the /TT option. Other control codes, such as TAB(9), can be passed directly to the device by setting the characteristics of the device. NOTE Failure to use these suggestions can cause unpredictable ------- -- --- ----- ----------- --- ----- ------------- results. -------- EXAMPLES 1. The following example shows the definition of an escape sequence to turn on and off bolding. DIABLO compatible printer. .DEFINE ESCAPE '^*',CHR,LCK,27,'W' .DEFINE ESCAPE '\*',CHR,LCK,27,'&' .FLAGS SPECIAL * CHAPTER: RUNOFF COMMANDS - RUNOFF - 74 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 Bolding for an LA-50: .DEFINE ESCAPE '^*',CHR,LCK,27,'[1m' .DEFINE ESCAPE '\*',CHR,LCK,27,'[22m' .FLAGS SPECIAL * The net effect of these definitions is to have ^* turn on bolding, \* turn off bolding, and * bold a single character following it. Bolding will never occur for ti- tles, page numbers and subtitles. 2. The following example shows how to define escape sequences to produce special symbols on a DIABLO compatible printer. The extra font is enabled by SO(14) and disabled by SI(15). .FLAGS ESCAPE ` .DEFINE ESCAPE "`A",HSP,1,14,"A",15 .DEFINE ESCAPE "`a",HSP,1,14,"q",15 .DEFINE ESCAPE "`^",HSP,1,14,1,15 The 3 symbols are invoked by `A, `B, and `^. The following defines a "pi" for an LA-50 or VT-100: .DEFINE ESCAPE '`p',HSP,1,27,"(0{",27,"(B" 3. The following example shows how to enable and disable dou- ble width characters for an LA-50. It is assumed that the normal pitch is 10 characters/inch. .DEFINE ESCAPE "^=",HSP,2,PSP,LCK,27,"[5w" .DEFINE ESCAPE "\=",HSP,1,PSP,LCK,27,"[1w" ^= turns on elongated characters. (5 pitch) \= turns off elongated chars. (10 pitch) NOTE Some examples of escape sequence definitions and substi- tutions are provided in the files VT100.RNO, LA50.RNO and CIT161.RNO on the distribution kit. .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 incremented 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$ CHAPTER: RUNOFF COMMANDS - RUNOFF - 75 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 DEFAULT: .DEFINE ITEM /item/ D 1 .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 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 ac- tual page number may be off by 1 page even in 2 pass mode if the definition appears after the symbol is used. For this to always work correctly, an infinite pass mode would be necessary. As a practical matter, you can help RUNOFF by defining the label to be approximately 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. 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 .DEFINE SUBSTITUTE /label/ text defines a substitution to be made in the text. The label is pre- ceded 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 followed by a defined label, the specified CHAPTER: RUNOFF COMMANDS - RUNOFF - 76 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 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. 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 This example of define substitute could have used different delimiters if you needed to used the delimiters in the text. For example, 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 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/ 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 defined 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 !! Substitution is an invaluable aid for defining complicated mathematical symbols. All you need to enter in the text is the CHAPTER: RUNOFF COMMANDS - RUNOFF - 77 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 simple abbreviation and the complicated symbol will be substituted. The substitution can contain all kinds of escape sequences, overstrike symbols, and so forth to construct the spe- cial symbol needed. WARNING You should always define substitutions with labels that do not contain other substitute labels. For example, the labels ABC and A, while unique, will cause you no ends of problems. The first label ABC contains the second label. As a result, the construction $ABC could be ambiguous. Did you intend the substitution $A fol- lowed by the letters BC or the substitutions $ABC? The easy way around this problem is to always terminate each substitution with a terminal character. It is suggested that the substitute flag character be used. You would then define A$ and ABC$ as the labels. You would then type $ABC$ for one substitution and $A$BC for the other. .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 sequence 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" .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" .DEFINE VARIABLE SPACE n,[parameters] defines a micro space value, n, in microspaces/unit, for implement- ing 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 78 - SECTION: DEFINE, DELETE, AND RESET - 22 DEC 1987 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. (Not available in DSR) .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. .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. (Not available in DSR) .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. .RESET SUBSTITUTE resets the table of substitutions so that all the previously de- fined substitutions and commands are no longer available. The per- manently defined substitutions ($$DATE...) and defined commands are also no longer defined. To remove a single entry, use .DELETE SUB- STITUTE 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. V.16 MISC COMMANDS .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 79 - SECTION: MISC COMMANDS - 22 DEC 1987 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. .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 .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) 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 sec- tion 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 mas- ter file. Overall formatting commands such as .PAGE SIZE, .DISPLAY, .HEADER ... could also be put into a separate that could be required at the beginning 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. 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 ad- dresses 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 produce a string of personalized letters. Later you can change the contents of LETTER.RNO to get another set of personal- ized letters for mass mailings. CHAPTER: RUNOFF COMMANDS - RUNOFF - 80 - SECTION: MISC COMMANDS - 22 DEC 1987 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. .REQUIRE BINARY [spacing] 'file-specification' .REQ BIN 'file-spec' transfers input from the specified file directly to the .DOC output file with no interpretation. Before the transfer, a break is per- formed and a test page is executed with the specified spacing. The .REQUIRE BINARY is useful for inserting diagrams and other graphi- cal input into the text file. "Spacing" tells RUNOFF how much space to allow for the binary input file. .REQUIRE BINARY is ille- gal during a note, footnote, or text section. It is your responsi- bility to make sure enough space is available on the current 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 in- crement the current page number with .NUMBER PAGE +n. V.17 SAVE/RESTORE COMMANDS These commands save and restore the current status of various variables. The status is restored automatically under certain con- ditions, or can be restored on demand with the RESTORE command. There are some similar commands in DSR, but they currently do not do the same thing. 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. .SAVE APPENDIX saves the status. Restored automatically by an .APPENDIX command. .SAVE CHAPTER saves the status. Restored automatically by a .CHAPTER command. CHAPTER: RUNOFF COMMANDS - RUNOFF - 81 - SECTION: SAVE/RESTORE COMMANDS - 22 DEC 1987 .SAVE HEADERS saves the status. Restored automatically whenever a page header or page number are printed. Normally the page header is produced us- ing 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 applies to the title, subtitle, and page number. .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 example, you can restore .FILL, .JUSTIFY etc for each section of the document. .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. .SETUP escape sequences sends the specified escape sequence to the output file without in- terpretation before any other text. The escape sequence can con- sist 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) .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) .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) CHAPTER: RUNOFF COMMANDS - RUNOFF - 82 - SECTION: INDEXING - 22 DEC 1987 V.18 INDEXING You can have RUNOFF produce an index for your document by indicating each keyword you wish to appear in the index with the .INDEX command. The index can be printed with the .PRINT INDEX or .DO INDEX command. Indexing does not automatically cause all occurences of a keyword to be included in the index; the index facility is intended for produce in- dexes, not concordances. .INDEX [text] .X [text] adds an index entry along with the current page number to the in- ternal 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 immediately 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 alphabetize 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. .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. .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. .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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 83 - SECTION: INDEXING - 22 DEC 1987 index term. This term and all of its subindex terms will be printed. 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 para- graph 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 el- lipses ( . . . ) 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) .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. .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. 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 fol- lowing text: .FLAGS SUBINDEX .INDEX flags>substitute .INDEX flags>index .PRINT INDEX produces: flags index 1 substitute 1 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 84 - SECTION: INDEXING - 22 DEC 1987 further information see: FLAGS INDEX. Autoindexing cannot be done inside a .TITLE, .SUBTITLE, .CHAPTER, .APPENDIX, or .HEADER LEVEL command. The index facility can optimize the speed of index processing by keeping 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 optim- ization 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 example, .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 execution speed. V.19 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 addition 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 in- dented by the same amount. (This may be changed in future versions.) 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 before 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 85 - SECTION: TABLE OF CONTENTS - 22 DEC 1987 The following commands control the TOC output. .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 com- mands to control the format of the TOC. If the same command ap- pears 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. .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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 86 - SECTION: TABLE OF CONTENTS - 22 DEC 1987 2. The page numbers are right justified using tabs without el- lipses 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 con- tents 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 con- tains section headers. 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. CHAPTER: RUNOFF COMMANDS - RUNOFF - 87 - SECTION: EQUATION FORMATTING - 22 DEC 1987 V.20 EQUATION FORMATTING An equation formatting routine designed to format multiple nested frac- tions 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 formatting 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 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 equa- tions, try having RUNOFF send the output directly to your terminal or to the printer rather than to a file. 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. 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 denomina- tors, 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}}}}}} 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 88 - SECTION: EQUATION FORMATTING - 22 DEC 1987 addition, 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. 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 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 prob- ably 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. 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/superscript escape sequences and backspacing. If the CHAPTER: RUNOFF COMMANDS - RUNOFF - 89 - SECTION: EQUATION FORMATTING - 22 DEC 1987 sub/superscripting 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. V.21 CONDITIONAL TEXT Sometimes you might want similar but different versions of the same document. Here are three ways that might be accomplished: 1. If the document is broken up into small sections, then master files that contain nothing but .REQUIRE commands could be used to build the individual versions of the document from the con- stituent pieces by including only the appropriate sections. 2. Define SUBSTITUTIONS that can take on different meanings for each version of the document. 3. Use the .IF, .IF NOT, .ELSE, .ENDIF, .VARIANT, and .NO VARIANT statements to conditionalize sections of the document. These commands are discussed in this section. NOTE On multiple command lines, the .IF, .IF NOT, .ELSE, and .ENDIF commands must be first. .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) CHAPTER: RUNOFF COMMANDS - RUNOFF - 90 - SECTION: CONDITIONAL TEXT - 22 DEC 1987 .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 follow | 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 "*". .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 inside a defined command, or RUNOFF will not recognize it. If conditional text containing .REQUIRE commands is not processed, any .ENDIF in- side 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 recog- nized, so the text following it will be treated as normal text. .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. | .IMMEDIATE IF label | .IIF label | .IMMEDIATE IFNOT label | .IIFNOT label CHAPTER: RUNOFF COMMANDS - RUNOFF - 91 - SECTION: CONDITIONAL TEXT - 22 DEC 1987 | 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. | 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. 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 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. Example: Here is an example of the .NO VARIANT command: .VARIANT abc CHAPTER: RUNOFF COMMANDS - RUNOFF - 92 - SECTION: CONDITIONAL TEXT - 22 DEC 1987 .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 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 * 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. 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 CHAPTER: RUNOFF COMMANDS - RUNOFF - 93 - SECTION: CONDITIONAL TEXT - 22 DEC 1987 .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 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. APPENDIX A RUNOFF LIMITATIONS RUNOFF has some limitations as a general text formatting program. The foremost is its inability to look ahead for formatting text based on what will be happening in the next few lines. Here is a partial list of some other problems with some suggestions as to what you can do to al- leviate them. 1. Sometimes a word can be hyphenated between pages. This can happen, for example, on a page with a footnote, or if .IMMEDIATE TEST is used to prevent dangling lines on the next page. Hyphenation is usually inhibited for the last line of a page, but RUNOFF can sometimes get confused when dealing with several commands at the same time. A solution to this problem is to .DISABLE HYPHENATION, or use the hyphenation flag to declare the offending word ineligible for hyphenation. If the problem occurs in a footnote, an alternate solution is to place the footnote between paragraphs, and break the line before the footnote command. 2. Similarly, RUNOFF can hyphenate the last word of a paragraph. This is easily fixed by using the hyphenate flag in front of the last word of each paragraph. An alternate method is to disable hyphenation for any word ending with a period. This has the unfortunate side effect of preventing hyphenation at the end of every sentence. 3. Footnotes sometimes appear on the page before the line that refers to them. This problem can be avoided by starting the footnote about 1 line after the reference. However, this may make the footnote appear on the next page after the reference, if the reference is too near to the bottom of the page. If this occurs, the .IMMEDIATE TEST TEXT command can be used be- fore the reference to force both the reference and footnote onto the same page. - 94 - APPENDIX B RUNOFF ERROR MESSAGES 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 ex- amine 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 occured in a substitution, the substitution label is printed followed by the section in error inside brackets. 1. RNO -- Bad parameters A command parameter is not "correct". The command listed is listed up to the point where the bad parameter appears. An ex- ample 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 commands 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 example, .HEADER LEVEL 7 is nonsensical and is flagged as an error. 2. RNO -- Can't indent list element The user has nested lists that cause RNO to attempt indenting beyond the right margin. 3. 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. 4. 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 reduced to less than 16 characters/line. - 95 - APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 96 - 5. RNO -- Character already defined as flag In attempting to enable a character as a flag, it was dis- covered 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. 6. 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. 7. 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. 8. RNO -- Command illegal inside user defined command The IF/IFNOT/ELSE and ENDIF commands cannot be used inside user defined commands. 9. RNO -- Conflicting command The indicated command conflicts with a previous command. Some possibilities 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. 10. 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 ei- ther 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. 11. 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. 12. 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 APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 97 - errors or you used the command improperly. The command is exe- cuted in either case. 13. RNO -- IF - too many nestings Nesting of more than 31 IF statements was attempted. The max- imum nesting depth is 31. 14. RNO -- Illegal command This message encompasses a large range of errors. The follow- ing 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 spac- ing 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. 15. RNO -- Illegal command after .LOCK command You used .LOCK at the head of the document and subsequent ille- gal commands 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. 16. RNO -- Illegal command after a .TEXT command A text section was probably not ended with an .END TEXT command. 17. 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. 18. RNO -- Illegal command during note A note is probably not ended with an .END NOTE command. 19. 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. 20. RNO -- Illegal flag character Only special characters can be used as flags. They are: ^ ! " # $ % & ' ( ) * = [ ] { } ~ + ` | < > ? _ \ / , . Numbers or letters cannot be used as flag characters. APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 98 - 21. 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 cor- responding to the current .IF was not found. 22. RNO -- Input file error A read error has occured on an input file. One of the follow- ing conditions 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.) 23. 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. 24. RNO -- Input file specification error An error exists in the input file specification. Correct the specification and re-enter the command. 25. 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 substitu- tions reduce dynamic memory permanently until the end of the current document, while footnotes and .TEXT only use it temporarily. If you define many substitutions or use .INDEX APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 99 - frequently, you must cut down on these statements. If the er- ror 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 over- laid 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. 26. 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 indi- cates 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 fatal message, and you may not get any output as a result. 27. 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. 28. 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. 29. 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. 30. RNO -- Missing END FOOTNOTE At the end of the document an END FOOTNOTE command is missing. 31. RNO -- Missing END LIST At the end of the document one or more END LIST commands are missing. 32. RNO -- Missing END LITERAL At the end of the document an END LITERAL command is missing. 33. RNO -- Missing END NOTE At the end of the document an END NOTE command is missing. APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 100 - 34. RNO -- Missing END TEXT At the end of the document an END TEXT command is missing. 35. RNO -- Missing parameter The command requires a parameter. Look up the command descrip- tion to determine the missing parameter. 36. 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. 37. 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 overflowed to the next one. Normally this mistake will result in a whole string of error messages following the Missing right brace message. 38. RNO -- Output file error A write error has occured on the output file. One of the fol- lowing conditions 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. 39. 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. 40. RNO -- Output file specification error An error exists in the output file specification. Correct the specification and re-enter the command. 41. 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. APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 101 - 42. RNO -- Permanent footnote too long A permanent footnote longer than 6 lines was specified. The footnote is ignored. 43. 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 exam- ple, you defined the label "ABC" but you previously defined "ABCD". (B) The label contains a previously defined label. For exam- ple, you attempted to define the label "Sigma", but you previously defined "Sig". This message can be turn off by the /NOWR option. 44. 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. 45. 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. 46. RNO -- Too many nested fractions While the equation flag is engaged, an attempt was made to format fractions 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 APPENDIX: RUNOFF ERROR MESSAGES - RUNOFF - 102 - the section on EQUATION FORMATTING. 47. 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 issued, it was ignored and this error message was issued. To fix this error you must rearrange your files to prevent more than 5 input files being in use at one time. 48. 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. 49. RNO -- Too many tabs specified The maximum number of tabs stops you may specify is 32. Any more are ignored. 50. RNO -- Undefined escape seq. An escape flag or a special flag was used and the escape se- quence corresponding to the flag was not been defined. You must define it with the .DEFINE ESCAPE command. 51. 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. 52. 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. APPENDIX C BUILDING RUNOFF This appendix describes in detail how to build RUNOFF, and how to modify it for your specific needs. An executable RUNOFF file (called RNO on most systems) should be built first. It then can be used to build the documentation and help files. The documentation and help files come in big, small, and microscopic versions. All three are generated for your convenience. The instructions in this appendix should work on your sys- tem, but you may find that you will have to modify them slightly since it was not possible to anticipate all possible system configurations. RSX-11M mapped systems ------- ------ ------- Procedure: 1. It is assumed that the default CLI is MCR. 2. The assembly and task build steps can be executed by: @RNORSX ------- This will build a standard RSX version of RNO. It is assumed that you are using MCR rather than DCL. If you wish to cus- tomize your version of RNO, perform the following steps. (A) Select the proper task build file: (a) RNOBLD.CMD Overlayed (b) FCSBLD.CMD Overlayed, resident library (c) MEMBLD.CMD Overlayed, memory resident overlays (d) SMLBLD.CMD Overlayed, smallest size (e) SMLFCS.CMD Overlayed, small size, resident library (f) BIGBLD.CMD Non overlayed (B) Select the options you require by editing the RNPRE.MAC. This step is only necessary if you wish to have a different set of defaults. (See the section on CUSTOMIZATION.) (C) Edit the Task Build command file to reflect your individual system needs. The Task Build command file contains parame- ters to set the default options, default paper size (for /-FF) and default underline mode. The underline mode is currently set as UL:L. If you use lots of index terms or otherwise make heavy demands on dynamic memory, RUNOFF will run faster if you increase the EXTSK parameter. The over- layed version has lots of room for dynamic memory exten- sion, and runs nearly as fast as the non-overlayed version. (D) Assemble MAC @RNOASM (E) Build the task TKB @RNOBLD .....or TKB @BLDFCS ..or TKB @BIGBLD - 103 - APPENDIX: BUILDING RUNOFF - RUNOFF - 104 - SECTION: RSX-11M - 22 Dec 1987 3. The final RNO.TSK should be copied to LB:[1,54], and installed. 4. Finally, to generate RSX documentation: @DOCRSX This command builds both a document and a help file. To in- stall the help file on your system, follow these steps: (A) Copy the help RUNOFF.HLP to uic [1,2] (B) Set the protection W:R (C) Add an entry to the main HELP.HLP that references @RUNOFF.HLP (D) It may be necessary to remove the first line in the RUNOFF.HLP file. RSX-11M+ -------- The mapped RSX procedure should be used. It is possible to separate the code into data and code using I/D space. The .psects have all been properly defined and M+ users may wish to experiment with various methods of reducing the program size to make more dynamic memory available. RSX-11M UNMAPPED SYSTEMS ------- -------- ------- Users of unmapped systems should follow the procedure outlined for mapped systems, selecting UICs as appropriate. File RNOBLD.CMD will have to be edited to delete the /MM option and to change the PAR direc- tive to match system requirements. The final RNO.TSK should be copied to LB:[1,50]. RSX-11D systems ------- ------- Users of RSX-11D should follow the procedure outlined for RSX-11M Mapped systems. Since the conventions for source and object files are instal- lation dependent, all .CMD and .ODL files should be edited accordingly. Additionally, RSX-11D users should alter RNOBLD.CMD to change the /MM option to /MU and to change the PAR directive as needed. IAS systems --- ------- To build a standard version of RUNOFF: @RNOIAS ------- The command file IASBLD.CMD can be used to build just RUNOFF. The com- mand file contains parameters to set the default options, default paper size (for /-FF), and default underline mode. APPENDIX: BUILDING RUNOFF - RUNOFF - 105 - SECTION: IAS - 22 Dec 1987 NOTE Indirect command files will not work with heavily overlayed versions under IAS. IAS users must use only IASBLD or BIGBLD. To generate IAS documentation: @DOCIAS Unfortunately, an IAS help file is not generated. IAS users may be able to adapt the RSX help file created by @DOCRSX. P/OS on PRO ---- -- --- Building for P/OS is essentially the same as for RSX-11m except that the build commands have been customized for the PRO. To build RUNOFF, PRO users use the command: @RNOPRO After installing RUNOFF, you can produce documentation for P/OS with the command: @DOCPOS VAX/VMS systems ------- ------- To build this program for VMS native mode: -- ----- ---- ------- --- --- ------ ----- @RNOVMS Once built, you must copy RUNOFF.EXE to sys$system: ,or some other con- venient directory, with protection=w:re. Then define the command RUNOFF by: RUNOFF = $sys$system:RUNOFF This command should be added to the default login proceedure. This su- persedes Digital Standard Runoff. If you wish to keep DSR and Bonner Lab Runoff on the same system, you should not copy RUNOFF.EXE to sys$system:. If you wish to customize the native mode version, you can edit VAXPRE.MAR. To build RUNOFF for compatability mode: -- ----- ------ --- ------------- ----- @RNOVMS.CMD The RNO.EXE file should be copied to a directory that can be accessed by all users. The following symbol then needs to be defined: RNO :==$directory:RNO where "directory" is the directory where RNO is located. You can only run the compatability mode version if the RSX emulator is available on your VMS system. If you do not have it, you may have to purchase it APPENDIX: BUILDING RUNOFF - RUNOFF - 106 - SECTION: VMS - 22 Dec 1987 from DEC: it is called VAX-11 RSX. If your VAX was upgraded from V3.7, you should be able to get it free for a limited time period. NOTE The native mode version has several advantages over the compatability mode version. Advantages 1. It is faster by about a factor of 2. 2. It has essentially unlimited buffer space for footnotes, text sections, and definitions. 3. The maximum sizes for labels, lists etc. are larger. 4. The command structure is consistent with other VMS commands, including DSR. 5. It will work on all VAXes, including the MicroVAX, because it does not require RSX-11M emulation. 6. It is cheaper, because you need not buy the RSX emulator to use it. To generate VMS documentation: @DOCVMS Or for the compatabilty mode version: @docvms.cmd Both a document and help file are generated. The help file should be installed in the system help file. To do this you need bypass privilege, or you need to be in a system account. Then follow these steps: 1. $ LIBR /HELP/CREATE RNO RUNOFF 2. $ COPY RNO.HLB SYS$HELP 3. $ SET PROT=W:R SYS$HELP:RNO.HLB 4. $ ASSIGN SYS$HELP:RNO.HLB SYS$LIBRARY/SYSTEM 5. The ASSIGN should be included in the system startup file. or . . . 6. $ LIBR /HELP SYS$HELP:HELPLIB RUNOFF RT-11/TSX --------- RT-11 and TSX users should copy all .MAC and .COM files to the device assigned INP. The output device for the .OBJ and .SAV files should be assigned OUP. ASS DEV INP ASS DEV OUP Before compiling the files, RNPRE.MAC can be edited to change the default options. The macro files are assembled by initiating the com- mand file RTASM.COM: @RTASM APPENDIX: BUILDING RUNOFF - RUNOFF - 107 - SECTION: RT-11 - 22 Dec 1987 The resulting object files are linked by: @RTBLD or... @RTBLDO or... @RTBLDV RTBLD creates a non-overlayed version, RTBLDO creates an overlayed ver- sion, and RTBLDV creates a virtual-job version. If you are running /XM, you will probably want to run the virtual-job version, since it will always run if you have enough extended memory. If you are non running /XM, then you should try the non-overlayed version first. Some systems may not have enough free memory to run this version, in which case you should try the overlayed version. The non overlayed version could be shortened by removing the 2 pass mode, double buffering, autohyphena- tion, or the heuristic hyphenation. To generate the appropriate RT11 documentation use RUNOFF to create the documentation file from the .RNO files supplied. Copy all the .RNO files to the default device. . RUN RUNOFF *MICRO=MICRO,RT,RUNOFF *BRIEF=SMALL,RT,RUNOFF *RUNOFF.TXT,RUNOFF=RT,RUNOFF *RUNOFF.TOC=RT,RUNOFF.RNT */X . COPY/CONCATENATE RUNOFF.TOC,RUNOFF.TXT RUNOFF.DOC . DEL RUNOFF.TXT,RUNOFF.TOC The resulting files will be RUNOFF.DOC, BRIEF.DOC, and MICRO.DOC built specifically for RT11 users. No RT help file is available. The files for building RNO can be split very conveniently between 3 RX02 floppies. All of the .MAC, .CMD, .COM files fit onto 1 floppy. All of the .RNO files onto another, and all of the .TST onto a third. For con- venience, DOC*.CMD, DOC*.COM, and *DOC.CMD should be included with the .RNO files, as these are used to build documentation on other systems. In addition, a copy of README.1st, and BUILD.DOC are included as a guide to building RUNOFF. RSTS/E ------ The version of RNO that this RUNOFF originally grew from supported RSTS/E, and a symbol is in RNPRE.MAC to conditionalize this support. A RSTS system was not available to test this version, so RSTS users are on their own. If a RSTS user comes up with a set of patches to make it work, the author will gladly include them with the distribution. Presumably you will have to run under the RSX simulation available with RSTS. APPENDIX: BUILDING RUNOFF - RUNOFF - 108 - SECTION: ALL OPERATING SYSTEMS - 22 Dec 1987 ALL PDP-11 OPERATING SYSTEMS --- ------ --------- ------- RESTRICTIONS This version of RUNOFF uses the SOB instruction. If your machine (11/20 or 11/10) doesn't have this instruction, it can be simulated in the RNPRE.MAC file by enabling the symbol $SOB. Since almost every PDP-11 has this instruction, you will probably not have to worry about this. If your CPU doesn't have EIS (MUL and DIV instructions), you should dis- able the symbol $EIS in RNPRE.MAC. If you don't have EIS, you need the system subroutines $MUL and $DIV from the system library. CUSTOMIZATION You can change many things in RUNOFF to accomodate your own requirements. The option defaults can be modified by editing the build command file. All other defaults are located in the file RNPRE.MAC or VAXPRE.MAR. You should be able to modify any parameters in RNPRE.MAC or VAXPRE.MAR that are marked as user changeable; they are labeled and commented for your convenience. If you customize RUNOFF, you should edit CNTRL.RNO to customize the documentation. For example, if you in- crease the maximum nesting of lists, you should change the substitution /listmax$/ to reflect this modification. Support for specific printers is available in RUNOFF. The default sup- port is for a Florida data printer. The default will work with most Diablo compatable printers. The prefix file RNPRE.MAC or VAXPRE.MAR has several symbols that can be defined for various printers. 1. $FLORD for the Florida data printer 2. $DIAB for Diablo printers 3. $LA50 for an LA-50 or LA-100 terminal 4. $HPLJ for Hewlett Packard Laser Jet printer You can define your own internal set of default escape sequences by mod- ifying the table in routine INIT. The default escape sequence for vari- able spacing can specify either 10 or 12 pitch Diablo style. The symbol H$$PHN can be deleted to remove the AUTOHYPHENATION code. Autohyphenation can be made faster and the hyphenation routine is smaller if the symbol $DIGR is removed. If this is done, only suffix and prefix hyphenation will be performed. You can change the default indentation, spacing, margins, pagesize, and parameter limits. Input and output buffer sizes can also be adjusted. The variables shown below can be adjusted. The current value is in parenthesis. If you decrease these, more space will be available. 1. Maximum number of nested lists (6, vms=10) 2. Maximum number of header levels (6) 3. Maximum characters/command (40) 4. Maximum characters/substitution label (20) 5. Maximum characters/if label (10,40) 6. Maximum nesting of IFs (32) 7. Maximum characters/pre or post-fix (10,40) 8. Index Optimization (0) APPENDIX: BUILDING RUNOFF - RUNOFF - 109 - SECTION: ALL OPERATING SYSTEMS - 22 Dec 1987 MACRO wizards may want to make more modifications, but they should con- sult the INTERNALS.RNO file first. If you make any significant modifi- cations to this version of RUNOFF, the author would appreciate receiving a listing of them so that they can be considered for incorporation in future general releases. PROGRAM SIZE The size of the RSX overlayed version is around 38 kbytes. The non-overlayed version is about 56 kbytes. The smallest overlayed ver- sion is around 34 kbytes. The non-overlayed RT-11 version is about 45 kbytes and the overlayed version about 32 kbytes. The virtual-job RT-11 version requires about 2 kbytes of low memory and about 45 Kbytes of ex- tended memory. You can decrease the memory requirements by decreasing the buffer sizes. You can also omit the AUTOHYPHENATION feature from non-overayed versions by removing the symbol H$$PHN in RNPRE.MAC or VAXPRE.MAR. The current RSX/IAS/VMS version keeps all input files open and the current block resident in memory. This adds about 2 kbytes to the program size. The code can be modified to temporarily close unused files at the expense of program speed. A minimum of 2 Kbytes is neces- sary for dynamic memory in addition to the program. A large number of definitions or index terms will stretch the need for dynamic memory. The size of RUNOFF could be lowered by specifying a smaller stack. The current size is probably too big, and 64 is the bare minimum. The cur- rent version of RUNOFF is much more stack hungry, so 128 should work for most applications. BUFFER SIZES The maximum input line is currently set to 512 characters. If this is too short, you can redefine the symbol IBFSZ in RNPRE.MAC or VAXPRE.MAR. If you do this, the program will grow in size at the expense of dynamic memory. In general you can get around this restriction by using substitutions. For the RSX/VMS/IAS version, the maximum output line is 256 characters. If this is adequate, you can redefine it by changing symbol OBFSZ in RNPRE.MAC or VAXPRE.MAR. The RT version has no output line limitation. Changing the maximum size of the input line should only be necessary if you need shorter lines to pass to another program, or if you need longer lines in conjunction with the /-CR option. Normally each line of printed text will occupy 1 output record, unless you have a large number of imbedded escape sequences that cause it to grow beyond 256. If the line is longer than 256, it is split into several records. This causes no problems as long as you do not use /-CR. If you need to print more than 150 characters on a line and you use /UL:S (/U:S) or /UL:L (/U:L), the underline buffer size may not be adequate. The current definition is symbol ULNSZ found in RNPRE.MAC or VAXPRE.MAR. The RT-11 options are indicated in parenthesis. The VMS version does not use dynamic memory allocation. Instead, a fixed buffer of 32768 bytes is allocated for each feature. Footnotes, text, substitutions, and conditional labels each occupy a full buffer. At the present, it is not possible to expand the buffers to a larger size. EFFICIENCY APPENDIX: BUILDING RUNOFF - RUNOFF - 110 - SECTION: ALL OPERATING SYSTEMS - 22 Dec 1987 The underlining options have an effect on the efficiency of RUNOFF. /UL:S (/U:S) is the least efficient form of underlining and will slow execution, especially when /PA (/P) is used to omit a large number of pages. /UL:L (/U:L) is more efficient, and /UL:B (/U:B) is the most ef- ficient form of underlining. /UL:N (/U:N) is, of course, even more ef- ficient, but you lose the underlining capability. The RSX and RT versions use overlays to conserve memory. The overlay structure places all of the commonly used routines and the hyphenation routine in the same overlay. The .LIST, .LIST ELEMENT, .CHAPTER, .APPENDIX, .NOTE, .HEADER LEVEL commands are in a separate overlay. The least used commands such as .STYLE, .LAYOUT, .DISPLAY are in a third overlay. This structure should be only slightly slower than a non-overlaid program, and allows a maximum of dynamic memory space (30+ Kbytes). In creating RUNOFF.DOC, the non-overlaid version was only about 10% slower. If you are contemplating using SUBSTITUTE commands or indexing, you will probably need to use the overlaid version. If no in- dexing is done, and a limited number of escape sequences and substitu- tions are defined, the non-overlaid version will probably do the job. If you wish to try different overlay schemes, a few tips are in order. First, RUNOFF, RNODYN, CMTAB, GCIN, and RSXIO or RT11IO should not be overlayed. If the I/O routines are overlayed, then START or RNORT should call the open and close file routines. HYPHEN, and RNCMD are the 2 most frequently used routines, while STYLE and FMTCM are much less frequently used. COMND is called every time a command is parsed, so it should probably be in the same overlay as RNCMD. CMTAB can be split into 2 PSECTS: STRING can be in the same overlay with COMND, but DSPTCH must not be overlayed. See SMALBL.CMD for an example of overlaying. One way of increasing the efficiency of RUNOFF is to turn off autohyphenation. This will prevent excessive overlay switching as well as eliminating some code. In building RUNOFF.DOC, turning off hyphena- tion only decreased the time by about 6%. Another way to increase effi- ciency is to increase the the task extension. This will only be effective if large amounts of dynamic memory are used. Large footnotes, large .TEXT sections, or many large definitions may make this option necessary. In general, most users will find existing dynamic memory adequate. The RT version uses all available dynamic memory. NOTE This program has been successfully run on RSX-11M, VAX/VMS, RT-11, TSX, P/OS and IAS systems. It should run on RSTS under RSX emulation. It has not been tried on unmapped systems. DOCUMENTATION The documentation comes in 3 sizes: regular, small, and micro. "Regular" occupies nearly 700 blocks of disk space, while "small" is under 200 blocks. "Micro" (under 70 blocks) is designed as a small pocket guide to RUNOFF. APPENDIX: BUILDING RUNOFF - RUNOFF - 111 - SECTION: ALL OPERATING SYSTEMS - 22 Dec 1987 It may be necessary to modify the documentation files to accomodate printing them on a particular printer. All the page sizes are deter- mined by the commands in the file CNTRL.RNO. This file should be edited to reflect both your hardware and output format preference. Currently the output occupies a page size of 62 by 79 with /UL:S (/U:S) for underlining. HELP FILES Three help files are available for 2 operating systems: VAX/VMS and RSX. RUNOFF.HLP contains nearly the entire contents of the manual. If you are short on disk space, you may not be able to use it. The alter- native BRIEF.HLP and MICRO.HLP are considerably smaller. When you use DOCRSX or DOCVMS to generate the RUNOFF manual, the help files are also generated. Help files are not generated for IAS or RT. TEST FILES The primary test of RUNOFF is the creation of the document and help files that you produce after building RUNOFF. For additional testing, a number of files with extension .TST are included with the distribution. They serve as a test and guide to the various features available in Bonner Lab Runoff. The file RNOTST.CMD runs all of these through RUNOFF. It should process them without any internal errors or bombs. A partial list of the test files is shown below: 1. COMAND.tst - How to define commands. 2. DISPLA.tst - Demonstrates display command on VT100 terminal. 3. LEVEL.tst - Demonstrates header levels. 4. DISLEV.tst - Demonstrates header levels modified by display commands. 5. LIST.tst - Demonstrates the .LIST command. 6. DISLST.tst - Demonstrates the .LIST command modified by .DISPLAY. 7. CHAPT.tst - Demonstrates various chapter styles. 8. EQATN.TST - Demonstrates the equation formatting. In addition, some .RNO and .TST files are available as examples of escape sequence and substitution handling. The .RNO files define escape sequences and the .TST files illustrate their useage. Since these files come from several authors, not all escape sequences in these files are accessed by the same flag characters. A partial list of these sample files is: 1. GREEKMATH - Defines mathematical symbols for a Florida Data printer. The same ones should work on a Diablo printer. 2. VT100 - Defines some VT100 escape sequences to produce bolding and underlining. 3. DIABLO - Define some sequences for Diablo style printers. 4. LA50 - Defines some escape sequences for an LA-50 printer. 5. CIT161 - Defines sequences for a CIT-121 color terminal. 6. SPIN - Defines sequences for a spinwriter. APPENDIX D SPECIAL CHARACTERS 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) -------- footnote -------- * Only becomes a special character if the FLAG is engaged. - 112 - APPENDIX: SPECIAL CHARACTERS - RUNOFF - 113 - 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. APPENDIX E LIST OF COMMANDS (ALPHABETICAL) * Indicates the command causes a line BREAK. $ Indicates a command forbidden during a FOOTNOTE. D Indicates the default setting ~ Indicates not available in DSR 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 AU- TOSUBTITLE AUTOTABLE - - - - - - - - - - AT Enable automatic table format until NO AUTOTABLE AUTOTITLE - - - - - - - - - - ATI - - - - $D~ Enable title is same as current chapter/appendix 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. 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 - 114 - APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 115 - 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"] - - - - - * ~ APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 116 - 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 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 APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 117 - 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 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 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 APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 118 - 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 - - - - - - - - - - - - - - - $ 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 JUSTIFY - - - - - - - - - - - J - - - - - D Output text is left and right justified 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 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 un- til END LITERAL LOCK - - - - - - - - - - - - - - - - - - $ ~ Lock some parameters so they can not be changed LOWER CASE - - - - - - - - - - LC - - - - All text will be in same case as input APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 119 - 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 - - - $ 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 APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 120 - 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 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 APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 121 - 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 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 VARIABLE SPACING - - - - - - - - VARSP - - - * ~ Enable variable spacing VARIANT aaaa - - - - - - - - - - - - - - - ~ Sets aaaa to be true until NO VARIANT APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 122 - Non standard commands The following commands are nonstandard and are currently supported for compatibility with other versions of RNO. These commands are not recom- mended, and may not be supported in the future. Command Standard equivalent ------- -------- ---------- DUN DUL ELI END LITERAL EUN EUL HY ENABLE HYPHENATION [NO] HEADER [NO] HEADERS HYPHENATION ENABLE HYPHENATION NFC NO FLAGS CAPITALIZE NFH NO FLAGS HYPHENATE NHY DISABLE HYPHENATION NM NUMBER PAGE Number Elements Number List Display List Display Elements NO HYPHENATION DISABLE HYPHENATION STYLE LEVELS STYLE HEADERS SUBTTL SUBTITLE DSR comparison Where possible DSR compatibility has been maintained. Differences where they exist are detailed in the full document. Essentially DSR is a sub- set of Bonner Lab Runoff. In addition to the non standard commands and the commands marked as not available in DSR some commands have addi- tional functions not available in DSR. The permanent margins are not available in DSR and the TOP, LEFT margins parameters for .PAGE SIZE will not be recognized when transporting text to DSR. The layout codes 4-16 are not in DSR. The pre/post headers in the .DISPLAY NUMBER, .DISPLAY CHAPTER, and, .DISPLAY APPENDIX are not available in DSR. The indentation for the .NOTE command is slightly different from DSR. The parameter for the .CENTER command is not the same. Relative tab stops do not have the same meaning as in DSR. Some DSR features are not im- plemented in RUNOFF. These are: 1. AUTOJUSTIFY (use SAVE commands) 2. CONTROL CHARACTERS (use DEFINE ESCAPE) 3. DATE/NO DATE (simulate with DEFINE SUBSTITUTE) 4. FLAGS BOLD (simulate with DEFINE ESCAPE) 5. FLAGS COMMENT 6. NO SUBTITLE (use .SUBTITLE) 7. NUMBER INDEX (use DISPLAY NUMBER and DISPLAY LEVELS) 8. REPEAT (Multiple substitutions can do same thing) 9. SET DATE/TIME (simulate with DEFINE SUBSTITUTE) 10. VARIABLE (no equivalent) 11. XUPPER/XLOWER 12. The TOC and TCX programs are not available nor are they necessary. 13. The "!" is not impemented as a way of ending footnotes. This is also incompatible with older versions of RUNOFF. APPENDIX: LIST OF COMMANDS (ALPHABETICAL) - RUNOFF - 123 - 14. The octal and hex number formats are not supported in the .DISPLAY commands. DSR OPTIONS DSR supports a variety of options which may be simulated in RNO. These are: 1. /BOLD - use .FLAGS SPECIAL and .DEFINE ESCAPE 2. /DOWN - use .PAGE SIZE or .TOP MARGIN 3. /VARIANT - use .VARIANT instruction. Multiple file input or .REQ may also help in simulating variants. The DSR TOC options may be simulated by using: 1. .INDENT HEADER TITLES simulates varying level indents. 2. .DISPLAY commands and .DISABLE NUMBERING CHAPTER may be used to produce running numbers of any type. 3. .ENABLE LEVELS specifies the deepest level. 4. .ENABLE UNDERLINING controls the underlineing. Some DSR options operate differently from the equivalent RNO option. In particular the /PAGE, /CHAPTER, /APPENDIX options allow selection of only 1 range of pages in RNO while DSR has a much more flexible selection. The same results are available in RNO by running it several times to select all of the pages you wish to print. APPENDIX F RUNOFF (SPALDING VERSION) The version of RUNOFF by Charles Spalding shares many features with the current version. Some of these are implemented by different names. For example, the .EVEN command in Spalding is the same as .PAGE EVEN in this version. If you have text produced on the Spalding version that you wish to run on the Bonner lab version, you can simulate most commands via the .DEFINE COMMAND. For example, .EVEN can be simulated with: .DEFINE COMMAND /EVEN/PAGE EVEN Here is a partial list of Spalding commands with the Bonner Lab equivalents. Spalding Bonner Lab -------- ------ --- .AUTOCONTENTS .ENABLE LEVELS .BLOCK .TEXT DEFERRED .PRINT .TYPE .RIGHT JUSTIFY .RIGHT .DISABLE CONTENTS .DISABLE TOC .EVEN .PAGE EVEN .ODD .PAGE ODD .DUMP .FLUSH .ALTERNATE .ENABLE ODD .NO ALTERNATE .DISABLE ODD .PAGE NAME .DISPLAY NUMBER " .INCLUDE .VARIANT .EXCLUDE .NO VARIANT .OPTION .IF .END OPTION .ENDIF .ENABLE SPECIAL .FLAGS ALL .DISABLE SPECIAL .NO FLAGS ALL Other features, such as .PRINT CONTENTS, cannot be easily simu- lated, but they can be turned into non operations, commands (com- ments), or the error messages can be ignored. The following commands are the same, but incompatible with Spaulding: 1. .FIGURE in Spaulding is .FIGURE DEFERRED in RUNOFF. 2. .LITERAL in Spaulding still recognizes flags. 3. .TITLE is same as .FIRST TITLE 4. .REQUIRE does not use quotes around file name. 5. .TEST PAGE extra parameters are not same. 6. .FOOTNOTE must be ended by ! in Spaulding. A comparison with DSR (Digital Standard Runoff) can be found in the appendix titled "List of Commands". Unfortunately there are now many dialects of RUNOFF, and a complete comparison with all of them is not possible. Only Spaulding, DSR, and the old DECUS standard RNO are mentioned in this documentation. The author of RUNOFF is - 124 - APPENDIX: RUNOFF (SPALDING VERSION) - RUNOFF - 125 - indebted to the monumental Runoff comparison article by Allen Wat- son in the March 84 issue of the Pageswapper. APPENDIX G SPECIAL PRINTER SUPPORT A number of features have been added to support special printers. Some of these require the printer to respond to specific special code se- quences or escape sequences. The defaults are set by modifying RNPRE.MAC and enabling the default symbols. Some RUNOFF files are sup- plied for various printers. Printers supported Default File Printer types ------- ---- ------- ----- $DIAB DIABLO.RNO Diablo, Sprinwriters and all Diablo compatibles $Flord Florida Data $HPLJ HPLJ.RNO Hewlett Packard Laser Jet $LA50 LA50.RNO LA-50, VT-1xx, VT-2xx terminals VT100.RNO VT-100 VT-1xx and VT-2xx terminals CIT161.RNO CIT-161 - Color terminal General escape sequences 1. ^> Causes the text to be shifted up 1/2 space for writing superscripts or cancelling subscripts. 2. ^< Shifts the text down 1/2 space for writing subsripts or cancelling superscripts. This escape sequence conflicts with the CAPITALIZE FLAG if the flag is enabled. If the flag is enabled, it takes precedence over the escape sequence definition. 3. < or > will cause subscripts/superscripts if .FLAGS SPECIAL <> is used. Florida data 1. ^n selects a font n, where n is a number between 1 and 9. 2. ^* begins shadow printing for boldface text until the end of the line or until shadow printing is turned off, whichever comes first. 3. \* ends shadow print. 4. * shadow prints single character. 5. ^= begins elongated double width printing. 6. \= ends elongated print. 7. = bolds single character. Diablo/Spinwriter control codes 1. ^< produces subscripts. 2. ^> produces superscripts. 3. ^! begins graphics mode. 4. \! ends graphics mode. 5. ^( shifts text up 1 whole line. - 126 - APPENDIX: SPECIAL PRINTER SUPPORT - RUNOFF - 127 - 6. ^) shifts text down 1 whole line. Control codes for LA-50/VT-1xx/VT-2xx 1. ^& turns on underlining. 2. \& turns off underlining. 3. & underlines 1 char. 4. ^* turns on bolding. 5. \* turns off bolding. 6. * bolds 1 char. 7. ^~ turns on reverse video. 8. \~ turns off reverse video. 9. ^= turns on double width. 10. /= turns off double width. 11. ^# turns on blinking chars. 12. \# turns off blinking chars. 13. ^% turns on vt100 graphics set or other font (S0). 14. \% turns off vt100 graphics, returns to normal font (S1) 15. ^< produces subscripts (simulated on VT-100). 16. ^> produces superscripts. CONTROL CODES FOR HP LaserJet PRINTER 1. ^& starts underlining. 2. \& ends underlining. 3. ^* starts WBOLD&. 4. \* ends bold. 5. ^/ starts /ITALICS/. 6. \/ ends italics. 7. ^> produces or cancels subscripts. 8. ^< produces or cancels subsripts. The following are the .DEFINE ESCAPE statements equivalent to the per- manently defined sequences for the Florida data. 1. .DEFINE ESCAPE "^<" VSP 1, 27, "U" 2. .DEFINE ESCAPE "^>" VSP -1, 27, "D" 3. .DEFINE ESCAPE "^(" VSP -2, 27, 13 4. .DEFINE ESCAPE "^)" VSP 2, 13 5. .DEFINE ESCAPE "^1", 27, 2 6. .DEFINE ESCAPE "^2", 27, 3 7. .DEFINE ESCAPE "^3", 27, 4 8. .DEFINE ESCAPE "^4", 27, 5 9. .DEFINE ESCAPE "^5", 27, 6 10. .DEFINE ESCAPE "^8", 27, 9 11. .DEFINE ESCAPE "^*", LCK, CHR, 27, "W" 12. .DEFINE ESCAPE "\*", LCK, CHR, 27, "&" 13. .DEFINE ESCAPE "^=", LCK, CHR, HSP, 2, PSP, 14 14. .DEFINE ESCAPE "\=", LCK, CHR, HSP, 1, PSP, 15 15. .DEFINE ESCAPE "^!", LCK, 27, "3" 16. .DEFINE ESCAPE "\!", LCK, 27, "4" INDEX - 128 - INDEX (RUNOFF commands appear in upper case.) Accept flag 10 APPENDIX 35 AUTOBREAK 43, 66 AUTOHYPHENATE 43 Autoindex 83 AUTOPARAGRAPH 44 AUTOSUBTITLE 44 AUTOTABLE 44 AUTOTITLE 44 BEGIN BAR 45 BLANK 21 BREAK 21 LINE 21 Break flag 12 Capitalize flag 11 Carriage-return 5 Case 7 Case information 9 CENTER LINE 21 CENTER TEXT 22 CENTRE 21 Change bar 45 CHAPTER 34 CHAPTER LAYOUT 31 Command format 9, 19 Command string 2 COMMENT 78 Control flag 12 date 62 DEFINE COMMAND 70 ESCAPE 70 ITEM 74 NUMBER 75 SUBSCRIPT 77 SUBSTITUTE 75 SUPERSCRIPT 77 VARIABLE SPACE 77 DELETE COMMAND 78 INDEX 83 SUBSTITUTE 78 DISABLE - See also NO BAR 64 INDEX - 129 - CONTINUE 65 EQUATION 65 ESCAPE 65 FLAGS 65 HYPHENATION 66 NUMBERING 67 CHAPTER 67 ODD 67 OVERSTRIKING 67 PAGING 68 SUBSTITUTION 68 TABS 68 TOC 68 TRAILING ZERO 69 UNCONDITIONAL 69 UNDERLINING 69 DISPLAY APPENDIX 40 CHAPTER 40 ELEMENTS 41 LEVELS 41 NUMBER 41 SUBPAGE 42 SUBTITLE 42 TITLE 42 TOC PAGE 42 DO INDEX 82 DSR 84 DSR comparison 122 ELLIPSES 56 ELSE 90 ENABLE BAR 64 COMMAND REPLACEMENT 64 CONTINUE 65 EQUATION 65 ESCAPE 65 FLAGS 65 HYPHENATION 66 INDEXING 66 LEVELS 67 NUMBERING 67 CHAPTER 67 ODD 67 OVERSTRIKING 67 PAGING 68 SUBSTITUTION 68 TABS 68 TOC 68 TRAILING ZERO 69 UNCONDITIONAL 69 UNDERLINING 69 END BAR 45 CENTER 22 INDEX - 130 - FOOTNOTE 25 LIST 33 LITERAL 47 NOTE 26 RIGHT 24 SEPARATED EQUATION 48 SUBPAGE 26 TEXT 27 TOC 85 ENDIF 90 ENTRY 82 EQUATION DISABLE 65 ENABLE 65 FLAGS 59 SEPARATED 48 Equation flags 12 ERROR MESSAGES 95 FIGURE 22 DEFERRED 22 File Specifications 2 FILL 45, 65 FIRST TITLE 30 Flags 57, 63 - See also ENABLE FLAGS ACCEPT 58 ALL 58 BREAK 58 CAPITALIZE 59 CONTROL 59 DISABLE 65 ENABLE 65 EQUATION 59 ESCAPE 59 HYPHENATE 60 INDEX 60 LOWERCASE 60 OVERSTRIKE 60 PERIOD 61 SPACE 61 SPECIAL 61 SUBINDEX 62 SUBSTITUTE 62 TAB 62 UNDERLINE 63 UPPERCASE 63 FLUSH 28 FOOTNOTE 24 Form-feeds 6 HALF SPACING 51 HEADER LEVEL 36 HEADERS 31 LOWER 32 MIXED 32 INDEX - 131 - NO PAGE 32 PAGE 32 SPACING 32 UPPER 32 Hyphenate flag 11 Hyphenation 6, 43, 60, 66 IAS 104 IF 89 NOT 90 IMMEDIATE IF 91 IF NOT 91 IMMEDIATE TEST PAGE 29 TEXT 29 INDENT 23 INDENT LEVEL TITLES 37 INDENT LEVELS 37 INDEX 82 DISABLE 66 ENABLE 66 FLAGS 60 SUBINDEX 62 Index flag 12 JUSTIFY 46 KEEP LINES 46 TABS 46 LAYOUT 30 LEFT 23 LEFT MARGIN 49 LIST 32 LIST ELEMENT 33 LITERAL 47 LOCK 52 LOWER CASE 47 Lowercase flag 11 Mode setting 43 NO - See also DISABLE AUTOBREAK 43 AUTOHYPHENATE 43 AUTOPARAGRAPH 44 AUTOSUBTITLE 44 AUTOTABLE 44 AUTOTITLE 44 ELLIPSES 56 FILL 45 FLAGS ACCEPT 58 INDEX - 132 - ALL 58 BREAK 58 CAPITALIZE 59 CONTROL 59 EQUATION 59 ESCAPE 59 HYPHENATE 60 INDEX 60 LOWERCASE 60 OVERSTRIKE 60 PERIOD 61 SPACE 61 SPECIAL 61 SUBINDEX 62 SUBSTITUTE 62 TAB 62 UNDERLINE 63 UPPERCASE 63 HALF SPACING 51 HEADERS 31 JUSTIFY 45 KEEP LINES 46 TABS 46 NUMBER 39 NUMBER CHAPTER 38 PAGING 27 PERIOD 47 SPACE 79 TITLE 29 UNDERLINE 48 VARIABLE SPACING 48 VARIANT 90 Non standard commands 122 NOTE 25 NUMBER APPENDIX 38 CHAPTER 38 ITEM 38 LEVEL 38 LIST 39 PAGE 39 SUBPAGE 39 Operation 2 Options 3 Overstrike flag 11 P/OS 105 PAGE 26 EVEN 26 ODD 26 Page size 6, 50 PAGING 27 PAPER SIZE 50 PARAGRAPH 23 INDEX - 133 - Parameter setting 49 PERIOD 47 Period flag 12 PERMANENT FOOTNOTE 25 PRINT INDEX 82 Punctuation Terminal 47 Valid 66 Quote flag 10 REQUIRE 79 BINARY 80 RESET ESCAPE 78 INDEX 83 SUBSTITUTE 78 RESTORE STATUS 81 RIGHT 23 TEXT 24 RIGHT MARGIN 49 Right shift 7 RSTS 107 RSX-11D 104 RSX-11M 103 RT-11/TSX 106 RUNOFF COMMANDS 19 SAVE APPENDIX 80 CHAPTER 80 HEADERS 81 LEVELS 81 STATUS 81 SEND PAGE TOC 85 TOC 85 SEPARATED EQUATION 48 SET LEVEL 37 SET PARAGRAPH 23 SETUP 81 SKIP 24 Source File Format 9 Space 68 non expandable 10, 47, 66 non-expandable 40 SPACING 50 SPECIAL CHARACTERS 10, 112 Spooling 7 STANDARD 51 STYLE CHAPTER 35 HEADERS 37 Subindex 83 Subindex flag 12 INDEX - 134 - SUBPAGE 26 Substitute character 12 Substitute flag 12 SUBTITLE 30 TAB LEFT 54 PROPORTIONAL 53 RIGHT 54 STOPS 53 Table of contents 67, 68, 84 Tabs 68 TEST PAGE 28 TEXT 29 TEXT 27 DEFERRED 27 time 62 TITLE 29 TOC 85 TOP MARGIN 50 TRACE 81 Two pass mode 8, 75 TYPE 81 UNDERLINE 48 FLAGS 63 NO SPACES 48 SPACES 48 Underline flag 10 Underlining 7 UPPER CASE 47 Uppercase flag 11 VARIABLE SPACING 49 VARIANT 90 VMS 105