|
|
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.