|
|
1.1 ! root 1: |make(rp) ! 2: ! 3: |insert(monk.mac) ! 4: ! 5: |comment(VOL2HEADER)|set_counter(page 239-1)|set_string(page_headers "'''")|set_string(even_headers "'Typing Documents on the UNIX System: Using Monk 0.6''\f(NImonk\fP'")|set_string(odd_headers "'\f(NImonk\fP''Typing Documents on the UNIX System: Using Monk 0.6'")|set_string(even_footers "_\\nP__UNIX Papers_")|set_string(odd_footers "'Research Tenth Edition''\\nP'") ! 6: ! 7: |environment(cwfigure; ! 8: verbatim on, file.information, line.spacing 1, ! 9: fill off, size -2, space -2, font cw, blank.lines -1; ! 10: blank.lines -1, SPACE) ! 11: |comment<summary: cwfigure (a constant-width figure)> ! 12: ! 13: |environment(computeroutput; ! 14: verbatim on, file.information, line.spacing 1, ! 15: fill off, size -1, space -1, font cw, blank.lines -1, ! 16: tab.stops "\w' 'u 2u*\w' 'u 3u*\w' 'u 4u*\w' 'u 5u*\w' 'u 6u*\w' 'u 7u*\w' 'u 8u*\w' 'u 9u*\w' 'u 10u*\w' 'u 11u*\w' 'u"; ! 17: ! 18: tab.stops, blank.lines -1, SPACE) ! 19: ! 20: |author(name "S. L. Murrel", initials SLM, location MH, department 11229, ! 21: extension x5772, room 2C-578) ! 22: ! 23: |author(name "T. J. Kowalski", initials TJK, location MH, department 11229, ! 24: extension x2771, room 2C-568) ! 25: ! 26: |document(number 11229-851210-11TMS, file_case 25952, work_program 311401-2299) ! 27: ! 28: |document(number 11229-851210-11TMS, file_case 25952, work_program 311401-2199) ! 29: ! 30: |date(December 10, 1985) ! 31: ! 32: |title(Typing Documents on the |small(UNIX) System: ! 33: Using Monk 0.6) ! 34: ! 35: |insert(monk.cite) ! 36: ! 37: |begin(abstract) ! 38: |i<Monk> is a text-formatting program that produces high-quality ! 39: typeset output. ! 40: This paper, printed using |i<monk>, ! 41: describes how to produce letters, memos, release papers, ! 42: and technical memoranda complete with cover sheets. ! 43: We provide extensive details on the three easy steps ! 44: needed to prepare a document with |i<monk>: ! 45: ! 46: |begin(number_list) ! 47: ! 48: |item ! 49: Use the |i<monksample> command to get a copy of a sample document. ! 50: ! 51: |item ! 52: Edit the copy, replacing the sample author, document information, ! 53: and the text body. ! 54: Add sections, appendices, captioned figures, tables, and equations. ! 55: Select the document style: ! 56: character size and type, page width and length, line spacing, ! 57: and number of columns. ! 58: ! 59: |item ! 60: Format the document using the |i<monk> command, ! 61: sending the output to a 5620 or 630MTG ! 62: terminal or a printer. ! 63: |i<Monk> will automatically invoke ! 64: the table, picture, equation, graph, ! 65: |comment{index,} ! 66: and reference pre-processors in the correct order. ! 67: ! 68: |end(number_list) ! 69: ! 70: |end(abstract) ! 71: ! 72: |titlebox ! 73: ! 74: |style(two_column) ! 75: ! 76: |unnumbered_section(Introduction) ! 77: ! 78: Preparing any document involves positioning words and figures on each page. ! 79: Using a typewriter, ! 80: the margins, line spacing, and tab positions are selected by moving levers. ! 81: Text is positioned by moving the sheet of paper left, right, up or down. ! 82: Using a computer, the text is interspersed with commands that tell a ! 83: formatting program what to do. ! 84: |p ! 85: |i<Monk> is a new package of commands for producing ! 86: |s(AT&T) letters, memos, technical memoranda, and their cover sheets. ! 87: This paper will enable you to prepare documents using ! 88: |i<monk>.|reference<monk high-level text compiler>|reference<monk database> ! 89: |reference<using monk 1985> ! 90: You need to know how to log onto a computer and how to use an editor. ! 91: If you don't, see the |small(UNIX) Text Editing and Phototypesetting ! 92: Starter Package.|reference(Editing Phototypesetting Starter Package) ! 93: ! 94: |section(Mixing Text and Commands) ! 95: ! 96: Using any text editor, ! 97: type normally. ! 98: However, ! 99: instead of skipping a line before paragraphs ! 100: type |cw(|sp(|)paragraph) or |cw(|sp(|)p). ! 101: |index(paragraphs) ! 102: This command will produce a blank line. ! 103: To indent, ! 104: use |cw<|sp(|)p(i)> or |cw<|sp(|)paragraph(indented)>; ! 105: to number, ! 106: use |cw<|sp(|)p(n)> or |cw<|sp(|)paragraph(num|sp(hyphenation)bered)>. ! 107: |p ! 108: There are other commands that let you select document style and character type ! 109: (e.g., double spacing and italics) ! 110: and include various sections and displays (e.g., chapters and tables). ! 111: ! 112: |section(Command Scope) ! 113: ! 114: |comment{|index(command delimiters)|index(italics)} ! 115: ! 116: Using |i<monk>, ! 117: the sentence ``Italicize the words in |sp(|s)italics(parentheses)'' produces ! 118: ``Italicize the words in |i(parentheses).'' ! 119: All |i<monk> commands begin with the character `|sp(|s)'. ! 120: The command |cw(|sp(|)italics) selects the operation and ! 121: the parentheses delimit the words to be italicized. ! 122: There are seven pairs of delimiters: ! 123: ! 124: |begin(center) ! 125: |cw<(>...|cw<)>, |cw([)...|cw(]), |cw(<)...|cw(>), |cw({)...|cw(}), |cw(")...|cw("), |cw(')...|cw('), |cw(`)...|cw(') ! 126: |end(center) ! 127: ! 128: |p ! 129: Always choose delimiters so that the closing delimiter does not appear in the ! 130: text. ! 131: ``Italicize the equation |sp(|s)i(a = (b + c) / number)'' produces ! 132: ``Italicize the equation |i(a = (b + c) / number).'' ! 133: The closing delimiter ')' is found after the letter `c', ! 134: so that the rest of the equation is not italicized. ! 135: The input ``Italicize the equation |sp(|s)i<a = (b + c) / number>'' will ! 136: correctly italicize the entire equation, |i<a = (b + c) / number>. ! 137: In contrast, when |i<monk> commands are inside other |i<monk> commands, ! 138: the delimiter pairs are not ambiguous. ! 139: ``Italicize and shrink this |sp(|s)small(|sp(|s)i(word) but only shrink the rest)'' ! 140: produces ! 141: ``Italicize and shrink this |small(|i(word) but only shrink the rest).'' ! 142: |p ! 143: There is a second form of delimiter |sp(Em dash) ! 144: when a command operates on a long text segment, ! 145: the commands |cw(|sp(|)begin) and |cw(|sp(|)end) ! 146: are used instead of brackets or quotes. ! 147: The text fragment ! 148: ! 149: |begin(cwfigure) ! 150: |sp(|s)begin(italics) ! 151: Four score and seven years ago our fathers ! 152: brought forth to this continent a new ! 153: nation, conceived in liberty and ... ! 154: |sp(|s)end(italics) ! 155: |end(cwfigure) ! 156: ! 157: appears in the final document as ! 158: ! 159: |begin(italics) ! 160: Four score and seven years ago our fathers brought forth to this continent ! 161: a new nation, conceived in liberty and ... ! 162: |end(italics) ! 163: ! 164: The commands |cw(|sp(|)begin) and |cw(|sp(|)end) delimit ! 165: the text operated on by the ! 166: command |cw(|sp(|)italics). ! 167: ! 168: |section(Document Commands) ! 169: ! 170: This section describes the commands that are specific to formatting ! 171: four types of documents: ! 172: letters, |small(AT&T) Bell Laboratories memoranda, technical memoranda, ! 173: and release papers. ! 174: ! 175: |environment(ret_address; ! 176: verbatim on, indent \n(U0u+\n(O0u-18n, fill off, here on; ! 177: minimum.lines) ! 178: ! 179: |environment(date; ! 180: verbatim on, indent \n(U0u+\n(O0u-18n, fill off, here on; ! 181: minimum.lines) ! 182: ! 183: |environment(address; ! 184: verbatim on, fill off, here on, minimum.lines; ! 185: minimum.lines) ! 186: ! 187: |environment(greeting; ! 188: minimum.lines 2; ! 189: minimum.lines) ! 190: ! 191: |environment(body; ! 192: minimum.lines, fill on; ! 193: minimum.lines) ! 194: ! 195: |environment(closing; ! 196: minimum.lines 2, indent \n(U0u+\n(O0u-18n; ! 197: minimum.lines) ! 198: ! 199: |environment(signature; ! 200: verbatim on, minimum.lines 2, indent \n(U0u+\n(O0u-18n;) ! 201: ! 202: |subsection(Typesetting a Letter) ! 203: ! 204: For a letter, the input should begin as follows: ! 205: ! 206: |begin(cwfigure) ! 207: |sp(|)make(letter) ! 208: |sp(|)begin(ret_address) ! 209: |sp(|)s(AT&T) Bell Labs 2C-501 ! 210: Murray Hill, N. J. 07974 ! 211: |sp(|)end(ret_address) ! 212: |end(cwfigure) ! 213: ! 214: The first line specifies that the standard format for a letter should be used. ! 215: Then the return address, labeled |cw(ret_address), is delimited ! 216: by |cw(|sp(|)begin) and |cw(|sp(|)end) commands. ! 217: The formatter skips a couple of lines, indents, single spaces the address ! 218: itself, skips more lines, and then returns to the left hand margin ! 219: producing: ! 220: ! 221: |begin(figure) ! 222: |begin(ret_address) ! 223: |s(AT&T) Bell Labs 2C-501 ! 224: Murray Hill, N. J. 07974 ! 225: |end(ret_address) ! 226: |end(figure) ! 227: ! 228: The return address itself is not modified. ! 229: If the city, state, and zip code are typed on separate lines in the input file, ! 230: they will appear the same way in the final output: ! 231: ! 232: |begin(figure) ! 233: |begin(ret_address) ! 234: |s(AT&T) Bell Labs 2C-501 ! 235: Murray Hill ! 236: N. J. ! 237: 07974 ! 238: |end(ret_address) ! 239: |end(figure) ! 240: ! 241: |p ! 242: A letter consists of a sequence of standard groups: ! 243: a return address, date, recipient's address, greeting, body, ! 244: closing, and signature. ! 245: Accordingly, ! 246: the following prototype letter is available. ! 247: ! 248: |begin(cwfigure) ! 249: |insert(samples/letter.nx) ! 250: |end(cwfigure) ! 251: ! 252: |p ! 253: To copy this letter into a file named |cw<myfile> in your current directory, ! 254: type the |small(UNIX) command |cw(monksample letter > myfile). ! 255: Using this prototype, it is not necessary for you to remember that ! 256: the label for return address is |cw(ret_address). ! 257: You need only recognize the English-like descriptions and ! 258: replace the sample text as appropriate. ! 259: Although any text editor will suffice, the large display of a visual editor ! 260: allows you to glance at the file and spot sample text. ! 261: |p ! 262: It is convenient to tailor the samples by entering your ! 263: address, closing, and signature and then saving the modified file. ! 264: This new file can then be used for all your letters simply ! 265: by adding an appropriate greeting, the recipient's address, and the body. ! 266: If you prepare letters for more than one person, you might want to maintain ! 267: a directory of tailored prototypes rather than begin with the ! 268: standard |i<monk> sample. ! 269: ! 270: |begin(cwfigure) ! 271: |insert(samples/tailor.nx) ! 272: |end(cwfigure) ! 273: ! 274: |p ! 275: When installed, ! 276: |i<monk> is configured to use local printers as standard output ! 277: devices.|dagnote{Specify the printer that you have permission to use ! 278: by defining |s<LPDEST> in your |i<.profile>, ! 279: e.g., |cw<LPDEST=crete; export LPDEST>.} ! 280: You will need to talk to someone using or maintaining your computer system ! 281: to find out what and where your local standard printer is. ! 282: |p ! 283: To run off this memo on the standard printing device, ! 284: type |cw(monk myfile). ! 285: To send your output to a printing device other than the standard, ! 286: use the |cw<|sp(minus)S>|i<dest> and |cw<|sp(minus)T>|i<font> options. ! 287: To preview postscript output on a |s(AT&T) 5620 or 630MTG terminal, type ! 288: |cw(monk |sp(minus)Tpost |sp(minus)Sproof myfile). ! 289: Devices and fonts will vary with your location, ! 290: but commonly available types include: ! 291: ! 292: |begin(figure) ! 293: |begin(table) ! 294: center; ! 295: c1FCW lfB ! 296: l1FCWp-2 l. ! 297: |sp(minus)S|i(dest) Sends Output To Device |i(dest) ! 298: .sp .25 ! 299: _ ! 300: .sp .25 ! 301: |sp(minus)Sapsend Linotronic 200P, see |i(apsend)(1) ! 302: |sp(minus)Sd202 Mergenthaler Linotronic 202, see |i(d202)(1) ! 303: |sp(minus)Si300 Spooling for |s(EXPTOOLS), see |i(i300)(1) ! 304: |sp(minus)Slp Spooling mechanism, see |i(lp)(1) (default) ! 305: |sp(minus)Slpr Spooling at Allentown, see |i(lpr)(1) ! 306: |sp(minus)Sproof 5620 or 630MTG terminal, see |i(proof)(9.1) ! 307: |sp(minus)Sprt Spooling at computer centers, see |i(prt)(1) ! 308: |sp(minus)Sthink Thinkjet, see |i(thinkblt)(9.1) ! 309: |sp(minus)S|sp(minus) Standard output ! 310: .sp ! 311: .T& ! 312: c1FCW lfB ! 313: l1FCWp-2 l. ! 314: |sp(minus)T|i(fonts) Selects Typesetter Or Terminal |i(fonts) ! 315: .sp .25 ! 316: _ ! 317: .sp .25 ! 318: |sp(minus)T202 Mergenthaler Linotronic 202 ! 319: |sp(minus)Taps Autologic |s(APS-5) ! 320: |sp(minus)Ti10 Imagen 10 printer ! 321: |sp(minus)Ti300 Imagen 300 printer ! 322: |sp(minus)Tim300 Imagen 300 printer at Liberty Corner ! 323: |sp(minus)Tpost PostScript|sp(registered) printer (default) ! 324: |sp(minus)Tthink Think jet printer ! 325: |end(table) ! 326: |end(figure) ! 327: ! 328: |p ! 329: If |s(TYPESETTER) is set and exported, then it determines the typesetter ! 330: or terminal fonts used in preparing the output. ! 331: Be careful to type |cw(monk |sp(minus)Tpost |sp(minus)Sapsend myfile) ! 332: or |cw(monk |sp(minus)Taps |sp(minus)Sprt myfile) ! 333: |b(only) when you intend to send ! 334: final copy to the high-quality, high-priced phototypesetter. ! 335: ! 336: |comment{ ! 337: |insert(samples/memo.titlebox)} ! 338: ! 339: |p ! 340: When |i<monk> is run, the individualized prototype letter will appear as ! 341: ! 342: |begin(figure) ! 343: |insert(samples/tailor) ! 344: |end(figure) ! 345: ! 346: |comment{restore tm definition of date} ! 347: ! 348: |environment(date; divert.string DT;) ! 349: ! 350: |subsection(Typesetting a Memorandum) ! 351: ! 352: Preparing a memorandum is similar to preparing a letter. ! 353: Memoranda require a title, more information about the author, ! 354: and the document itself. ! 355: The information you provide is automatically arranged at the top of the page. ! 356: |p ! 357: Type ! 358: ! 359: |begin(cwfigure) ! 360: monksample memo > myfile ! 361: |end(cwfigure) ! 362: ! 363: to get the following prototype: ! 364: ! 365: |begin(cwfigure) ! 366: |insert(samples/memo.nx) ! 367: |end(cwfigure) ! 368: ! 369: |p ! 370: The |cw<|sp(|)make> command asks |i<monk> to format the document as a memo. ! 371: The information about each author is given in a ! 372: separate |cw<|sp(|)author> command: ! 373: name, initials, location, department, extension, and room number. ! 374: Each instance of |cw<|sp(|)document> gives the document information for ! 375: the corresponding author. ! 376: Author, document, title, and date may appear in any order, ! 377: but should precede the command |cw<|sp(|)titlebox>, ! 378: which organizes, formats, and outputs all this information. ! 379: ! 380: |insert(samples/reset_def) ! 381: ! 382: |reset_author_doc ! 383: ! 384: |author(name "S. L. Murrel", initials SLM, ! 385: location MH, department 11229, ! 386: extension x5772, room 2C-578) ! 387: ! 388: |author(name "T. J. Kowalski", initials TJK, ! 389: location MH, department 11229, ! 390: extension x2771, room 2C-568) ! 391: ! 392: |document(number 11229-851210-11TMS, ! 393: file_case 25952, work_program 311401-2299) ! 394: ! 395: |document(number 11229-851210-11TMS, ! 396: file_case 25952, work_program 311401-2199) ! 397: ! 398: |date(December 10, 1985) ! 399: ! 400: |title(Typing Documents on the \s-1\&UNIX\s+1\& System: ! 401: Using Monk 0.3) ! 402: ! 403: .nr yY \n(W1 ! 404: .mk zZ ! 405: .sp |sp(|)7.7i ! 406: ! 407: |titlebox ! 408: ! 409: .nrW \n(yYu ! 410: .nrW1 \n(yYu ! 411: .ll\nWu ! 412: .rt \n(zZu ! 413: .pl -3.0i ! 414: .rn EF eF ! 415: .rn OF oF ! 416: ! 417: |p ! 418: The titlebox follows the body of the memo, ! 419: which consists of paragraphs ! 420: separated by |cw<|sp(|)p>, simple font changes, and figures. ! 421: After the body comes the signature, any necessary notations, ! 422: and approvals. ! 423: |p ! 424: To omit information, simply delete the appropriate |i<monk> command. ! 425: Delete the entire line to omit notations or approvals. ! 426: To omit an author's location, omit the relevant labels and associated numbers, ! 427: e.g., |cw{|sp(|)author(name "W. H. MacWilliams", initials WHM, department 1344)}. ! 428: ! 429: |subsection(Typesetting a Technical Memorandum) ! 430: ! 431: This section describes how to prepare a technical memorandum. ! 432: The example below is the skeleton of the file that produced the previous |i(tm) version ! 433: of this document, excluding cover sheet information. ! 434: This prototype consists of the declaration of the document type, ! 435: document numbers, ! 436: date, ! 437: authors, title, abstract, document body, appendices, and references. ! 438: It can be copied with the command |cw(monksample tm > myfile). ! 439: ! 440: |comment{entire tm here or simply body, ending before cover sheet info} ! 441: ! 442: |begin(cwfigure) ! 443: |insert(samples/tmbody.nx) ! 444: |end(cwfigure) ! 445: ! 446: .rn eF EF ! 447: .rn oF OF ! 448: .pl +3.0i ! 449: ! 450: |p ! 451: The first line must specify the document type. ! 452: After that the order is flexible, ! 453: with the one restriction that all the ! 454: component information be available when larger units, such as the titlebox, ! 455: are printed. ! 456: The command |cw(|sp(|)titlebox) produces the standard header at the ! 457: top of technical memoranda. ! 458: It appears at the bottom of this page. ! 459: Thus the author, date, and document information must be specified first. ! 460: The title is not filled, so that newlines entered by the author are preserved: ! 461: here |cw<Using Monk 0.3> appears as ! 462: the second line of the title.|dagnote<In unfilled text, ! 463: input lines are reproduced unchanged in the output; ! 464: in filled text, ! 465: words from successive input lines may be combined to ensure ``filled'' ! 466: (maximum length) lines in the output.> ! 467: |p ! 468: The commands |cw(|sp(|)author) and |cw(|sp(|)document) ! 469: belong to a type we have not previously discussed. ! 470: They allow you to specify a collection of information about a given item. ! 471: The first instance of |cw(|sp(|)author) specifies the name, initials, ! 472: location, department, extension, and room number of the first author. ! 473: The first instance of |cw(|sp(|)document) gives the document information ! 474: for the first author. ! 475: Authors and documents are linked as they appear, so that ! 476: ! 477: |begin(cwfigure) ! 478: |sp(|)author(name "S. L. Murrel", initials SLM, ! 479: location MH, department 11229) ! 480: |sp(|)author(name "T. J. Kowalski", ! 481: initials TJK, location MH, ! 482: department 11229) ! 483: |sp(|)document(number 11229-851210-11TMS, ! 484: file_case 25952, ! 485: work_program 311401-2299) ! 486: |sp(|)document(number 11229-851210-11TMS, ! 487: file_case 25952, ! 488: work_program 311401-2199) ! 489: |end(cwfigure) ! 490: ! 491: is equivalent to the ordering given in the |i(tm) above. ! 492: Note that in these examples only part of the author information is included: ! 493: the room and extension numbers were omitted. ! 494: Any information can be omitted simply by deleting the corresponding |i<monk> ! 495: labels, e.g., |cw<room> and |cw<extension>. ! 496: Monk will always try to format the input information gracefully. ! 497: |p ! 498: To produce a cover sheet, additional information is needed: ! 499: ! 500: |begin(cwfigure) ! 501: |insert(samples/tmcs.nx) ! 502: |end(cwfigure) ! 503: ! 504: Again, this information can appear anywhere in the document as long as it ! 505: precedes the command |cw(|sp(|)cover_sheet). ! 506: Following local convention, keywords are filled, while the distribution lists ! 507: are not. ! 508: Although the title was not filled in the titlebox, ! 509: it is filled on the cover sheet because of space limitations. ! 510: |p ! 511: In producing the cover sheet, |i<monk> automatically calculates the numbers of ! 512: tables, figures, references, ! 513: as well as text pages, other pages, and total pages. ! 514: Use the command |cw<|sp(|)other> to mark the end of the text body and the ! 515: beginning of attachments. ! 516: |i<Monk> needs it to correctly distinguish text from other pages. ! 517: If there are any pages that are not included in this input file, you ! 518: can add to the counts using the command |cw<|sp(|)add_totals>. ! 519: For example, ! 520: if there is an additional attachment page that is not a table or figure, ! 521: then the command |cw<|sp(|)add_totals>(|cw<other> 1) suffices. ! 522: You should never have to use the complete form of the command: ! 523: |cw<|sp(|)add_totals(text 0, tables 0, figures 1, references 11, ! 524: other 2)>. ! 525: This command means that you are adding 2 additional pages by hand, ! 526: which include one figure and eleven references. ! 527: The counts of text pages and tables are untouched. ! 528: |p ! 529: There are six commands specific to the |s(AT&T B)ell |s(L)abs cover sheet ! 530: that provide distribution information. ! 531: Use |cw<|sp(|)mercury> to specify the company-wide announcements ! 532: that should include ! 533: the abstract of this document: ! 534: |cw<chm>, |cw<cmm>, |cw<cmp>, |cw<elc>, |cw<lfs>, |cw<man>, |cw<mas>, |cw<mkt>, ! 535: and |cw<phy>. ! 536: Use |cw<|sp(|)distribute_complete_memo> to ! 537: list individuals who should receive the complete memo and ! 538: |cw<|sp(|)distribute_cover_sheet> ! 539: to list those who should receive only the cover sheet. ! 540: The command |cw<|sp(|)att> gives |s(AT&T) release information: ! 541: |cw<is_release> marks the |i<yes> or |i<no> box ! 542: as specified by its argument. ! 543: |cw<|sp(|)director_name> identifies the director of the first author. ! 544: Finally, |cw<|sp(|)cover_sheet> prints the cover sheet. ! 545: ! 546: |subsection(Typesetting a Release Paper) ! 547: ! 548: There is a |i<monk> sample for release papers, which can be modified ! 549: in the same way as ! 550: the documents already discussed. ! 551: However, you may often need to convert a technical memorandum ! 552: to a release paper. ! 553: To do so, change the first line from ! 554: |cw<|sp(|)make(tm)> to |cw<|sp(|)make(rp)> ! 555: and then remove or comment out (see Section |remember(comment_section)) ! 556: the information specific to the ! 557: |i<tm> style: ! 558: ! 559: |begin(bullet_list) ! 560: |item |cw<other>, ! 561: |item |cw<add_totals>, ! 562: |item |cw<mercury>, ! 563: |item |cw<distribute_cover_sheet>, ! 564: |item |cw<distribute_complete_memo>, ! 565: |item |cw<cover_sheet>, ! 566: |item |cw<att>, ! 567: |item |cw<signature>, ! 568: |item |cw<director_name> ! 569: |end(bullet_list) ! 570: ! 571: |section(Content Formatting Commands) ! 572: ! 573: For any document type, it is possible to format section titles, ! 574: figure captions, footnotes, and two-column output. ! 575: It is possible to store page numbers, section numbers or figure numbers ! 576: for later use. ! 577: An interface is provided to existing routines that produce ! 578: tabular output, equations, citations, and reference lists. ! 579: This section describes the relevant commands. ! 580: ! 581: |subsection(Comments) ! 582: |save(comment_section) ! 583: ! 584: Comments are valuable notations by and for the person preparing a document. ! 585: They can be used ! 586: to temporarily omit a section, ! 587: to mark a section that needs work or information, ! 588: and to retain an alternative word or phrase. ! 589: Anything that appears within the delimiters of a |cw<|sp(|)comment> ! 590: is not processed as part of the document: ! 591: |i<monk> commands are ignored, and text does not appear in the final output. ! 592: ! 593: |subsection(Spacing) ! 594: ! 595: |comment{ ! 596: |subsection(Spacing and Tabs) ! 597: You can start a new page, leave vertical blank space, and control tab stops.} ! 598: ! 599: You can start a new page or leave vertical blank space. ! 600: ! 601: |begin(table) ! 602: center; ! 603: lf5 2 l. ! 604: |sp(|s)new_page begins a new page ! 605: |sp(|s)blank_space leaves a blank line ! 606: |sp(|s)blank_space(3) leaves 3 blank lines ! 607: |sp(|s)blank_space(1.5i) leaves 1.5 inches ! 608: |sp(|s)blank_space(|sp(minus)1) moves back one line ! 609: |comment{ ! 610: |sp(|s)tab_stops(1.5i 4.25i 5.5i 6.75i) sets tab stops ! 611: |sp(|s)tab_stops restores previous tab stops} ! 612: |end(table) ! 613: ! 614: |subsection(Positioning Text: Indenting and Centering) ! 615: ! 616: Indenting and centering are the most common ways of positioning text. ! 617: The input text ! 618: ! 619: |begin(cwfigure) ! 620: |sp(|)indent(begins a new line and indents ! 621: the left hand margin as long as it applies ! 622: for a single line, a group of lines, ! 623: or an entire paper. ! 624: |sp(|)indent<Multiple commands will ! 625: indent progressively.>) ! 626: |end(cwfigure) ! 627: ! 628: produces the following output: ! 629: ! 630: |indent(begins a new line and indents ! 631: the left hand margin as long as it applies ! 632: for a single line, a group of lines, ! 633: or an entire paper. ! 634: |indent<Multiple commands will ! 635: indent progressively.>) ! 636: |p ! 637: The command |cw<|sp(|)center> begins a new line and ! 638: centers each line of text within its delimiters. ! 639: The input, taken from Monty Python, ! 640: ! 641: |begin(cwfigure) ! 642: |sp(|)begin(center) ! 643: I'm a lumberjack and I'm okay, ! 644: I sleep all night and I work all day. ! 645: I cut down trees, I eat my lunch, ! 646: I go to the lavatry, ! 647: On Wednesdays I go shopping and have ! 648: buttered scones for tea. ! 649: |sp(|)end(center) ! 650: |end(cwfigure) ! 651: ! 652: produces ! 653: ! 654: |begin(figure) ! 655: |begin(center) ! 656: I'm a lumberjack and I'm okay, ! 657: I sleep all night and I work all day. ! 658: I cut down trees, I eat my lunch, ! 659: I go to the lavatry, ! 660: On Wednesdays I go shopping and have ! 661: buttered scones for tea. ! 662: |end(center) ! 663: |end(figure) ! 664: ! 665: |p ! 666: In contrast, the command |cw<|sp(|)center_block> centers the entire figure ! 667: as a block. ! 668: All the lines are left-justified and ! 669: the figure is centered based on the width of the longest line. ! 670: It produces ! 671: ! 672: |begin(figure) ! 673: |begin(center_block) ! 674: I'm a lumberjack and I'm okay, ! 675: I sleep all night and I work all day. ! 676: I cut down trees, I eat my lunch, ! 677: I go to the lavatry, ! 678: On Wednesdays I go shopping and have ! 679: buttered scones for tea. ! 680: |end(center_block) ! 681: |end(figure) ! 682: ! 683: |p ! 684: Multi-line quotations are appropriately indented and offset by the ! 685: command |cw<|sp(|)quotation>. ! 686: ! 687: |quotation<Four score and seven years ago our fathers brought forth ! 688: to this continent a new nation, conceived in liberty and dedicated to ! 689: the proposition that all men are created equal.> ! 690: ! 691: |subsection(Fonts) ! 692: ! 693: |i<Monk> currently provides abbreviated commands for ! 694: four type faces and two type sizes. ! 695: |cw(|sp(|)bold) or |cw(|sp(|)b) makes the enclosed text |b(bold). ! 696: |cw(|sp(|)italics) or |cw(|sp(|)i) produces |italics(italicized text), ! 697: while |cw(|sp(|)roman) or |cw(|sp(|)r) restores the roman character set. ! 698: The command |cw<|sp(|)constant_width> or |cw<|sp(|)cw> ! 699: |cw(selects a font that resembles low quality line printer ! 700: output and is intended only for examples of such output). ! 701: |p ! 702: When fonts are embedded, the innermost dominates. ! 703: For example, ! 704: |cw(|sp(|)italics<Italics flourish around the |sp(|)roman[roman] text>) produces ! 705: |italics<Italics flourish around the |roman[roman] text>. ! 706: If an output device is not able to italicize, then it will underline. ! 707: Because italics look better, it is always preferable to request them ! 708: so that the document will look its best on the available printing device. ! 709: However, it is possible to specify underlining using |cw(|sp(|)underline) or |cw(|sp(|)u). ! 710: |p ! 711: |cw(|sp(|)big) makes the font size |big(bigger), ! 712: while |cw(|sp(|)small) makes the font size |small(smaller). ! 713: These can be nested, so that |cw<|sp(|)big(|sp(|)big(this is big))> produces ! 714: |big(|big(this is big)). ! 715: However, |cw<|sp(|)big> and |cw<|sp(|)small> are designed for in-line font changes; ! 716: they do not change the vertical spacing. ! 717: To change the size of a block of text, use the |cw<|sp(|)style> command ! 718: (see Section |remember(style_section)). ! 719: ! 720: |subsection(Special characters) ! 721: |save(special_section) ! 722: ! 723: |i<Monk> provides a long list of special characters, the appearance of which ! 724: is ultimately determined by the output device. ! 725: ! 726: With the command |cw<|sp(|)sp>, ! 727: the user can print out the |i<monk> command character |cw(|sp(|s)), ! 728: Greek letters, and mathematical symbols. ! 729: |p ! 730: Here is a partial list of the fancy symbols ! 731: that appear in Appendix |remember(special_appendix): ! 732: |sp{/} |sp{minus} |sp{\} ! 733: |sp{.} |sp{degree} |sp{bullet} ! 734: |sp{copyright} |sp{registered} |sp{TM} ! 735: |sp{|} |sp{bold vertical} ! 736: |sp{dagger} |sp{section} ! 737: |sp{rhand} |sp{lhand} ! 738: |sp{hyphen} |sp{underrule} ! 739: |sp{open quote} |sp{close quote} ! 740: |sp{grave} |sp{cedilla} |sp{lower case umlaut} |sp{upper case umlaut} ! 741: |sp{alpha} |sp{beta} |sp{gamma} |sp{delta} |sp{epsilon} ! 742: |sp{+-} |sp{>=} |sp{<=} |sp{!=} |sp{-wig} |sp{wig} ! 743: |sp{times} |sp{divide} |sp{prop} ! 744: |sp{integral} |sp{partial} ! 745: |sp{not} |sp{or} |sp{rceil} ! 746: |sp{square} |sp{del} |sp{empty} |sp{member} ! 747: |sp{isuperset} |sp{cap} ! 748: |sp{->} |sp{uarrow} |sp{darrow} ! 749: |sp{cent} |sp{quarter} |sp{3quarter} ! 750: |sp{mu} |sp{nu} |sp{xi} |sp{omicron} ! 751: |sp{pi} |sp{ff} |sp{ffi} |sp{ffl} |sp{TEX} |sp{LATEX}. ! 752: |p ! 753: |cw<|sp(|)sp> can also be used to control spacing and carriage movement ! 754: precisely. ! 755: There are spaces of five different widths, ! 756: shown below opposite the commands that produce them. ! 757: ! 758: |begin(verbatim) ! 759: |cw<|sp(|)sp{space}> `|sp{space}', ! 760: |cw<|sp(|)sp{digit space}> `|sp{digit space}', ! 761: |cw<|sp(|)sp{narrow space}> `|sp{narrow space}', ! 762: |cw<|sp(|)sp{half narrow space}> `|sp{half narrow space}' ! 763: |cw<|sp(|)sp{zero width space}> `|sp{zero width space}' ! 764: |end(verbatim) ! 765: ! 766: |p ! 767: ! 768: |style(double_space) ! 769: ! 770: The carriage can be moved up and down: ! 771: |cw<|sp(|)sp{up}> moves |sp{up}up,|sp{down} ! 772: while |cw<|sp(|)sp{reverse}> moves ! 773: |sp{reverse}up|sp{down}|sp{down}by twice as much. ! 774: The command |cw<|sp(|)sp{down}> moves |sp{down}down.|sp{up} ! 775: ! 776: |style(single_space) ! 777: ! 778: |p ! 779: |cw<|sp(|)sp{break and spread}> pads the current line according to the document ! 780: style and breaks to the next line. ! 781: To force hyphenation at a particular position in a word, use ! 782: |cw<|sp(|)sp{hyphenation}>. ! 783: |cw<|sp(|)sp{tab}> generates horizontal motion to the next tab stop; ! 784: |cw<|sp(|)sp{leader}> generates a string of periods to the next tab stop. ! 785: ! 786: |subsection(Headings) ! 787: ! 788: |comment<|subsection(Hyphenation and Justification)> ! 789: |comment<|subsection(Section headings)> ! 790: ! 791: |subsubsection(Numbered headings.) ! 792: ! 793: |cw<|sp(|)chapter> starts a new page; leaves a blank space; ! 794: puts ``Chapter |i<n>'' against the right hand margin; ! 795: skips more space; ! 796: puts the title against the right hand margin; ! 797: and skips more space before beginning the text body. ! 798: No chapters appear in this document. ! 799: The commands ! 800: to declare the current section, subsection, and subsubsection include: ! 801: ! 802: |begin(cwfigure) ! 803: |sp(|)section(Content Formatting Commands) ! 804: |sp(|)subsection(Headings) ! 805: |sp(|)subsubsection(Numbered headings.) ! 806: |end(cwfigure) ! 807: ! 808: The first appendix at the end was produced by ! 809: |cw<|sp(|)appendix(List of Commands)>. ! 810: |paragraph(numbered) ! 811: This numbered paragraph is produced by the command ! 812: |cw<|sp(|)paragraph(numbered)>, ! 813: which may be abbreviated as |cw<|sp(|)paragraph(n)> or |cw<|sp(|)p(n)>. ! 814: ! 815: |subsubsection(Unnumbered headings.) ! 816: ! 817: The analogous unnumbered headings produce the same spacing but omit ! 818: heading names, e.g. chapter, and numerical labels. ! 819: Chapter titles remain right justified, ! 820: and appendix titles are still centered; ! 821: but the various section titles are now flush with the left margin. ! 822: |cw<|sp(|)unnumbered_chapter> is useful for preface and acknowledgement ! 823: pages. ! 824: Available commands include: ! 825: ! 826: |begin(cwfigure) ! 827: |sp(|)unnumbered_chapter(Preface) ! 828: |sp(|)unnumbered_section(|small[SECTION]) ! 829: |sp(|)unnumbered_subsection(Subsection) ! 830: |sp(|)unnumbered_subsubsection(Subsubsection.) ! 831: |sp(|)unnumbered_appendix(|small[APPENDIX]) ! 832: |end(cwfigure) ! 833: ! 834: |p(f) ! 835: There are flushed and indented unnumbered paragraphs. ! 836: The indented paragraphs are used throughout this paper, ! 837: except for this paragraph, ! 838: which is produced using the command |cw<|sp(|)p(f)>. ! 839: The commands to skip a line and begin the text flush with the left margin ! 840: include: ! 841: ! 842: |begin(cwfigure) ! 843: |sp(|)paragraph(f) ! 844: |sp(|)p(f) ! 845: |sp(|)paragraph(flushed) ! 846: |sp(|)p(flushed) ! 847: |end(cwfigure) ! 848: ! 849: The commands to indent the first line of the paragraph and ! 850: produce spacing identical to the flushed paragraph include: ! 851: ! 852: |begin(cwfigure) ! 853: |sp(|)paragraph(i) ! 854: |sp(|)p(i) ! 855: |sp(|)paragraph(indented) ! 856: |sp(|)p(indented) ! 857: |end(cwfigure) ! 858: |blank_space(-1) ! 859: ! 860: |subsubsection(Paragraphs) ! 861: ! 862: The command |cw(|sp(|)paragraph) or its abbreviation |cw(|sp(|)p) ! 863: is used throughout this paper to produce the default paragraph style. ! 864: In this paper the normal default, ! 865: |cw(flushed), was changed through use of the |cw<|sp(|)style> command to |cw(indented) ! 866: (see Section |remember(style_section)). ! 867: ! 868: |subsection(Setting page, heading and figure numbers) ! 869: ! 870: Page, heading, figure, and table numbers can be changed by the authors. ! 871: |index(set page numbers)|index(page numbers) ! 872: |index(section numbers)|index(section counters) ! 873: Set the current page counter to three using ! 874: the command |cw<|sp(|)set_counter(page 3)>. ! 875: At the next page boundary the page number will be incremented to four. ! 876: The command |cw<|sp(|)set_counter( table 12)> ! 877: sets the current table number to 12. ! 878: Multiple counters can be set with a single command: ! 879: |cw<|sp(|)set_counter(page 10, chapter 4, section 3, subsection 1)>. ! 880: Available commands include: ! 881: ! 882: |begin(cwfigure) ! 883: |sp(|)set_counter(page 3) ! 884: |sp(|)set_counter(chapter 4) ! 885: |sp(|)set_counter(section 1) ! 886: |sp(|)set_counter(subsection 9) ! 887: |sp(|)set_counter(subsubsection 3) ! 888: |sp(|)set_counter(paragraph 0) ! 889: |sp(|)set_counter(appendix 3) ! 890: |sp(|)set_counter(footnote 17) ! 891: |sp(|)set_counter(note 122) ! 892: |sp(|)set_counter(figure 8) ! 893: |sp(|)set_counter(table 0) ! 894: |end(cwfigure) ! 895: ! 896: |p ! 897: Care must be taken in positioning all these commands: ! 898: if you want to change a section number, then you must position the ! 899: |cw<|sp(|)set_counter> command before the section itself ! 900: so that the numbered title will be correct. ! 901: To number the next section four, you must type ! 902: |cw<|sp(|)set_counter(section 3)> before the |cw<|sp(|)section> command, ! 903: because the section number will be incremented ! 904: when the |cw<|sp(|)section> command itself is read. ! 905: Similarly, ! 906: if you want the page number in headers and footers to display a new value, ! 907: then the value must be changed before the break to the new page occurs. ! 908: To set the next page to page number three, ! 909: the command |cw<|sp(|)set_counter(page 2)> must appear on the current page. ! 910: |p ! 911: Once a value is set, the computer will use that number and increment it ! 912: appropriately; but if it is set wrong, it will remain wrong. ! 913: If you change counters, you are responsible for ! 914: insuring consistency and correctness. ! 915: ! 916: |subsection(Setting page headers and footers) ! 917: ! 918: Both page headers and footers can be set using the |cw<|sp(|)set_string> command ! 919: as follows: ! 920: ! 921: |begin(cwfigure) ! 922: |sp(|)set_string(page_headers ! 923: "'left'center'right'") ! 924: |sp(|)set_string(even_headers ! 925: "'left'center'right'") ! 926: |sp(|)set_string(odd_headers ! 927: "'left'center'right'") ! 928: |sp(|)set_string(page_footers ! 929: "'left'center'right'") ! 930: |sp(|)set_string(even_footers ! 931: "'left'center'right'") ! 932: |sp(|)set_string(odd_footers ! 933: "'left'center'right'") ! 934: |end(cwfigure) ! 935: ! 936: |cw<page_headers>, |cw<even_headers>, and |cw<odd_headers> set the headers ! 937: on all pages, even pages, and odd pages, respectively. ! 938: |index(headers)|index(page headers) ! 939: Page headers appear above the even and odd headers. ! 940: All headers consist of three strings, any of which may be blank or long ! 941: enough to overlap. ! 942: Any character, can be used to delimit the strings. ! 943: The strings |i(left), |i(center), and |i(right) are left-justified, centered, ! 944: and right-justified, respectively. ! 945: Parallel commands serve ! 946: to specify page footers.|index(footers)|index(page footers) ! 947: ! 948: |comment<|subsection(Grouping text - Displays)> ! 949: ! 950: |subsection(Inserting other files) ! 951: ! 952: Other files may be inserted using the command |cw<|sp(|)insert>.|index(insert) ! 953: These files will also be processed by |i<monk> and ! 954: may in turn insert other files. ! 955: Loops will indeed cause disaster. ! 956: A file that will not be processed may also be included ! 957: using the |cw<|sp(|)source> command.|index(source) ! 958: ! 959: |subsection(Figures) ! 960: ! 961: The lumberjack poem above was formatted as a figure. ! 962: Figures are printed with blank space above and below and can be split ! 963: across a page boundary. ! 964: Lines are not filled. ! 965: If you want some lines to be filled, put them within the delimiters of the ! 966: command |cw<|sp(|)text>. ! 967: |cw<|sp(|)figure_caption> centers and labels the caption. ! 968: Given ! 969: ! 970: |begin(cwfigure) ! 971: |sp(|)begin(figure) ! 972: Like the lumberjack poem above, ! 973: this text is within a |sp(|)cw<|sp(|)sp(|sp(|))figure> ! 974: command. ! 975: |sp(|)end(figure) ! 976: |sp(|)figure_caption(This is a figure caption). ! 977: |end(cwfigure) ! 978: ! 979: |i<monk> produces ! 980: ! 981: |begin(here) ! 982: |begin(figure) ! 983: Like the lumberjack poem above, ! 984: this text is within a |cw<|sp(|)figure> ! 985: command. ! 986: |end(figure) ! 987: |figure_caption(This is a figure caption) ! 988: |end(here) ! 989: ! 990: |p ! 991: To create a non-filled display without spacing above and below, use the ! 992: command |cw<|sp(|)verbatim>. ! 993: To indent either a figure or a verbatim display, ! 994: simply enclose it within an |cw<|sp(|)indent> command: ! 995: ! 996: |begin(cwfigure) ! 997: |sp(|)begin(here) ! 998: |sp(|)begin(indent) ! 999: |sp(|)begin(figure) ! 1000: This is a short figure ! 1001: |sp(|)end(figure) ! 1002: |sp(|)end(indent) ! 1003: |sp(|)figure_caption(with a short caption) ! 1004: |sp(|)end(here) ! 1005: |end(cwfigure) ! 1006: ! 1007: The command |cw<|sp(|)indent> can appear either inside or around the ! 1008: |cw<|sp(|)figure> command. ! 1009: However, because the caption is centered, it should not be indented. ! 1010: |p ! 1011: The |cw<|sp(|)here> command keeps all the text within its delimiters ! 1012: together on one page. ! 1013: It is important to include both the figure proper and its caption within ! 1014: the delimiters so that the caption is never orphaned. ! 1015: If there is not enough room on the current page, |cw<|sp(|)here> ! 1016: leaves the rest of the ! 1017: page blank and skips to the next page or next column to print the block. ! 1018: It is useful after comments such as ``An example follows:'', ! 1019: because it guarantees the relative position of the comment and the block. ! 1020: |p ! 1021: Another command, |cw<|sp(|)around>, also keeps the enclosed text together. ! 1022: If it cannot print the block on the current page, however, it continues ! 1023: printing text, postponing the block until there is enough room for it. ! 1024: Usually the block will be positioned at the top of the next page; ! 1025: however, if there are multiple large floating blocks that cannot fit together ! 1026: on that page, then they will appear in order as soon as possible. ! 1027: You can use the command |cw<|sp(|)around_placement> to force all outstanding ! 1028: blocks to be printed at the end of a section or chapter. ! 1029: ! 1030: |subsection(Equations) ! 1031: ! 1032: |i<Monk> uses |i<eqn>|reference<latest eqn> to format equations. ! 1033: The |i<monk> command |cw<|sp(|)equation> delimits an equation offset from the text. ! 1034: Note that |i<monk> commands may appear within the line; ! 1035: they do not need to be at the beginning of a line. ! 1036: ! 1037: |begin(cwfigure) ! 1038: |sp(|)begin(center) ! 1039: |sp(|)equation_number[(1a)] ! 1040: |sp(|)begin(equation)x = 2 pi int ! 1041: sin ( omega t ) dt ! 1042: |sp(|)end(equation) ! 1043: |sp(|)end(center) ! 1044: |end(cwfigure) ! 1045: ! 1046: When formatted the above input produces: ! 1047: ! 1048: |begin(center) ! 1049: |equation_number[(1a)] ! 1050: |begin(equation)x = 2 pi int ! 1051: sin ( omega t ) dt ! 1052: |end(equation) ! 1053: |end(center) ! 1054: |blank_space(-1) ! 1055: ! 1056: The same output is produced by the short |i<monk> form: ! 1057: |cw<|sp(|)equation[x = 2 pi int sin ( omega t ) dt]>. ! 1058: Captions are specified using |cw<|sp(|)equation_caption>. ! 1059: |p ! 1060: The equation itself ! 1061: is explained on page 2 of the Kernighan and Cherry memo.|footnote{ ! 1062: Remember that the |i<monk> command |cw<|sp(|)equation(...)> replaces all ! 1063: instances of |cw<.EQ> and |cw<.EN> and that |cw<|sp(|)e(...)> replaces the ! 1064: |cw<$...$> delimiters for in-line equations.} ! 1065: To write equations in-line with text, delimit the equation using |cw<|sp(|)e>. ! 1066: The input |cw{|sp(|)e<x = 2 pi int sin ( omega t ) dt>} ! 1067: produces the equation |e<x = 2 pi int sin ( omega t ) dt> ! 1068: without offsetting it. ! 1069: ! 1070: |subsection(Tables) ! 1071: |save(table_example) ! 1072: ! 1073: |i<Monk> does not provide any new capabilities for formatting tables; ! 1074: it uses |i(tbl)|reference(latest tbl). ! 1075: It provides |i<monk>-style commands for positioning both the table and its caption ! 1076: and automatically invokes the standard |i(tbl) formatting program. ! 1077: The following input formats the table in the file |i(examples/example.table), ! 1078: which appears as Appendix |remember(table_appendix).|footnote{ ! 1079: The formatting commands |cw<.TS> and |cw<.TE> ! 1080: need to be omitted from the sample file.} ! 1081: The table could be typed into the file directly; here it is put into another ! 1082: file just to simplify and condense the |i<monk> example. ! 1083: ! 1084: |begin(cwfigure) ! 1085: |sp(|)begin(here) ! 1086: |sp(|)table_caption(Example of table) ! 1087: |sp(|)begin(table) ! 1088: |sp(|)insert(examples/example.table) ! 1089: |sp(|)end(table) ! 1090: |sp(|)end(here) ! 1091: |end(cwfigure) ! 1092: ! 1093: |p ! 1094: The command |cw<|sp(|)here> guarantees that the caption will not be separated ! 1095: from the table if it happens to hit a page boundary. ! 1096: The remainder of the page would be blank, ! 1097: and the table with caption would be printed on the next page ! 1098: or in the next column for multi-column documents. ! 1099: Together |i<monk> and |i<tbl> produce ! 1100: ! 1101: |begin(here) ! 1102: |table_caption(Example of table) ! 1103: |begin(table) ! 1104: |insert(examples/example.table) ! 1105: |end(table) ! 1106: |end(here) ! 1107: ! 1108: |p ! 1109: If you have a 5620 or a 630MTG terminal, ! 1110: the interactive table editor |i<vtbl> ! 1111: can be used to prepare |i<tbl> input.|reference(Murrel bitmaps build tables) ! 1112: ! 1113: |comment[ ! 1114: |subsection(Computer Programs and Output) ! 1115: Two special types of figures are provided for computer-related text. ! 1116: The command |cw<|sp(|)program> beautifies the source code of C, ! 1117: a high-level programming language. ! 1118: It will try to beautify anything appearing within its delimiters following a simple ! 1119: set of rules that identify program segments. ! 1120: |begin(program) ! 1121: main() ! 1122: { ! 1123: printf("Hello World\n"); ! 1124: } ! 1125: |end(program) ! 1126: Used inappropriately, it will produce good looking garbage. ! 1127: |cw<|sp(|)computeroutput_caption (Example of computer output)> and ! 1128: |cw<|sp(|)program_caption (Example of program)> ! 1129: provide the associated captions.] ! 1130: ! 1131: |subsection(Computer Output) ! 1132: ! 1133: The command |cw<|sp(|)computeroutput> produces a figure using a constant width ! 1134: type that resembles low quality line printer output. ! 1135: ! 1136: |begin(computeroutput) ! 1137: Program: SINDSCAL-symmetric indscal ! 1138: ! 1139: *********************************** ! 1140: parameters ! 1141: dim irdata itmax irn ! 1142: 2 2 200 9342 ! 1143: no. of matrices=5 no. of stim.=9 ! 1144: *********************************** ! 1145: ! 1146: correlations vaf loss ! 1147: y(data)&yhat (r**2) (y-yhat)**2 ! 1148: .161169 .025975 .974025 ! 1149: .650655 .423352 .605140 ! 1150: |end(computeroutput) ! 1151: |blank_space(-1) ! 1152: |computeroutput_caption(Example of computer output) ! 1153: ! 1154: |cw<|sp(|)computeroutput_caption (Example of computer output)> ! 1155: provides the associated caption. ! 1156: Currently these captions are the same as figure captions. ! 1157: ! 1158: |subsection(Pictures) ! 1159: |save(picture_example) ! 1160: ! 1161: |i<Monk> commands also provide access to |i<pic>, a graphics language for ! 1162: typesetting.|reference[latest pic] ! 1163: Borrowing an example from the |i<PIC User Manual>,|footnote{ ! 1164: Remember that the |i<monk> command |cw|sp(|)picture(...)> replaces all ! 1165: instances of |cw<PS> and |cw<PE>.} ! 1166: the |i<monk> input ! 1167: ! 1168: |begin(cwfigure) ! 1169: |sp(|)begin(here) ! 1170: |sp(|)begin(picture) ! 1171: |sp(|)insert(examples/example.pic1) ! 1172: |sp(|)end(picture) ! 1173: |sp(|)picture_caption(Example of picture) ! 1174: |sp(|)end(here) ! 1175: |end(cwfigure) ! 1176: ! 1177: produces ! 1178: ! 1179: |begin(picture) ! 1180: |insert(examples/example.pic1) ! 1181: |end(picture) ! 1182: |picture_caption(Example of picture) ! 1183: ! 1184: |p ! 1185: If you have a 5620 or a 630MTG terminal, ! 1186: the interactive drawing program |i<cip> ! 1187: can be used to prepare |i<pic> input.|reference(latest cip) ! 1188: |p ! 1189: Another example from Kernighan's |i<PIC Revised User Manual> illustrates ! 1190: the use of an in-line equation embedded in a picture.|footnote{ ! 1191: In this example, the equation within the delimiters must be placed within the ! 1192: |cw<|sp(|)e> command.} ! 1193: ! 1194: |comment<box "|sp(|s)e[space 0 {H( omega )} over {1 - H( omega )}]"> ! 1195: ! 1196: |begin(cwfigure) ! 1197: |sp(|)begin(here) ! 1198: |sp(|)begin(picture) ! 1199: arrow ! 1200: box "|sp(|)e[{H( omega )} over {1 - H( omega )}]" ! 1201: arrow ! 1202: |sp(|)end(picture) ! 1203: |sp(|)picture_caption(Picture with equation) ! 1204: |sp(|)end(here) ! 1205: |end(cwfigure) ! 1206: ! 1207: produces the following beauty ! 1208: ! 1209: |begin(here) ! 1210: |begin(picture) ! 1211: arrow ! 1212: box "|e[{H( omega )} over {1 - H( omega )}]" ! 1213: arrow ! 1214: |end(picture) ! 1215: |picture_caption(Picture with equation) ! 1216: |end(here) ! 1217: ! 1218: |comment{ ! 1219: |subsection(Strings) ! 1220: |cw<|sp(|)savestring> saves strings for you to use later. ! 1221: |savestring(os "The UNIX operating system") ! 1222: After the command |cw<|sp(|)savestring(os "The UNIX operating system")>, ! 1223: |cw<|sp(s)remember(os)> is replaced by |remember(os). ! 1224: They are especially useful when you want to repeatedly use some long name or ! 1225: phrase. ! 1226: } ! 1227: ! 1228: |subsection(Citations) ! 1229: |save(save_section) ! 1230: ! 1231: |i<Monk> uses the program |i<cite> to handle citations. ! 1232: The command |cw<|sp(|)save(tag)> ! 1233: remembers the last important numbered item as the label ! 1234: |i[tag]. ! 1235: It saves the number of the last figure, picture, equation, table, ! 1236: section, subsection, subsubsection or appendix. ! 1237: At this point the command |cw<|sp(|)save(this_section)> stores ! 1238: the number of the current subsection as |cw(this_section). ! 1239: |save(this_section) ! 1240: The command |cw<|sp(|)remember(this_section)> is replaced by ! 1241: that stored value wherever it appears in the text: ! 1242: |cw[This section is |sp(|)remember(this_section)] appears in the ! 1243: final output as This section is |remember(this_section). ! 1244: It is crucial to understand that |cw[|sp(|)save] stores the most recent ! 1245: counter, whatever its type. ! 1246: If a numbered figure appears between the section header and the |cw[|sp(|)save] ! 1247: command, then the number saved will be that figure number. ! 1248: The tag name itself has no particular meaning. ! 1249: Position is what counts. ! 1250: |p ! 1251: Page numbers can be saved using the command |cw<|sp(|)savepage.> ! 1252: |cw<|sp(|)savepage(tag)> saves the current page number as ! 1253: the label |cw[tag]. ! 1254: Again, |cw<|sp(|)remember(tag)> substitutes the number ! 1255: associated with |cw[tag]. ! 1256: The text ! 1257: |cw<the current page is |sp(|)savepage(foobar) |sp(|)remember(foobar)> ! 1258: generates |cw<the current page is |savepage(foobar)|remember(foobar)>. ! 1259: |p ! 1260: If all citations are saved before they are used, then the user need ! 1261: only enter the commands shown above in the |i<monk> input text. ! 1262: If, however, the input uses a citation before it really is saved, ! 1263: as in the example below, then there is more to do. ! 1264: ! 1265: |begin(cwfigure) ! 1266: All commands are listed in appendix ! 1267: |sp(|)remember(appendix_commands). ! 1268: |sp(zero width space)|b(...) ! 1269: |sp(|)appendix(|s(LIST OF COMMANDS)) ! 1270: |sp(|)save(appendix_commands) ! 1271: |end(cwfigure) ! 1272: ! 1273: Forward referencing depends on a file named |cw<.cite>, ! 1274: which is generated each time the input is formatted. ! 1275: The |small<UNIX> command ! 1276: ! 1277: |begin(figure) ! 1278: |cw(cite |sp(minus)s .cite > myfile.cite) ! 1279: |end(figure) ! 1280: ! 1281: reports any redefinitions or unused definitions and produces a consistent ! 1282: set of citations. ! 1283: The output file |cw<myfile.cite> needs to be inserted in the |i<monk> input ! 1284: before the first citation. ! 1285: Do so using the command |cw<|sp(|)insert(myfile.cite)>. ! 1286: ! 1287: |comment[ ! 1288: |subsection(Creating an Index) ! 1289: You can specify keywords to be inserted in an index using |cw(|sp(|)index): ! 1290: |cw<|sp(|)index(these words)>. ! 1291: The keywords |i<these words> will appear in the index with the current page ! 1292: number.] ! 1293: ........ ! 1294: ! 1295: |subsection(Document Styles)|save(style_section) ! 1296: ! 1297: By default, ! 1298: all documents are single-spaced and single column. ! 1299: Page width is 6 inches; length is 11 inches. ! 1300: The font family is |i{times} and the font size 10. ! 1301: Paragraphs skip a line and begin the text flush with the left margin. ! 1302: |p ! 1303: You can change any of these defaults using the |cw(|sp(|)style) command. ! 1304: The command |cw<|sp(|)style(page_width 7i)> sets the page width to 7 inches. ! 1305: To get the maximum page width on most output devices, type: ! 1306: |cw<|sp(|)style(page_offset 0, page_width 8.5i)>. ! 1307: The |cw(page_length) and |cw(font_size) can be set in a similar manner. ! 1308: |p ! 1309: |cw<|sp(|)style(font_size 14)> changes the default font to size 14 to print ! 1310: out your papers for your grandparents or to prepare invitations to a party. ! 1311: |cw(|sp(|)big) or |cw(|sp(|)small) ! 1312: will still provide one size bigger or smaller, respectively. ! 1313: |p ! 1314: Font families provide complementary styles for each of the four fonts: ! 1315: bold, italics, roman, and cw. ! 1316: The standard font family is times. ! 1317: Alternative font families include ! 1318: palatino, helvetica, bembo, optima, souvenir, and cw, ! 1319: but not all families are available on all output devices. ! 1320: Some examples are shown in Table |remember(The alphabet in common type families). ! 1321: To select helvetica, type |cw<|sp(|)style( font_family helvetica)>. ! 1322: ! 1323: |begin(around) ! 1324: \!.sp -1 ! 1325: |table_caption(The alphabet in common type families) ! 1326: |save(The alphabet in common type families) ! 1327: |begin(verbatim) ! 1328: .ta .7i 1.3i ! 1329: |comment{|b<Family Face Sample>} ! 1330: |r(times roman abcdefghijklm...uvwxyz) ! 1331: |i( italics abcdefghijklm...uvwxyz) ! 1332: |b( bold abcdefghijklm...uvwxyz) ! 1333: |style(font_family palatino) ! 1334: |r(palatino roman abcdefghijklm...uvwxyz) ! 1335: |i( italics abcdefghijklm...uvwxyz) ! 1336: |b( bold abcdefghijklm...uvwxyz) ! 1337: |style(font_family helvetica) ! 1338: |r(helvetica roman abcdefghijklm...uvwxyz) ! 1339: |i( italics abcdefghijklm...uvwxyz) ! 1340: |b( bold abcdefghijklm...uvwxyz) ! 1341: |end(verbatim) ! 1342: ! 1343: |style(font_family times) ! 1344: |end(around) ! 1345: ! 1346: .ta ! 1347: |p ! 1348: ! 1349: |style(double_space) ! 1350: ! 1351: |cw<|sp(|)style(double_space)> double spaces the text, while ! 1352: |cw<|sp(|)style( single_space)> restores single spacing. ! 1353: ! 1354: |style(single_space) ! 1355: ! 1356: You can change the paragraph style throughout the rest of your document ! 1357: by typing |cw<|sp(|)style(paragraph_style indented)> or ! 1358: |cw<|sp(|)style(paragraph_style numbered)>, ! 1359: after which the simple command |cw<|sp(|)p> ! 1360: will produce indented or numbered paragraphs. ! 1361: To indent or number a single paragraph, ! 1362: use |cw<|sp(|)p(i)> or |cw<|sp(|)p(n)>, respectively. ! 1363: To restore the original style paragraph, ! 1364: type |cw<|sp(|)style( paragraph_style flushed)>. ! 1365: |p ! 1366: The command |cw<|sp(|)style(one_column)> begins formatting text in one column. ! 1367: The command |cw<|sp(|)style(two_column)> restores two column formatting. ! 1368: ! 1369: |subsection(Lists) ! 1370: ! 1371: There are nine types of lists, which differ only in the labeling of list items: ! 1372: ! 1373: |begin(cwfigure) ! 1374: |sp(|)number_list ! 1375: |sp(|)A_list ! 1376: |sp(|)a_list ! 1377: |sp(|)I_list ! 1378: |sp(|)i_list ! 1379: |sp(|)p_number_list ! 1380: |sp(|)p_a_list ! 1381: |sp(|)dash_list ! 1382: |sp(|)bullet_list ! 1383: |end(cwfigure) ! 1384: ! 1385: A simple numbered list is created by the following commands: ! 1386: ! 1387: |begin(cwfigure) ! 1388: |sp(|)begin(number_list) ! 1389: |sp(|)item first item ! 1390: |sp(|)item second item is on two lines in the ! 1391: input, but will be filled in the output ! 1392: |sp(|)item third ! 1393: |sp(|)end(number_list) ! 1394: |end(cwfigure) ! 1395: ! 1396: |p ! 1397: |cw<|sp(|)A_list> items are marked with capital letters; ! 1398: |cw<|sp(|)a_list> with lower-case letters followed by '|cw<)>'. ! 1399: |cw<|sp(|)I_list> items are marked with upper-case roman numerals; ! 1400: |cw<|sp(|)i_list> with lower-case roman numerals followed by '|cw<)>'. ! 1401: Number and lower-case letter labels are enclosed in parentheses in ! 1402: |cw<|sp(|)p_number_list> and |cw<|sp(|)p_a_list>, respectively. ! 1403: Bullets or dashes label the items in a |cw<|sp(|)bullet_list> ! 1404: or a |cw<|sp(|)dash_list>, respectively. ! 1405: |p ! 1406: Multi-level lists of up to six levels can be built by putting lists inside ! 1407: lists. ! 1408: A standard outline format of six levels consists of an outer |cw<|sp(|)I_list>, ! 1409: an |cw<|sp(|)A_list>, a |cw<|sp(|)number_list>, an |cw<|sp(|)a_list>, ! 1410: an inner |cw<|sp(|)number_list>, and a |cw<|sp(|)p_a_list>. ! 1411: The following produces, in outline format, a description of two kingdoms. ! 1412: ! 1413: |begin(cwfigure) ! 1414: |sp(|)begin(I_list) ! 1415: |sp(|)item Animal Kingdom ! 1416: |sp(|)begin(A_list) ! 1417: |sp(|)item Arthropods ! 1418: |sp(|)begin(number_list) ! 1419: |sp(|)item Trilobites ! 1420: |sp(|)item Insects ! 1421: |sp(|)end(number_list) ! 1422: |sp(|)item Chordates ! 1423: |sp(|)begin(number_list) ! 1424: |sp(|)item Vertebrates ! 1425: |sp(|)begin(a_list) ! 1426: |sp(|)item Birds ! 1427: |sp(|)item Reptiles ! 1428: |sp(|)item Mammals ! 1429: |sp(|)begin(number_list) ! 1430: |sp(|)item Marsupials ! 1431: |sp(|)item Monotremes ! 1432: |sp(|)begin(p_a_list) ! 1433: |sp(|)item platypus ! 1434: |sp(|)item echidna ! 1435: |sp(|)end(p_a_list) ! 1436: |sp(|)item Placental mammals ! 1437: |sp(|)begin(p_a_list) ! 1438: |sp(|)item Cetacea ! 1439: |sp(|)item Primates ! 1440: |sp(|)end(p_a_list) ! 1441: |sp(|)end(number_list) ! 1442: |sp(|)end(a_list) ! 1443: |sp(|)item Notocords ! 1444: |sp(|)end(number_list) ! 1445: |sp(|)item Mollusks ! 1446: |sp(|)end(A_list) ! 1447: |sp(|)item Plant Kingdom ! 1448: |sp(|)end(I_list) ! 1449: |end(cwfigure) ! 1450: ! 1451: |begin(I_list) ! 1452: |item Animal Kingdom ! 1453: |begin(A_list) ! 1454: |item Arthropods ! 1455: |begin(number_list) ! 1456: |item Trilobites ! 1457: |item Insects ! 1458: |end(number_list) ! 1459: |item Chordates ! 1460: |begin(number_list) ! 1461: |item Vertebrates ! 1462: |begin(a_list) ! 1463: |item Birds ! 1464: |item Reptiles ! 1465: |item Mammals ! 1466: |begin(number_list) ! 1467: |item Marsupials ! 1468: |item Monotremes ! 1469: |begin(p_a_list) ! 1470: |item platypus ! 1471: |item echidna ! 1472: |end(p_a_list) ! 1473: |item Placental mammals ! 1474: |begin(p_a_list) ! 1475: |item Cetacea ! 1476: |item Primates ! 1477: |end(p_a_list) ! 1478: |end(number_list) ! 1479: |end(a_list) ! 1480: |item Notocords ! 1481: |end(number_list) ! 1482: |item Mollusks ! 1483: |end(A_list) ! 1484: |item Plant Kingdom ! 1485: |end(I_list) ! 1486: ! 1487: |subsection(Footnotes) ! 1488: ! 1489: A numbered footnote is generated by the command |cw[|sp(|)footnote] appended to ! 1490: the running text.|footnote(This is the first numbered footnote on this page) ! 1491: The text |cw<|sp(|)footnote(This is the second numbered footnote on this page)> ! 1492: produces ! 1493: numbered footnotes.|footnote(This is the second numbered footnote on this page) ! 1494: Analogously, |cw<|sp(|)dagnote> and |cw<|sp(|)starnote> produce ! 1495: daggered footnotes|dagnote(This is a daggered footnote) ! 1496: and starred footnotes.|starnote(This is a starred footnote) ! 1497: Footnote types can be mixed, as in this section. ! 1498: ! 1499: |subsection(References) ! 1500: ! 1501: |i<Monk> uses |i<prefer> to extract references from a ! 1502: bibliographic database.|reference<Derr Prefer> ! 1503: To use |i<prefer> capabilities with |i<monk>, ! 1504: there are only two additional things you need to know. ! 1505: First, the |cw<|sp(|)reference> command passes a partial reference to ! 1506: |i<prefer>, as in: ! 1507: |cw<|sp(|)|sp(zero width space)reference( Derr Prefer)>. ! 1508: When this command is used, |i<monk> will automatically invoke |i<prefer>. ! 1509: Second, the |cw<|sp(minus)R> option to |i<monk> serves to specify ! 1510: a local or private bibliography file: ! 1511: ! 1512: |begin(cwfigure) ! 1513: monk |sp(minus)Sproof |sp(minus)R bibliofile myfile ! 1514: |end(cwfigure) ! 1515: ! 1516: |section(Advanced Monk) ! 1517: ! 1518: |subsection(Preparing a large document) ! 1519: ! 1520: When working on large documents, ! 1521: it is important to be able to run off parts of the document separately, ! 1522: while maintaining correct numbering and references to other parts of the document. ! 1523: You can do this with |i<monk> by dividing the document into several files ! 1524: and identifying each file appropriately. ! 1525: |p ! 1526: The top-level file should contain all style information ! 1527: and include the various segments. ! 1528: For a book with three chapters, the parent file |cw<myfile> might look like: ! 1529: ! 1530: |begin(cwfigure) ! 1531: |sp(|)make(kluwer) ! 1532: |sp(|)style(page_width 7i) ! 1533: |sp(|)insert(chapter1) ! 1534: |sp(|)insert(chapter2) ! 1535: |sp(|)insert(chapter3) ! 1536: |end(cwfigure) ! 1537: ! 1538: The first line of each chapter file should identify it as a part ! 1539: of |cw<myfile>: |cw<|sp(|)part(myfile)>. ! 1540: |p ! 1541: When you run off the entire document, |i<monk> will remember the assorted ! 1542: section, display, and page numbers. ! 1543: ! 1544: |comment{as well as information you save using ! 1545: |cw<|sp(|)save> or |cw<|sp(|)savepage>.} ! 1546: ! 1547: These numbers will then be used when you run off individual parts. ! 1548: Note that the numbers should always be reasonable approximations, but may ! 1549: not always be correct. ! 1550: When several sections are changing simultaneously, you will need to ! 1551: generate the entire document periodically to guarantee that all numbers ! 1552: are exact. ! 1553: ! 1554: |comment{ ! 1555: |subsection(Table of contents) ! 1556: To run off a table of contents with your document, ! 1557: use the |cw(|sp(minus)ZZZ) option. ! 1558: To run off only a table of contents, ZZZ. ! 1559: By default, this will produce ZZZ. ! 1560: |p ! 1561: You have the following options: ZZZ.} ! 1562: ! 1563: |comment{ ! 1564: |section(Error messages) ! 1565: The following are the error messages currently given by monk: ! 1566: |begin(figure) ! 1567: |begin(cw) ! 1568: usage: monk [-d database_dir -n ] filename; no option g ! 1569: fiugre is not a monk command: use ``|sp(|)sp(|sp(|))'' to put `|sp(|)' in text ! 1570: Expecting end for figure begun at line 112; got end for table ! 1571: No end for figure begun at line 112 ! 1572: Unexpected end for figure ! 1573: Mismatched delimiters around figure; expecting >, got EOF ! 1574: Mismatched delimiters around figure; expecting >, got ] ! 1575: |end(cw) ! 1576: |end(figure)} ! 1577: ...... ! 1578: ! 1579: |subsection(Modifying the standard formats) ! 1580: ! 1581: You can redefine existing |i<monk> commands, ! 1582: such as |cw<|sp(|)ret_address> and |cw<|sp(|)p>, ! 1583: and you can create new document types using the standard ! 1584: |i<monk> database language. ! 1585: An early description of the database language is available,|reference{monk ! 1586: database} ! 1587: but there is no up-to-date guide. ! 1588: When the dust has settled, ! 1589: a new manual will be written. ! 1590: Currently, any augmentations you write should be considered temporary. ! 1591: ! 1592: |comment{ ! 1593: When you change an existing |i<monk> command, the message ! 1594: ``|cw<file line_number: Redefining definition_name>'' ! 1595: will be printed, where |i<file> and |i<line_number> identify where the ! 1596: redefinition of |i<definition_name> was encountered. ! 1597: A definition can appear anywhere in user text, but must precede its first usage. ! 1598: We recommend maintaining separate files of definitions, rather than including ! 1599: them in-line with your text. ! 1600: The definition file can be typed on your command line, ! 1601: |cw<monk definition_file text_file>, or ! 1602: included in your text file after the |cw<|sp(|)make> command, ! 1603: |cw<|sp(|)insert(definition_file)>. ! 1604: If you change a definition in the middle of a document, ! 1605: all instances before the redefinition will use the original, ! 1606: all later instances the new. ! 1607: |p ! 1608: Certain words are reserved as internal database commands and ! 1609: cannot be redefined: ! 1610: |cw<associate>, |cw<attribute>, |cw<begin>, |cw<comment>, |cw<define>, |cw<end>, ! 1611: |cw<environment>, |cw<for>, |cw<if>, |cw<else>, |cw<ifvalue>, |cw<insert>, ! 1612: F|cw<macro>, |cw<part>, and |cw<source>.} ! 1613: ! 1614: |p ! 1615: You can also cheat by adding commands in the underlying ! 1616: formatting language;|reference<troff latest reference>|reference<troff tutorial latest> ! 1617: this method may offer quick fixes, ! 1618: but the results might not work smoothly with the |i<monk> program. ! 1619: ! 1620: |subsection(Other related programs) ! 1621: ! 1622: There are two other programs useful to |i(monk) users: ! 1623: |i(demonk) is the moral equivalent of |i(deroff), and |i(monkmerge) ! 1624: is the functional equivalent of |i(soelim). ! 1625: These tools are helpful when processing |i(monk) files by other ! 1626: programs like |i(spell). ! 1627: ! 1628: |reference_placement ! 1629: ! 1630: |new_page ! 1631: .ad l ! 1632: |appendix(List of Commands) ! 1633: ! 1634: |section(Global Commands) ! 1635: ! 1636: |insert(commands/global) ! 1637: ! 1638: |section(Letters) ! 1639: ! 1640: |insert(commands/letter) ! 1641: ! 1642: |section(Memoranda) ! 1643: ! 1644: |insert(commands/memo) ! 1645: ! 1646: |section(Merit Review Form 1) ! 1647: ! 1648: |insert(commands/form1) ! 1649: ! 1650: |section(Bi-Annual Research Reports) ! 1651: ! 1652: |insert(commands/research) ! 1653: ! 1654: |section(Center Phone Books) ! 1655: ! 1656: |insert(commands/centerpb) ! 1657: ! 1658: |section(Technical Memoranda) ! 1659: ! 1660: |insert(commands/tm) ! 1661: ! 1662: |section(Internal Memoranda) ! 1663: ! 1664: |insert(commands/im) ! 1665: ! 1666: |section(Technical Correspondence) ! 1667: ! 1668: |insert(commands/tc) ! 1669: ! 1670: |section(Release Papers) ! 1671: ! 1672: |insert(commands/rp) ! 1673: ! 1674: |section(Association for Computing Machinery Proceedings) ! 1675: ! 1676: |insert(commands/acm) ! 1677: ! 1678: |section(Conference Proceedings Model Sheets) ! 1679: ! 1680: |insert(commands/model) ! 1681: ! 1682: |section(Computer Science Press Books) ! 1683: ! 1684: |insert(commands/cspress) ! 1685: ! 1686: |section(Kluwer Academic Publishers Books) ! 1687: ! 1688: |insert(commands/kluwer) ! 1689: ! 1690: |section(Nursing Home Song Sheets) ! 1691: ! 1692: |insert(commands/song) ! 1693: ! 1694: .ad b ! 1695: ! 1696: |appendix(List of Special Characters) ! 1697: |save(special_appendix) ! 1698: ! 1699: The special characters that control spacing and carriage movements are ! 1700: described in section |remember(special_section). ! 1701: All other special characters are listed below. ! 1702: For each character, ! 1703: column |cw<Char> contains the final printed character ! 1704: and column |cw<Name> contains the keywords ! 1705: given to |i<monk> to specify the character. ! 1706: To print the character |sp(rhand), type |cw<|sp(|)sp(rhand)> ! 1707: in your input file. ! 1708: ! 1709: |insert(examples/special) ! 1710: ! 1711: |appendix(List Of Examples) ! 1712: ! 1713: This appendix provides the input text for examples that appear in ! 1714: this |i<Monk> user guide. ! 1715: They are not intended for a novice user, ! 1716: but for those already familiar with these formatting tools. ! 1717: If you want to learn how to use |i<tbl> or |i<pic> ! 1718: do not look at these examples. ! 1719: Please read the guides that are listed in the references. ! 1720: These guides, which are readily available, ! 1721: begin with simple examples. ! 1722: ! 1723: |comment<|section(Table in section |remember(table_example))> ! 1724: |section(Table in section 4.12) ! 1725: |save(table_appendix) ! 1726: ! 1727: .ta 1.4i 2.6i ! 1728: ! 1729: |begin(figure) ! 1730: |source(examples/example.table) ! 1731: |end(figure) ! 1732: ! 1733: .ta ! 1734: ! 1735: |comment<|section(Picture in section |remember(picture_example))> ! 1736: |section(Picture in section 4.14) ! 1737: ! 1738: .ta .2i ! 1739: ! 1740: |begin(figure) ! 1741: |source(examples/example.pic1) ! 1742: |end(figure) ! 1743: ! 1744: .ta ! 1745: ! 1746: |keywords(Word Processing, ! 1747: Text Processing, ! 1748: Formatting) ! 1749: ! 1750: |comment{ ! 1751: |mercury(cmp) ! 1752: |att(is_release yes) ! 1753: |director_name(J. L. Flanagan) ! 1754: |distribute_complete_memo(Executive Directors 112 ! 1755: Directors 112 ! 1756: Department Heads 1122 ! 1757: Department Heads 1127 ! 1758: Directors 113 ! 1759: Department Heads 1138) ! 1760: |distribute_cover_sheet(A. A. Penzias ! 1761: 1122 MTS) ! 1762: |cover_sheet}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.