Annotation of 43BSDReno/share/doc/usd/22.memacros/intro.me, revision 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.