home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / sigmv085.ark / RUNOFF.DOC < prev    next >
Encoding:
Text File  |  1984-04-29  |  26.6 KB  |  833 lines

  1. .rem              *********************************
  2. .rem              *     Runoff User's Manual      *
  3. .rem              *        April 30, 1982         *
  4. .rem              *       Raymond E. Penley       *
  5. .rem              *********************************
  6. .rem
  7. .rem --------------------------- SETUP ----------------------------------
  8. .he RUNOFF User's Guide
  9. .lm 1
  10. .rm 78
  11. .nhd
  12. .nf
  13.  
  14. .sp 22
  15. .c 4
  16. RUNOFF User's Guide
  17. CP/M VERSION 1.0
  18. RAYMOND E. PENLEY
  19. APRIL 30, 1982
  20. .np
  21. .rem --------------------------------------------------------------------
  22. .j
  23. .p 5
  24. This is a public domain program. You are encouraged to modify this program
  25. to make it better, add new features (but try not to make the executable
  26. code much over 20K), make changes, etc.  Please send your enhancements to
  27. the Pascal/Z Users Group.  Thank you.
  28. .sp 12
  29. CP/M (r) is a trademark of Digital Research.
  30. .hd
  31. .bp 1
  32. .np
  33. .rem --------------------------------------------------------------------
  34. .hl 1 INTRODUCTION:
  35. .j
  36. .p
  37. This is a version of RUNOFF a text formatting program.
  38. It is patterened somewhat after the RUNOFF for the DEC PDP-11.
  39. The commands available are a subset of those available in the
  40. original PDP-11 version.
  41. The command formats and actions are the same as the PDP-11 version.
  42. The underlying source code program for this version is written
  43. in Pascal.
  44. .p
  45. New commands include; .MES, prints message to the console; .WAIT,  a pause
  46. that waits for operator intervention; .SF and .CF, single sheet and continuous
  47. forms control; .REM, for remarks imbedded in the text; and .OUT <n>, to allow
  48. additional control over the printed output.
  49. .rem
  50. .rem
  51. .hl 2 HOW TO USE THIS GUIDE:
  52. .p
  53. There are a few notational conventions that are used throughout this
  54. manual.
  55. .sp
  56. .nf
  57.      <>  Symbol brackets. This space should be replaced by the
  58.          item described.
  59.      []  Optional brackets.  Symbols enclosed between brackets
  60.          are optional.
  61.     ...  Repetional ellipsis.  The preceding symbol may be
  62.          repeated.
  63. .j
  64. .rem --------------------------------------------------------------------
  65. .hl 2 SOURCE FILE FORMAT:
  66. .p
  67. Using your favorite text editor you create a file containing the text of the
  68. document. Under the CP/M operating system the normal file consists of a
  69. collection of characters stored under a file name on a diskette.  The file
  70. or document is a standard ASCII text file with the RUNOFF commands
  71. imbedded in the file. All lines starting with a period are taken to be
  72. commands; only one command per line is permitted. All other lines are
  73. considered as text to be formatted. There are no case control characters as in
  74. other versions of RUNOFF. Letters are output in whatever case they appear in
  75. the source file.
  76. .rem --------------------------------------------------------------------
  77. .hl 2 CAPABILITIES:
  78. .p
  79. Text is normally justified. Justified text has additional spaces inserted
  80. between the words to make the right end of each line in a paragraph come out
  81. exactly at the right margin; Ragged Right text does not have these spaces.
  82. Justification is on by default, but may be turned off to produce ragged right
  83. text. Some users prefer ragged right, e.g. for correspondence which they wish
  84. to appear hand-typed.
  85. .p
  86. Functions are available that can turn on/off line filling and justification.
  87. .p
  88. Text is automatically split up into consecutively numbered pages. Each
  89. page has a five line header margin. The title and page number appear on the
  90. second line of the header margin. Printing of either the title or page
  91. number or both is optional.
  92. .p
  93. Section headers of up to five numbers, i.e. i.j.k.l.m, plus section title
  94. may be specified. Section numbers will be incremented automatically
  95. whenever the section header command is encountered.
  96. .p
  97. Numbered lists are available and may be nested to five levels. List
  98. elements are indented from normal text and are filled and justified if
  99. fill is enabled.
  100. .rem --------------------------------------------------------------------
  101. .hl 2 INVOKING RUNOFF UNDER THE CP/M OPERATING SYSTEM:
  102. .p
  103. RUNOFF requires an input file and directs its output to one of the
  104. following devices: list (LST:); console (CON:); disk (d:filename).
  105. .nf
  106. .ls 2
  107. .p
  108. The command to execute RUNOFF takes one of the following forms:
  109. .TI 7
  110. RUNOFF [d:]sourcefile [d:]outputfile
  111. Directs the formatted output to the disk file "outputfile" name.
  112. .TI 7
  113. RUNOFF [d:]sourcefile    or    RUNOFF [d:]sourcefile LST:
  114. Directs the formatted output to the List device.
  115. .TI 7
  116. RUNOFF [d:]sourcefile CON:
  117. Directs the formatted output to the console device for previewing.
  118. .ls 1
  119. .j
  120. .p
  121. The source file and the output file may be on the same or different disk
  122. drives.  Simply by prefixing the file name with the drive identifier causes
  123. the program to read/write the file from the specified drive.
  124. .sp
  125. .TI 7
  126. RUNOFF sourcefile b:outputfile
  127. .sp
  128. .p
  129. Will process the file "sourcefile" from the currently logged in disk drive
  130. and send the output file to a file "outputfile" on drive B:.
  131. .rem --------------------------------------------------------------------
  132. .hl 1 TEXT FORMATTING COMMANDS:
  133. .p
  134. The following commands will be recognized if they are at the beginning of a
  135. line started with a period. Any line in the source file beginning with a period
  136. is assumed to be one of these commands. If it is not, an error diagnostic will
  137. be displayed on the console and the line will be ignored. Some commands take
  138. one or more decimal
  139. numbers following. These must be separated from the command by at least one
  140. space. RUNOFF commands take on one of the following forms:
  141. .nf
  142. .sp
  143. .ti 20
  144.  .AA
  145. .ti 20
  146.  .AA n
  147. .ti 20
  148.  .AA text
  149. .ti 0
  150. .sp
  151. where AA is a keyword and n is a value {which may be optional} depending on
  152. the command. The keyword may be in upper or lower case. A space is required
  153. before numeric or textual values.
  154. .rem
  155. .hl 2 INITIAL VALUES:
  156. .j
  157. .p
  158. Initial numeric values are assigned to various RUNOFF commands as follows:
  159. .nf
  160. .sp
  161.         .lm  =  0      left margin
  162.         .rm  = 60      right margin
  163.         .ls  =  1      line spacing
  164.         .p   =  5      paragraph
  165.         .cnp =  0      conditional new page
  166.         .pl  = 60      page length
  167. .rem
  168. .np
  169. .rem --------------------------------------------------------------------
  170. .hl 1 RUNOFF COMMANDS:
  171. .p
  172. The commands as listed here in alphabetical order.
  173. .sp 5
  174.        .BP n         Begin Page
  175.        .BR           Break
  176.        .C n          Center
  177.        .CF           Continuous Forms
  178.        .CNP n        Conditional New Page
  179.        .ELS          End Current List
  180.        .FI           Filling On
  181.        .HD           Header title on
  182.        .HE text      Header text
  183.        .HL n text    Heading Level and section header text
  184.        .J            Justify On
  185.        .LE           List element
  186.        .LJ           Left Justify
  187.        .LM n         Left Margin
  188.        .LS n         Line Spacing
  189.        .MES text     Text message to console
  190.        .NBP          No Page Numbering
  191.        .NF           No Fill
  192.        .NJ           No Justify
  193.        .NL n         Numbered list
  194.        .NP           New Page
  195.        .NPR          No Period
  196.        .OUT n        output control values
  197.        .P n m w      Paragraph Break
  198.        .PL n w       Page Length
  199.        .PR           Period flag
  200.        .REM text     Remark
  201.        .RM n         Right Margin
  202.        .SF           Single Forms
  203.        .SK n         Skip n * Line Spacing lines
  204.        .SP n         Space n Lines
  205.        .TI n         Temporary Indent n
  206.        .WAIT         Pause
  207. .np
  208. .hl 2 MARGINS:
  209. .nf
  210. .sp
  211. .ti 10
  212. LEFT MARGIN                    .LM <column>
  213. .j
  214. .p
  215. The LM command sets the margin to <column>  and causes a break.
  216. <column> must be less than the right margin but not less than 0.
  217. The default setting is 0. If indenting, the amount
  218. of any indent plus the left margin must not be less than 0.
  219. .nf
  220. .sp
  221. .ti 10
  222. RIGHT MARGIN                   .RM <COLUMN>
  223. .j
  224. .p
  225. The RM command sets the right margin to <column> and causes a break.
  226. <column> must be greter than the left margin. The default setting is 60.
  227. .p
  228. The number of characters on a line will be equal to or less than the right
  229. margin minus the left margin minus any indenting which may be specified. Even
  230. if filling has been disabled, lines will not be extended past the right margin.
  231. .rem
  232. hl 2 FILLING:
  233. .nf
  234. .sp
  235. .ti 10
  236. FILL                           .FI
  237. .j
  238. .p
  239. The FI command causes a break and specifies filling of following output
  240. lines. Justification is specified by the last setting of the .J or .NJ
  241. commands (DEFAULT=NO).
  242. .nf
  243. .sp
  244. .ti 10
  245. NO FILL                        .NF
  246. .j
  247. .p
  248. The NF command causes a break and prevents filling of all following output
  249. lines. Also, justification is disabled.
  250. .rem --------------------------------------------------------------------
  251. .hl 2 JUSTIFYING:
  252. .nf
  253. .sp
  254. .ti 10
  255. JUSTIFY                        .J
  256. .j
  257. .p
  258. The J command causes a break and forces justifiction of subsequent output
  259. lines (DEFAULT=ON).
  260. .nf
  261. .sp
  262. .ti 10
  263. LEFT JUSTIFY                   .LJ
  264. .j
  265. .p
  266. The LJ command causes a break and produces what is commonly called
  267. "ragged right" text.  Lines will be filled with words but justification is
  268. turned off. If a word will not fit on the current line it will be placed in
  269. the next line.
  270. .nf
  271. .sp
  272. .ti 10
  273. NO JUSTIFY                     .NJ
  274. .j
  275. .p
  276. The NJ causes a break and terminates justification of following lines of text.
  277. .rem
  278. .hl 2 CENTERING:
  279. .nf
  280. .sp
  281. .ti 10
  282. CENTER                         .C <count>
  283. .j
  284. .p
  285. The C command causes a break after which it centers the next <count>
  286. lines in the source file. Center will always center at least one line. The
  287. centering is between the left and right margins.
  288. .rem --------------------------------------------------------------------
  289. .hl 2 PARAGRAPHS:
  290. .nf
  291. .sp
  292. .ti 10
  293. PARAGRAPH                      .P [<indent> <skip> <cnp>]
  294. .rem
  295. .hl 3 COMMAND FORM
  296. .sp
  297.         (a)      .p <indent>
  298.         (b)      .p <indent> <skip>
  299.         (c)      .p <indent> <skip> <cnp>
  300. .j
  301. .p
  302. The P command causes a break, inserts (SP+1)/2 blank lines and indents
  303. the next line of text <indent> positions. The initial value for "indent"
  304. is 5 spaces. If command form (a) is used then indenting will take on
  305. the new value of <indent>. If command form (b) is used then the vertical
  306. spacing between paragraphs is set to <skip>.  If command form (c) is used
  307. then <cnp> sets an argument for a 'Conditional New Page' command just
  308. before the paragraph is begun.
  309. .nf
  310. .sp
  311. .ti 10
  312. TEMPORARY INDENT               .TI +-<count>
  313. .j
  314. .p
  315. The TI command causes a break and sets the next line to begin <count>
  316. spaces to the right of the left margin. <count> may be negative to cause the
  317. line to begin to the left of the left margin, it effectively created an
  318. "outdent" command. TI works with the LM command, for example:
  319. .nf
  320. .sp
  321.   .j
  322.   .lm 12
  323.   .ti -10
  324.   TEMPORARY INDENT
  325.   The TI command causes a break and sets the next line to begin
  326.   <count> spaces to the right of the left margin. <count> may
  327.   be negative to cause the line to begin to the left of the left
  328.   margin, it effectively created an "outdent" command.
  329.   .sp
  330. .sp
  331. would produce the following output:
  332. .j
  333. .sp
  334. .lm 12
  335. .ti -10
  336. TEMPORARY INDENT:
  337. The TI command causes a break and sets the next line to begin <count>
  338. spaces to the right of the left margin. <count> may be negative to cause the
  339. line to begin to the left of the left margin, it effectively created an
  340. "outdent" command.
  341. .sp
  342. .lm 1
  343. .ti 0
  344. .rem --------------------------------------------------------------------
  345. .hl 2 TABS:
  346. .j
  347. .p
  348. Unfortunately at the present time RUNOFF does not recognize the tab
  349. character and there is no way to set/reset tab stops.  Do not use the
  350. tab character in a RUNOFF file.
  351. .rem
  352. .hl 2 LINE SPACING:
  353. .nf
  354. .sp
  355. .ti 10
  356. SKIP                           .SK <lines>
  357. .j
  358. .p
  359. The SK command causes a break after which [ N * (line spacing) ] lines are
  360. left blank. If the skip would leave room for less than two printed lines on
  361. the page (i.e. if there are less than [ N + 2 * (line spacing) ] lines left),
  362. the output is advanced to the top of the next page. If the output is
  363. currently at the top of a new page no lines are skipped.
  364. .nf
  365. .sp
  366. .ti 10
  367. SPACE                          .SP <lines>
  368. .j
  369. .p
  370. The SP command inserts <lines> inton the output file. SPACE is to be used
  371. where space is to be left independent of the line spacing;
  372. SKIP is to be used where the space should be relative to the line spacing. If
  373. the output is currently at the top of a new page no lines are skipped.
  374. .nf
  375. .sp
  376. .ti 10
  377. BREAK                          .BR
  378. .j
  379. .p
  380. The BR command causes a break, i.e. the current line will be output with
  381. no justification, and the next word of the source text will be placed at the
  382. beginning of the next line according to the current line spacing.
  383. .rem --------------------------------------------------------------------
  384. .hl 1 PAGINATION COMMANDS:
  385. .rem
  386. .hl 2 HEADINGS AND FOOTINGS:
  387. .nf
  388. .sp
  389. .ti 10
  390. HEADER                         .HE <text>
  391. .j
  392. .p
  393. The HE command takes the remaining text on the line as the title.  This
  394. text will appear at the top of all subsequent pages, aligned with the left
  395. margin on the second line of the page.  The title is initially blank.
  396. .p
  397. The Header Margin is 3 by default and the Top Margin is 5 by default.  These
  398. values are presently locked into the program, however, since the source
  399. code is available it shouldn't be much trouble to make these margin settings
  400. user selectable.
  401. .nf
  402. .sp
  403. .ti 10
  404. HEAD Command                   .HD
  405. .j
  406. .p
  407. The HD command enables the printing of title and page number at the top of
  408. each new page.
  409. .nf
  410. .sp
  411. .ti 10
  412. No Head Command                .NHD
  413. .j
  414. .p
  415. The NHD command turns off the printing of title and page number at
  416. the top of each new page.
  417. .rem --------------------------------------------------------------------
  418. .hl 2 PAGE NUMBERING:
  419. .nf
  420. .sp
  421. .ti 10
  422. BEGIN PAGE                     .BP <number>
  423. .j
  424. .p
  425. The BP command turns on page numbering at page <number>.
  426. .nf
  427. .sp
  428. .ti 10
  429. NO PAGE NUMBERING              .NBP
  430. .j
  431. .p
  432. The NBP or omit page numbering command turns off page numbering.
  433. Pages will continue to be counted so that the normal page number will
  434. reappear if page numbering is resumed.
  435. .rem --------------------------------------------------------------------
  436. .hl 2 PAGINATION:
  437. .nf
  438. .sp
  439. .ti 10
  440. NEW PAGE                       .NP
  441. .j
  442. .p
  443. The NP command causes a break and an advance to a new page. It does
  444. nothing if the current page is empty.
  445. .nf
  446. .sp
  447. .ti 10
  448. CONDITIONAL NEW PAGE           .CNP <lines>
  449. .j
  450. .p
  451. The CNP PAGE command causes a break followed by a conditional
  452. page advance. If there are <lines> or more lines remaining on the current page
  453. then no advance is made, otherwise, the page is advanced as in the NP
  454. command. This command should be used to ensure that the following <lines>
  455. are all output on the same page.
  456. .nf
  457. .sp
  458. .ti 10
  459. LINE SPACING                   .LS <linespacing>
  460. .j
  461. .p
  462. The LS command causes a break after which the line spacing will be
  463. set to <linespacing>.  <linespacing> must be within the range 1 to 5. Single
  464. spacing is 1, double spacing is 2.  Default is single spacing.
  465. .nf
  466. .sp
  467. .ti 10
  468. PAGE LENGTH                    .PL <length> [<width>]
  469. .rem
  470. .hl 3 COMMAND FORM
  471. .sp
  472.           (a) .pl <length>
  473.           (b) .pl <length> <width>
  474. .j
  475. .p
  476. The PL command specifies the width of the page in columns and the
  477. length of the page in lines.  If values other than the default values are
  478. used, then this command should appear before any of the margin or heading
  479. commands.  Whenever RUNOFF begins printing a new page, the line count is
  480. initialized to a value of one.  As each line is printed the line count is
  481. incremented.  When the page length is reached, a sheet of paper is ejected
  482. from the printer and a new page is begun.  <length> is the number of lines on
  483. an entire page, including the top margin of 5 lines. The paper length must
  484. match the forms in use. The default is 60 lines or 11 inches. The <width> sets
  485. the paper width in columns; it acts like the RIGHT MARGIN command.
  486. .rem
  487. .hl 2 PRINTER CONTROL:
  488. .nf
  489. .sp
  490.         .OUT <value1> [<value2> ... <value8>]
  491. .j
  492. .p
  493. The OUT command allows direct access to printer controls.  <value> is the
  494. decimal value of the control code.  i.e. if the command to set your
  495. printer to 12 cpi is say escape + "A" then you would enter the command
  496. line as:
  497. .nf
  498. .sp
  499.         .OUT 27 65
  500. .sp
  501. .j
  502. .p
  503. Notice that the values are separated by spaces.  The maximum number of
  504. arguments that may be output is eight.
  505. .nf
  506. .sp
  507.         .WAIT
  508. .j
  509. .p
  510. The WAIT command puts the program in a pause mode awaiting for any input
  511. from the operator at the console.
  512. .rem
  513. .hl 2 REMARKS AND MESSAGE DISPLAY:
  514. .nf
  515. .sp
  516.         .REM [text]
  517. .j
  518. .p
  519. The REMARKS command may be used to separate paragraphs, put comments in
  520. the text for later use.
  521. .nf
  522. .sp
  523.         .MES <text>
  524. .j
  525. .p
  526. The MES or MESSAGE command sends the text string to the console for viewing.
  527. This command can be particularly useful in combination with the WAIT command.
  528. .rem
  529. .hl 2 MISCELLANEOUS:
  530. .nf
  531. .sp
  532. .ti 10
  533. PERIOD                         .PR
  534. .j
  535. .p
  536. The PERIOD command causes two spaces to be inserted after punctuation
  537. marks for proper spacing between sentences. The punctuation marks
  538. are: '.', '?', and '!'.
  539. .nf
  540. .sp
  541. .ti 10
  542. SINGLE SHEET                   .SF
  543. .j
  544. .p
  545. The SINGLE SHEET command causes the program to pause after each page allowing
  546. the operator time to change the paper in the printer.
  547. .nf
  548. .sp
  549. .ti 10
  550. CONTINUOUS FORMS               .CF
  551. .j
  552. .p
  553. The CONTINUOUS FORMS command sets the program up to use continuous paper.
  554. This is the default value.
  555. .nf
  556. .sp
  557. .ti 10
  558. HEADING LEVEL                  .HL <level> <text>
  559. .j
  560. .p
  561. The HEADING LEVEL command starts a section at the level specified by <level>
  562. and takes the text string as the header.  <level> must be specified as 1, 2,
  563. 3, 4, or 5.  The sections are incremented by one automatically and the number
  564. is output in the form of i.j.k.l.m.  This command acts as a:
  565. .nf    
  566.         .BREAK .TEST PAGE 9 .BLANK 3
  567. followed by the section number, two spaces and the section name.
  568. .rem
  569. .hl 2 LIST ELEMENTS:
  570. .nf
  571. .sp
  572. .ti 10
  573. NUMBERED LIST                  .NL <lines>
  574. .j
  575. .p
  576. The NUMBERED LIST command causes a break and starts a numbered list.
  577. <lines> is the number of blank lines left between list elements.  The first
  578. list is indented 9 spaces from the left margin; subsequent nested lists are
  579. indented 4 more spaces.  There may be up to 5 levels of nested numbered lists.
  580. .nf
  581. .sp
  582. .ti 10
  583. LIST ELEMENT                   .LE
  584. .j
  585. .p
  586. The LIST ELEMENT command causes a break and starts a new list element.
  587. Elements are numbered sequentially and the numbers have a negative indent
  588. from the body of the list element.
  589. .nf
  590. .sp
  591. .ti 10
  592. END LIST                       .ELS
  593. .j
  594. .p
  595. The END LIST command causes a break and terminates the current list by
  596. re-adjusting the left margin.
  597. .rem
  598. .hl 1 EXAMPLES:
  599. .sp
  600. Following are examples of the effects of different commands.  After the
  601. examples is the section of RUNOFF source input that produced the
  602. examples.
  603. .rem
  604. .hl 1 FIRST LEVEL HEADER
  605. .nf
  606. .p
  607. This is unfilled and unjustified text.
  608. It comes out just as you
  609. put
  610. it in.  It can have paragraph spacing and indenting with
  611. the .P command if you like.  It doesn't line up with
  612. the right margin but it will never be allowed to extend beyond the right
  613. margin; the excess will be put on the next line. This command may be used
  614. for columnar work, tables, and address lists.
  615. For example:
  616.   .nf
  617.   South Fork Hospital
  618.   12 South Bend Ave.
  619.   Pine Blufs, IN 12345
  620.   .sp 3
  621. .LJ
  622. .hl 2 SECOND LEVEL HEADER
  623. .p
  624. This is left justified text. The line contains as many full words as will
  625. fit without running over the right margin. When FILL is enabled the PERIOD
  626. and NOPERIOD options come into effect. PERIOD inserts two spaces after the
  627. end-of-sentence punctuation; NOPERIOD inserts one blank.
  628. .rem
  629. .hl 3 THIRD LEVEL HEADER
  630. .j
  631. .p
  632. This is justified text. The line is filled with words and right justified by
  633. inserting spaces throughout the line. The blanks are added alternately on the
  634. left and right sides of the line; this is to avoid "rivers" of blank space
  635. running down the page. Since this program does not hyphenate words there may
  636. occasionally be lines with a large number of inserted blanks.
  637. .rem
  638. .hl 4 FOURTH LEVEL HEADER
  639. .p
  640. It should be noted that SKIP and SPACE have no effect at the top of a new
  641. page.  This is a bit inconvenient if, for example, you want to create a
  642. title page with a title block spaced part way down the page.  You can get
  643. around this problem by doing the following:
  644. .nf
  645. .sp
  646.    .NHD        -TURN OFF PAGE HEADER
  647.    .NF         -TURN OFF FILLING
  648.                -INSERT ONE BLANK LINE TO GET OFF TOP OF PAGE
  649.    .SP n       -SPACE DOWN n LINES
  650.    .C          -CENTER TITLE LINE(s)
  651.    this is my title line
  652.    .HD         -RESET FOR REGULAR PROCESSING
  653.    .BP 1       -BEGIN PAGE NUMBERING WITH PAGE 1
  654.    .FI         -TURN FILL ON
  655.    .NP         -NEW PAGE
  656. .rem
  657. .fi
  658. .hl 5 FIFTH LEVEL HEADER
  659. .p
  660. This is as far as you can go for header.
  661. .hl 4 BACK TO FOURTH LEVEL HEADER
  662. .hl 3 BACK TO THIRD LEVEL HEADER
  663. .hl 1 BACK TO FIRST LEVEL HEADER
  664. .hl 2 LISTS - NUMBERED
  665. .nl 1
  666. .le
  667. Here we have the first level of list.
  668. .nl 1
  669. .le
  670. The next level.
  671. .le
  672. A second element.
  673. .nl 1
  674. .le
  675. Third level list.
  676. .le
  677. And so on,
  678. .le
  679. And so on for two more levels of indenting.
  680. .els
  681. .els
  682. Back out to the outermost list.
  683. .els
  684. .np
  685. .rem --------------------------------------------------------------------
  686. .hl 1 LITERAL TEXT:
  687. .p
  688. Following is the literal source text that produced the above. It has been
  689. offset by one space so that the commands will be processed as normal text.
  690. .nf
  691. .rm 80
  692. .sp
  693.  .rem
  694.  .hl 1 FIRST LEVEL HEADER
  695.  .nf
  696.  .p
  697.  This is unfilled and unjustified text.
  698.  It comes out just as you
  699.  put
  700.  it in.  It can have paragraph spacing and indenting with
  701.  the .P command if you like.  It doesn't line up with
  702.  the right margin but it will never be allowed to extend beyond the right
  703.  margin; the excess will be put on the next line. This command may be used
  704.  for columnar work, tables, and address lists.
  705.  For example:
  706.    .nf
  707.    South Fork Hospital
  708.    12 South Bend Ave.
  709.    Pine Blufs, IN 12345
  710.    .sp 3
  711.  .LJ
  712.  .hl 2 SECOND LEVEL HEADER
  713.  .p
  714.  This is left justified text. The line contains as many full words as will
  715.  fit without running over the right margin. When FILL is enabled the PERIOD
  716.  and NOPERIOD options come into effect. PERIOD inserts two spaces after the
  717.  end-of-sentence punctuation; NOPERIOD inserts one blank.
  718.  .rem
  719.  .hl 3 THIRD LEVEL HEADER
  720.  .j
  721.  .p
  722.  This is justified text. The line is filled with words and right justified by
  723.  inserting spaces throughout the line. The blanks are added alternately on the
  724.  left and right sides of the line; this is to avoid "rivers" of blank space
  725.  running down the page. Since this program does not hyphenate words there may
  726.  occasionally be lines with a large number of inserted blanks.
  727.  .rem
  728.  .hl 4 FOURTH LEVEL HEADER
  729.  .p
  730.  It should be noted that SKIP and SPACE have no effect at the top of a new
  731.  page.  This is a bit inconvenient if, for example, you want to create a
  732.  title page with a title block spaced part way down the page.  You can get
  733.  around this problem by doing the following:
  734.  .nf
  735.  .sp
  736.     .NHD        -TURN OFF PAGE HEADER
  737.     .NF         -TURN OFF FILLING
  738.                 -INSERT ONE BLANK LINE TO GET OFF TOP OF PAGE
  739.     .SP n       -SPACE DOWN n LINES
  740.     .C          -CENTER TITLE LINE(s)
  741.     title line text here
  742.     .HD         -RESET FOR REGULAR PROCESSING
  743.     .BP 1       -BEGIN PAGE NUMBERING WITH PAGE 1
  744.     .FI         -TURN FILL ON
  745.     .NP         -NEW PAGE
  746.  .rem
  747.  .fi
  748.  .hl 5 FIFTH LEVEL HEADER
  749.  .p
  750.  This is as far as you can go for header.
  751.  .hl 4 BACK TO FOURTH LEVEL HEADER
  752.  .hl 3 BACK TO THIRD LEVEL HEADER
  753.  .hl 1 BACK TO FIRST LEVEL HEADER
  754.  .hl 2 LISTS - NUMBERED
  755.  .nl 1
  756.  .le
  757.  Here we have the first level of list.
  758.  .nl 1
  759.  .le
  760.  The next level.
  761.  .le
  762.  A second element.
  763.  .nl 1
  764.  .le
  765.  Third level list.
  766.  .le
  767.  And so on,
  768.  .le
  769.  And so on for two more levels of indenting.
  770.  .els
  771.  .els
  772.  Back out to the outermost list.
  773.  .els
  774. .np
  775. .rem --------------------------------------------------------------------
  776. .nf
  777. .rm 80
  778. .ls 2
  779. .c
  780. APPENDIX A
  781. .c
  782. SUMMARY OF RUNOFF COMMANDS
  783. .ls 1
  784. Command
  785. Format          Function
  786. -------         --------------------------------------------------------
  787. .sp
  788.   .bp <number>  Begin page numbering at page <number>.
  789.   .br           Break - Stop filling and start a new line.
  790.   .c <count>    Center next <count> lines. Default=1.
  791.   .cf           Continuous Forms. Default=ON.
  792.   .cnp <lines>  Conditional New Page.  Starts a new page if there
  793.                 are less then <lines> lines remaining.
  794.   .els          Terminate the current list.
  795.   .fi           Set Line Filling On.
  796.   .hd           Sets flag to turn on printing of header title and page #.
  797.   .he <text>    Set header title to text.
  798.   .hl <level> <text>
  799.                 Set heading level and section header text.
  800.   .j            Justify lines by blank filling. Default=ON.
  801.   .le           Starts a new list element.
  802.   .lj           Left Justify lines. Produces "ragged right" lines.
  803.   .lm <c>       Set left margin to column <c>.
  804.   .ls <n>       Set line spacing to <n>. Default=1; Double spacing=2.
  805.   .nl <lines>   Starts a numbered list.
  806.   .mes <text>   Sends <text> message to console.
  807.   .nbp          Terminate page numbering.
  808.   .nf           Terminate Filling Lines.
  809.   .nj           No Justify - justify off.
  810.   .np           New Page.
  811.   .npr          Terminate spacing sentences.
  812.   .out <value1> [<value2> ... <value8>]
  813.                 Directly output control values to the printer device.
  814.   .p [<indent> <skip> <cnp>]
  815.                 Paragraph Break.
  816.                   <indent> = sets paragraph indenting spaces.
  817.                   <skip>   = sets vertical spacing between paragraphs.
  818.                   <cnp>    = sets argument for conditional new page.
  819.   .pl <lines> [<width>]
  820.                 Set Page Length to <lines>.
  821.                 Set right margin to <width>.
  822.   .pr           Period flag, set sentences spaced by 2 chars.
  823.   .rem [text]   Remark. Any comments may be placed on a remark line.
  824.   .rm <c>       Set right margin to column <c>.
  825.   .sf           Single Forms. Pause for operator intervention between pages.
  826.   .sk <lines>   Skips <lines> * (line spacing) lines.
  827.   .sp <lines>   Space <lines> lines exactly.
  828.   .ti +-<count> Temporary Indent <count> spaces.
  829.                   <count> may be negative for outdent (not less than 0)
  830.   .wait         Force program to wait for operator intervention.
  831. .rem --------------------------------------------------------------
  832. .np
  833.