|
|
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: .\" @(#)ref.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\" \" mod number ! 23: .de TL \" *** title line ! 24: .lp ! 25: .di XX ! 26: .. ! 27: .de DE \" *** description ! 28: \\\\h'|\\n(DIu'\\\\c ! 29: .br ! 30: .di ! 31: .in +\\n(DIu ! 32: .ti 0 ! 33: .cu 1000 ! 34: .XX ! 35: .rm XX ! 36: .cu 0 ! 37: .. ! 38: .ds N \s-1NROFF\s0 ! 39: .ds T \s-1TROFF\s0 ! 40: .nr DI 1.5i ! 41: \".he '\-ME REFERENCE MANUAL''%' ! 42: .de NR ! 43: .b "\en\\$1" "\\$2" ! 44: .. ! 45: .de ST ! 46: .b "\e*\\$1" "\\$2" ! 47: .. ! 48: .sc ! 49: .eh 'USD:23-%''\-me Reference Manual' ! 50: .oh '\-me Reference Manual''USD:23-%' ! 51: .+c ! 52: .ce 20 ! 53: .sz 14 ! 54: .b "\-ME REFERENCE MANUAL" ! 55: .sz ! 56: .sp ! 57: .i "Release \*(MO" ! 58: .sp 2 ! 59: .ul ! 60: Eric P. Allman* ! 61: .(f ! 62: *Author's current address: ! 63: Britton Lee, Inc., ! 64: 1919 Addison Suite 105, ! 65: Berkeley, California 94704. ! 66: .)f ! 67: .sp ! 68: Project INGRES ! 69: Electronics Research Laboratory ! 70: University of California, Berkeley ! 71: Berkeley, California 94720 ! 72: .ce 0 ! 73: .sp 4 ! 74: .pp ! 75: This document describes ! 76: in extremely terse form ! 77: the features ! 78: of the ! 79: .b \-me ! 80: macro package ! 81: for version seven \*N/\*T\*(dg. ! 82: .(f ! 83: \(dg\*N and \*T may be trademarks of AT&T Bell Laboratories. ! 84: .)f ! 85: Some familiarity is assumed ! 86: with ! 87: those programs. ! 88: Specifically, ! 89: the reader should understand ! 90: breaks, ! 91: fonts, ! 92: pointsizes, ! 93: the use and definition of number registers ! 94: and strings, ! 95: how to define macros, ! 96: and scaling factors for ens, points, ! 97: .b v 's ! 98: (vertical line spaces), ! 99: etc. ! 100: .pp ! 101: For a more casual introduction ! 102: to text processing ! 103: using \*N, ! 104: refer to the document ! 105: .ul ! 106: Writing Papers with \*N using \-me. ! 107: .pp ! 108: There are a number of macro parameters ! 109: that may be adjusted. ! 110: Fonts may be set to a font number only. ! 111: Font 8 means bold font in \*T; ! 112: in \*N font 8 ! 113: is underlined ! 114: unless the ! 115: .b \-rb3 ! 116: flag is specified to use ! 117: .q "true bold" ! 118: font ! 119: (most versions of \*N do not interpret bold font nicely). ! 120: Font 0 is no font change; ! 121: the font of the surrounding text ! 122: is used instead. ! 123: Notice that fonts 0 and 8 are ! 124: .q pseudo-fonts ; ! 125: that is, ! 126: they are simulated by the macros. ! 127: This means that although it is legal to set a font register ! 128: to zero or eight, ! 129: it is not legal to use the escape character form, ! 130: such as: ! 131: .(b ! 132: \ef8 ! 133: .)b ! 134: .pp ! 135: All distances ! 136: are in basic units, ! 137: so it is nearly always necessary ! 138: to use a scaling factor. ! 139: For example, ! 140: the request ! 141: to set the paragraph indent ! 142: to eight one-en spaces is: ! 143: .(b ! 144: \&.nr pi 8n ! 145: .)b ! 146: and not ! 147: .(b ! 148: \&.nr pi 8 ! 149: .)b ! 150: which would set the paragraph indent to eight basic units, ! 151: or about 0.02 inch. ! 152: Default parameter values are given in brackets ! 153: in the remainder of this document. ! 154: .pp ! 155: Registers and strings ! 156: of the form ! 157: .b $ \c ! 158: .i x ! 159: may be used in expressions ! 160: but should not be changed. ! 161: Macros of the form ! 162: .b $ \c ! 163: .i x ! 164: perform some function ! 165: (as described) ! 166: and may be redefined ! 167: to change this function. ! 168: This may be a sensitive operation; ! 169: look at the body of the original macro ! 170: before changing it. ! 171: .pp ! 172: All names in \-me ! 173: follow a rigid naming convention. ! 174: The user may define number registers, ! 175: strings, ! 176: and macros, ! 177: provided that s/he ! 178: uses single character upper case names ! 179: or double character names ! 180: consisting of letters and digits, ! 181: with at least one upper case letter. ! 182: In no case should special characters ! 183: be used in user-defined names. ! 184: .pp ! 185: On daisy wheel type printers ! 186: in twelve pitch, ! 187: the ! 188: .b \-rx1 ! 189: flag can be stated to make lines default to ! 190: one eighth inch ! 191: (the normal spacing for a newline in twelve-pitch). ! 192: This is normally too small for easy readability, ! 193: so the default is to space one sixth inch. ! 194: .pp ! 195: The ! 196: .b \-rv2 ! 197: flag will indicates that this ! 198: .i is ! 199: being output on a C/A/T ! 200: phototypesetter; ! 201: this changes the page offset ! 202: and inserts cut marks. ! 203: .pp ! 204: This documentation was ! 205: .if n \*N'ed ! 206: .if t \*T'ed ! 207: on \*(td ! 208: and applies to version ! 209: \*(MO ! 210: of the \-me macros. ! 211: .sh 1 "Paragraphing" ! 212: .pp ! 213: These macros are used ! 214: to begin paragraphs. ! 215: The standard paragraph macro ! 216: is ! 217: .b .pp ; ! 218: the others are all variants ! 219: to be used for special purposes. ! 220: .pp ! 221: The first call to one of the paragraphing macros ! 222: defined in this section ! 223: or the ! 224: .b .sh ! 225: macro ! 226: (defined in the next session) ! 227: .i initializes ! 228: the macro processor. ! 229: After initialization ! 230: it is not possible to use any of the following requests: ! 231: .b .sc , ! 232: .b .lo , ! 233: .b .th , ! 234: or ! 235: .b .ac . ! 236: Also, ! 237: the effects of changing parameters ! 238: which will have a global effect ! 239: on the format of the page ! 240: (notably page length and header and footer margins) ! 241: are not well defined ! 242: and should be avoided. ! 243: .TL ! 244: .b .lp ! 245: .DE ! 246: Begin left-justified paragraph. ! 247: Centering and underlining ! 248: are turned off if they were on, ! 249: the font is set to ! 250: .NR (pf ! 251: [1] ! 252: the type size ! 253: is set to ! 254: .NR (pp ! 255: [10p], ! 256: and a ! 257: .NR (ps ! 258: space is inserted ! 259: before the paragraph ! 260: [0.35v in \*T, 1v or 0.5v in \*N ! 261: depending on device resolution]. ! 262: The indent is reset ! 263: to ! 264: .NR ($i ! 265: [0] ! 266: plus ! 267: .NR (po ! 268: [0] ! 269: unless the paragraph ! 270: is inside a display. ! 271: (see ! 272: .b .ba ). ! 273: At least ! 274: the first two lines ! 275: of the paragraph ! 276: are kept together ! 277: on a page. ! 278: .TL ! 279: .b .pp ! 280: .DE ! 281: Like ! 282: .b .lp , ! 283: except that it puts ! 284: .NR (pi ! 285: [5n] ! 286: units of indent. ! 287: This is the standard paragraph macro. ! 288: .TL ! 289: .b .ip ! 290: .i T ! 291: .i I ! 292: .DE ! 293: Indented paragraph ! 294: with hanging tag. ! 295: The body of the following paragraph ! 296: is indented ! 297: .i I ! 298: spaces ! 299: (or ! 300: .NR (ii ! 301: [5n] ! 302: spaces ! 303: if ! 304: .i I ! 305: is not specified) ! 306: more than a non-indented paragraph ! 307: (such as with ! 308: .b .pp ) ! 309: is. ! 310: The title ! 311: .i T ! 312: is exdented (opposite of indented). ! 313: The result is a paragraph ! 314: with an even left edge ! 315: and ! 316: .i T ! 317: printed in the margin. ! 318: Any spaces in ! 319: .i T ! 320: must be unpaddable. ! 321: If ! 322: .i T ! 323: will not fit in the space provided, ! 324: .b .ip ! 325: will start a new line. ! 326: .TL ! 327: .b .np ! 328: .DE ! 329: A variant of .ip which numbers paragraphs. ! 330: Numbering is reset ! 331: after a ! 332: .b .lp , ! 333: .b .pp , ! 334: or ! 335: .b .sh . ! 336: The current paragraph number ! 337: is in ! 338: .NR ($p . ! 339: .TL ! 340: .b .bu ! 341: .DE ! 342: Like ! 343: .b .np ! 344: except that paragraphs are marked with bullets (\(bu). ! 345: Leading space is eliminated to create compact lists. ! 346: .sh 1 "Section Headings" ! 347: .pp ! 348: Numbered sections ! 349: are similar to paragraphs ! 350: except that a ! 351: section number ! 352: is automatically ! 353: generated for each one. ! 354: The section numbers are of the form ! 355: .b 1.2.3 . ! 356: The ! 357: .i depth ! 358: of the section ! 359: is the count of numbers ! 360: (separated by decimal points) ! 361: in the section number. ! 362: .pp ! 363: Unnumbered section headings are similar, ! 364: except that no number is attached ! 365: to the heading. ! 366: .TL ! 367: .b .sh ! 368: .i +N ! 369: .i T ! 370: .i "a b c d e f" ! 371: .DE ! 372: Begin numbered section ! 373: of depth ! 374: .i N . ! 375: If ! 376: .i N ! 377: is missing ! 378: the current depth ! 379: (maintained in ! 380: the number register ! 381: .NR ($0 ) ! 382: is used. ! 383: The values of ! 384: the individual parts of the section number ! 385: are maintained in ! 386: .NR ($1 ! 387: through ! 388: .NR ($6 . ! 389: There is a ! 390: .NR (ss ! 391: [1v] ! 392: space before the section. ! 393: .i T ! 394: is printed ! 395: as a section title ! 396: in font ! 397: .NR (sf ! 398: [8] ! 399: and size ! 400: .NR (sp ! 401: [10p]. ! 402: The ! 403: .q name ! 404: of the section may be accessed via ! 405: .ST ($n . ! 406: If ! 407: .NR (si ! 408: is non-zero, ! 409: the base indent ! 410: is set to ! 411: .NR (si ! 412: times the section depth, ! 413: and the section title ! 414: is exdented. ! 415: (See ! 416: .b .ba .) ! 417: Also, ! 418: an additional indent of ! 419: .NR (so ! 420: [0] ! 421: is added to the section title ! 422: (but not to the body of the section). ! 423: The font is then set ! 424: to the paragraph font, ! 425: so that more information may occur ! 426: on the line ! 427: with the section number ! 428: and title. ! 429: .b .sh ! 430: insures that there is enough room ! 431: to print the section head ! 432: plus the beginning of a paragraph ! 433: (about 3 lines total). ! 434: If ! 435: .i a ! 436: through ! 437: .i f ! 438: are specified, ! 439: the section number is set to that number ! 440: rather than incremented automatically. ! 441: If any of ! 442: .i a ! 443: through ! 444: .i f ! 445: are a hyphen ! 446: that number is not reset. ! 447: If ! 448: .i T ! 449: is a single underscore ! 450: (\c ! 451: .q _ ) ! 452: then the section depth and numbering is reset, ! 453: but the base indent is not reset ! 454: and nothing is printed out. ! 455: This is useful to automatically ! 456: coordinate section numbers with ! 457: chapter numbers. ! 458: .TL ! 459: .b .sx ! 460: .i +N ! 461: .DE ! 462: Go to section depth ! 463: .i N ! 464: [\c ! 465: .b \-1 ], ! 466: but do not print the number ! 467: and title, ! 468: and do not increment the section number ! 469: at level ! 470: .i N . ! 471: This has the effect ! 472: of starting a new paragraph ! 473: at level ! 474: .i N . ! 475: .TL ! 476: .b .uh ! 477: .i T ! 478: .DE ! 479: Unnumbered section heading. ! 480: The title ! 481: .i T ! 482: is printed ! 483: with the same rules for spacing, ! 484: font, etc., ! 485: as for ! 486: .b .sh . ! 487: .TL ! 488: .b .$p ! 489: .i T ! 490: .i B ! 491: .i N ! 492: .DE ! 493: Print section heading. ! 494: May be redefined ! 495: to get fancier headings. ! 496: .i T ! 497: is the title passed on the ! 498: .b .sh ! 499: or ! 500: .b .uh ! 501: line; ! 502: .i B ! 503: is the section number for this section, ! 504: and ! 505: .i N ! 506: is the depth of this section. ! 507: These parameters are not always present; ! 508: in particular, ! 509: .b .sh ! 510: passes all three, ! 511: .b .uh ! 512: passes only the first, ! 513: and ! 514: .b .sx ! 515: passes three, ! 516: but the first two ! 517: are null strings. ! 518: Care should be taken if this macro ! 519: is redefined; ! 520: it is quite complex and subtle. ! 521: .TL ! 522: .b .$0 ! 523: .i T ! 524: .i B ! 525: .i N ! 526: .DE ! 527: This macro is called automatically ! 528: after every call to ! 529: .b .$p . ! 530: It is normally undefined, ! 531: but may be used ! 532: to automatically put ! 533: every section title ! 534: into the table of contents ! 535: or for some similar function. ! 536: .i T ! 537: is the section title ! 538: for the section title which was just printed, ! 539: .i B ! 540: is the section number, ! 541: and ! 542: .i N ! 543: is the section depth. ! 544: .TL ! 545: .b .$1 ! 546: \- ! 547: .b .$6 ! 548: .DE ! 549: Traps called just before printing that depth section. ! 550: May be defined to ! 551: (for example) ! 552: give variable spacing ! 553: before sections. ! 554: These macros are called from ! 555: .b .$p , ! 556: so if you redefine that macro ! 557: you may lose this feature. ! 558: .sh 1 "Headers and Footers" ! 559: .ds TP \fI\(aal\|\(aam\^\(aar\^\(aa\fP ! 560: .pp ! 561: Headers and footers ! 562: are put at the top and bottom ! 563: of every page ! 564: automatically. ! 565: They are set in font ! 566: .NR (tf ! 567: [3] ! 568: and size ! 569: .NR (tp ! 570: [10p]. ! 571: Each of the definitions ! 572: apply as of the ! 573: .i next ! 574: page. ! 575: Three-part titles ! 576: must be quoted ! 577: if there are two blanks adjacent ! 578: anywhere in the title ! 579: or more than eight blanks total. ! 580: .pp ! 581: The spacing ! 582: of headers and footers ! 583: are controlled by three number registers. ! 584: .NR (hm ! 585: [4v] ! 586: is the distance from the top of the page ! 587: to the top of the header, ! 588: .NR (fm ! 589: [3v] ! 590: is the distance from the bottom of the page ! 591: to the bottom of the footer, ! 592: .NR (tm ! 593: [7v] ! 594: is the distance from the top of the page ! 595: to the top of the text, ! 596: and ! 597: .NR (bm ! 598: [6v] ! 599: is the distance from the bottom of the page ! 600: to the bottom of the text ! 601: (nominal). ! 602: The macros ! 603: .b .m1 , ! 604: .b .m2 , ! 605: .b .m3 , ! 606: and ! 607: .b .m4 ! 608: are also supplied for compatibility ! 609: with ! 610: \s-1ROFF\s0 documents. ! 611: .TL ! 612: .b .he ! 613: \*(TP ! 614: .DE ! 615: Define three-part header, ! 616: to be printed on the top ! 617: of every page. ! 618: .TL ! 619: .b .fo ! 620: \*(TP ! 621: .DE ! 622: Define footer, ! 623: to be printed at the bottom ! 624: of every page. ! 625: .TL ! 626: .b .eh ! 627: \*(TP ! 628: .DE ! 629: Define header, ! 630: to be printed at the top of every ! 631: even-numbered page. ! 632: .TL ! 633: .b .oh ! 634: \*(TP ! 635: .DE ! 636: Define header, ! 637: to be printed at the top of every ! 638: odd-numbered page. ! 639: .TL ! 640: .b .ef ! 641: \*(TP ! 642: .DE ! 643: Define footer, ! 644: to be printed at the bottom ! 645: of every even-numbered page. ! 646: .TL ! 647: .b .of ! 648: \*(TP ! 649: .DE ! 650: Define footer, ! 651: to be printed at the bottom ! 652: of every odd-numbered page. ! 653: .TL ! 654: .b .hx ! 655: .DE ! 656: Suppress headers and footers ! 657: on the next page. ! 658: .TL ! 659: .b .m1 ! 660: .i +N ! 661: .DE ! 662: Set the space between the top of the page ! 663: and the header ! 664: [4v]. ! 665: .TL ! 666: .b .m2 ! 667: .i +N ! 668: .DE ! 669: Set the space between the header ! 670: and the first line of text ! 671: [2v]. ! 672: .TL ! 673: .b .m3 ! 674: .i +N ! 675: .DE ! 676: Set the space ! 677: between the bottom of the text ! 678: and the footer ! 679: [2v]. ! 680: .TL ! 681: .b .m4 ! 682: .i +N ! 683: .DE ! 684: Set the space ! 685: between the footer ! 686: and the bottom of the page ! 687: [4v]. ! 688: .TL ! 689: .b .ep ! 690: .DE ! 691: End this page, ! 692: but do not begin the next page. ! 693: Useful for forcing out footnotes, ! 694: but other than ! 695: that hardly every used. ! 696: Must be followed by a ! 697: .b .bp ! 698: or the end of input. ! 699: .TL ! 700: .b .$h ! 701: .DE ! 702: Called at every page ! 703: to print the header. ! 704: May be redefined ! 705: to provide fancy ! 706: (e.g., ! 707: multi-line) ! 708: headers, ! 709: but doing so ! 710: loses the function of the ! 711: .b .he , ! 712: .b .fo , ! 713: .b .eh , ! 714: .b .oh , ! 715: .b .ef , ! 716: and ! 717: .b .of ! 718: requests, ! 719: as well as the chapter-style title feature ! 720: of ! 721: .b .+c . ! 722: .TL ! 723: .b .$f ! 724: .DE ! 725: Print footer; ! 726: same comments apply ! 727: as in ! 728: .b .$h . ! 729: .TL ! 730: .b .$H ! 731: .DE ! 732: A normally undefined macro ! 733: which is called ! 734: at the top of each page ! 735: (after putting out ! 736: the header, ! 737: initial saved floating keeps, ! 738: etc.); ! 739: in other words, ! 740: this macro is called immediately before ! 741: printing text ! 742: on a page. ! 743: It can be used for column headings ! 744: and the like. ! 745: .sh 1 "Displays" ! 746: .pp ! 747: All displays except centered blocks ! 748: and block quotes ! 749: are preceded and followed ! 750: by an extra ! 751: .NR (bs ! 752: [same as ! 753: .NR (ps ] ! 754: space. ! 755: Quote spacing is stored in a separate register; ! 756: centered blocks have no default initial or trailing space. ! 757: The vertical spacing of all displays except quotes ! 758: and centered blocks ! 759: is stored in register ! 760: .NR ($R ! 761: instead of ! 762: .NR ($r . ! 763: .TL ! 764: .b .(l ! 765: .i m ! 766: .i f ! 767: .DE ! 768: Begin list. ! 769: Lists are single spaced, ! 770: unfilled text. ! 771: If ! 772: .i f ! 773: is ! 774: .b F , ! 775: the list will be filled. ! 776: If ! 777: .i m ! 778: [\c ! 779: .b I ] ! 780: is ! 781: .b I ! 782: the list is indented by ! 783: .NR (bi ! 784: [4m]; ! 785: if ! 786: .b M ! 787: the list is indented to the left margin; ! 788: if ! 789: .b L ! 790: the list is left justified with respect to the text ! 791: (different from ! 792: .b M ! 793: only if the base indent ! 794: (stored in ! 795: .NR ($i ! 796: and set with ! 797: .b .ba ) ! 798: is not zero); ! 799: and if ! 800: .b C ! 801: the list is centered on a line-by-line basis. ! 802: The list is set in font ! 803: .NR (df ! 804: [0]. ! 805: Must be matched by a ! 806: .b .)l . ! 807: This macro is almost like ! 808: .b .(b ! 809: except that no attempt is made ! 810: to keep the display on one page. ! 811: .TL ! 812: .b .)l ! 813: .DE ! 814: End list. ! 815: .TL ! 816: .b .(q ! 817: .DE ! 818: Begin major quote. ! 819: These are single spaced, ! 820: filled, ! 821: moved in from the text ! 822: on both sides ! 823: by ! 824: .NR (qi ! 825: [4n], ! 826: preceded and followed ! 827: by ! 828: .NR (qs ! 829: [same as ! 830: .NR (bs ] ! 831: space, ! 832: and are set in point size ! 833: .NR (qp ! 834: [one point smaller than surrounding text]. ! 835: .TL ! 836: .b .)q ! 837: .DE ! 838: End major quote. ! 839: .TL ! 840: .b .(b ! 841: .i m ! 842: .i f ! 843: .DE ! 844: Begin block. ! 845: Blocks are a form of ! 846: .i keep , ! 847: where the text of a keep ! 848: is kept together on one page ! 849: if possible ! 850: (keeps are useful ! 851: for tables and figures ! 852: which should not be broken ! 853: over a page). ! 854: If the block will not fit ! 855: on the current page ! 856: a new page is begun, ! 857: .i unless ! 858: that would leave more than ! 859: .NR (bt ! 860: [0] ! 861: white space ! 862: at the bottom of the text. ! 863: If ! 864: .NR (bt ! 865: is zero, the threshold feature ! 866: is turned off. ! 867: Blocks are not filled ! 868: unless ! 869: .i f ! 870: is ! 871: .b F , ! 872: when they are filled. ! 873: The block will be left-justified ! 874: if ! 875: .i m ! 876: is ! 877: .b L , ! 878: indented by ! 879: .NR (bi ! 880: [4m] ! 881: if ! 882: .i m ! 883: is ! 884: .b I ! 885: or absent, ! 886: centered ! 887: (line-for-line) ! 888: if ! 889: .i m ! 890: is ! 891: .b C , ! 892: and left justified to the margin ! 893: (not to the base indent) ! 894: if ! 895: .i m ! 896: is ! 897: .b M . ! 898: The block is set in font ! 899: .NR (df ! 900: [0]. ! 901: .TL ! 902: .b .)b ! 903: .DE ! 904: End block. ! 905: .TL ! 906: .b .(z ! 907: .i m ! 908: .i f ! 909: .DE ! 910: Begin floating keep. ! 911: Like ! 912: .b .(b ! 913: except that the keep is ! 914: .i floated ! 915: to the bottom of the page ! 916: or the top of the next page. ! 917: Therefore, ! 918: its position relative to the text changes. ! 919: The floating keep is preceded and followed ! 920: by ! 921: .NR (zs ! 922: [1v] ! 923: space. ! 924: Also, ! 925: it defaults to mode ! 926: .b M . ! 927: .TL ! 928: .b .)z ! 929: .DE ! 930: End floating keep. ! 931: .TL ! 932: .b .(c ! 933: .DE ! 934: Begin centered block. ! 935: The next keep ! 936: is centered as a block, ! 937: rather than on a line-by-line basis ! 938: as with ! 939: .b ".(b C" . ! 940: This call may be nested ! 941: inside keeps. ! 942: .TL ! 943: .b .)c ! 944: .DE ! 945: End centered block. ! 946: .sh 1 Annotations ! 947: .TL ! 948: .b .(d ! 949: .DE ! 950: Begin delayed text. ! 951: Everything in the next keep ! 952: is saved for output ! 953: later with ! 954: .b .pd , ! 955: in a manner ! 956: similar to footnotes. ! 957: .TL ! 958: .b .)d ! 959: .i n ! 960: .DE ! 961: End delayed text. ! 962: The delayed text number register ! 963: .NR ($d ! 964: and the associated string ! 965: .ST # ! 966: are incremented if ! 967: .ST # ! 968: has been referenced. ! 969: .TL ! 970: .b .pd ! 971: .DE ! 972: Print delayed text. ! 973: Everything diverted via ! 974: .b .(d ! 975: is printed and truncated. ! 976: This might be used ! 977: at the end of each chapter. ! 978: .TL ! 979: .b .(f ! 980: .DE ! 981: Begin footnote. ! 982: The text of the footnote ! 983: is floated to the bottom ! 984: of the page ! 985: and set in font ! 986: .NR (ff ! 987: [1] ! 988: and size ! 989: .NR (fp ! 990: [8p]. ! 991: Each entry ! 992: is preceded by ! 993: .NR (fs ! 994: [0.2v] ! 995: space, ! 996: is indented ! 997: .NR (fi ! 998: [3n] ! 999: on the first line, ! 1000: and is indented ! 1001: .NR (fu ! 1002: [0] ! 1003: from the right margin. ! 1004: Footnotes line up underneath ! 1005: two column output. ! 1006: If the text of the footnote ! 1007: will not all fit on one page ! 1008: it will be carried over ! 1009: to the next page. ! 1010: .TL ! 1011: .b .)f ! 1012: .i n ! 1013: .DE ! 1014: End footnote. ! 1015: The number register ! 1016: .NR ($f ! 1017: and the associated string ! 1018: .ST * ! 1019: are incremented ! 1020: if they have been referenced. ! 1021: .TL ! 1022: .b .$s ! 1023: .DE ! 1024: The macro to output the footnote separator. ! 1025: This macro may be redefined ! 1026: to give other size lines or other types ! 1027: of separators. ! 1028: Currently ! 1029: it draws a 1.5i line. ! 1030: .TL ! 1031: .b .(x ! 1032: .i x ! 1033: .DE ! 1034: Begin index entry. ! 1035: Index entries are saved in the index ! 1036: .i x ! 1037: [\c ! 1038: .b x ] ! 1039: until called up with ! 1040: .b .xp. ! 1041: Each entry is preceded ! 1042: by a ! 1043: .NR (xs ! 1044: [0.2v] ! 1045: space. ! 1046: Each entry is ! 1047: .q undented ! 1048: by ! 1049: .NR (xu ! 1050: [0.5i]; ! 1051: this register tells how far the page number ! 1052: extends into the right margin. ! 1053: .TL ! 1054: .b .)x ! 1055: .i P ! 1056: .i A ! 1057: .DE ! 1058: End index entry. ! 1059: The index entry ! 1060: is finished with a row of dots ! 1061: with ! 1062: .i A ! 1063: [null] ! 1064: right justified on the last line ! 1065: (such as for an author's name), ! 1066: followed by P ! 1067: [\c ! 1068: .NR % ]. ! 1069: If ! 1070: .i A ! 1071: is specified, ! 1072: .i P ! 1073: must be specified; ! 1074: .NR % ! 1075: can be used to print the current page number. ! 1076: If ! 1077: .i P ! 1078: is an underscore, ! 1079: no page number ! 1080: and no row of dots ! 1081: are printed. ! 1082: .TL ! 1083: .b .xp ! 1084: .i x ! 1085: .DE ! 1086: Print index ! 1087: .i x ! 1088: [\c ! 1089: .b x ]. ! 1090: The index is formatted in the font, size, and so forth ! 1091: in effect at the time it is printed, ! 1092: rather than at the time it is collected. ! 1093: .sh 1 "Columned Output" ! 1094: .TL ! 1095: .b .2c ! 1096: .i +S ! 1097: .i N ! 1098: .DE ! 1099: Enter two-column mode. ! 1100: The column separation is set to ! 1101: .i +S ! 1102: [4n, 0.5i in ACM mode] ! 1103: (saved in ! 1104: .NR ($s ). ! 1105: The column width, ! 1106: calculated to fill the single column line length ! 1107: with both columns, ! 1108: is stored in ! 1109: .NR ($l . ! 1110: The current column ! 1111: is in ! 1112: .NR ($c . ! 1113: You can test register ! 1114: .NR ($m ! 1115: [1] ! 1116: to see if you are in single column ! 1117: or double column mode. ! 1118: Actually, ! 1119: the request enters ! 1120: .i N ! 1121: [2] ! 1122: column output. ! 1123: .TL ! 1124: .b .1c ! 1125: .DE ! 1126: Revert to single-column mode. ! 1127: .TL ! 1128: .b .bc ! 1129: .DE ! 1130: Begin column. ! 1131: This is like ! 1132: .b .bp ! 1133: except that it begins a new column ! 1134: on a new page ! 1135: only if necessary, ! 1136: rather than forcing a whole new page ! 1137: if there is another column left ! 1138: on the current page. ! 1139: .sh 1 "Fonts and Sizes" ! 1140: .TL ! 1141: .b .sz ! 1142: .i +P ! 1143: .DE ! 1144: The pointsize is set to ! 1145: .i P ! 1146: [10p], ! 1147: and the line spacing is set proportionally. ! 1148: The ratio of line spacing to pointsize ! 1149: is stored in ! 1150: .NR ($r . ! 1151: The ratio used internally ! 1152: by displays and annotations ! 1153: is stored in ! 1154: .NR ($R ! 1155: (although this is not used by ! 1156: .b .sz ). ! 1157: This size is ! 1158: .i not ! 1159: sticky beyond many macros: ! 1160: in particular, ! 1161: .NR (pp ! 1162: (paragraph pointsize) ! 1163: modifies the pointsize every time a new paragraph is begun ! 1164: using the ! 1165: .b \&.pp , ! 1166: .b \&.lp , ! 1167: .b \&.ip , ! 1168: .b \&.np , ! 1169: or ! 1170: .b \&.bu ! 1171: macros. ! 1172: Also, ! 1173: .NR (fp ! 1174: (footnote pointsize), ! 1175: .NR (qp ! 1176: (quote pointsize), ! 1177: .NR (sp ! 1178: (section header pointsize), ! 1179: and ! 1180: .NR (tp ! 1181: (title pointsize) ! 1182: may modify the pointsize. ! 1183: .TL ! 1184: .b .r ! 1185: .i W ! 1186: .i X ! 1187: .DE ! 1188: Set ! 1189: .i W ! 1190: in roman font, ! 1191: appending ! 1192: .i X ! 1193: in the previous font. ! 1194: To append different font requests, ! 1195: use ! 1196: .i X ! 1197: = ! 1198: .b \ec . ! 1199: If no parameters, ! 1200: change to roman font. ! 1201: .TL ! 1202: .b .i ! 1203: .i W ! 1204: .i X ! 1205: .DE ! 1206: Set ! 1207: .i W ! 1208: in italics, ! 1209: appending ! 1210: .i X ! 1211: in the previous font. ! 1212: If no parameters, ! 1213: change to italic font. ! 1214: Underlines in \*N. ! 1215: .TL ! 1216: .b .b ! 1217: .i W ! 1218: .i X ! 1219: .DE ! 1220: Set ! 1221: .i W ! 1222: in bold font ! 1223: and append ! 1224: .i X ! 1225: in the previous font. ! 1226: If no parameters, ! 1227: switch to bold font. ! 1228: In \*N, ! 1229: underlines. ! 1230: .TL ! 1231: .b .rb ! 1232: .i W ! 1233: .i X ! 1234: .DE ! 1235: Set ! 1236: .i W ! 1237: in bold font ! 1238: and append ! 1239: .i X ! 1240: in the previous font. ! 1241: If no parameters, ! 1242: switch to bold font. ! 1243: .b .rb ! 1244: differs from ! 1245: .b .b ! 1246: in that ! 1247: .b .rb ! 1248: does not underline in \*N. ! 1249: .TL ! 1250: .b .u ! 1251: .i W ! 1252: .i X ! 1253: .DE ! 1254: Underline ! 1255: .i W ! 1256: and append ! 1257: .i X . ! 1258: This is a true underlining, ! 1259: as opposed to the ! 1260: .b .ul ! 1261: request, ! 1262: which changes to ! 1263: .q "underline font" ! 1264: (usually italics in \*T). ! 1265: It won't work right ! 1266: if ! 1267: .i W ! 1268: is spread or broken (including hyphenated). ! 1269: In other words, ! 1270: it is safe in nofill mode only. ! 1271: .TL ! 1272: .b .q ! 1273: .i W ! 1274: .i X ! 1275: .DE ! 1276: Quote ! 1277: .i W ! 1278: and append ! 1279: .i X . ! 1280: In \*N ! 1281: this just surrounds ! 1282: .i W ! 1283: with double quote marks ! 1284: (`\|\c ! 1285: .b """" \|'), ! 1286: but in \*T ! 1287: uses directed quotes. ! 1288: .TL ! 1289: .b .bi ! 1290: .i W ! 1291: .i X ! 1292: .DE ! 1293: Set ! 1294: .i W ! 1295: in bold italics ! 1296: and append ! 1297: .i X . ! 1298: Actually, ! 1299: sets ! 1300: .i W ! 1301: in italic ! 1302: and overstrikes once. ! 1303: Underlines in \*N. ! 1304: It won't work right ! 1305: if ! 1306: .i W ! 1307: is spread or broken (including hyphenated). ! 1308: In other words, ! 1309: it is safe in nofill mode only. ! 1310: .TL ! 1311: .b .bx ! 1312: .i W ! 1313: .i X ! 1314: .DE ! 1315: Sets ! 1316: .i W ! 1317: in a box, ! 1318: with ! 1319: .i X ! 1320: appended. ! 1321: Underlines in \*N. ! 1322: It won't work right ! 1323: if ! 1324: .i W ! 1325: is spread or broken (including hyphenated). ! 1326: In other words, ! 1327: it is safe in nofill mode only. ! 1328: .TL ! 1329: .b sm ! 1330: .i W ! 1331: .i X ! 1332: .DE ! 1333: Sets ! 1334: .i W ! 1335: in a smaller pointsize, ! 1336: with ! 1337: .i X ! 1338: appended. ! 1339: .sh 1 "Roff Support" ! 1340: .TL ! 1341: .b .ix ! 1342: .i +N ! 1343: .DE ! 1344: Indent, ! 1345: no break. ! 1346: Equivalent to ! 1347: .b \(aain ! 1348: .i N . ! 1349: .TL ! 1350: .b .bl ! 1351: .i N ! 1352: .DE ! 1353: Leave ! 1354: .i N ! 1355: contiguous white space, ! 1356: on the next page if not enough room ! 1357: on this page. ! 1358: Equivalent to a ! 1359: .b .sp ! 1360: .i N ! 1361: inside a block. ! 1362: .TL ! 1363: .b .pa ! 1364: .i +N ! 1365: .DE ! 1366: Equivalent to ! 1367: .b .bp . ! 1368: .TL ! 1369: .b .ro ! 1370: .DE ! 1371: Set page number ! 1372: in roman numerals. ! 1373: Equivalent to ! 1374: .b ".af % i" . ! 1375: .TL ! 1376: .b .ar ! 1377: .DE ! 1378: Set page number in Arabic. ! 1379: Equivalent to ! 1380: .b ".af % 1" . ! 1381: .TL ! 1382: .b .n1 ! 1383: .DE ! 1384: Number lines in margin from one ! 1385: on each page. ! 1386: .TL ! 1387: .b .n2 ! 1388: .i N ! 1389: .DE ! 1390: Number lines from ! 1391: .i N , ! 1392: stop if ! 1393: .i N ! 1394: = 0. ! 1395: .TL ! 1396: .b .sk ! 1397: .DE ! 1398: Leave the next output page blank, ! 1399: except for headers and footers. ! 1400: This is used to leave space ! 1401: for a full-page diagram ! 1402: which is produced externally ! 1403: and pasted in later. ! 1404: To get a partial-page paste-in display, ! 1405: say ! 1406: .b .sv \ \c ! 1407: .i N , ! 1408: where ! 1409: .i N ! 1410: is the amount of space ! 1411: to leave; ! 1412: this space will be output immediately ! 1413: if there is room, ! 1414: and will otherwise be output ! 1415: at the top of the next page. ! 1416: However, be warned: ! 1417: if ! 1418: .i N ! 1419: is greater than the amount of available space ! 1420: on an empty page, ! 1421: no space will ever be output. ! 1422: .sh 1 "Preprocessor Support" ! 1423: .TL ! 1424: .b .EQ ! 1425: .i m ! 1426: .i T ! 1427: .DE ! 1428: Begin equation. ! 1429: The equation is centered ! 1430: if ! 1431: .i m ! 1432: is ! 1433: .b C ! 1434: or omitted, ! 1435: indented ! 1436: .NR (bi ! 1437: [4m] ! 1438: if ! 1439: .i m ! 1440: is ! 1441: .b I , ! 1442: and left justified if ! 1443: .i m ! 1444: is ! 1445: .b L . ! 1446: .i T ! 1447: is a title printed on the right margin ! 1448: next to the equation. ! 1449: See ! 1450: .i "Typesetting Mathematics \- User's Guide" ! 1451: by Brian W. Kernighan ! 1452: and Lorinda L. Cherry. ! 1453: .TL ! 1454: .b .EN ! 1455: .i c ! 1456: .DE ! 1457: End equation. ! 1458: If ! 1459: .i c ! 1460: is ! 1461: .b C ! 1462: the equation must be continued ! 1463: by immediately following ! 1464: with another ! 1465: .b .EQ , ! 1466: the text of which ! 1467: can be centered ! 1468: along with this one. ! 1469: Otherwise, ! 1470: the equation is printed, ! 1471: always on one page, ! 1472: with ! 1473: .NR (es ! 1474: [0.5v in \*T, 1v in \*N] ! 1475: space ! 1476: above and below it. ! 1477: .TL ! 1478: .b .TS ! 1479: .i h ! 1480: .DE ! 1481: Table start. ! 1482: Tables are single spaced ! 1483: and kept on one page ! 1484: if possible. ! 1485: If you have a large table ! 1486: which will not fit on one page, ! 1487: use ! 1488: .i h ! 1489: = ! 1490: .b H ! 1491: and follow the header part ! 1492: (to be printed on every page of the table) ! 1493: with a ! 1494: .b .TH . ! 1495: See ! 1496: .i "Tbl \- A Program to Format Tables" ! 1497: by M. E. Lesk. ! 1498: .TL ! 1499: .b .TH ! 1500: .DE ! 1501: With ! 1502: .b ".TS H" , ! 1503: ends the header portion of the table. ! 1504: .TL ! 1505: .b .TE ! 1506: .DE ! 1507: Table end. ! 1508: Note that this table ! 1509: does not float, ! 1510: in fact, ! 1511: it is not even guaranteed to stay on one page ! 1512: if you use requests such as ! 1513: .b .sp ! 1514: intermixed with the text ! 1515: of the table. ! 1516: If you want it to float ! 1517: (or if you use requests ! 1518: inside the table), ! 1519: surround the entire table ! 1520: (including the ! 1521: .b .TS ! 1522: and ! 1523: .b .TE ! 1524: requests) ! 1525: with the requests ! 1526: .b .(z ! 1527: and ! 1528: .b .)z . ! 1529: .TL ! 1530: .b .PS ! 1531: .i h ! 1532: .i w ! 1533: .DE ! 1534: Begin ! 1535: .i pic ! 1536: picture. ! 1537: .i H ! 1538: is the height and ! 1539: .i w ! 1540: is the width, ! 1541: both in basic units. ! 1542: .i Ditroff ! 1543: only. ! 1544: .TL ! 1545: .b .PE ! 1546: .DE ! 1547: End picture. ! 1548: .TL ! 1549: .b .IS ! 1550: .DE ! 1551: Begin ! 1552: .i ideal ! 1553: picture. ! 1554: .TL ! 1555: .b .IE ! 1556: .DE ! 1557: End ! 1558: .i ideal ! 1559: picture. ! 1560: .TL ! 1561: .b .IF ! 1562: .DE ! 1563: End ! 1564: .i ideal ! 1565: picture (alternate form). ! 1566: .TL ! 1567: .b GS ! 1568: .DE ! 1569: Begin ! 1570: .i gremlin ! 1571: picture. ! 1572: .TL ! 1573: .b GE ! 1574: .DE ! 1575: End ! 1576: .i gremlin ! 1577: picture. ! 1578: .TL ! 1579: .b GF ! 1580: .DE ! 1581: End ! 1582: .i gremlin ! 1583: picture (alternate form). ! 1584: .sh 1 "Miscellaneous" ! 1585: .TL ! 1586: .b .re ! 1587: .DE ! 1588: Reset tabs. ! 1589: Set to every 0.5i ! 1590: in \*T ! 1591: and every 0.8i in \*N. ! 1592: .TL ! 1593: .b .ba ! 1594: .i +N ! 1595: .DE ! 1596: Set the base indent ! 1597: to ! 1598: .i +N ! 1599: [0] ! 1600: (saved in ! 1601: .NR ($i ). ! 1602: All paragraphs, ! 1603: sections, ! 1604: and displays ! 1605: come out indented by this amount. ! 1606: Titles and footnotes ! 1607: are unaffected. ! 1608: The ! 1609: .b .sh ! 1610: request performs a ! 1611: .b .ba ! 1612: request ! 1613: if ! 1614: .NR (si ! 1615: [0] is not zero, ! 1616: and sets the base indent to ! 1617: .NR (si \c ! 1618: .b * \c ! 1619: .NR ($0 . ! 1620: .TL ! 1621: .b .xl ! 1622: .i +N ! 1623: .DE ! 1624: Set the line length to ! 1625: .i N ! 1626: [6.0i]. ! 1627: This differs ! 1628: from ! 1629: .b .ll ! 1630: because it only affects the current environment. ! 1631: .TL ! 1632: .b .ll ! 1633: .i +N ! 1634: .DE ! 1635: Set line length in all environments ! 1636: to ! 1637: .i N ! 1638: [6.0i]. ! 1639: This should not be used ! 1640: after output has begun, ! 1641: and particularly not in two-column output. ! 1642: The current line length is stored in ! 1643: .NR ($l . ! 1644: .TL ! 1645: .b .hl ! 1646: .DE ! 1647: Draws a horizontal line ! 1648: the length of the page. ! 1649: This is useful ! 1650: inside floating keeps ! 1651: to differentiate ! 1652: between the text ! 1653: and the figure. ! 1654: .TL ! 1655: .b .lh ! 1656: .DE ! 1657: Print a letterhead at the current position on the page. ! 1658: The format of the letterhead must be defined ! 1659: in the file ! 1660: .b /usr/lib/me/letterhead.me ! 1661: by your local systems staff. ! 1662: Some environments may require ! 1663: .i ditroff ! 1664: for this macro ! 1665: to function properly. ! 1666: .TL ! 1667: .b .lo ! 1668: .DE ! 1669: This macro loads another set of macros ! 1670: (in ! 1671: .b /usr/lib/me/local.me ) ! 1672: which is intended to be a set of locally defined macros. ! 1673: These macros ! 1674: should all be of the form ! 1675: .b .* \c ! 1676: .i X , ! 1677: where ! 1678: .i X ! 1679: is any letter ! 1680: (upper or lower case) ! 1681: or digit. ! 1682: .sh 1 "Standard Papers" ! 1683: .TL ! 1684: .b .tp ! 1685: .DE ! 1686: Begin title page. ! 1687: Spacing at the top of the page ! 1688: can occur, ! 1689: and headers and footers are suppressed. ! 1690: Also, ! 1691: the page number ! 1692: is not incremented ! 1693: for this page. ! 1694: .TL ! 1695: .b .th ! 1696: .DE ! 1697: Set thesis mode. ! 1698: This defines the modes acceptable ! 1699: for a doctoral dissertation ! 1700: at Berkeley. ! 1701: It double spaces, ! 1702: defines the header ! 1703: to be a single page number, ! 1704: and changes the margins ! 1705: to be 1.5 inch on the left ! 1706: and one inch on the top. ! 1707: .b .++ ! 1708: and ! 1709: .b .+c ! 1710: should be used with it. ! 1711: This macro must be stated ! 1712: before ! 1713: initialization, ! 1714: that is, ! 1715: before the first call of a paragraphing ! 1716: macro ! 1717: or ! 1718: .b .sh . ! 1719: .TL ! 1720: .b .++ ! 1721: .i m ! 1722: .i H ! 1723: .DE ! 1724: This request defines the section of the paper ! 1725: which we are entering. ! 1726: The section type is defined by ! 1727: .i m . ! 1728: .b C ! 1729: means that we are entering the chapter portion ! 1730: of the paper, ! 1731: .b A ! 1732: means that we are entering the appendix portion ! 1733: of the paper, ! 1734: .b P ! 1735: means that the material following ! 1736: should be the preliminary portion ! 1737: (abstract, table of contents, etc.) ! 1738: portion of the paper, ! 1739: .b AB ! 1740: means that we are entering the abstract ! 1741: (numbered independently from 1 ! 1742: in Arabic numerals), ! 1743: and ! 1744: .b B ! 1745: means that we are entering the bibliographic ! 1746: portion at the end of the paper. ! 1747: Also, the variants ! 1748: .b RC ! 1749: and ! 1750: .b RA ! 1751: are allowed, ! 1752: which specify renumbering of pages ! 1753: from one at the beginning of each ! 1754: chapter or appendix, ! 1755: respectively. ! 1756: The ! 1757: .i H ! 1758: parameter defines the new header. ! 1759: If there are any spaces in it, ! 1760: the entire header must be quoted. ! 1761: If you want the header to have the chapter number ! 1762: in it, ! 1763: Use the string ! 1764: .b "\e\e\e\en(ch" . ! 1765: For example, to number appendixes ! 1766: .b A.1 ! 1767: etc., ! 1768: type ! 1769: .b ".++ RA \(aa\(aa\(aa\e\e\e\en(ch.%\(aa" . ! 1770: Each section ! 1771: (chapter, appendix, etc.) ! 1772: should be preceded by the ! 1773: .b .+c ! 1774: request. ! 1775: It should be mentioned ! 1776: that it is easier when using ! 1777: \*T to put the front material ! 1778: at the end of the paper, ! 1779: so that the table of contents ! 1780: can be collected and put out; ! 1781: this material can then be physically ! 1782: moved to the beginning of the paper. ! 1783: .TL ! 1784: .b .+c ! 1785: .i T ! 1786: .DE ! 1787: Begin chapter with title ! 1788: .i T . ! 1789: The chapter number ! 1790: is maintained in ! 1791: .NR (ch . ! 1792: This register is incremented ! 1793: every time ! 1794: .b .+c ! 1795: is called with a parameter. ! 1796: The title and chapter number ! 1797: are printed by ! 1798: .b .$c . ! 1799: The header is moved to the footer ! 1800: on the first page ! 1801: of each chapter. ! 1802: If ! 1803: .i T ! 1804: is omitted, ! 1805: .b .$c ! 1806: is not called; ! 1807: this is useful for doing your own ! 1808: .q "title page" ! 1809: at the beginning of papers ! 1810: without a title page proper. ! 1811: .b .$c ! 1812: calls ! 1813: .b .$C ! 1814: as a hook so that chapter titles can be inserted ! 1815: into a table of contents automatically. ! 1816: The footnote numbering is reset to one. ! 1817: .TL ! 1818: .b .$c ! 1819: .i T ! 1820: .DE ! 1821: Print chapter number ! 1822: (from ! 1823: .NR (ch ) ! 1824: and ! 1825: .i T . ! 1826: This macro can be redefined to your liking. ! 1827: It is defined by default ! 1828: to be acceptable ! 1829: for a PhD thesis ! 1830: at Berkeley. ! 1831: This macro calls ! 1832: .b $C , ! 1833: which can be defined to make index entries, ! 1834: or whatever. ! 1835: .TL ! 1836: .b .$C ! 1837: .i K ! 1838: .i N ! 1839: .i T ! 1840: .DE ! 1841: This macro is called by ! 1842: .b .$c . ! 1843: It is normally undefined, ! 1844: but can be used to automatically insert ! 1845: index entries, ! 1846: or whatever. ! 1847: .i K ! 1848: is a keyword, ! 1849: either ! 1850: .q Chapter ! 1851: or ! 1852: .q Appendix ! 1853: (depending on the ! 1854: .b .++ ! 1855: mode); ! 1856: .i N ! 1857: is the chapter or appendix number, ! 1858: and ! 1859: .i T ! 1860: is the chapter or appendix title. ! 1861: .TL ! 1862: .b .ac ! 1863: .i A ! 1864: .i N ! 1865: .DE ! 1866: This macro ! 1867: (short for ! 1868: .b .acm ) ! 1869: sets up the \*N environment ! 1870: for camera-ready papers ! 1871: as used by the ACM. ! 1872: This format is 25% larger, ! 1873: and has no headers or footers. ! 1874: The author's name ! 1875: .i A ! 1876: is printed at the bottom of the page ! 1877: (but off the part which will be printed ! 1878: in the conference proceedings), ! 1879: together with the current page number ! 1880: and the total number of pages ! 1881: .i N . ! 1882: Additionally, ! 1883: this macro loads the file ! 1884: .b /usr/lib/me/acm.me , ! 1885: which may later be augmented with other macros ! 1886: useful for printing papers ! 1887: for ACM conferences. ! 1888: It should be noted ! 1889: that this macro will not work correctly in version 7 \*T, ! 1890: since it sets the page length ! 1891: wider than the physical width ! 1892: of the C/A/T phototypesetter roll. ! 1893: .sh 1 "Predefined Strings" ! 1894: .TL ! 1895: .ST * ! 1896: .DE ! 1897: Footnote number, actually ! 1898: .ST [ \c ! 1899: .NR ($f \c ! 1900: .ST ] . ! 1901: This macro is incremented ! 1902: after each call to ! 1903: .b .)f . ! 1904: .TL ! 1905: .ST # ! 1906: .DE ! 1907: Delayed text number. ! 1908: Actually ! 1909: [\c ! 1910: .NR ($d ]. ! 1911: .TL ! 1912: .ST [ ! 1913: .DE ! 1914: Superscript. ! 1915: This string gives upward movement ! 1916: and a change to a smaller point size ! 1917: if possible, ! 1918: otherwise it gives the left bracket character ! 1919: (`\^\c ! 1920: .b [ \^'). ! 1921: Extra space is left above the line ! 1922: to allow room for the superscript. ! 1923: .TL ! 1924: .ST ] ! 1925: .DE ! 1926: Unsuperscript. ! 1927: Inverse to ! 1928: .ST [ . ! 1929: For example, ! 1930: to produce a superscript ! 1931: you might type ! 1932: .b x \c ! 1933: .ST [ \c ! 1934: .b 2 \c ! 1935: .ST ] , ! 1936: which will produce ! 1937: .b x\*[2\*] . ! 1938: .TL ! 1939: .ST < ! 1940: .DE ! 1941: Subscript. ! 1942: Defaults to ! 1943: `\^<\^' ! 1944: if half-carriage motion not possible. ! 1945: Extra space is left below the line ! 1946: to allow for the subscript. ! 1947: .TL ! 1948: .ST > ! 1949: .DE ! 1950: Inverse to ! 1951: .ST < . ! 1952: .TL ! 1953: .ST (dw ! 1954: .DE ! 1955: The day of the week, ! 1956: as a word. ! 1957: .TL ! 1958: .ST (mo ! 1959: .DE ! 1960: The month, ! 1961: as a word. ! 1962: .TL ! 1963: .ST (td ! 1964: .DE ! 1965: Today's date, ! 1966: directly printable. ! 1967: The date is of the form \*(td. ! 1968: Other forms of the date can be used ! 1969: by using ! 1970: .NR (dy ! 1971: (the day of the month; ! 1972: for example, \n(dy), ! 1973: .ST (mo ! 1974: (as noted above) ! 1975: or ! 1976: .NR (mo ! 1977: (the same, ! 1978: but as an ordinal number; ! 1979: for example, \*(mo is \n(mo), ! 1980: and ! 1981: .NR (yr ! 1982: (the last two digits of the current year). ! 1983: .TL ! 1984: .ST (lq ! 1985: .DE ! 1986: Left quote marks. ! 1987: Double quote in \*N. ! 1988: .TL ! 1989: .ST (rq ! 1990: .DE ! 1991: Right quote. ! 1992: .TL ! 1993: .ST \- ! 1994: .DE ! 1995: .ie \w'\(34'>0 \(34 ! 1996: .el 3/4 ! 1997: em dash in \*T; ! 1998: two hyphens in \*N. ! 1999: .sh 1 "Special Characters and Marks" ! 2000: .pp ! 2001: There are a number of special characters ! 2002: and diacritical marks ! 2003: (such as accents) ! 2004: available through \-me. ! 2005: To reference these characters, ! 2006: you must call the macro ! 2007: .b .sc ! 2008: to define the characters before using them. ! 2009: .TL ! 2010: .b .sc ! 2011: .DE ! 2012: Define special characters and diacritical marks, as described ! 2013: in the remainder of this section. ! 2014: This macro must be stated ! 2015: before initialization. ! 2016: The special characters available ! 2017: are listed below. ! 2018: .in +4n ! 2019: .ta 15 +5 +6 ! 2020: .nf ! 2021: Name Usage Example ! 2022: Acute accent \e*\(aa a\e*\(aa a\*' ! 2023: Grave accent \e*\(ga e\e*\(ga e\*` ! 2024: Umlat \e*: u\e*: u\*: ! 2025: Tilde \e*~ n\e*~ n\*~ ! 2026: Caret \e*^ e\e*^ e\*^ ! 2027: Cedilla \e*, c\e*, c\*, ! 2028: Czech \e*v e\e*v e\*v ! 2029: Circle \e*o A\e*o A\*o ! 2030: There exists \e*(qe \*(qe ! 2031: For all \e*(qa \*(qa ! 2032: .fi ! 2033: .sp 1i ! 2034: .in 0 ! 2035: .b Acknowledgments ! 2036: .pp ! 2037: I would like to thank ! 2038: Bob Epstein, ! 2039: Bill Joy, ! 2040: and Larry Rowe ! 2041: for having the courage ! 2042: to use the \-me macros ! 2043: to produce non-trivial papers ! 2044: during the development stages; ! 2045: Ricki Blau, ! 2046: Pamela Humphrey, ! 2047: and Jim Joyce ! 2048: for their help with the documentation phase; ! 2049: peter kessler ! 2050: for numerous complaints, ! 2051: most accompanied by fixes; ! 2052: and the plethora of people who have contributed ideas ! 2053: and have given support for the project. ! 2054: .bp ! 2055: .b Summary ! 2056: .pp ! 2057: This alphabetical list summarizes all macros, strings, and number registers ! 2058: available in the \-me macros. ! 2059: Selected ! 2060: .i troff ! 2061: commands, registers, and functions are included as well; ! 2062: those listed can generally be used with impunity. ! 2063: .pp ! 2064: The columns are the name of the ! 2065: command, macro, register, or string; ! 2066: the type of the object, ! 2067: and the description. ! 2068: Types are ! 2069: .b M ! 2070: for macro or builtin command ! 2071: (invoked with ! 2072: .b \&. ! 2073: or ! 2074: .b \&\' ! 2075: in the first input column), ! 2076: .b S ! 2077: for a string ! 2078: (invoked with ! 2079: .b \e* ! 2080: or ! 2081: .b \e*( ), ! 2082: .b R ! 2083: for a number register ! 2084: (invoked with ! 2085: .b \en ! 2086: or ! 2087: .b \en( ), ! 2088: and ! 2089: .b F ! 2090: for a ! 2091: .i troff ! 2092: builtin function ! 2093: (invoked by preceding it with a single backslash). ! 2094: .pp ! 2095: Lines marked with \(sc are ! 2096: .i troff ! 2097: internal codes. ! 2098: Lines marked with \(dg or \(dd ! 2099: may be defined by the user to get special functions; ! 2100: \(dd indicates that these are defined by default ! 2101: and changing them may have unexpected side effects. ! 2102: Lines marked with \(de ! 2103: are specific to ! 2104: .i ditroff ! 2105: (device-independent ! 2106: .i troff ). ! 2107: .de $H ! 2108: .ev 1 ! 2109: .ta \w'\e(space)\(sc\ 'u +\w'TYPE 'u ! 2110: NAME TYPE DESCRIPTION ! 2111: .ev ! 2112: .. ! 2113: .(l ! 2114: .$H ! 2115: \e(space) F\(sc unpaddable space ! 2116: \e" F\(sc comment (to end of line) ! 2117: \e*# S optional delayed text tag string ! 2118: \e$\fI\&N\fP F\(sc interpolate argument \fI\&N\fP ! 2119: \en($0 R section depth ! 2120: \&.$0 M\(dg invoked after section title printed ! 2121: \en($1 R first section number ! 2122: \&.$1 M\(dg invoked before printing depth 1 section ! 2123: \en($2 R second section number ! 2124: \&.$2 M\(dg invoked before printing depth 2 section ! 2125: \en($3 R third section number ! 2126: \&.$3 M\(dg invoked before printing depth 3 section ! 2127: \en($4 R fourth section number ! 2128: \&.$4 M\(dg invoked before printing depth 4 section ! 2129: \en($5 R fifth section number ! 2130: \&.$5 M\(dg invoked before printing depth 5 section ! 2131: \en($6 R sixth section number ! 2132: \&.$6 M\(dg invoked before printing depth 6 section ! 2133: \&.$C M\(dg called at beginning of chapter ! 2134: \&.$H M\(dg text header ! 2135: \en($R R\(dd relative vertical spacing in displays ! 2136: \en($c R current column number ! 2137: \&.$c M\(dd print chapter title ! 2138: \en($d R delayed text number ! 2139: \en($f R footnote number ! 2140: \&.$f M\(dd print footer ! 2141: \&.$h M\(dd print header ! 2142: \en($i R paragraph base indent ! 2143: \en($l R column width ! 2144: \en($m R number of columns in effect ! 2145: \e*($n S section name ! 2146: \en($p R numbered paragraph number ! 2147: \&.$p M\(dd print section heading (internal macro) ! 2148: \en($r R\(dd relative vertical spacing in text ! 2149: \en($s R column indent ! 2150: \&.$s M\(dd footnote separator (from text) ! 2151: \en% R\(sc current page number ! 2152: \e& F\(sc zero width character, useful for hiding controls ! 2153: \e(\fI\&xx\fP F\(sc interpolate special character \fI\&xx\fP ! 2154: \&.(b M begin block ! 2155: \&.(c M begin centered block ! 2156: \&.(d M begin delayed text ! 2157: \&.(f M begin footnote ! 2158: \&.(l M begin list ! 2159: \&.(q M begin quote ! 2160: \&.(x M begin index entry ! 2161: \&.(z M begin floating keep ! 2162: \&.)b M end block ! 2163: \&.)c M end centered block ! 2164: \&.)d M end delayed text ! 2165: \&.)f M end footnote ! 2166: \&.)l M end list ! 2167: \&.)q M end quote ! 2168: \&.)x M end index entry ! 2169: \&.)z M end floating keep ! 2170: \e*\fI\&x\fP F\(sc interpolate string \fI\&x\fP ! 2171: \e*(\fI\&xx\fP F\(sc interpolate string \fI\&xx\fP ! 2172: \e** S optional footnote tag string ! 2173: \&.++ M set paper section type ! 2174: \&.+c M begin chapter ! 2175: \e*, S cedilla ! 2176: \e\- F\(sc minus sign ! 2177: \e*\- S 3/4 em dash ! 2178: \e0 F\(sc unpaddable digit-width space ! 2179: \&.1c M revert to single column output ! 2180: \&.2c M begin two column output ! 2181: \e*: S umlat ! 2182: \e*< S begin subscript ! 2183: \e*> S end subscript ! 2184: \&.EN M end equation ! 2185: \&.EQ M begin equation ! 2186: \eL\'\fI\&d\fP\' F\(sc vertical line drawing function for distance \fI\&d\fP ! 2187: \&.GE M\(de end \fIgremlin\fP picture ! 2188: \&.GF M\(de end \fIgremlin\fP picture (with flyback) ! 2189: \&.GS M\(de start \fIgremlin\fP picture ! 2190: \&.IE M\(de end \fIideal\fP picture ! 2191: \&.IF M\(de end \fIideal\fP picture (with flyback) ! 2192: \&.IS M\(de start \fIideal\fP picture ! 2193: \&.PE M\(de end \fIpic\fP picture ! 2194: \&.PF M\(de end \fIpic\fP picture (with flyback) ! 2195: \&.PS M\(de start \fIpic\fP picture ! 2196: \&.TE M end table ! 2197: \&.TH M end header of table ! 2198: \&.TS M begin table ! 2199: \e*[ S begin superscript ! 2200: \en(\&.$ R\(sc number of arguments to macro ! 2201: \en(\&.i R\(sc current indent ! 2202: \en(\&.l R\(sc current line length ! 2203: \en(\&.s R\(sc current point size ! 2204: \e*(\&\' S acute accent ! 2205: \e*(\&\` S grave accent ! 2206: \e(\' F\(sc acute accent ! 2207: \e(\` F\(sc grave accent ! 2208: \e*] S end superscript ! 2209: \e^ F\(sc 1/12 em narrow space ! 2210: \e*^ S caret ! 2211: \&.ac M ACM mode ! 2212: \&.ad M\(sc set text adjustment ! 2213: \&.af M\(sc assign format to register ! 2214: \&.am M\(sc append to macro ! 2215: \&.ar M set page numbers in Arabic ! 2216: \&.as M\(sc append to string ! 2217: \&.b M bold font ! 2218: \&.ba M set base indent ! 2219: \&.bc M begin new column ! 2220: \&.bi M bold italic ! 2221: \en(bi R display (block) indent ! 2222: \&.bl M blank lines (even at top of page) ! 2223: \en(bm R bottom title margin ! 2224: \&.bp M\(sc begin page ! 2225: \&.br M\(sc break (start new line) ! 2226: \en(bs R display (block) pre/post spacing ! 2227: \en(bt R block keep threshold ! 2228: \&.bx M boxed ! 2229: \ec F\(sc continue input ! 2230: \&.ce M\(sc center lines ! 2231: \en(ch R current chapter number ! 2232: \&.de M\(sc define macro ! 2233: \en(df R display font ! 2234: \&.ds M\(sc define string ! 2235: \en(dw R\(sc current day of week ! 2236: \e*(dw S current day of week ! 2237: \en(dy R\(sc day of month ! 2238: \ee F\(sc printable version of \e ! 2239: \&.ef M set footer (even numbered pages only) ! 2240: \&.eh M set header (even numbered pages only) ! 2241: \&.el M\(sc else part of conditional ! 2242: \&.ep M end page ! 2243: \en(es R equation pre/post space ! 2244: \ef\fI\&f\fP F\(sc inline font change to font \fI\&f\fP ! 2245: \ef(\fI\&ff\fP F\(sc inline font change to font \fI\&ff\fP ! 2246: \&.fc M\(sc set field characters ! 2247: \en(ff R footnote font ! 2248: \&.fi M\(sc fill output lines ! 2249: \en(fi R footnote indent (first line only) ! 2250: \en(fm R footer margin ! 2251: \&.fo M set footer ! 2252: \en(fp R footnote pointsize ! 2253: \en(fs R footnote prespace ! 2254: \en(fu R footnote undent (from right margin) ! 2255: \eh\'\fI\&d\fP\' F\(sc local horizontal motion for distance \fI\&d\fP ! 2256: \&.hc M\(sc set hyphenation character ! 2257: \&.he M set header ! 2258: \&.hl M draw horizontal line ! 2259: \en(hm R header margin ! 2260: \&.hx M suppress headers and footers on next page ! 2261: \&.hy M\(sc set hyphenation mode ! 2262: \&.i M italic font ! 2263: \&.ie M\(sc conditional with else ! 2264: \&.if M\(sc conditional ! 2265: \en(ii R indented paragraph indent ! 2266: \&.in M\(sc indent (transient, use .ba for pervasive) ! 2267: \&.ip M begin indented paragraph ! 2268: \&.ix M indent, no break ! 2269: \el\'\fI\&d\fP\' F\(sc horizontal line drawing function for distance \fI\&d\fP ! 2270: \&.lc M\(sc set leader repetition character ! 2271: \&.lh M\(de interpolate local letterhead ! 2272: \&.ll M set line length ! 2273: \&.lo M load local macros ! 2274: \&.lp M begin left justified paragraph ! 2275: \e*(lq S left quote marks ! 2276: \&.ls M\(sc set multi-line spacing ! 2277: \&.m1 M set space from top of page to header ! 2278: \&.m2 M set space from header to text ! 2279: \&.m3 M set space from text to footer ! 2280: \&.m4 M set space from footer to bottom of page ! 2281: \&.mc M\(sc insert margin character ! 2282: \&.mk M\(sc mark vertical position ! 2283: \en(mo R\(sc month of year ! 2284: \e*(mo S current month ! 2285: \en\fI\&x\fP F\(sc interpolate number register \fI\&x\fP ! 2286: \en(\fI\&xx\fP F\(sc interpolate number register \fI\&xx\fP ! 2287: \&.n1 M number lines in margin ! 2288: \&.n2 M number lines in margin ! 2289: \&.na M\(sc turn off text adjustment ! 2290: \&.ne M\(sc need vertical space ! 2291: \&.nf M\(sc don't fill output lines ! 2292: \&.nh M\(sc turn off hyphenation ! 2293: \&.np M begin numbered paragraph ! 2294: \&.nr M\(sc set number register ! 2295: \&.ns M\(sc no space mode ! 2296: \e*o S circle (e.g., for Norse A\*o) ! 2297: \&.of M set footer (odd numbered pages only) ! 2298: \&.oh M set header (odd numbered pages only) ! 2299: \&.pa M begin page ! 2300: \&.pd M print delayed text ! 2301: \en(pf R paragraph font ! 2302: \en(pi R paragraph indent ! 2303: \&.pl M\(sc set page length ! 2304: \&.pn M\(sc set next page number ! 2305: \&.po M\(sc page offset ! 2306: \en(po R simulated page offset ! 2307: \&.pp M begin paragraph ! 2308: \en(pp R paragraph pointsize ! 2309: \en(ps R paragraph prespace ! 2310: \&.q M quoted ! 2311: \e*(qa S for all ! 2312: \e*(qe S there exists ! 2313: \en(qi R quote indent (also shortens line) ! 2314: \en(qp R quote pointsize ! 2315: \en(qs R quote pre/post space ! 2316: \&.r M roman font ! 2317: \&.rb M real bold font ! 2318: \&.re M reset tabs ! 2319: \&.rm M\(sc remove macro or string ! 2320: \&.rn M\(sc rename macro or string ! 2321: \&.ro M set page numbers in roman ! 2322: \e*(rq S right quote marks ! 2323: \&.rr M\(sc remove register ! 2324: \&.rs M\(sc restore spacing ! 2325: \&.rt M\(sc return to vertical position ! 2326: \es\fI\&S\fP F\(sc inline size change to size \fI\&S\fP ! 2327: \&.sc M load special characters ! 2328: \en(sf R section title font ! 2329: \&.sh M begin numbered section ! 2330: \en(si R relative base indent per section depth ! 2331: \&.sk M skip next page ! 2332: \&.sm M set argument in a smaller pointsize ! 2333: \&.so M\(sc source input file ! 2334: \en(so R additional section title offset ! 2335: \&.sp M\(sc vertical space ! 2336: \en(sp R section title pointsize ! 2337: \en(ss R section prespace ! 2338: \&.sx M change section depth ! 2339: \&.sz M set pointsize and vertical spacing ! 2340: \&.ta M\(sc set tab stops ! 2341: \&.tc M\(sc set tab repetition character ! 2342: \e*(td S today's date ! 2343: \en(tf R title font ! 2344: \&.th M set thesis mode ! 2345: \&.ti M\(sc temporary indent (next line only) ! 2346: \&.tl M\(sc three part title ! 2347: \en(tm R top title margin ! 2348: \&.tp M begin title page ! 2349: \en(tp R title pointsize ! 2350: \&.tr M\(sc translate ! 2351: \&.u M underlined ! 2352: \&.uh M unnumbered section ! 2353: \&.ul M\(sc underline next line ! 2354: \ev\'\fI\&d\fP\' F\(sc local vertical motion for distance \fI\&d\fP ! 2355: \e*v S inverted `v' for czeck ``e\*v'' ! 2356: \ew\'\fI\&S\fP\' F\(sc return width of string \fI\&S\fP ! 2357: \&.xl M set line length (local) ! 2358: \&.xp M print index ! 2359: \en(xs R index entry prespace ! 2360: \en(xu R index undent (from right margin) ! 2361: \en(yr R\(sc year (last two digits only) ! 2362: \en(zs R floating keep pre/post space ! 2363: \e{ F\(sc begin conditional group ! 2364: \e| F\(sc 1/6 em narrow space ! 2365: \e} F\(sc end conditional group ! 2366: \e*~ S tilde ! 2367: .)l ! 2368: .rm $H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.