|
|
1.1 ! root 1: .\" @(#)tmac.s 1.6 (Berkeley) 6/2/90 ! 2: .\" ancillary files reside in \*(//, ! 3: .\" except local which are in \*(L/, ! 4: .ds // /usr/share/ms/ ! 5: .ds L/ /usr/local/lib/tmac/ ! 6: . \" IZ - initialize (before text begins) ! 7: .de IZ ! 8: .nr FM 1i ! 9: .nr YY -\\n(FMu ! 10: .nr XX 0 1 ! 11: .nr IP 0 ! 12: .nr PI 5n ! 13: .nr QI 5n ! 14: .nr FI 2n ! 15: .nr I0 \\n(PIu ! 16: .if n .nr PD 1v ! 17: .if t .nr PD .3v ! 18: .if n .nr DD 1v ! 19: .if t .nr DD .5v ! 20: .nr PS 10 ! 21: .nr VS 12 ! 22: .ps \\n(PS ! 23: .vs \\n(VSp ! 24: .nr ML 3v ! 25: .nr IR 0 ! 26: .nr TB 0 ! 27: .nr SJ \\n(.j ! 28: .nr PO \\n(.o ! 29: .nr LL 6i ! 30: .ll \\n(LLu ! 31: .lt 6i ! 32: .ev 1 ! 33: .nr FL 5.5i ! 34: .ll \\n(FLu ! 35: .ps 8 ! 36: .vs 10p ! 37: .ev ! 38: .ds CH - \\\\n(PN - ! 39: .if n .ds CF \\*(DY ! 40: .wh 0 NP ! 41: .wh -\\n(FMu FO ! 42: .ch FO 16i ! 43: .wh -\\n(FMu FX ! 44: .ch FO -\\n(FMu ! 45: .wh -\\n(FMu/2u BT ! 46: .. ! 47: . \" RT - reset (at new paragraph) ! 48: .de RT ! 49: .if !\\n(1T .BG ! 50: .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di ! 51: .if \\n(TM .ls 2 ! 52: .ce 0 ! 53: .ul 0 ! 54: .if \\n(QP \{\ ! 55: . ll +\\n(QIu ! 56: . in -\\n(QIu ! 57: . nr QP -1 ! 58: .\} ! 59: .if \\n(NX<=1 .if !\\n(AJ .ll \\n(LLu ! 60: .if !\\n(IF \{\ ! 61: . ps \\n(PS ! 62: . if \\n(VS>=40 .vs \\n(VSu ! 63: . if \\n(VS<=39 .vs \\n(VSp ! 64: .\} ! 65: .if !\\n(IP .nr I0 \\n(PIu ! 66: .if \\n(IP \{\ ! 67: . in -\\n(I\\n(IRu ! 68: . nr IP -1 ! 69: .\} ! 70: .ft 1 ! 71: .TA ! 72: .fi ! 73: .. ! 74: . \" TA - set default tabs ! 75: .de TA ! 76: .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n ! 77: .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n ! 78: .. ! 79: . \" BG - begin (at first paragraph) ! 80: .de BG ! 81: .br ! 82: .nr YE 1 ! 83: .di ! 84: .ce 0 ! 85: .nr KI 0 ! 86: .hy 14 ! 87: .nr 1T 1 ! 88: .S\\n(ST ! 89: .rm S0 S1 S2 SY TX AX WT RP ! 90: .\"redefs ! 91: .de TL ! 92: .ft 3 ! 93: .ce 99 ! 94: .sp ! 95: .LG ! 96: \\.. ! 97: .de AU ! 98: .ft 2 ! 99: .if n .ul 0 ! 100: .ce 99 ! 101: .sp ! 102: .NL ! 103: \\.. ! 104: .de AI ! 105: .ft 1 ! 106: .if n .ul 0 ! 107: .ce 99 ! 108: .if n .sp ! 109: .if t .sp .5 ! 110: .NL ! 111: \\.. ! 112: .RA ! 113: .rn FJ FS ! 114: .rn FK FE ! 115: .nf ! 116: .ev 1 ! 117: .ps \\n(PS-2 ! 118: .vs \\n(.s+2p ! 119: .ev ! 120: .if !\\n(KG .nr FP 0 ! 121: .nr KG 0 ! 122: .if \\n(FP \{\ ! 123: . FS ! 124: . FG ! 125: . FE ! 126: .\} ! 127: .br ! 128: .if \\n(TV .if n .sp 2 ! 129: .if \\n(TV .if t .sp 1 ! 130: .fi ! 131: .ll \\n(LLu ! 132: .. ! 133: . \" RA - redefine abstract ! 134: .de RA ! 135: .de AB ! 136: .br ! 137: .if !\\n(1T .BG ! 138: .ce ! 139: .sp ! 140: .if !\\n(.$ ABSTRACT ! 141: .if \\n(.$ .if !\\$1no \\$1 ! 142: .if !\\n(.$ .sp ! 143: .if \\n(.$ .if !\\$1no .sp ! 144: .sp ! 145: .nr AJ 1 ! 146: .in +\\n(.lu/12u ! 147: .ll -\\n(.lu/12u ! 148: .RT ! 149: .if \\n(TM .ls 1 ! 150: \\.. ! 151: .de AE ! 152: .nr AJ 0 ! 153: .br ! 154: .in 0 ! 155: .ll \\n(LLu ! 156: .if \\n(VS>=40 .vs \\n(VSu ! 157: .if \\n(VS<=39 .vs \\n(VSp ! 158: .if \\n(TM .ls 2 ! 159: \\.. ! 160: .. ! 161: . \" RP - released paper format ! 162: .de RP ! 163: .nr ST 2 ! 164: .if \\$1no .nr ST 1 ! 165: .pn 0 ! 166: .br ! 167: .. ! 168: . \" TL - source file for cover sheet ! 169: .de TL ! 170: .rn TL @T ! 171: .so \*(//cov.ms ! 172: .TL ! 173: .rm @T ! 174: .. ! 175: . \" PP - regular paragraph ! 176: .de PP ! 177: .RT ! 178: .if \\n(1T .sp \\n(PDu ! 179: .ne 1.1 ! 180: .ti +\\n(PIu ! 181: .. ! 182: . \" LP - left paragraph ! 183: .de LP ! 184: .RT ! 185: .if \\n(1T .sp \\n(PDu ! 186: .ne 1.1 ! 187: .ti \\n(.iu ! 188: .. ! 189: . \" IP - indented paragraph ! 190: .de IP ! 191: .RT ! 192: .if \\n(1T .sp \\n(PDu ! 193: .ne 1.1 ! 194: .if !\\n(IP .nr IP +1 ! 195: .if \\n(.$-1 .nr I\\n(IR \\$2n ! 196: .in +\\n(I\\n(IRu ! 197: .ta \\n(I\\n(IRu ! 198: .if \\n(.$ \{\ ! 199: .ds HT \&\\$1 ! 200: .ti -\\n(I\\n(IRu ! 201: \\*(HT\t\c ! 202: .if \w\\*(HTu>(\\n(I\\n(IRu+1n) .br ! 203: .\} ! 204: .. ! 205: . \" XP - exdented paragraph ! 206: .de XP ! 207: .RT ! 208: .if \\n(1T .sp \\n(PDu ! 209: .ne 1.1 ! 210: .if !\\n(IP .nr IP +1 ! 211: .in +\\n(I\\n(IRu ! 212: .ti -\\n(I\\n(IRu ! 213: .. ! 214: . \" QP - quote paragraph ! 215: .de QP ! 216: .ti \\n(.iu ! 217: .RT ! 218: .if \\n(1T .sp \\n(PDu ! 219: .ne 1.1 ! 220: .nr QP 1 ! 221: .in +\\n(QIu ! 222: .ll -\\n(QIu ! 223: .ti \\n(.iu ! 224: .if \\n(TM .ls 1 ! 225: .. ! 226: . \" SH - section header ! 227: .de SH ! 228: .ti \\n(.iu ! 229: .RT ! 230: .if \\n(1T .sp ! 231: .RT ! 232: .ne 3.1 ! 233: .B ! 234: .. ! 235: . \" NH - numbered header ! 236: .de NH ! 237: .SH ! 238: .nr NS \\$1 ! 239: .if !\\n(.$ .nr NS 1 ! 240: .if !\\n(NS .nr NS 1 ! 241: .nr H\\n(NS +1 ! 242: .if !\\n(NS-4 .nr H5 0 ! 243: .if !\\n(NS-3 .nr H4 0 ! 244: .if !\\n(NS-2 .nr H3 0 ! 245: .if !\\n(NS-1 .nr H2 0 ! 246: .if !\\$1 .if \\n(.$ .nr H1 1 ! 247: .if \\$1S \{\ ! 248: . nr NS \\n(.$-1 ! 249: . nr H1 \\$2 ! 250: . nr H2 \\$3 ! 251: . nr H3 \\$4 ! 252: . nr H4 \\$5 ! 253: . nr H5 \\$6 ! 254: .\} ! 255: .ds SN \\n(H1. ! 256: .if \\n(NS-1 .as SN \\n(H2. ! 257: .if \\n(NS-2 .as SN \\n(H3. ! 258: .if \\n(NS-3 .as SN \\n(H4. ! 259: .if \\n(NS-4 .as SN \\n(H5. ! 260: \\*(SN ! 261: .. ! 262: . \" DS - display with keep (L=left I=indent C=center B=block) ! 263: .de DS ! 264: .KS ! 265: .nf ! 266: .\\$1D \\$2 \\$1 ! 267: .ft 1 ! 268: .ps \\n(PS ! 269: .if \\n(VS>=40 .vs \\n(VSu ! 270: .if \\n(VS<=39 .vs \\n(VSp ! 271: .. ! 272: .de D ! 273: .ID \\$1 ! 274: .. ! 275: . \" ID - indented display with no keep ! 276: .de ID ! 277: .XD ! 278: .if t .in +.5i ! 279: .if n .in +8 ! 280: .if \\n(.$ .if !\\$1I .if !\\$1 \{\ ! 281: . in \\n(OIu ! 282: . in +\\$1n ! 283: .\} ! 284: .. ! 285: . \" LD - left display with no keep ! 286: .de LD ! 287: .XD ! 288: .. ! 289: . \" CD - centered display with no keep ! 290: .de CD ! 291: .XD ! 292: .ce 999 ! 293: .. ! 294: . \" XD - real display macro ! 295: .de XD ! 296: .nf ! 297: .nr OI \\n(.i ! 298: .sp \\n(DDu ! 299: .if \\n(TM .ls 1 ! 300: .. ! 301: . \" DE - end display of any kind ! 302: .de DE ! 303: .ce 0 ! 304: .if \\n(BD .DF ! 305: .nr BD 0 ! 306: .in \\n(OIu ! 307: .KE ! 308: .if \\n(TM .ls 2 ! 309: .sp \\n(DDu ! 310: .fi ! 311: .. ! 312: . \" BD - block display: center entire block ! 313: .de BD ! 314: .XD ! 315: .nr BD 1 ! 316: .nf ! 317: .in \\n(OIu ! 318: .di DD ! 319: .. ! 320: . \" DF - finish block display ! 321: .de DF ! 322: .di ! 323: .if \\n(dl>\\n(BD .nr BD \\n(dl ! 324: .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u ! 325: .nr EI \\n(.l-\\n(.i ! 326: .ta \\n(EIuR ! 327: .DD ! 328: .in \\n(OIu ! 329: .. ! 330: . \" KS - begin regular keep ! 331: .de KS ! 332: .nr KN \\n(.u ! 333: .if !\\n(IK .if !\\n(IF .KQ ! 334: .nr IK +1 ! 335: .. ! 336: . \" KQ - real keep processor ! 337: .de KQ ! 338: .br ! 339: .nr KI \\n(.i ! 340: .ev 2 ! 341: .TA ! 342: .br ! 343: .in \\n(KIu ! 344: .ps \\n(PS ! 345: .if \\n(VS>=40 .vs \\n(VSu ! 346: .if \\n(VS<=39 .vs \\n(VSp ! 347: .ll \\n(LLu ! 348: .lt \\n(LTu ! 349: .if \\n(NX>1 .ll \\n(CWu ! 350: .if \\n(NX>1 .lt \\n(CWu ! 351: .di KK ! 352: .nr TB 0 ! 353: .. ! 354: . \" KF - begin floating keep ! 355: .de KF ! 356: .nr KN \\n(.u ! 357: .if !\\n(IK .FQ ! 358: .nr IK +1 ! 359: .. ! 360: . \" FQ - real floating keep processor ! 361: .de FQ ! 362: .nr KI \\n(.i ! 363: .ev 2 ! 364: .TA ! 365: .br ! 366: .in \\n(KIu ! 367: .ps \\n(PS ! 368: .if \\n(VS>=40 .vs \\n(VSu ! 369: .if \\n(VS<=39 .vs \\n(VSp ! 370: .ll \\n(LLu ! 371: .lt \\n(LTu ! 372: .if \\n(NX>1 .ll \\n(CWu ! 373: .if \\n(NX>1 .lt \\n(CWu ! 374: .di KK ! 375: .nr TB 1 ! 376: .. ! 377: . \" KE - end keep ! 378: .de KE ! 379: .if \\n(IK .if !\\n(IK-1 .if !\\n(IF .RQ ! 380: .if \\n(IK .nr IK -1 ! 381: .. ! 382: . \" RQ - real keep release ! 383: .de RQ ! 384: .br ! 385: .di ! 386: .nr NF 0 ! 387: .if \\n(dn-\\n(.t .nr NF 1 ! 388: .if \\n(TC .nr NF 1 ! 389: .if \\n(NF .if !\\n(TB .sp 200 ! 390: .if !\\n(NF .if \\n(TB .nr TB 0 ! 391: .nf ! 392: .rs ! 393: .nr TC 5 ! 394: .in 0 ! 395: .ls 1 ! 396: .if !\\n(TB \{\ ! 397: . ev ! 398: . br ! 399: . ev 2 ! 400: . KK ! 401: . rm KK ! 402: .\} ! 403: .ls ! 404: .ce 0 ! 405: .if \\n(TB .da KJ ! 406: .if \\n(TB \!.KD \\n(dn ! 407: .if \\n(TB .KK ! 408: .if \\n(TB .di ! 409: .nr TC \\n(TB ! 410: .if \\n(KN .fi ! 411: .in ! 412: .ev ! 413: .. ! 414: . \" KD - keep redivert ! 415: .de KD ! 416: .nr KM 0 ! 417: .if \\n(.zKJ .nr KM 1 ! 418: .if \\n(KM \!.KD \\$1 ! 419: .if !\\n(KM .if \\n(.t<\\$1 .di KJ ! 420: .. ! 421: . \" EM - end macro (process leftover keep) ! 422: .de EM ! 423: .br ! 424: .if !\\n(TB .wh -1p CM ! 425: .if \\n(TB \{\ ! 426: \&\c ! 427: ' bp ! 428: . NP ! 429: . ch CM 160 ! 430: .\} ! 431: .. ! 432: .de XK ! 433: .nr TD 1 ! 434: .nf ! 435: .ls 1 ! 436: .in 0 ! 437: .rn KJ KL ! 438: .KL ! 439: .rm KL ! 440: .if \\n(.zKJ .di ! 441: .nr TB 0 ! 442: .if \\n(.zKJ .nr TB 1 ! 443: .br ! 444: .in ! 445: .ls ! 446: .fi ! 447: .nr TD 0 ! 448: .. ! 449: . \" NP - new page ! 450: .de NP ! 451: .if !\\n(LT .nr LT \\n(LLu ! 452: .if \\n(FM+\\n(HM>=\\n(.p \{\ ! 453: . tm HM + FM longer than page ! 454: . ab ! 455: .\} ! 456: .CM ! 457: .if !\\n(HM .nr HM 1i ! 458: .po \\n(POu ! 459: .nr PF \\n(.f ! 460: .nr PX \\n(.s ! 461: .ft 1 ! 462: .ps \\n(PS ! 463: 'sp \\n(HMu/2u ! 464: .PT ! 465: 'sp |\\n(HMu ! 466: .HD \"undefined ! 467: .ps \\n(PX ! 468: .ft \\n(PF ! 469: .nr XX 0 1 ! 470: .nr YY 0-\\n(FMu ! 471: .ch FO 16i ! 472: .ch FX 17i ! 473: .ch FO -\\n(FMu ! 474: .ch FX \\n(.pu-\\n(FMu ! 475: .if \\n(MF .FV ! 476: .nr MF 0 ! 477: .mk ! 478: .os ! 479: .ev 2 ! 480: .if !\\n(TD .if \\n(TC<5 .XK ! 481: .nr TC 0 ! 482: .ev ! 483: .nr TQ \\n(.i ! 484: .nr TK \\n(.u ! 485: .if \\n(IT \{\ ! 486: . in 0 ! 487: . nf ! 488: . TT ! 489: . in \\n(TQu ! 490: . if \\n(TK .fi ! 491: .\} ! 492: .ns ! 493: .mk #T ! 494: .. ! 495: . \" PT - page titles ! 496: .de PT ! 497: .lt \\n(LTu ! 498: .pc % ! 499: .nr PN \\n% ! 500: .nr PT \\n% ! 501: .if !'\\n%'0' .if !'\\n%'1' .if !'\\n%'i' .nr PT 2 ! 502: .if \\n(P1 .nr PT 2 ! 503: .if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH ! 504: .if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1 ! 505: .if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2 ! 506: .lt \\n(.lu ! 507: .. ! 508: . \" OH - odd page header ! 509: .de OH ! 510: .nr OH 1 ! 511: .if !\\n(.$ .nr OH 0 ! 512: .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 ! 513: .. ! 514: . \" EH - even page header ! 515: .de EH ! 516: .nr EH 1 ! 517: .if !\\n(.$ .nr EH 0 ! 518: .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 ! 519: .. ! 520: . \" P1 - PT on 1st page ! 521: .de P1 ! 522: .nr P1 1 ! 523: .. ! 524: . \" FO - footer ! 525: .de FO ! 526: .rn FO FZ ! 527: .if \\n(IT .nr T. 1 ! 528: .if \\n(IT .if !\\n(FC .T# 1 ! 529: .if \\n(IT .br ! 530: .nr FC +1 ! 531: .if \\n(NX<2 .nr WF 0 ! 532: .nr dn 0 ! 533: .if \\n(FC<=1 .if \\n(XX .XF ! 534: .rn FZ FO ! 535: .nr MF 0 ! 536: .if \\n(dn .nr MF 1 ! 537: .if !\\n(WF .nr YY 0-\\n(FMu ! 538: .if !\\n(WF .ch FO \\n(YYu ! 539: .if !\\n(dn .nr WF 0 ! 540: .if \\n(FC<=1 .if !\\n(XX \{\ ! 541: . if \\n(NX>1 .RC ! 542: . if \\n(NX<2 'bp ! 543: .\} ! 544: .nr FC -1 ! 545: .if \\n(ML .ne \\n(MLu ! 546: .. ! 547: . \" BT - bottom title ! 548: .de BT ! 549: .nr PF \\n(.f ! 550: .nr PX \\n(.s ! 551: .ft 1 ! 552: .ps \\n(PS ! 553: .lt \\n(LTu ! 554: .po \\n(POu ! 555: .if \\n(TM .if \\n(CT \{\ ! 556: . tl ''\\n(PN'' ! 557: . nr CT 0 ! 558: .\} ! 559: .if !'\\n%'0' .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF ! 560: .if !'\\n%'0' .if \\n(OF .if o .tl \\*(O3 ! 561: .if !'\\n%'0' .if \\n(EF .if e .tl \\*(E4 ! 562: .ft \\n(PF ! 563: .ps \\n(PX ! 564: .. ! 565: . \" OF - odd page footer ! 566: .de OF ! 567: .nr OF 1 ! 568: .if !\\n(.$ .nr OF 0 ! 569: .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 ! 570: .. ! 571: . \" EF - even page footer ! 572: .de EF ! 573: .nr EF 1 ! 574: .if !\\n(.$ .nr EF 0 ! 575: .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 ! 576: .. ! 577: . \" 2C - double column ! 578: .de 2C ! 579: .MC ! 580: .. ! 581: . \" 1C - single column ! 582: .de 1C ! 583: .MC \\n(LLu ! 584: .hy 14 ! 585: .. ! 586: . \" MC - multiple columns, arg is col width ! 587: .de MC ! 588: .nr L1 \\n(LL*7/15 ! 589: .if \\n(.$ .nr L1 \\$1n ! 590: .nr NQ \\n(LL/\\n(L1 ! 591: .if \\n(NQ<1 .nr NQ 1 ! 592: .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1 ! 593: .if !\\n(1T \{\ ! 594: . BG ! 595: . if n .sp 4 ! 596: . if t .sp 2 ! 597: .\} ! 598: .if !\\n(NX .nr NX 1 ! 599: .if !\\n(NX=\\n(NQ \{\ ! 600: . RT ! 601: . if \\n(NX>1 .bp ! 602: . mk ! 603: . nr NC 1 ! 604: . po \\n(POu ! 605: .\} ! 606: .if \\n(NQ>1 .hy 12 ! 607: .nr NX \\n(NQ ! 608: .nr CW \\n(L1 ! 609: .ll \\n(CWu ! 610: .nr FL \\n(CWu*11u/12u ! 611: .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1) ! 612: .nr RO \\n(CW+\\n(GW ! 613: .ns ! 614: .. ! 615: .de RC ! 616: .if \\n(NC>=\\n(NX .C2 ! 617: .if \\n(NC<\\n(NX .C1 ! 618: .nr NC \\n(ND ! 619: .. ! 620: .de C1 ! 621: .rt ! 622: .po +\\n(ROu ! 623: .nr ND \\n(NC+1 ! 624: .nr XX 0 1 ! 625: .if \\n(MF .FV ! 626: .ch FX \\n(.pu-\\n(FMu ! 627: .ev 2 ! 628: .if \\n(TB .XK ! 629: .nr TC 0 ! 630: .ev ! 631: .nr TQ \\n(.i ! 632: .if \\n(IT .in 0 ! 633: .if \\n(IT .TT ! 634: .if \\n(IT .in \\n(TQu ! 635: .mk #T ! 636: .ns ! 637: .. ! 638: .de C2 ! 639: .po \\n(POu ! 640: 'bp ! 641: .nr ND 1 ! 642: .. ! 643: . \" RS - right shift ! 644: .de RS ! 645: .nr IS \\n(IP ! 646: .RT ! 647: .nr IP \\n(IS ! 648: .if \\n(IP .in +\\n(I\\n(IRu ! 649: .nr IR +1 ! 650: .nr I\\n(IR \\n(PIu ! 651: .in +\\n(I\\n(IRu ! 652: .. ! 653: . \" RE - retreat left ! 654: .de RE ! 655: .nr IS \\n(IP ! 656: .RT ! 657: .nr IP \\n(IS ! 658: .if \\n(IR .nr IR -1 ! 659: .if \\n(IP<=0 .in -\\n(I\\n(IRu ! 660: .. ! 661: . \" CM - cut mark ! 662: . \" only in troff when register v isn't one ! 663: . \" if string .T is set (ditroff), only if .T is "vp" ! 664: . \" may be forced if register v is two ! 665: .if n .ig ! 666: .if \nv=1 .ig ! 667: .if !\nv=2 .if !"\*(.T"" .if !"\*(.T"vp" .ig ! 668: .de CM ! 669: .po 0 ! 670: .lt 7.6i ! 671: .ft 1 ! 672: .ps 10 ! 673: .vs 4p ! 674: .tl '--''--' ! 675: .po ! 676: .vs ! 677: .lt ! 678: .ps ! 679: .ft ! 680: .. ! 681: . \" I - italic font ! 682: .de I ! 683: .nr PQ \\n(.f ! 684: .if t .ft 2 ! 685: .ie \\$1 .if n .ul 999 ! 686: .el .if n .ul 1 ! 687: .if t .if !\\$1 \&\\$1\|\f\\n(PQ\\$2 ! 688: .if n .if \\n(.$=1 \&\\$1 ! 689: .if n .if \\n(.$>1 \&\\$1\c ! 690: .if n .if \\n(.$>1 \&\\$2 ! 691: .. ! 692: . \" B - bold font ! 693: .de B ! 694: .nr PQ \\n(.f ! 695: .if t .ft 3 ! 696: .ie \\$1 .if n .ul 999 ! 697: .el .if n .ul 1 ! 698: .if t .if !\\$1 \&\\$1\f\\n(PQ\\$2 ! 699: .if n .if \\n(.$=1 \&\\$1 ! 700: .if n .if \\n(.$>1 \&\\$1\c ! 701: .if n .if \\n(.$>1 \&\\$2 ! 702: .. ! 703: . \" R - Roman font ! 704: .de R ! 705: .if n .ul 0 ! 706: .ft 1 ! 707: .. ! 708: . \" UL - underline in troff ! 709: .de UL ! 710: .if t \\$1\l'|0\(ul'\\$2 ! 711: .if n .I "\\$1" "\\$2" ! 712: .. ! 713: . \" SM - smaller ! 714: .de SM ! 715: .ps -2 ! 716: .. ! 717: . \" LG - larger ! 718: .de LG ! 719: .ps +2 ! 720: .. ! 721: . \" NL - normal ! 722: .de NL ! 723: .ps \\n(PS ! 724: .. ! 725: . \" DA - force date ! 726: .de DA ! 727: .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4 ! 728: .ds CF \\*(DY ! 729: .. ! 730: . \" ND - no date or new date ! 731: .de ND ! 732: .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4 ! 733: .rm CF ! 734: .. ! 735: . \" \** - numbered footnote ! 736: .ds * \\*[\\n+*\\*] ! 737: . \" FJ - replaces FS after cover ! 738: .de FJ ! 739: 'ce 0 ! 740: .di ! 741: .ev 1 ! 742: .ll \\n(FLu ! 743: .da FF ! 744: .br ! 745: .if \\n(IF .tm Nested footnote ! 746: .nr IF 1 ! 747: .if !\\n+(XX-1 .FA ! 748: .if !\\n(MF .if !\\n(.$ .if \\n* .FP \\n* ! 749: .if !\\n(MF .if \\n(.$ .FP \\$1 no ! 750: .. ! 751: . \" FK - replaces FE after cover ! 752: .de FK ! 753: .br ! 754: .in 0 ! 755: .nr IF 0 ! 756: .di ! 757: .ev ! 758: .if !\\n(XX-1 .nr dn +\\n(.v ! 759: .nr YY -\\n(dn ! 760: .if !\\n(NX .nr WF 1 ! 761: .if \\n(dl>\\n(CW .nr WF 1 ! 762: .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu ! 763: .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\ ! 764: . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu ! 765: . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v ! 766: . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu) ! 767: .\} ! 768: .. ! 769: . \" FS - begin footnote on cover ! 770: .de FS ! 771: .ev 1 ! 772: .br ! 773: .ll \\n(FLu ! 774: .da FG ! 775: .if !\\n(.$ .if \\n* .FP \\n* ! 776: .if \\n(.$ .FP \\$1 no ! 777: .. ! 778: . \" FE - end footnote on cover ! 779: .de FE ! 780: .br ! 781: .di ! 782: .nr FP \\n(dn ! 783: .if !\\n(1T .nr KG 1 ! 784: .ev ! 785: .. ! 786: . \" FA - print line before footnotes ! 787: .de FA ! 788: .in 0 ! 789: .if n _________________________ ! 790: .if t \l'1i' ! 791: .br ! 792: .. ! 793: . \" FP - footnote paragraph ! 794: .de FP ! 795: .sp \\n(PDu/2u ! 796: .if \\n(FF<2 .ti \\n(FIu ! 797: .if \\n(FF=3 \{\ ! 798: . in \\n(FIu*2u ! 799: . ta \\n(FIu*2u ! 800: . ti 0 ! 801: .\} ! 802: .if !\\n(FF \{\ ! 803: . ie "\\$2"no" \\$1\0\c ! 804: . el \\*[\\$1\\*]\0\c ! 805: .\} ! 806: .if \\n(FF .if \\n(FF<3 \{\ ! 807: . ie "\\$2"no" \\$1\0\c ! 808: . el \\$1.\0\c ! 809: .\} ! 810: .if \\n(FF=3 \{\ ! 811: . ie "\\$2"no" \\$1\t\c ! 812: . el \\$1.\t\c ! 813: .\} ! 814: .. ! 815: . \" FV - get leftover footnote from previous page ! 816: .de FV ! 817: .FS ! 818: .nf ! 819: .ls 1 ! 820: .FY ! 821: .ls ! 822: .fi ! 823: .FE ! 824: .. ! 825: . \" FX - divert leftover footnote for next page ! 826: .de FX ! 827: .if \\n(XX .di FY ! 828: .if \\n(XX .ns ! 829: .. ! 830: . \" XF - actually print footnote ! 831: .de XF ! 832: .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v ! 833: .ev 1 ! 834: .nf ! 835: .ls 1 ! 836: .FF ! 837: .rm FF ! 838: .nr XX 0 1 ! 839: .br ! 840: .ls ! 841: .di ! 842: .fi ! 843: .ev ! 844: .. ! 845: .de IS \" *** start ideal picture ! 846: .nr g7 \\n(.u ! 847: .ls 1 ! 848: .. ! 849: .de IF ! 850: .if \\n(g7 .fi ! 851: .ls ! 852: .. ! 853: .de IE \" *** end ideal picture ! 854: .if \\n(g7 .fi ! 855: .ls ! 856: .. ! 857: .de PS \" *** start picture: $1=height, $2=width in units or inches ! 858: .if t .sp .3 ! 859: .nr g7 \\$2 ! 860: .in (\\n(.lu-\\n(g7u)/2u ! 861: .ne \\$1u ! 862: .nr g7 \\n(.u ! 863: .ls 1 ! 864: .. ! 865: .de PE \" *** end picture ! 866: .in ! 867: .if \\n(g7 .fi ! 868: .if t .sp .6 ! 869: .ls ! 870: .. ! 871: .\" GS called with C (default), L or R (\n(g1=width, \n(g2=height) ! 872: .de GS \" *** start gremlin picture ! 873: .nr g7 (\\n(.lu-\\n(g1u)/2u ! 874: .if "\\$1"L" .nr g7 \\n(.iu ! 875: .if "\\$1"R" .nr g7 \\n(.lu-\\n(g1u ! 876: .in \\n(g7u ! 877: .nr g7 \\n(.u ! 878: .ls 1 ! 879: .nf ! 880: .ne \\n(g2u ! 881: .. ! 882: .de GE \" *** end gremlin picture ! 883: .ls ! 884: .in ! 885: .if \\n(g7 .fi ! 886: .if t .sp .6 ! 887: .. ! 888: .de GF \" *** finish gremlin picture; stay at top ! 889: .ls ! 890: .in ! 891: .if \\n(g7 .fi ! 892: .. ! 893: . \" TS - source file for tbl ! 894: .de TS ! 895: .rn TS @T ! 896: .so \*(//tbl.ms ! 897: .TS \\$1 \\$2 ! 898: .rm @T ! 899: .. ! 900: . \" EQ - source file for eqn ! 901: .de EQ ! 902: .rn EQ @T ! 903: .so \*(//eqn.ms ! 904: .EQ \\$1 \\$2 ! 905: .rm @T ! 906: .. ! 907: . \" ]- - source file for refer ! 908: .de ]- ! 909: .rn ]- @T ! 910: .so \*(//ref.ms ! 911: .]- ! 912: .rm @T ! 913: .. ! 914: .if !"\*(.T"" \{\ ! 915: . \" LT and HE - source for letter head ! 916: .de LT ! 917: .rn LT @T ! 918: .so \*(L/hed.ms ! 919: .LT ! 920: .rm @T ! 921: .. ! 922: .de HE ! 923: .rn HE @T ! 924: .so \*(L/hed.ms ! 925: .HE ! 926: .rm @T ! 927: .. ! 928: .\} ! 929: . \" [< - for refer -s or -e ! 930: .de ]< ! 931: .rn ]< @T ! 932: .so \*(//ref.ms ! 933: .]< ! 934: .rm @T ! 935: .. ! 936: . \" footnote delimiters ! 937: .if \n(.V>19 .ds [ \f1[ ! 938: .if \n(.V>19 .ds ] ]\fP ! 939: .if \n(.V<20 .ds [ \f1\s-2\v'-.4m' ! 940: .if \n(.V<20 .ds ] \v'.4m'\s+2\fP ! 941: . \" refer strings ! 942: .if n .ds [. [ ! 943: .if t .ds [. \s-2\v'-.4m'\f1 ! 944: .if n .ds .] ] ! 945: .if t .ds .] \v'.4m'\s+2\fP ! 946: .if n .ds <. " ! 947: .if t .ds <. . ! 948: .if n .ds >. . ! 949: .if t .ds >. " ! 950: .if n .ds >; ; ! 951: .if t .ds >; " ! 952: .if n .ds Q \&" ! 953: .if n .ds U \&" ! 954: .if n .ds - \%-- ! 955: .if t .ds Q `` ! 956: .if t .ds U '' ! 957: .if t .ds - \(em ! 958: .ds ' \h'\w'e'u/5'\z\'\h'-\w'e'u/5' ! 959: .ds ` \h'\w'e'u/5'\z\`\h'-\w'e'u/5' ! 960: .ds ^ \h'\w'o'u/10'\z^\h'-\w'o'u/10' ! 961: .ds , \h'\w'c'u/5'\z,\h'-\w'c'u/5' ! 962: .ds : \h'\w'u'u/5'\u\z.\h'\w'u'u*2/5'\z.\d\h'-\w'u'u*3/5' ! 963: .ds ~ \h'\w'n'u/10'\z~\h'-\w'n'u/10' ! 964: .ds C \h'\w'c'u/5'\v'-.6m'\s-4\zv\s+4\v'.6m'\h'-\w'c'u/5' ! 965: . \" AM - better accent marks ! 966: .de AM ! 967: .so \*(//acc.ms ! 968: .. ! 969: . \" TM - thesis mode ! 970: .de TM ! 971: .so \*(//ths.ms ! 972: .. ! 973: . \" BX - word in a box ! 974: .de BX ! 975: .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul' ! 976: .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu' ! 977: .. ! 978: . \" B1 - source file for boxed text ! 979: .de B1 ! 980: .rn B1 @T ! 981: .so \*(//tbl.ms ! 982: .B1 \\$1 ! 983: .rm @T ! 984: .. ! 985: . \" XS - table of contents ! 986: .de XS ! 987: .rn XS @T ! 988: .so \*(//toc.ms ! 989: .XS \\$1 \\$2 ! 990: .rm @T ! 991: .. ! 992: . \" IX - index words to stderr ! 993: .de IX ! 994: .tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n(PN ! 995: .. ! 996: . \" UX - UNIX macro ! 997: .de UX ! 998: .ie \\n(UX \s-1UNIX\s0\\$1 ! 999: .el \{\ ! 1000: \s-1UNIX\s0\\$1\(dg ! 1001: .FS ! 1002: \(dg \s-1UNIX\s0 is a registered trademark of AT&T Bell Laboratories ! 1003: in the USA and other countries. ! 1004: .FE ! 1005: .nr UX 1 ! 1006: .\} ! 1007: .. ! 1008: .co ! 1009: .if \n(mo-0 .ds MO January ! 1010: .if \n(mo-1 .ds MO February ! 1011: .if \n(mo-2 .ds MO March ! 1012: .if \n(mo-3 .ds MO April ! 1013: .if \n(mo-4 .ds MO May ! 1014: .if \n(mo-5 .ds MO June ! 1015: .if \n(mo-6 .ds MO July ! 1016: .if \n(mo-7 .ds MO August ! 1017: .if \n(mo-8 .ds MO September ! 1018: .if \n(mo-9 .ds MO October ! 1019: .if \n(mo-10 .ds MO November ! 1020: .if \n(mo-11 .ds MO December ! 1021: .ds DY \*(MO \n(dy, 19\n(yr ! 1022: .nr * 0 1 ! 1023: .IZ ! 1024: .em EM ! 1025: .rm IZ RA // L/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.