tmac.pm (17719B)
1 .\" 10/22/92 activate next line before installing 2 .pi /home/anselm/plan9port/bin/auxpm 3 . 4 . \" IZ - initialization 5 .de IZ 6 .fp 10 S \" force a font out into prefix 7 .nr PS 10 \" point size 8 .nr VS 12 \" line spacing 9 .ps \\n(PS 10 .ie \\n(VS>=41 .vs \\n(VSu 11 .el .vs \\n(VSp 12 .nr LL 6i \" line length 13 .ll \\n(LLu 14 .nr LT \\n(.l \" title length 15 .lt \\n(LTu 16 .if !\\n(HM .nr HM 1i \" top of page 17 .if !\\n(FM .nr FM 1i \" footer margin 18 .if !\\n(FO .nr FO \\n(.p-\\n(FM \" bottom of page 19 . \" to set text ht to N, set FO to N + \n(HM. default is 10i 20 .pl 32767u \" safety first: big pages for pm 21 .if !\\n(PO .nr PO \\n(.ou \" page offset 22 .nr PI 5n \" .PP paragraph indent 23 .nr QI 5n \" .QS indent 24 .nr DI 5n \" .DS indent 25 .nr PD 0.3v \" paragraph vertical separation 26 .nr TS 0.5v \" space around tables 27 .nr Kf 0.5v \" space around .KF/.KE 28 .nr Ks 0.5v \" space around .KS/.KE 29 . 30 .nr P1 .4i \" indent for .P1/.P2 31 .nr dP 1 \" delta point size for programs in .P1/.P2 32 .nr dV 2p \" delta vertical for programs 33 .nr dT 8 \" delta tab stop for programs 34 .nr DV .5v \" space before start of program 35 .nr IP 0 \" ? 36 .nr IR 0 \" ? 37 .nr I1 \\n(PIu 38 .ev 1 39 .if !\\n(FL .nr FL \\n(LLu \" footnote length 40 .ll \\n(FLu 41 .ps 8 \" text size & leading in footnote 42 .vs 10p 43 .ev 44 .if \\*(CH .ds CH "\(hy \\\\n(PN \(hy 45 .ds # #\\\\n(.c \\\\n(.F 46 . 47 . 48 .ME \" initialize date strings 49 .rm ME 50 . \" accents: \*'e \*`e \*:u \*^e \*~n \*va \*,c 51 .ds ' \h'\w'e'u*4/10'\z\(aa\h'-\w'e'u*4/10' 52 .ds ` \h'\w'e'u*4/10'\z\(ga\h'-\w'e'u*4/10' 53 .ds : \\v'-0.6m'\\h'(1u-(\\\\n(.fu%2u))*0.13m+0.00m'\\z.\\h'0.2m'\\z.\\h'-((1u-(\\\\n(.fu%2u))*0.13m+0.20m)'\\v'0.6m' 54 .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u' 55 .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u' 56 .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u' 57 .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u' 58 .. 59 . 60 . 61 . \" SP - generate paddable space 62 .de SP 63 .br 64 .nr X 1v 65 .if \\n(.$ .nr X \\$1v 66 .ie '\\$2'exactly' \{\ 67 \v'\\nXu'\ \h'-\w'\ 'u'\c 68 .sp \\$1\} 69 .el .X "SP \\nX \\$2" 70 .. 71 . \" NE - need space on this page 72 .de NE 73 .nr X 1v 74 .if \\n(.$ .nr X \\$1v 75 .X "NE \\nX \\$2" 76 .. 77 . \" BP, FL, FC - begin page, flush figures, flush column 78 .de BP 79 .br 80 .X CMD BP 81 .. 82 .de FL 83 .br 84 .X CMD FL 85 .. 86 .de FC 87 .br 88 .X CMD FC 89 .. 90 . \" X - generate an x X ... command in the output 91 .de X 92 ....ie '\\n(.z'' \\!x X \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 93 ....el \\!.X "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 94 ... 95 .if !'\\n(.z'' .if \\n(.$=1 \\!.X "\\$1 96 .if !'\\n(.z'' .if \\n(.$=2 \\!.X "\\$1 \\$2 97 .if !'\\n(.z'' .if \\n(.$=3 \\!.X "\\$1 \\$2 \\$3 98 .if !'\\n(.z'' .if \\n(.$>3 \\!.X "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 99 .if '\\n(.z'' .if \\n(.$=1 \\!x X \\$1 \\*# 100 .if '\\n(.z'' .if \\n(.$=2 \\!x X \\$1 \\$2 \\*# 101 .if '\\n(.z'' .if \\n(.$=3 \\!x X \\$1 \\$2 \\$3 \\*# 102 .if '\\n(.z'' .if \\n(.$=4 \\!x X \\$1 \\$2 \\$3 \\$4 \\*# 103 .if '\\n(.z'' .if \\n(.$>4 \\!x X \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 \\*# 104 .. 105 . \" DA - force date 106 .de DA 107 .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4 108 .ds CF \\*(DY 109 .. 110 . \" ND - set new or no date 111 .de ND 112 .ds DY \\$1 \\$2 \\$3 \\$4 113 .rm CF 114 .. 115 .de ME \" ME - set month strings 116 .if \\n(mo-0 .ds MO January 117 .if \\n(mo-1 .ds MO February 118 .if \\n(mo-2 .ds MO March 119 .if \\n(mo-3 .ds MO April 120 .if \\n(mo-4 .ds MO May 121 .if \\n(mo-5 .ds MO June 122 .if \\n(mo-6 .ds MO July 123 .if \\n(mo-7 .ds MO August 124 .if \\n(mo-8 .ds MO September 125 .if \\n(mo-9 .ds MO October 126 .if \\n(mo-10 .ds MO November 127 .if \\n(mo-11 .ds MO December 128 .if \\n(dw-0 .ds DW Sunday 129 .if \\n(dw-1 .ds DW Monday 130 .if \\n(dw-2 .ds DW Tuesday 131 .if \\n(dw-3 .ds DW Wednesday 132 .if \\n(dw-4 .ds DW Thursday 133 .if \\n(dw-5 .ds DW Friday 134 .if \\n(dw-6 .ds DW Saturday 135 .if "\\*(DY"" .ds DY \\*(MO \\n(dy, 19\\n(yr 136 .. 137 . \" FP - font position for a family 138 .de FP 139 .if '\\$1'palatino'\{\ 140 . fp 1 PA 141 . fp 2 PI 142 . fp 3 PB 143 . fp 4 PX\} 144 .if '\\$1'lucidasans'\{\ 145 . fp 1 R LucidaSans 146 . fp 2 I LucidaSansI 147 . fp 3 B LucidaSansB 148 . fp 5 CW LucidaCW\} 149 .if '\\$1'century'\{\ 150 . ie '\\*(.T'202'\{\ 151 . fp 1 NR Centsb 152 . fp 2 NI CentI 153 . fp 3 NB CentB 154 . fp 4 NX CentBI\} 155 . el \{\ 156 . fp 1 NR 157 . fp 2 NI 158 . fp 3 NB 159 . fp 4 NX\}\} 160 .if '\\$1'helvetica'\{\ 161 . fp 1 H 162 . fp 2 HI 163 . fp 3 HB 164 . fp 4 HX\} 165 .if '\\$1'bembo'\{\ 166 . ie '\\*(.T'202'\{\ 167 . fp 1 B1 Bembo 168 . fp 2 B2 BemboI 169 . fp 3 B3 BemboB 170 . fp 4 B4 BemboBI\} 171 . el \{\ 172 . fp 1 B1 173 . fp 2 B2 174 . fp 3 B3 175 . fp 4 B4\}\} 176 .if '\\$1'optima'\{\ 177 . fp 1 R Optima 178 . fp 2 I OptimaI 179 . fp 3 B OptimaB 180 . fp 4 BI OptimaBI\} 181 .if '\\$1'souvenir'\{\ 182 . fp 1 R Souvenir 183 . fp 2 I SouvenirI 184 . fp 3 B SouvenirB 185 . fp 4 BI SouvenirBI\} 186 .if '\\$1'melior'\{\ 187 . fp 1 R Melior 188 . fp 2 I MeliorI 189 . fp 3 B MeliorB 190 . fp 4 BI MeliorBI\} 191 .if '\\$1'times'\{\ 192 . fp 1 R 193 . fp 2 I 194 . fp 3 B 195 . fp 4 BI\} 196 .. 197 . \" TL - title 198 .de TL 199 .br 200 .if !\\n(1T .BG 201 ....hy 0 202 .ft 3 203 .ps \\n(PS+2p 204 .vs \\n(VS+2p 205 .ll \\n(LLu 206 .ce 100 \" turned off in .RT 207 .sp .5i 208 .. 209 . \" AU - remember author(s) 210 .de AU 211 .ft 1 212 .ps \\n(PS 213 .ie \\n(VS>=41 .vs \\n(VSu 214 .el .vs \\n(VSp 215 .SP .5 216 .. 217 . \" AI - author's institution 218 .de AI 219 .SP .25 220 .ft 2 221 .. 222 . \" AB - begin abstract 223 .de AB 224 .nr AB 1 \" we're in abstract 225 .if !\\n(1T .BG 226 .ft 1 227 .ps \\n(PS 228 .vs \\n(VSp 229 .ce 230 .in +\\n(.lu/12u 231 .ll -\\n(.lu/12u 232 .SP 1 233 .ie \\n(.$ \\$1 234 .el ABSTRACT 235 .SP .75 236 .RT 237 .. 238 . \" AE - end of abstract 239 .de AE 240 .br 241 .nr AB 0 242 .in 0 243 .ll \\n(LLu 244 .ps \\n(PS 245 .ie \\n(VS>=41 .vs \\n(VSu 246 .el .vs \\n(VSp 247 .SP 248 .. 249 . \" 2C - 2 columns 250 .de 2C 251 .MC 2 252 .. 253 . \" 1C - 1 column 254 .de 1C 255 .MC 1 256 .. 257 . \" MC - multiple columns 258 .de MC 259 .br 260 .if \\n(1T .RT 261 .if \\n(1T .NP 262 .if !\\n(OL .nr OL \\n(LL 263 .if \\n(CW=0 .nr CW \\n(LL*7/15 264 .if \\n(GW=0 .nr GW \\n(LL-(2*\\n(CW) 265 .nr x \\n(CW+\\n(GW 266 .if "\\$1"" .MC 2 267 .if \\$1=1 \{\ 268 . X MC 1 0 269 . nr LL \\n(OLu\} 270 .if \\$1=2 \{\ 271 . X MC 2 \\nx 272 . nr LL \\n(CWu\} 273 .ll \\n(LLu 274 .if \\$1>2 .tm -mpm can't handle more than two columns 275 .if \\n(1T .RT 276 .. 277 . \" TS - table start, TE - table end; also TC, TQ, TH 278 .de TS 279 .br 280 .if !\\n(1T .RT 281 .SP \\n(TSu TS 282 .X "US TS 283 .if \\$1H .TQ 284 .nr IX 1 285 .. 286 .de TC 287 .nr TZ \\n(.lu 288 .if \\n(.$ .nr TZ \\$1n 289 .ta \\n(TZuR 290 .. 291 .de TD 292 .LP 293 .nr TZ 0 294 .. 295 .de TQ 296 .di TT 297 .nr IT 1 298 .. 299 .de TH 300 .if \\n(.d>0.5v \{\ 301 . nr T. 0 302 . T# 0\} 303 .di 304 .nr TQ \\n(.i 305 .nr HT 1 306 .in 0 307 .mk #a 308 .mk #b 309 .mk #c 310 .mk #d 311 .mk #e 312 .mk #f 313 .TT 314 .in \\n(TQu 315 .mk #T 316 .. 317 . \" TE - table end 318 .de TE 319 .nr IX 0 320 .if \\n(IT .if !\\n(HT \{\ 321 . di 322 . nr EF \\n(.u 323 . nf 324 . TT 325 . if \\n(EF .fi\} 326 .nr IT 0 327 .nr HT 0 328 .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+ 329 .rr 32 33 34 35 36 37 38 40 79 80 81 82 330 .rr a| b| c| d| e| f| g| h| i| j| k| l| m| 331 .rr a- b- c- d- e- f- g- h- i- j- k- l- m- 332 .X "END US TE 333 .SP \\n(TSu TE 334 .bp 335 .. 336 . \" EQ - equation, breakout and display 337 .de EQ 338 .nr EF \\n(.u 339 .rm EE 340 .nr LE 1 \" 1 is center 341 .ds EL \\$1 342 .if "\\$1"L" \{\ 343 . ds EL \\$2 344 . nr LE 0\} 345 .if "\\$1"C" .ds EL \\$2 346 .if "\\$1"R" \{\ 347 . ds EL \\$2 \" 2 is right adjust 348 . nr LE 2\} 349 .if "\\$1"I" \{\ 350 . nr LE 0 351 . if "\\$3"" .ds EE \\h'|10n' 352 . el .ds EE \\h'\\$3' 353 . ds EL \\$2\} 354 .if \\n(YE .nf 355 .di EZ 356 .. 357 . \" EN - end of equation 358 .de EN 359 .br 360 .di 361 .rm EZ 362 .nr ZN \\n(dn 363 .if \\n(ZN .if !\\n(YE .LP 364 .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1 365 .if \\n(ZN \{\ 366 . SP .5v EQ 367 . X "US EQ"\} 368 'pc 369 .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup 370 .if \\n(MK \{\ 371 . if \\n(LE=1 .ds EE \\h'|10n' 372 . nr LE 0\} 373 'lt \\n(.lu 374 .if !\\n(EP .if \\n(ZN \{\ 375 . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts 376 . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts 377 . if !\\n(LE \{\ 378 . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts 379 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts 380 . if \\n(BD \!\\*(10\\t\\*(EL\}\} 381 .if \\n(EP .if \\n(ZN \{\ 382 . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts 383 . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts 384 . if !\\n(LE \{\ 385 . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts 386 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts 387 . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\} 388 'lt \\n(LLu 389 'pc % 390 .if \\n(YE .if \\n(EF .fi 391 .if \\n(ZN .X "END US EQ" 392 .if \\n(ZN .SP .5v EN 393 .if \\n(ZN .bp 394 .. 395 . \" PS - start picture 396 .de PS \" $1 is height, $2 is width, in inches 397 .br 398 .nr X 0.35v 399 .if \\$1>0 .X "SP \\nX PS" 400 .ie \\$1>0 .nr $1 \\$1 401 .el .nr $1 0 402 .X "US PS \\$1 403 .in (\\n(.lu-\\$2)/2u 404 .. 405 . \" PE - end of picture 406 .de PE 407 .in 408 .X "END US PE 409 .nr X .65v 410 .if \\n($1>0 .X "SP \\nX PE" 411 .bp 412 .. 413 .de IS \" for -mpm only 414 .KS 415 .. 416 .de IE 417 .KE 418 .bp 419 .. 420 . \" NP - new page 421 .de NP 422 .ev 2 423 .bp 424 .if \\n(KF=0 \{\ 425 . nr PX \\n(.s 426 . nr PF \\n(.f 427 . nr PV \\n(.v 428 . lt \\n(LTu 429 . ps \\n(PS 430 . vs \\n(PS+2 431 . ft 1 432 . if \\n(PO .po \\n(POu \" why isn't this reset??? 433 . PT \\$1 434 . bp 435 . rs 436 . BT 437 . bp 438 . nr %# +1 439 . ps \\n(PX 440 . vs \\n(PVu 441 . ft \\n(PF \} 442 .ev 443 .. 444 . 445 .ds %e .tl '\\*(LH'\\*(CH'\\*(RH' 446 .ds %o .tl '\\*(LH'\\*(CH'\\*(RH' 447 .ds %E .tl '\\*(LF'\\*(CF'\\*(RF' 448 .ds %O .tl '\\*(LF'\\*(CF'\\*(RF' 449 . 450 . \" PT - page title 451 .de PT 452 .nr PN \\n(%# 453 .X "PT \\n(%# 454 .sp \\n(HMu/2u 455 .if \\n(OL .lt \\n(OLu \" why isn't this reset??? 456 .if \\n(BT>0 .if \\n(%#%2 \\*(%o 457 .if \\n(BT>0 .if !\\n(%#%2 \\*(%e 458 .if \\n(BT=0 .tl '\0''' \" put out something or spacing is curdled 459 .X "END PT \\n(%# 460 .. 461 . \" BT - bottom title 462 .de BT 463 .X "BT \\n(%# 464 .sp |\\n(FMu/2u+\\n(FOu-1v 465 .if \\n(%#%2 \\*(%O 466 .if !\\n(%#%2 \\*(%E 467 .nr BT \\n(BT+1 468 .X "END BT \\n(%# 469 .. 470 . \" KS - non-floating keep 471 .de KS 472 .br 473 .if "\\n(.z"" .NP \" defends poorly against including ht of page stuff in diversion for .B1 474 .X "US KS 0 475 .nr KS +1 476 .SP \\n(Ksu 477 .. 478 . \" KF - floating keep 479 .de KF 480 .ev 1 481 .br 482 .if \\n(KS>0 .tm KF won't work inside KS, line \\n(.c, file \\n(.F 483 .if \\n(KF>0 .tm KF won't work inside KF, line \\n(.c, file \\n(.F 484 .nr KF 1 485 .nr 10 0 486 . if !'\\$1'' .nr 10 \\$1u 487 . if '\\$1'bottom' .nr 10 \\n(FOu-1u 488 . if '\\$1'top' .nr 10 \\n(HM 489 . if \\n(10 .X "UF \\n(10 KF" 490 . if !\\n(10 .X "UF \\n(HM KF" 491 . nr X \\n(FOu-2u 492 . if \\n(10 .X "UF \\n(10 KF" 493 . if !\\n(10 .X "UF \\nX KF" 494 .nr SJ \\n(.u 495 .ps \\n(PS 496 .if \\n(VS>40 .vs \\n(VSu 497 .if \\n(VS<=39 .vs \\n(VSp 498 .ll \\n(LLu 499 .lt \\n(LTu 500 .SP \\n(Kfu 501 .. 502 . \" KE - end of KS/KF 503 .de KE 504 .bp 505 .ie \\n(KS>0 \{\ 506 . SP \\n(Ksu 507 . X "END US KS 508 . nr KS -1 \} 509 .el .ie \\n(KF>0 \{\ 510 . SP \\n(Kfu 511 . nr KF 0 512 . X "END UF KF" 513 . if \\n(SJ .fi 514 . ev \} 515 .el .tm .KE without preceding .KS or .KF, line \\n(.c, file \\n(.F 516 .. 517 . 518 . \" DS - display. .DS C center; L left-adjust; I indent (default) 519 .de DS \" $2 = amount of indent 520 .KS 521 .nf 522 .\\$1D \\$2 \\$1 523 .ft 1 524 .if !\\n(IF \{\ 525 . ps \\n(PS 526 . if \\n(VS>40 .vs \\n(VSu 527 . if \\n(VS<=39 .vs \\n(VSp\} 528 .. 529 .de D 530 .ID \\$1 531 .. 532 .de CD 533 .XD 534 .ce 1000 535 .. 536 .de ID 537 .XD 538 .if \\n(.$=0 .in +\\n(DIu 539 .if \\n(.$=1 .if "\\$1"I" .in +\\n(DIu 540 .if \\n(.$=1 .if !"\\$1"I" .in +\\$1n 541 .if \\n(.$>1 .in +\\$2n 542 .....in +0.5i 543 .....if \\n(.$ .if !"\\$1"I" .if !"\\$1"" .in \\n(DIu 544 .....if \\n(.$ .if !"\\$1"I" .if !"\\$1"" .in +\\$1n 545 .. 546 .de LD 547 .XD 548 .. 549 .de XD 550 .nf 551 .nr OI \\n(.i 552 .SP \\n(DVu 553 .. 554 . \" BD - block display: save everything, then center it. 555 .de BD 556 .XD 557 .nr BD 1 558 .nf 559 .in \\n(OIu 560 .di DD 561 .. 562 . \" DE - display end 563 .de DE 564 .ce 0 565 .if \\n(BD>0 .XF 566 .nr BD 0 567 .in \\n(OIu 568 .SP \\n(DVu 569 .KE 570 .fi 571 .. 572 . \" XF - finish a block display to be recentered. 573 .de XF 574 .di 575 .if \\n(dl>\\n(BD .nr BD \\n(dl 576 .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u 577 .nr EI \\n(.l-\\n(.i 578 .ta \\n(EIuR 579 .nf 580 .DD 581 .in \\n(OIu 582 .. 583 . 584 . 585 . \" SH - (unnumbered) section heading 586 .de SH 587 .RT 588 .nr X 1v 589 .nr Y 3v 590 .if \\n(1T .NP 591 .if \\n(1T .X "NE \\nY SH" \" should these be reversed, change Y to 4v 592 .if \\n(1T .X "SP \\nX SH 593 .ft 3 594 .. 595 . \" NH - numbered heading 596 .de NH 597 .RT 598 .nr X 1v 599 .nr Y 3v 600 .if \\n(1T .NP 601 .if \\n(1T .X "NE \\nY NH" \" should these be reversed, change Y to 4v 602 .if \\n(1T .X "SP \\nX NH 603 .ft 3 604 .nr NS \\$1 605 .if !\\n(.$ .nr NS 1 606 .if !\\n(NS .nr NS 1 607 .nr H\\n(NS +1 608 .if !\\n(NS-4 .nr H5 0 609 .if !\\n(NS-3 .nr H4 0 610 .if !\\n(NS-2 .nr H3 0 611 .if !\\n(NS-1 .nr H2 0 612 .if !\\$1 .if \\n(.$ .nr H1 1 613 .ds SN \\n(H1. 614 .if \\n(NS-1 .as SN \\n(H2. 615 .if \\n(NS-2 .as SN \\n(H3. 616 .if \\n(NS-3 .as SN \\n(H4. 617 .if \\n(NS-4 .as SN \\n(H5. 618 \\*(SN 619 .. 620 . \" RT - reset at beginning of each PP, LP, etc. 621 .de RT 622 .if !\\n(AB .if !\\n(1T .BG 623 .ce 0 624 .if !\\n(AB .if !\\n(KF .if !\\n(IF .if !\\n(IX .if !\\n(BE .di 625 .if \\n(QP \{\ 626 . ll +\\n(QIu 627 . in -\\n(QIu 628 . nr QP -1\} 629 .if !\\n(AB \{\ 630 . ll \\n(LLu\} 631 .if !\\n(IF .if !\\n(AB \{\ 632 . ps \\n(PS 633 . ie \\n(VS>=41 .vs \\n(VSu 634 . el .vs \\n(VSp\} 635 .ie \\n(IP \{\ 636 . in \\n(I\\n(IRu 637 . nr IP -1\} 638 .el .if !\\n(IR \{\ 639 . nr I1 \\n(PIu 640 . nr I2 0 641 . nr I3 0 642 . nr I4 0 643 . nr I5 0\} 644 .if !\\n(AB .ft 1 645 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n 646 .fi 647 .. 648 . \" BG - begin, execute at first TL, AB, NH, SH, PP, etc. 649 .de BG \" IZ has been called, so registers have some value 650 .br 651 .if \\n(CW>0 .if \\n(LL=0 .nr LL \\n(CW+\\n(CW+\\n(GW 652 .ll \\n(LLu 653 .lt \\n(LLu 654 .po \\n(POu 655 .nr YE 1 \" ok to cause break in .EQ (earlier ones won't) 656 .ev 0 657 .hy 14 658 .ev 659 .ev 1 660 .hy 14 661 .ev 662 .ev 2 663 .hy 14 664 .ev 665 .nr 1T 1 666 .X "PARM NP \\n(HM 667 .X "PARM FO \\n(FO 668 .if !\\n(%# .nr %# 1 669 .. 670 . \" PP - paragraph 671 .de PP 672 .RT 673 .if \\n(1T .NP 674 .if \\n(1T .X "SP \\n(PD PP" 675 .if \\n(1T .X "BS 2 PP" 676 .ti +\\n(PIu 677 .. 678 . \" LP - left aligned paragraph 679 .de LP 680 .RT 681 .if \\n(1T .NP 682 .if \\n(1T .X "SP \\n(PD LP" 683 .if \\n(1T .X "BS 2 LP" 684 .. 685 . \" IP - indented paragraph 686 .de IP 687 .RT 688 .if !\\n(IP .nr IP +1 689 .if \\n(1T .NP 690 .if \\n(1T .X "SP \\n(PD PP" 691 .if \\n(1T .X "BS 2 IP" 692 .nr IU \\n(IR+1 693 .if \\n(.$>1 .nr I\\n(IU \\$2n+\\n(I\\n(IRu 694 .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu 695 .in \\n(I\\n(IUu 696 .nr TY \\n(TZ-\\n(.i 697 .nr JQ \\n(I\\n(IU-\\n(I\\n(IR 698 .ta \\n(JQu \\n(TYuR 699 .if \\n(.$ \{\ 700 .ti \\n(I\\n(IRu 701 \&\\$1\t\c\} 702 .. 703 . \" QP - quoted paragraph (within IP) 704 .de QP 705 .RT 706 .if \\n(1T .NP 707 .if \\n(1T .X "SP \\n(PD QP" 708 .if \\n(1T .X "BS 2 QP" 709 .nr QP 1 710 .in +\\n(QIu 711 .ll -\\n(QIu 712 .ti \\n(.iu 713 .. 714 . \" RS - prepare for double indenting 715 .de RS 716 .nr IS \\n(IP 717 .RT 718 .nr IP \\n(IS 719 .nr IU \\n(IR 720 .nr IR +1 721 .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu 722 .in \\n(I\\n(IRu 723 .nr TY \\n(TZ-\\n(.i 724 .ta \\n(TYuR 725 .. 726 . \" RE - retreat to the left 727 .de RE 728 .nr IS \\n(IP 729 .RT 730 .nr IP \\n(IS 731 .if \\n(IR>0 .nr IR -1 732 .in \\n(I\\n(IRu 733 .. 734 . \" B - bold font 735 .de B 736 .nr PQ \\n(.f 737 .ft 3 738 .if \\n(.$ \&\\$1\\f\\n(PQ\\$2 739 .. 740 . \" BI - bold italic 741 .de BI 742 .nr PQ \\n(.f 743 .ft 4 744 .if \\n(.$ \&\\$1\\f\\n(PQ\\$2 745 .. 746 . \" R - Roman font 747 .de R 748 .nr PQ \\n(.f 749 .ft 1 750 .if \\n(.$ \&\\$1\f\\n(PQ\\$2 751 .. 752 . \" I - italic font 753 .de I 754 .nr PQ \\n(.f 755 .ft 2 756 .if \\n(.$ \&\\$1\^\f\\n(PQ\\$2 757 .. 758 . \" CW - constant width font from -ms 759 .de CW 760 .nr PQ \\n(.f 761 .if \\n(.$=0 .ft CW 762 .if \\n(.$>0 \%\&\\$3\f(CW\\$1\\f\\n(PQ\\$2 763 .. 764 .de IT \" ditto to italicize argument 765 .nr Sf \\n(.f 766 \%\&\\$3\f2\\$1\f\\n(Sf\&\\$2 767 .. 768 . \" TA - tabs set in ens or chars 769 .de TA 770 .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n 771 .. 772 . \" SM - make smaller size 773 .de SM 774 .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2 775 .el .ps -2 776 .. 777 . \" LG - make larger size 778 .de LG 779 .ie \\n(.$ \&\\$3\s+2\\$1\s0\\$2 780 .el .ps +2 781 .. 782 . \" NL - return to normal size 783 .de NL 784 .ps \\n(PS 785 .. 786 . \" FS - begin footnote 787 .de FS 788 .if \\n(IF>0 .tm .FS within .FS/.FE, line \\n(.c, file \\n(.F 789 .if \\n(KF>0 .tm .FS won't work inside .KF, line \\n(.c, file \\n(.F 790 .if \\n(KS>0 .tm .FS won't work inside .KS, line \\n(.c, file \\n(.F 791 .nr IF 1 792 .ev 1 793 .ps \\n(PS-2 794 .ie \\n(VS>=41 .vs \\n(VSu-2p 795 .el .vs \\n(VSp-2p 796 .ll \\n(LLu 797 .br 798 .nr X \\n(FOu 799 .X "BF \\nX FS 800 .SP .3v 801 ....FA \" deleted by authority of cvw, 10/17/88 802 .. 803 . \" FE - end footnote 804 .de FE 805 .if !\\n(IF .tm .FE without .FS, line \\n(.c, file \\n(.F 806 .br 807 .X "END BF FE 808 .bp 809 .ev 810 .nr IF 0 811 .. 812 . \" FA - the line for a footnote 813 .de FA 814 \l'1i' 815 .br 816 .. 817 . \" Tm - message to be passed on 818 .de Tm 819 .ev 2 820 .if \\n(.$=1 .X "TM \\$1 821 .if \\n(.$=2 .X "TM \\$1 \\$2 822 .if \\n(.$=3 .X "TM \\$1 \\$2 \\$3 823 .if \\n(.$=4 .X "TM \\$1 \\$2 \\$3 \\$4 824 .if \\n(.$=5 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 825 .if \\n(.$=6 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 826 .if \\n(.$=7 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 827 .if \\n(.$=8 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 828 .if \\n(.$=9 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 829 .br 830 .ev 831 .. 832 .de MH 833 AT&T Bell Laboratories 834 Murray Hill, New Jersey 07974 835 .. 836 .de HO 837 AT&T Bell Laboratories 838 Holmdel, New Jersey 07733 839 .. 840 .de WH 841 AT&T Bell Laboratories 842 Whippany, New Jersey 07981 843 .. 844 .de IH 845 AT&T Bell Laboratories 846 Naperville, Illinois 60540 847 .. 848 . \" UL - underline argument, don't italicize 849 .de UL 850 \\$1\l'|0\(ul'\\$2 851 .. 852 . \" UX - print $2 UNIX $1 853 .de UX 854 .ie \\n(UX \\$2\s-1UNIX\s0\\$1 855 .el \{\ 856 \\$2\s-1UNIX\\s0\\$1\(rg 857 .nr UX 1\} 858 .. 859 . \" QS - start quote 860 .de QS 861 .br 862 .LP 863 .in +\\n(QIu 864 .ll -\\n(QIu 865 .. 866 . \" QE - end quote 867 .de QE 868 .br 869 .ll +\\n(QIu 870 .in -\\n(QIu 871 .LP 872 .. 873 . \" B1 - begin boxed stuff 874 .de B1 875 .br 876 .di BB 877 .nr BC 0 878 .if "\\$1"C" .nr BC 1 879 .nr BE 1 880 .. 881 . \" B2 - end boxed stuff 882 .de B2 883 .br 884 .nr BI 1n 885 .if \\n(.$>0 .nr BI \\$1n 886 .di 887 .nr BE 0 888 .nr BW \\n(dl 889 .nr BH \\n(dn 890 .ne \\n(BHu+\\n(.Vu 891 .nr BQ \\n(.j 892 .nf 893 .ti 0 894 .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u 895 .in +\\n(BIu 896 .ls 1 897 .BB 898 .ls 899 .in -\\n(BIu 900 .nr BW +2*\\n(BI 901 .sp -1 902 \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu' 903 .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u 904 .if \\n(BQ .fi 905 .br 906 .. 907 . \" BX - boxed stuff 908 .de BX 909 \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul' 910 .. 911 . 912 . \" macros for programs, etc. 913 . 914 .ig 915 programs are displayed between .P1/.P2 pairs 916 default is to indent by 1/2 inch, nofill, dP smaller 917 .P1 x causes an indent of x instead. 918 919 .P3 can be used to specify optional page-break points 920 inside .P1/.P2 921 .. 922 . 923 . \" P1 - start of program 924 .de P1 925 .nr $1 \\n(P1 926 .if \\n(.$ .nr $1 \\$1n 927 .br 928 .X "SP \\n(DV P1" 929 .X "US P1" 930 .in \\n($1u 931 .nf 932 .nr v \\n(.v 933 .ps -\\n(dP 934 .vs -\\n(dVu 935 .ft CW 936 .nr t \\n(dT*\\w'x'u 937 .ta 1u*\\ntu 2u*\\ntu 3u*\\ntu 4u*\\ntu 5u*\\ntu 6u*\\ntu 7u*\\ntu 8u*\\ntu 9u*\\ntu 10u*\\ntu 11u*\\ntu 12u*\\ntu 13u*\\ntu 14u*\\ntu 938 .. 939 . \" P2 - end of program 940 .de P2 941 .br 942 .ps \\n(PS 943 .vs \\nvu 944 .ft 1 945 .in 946 .X "END US P1 947 .X "SP \\n(DV P2" 948 .fi 949 .. 950 . \" P3 - provides optional unpadded break in P1/P2 951 .de P3 952 .nr x \\n(DV 953 .nr DV 0 954 .P2 955 .P1 \\n($1u 956 .nr DV \\nx 957 .. 958 .de [ 959 [ 960 .. 961 .de ] 962 ] 963 .. 964 .IZ 965 .rm IZ 966 .so /home/anselm/plan9port/tmac/tmac.srefs