Annotation of 43BSDReno/share/doc/usd/22.memacros/intro.me, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted
                      5: .\" provided that the above copyright notice and this paragraph are
                      6: .\" duplicated in all such forms and that any documentation,
                      7: .\" advertising materials, and other materials related to such
                      8: .\" distribution and use acknowledge that the software was developed
                      9: .\" by the University of California, Berkeley.  The name of the
                     10: .\" University may not be used to endorse or promote products derived
                     11: .\" from this software without specific prior written permission.
                     12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     15: .\"
                     16: .\"    @(#)intro.me    6.4 (Berkeley) 7/17/89
                     17: .\"
                     18: .UC 7
                     19: .ll 6.5i
                     20: .lt 6.5i
                     21: .pn 0
                     22: .ds MO 2.27\"          version of -me to which this applies
                     23: .nr si 3n
                     24: \".he 'USING NROFF AND \-ME''%'
                     25: .eh 'USD:22-%''Writing Papers with NROFF using \-me'
                     26: .oh 'Writing Papers with NROFF using \-me''USD:22-%'
                     27: .ds U \s-1UNIX\s0
                     28: .ds N \s-1NROFF\s0
                     29: .ds T \s-1TROFF\s0
                     30: .+c
                     31: .(l C
                     32: .sz 14
                     33: .b "Writing Papers with NROFF using \-me"
                     34: .sz
                     35: .sp 2
                     36: .ul
                     37: Eric P. Allman*
                     38: .(f
                     39: *Author's current address:
                     40: Britton Lee, Inc.,
                     41: 1919 Addison Suite 105,
                     42: Berkeley, California 94704.
                     43: .)f
                     44: .sp
                     45: Project INGRES
                     46: Electronics Research Laboratory
                     47: University of California, Berkeley
                     48: Berkeley, California  94720
                     49: .)l
                     50: .sp 4
                     51: .pp
                     52: This document describes
                     53: the text processing facilities
                     54: available on the \*U\(dg
                     55: .(f
                     56: \(dg\*U is a trademark
                     57: of AT&T Bell Laboratories
                     58: .)f
                     59: operating system
                     60: via \*N\(dg and the
                     61: \-me
                     62: macro package.
                     63: It is assumed
                     64: that the reader
                     65: already is generally familiar
                     66: with the \*U operating system
                     67: and a text editor
                     68: such as
                     69: .b ex .
                     70: This is intended to be a casual introduction,
                     71: and
                     72: as such not all material is covered.
                     73: In particular,
                     74: many variations and additional features
                     75: of the \-me macro package
                     76: are not explained.
                     77: For a complete discussion of this
                     78: and other issues,
                     79: see
                     80: .ul
                     81: The \-me Reference Manual
                     82: and
                     83: .ul
                     84: The \*N/\*T Reference Manual.
                     85: .pp
                     86: \*N, a computer program
                     87: that runs on the \*U operating system,
                     88: reads an input file
                     89: prepared by the user
                     90: and outputs a formatted paper
                     91: suitable for publication or framing.
                     92: The input consists of
                     93: .i text ,
                     94: or words to be printed,
                     95: and
                     96: .i requests ,
                     97: which give instructions
                     98: to the \*N program
                     99: telling how to format the printed copy.
                    100: .pp
                    101: Section 1
                    102: describes the basics
                    103: of text processing.
                    104: Section 2
                    105: describes the basic requests.
                    106: Section 3
                    107: introduces displays.
                    108: Annotations,
                    109: such as footnotes,
                    110: are handled in
                    111: section 4.
                    112: The more complex requests
                    113: which are not discussed in section 2
                    114: are covered in section 5.
                    115: Finally,
                    116: section 6
                    117: discusses things you will need
                    118: to know
                    119: if you want to typeset documents.
                    120: If you are a novice,
                    121: you probably won't want to read beyond section 4
                    122: until you have tried some of the basic features out.
                    123: .pp
                    124: When you have your raw text ready,
                    125: call the \*N formatter by typing
                    126: as a request to the \*U shell:
                    127: .(b
                    128: nroff \-me \-T\c
                    129: .i "type files"
                    130: .)b
                    131: where
                    132: .i type
                    133: describes the type of terminal
                    134: you are outputting to.
                    135: Common values are
                    136: .b dtc
                    137: for a DTC 300s
                    138: (daisy-wheel type)
                    139: printer and
                    140: .b lpr
                    141: for the line printer.
                    142: If the
                    143: .b \-T
                    144: flag is omitted,
                    145: a
                    146: .q "lowest common denominator"
                    147: terminal is assumed;
                    148: this is good for previewing output
                    149: on most terminals.
                    150: A complete description of options
                    151: to the \*N command can be found in
                    152: .ul
                    153: The \*N/\*T Reference Manual.
                    154: .pp
                    155: The word
                    156: .i argument
                    157: is used in this manual
                    158: to mean a word or number
                    159: which appears on the same line
                    160: as a request
                    161: which modifies the meaning
                    162: of that request.
                    163: For example,
                    164: the request
                    165: .(b
                    166: \&.sp
                    167: .)b
                    168: spaces one line,
                    169: but
                    170: .(b
                    171: \&.sp 4
                    172: .)b
                    173: spaces four lines.
                    174: The number
                    175: .b 4
                    176: is an
                    177: .i argument
                    178: to the
                    179: .b .sp
                    180: request
                    181: which says to space four lines
                    182: instead of one.
                    183: Arguments are separated from the request
                    184: and from each other
                    185: by spaces.
                    186: .sh 1 "Basics of Text Processing"
                    187: .pp
                    188: The primary function
                    189: of \*N
                    190: is to
                    191: .i collect
                    192: words from input lines,
                    193: .i fill
                    194: output lines with those words,
                    195: .i justify
                    196: the right hand margin by inserting extra spaces
                    197: in the line,
                    198: and output the result.
                    199: For example,
                    200: the input:
                    201: .(b
                    202: Now is the time
                    203: for all good men
                    204: to come to the aid
                    205: of their party.
                    206: Four score and seven
                    207: years ago,...
                    208: .)b
                    209: will be read,
                    210: packed onto output lines,
                    211: and justified
                    212: to produce:
                    213: .(b F
                    214: Now is the time
                    215: for all good men
                    216: to come to the aid
                    217: of their party.
                    218: Four score and seven
                    219: years ago,...
                    220: .)b
                    221: Sometimes you may want to start a new output line
                    222: even though the line you are on
                    223: is not yet full;
                    224: for example,
                    225: at the end of a paragraph.
                    226: To do this
                    227: you can cause a
                    228: .i break ,
                    229: which
                    230: starts a new output line.
                    231: Some requests
                    232: cause a break automatically,
                    233: as do blank input lines
                    234: and input lines beginning with a space.
                    235: .pp
                    236: Not all input lines
                    237: are text to be formatted.
                    238: Some of the input lines
                    239: are
                    240: .i requests
                    241: which describe
                    242: how to format the text.
                    243: Requests always have a period
                    244: or an apostrophe
                    245: (\c
                    246: .q "\|\(aa\|" )
                    247: as the first character
                    248: of the input line.
                    249: .pp
                    250: The text formatter
                    251: also does more complex things,
                    252: such as automatically numbering pages,
                    253: skipping over page folds,
                    254: putting footnotes in the correct place,
                    255: and so forth.
                    256: .pp
                    257: I can offer you a few hints
                    258: for preparing text
                    259: for input to \*N.
                    260: First,
                    261: keep the input lines short.
                    262: Short input lines are easier to edit,
                    263: and \*N will pack words onto longer lines
                    264: for you anyhow.
                    265: In keeping with this,
                    266: it is helpful
                    267: to begin a new line
                    268: after every period,
                    269: comma,
                    270: or phrase,
                    271: since common corrections
                    272: are to add or delete sentences
                    273: or phrases.
                    274: Second,
                    275: do not put spaces at the end of lines,
                    276: since this can sometimes confuse the \*N
                    277: processor.
                    278: Third,
                    279: do not hyphenate words at the end of lines
                    280: (except words that should have hyphens in them,
                    281: such as
                    282: .q mother-in-law );
                    283: \*N is smart enough to hyphenate words
                    284: for you as needed,
                    285: but is not smart enough
                    286: to take hyphens out
                    287: and join a word back together.
                    288: Also,
                    289: words such as
                    290: .q mother-in-law
                    291: should not be broken
                    292: over a line,
                    293: since then you will get a space
                    294: where not wanted,
                    295: such as
                    296: .tr @-
                    297: .nh
                    298: .q "mother@\ in@law" .
                    299: .br
                    300: .tr @@
                    301: .hy 14
                    302: .sh 1 "Basic Requests"
                    303: .sh 2 "Paragraphs"
                    304: .pp
                    305: Paragraphs are begun
                    306: by using the
                    307: .b .pp
                    308: request.
                    309: For example,
                    310: the input:
                    311: .(b
                    312: \&.pp
                    313: Now is the time for all good men
                    314: to come to the aid of their party.
                    315: Four score and seven years ago,...
                    316: .)b
                    317: produces a blank line
                    318: followed by an indented first line.
                    319: The result is:
                    320: .(b F
                    321: .ti +\n(piu
                    322: Now is the time for all good men
                    323: to come to the aid of their party.
                    324: Four score and seven years ago,...
                    325: .)b
                    326: .pp
                    327: Notice that the sentences
                    328: of the paragraphs
                    329: .i "must not"
                    330: begin with a space,
                    331: since blank lines
                    332: and lines beginning with spaces
                    333: cause a break.
                    334: For example,
                    335: if I had typed:
                    336: .(b
                    337: \&.pp
                    338: Now is the time for all good men
                    339:       to come to the aid of their party.
                    340: Four score and seven years ago,...
                    341: .)b
                    342: The output would be:
                    343: .(b F
                    344: .ti +\n(piu
                    345: Now is the time for all good men
                    346:       to come to the aid of their party.
                    347: Four score and seven years ago,...
                    348: .)b
                    349: A new line begins after the word
                    350: .q men
                    351: because the second line began with a space character.
                    352: .pp
                    353: There are many
                    354: fancier
                    355: types of paragraphs,
                    356: which will be described later.
                    357: .sh 2 "Headers and Footers"
                    358: .pp
                    359: Arbitrary headers and footers
                    360: can be put
                    361: at the top and bottom
                    362: of every page.
                    363: Two requests
                    364: of the form
                    365: .b .he \ \c
                    366: .i title
                    367: and
                    368: .b .fo \ \c
                    369: .i title
                    370: define the titles to put at the head and the foot
                    371: of every page,
                    372: respectively.
                    373: The titles are called
                    374: .i three-part
                    375: titles,
                    376: that is,
                    377: there is a left-justified part,
                    378: a centered part,
                    379: and a right-justified part.
                    380: To separate these three parts
                    381: the first character of
                    382: .i title
                    383: (whatever it may be)
                    384: is used as a delimiter.
                    385: Any character may be used,
                    386: but
                    387: backslash
                    388: and double quote marks
                    389: should be avoided.
                    390: The percent sign
                    391: is replaced by the current page number
                    392: whenever found in the title.
                    393: For example,
                    394: the input:
                    395: .(b
                    396: \&.he \(aa\(aa%\(aa\(aa
                    397: \&.fo \(aaJane Jones\(aa\(aaMy Book\(aa
                    398: .)b
                    399: results in the page number
                    400: centered at the top
                    401: of each page,
                    402: .q "Jane Jones"
                    403: in the lower left corner,
                    404: and
                    405: .q "My Book"
                    406: in the lower right corner.
                    407: .sh 2 "Double Spacing"
                    408: .pp
                    409: .ls 2
                    410: \*N will double space output text automatically if you
                    411: use the request
                    412: .b ".ls\ 2" ,
                    413: as is done in this section.
                    414: You can revert to single spaced mode
                    415: by typing
                    416: .b ".ls\ 1" .
                    417: .ls 1
                    418: .sh 2 "Page Layout"
                    419: .pp
                    420: A number of requests allow
                    421: you to change the way the printed copy looks,
                    422: sometimes called the
                    423: .i layout
                    424: of the output page.
                    425: Most of these requests adjust the placing
                    426: of
                    427: .q "white space"
                    428: (blank lines or spaces).
                    429: In these explanations,
                    430: characters in italics
                    431: should be replaced with values you wish to use;
                    432: bold characters
                    433: represent characters which should actually be typed.
                    434: .pp
                    435: The
                    436: .b .bp
                    437: request
                    438: starts a new page.
                    439: .pp
                    440: The request
                    441: .b .sp \ \c
                    442: .i N
                    443: leaves
                    444: .i N
                    445: lines of blank space.
                    446: .i N
                    447: can be omitted
                    448: (meaning skip a single line)
                    449: or can be of the form
                    450: .i N \^\c
                    451: .b i
                    452: (for
                    453: .i N
                    454: inches)
                    455: or
                    456: .i N \^\c
                    457: .b c
                    458: (for
                    459: .i N
                    460: centimeters).
                    461: For example, the input:
                    462: .(b
                    463: \&.sp 1.5i
                    464: My thoughts on the subject
                    465: \&.sp
                    466: .)b
                    467: leaves one and a half inches of space,
                    468: followed by the line
                    469: .q "My thoughts on the subject" ,
                    470: followed by a single blank line.
                    471: .pp
                    472: The
                    473: .b .in \ \c
                    474: .i +N
                    475: request
                    476: changes the amount of white space
                    477: on the left of the page
                    478: (the
                    479: .i indent ).
                    480: The argument
                    481: .i N
                    482: can be of the form
                    483: .b + \c
                    484: .i N
                    485: (meaning leave
                    486: .i N
                    487: spaces more than you are already leaving),
                    488: .b \- \c
                    489: .i N
                    490: (meaning leave less than you do now),
                    491: or just
                    492: .i N
                    493: (meaning leave exactly
                    494: .i N
                    495: spaces).
                    496: .i N
                    497: can be of the form
                    498: .i N \^\c
                    499: .b i
                    500: or
                    501: .i N \^\c
                    502: .b c
                    503: also.
                    504: For example,
                    505: the input:
                    506: .(b
                    507: initial text
                    508: \&.in 5
                    509: some text
                    510: \&.in +1i
                    511: more text
                    512: \&.in \-2c
                    513: final text
                    514: .)b
                    515: produces
                    516: .q "some text"
                    517: indented exactly five spaces
                    518: from the left margin,
                    519: .q "more text"
                    520: indented five spaces
                    521: plus one inch
                    522: from the left margin
                    523: (fifteen spaces
                    524: on a pica typewriter),
                    525: and
                    526: .q "final text"
                    527: indented five spaces
                    528: plus one inch
                    529: minus two centimeters
                    530: from the margin.
                    531: That is,
                    532: the output is:
                    533: .(b
                    534: initial text
                    535: .in +5
                    536: some text
                    537: .in +1i
                    538: more text
                    539: .in -2c
                    540: final text
                    541: .)b
                    542: .pp
                    543: The
                    544: .b .ti \ \c
                    545: .i +N
                    546: (temporary indent)
                    547: request is used like
                    548: .b .in \ \c
                    549: .i +N
                    550: when the indent
                    551: should apply to one line only,
                    552: after which it should revert
                    553: to the previous indent.
                    554: For example,
                    555: the input:
                    556: .(b
                    557: \&.in 1i
                    558: \&.ti 0
                    559: Ware, James R.  The Best of Confucius,
                    560: Halcyon House, 1950.
                    561: An excellent book containing translations of
                    562: most of Confucius\(aa most delightful sayings.
                    563: A definite must for anyone interested in the early foundations
                    564: of Chinese philosophy.
                    565: .)b
                    566: produces:
                    567: .in 1i+\n($iu
                    568: .ti \n($iu
                    569: Ware, James R.  The Best of Confucius,
                    570: Halcyon House, 1950.
                    571: An excellent book containing translations of
                    572: most of Confucius' most delightful sayings.
                    573: A definite must for anyone interested in the early foundations
                    574: of Chinese philosophy.
                    575: .pp
                    576: Text lines can be centered
                    577: by using the
                    578: .b .ce
                    579: request.
                    580: The line after the
                    581: .b .ce
                    582: is centered
                    583: (horizontally)
                    584: on the page.
                    585: To center more than one line,
                    586: use
                    587: .b .ce \ \c
                    588: .i N
                    589: (where
                    590: .i N
                    591: is the number of lines to center),
                    592: followed by the
                    593: .i N
                    594: lines.
                    595: If you want to center many lines
                    596: but don't want to count them,
                    597: type:
                    598: .(b
                    599: \&.ce 1000
                    600: lines to center
                    601: \&.ce 0
                    602: .)b
                    603: The
                    604: .b ".ce\ 0"
                    605: request tells \*N to center zero more lines,
                    606: in other words,
                    607: stop centering.
                    608: .pp
                    609: All of these requests
                    610: cause a break;
                    611: that is,
                    612: they always start
                    613: a new line.
                    614: If you want to start a new line
                    615: without performing any other action,
                    616: use
                    617: .b .br .
                    618: .sh 2 "Underlining"
                    619: .pp
                    620: Text can be underlined
                    621: using the
                    622: .b .ul
                    623: request.
                    624: The
                    625: .b .ul
                    626: request
                    627: causes the next input line
                    628: to be underlined when output.
                    629: You can underline multiple lines
                    630: by stating a count of
                    631: .i input
                    632: lines to underline,
                    633: followed by those lines
                    634: (as with the
                    635: .b .ce
                    636: request).
                    637: For example,
                    638: the input:
                    639: .(b
                    640: \&.ul 2
                    641: Notice that these two input lines
                    642: are underlined.
                    643: .)b
                    644: will underline those eight words in \*N.
                    645: (In \*T they will be set in italics.)
                    646: .sh 1 "Displays"
                    647: .pp
                    648: Displays are sections of text
                    649: to be set off
                    650: from the body of the paper.
                    651: Major quotes,
                    652: tables,
                    653: and figures
                    654: are types of displays,
                    655: as are all the examples
                    656: used in this document.
                    657: All displays
                    658: except centered blocks
                    659: are output
                    660: single spaced.
                    661: .sh 2 "Major Quotes"
                    662: .pp
                    663: Major quotes
                    664: are quotes which are several lines long,
                    665: and hence are set in from the rest
                    666: of the text
                    667: without quote marks
                    668: around them.
                    669: These can be generated
                    670: using the commands
                    671: .b .(q
                    672: and
                    673: .b .)q
                    674: to surround the quote.
                    675: For example,
                    676: the input:
                    677: .(b
                    678: As Weizenbaum points out:
                    679: \&.(q
                    680: It is said that to explain is to explain away.
                    681: This maxim is nowhere so well fulfilled
                    682: as in the areas of computer programming,...
                    683: \&.)q
                    684: .)b
                    685: generates as output:
                    686: .lp
                    687: As Weizenbaum points out:
                    688: .(q
                    689: It is said that to explain is to explain away.
                    690: This maxim is nowhere so well fulfilled
                    691: as in the areas of computer programming,...
                    692: .)q
                    693: .sh 2 "Lists"
                    694: .pp
                    695: A
                    696: .i list
                    697: is an indented,
                    698: single spaced,
                    699: unfilled display.
                    700: Lists should be used
                    701: when the material to be printed
                    702: should not be filled and justified
                    703: like normal text,
                    704: such as columns of figures
                    705: or the examples used in this paper.
                    706: Lists are surrounded
                    707: by the requests
                    708: .b .(l
                    709: and
                    710: .b .)l .
                    711: For example,
                    712: type:
                    713: .(b
                    714: Alternatives to avoid deadlock are:
                    715: \&.(l
                    716: Lock in a specified order
                    717: Detect deadlock and back out one process
                    718: Lock all resources needed before proceeding
                    719: \&.)l
                    720: .)b
                    721: will produce:
                    722: .br
                    723: Alternatives to avoid deadlock are:
                    724: .(l
                    725: Lock in a specified order
                    726: Detect deadlock and back out one process
                    727: Lock all resources needed before proceeding
                    728: .)l
                    729: .sh 2 "Keeps"
                    730: .pp
                    731: A
                    732: .i keep
                    733: is a display of lines
                    734: which are kept on a single page
                    735: if possible.
                    736: An example of where you would use a keep
                    737: might be a diagram.
                    738: Keeps differ from lists
                    739: in that lists may be broken
                    740: over a page boundary
                    741: whereas keeps will not.
                    742: .pp
                    743: Blocks are the basic kind of keep.
                    744: They begin with the request
                    745: .b .(b
                    746: and end with the request
                    747: .b .)b .
                    748: If there is not room on the current page
                    749: for everything in the block,
                    750: a new page is begun.
                    751: This has the unpleasant effect
                    752: of leaving blank space
                    753: at the bottom of the page.
                    754: When this is not appropriate,
                    755: you can use the alternative,
                    756: called
                    757: .i "floating keeps" .
                    758: .pp
                    759: .i "Floating keeps"
                    760: move relative to the text.
                    761: Hence,
                    762: they are good for things
                    763: which will be referred to
                    764: by name,
                    765: such as
                    766: .q "See figure 3" .
                    767: A floating keep will appear
                    768: at the bottom of the current page
                    769: if it will fit;
                    770: otherwise,
                    771: it will appear at the top
                    772: of the next page.
                    773: Floating keeps begin with the line
                    774: .b .(z
                    775: and end with the line
                    776: .b .)z .
                    777: For an example of a floating keep,
                    778: see figure 1.
                    779: .(z
                    780: .in 1i
                    781: .xl -1i
                    782: .hl
                    783: \&.(z
                    784: \&.hl
                    785: Text of keep to be floated.
                    786: \&.sp
                    787: \&.ce
                    788: Figure 1.  Example of a Floating Keep.
                    789: \&.hl
                    790: \&.)z
                    791: .sp
                    792: .ce
                    793: Figure 1.  Example of a Floating Keep.
                    794: .hl
                    795: .)z
                    796: The
                    797: .b .hl
                    798: request is used
                    799: to draw a horizontal line
                    800: so that the figure
                    801: stands out from the text.
                    802: .sh 2 "Fancier Displays"
                    803: .pp
                    804: Keeps and lists are normally collected in
                    805: .i nofill
                    806: mode,
                    807: so that they are good for tables and such.
                    808: If you want a display
                    809: in fill mode
                    810: (for text),
                    811: type
                    812: .b ".(l\ F"
                    813: (Throughout this section,
                    814: comments applied to
                    815: .b .(l
                    816: also apply to
                    817: .b .(b
                    818: and
                    819: .b .(z ).
                    820: This kind of display
                    821: will be indented from both margins.
                    822: For example,
                    823: the input:
                    824: .(b
                    825: \&.(l F
                    826: And now boys and girls,
                    827: a newer, bigger, better toy than ever before!
                    828: Be the first on your block to have your own computer!
                    829: Yes kids, you too can have one of these modern
                    830: data processing devices.
                    831: You too can produce beautifully formatted papers
                    832: without even batting an eye!
                    833: \&.)l
                    834: .)b
                    835: will be output as:
                    836: .(b F
                    837: And now boys and girls,
                    838: a newer, bigger, better toy than ever before!
                    839: Be the first on your block to have your own computer!
                    840: Yes kids, you too can have one of these modern
                    841: data processing devices.
                    842: You too can produce beautifully formatted papers
                    843: without even batting an eye!
                    844: .)b
                    845: .pp
                    846: Lists and blocks are also normally indented
                    847: (floating keeps are normally left justified).
                    848: To get a left-justified list,
                    849: type
                    850: .b ".(l\ L" .
                    851: To get a list centered
                    852: line-for-line,
                    853: type
                    854: .b ".(l C" .
                    855: For example,
                    856: to get a filled,
                    857: left justified list, enter:
                    858: .(b
                    859: \&.(l L F
                    860: text of block
                    861: \&.)l
                    862: .)b
                    863: The input:
                    864: .(b
                    865: \&.(l
                    866: first line of unfilled display
                    867: more lines
                    868: \&.)l
                    869: .)b
                    870: produces the indented text:
                    871: .(b
                    872: first line of unfilled display
                    873: more lines
                    874: .)b
                    875: Typing the character
                    876: .b L
                    877: after the
                    878: .b .(l
                    879: request produces the left justified result:
                    880: .(b L
                    881: first line of unfilled display
                    882: more lines
                    883: .)b
                    884: Using
                    885: .b C
                    886: instead of
                    887: .b L
                    888: produces the line-at-a-time centered output:
                    889: .(b C
                    890: first line of unfilled display
                    891: more lines
                    892: .)b
                    893: .pp
                    894: Sometimes it may be
                    895: that you want to center several lines
                    896: as a group,
                    897: rather than centering them
                    898: one line at a time.
                    899: To do this
                    900: use centered blocks,
                    901: which are surrounded by the requests
                    902: .b .(c
                    903: and
                    904: .b .)c .
                    905: All the lines are centered as a unit,
                    906: such that the longest line is centered
                    907: and the rest are
                    908: lined up around that line.
                    909: Notice that lines
                    910: do not move
                    911: relative to each other
                    912: using centered blocks,
                    913: whereas they do
                    914: using the
                    915: .b C
                    916: argument to keeps.
                    917: .pp
                    918: Centered blocks are
                    919: .i not
                    920: keeps,
                    921: and may be used
                    922: in conjunction
                    923: with keeps.
                    924: For example,
                    925: to center a group of lines
                    926: as a unit
                    927: and keep them
                    928: on one page,
                    929: use:
                    930: .(b
                    931: \&.(b L
                    932: \&.(c
                    933: first line of unfilled display
                    934: more lines
                    935: \&.)c
                    936: \&.)b
                    937: .)b
                    938: to produce:
                    939: .(b L
                    940: .(c
                    941: first line of unfilled display
                    942: more lines
                    943: .)c
                    944: .)b
                    945: If the block requests
                    946: (\c
                    947: .b .(b
                    948: and
                    949: .b .)b )
                    950: had been omitted
                    951: the result would have been the same,
                    952: but with no guarantee
                    953: that the lines of the centered block
                    954: would have all been on one page.
                    955: Note the use of the
                    956: .b L
                    957: argument to
                    958: .b .(b ;
                    959: this causes the centered block
                    960: to center within the entire line
                    961: rather than within the line
                    962: minus the indent.
                    963: Also,
                    964: the center requests
                    965: must
                    966: be nested
                    967: .i inside
                    968: the keep requests.
                    969: .sh 1 "Annotations"
                    970: .pp
                    971: There are a number of requests
                    972: to save text
                    973: for later printing.
                    974: .i Footnotes
                    975: are printed at the bottom of the current page.
                    976: .i "Delayed text"
                    977: is intended to be a variant form
                    978: of footnote;
                    979: the text is printed only 
                    980: when explicitly called for,
                    981: such as at the end of each chapter.
                    982: .i Indexes
                    983: are a type of delayed text
                    984: having a tag
                    985: (usually the page number)
                    986: attached to each entry
                    987: after a row of dots.
                    988: Indexes are also saved
                    989: until called for explicitly.
                    990: .sh 2 "Footnotes"
                    991: .pp
                    992: Footnotes begin with the request
                    993: .b .(f
                    994: and end with the request
                    995: .b .)f .
                    996: The current footnote number is maintained
                    997: automatically,
                    998: and can be used by typing \e**,
                    999: to produce a footnote number\**.
                   1000: .(f
                   1001: \**Like this.
                   1002: .)f
                   1003: The number is automatically incremented
                   1004: after every footnote.
                   1005: For example,
                   1006: the input:
                   1007: .(b
                   1008: \&.(q
                   1009: A man who is not upright
                   1010: and at the same time is presumptuous;
                   1011: one who is not diligent and at the same time is ignorant;
                   1012: one who is untruthful and at the same time is incompetent;
                   1013: such men I do not count among acquaintances.\e**
                   1014: \&.(f
                   1015: \e**James R. Ware,
                   1016: \&.ul
                   1017: The Best of Confucius,
                   1018: Halcyon House, 1950.
                   1019: Page 77.
                   1020: \&.)f
                   1021: \&.)q
                   1022: .)b
                   1023: generates the result:
                   1024: .(q
                   1025: A man who is not upright
                   1026: and at the same time is presumptuous;
                   1027: one who is not diligent and at the same time is ignorant;
                   1028: one who is untruthful and at the same time is incompetent;
                   1029: such men I do not count among acquaintances.\**
                   1030: .(f
                   1031: \**James R. Ware,
                   1032: .ul
                   1033: The Best of Confucius,
                   1034: Halcyon House, 1950.
                   1035: Page 77.
                   1036: .)f
                   1037: .)q
                   1038: It is important
                   1039: that the footnote
                   1040: appears
                   1041: .i inside
                   1042: the quote,
                   1043: so that you can be sure
                   1044: that the footnote
                   1045: will appear
                   1046: on the same page
                   1047: as the quote.
                   1048: .sh 2 "Delayed Text"
                   1049: .pp
                   1050: Delayed text
                   1051: is very similar to a footnote
                   1052: except that it is printed
                   1053: when called for explicitly.
                   1054: This allows a list of
                   1055: references to
                   1056: appear
                   1057: (for example)
                   1058: at the end of each chapter,
                   1059: as is the convention in some disciplines.
                   1060: Use
                   1061: .b \e*#
                   1062: on delayed text
                   1063: instead of
                   1064: .b \e**
                   1065: as on footnotes.
                   1066: .pp
                   1067: If you are using delayed text
                   1068: as your standard reference mechanism,
                   1069: you can still use footnotes,
                   1070: except that you may want to reference them
                   1071: with special characters*
                   1072: .(f
                   1073: *Such as an asterisk.
                   1074: .)f
                   1075: rather than numbers.
                   1076: .sh 2 "Indexes"
                   1077: .pp
                   1078: An
                   1079: .q index
                   1080: (actually more like a table of contents,
                   1081: since the entries are not sorted alphabetically)
                   1082: resembles delayed text,
                   1083: in that it is saved until called for.
                   1084: However,
                   1085: each entry has the page number
                   1086: (or some other tag)
                   1087: appended to the last line
                   1088: of the index entry
                   1089: after a row of dots.
                   1090: .pp
                   1091: Index entries begin with the request
                   1092: .b .(x
                   1093: and end with
                   1094: .b .)x .
                   1095: The
                   1096: .b .)x
                   1097: request may have a argument,
                   1098: which is the value to print
                   1099: as the
                   1100: .q "page number" .
                   1101: It defaults to the current page number.
                   1102: If the page number given is an underscore
                   1103: (\c
                   1104: .q _ )
                   1105: no page number
                   1106: or line of dots
                   1107: is printed at all.
                   1108: To get the line of dots
                   1109: without a page number,
                   1110: type
                   1111: .b ".)x """"" ,
                   1112: which specifies an explicitly null page number.
                   1113: .pp
                   1114: The
                   1115: .b .xp
                   1116: request prints the index.
                   1117: .pp
                   1118: For example,
                   1119: the input:
                   1120: .(b
                   1121: \&.(x
                   1122: Sealing wax
                   1123: \&.)x
                   1124: \&.(x
                   1125: Cabbages and kings
                   1126: \&.)x _
                   1127: \&.(x
                   1128: Why the sea is boiling hot
                   1129: \&.)x 2.5a
                   1130: \&.(x
                   1131: Whether pigs have wings
                   1132: \&.)x ""
                   1133: \&.(x
                   1134: This is a terribly long index entry, such as might be used
                   1135: for a list of illustrations, tables, or figures; I expect it to
                   1136: take at least two lines.
                   1137: \&.)x
                   1138: \&.xp
                   1139: .)b
                   1140: generates:
                   1141: .(x
                   1142: Sealing wax
                   1143: .)x
                   1144: .(x
                   1145: Cabbages and kings
                   1146: .)x _
                   1147: .(x
                   1148: Why the sea is boiling hot
                   1149: .)x 2.5a
                   1150: .(x
                   1151: Whether pigs have wings
                   1152: .)x ""
                   1153: .(x
                   1154: This is a terribly long index entry, such as might be used
                   1155: for a list of illustrations, tables, or figures; I expect it to
                   1156: take at least two lines.
                   1157: .)x
                   1158: .xp
                   1159: .pp
                   1160: The
                   1161: .b .(x
                   1162: request may have a single character
                   1163: argument,
                   1164: specifying the
                   1165: .q name
                   1166: of the index;
                   1167: the normal index is
                   1168: .b x .
                   1169: Thus,
                   1170: several
                   1171: .q indices
                   1172: may be maintained simultaneously
                   1173: (such as a list of tables, table of contents, etc.).
                   1174: .pp
                   1175: Notice that the index must be printed
                   1176: at the
                   1177: .i end
                   1178: of the paper,
                   1179: rather than at the beginning
                   1180: where it will probably appear
                   1181: (as a table of contents);
                   1182: the pages may have to be physically rearranged
                   1183: after printing.
                   1184: .sh 1 "Fancier Features"
                   1185: .pp
                   1186: A large number of fancier requests
                   1187: exist,
                   1188: notably requests to provide other sorts of paragraphs,
                   1189: numbered sections of the form
                   1190: .b 1.2.3
                   1191: (such as used in this document),
                   1192: and multicolumn output.
                   1193: .sh 2 "More Paragraphs"
                   1194: .pp
                   1195: Paragraphs generally start with
                   1196: a blank line
                   1197: and with the first line
                   1198: indented.
                   1199: It is possible to get
                   1200: left-justified block-style paragraphs
                   1201: by using
                   1202: .b .lp
                   1203: instead of
                   1204: .b .pp ,
                   1205: as demonstrated by the next paragraph.
                   1206: .lp
                   1207: Sometimes you want to use paragraphs
                   1208: that have the
                   1209: .i body
                   1210: indented,
                   1211: and the first line
                   1212: exdented
                   1213: (opposite of indented)
                   1214: with a label.
                   1215: This can be done with the
                   1216: .b .ip
                   1217: request.
                   1218: A word specified on the same line as
                   1219: .b .ip
                   1220: is printed in the margin,
                   1221: and the body is lined up
                   1222: at a prespecified position
                   1223: (normally five spaces).
                   1224: For example,
                   1225: the input:
                   1226: .(b
                   1227: \&.ip one
                   1228: This is the first paragraph.
                   1229: Notice how the first line
                   1230: of the resulting paragraph lines up
                   1231: with the other lines in the paragraph.
                   1232: \&.ip two
                   1233: And here we are at the second paragraph already.
                   1234: You may notice that the argument to \c
                   1235: .b .ip
                   1236: appears
                   1237: in the margin.
                   1238: \&.lp
                   1239: We can continue text...
                   1240: .)b
                   1241: produces as output:
                   1242: .ip one
                   1243: This is the first paragraph.
                   1244: Notice how the first line of the resulting paragraph lines up
                   1245: with the other lines in the paragraph.
                   1246: .ip two
                   1247: And here we are at the second paragraph already.
                   1248: You may notice that the argument to
                   1249: .b .ip
                   1250: appears
                   1251: in the margin.
                   1252: .lp
                   1253: We can continue text without starting a new indented
                   1254: paragraph
                   1255: by using the
                   1256: .b .lp
                   1257: request.
                   1258: .pp
                   1259: If you have spaces in the label of a
                   1260: .b .ip
                   1261: request,
                   1262: you must use an
                   1263: .q "unpaddable space"
                   1264: instead of a regular space.
                   1265: This is typed as a backslash character
                   1266: (\c
                   1267: .q \e )
                   1268: followed by a space.
                   1269: For example,
                   1270: to print the label
                   1271: .q "Part 1" ,
                   1272: enter:
                   1273: .(b
                   1274: \&.ip "Part\e 1"
                   1275: .)b
                   1276: .pp
                   1277: If a label of an indented paragraph
                   1278: (that is, the argument to
                   1279: .b .ip )
                   1280: is longer than the space allocated for the label,
                   1281: .b .ip
                   1282: will begin a new line after the label.
                   1283: For example,
                   1284: the input:
                   1285: .(b
                   1286: \&.ip longlabel
                   1287: This paragraph had a long label.
                   1288: The first character of text on the first line
                   1289: will not line up with the text on second and subsequent lines,
                   1290: although they will line up with each other.
                   1291: .)b
                   1292: will produce:
                   1293: .ip longlabel
                   1294: This paragraph had a long label.
                   1295: The first character of text on the first line
                   1296: will not line up with the text on second and subsequent lines,
                   1297: although they will line up with each other.
                   1298: .pp
                   1299: It is possible to change the size of the label
                   1300: by using a second argument
                   1301: which is the size of the label.
                   1302: For example,
                   1303: the above example could be done correctly
                   1304: by saying:
                   1305: .(b
                   1306: \&.ip longlabel 10
                   1307: .)b
                   1308: which will make the paragraph indent
                   1309: 10 spaces for this paragraph only.
                   1310: If you have many paragraphs to indent
                   1311: all the same amount,
                   1312: use the
                   1313: .i "number register"
                   1314: .b ii .
                   1315: For example, to leave one inch of space
                   1316: for the label,
                   1317: type:
                   1318: .(b
                   1319: \&.nr ii 1i
                   1320: .)b
                   1321: somewhere before the first call to
                   1322: .b .ip .
                   1323: Refer to the reference manual
                   1324: for more information.
                   1325: .pp
                   1326: If
                   1327: .b .ip
                   1328: is used
                   1329: with no argument at all
                   1330: no hanging tag will be printed.
                   1331: For example,
                   1332: the input:
                   1333: .(b
                   1334: \&.ip [a]
                   1335: This is the first paragraph of the example.
                   1336: We have seen this sort of example before.
                   1337: \&.ip
                   1338: This paragraph is lined up with the previous paragraph,
                   1339: but it has no tag in the margin.
                   1340: .)b
                   1341: produces as output:
                   1342: .ip [a]
                   1343: This is the first paragraph of the example.
                   1344: We have seen this sort of example before.
                   1345: .ip
                   1346: This paragraph is lined up with the previous paragraph,
                   1347: but it has no tag in the margin.
                   1348: .pp
                   1349: A special case of
                   1350: .b .ip
                   1351: is
                   1352: .b .np ,
                   1353: which automatically
                   1354: numbers paragraphs sequentially from 1.
                   1355: The numbering is reset at the next
                   1356: .b .pp ,
                   1357: .b .lp ,
                   1358: or
                   1359: .b .sh
                   1360: (to be described in the next section)
                   1361: request.
                   1362: For example,
                   1363: the input:
                   1364: .(b
                   1365: \&.np
                   1366: This is the first point.
                   1367: \&.np
                   1368: This is the second point.
                   1369: Points are just regular paragraphs
                   1370: which are given sequence numbers automatically
                   1371: by the .np request.
                   1372: \&.pp
                   1373: This paragraph will reset numbering by .np.
                   1374: \&.np
                   1375: For example,
                   1376: we have reverted to numbering from one now.
                   1377: .)b
                   1378: generates:
                   1379: .np
                   1380: This is the first point.
                   1381: .np
                   1382: This is the second point.
                   1383: Points are just regular paragraphs
                   1384: which are given sequence numbers automatically
                   1385: by the .np request.
                   1386: .pp
                   1387: This paragraph will reset numbering by .np.
                   1388: .np
                   1389: For example,
                   1390: we have reverted to numbering from one now.
                   1391: .pp
                   1392: The
                   1393: .b .bu
                   1394: request gives lists of this sort that are identified with
                   1395: bullets rather than numbers.
                   1396: The paragraphs are also crunched together.
                   1397: For example,
                   1398: the input:
                   1399: .(b
                   1400: \&.bu
                   1401: \&One egg yolk
                   1402: \&.bu
                   1403: \&One tablespoon cream or top milk
                   1404: \&.bu
                   1405: \&Salt, cayenne, and lemon juice to taste
                   1406: \&.bu
                   1407: \&A generous two tablespoonfuls of butter
                   1408: .)b
                   1409: produces\**:
                   1410: .(f
                   1411: \**By the way,
                   1412: if you put the first three ingredients in a a heavy, deep pan
                   1413: and whisk the ingredients madly over a medium flame
                   1414: (never taking your hand off the handle of the pot)
                   1415: until the mixture reaches the consistency of custard
                   1416: (just a minute or two),
                   1417: then mix in the butter off-heat,
                   1418: you will have a wonderful Hollandaise sauce.
                   1419: .)f
                   1420: .bu
                   1421: One egg yolk
                   1422: .bu
                   1423: One tablespoon cream or top milk
                   1424: .bu
                   1425: Salt, cayenne, and lemon juice to taste
                   1426: .bu
                   1427: A generous two tablespoonfuls of butter
                   1428: .sh 2 "Section Headings"
                   1429: .pp
                   1430: Section numbers
                   1431: (such as the ones used in this document)
                   1432: can be automatically generated
                   1433: using the
                   1434: .b .sh
                   1435: request.
                   1436: You must tell
                   1437: .b .sh
                   1438: the
                   1439: .i depth
                   1440: of the section number
                   1441: and a section title.
                   1442: The depth
                   1443: specifies how many numbers
                   1444: are to appear
                   1445: (separated by decimal points)
                   1446: in the section number.
                   1447: For example,
                   1448: the section number
                   1449: .b 4.2.5
                   1450: has a depth of three.
                   1451: .pp
                   1452: Section numbers
                   1453: are incremented
                   1454: in a fairly intuitive fashion.
                   1455: If you add a number
                   1456: (increase the depth),
                   1457: the new number starts out
                   1458: at one.
                   1459: If you subtract section numbers
                   1460: (or keep the same number)
                   1461: the final number is incremented.
                   1462: For example,
                   1463: the input:
                   1464: .(b
                   1465: \&.sh 1 "The Preprocessor"
                   1466: \&.sh 2 "Basic Concepts"
                   1467: \&.sh 2 "Control Inputs"
                   1468: \&.sh 3
                   1469: \&.sh 3
                   1470: \&.sh 1 "Code Generation"
                   1471: \&.sh 3
                   1472: .)b
                   1473: produces as output the result:
                   1474: .(b
                   1475: .b
                   1476: 1.  The Preprocessor
                   1477: 1.1.  Basic Concepts
                   1478: 1.2.  Control Inputs
                   1479: 1.2.1.
                   1480: 1.2.2.
                   1481: 2.  Code Generation
                   1482: 2.1.1.
                   1483: .)b
                   1484: .pp
                   1485: You can specify the section number to begin
                   1486: by placing the section number after the section title,
                   1487: using spaces instead of dots.
                   1488: For example,
                   1489: the request:
                   1490: .(b
                   1491: \&.sh 3 "Another section" 7 3 4
                   1492: .)b
                   1493: will begin the section numbered
                   1494: .b 7.3.4 ;
                   1495: all subsequent
                   1496: .b .sh
                   1497: requests will number relative to this number.
                   1498: .pp
                   1499: There are more complex features
                   1500: which will cause each section to be indented
                   1501: proportionally to the depth of the section.
                   1502: For example, if you enter:
                   1503: .(b
                   1504: \&.nr si \c
                   1505: .i N
                   1506: .)b
                   1507: each section will be indented by an amount
                   1508: .i N .
                   1509: .i N
                   1510: must have a scaling factor attached,
                   1511: that is, it must be of the form
                   1512: .i Nx ,
                   1513: where
                   1514: .i x
                   1515: is a character telling what units
                   1516: .i N
                   1517: is in.
                   1518: Common values for
                   1519: .i x
                   1520: are
                   1521: .b i
                   1522: for inches,
                   1523: .b c
                   1524: for centimeters,
                   1525: and
                   1526: .b n
                   1527: for
                   1528: .i ens
                   1529: (the width of a single character).
                   1530: For example,
                   1531: to indent each section
                   1532: one-half inch,
                   1533: type:
                   1534: .(b
                   1535: \&.nr si 0.5i
                   1536: .)b
                   1537: After this,
                   1538: sections will be indented by
                   1539: one-half inch
                   1540: per level of depth in the section number.
                   1541: For example,
                   1542: this document was produced
                   1543: using the request
                   1544: .(b
                   1545: \&.nr si 3n
                   1546: .)b
                   1547: at the beginning of the input file,
                   1548: giving three spaces of indent
                   1549: per section depth.
                   1550: .pp
                   1551: Section headers without automatically generated numbers
                   1552: can be done using:
                   1553: .(b
                   1554: \&.uh "Title"
                   1555: .)b
                   1556: which will do a section heading,
                   1557: but will put no number on the section.
                   1558: .sh 2 "Parts of the Basic Paper"
                   1559: .pp
                   1560: There are some requests
                   1561: which assist in setting up
                   1562: papers.
                   1563: The
                   1564: .b .tp
                   1565: request
                   1566: initializes for a title page.
                   1567: There are no headers or footers
                   1568: on a title page,
                   1569: and unlike other pages
                   1570: you can space down
                   1571: and leave blank space
                   1572: at the top.
                   1573: For example,
                   1574: a typical title page might appear as:
                   1575: .(b
                   1576: \&.tp
                   1577: \&.sp 2i
                   1578: \&.(l C
                   1579: THE GROWTH OF TOENAILS
                   1580: IN UPPER PRIMATES
                   1581: \&.sp
                   1582: by
                   1583: \&.sp
                   1584: Frank N. Furter
                   1585: \&.)l
                   1586: \&.bp
                   1587: .)b
                   1588: .pp
                   1589: The request
                   1590: .b .th
                   1591: sets up the environment
                   1592: of the \*N processor
                   1593: to do a thesis,
                   1594: using the rules established at Berkeley.
                   1595: It defines the correct headers and footers
                   1596: (a page number in the upper right hand corner only),
                   1597: sets the margins correctly,
                   1598: and double spaces.
                   1599: .pp
                   1600: The
                   1601: .b .+c \ \c
                   1602: .i T
                   1603: request can be used
                   1604: to start chapters.
                   1605: Each chapter is automatically numbered
                   1606: from one,
                   1607: and a heading is printed at the top of each chapter
                   1608: with the chapter number
                   1609: and the chapter name
                   1610: .i T .
                   1611: For example,
                   1612: to begin a chapter called
                   1613: .q Conclusions ,
                   1614: use the request:
                   1615: .(b
                   1616: \&.+c "CONCLUSIONS"
                   1617: .)b
                   1618: which will produce,
                   1619: on a new page,
                   1620: the lines
                   1621: .(b C
                   1622: CHAPTER 5
                   1623: CONCLUSIONS
                   1624: .)b
                   1625: with appropriate spacing for a thesis.
                   1626: Also, the header is moved to the foot of the page
                   1627: on the first page of a chapter.
                   1628: Although the
                   1629: .b .+c
                   1630: request was not designed to work only with the
                   1631: .b .th
                   1632: request,
                   1633: it is tuned for the format acceptable
                   1634: for a PhD thesis
                   1635: at Berkeley.
                   1636: .pp
                   1637: If the
                   1638: title parameter
                   1639: .i T
                   1640: is omitted from the
                   1641: .b .+c
                   1642: request,
                   1643: the result is a chapter with no heading.
                   1644: This can also be used at the beginning
                   1645: of a paper;
                   1646: for example,
                   1647: .b .+c
                   1648: was used to generate page one
                   1649: of this document.
                   1650: .pp
                   1651: Although
                   1652: papers traditionally have the abstract,
                   1653: table of contents,
                   1654: and so forth at the front of the paper,
                   1655: it is more convenient to format
                   1656: and print them last
                   1657: when using \*N.
                   1658: This is so that index entries
                   1659: can be collected and then printed
                   1660: for the table of contents
                   1661: (or whatever).
                   1662: At the end of the paper,
                   1663: issue the
                   1664: .b ".++ P"
                   1665: request,
                   1666: which begins the preliminary part
                   1667: of the paper.
                   1668: After issuing this request,
                   1669: the
                   1670: .b .+c
                   1671: request will begin a preliminary section
                   1672: of the paper.
                   1673: Most notably,
                   1674: this prints the page number
                   1675: restarted from one
                   1676: in lower case Roman numbers.
                   1677: .b .+c
                   1678: may be used repeatedly
                   1679: to begin different parts of the
                   1680: front material
                   1681: for example,
                   1682: the abstract,
                   1683: the table of contents,
                   1684: acknowledgments,
                   1685: list of illustrations,
                   1686: etc.
                   1687: The request
                   1688: .b ".++ B"
                   1689: may also be used
                   1690: to begin the bibliographic section
                   1691: at the end of the paper.
                   1692: For example,
                   1693: the paper might appear
                   1694: as outlined in figure 2.
                   1695: (In this figure,
                   1696: comments begin with the sequence
                   1697: .b \e" .)
                   1698: .(z
                   1699: .hl
                   1700: .if t .in 0.5i
                   1701: .if t .ta 2i
                   1702: .if n .ta 3i
                   1703: \&.th  \e" set for thesis mode
                   1704: \&.fo \(aa\(aaDRAFT\(aa\(aa    \e" define footer for each page
                   1705: \&.tp  \e" begin title page
                   1706: \&.(l C        \e" center a large block
                   1707: THE GROWTH OF TOENAILS
                   1708: IN UPPER PRIMATES
                   1709: \&.sp
                   1710: by
                   1711: \&.sp
                   1712: Frank Furter
                   1713: \&.)l  \e" end centered part
                   1714: \&.+c INTRODUCTION     \e" begin chapter named "INTRODUCTION"
                   1715: \&.(x t        \e" make an entry into index `t'
                   1716: Introduction
                   1717: \&.)x  \e" end of index entry
                   1718: text of chapter one
                   1719: \&.+c "NEXT CHAPTER"   \e" begin another chapter
                   1720: \&.(x t        \e" enter into index `t' again
                   1721: Next Chapter
                   1722: \&.)x
                   1723: text of chapter two
                   1724: \&.+c CONCLUSIONS
                   1725: \&.(x t
                   1726: Conclusions
                   1727: \&.)x
                   1728: text of chapter three
                   1729: \&.++ B        \e" begin bibliographic information
                   1730: \&.+c BIBLIOGRAPHY     \e" begin another `chapter'
                   1731: \&.(x t
                   1732: Bibliography
                   1733: \&.)x
                   1734: text of bibliography
                   1735: \&.++ P        \e" begin preliminary material
                   1736: \&.+c "TABLE OF CONTENTS"
                   1737: \&.xp t        \e" print index `t' collected above
                   1738: \&.+c PREFACE  \e" begin another preliminary section
                   1739: text of preface
                   1740: .sp 2
                   1741: .in 0
                   1742: .ce
                   1743: Figure 2.  Outline of a Sample Paper
                   1744: .hl
                   1745: .)z
                   1746: .sh 2 "Equations and Tables"
                   1747: .pp
                   1748: Two special \*U programs exist
                   1749: to format special types of material.
                   1750: .b Eqn
                   1751: and
                   1752: .b neqn
                   1753: set equations
                   1754: for the phototypesetter
                   1755: and \*N respectively.
                   1756: .b Tbl
                   1757: arranges to print
                   1758: extremely pretty tables
                   1759: in a variety of formats.
                   1760: This document will only describe
                   1761: the embellishments
                   1762: to the standard features;
                   1763: consult the reference manuals
                   1764: for those processors
                   1765: for a description of their use.
                   1766: .pp
                   1767: The
                   1768: .b eqn
                   1769: and
                   1770: .b neqn
                   1771: programs are described fully
                   1772: in the document
                   1773: .ul
                   1774: Typesetting Mathematics \- User's Guide
                   1775: by Brian W. Kernighan
                   1776: and Lorinda L. Cherry.
                   1777: Equations are centered,
                   1778: and are kept on one page.
                   1779: They are introduced by the
                   1780: .b .EQ
                   1781: request and terminated by the
                   1782: .b .EN
                   1783: request.
                   1784: .pp
                   1785: The
                   1786: .b .EQ
                   1787: request may take an
                   1788: equation number as an
                   1789: optional argument,
                   1790: which is printed vertically centered
                   1791: on the right hand side
                   1792: of the equation.
                   1793: If the equation becomes too long
                   1794: it should be split
                   1795: between two lines.
                   1796: To do this, type:
                   1797: .(b
                   1798: \&.EQ (eq 34)
                   1799: text of equation 34
                   1800: \&.EN C
                   1801: \&.EQ
                   1802: continuation of equation 34
                   1803: \&.EN
                   1804: .)b
                   1805: The
                   1806: .b C
                   1807: on the
                   1808: .b .EN
                   1809: request
                   1810: specifies that the equation
                   1811: will be continued.
                   1812: .pp
                   1813: The
                   1814: .b tbl
                   1815: program produces tables.
                   1816: It is fully described
                   1817: (including numerous examples)
                   1818: in the document
                   1819: .ul
                   1820: Tbl \- A Program to Format Tables
                   1821: by M. E. Lesk.
                   1822: Tables begin with the
                   1823: .b .TS
                   1824: request
                   1825: and end with the
                   1826: .b .TE
                   1827: request.
                   1828: Tables are normally kept on a single page.
                   1829: If you have a table which is too big
                   1830: to fit on a single page,
                   1831: so that you know it will extend
                   1832: to several pages,
                   1833: begin the table with the request
                   1834: .b ".TS\ H"
                   1835: and put the request
                   1836: .b .TH
                   1837: after the part of the table
                   1838: which you want
                   1839: duplicated at the top of every page
                   1840: that the table is printed on.
                   1841: For example, a table definition
                   1842: for a long table might look like:
                   1843: .ds TA \|\h'.4n'\v'-.2n'\s-4\zT\s0\v'.2n'\h'-.4n'\(ci\|
                   1844: .if n .ds TA \ \o'-T'\ \"
                   1845: .(b
                   1846: \&.TS H
                   1847: c s s
                   1848: n n n.
                   1849: THE TABLE TITLE
                   1850: \&.TH
                   1851: text of the table
                   1852: \&.TE
                   1853: .)b
                   1854: .pp
                   1855: .sh 2 "Two Column Output"
                   1856: .pp
                   1857: You can get two column output
                   1858: automatically
                   1859: by using the request
                   1860: .b .2c .
                   1861: This causes everything after it
                   1862: to be output in two-column form.
                   1863: The request
                   1864: .b .bc
                   1865: will start a new column;
                   1866: it differs from
                   1867: .b .bp
                   1868: in that
                   1869: .b .bp
                   1870: may leave a totally blank column
                   1871: when it starts a new page.
                   1872: To revert to single column output,
                   1873: use
                   1874: .b .1c .
                   1875: .sh 2 "Defining Macros"
                   1876: .pp
                   1877: A
                   1878: .i macro
                   1879: is a collection of requests and text
                   1880: which may be used
                   1881: by stating a simple request.
                   1882: Macros begin with the line
                   1883: .b ".de" \ \c
                   1884: .i xx
                   1885: (where
                   1886: .i xx
                   1887: is the name of the macro to be defined)
                   1888: and end with the line consisting of two dots.
                   1889: After defining the macro,
                   1890: stating the line
                   1891: .b . \c
                   1892: .i xx
                   1893: is the same as stating all the other lines.
                   1894: For example,
                   1895: to define a macro
                   1896: that spaces 3 lines
                   1897: and then centers the next input line,
                   1898: enter:
                   1899: .(b
                   1900: \&.de SS
                   1901: \&.sp 3
                   1902: \&.ce
                   1903: \&..
                   1904: .)b
                   1905: and use it by typing:
                   1906: .(b
                   1907: \&.SS
                   1908: \&Title Line
                   1909: (beginning of text)
                   1910: .)b
                   1911: .pp
                   1912: Macro names may be one or two characters.
                   1913: In order to avoid conflicts
                   1914: with names in \-me,
                   1915: always use upper case letters as names.
                   1916: The only names to avoid are
                   1917: .b TS ,
                   1918: .b TH ,
                   1919: .b TE ,
                   1920: .b EQ ,
                   1921: and
                   1922: .b EN .
                   1923: .sh 2 "Annotations Inside Keeps"
                   1924: .pp
                   1925: Sometimes you may want to put
                   1926: a footnote
                   1927: or index entry inside a keep.
                   1928: For example,
                   1929: if you want to maintain a
                   1930: .q "list of figures"
                   1931: you will want to do something like:
                   1932: .(b
                   1933: \&.(z
                   1934: \&.(c
                   1935: text of figure
                   1936: \&.)c
                   1937: \&.ce
                   1938: Figure 5.
                   1939: \&.(x f
                   1940: Figure 5
                   1941: \&.)x
                   1942: \&.)z
                   1943: .)b
                   1944: which you may hope
                   1945: will give you a figure
                   1946: with a label
                   1947: and an entry in the index
                   1948: .b f
                   1949: (presumably a list of figures index).
                   1950: Unfortunately,
                   1951: the
                   1952: index entry
                   1953: is read and interpreted
                   1954: when the keep is read,
                   1955: not when it is printed,
                   1956: so the page number in the index is likely to be wrong.
                   1957: The solution is to use the magic string
                   1958: .b \e!
                   1959: at the beginning of all the lines dealing with the index.
                   1960: In other words,
                   1961: you should use:
                   1962: .(b
                   1963: \&.(z
                   1964: \&.(c
                   1965: Text of figure
                   1966: \&.)c
                   1967: \&.ce
                   1968: Figure 5.
                   1969: \e!.(x f
                   1970: \e!Figure 5
                   1971: \e!.)x
                   1972: \&.)z
                   1973: .)b
                   1974: which will defer the processing of the index
                   1975: until the figure is output.
                   1976: This will guarantee
                   1977: that the page number in the index
                   1978: is correct.
                   1979: The same comments apply
                   1980: to
                   1981: blocks
                   1982: (with
                   1983: .b .(b
                   1984: and
                   1985: .b .)b )
                   1986: as well.
                   1987: .sh 1 "\*T and the Photosetter"
                   1988: .pp
                   1989: With a little care,
                   1990: you can prepare
                   1991: documents that
                   1992: will print nicely
                   1993: on either a regular terminal
                   1994: or when phototypeset
                   1995: using the \*T formatting program.
                   1996: .sh 2 "Fonts"
                   1997: .pp
                   1998: A
                   1999: .i font
                   2000: is a style of type.
                   2001: There are three fonts
                   2002: that are available simultaneously,
                   2003: Times Roman,
                   2004: Times Italic,
                   2005: and Times Bold,
                   2006: plus the special math font.
                   2007: The normal font is Roman.
                   2008: Text which would be underlined in \*N
                   2009: with the
                   2010: .b .ul
                   2011: request
                   2012: is set in italics
                   2013: in \*T.
                   2014: .pp
                   2015: There are ways of switching between fonts.
                   2016: The requests
                   2017: .b .r ,
                   2018: .b .i ,
                   2019: and
                   2020: .b .b
                   2021: switch to Roman,
                   2022: italic,
                   2023: and bold fonts respectively.
                   2024: You can set a single word
                   2025: in some font
                   2026: by typing (for example):
                   2027: .(b
                   2028: \&.i word
                   2029: .)b
                   2030: which will set
                   2031: .i word
                   2032: in italics
                   2033: but does not affect the surrounding text.
                   2034: In \*N,
                   2035: italic and bold text
                   2036: is underlined.
                   2037: .pp
                   2038: Notice that if you are setting more than one word
                   2039: in whatever font,
                   2040: you must surround that word with double quote marks
                   2041: (`\|"\|')
                   2042: so that it will appear to the \*N processor as a single word.
                   2043: The quote marks will not appear in the formatted text.
                   2044: If you do want a quote mark to appear,
                   2045: you should quote the entire string
                   2046: (even if a single word),
                   2047: and use
                   2048: .i two
                   2049: quote marks where you want one to appear.
                   2050: For example,
                   2051: if you want to produce the text:
                   2052: .(b
                   2053: .i """Master Control\|"""
                   2054: .)b
                   2055: in italics, you must type:
                   2056: .(b
                   2057: \&.i """Master Control\e|"""
                   2058: .)b
                   2059: The
                   2060: .b \e|
                   2061: produces a very narrow space
                   2062: so that the
                   2063: .q l
                   2064: does not overlap the quote sign in \*T,
                   2065: like this:
                   2066: .(b
                   2067: .i """Master Control"""
                   2068: .)b
                   2069: .pp
                   2070: There are also several
                   2071: .q pseudo-fonts
                   2072: available.
                   2073: The input:
                   2074: .(b
                   2075: \&.(b
                   2076: \&.u underlined
                   2077: \&.bi "bold italics"
                   2078: \&.bx "words in a box"
                   2079: \&.)b
                   2080: .)b
                   2081: generates
                   2082: .(b
                   2083: .u underlined
                   2084: .bi "bold italics"
                   2085: .bx "words in a box"
                   2086: .)b
                   2087: In \*N these all just underline
                   2088: the text.
                   2089: Notice that pseudo font requests
                   2090: set only the single parameter in the pseudo font;
                   2091: ordinary font requests will begin setting all text
                   2092: in the special font
                   2093: if you do not provide a parameter.
                   2094: No more than one word
                   2095: should appear
                   2096: with these three font requests
                   2097: in the middle of lines.
                   2098: This is because
                   2099: of the way \*T justifies text.
                   2100: For example,
                   2101: if you were to issue the requests:
                   2102: .(b
                   2103: \&.bi "some bold italics"
                   2104: and
                   2105: \&.bx "words in a box"
                   2106: .)b
                   2107: in the middle of a line
                   2108: \*T would produce
                   2109: .bi "some bold italics"
                   2110: and
                   2111: .bx "words in a box" ,\c
                   2112: .if t \p
                   2113: .if n \& \"
                   2114: .if t which I think you will agree does not look good.
                   2115: .if n which would look really lousy in \*T.
                   2116: .pp
                   2117: The second parameter
                   2118: of all font requests
                   2119: is set in the original font.
                   2120: For example,
                   2121: the font request:
                   2122: .(b
                   2123: \&.b bold face
                   2124: .)b
                   2125: generates
                   2126: .q bold
                   2127: in bold font,
                   2128: but sets
                   2129: .q face
                   2130: in the font of the surrounding text,
                   2131: resulting in:
                   2132: .(b
                   2133: .b bold face.
                   2134: .)b
                   2135: To set the two words
                   2136: .b bold
                   2137: and
                   2138: .b face
                   2139: both in
                   2140: .b "bold face" ,
                   2141: type:
                   2142: .(b
                   2143: \&.b "bold face"
                   2144: .)b
                   2145: .pp
                   2146: You can mix fonts in a word by using the
                   2147: special sequence
                   2148: .b \ec
                   2149: at the end of a line
                   2150: to indicate
                   2151: .q "continue text processing" ;
                   2152: this allows input lines
                   2153: to be joined together
                   2154: without a space between them.
                   2155: For example, the input:
                   2156: .(b
                   2157: \&.u under \ec
                   2158: \&.i italics
                   2159: .)b
                   2160: generates
                   2161: .u under \c
                   2162: .i italics ,
                   2163: but if we had typed:
                   2164: .(b
                   2165: \&.u under
                   2166: \&.i italics
                   2167: .)b
                   2168: the result would have been
                   2169: .u under
                   2170: .i italics
                   2171: as two words.
                   2172: .sh 2 "Point Sizes"
                   2173: .pp
                   2174: The phototypesetter
                   2175: supports different sizes of type,
                   2176: measured in points.
                   2177: The default point size
                   2178: is 10 points
                   2179: for most text,
                   2180: 8 points for footnotes.
                   2181: To change the pointsize,
                   2182: type:
                   2183: .(b
                   2184: \&.sz \c
                   2185: .i +N
                   2186: .)b
                   2187: where
                   2188: .i N
                   2189: is the size wanted in points.
                   2190: The
                   2191: .i "vertical spacing"
                   2192: (distance between the bottom of most letters
                   2193: (the
                   2194: .i baseline )
                   2195: between adjacent lines)
                   2196: is set to be proportional
                   2197: to the type size.
                   2198: .pp
                   2199: These pointsize changes are
                   2200: .i temporary !!!
                   2201: For example,
                   2202: to reset the pointsize of basic text to twelve point, use:
                   2203: .(b
                   2204: \&.nr pp 12
                   2205: \&.nr sp 12
                   2206: \&.nr tp 12
                   2207: .)b
                   2208: to reset the default pointsize of
                   2209: paragraphs,
                   2210: section headers,
                   2211: and titles respectively.
                   2212: If you only want to set the names of sections in a larger pointsize,
                   2213: use:
                   2214: .(b
                   2215: \&.nr sp 11
                   2216: .)b
                   2217: alone \*- this sets section titles
                   2218: (e.g.,
                   2219: .b "Point Sizes"
                   2220: above)
                   2221: in a larger font than the default.
                   2222: .pp
                   2223: A single word or phrase can be set in a smaller pointsize
                   2224: than the surrounding text
                   2225: using the
                   2226: .b .sm
                   2227: request.
                   2228: This is especially convenient for words that are all capitals,
                   2229: due to the optical illusion that makes them look even larger
                   2230: than they actually are.
                   2231: For example:
                   2232: .(b
                   2233: \&.sm UNIX
                   2234: .)b
                   2235: prints as
                   2236: .sm UNIX
                   2237: rather than
                   2238: UNIX.
                   2239: .pp
                   2240: Warning:
                   2241: changing point sizes
                   2242: on the phototypesetter
                   2243: is a slow mechanical operation.
                   2244: On laser printers it may require loading new fonts.
                   2245: Size changes
                   2246: should be considered carefully.
                   2247: .sh 2 "Quotes"
                   2248: .pp
                   2249: It is conventional when using
                   2250: the typesetter to
                   2251: use pairs of grave and acute accents
                   2252: to generate double quotes,
                   2253: rather than the
                   2254: double quote character
                   2255: (`\|"\|').
                   2256: This is because it looks better
                   2257: to use grave and acute accents;
                   2258: for example, compare
                   2259: "quote" to
                   2260: ``quote''.
                   2261: .pp
                   2262: In order to make quotes compatible
                   2263: between the typesetter and terminals,
                   2264: you may use the sequences
                   2265: .b \e*(lq
                   2266: and
                   2267: .b \e*(rq
                   2268: to stand for the left and right quote
                   2269: respectively.
                   2270: These both appear as
                   2271: .b """"
                   2272: on most terminals,
                   2273: but are typeset as
                   2274: .b ``
                   2275: and
                   2276: .b ''
                   2277: respectively.
                   2278: For example,
                   2279: use:
                   2280: .(b
                   2281: \e*(lqSome things aren\(aat true
                   2282: even if they did happen.\e*(rq
                   2283: .)b
                   2284: to generate the result:
                   2285: .(b
                   2286: .q "Some things aren't true even if they did happen."
                   2287: .)b
                   2288: As a shorthand,
                   2289: the special font request:
                   2290: .(b
                   2291: \&.q "quoted text"
                   2292: .)b
                   2293: will generate
                   2294: .q "quoted text" .
                   2295: Notice that you must surround
                   2296: the material to be quoted
                   2297: with double quote marks
                   2298: if it is more than one word.
                   2299: .sh 0
                   2300: .sp 1i
                   2301: .b Acknowledgments
                   2302: .pp
                   2303: I would like to thank
                   2304: Bob Epstein,
                   2305: Bill Joy,
                   2306: and Larry Rowe
                   2307: for having the courage
                   2308: to use the \-me macros
                   2309: to produce non-trivial papers
                   2310: during the development stages;
                   2311: Ricki Blau,
                   2312: Pamela Humphrey,
                   2313: and Jim Joyce
                   2314: for their help with the documentation phase;
                   2315: peter kessler
                   2316: for numerous complaints years after I was
                   2317: .q done
                   2318: with this project,
                   2319: most accompanied by fixes
                   2320: (hence forcing me to fix several small bugs);
                   2321: and the plethora of people who have contributed ideas
                   2322: and have given support for the project.
                   2323: .sp 1i
                   2324: This document was
                   2325: .if n \*N'ed
                   2326: .if t \*T'ed
                   2327: on \*(td
                   2328: and applies to version
                   2329: \*(MO
                   2330: of the \-me macros.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.