| .\" 10/22/92 activate next line before installing |
| .pi /usr/local/plan9/bin/auxpm |
| . |
| . \" IZ - initialization |
| .de IZ |
| .fp 10 S \" force a font out into prefix |
| .nr PS 10 \" point size |
| .nr VS 12 \" line spacing |
| .ps \\n(PS |
| .ie \\n(VS>=41 .vs \\n(VSu |
| .el .vs \\n(VSp |
| .nr LL 6i \" line length |
| .ll \\n(LLu |
| .nr LT \\n(.l \" title length |
| .lt \\n(LTu |
| .if !\\n(HM .nr HM 1i \" top of page |
| .if !\\n(FM .nr FM 1i \" footer margin |
| .if !\\n(FO .nr FO \\n(.p-\\n(FM \" bottom of page |
| . \" to set text ht to N, set FO to N + \n(HM. default is 10i |
| .pl 32767u \" safety first: big pages for pm |
| .if !\\n(PO .nr PO \\n(.ou \" page offset |
| .nr PI 5n \" .PP paragraph indent |
| .nr QI 5n \" .QS indent |
| .nr DI 5n \" .DS indent |
| .nr PD 0.3v \" paragraph vertical separation |
| .nr TS 0.5v \" space around tables |
| .nr Kf 0.5v \" space around .KF/.KE |
| .nr Ks 0.5v \" space around .KS/.KE |
| . |
| .nr P1 .4i \" indent for .P1/.P2 |
| .nr dP 1 \" delta point size for programs in .P1/.P2 |
| .nr dV 2p \" delta vertical for programs |
| .nr dT 8 \" delta tab stop for programs |
| .nr DV .5v \" space before start of program |
| .nr IP 0 \" ? |
| .nr IR 0 \" ? |
| .nr I1 \\n(PIu |
| .ev 1 |
| .if !\\n(FL .nr FL \\n(LLu \" footnote length |
| .ll \\n(FLu |
| .ps 8 \" text size & leading in footnote |
| .vs 10p |
| .ev |
| .if \\*(CH .ds CH "\(hy \\\\n(PN \(hy |
| .ds # #\\\\n(.c \\\\n(.F |
| . |
| . |
| .ME \" initialize date strings |
| .rm ME |
| . \" accents: \*'e \*`e \*:u \*^e \*~n \*va \*,c |
| .ds ' \h'\w'e'u*4/10'\z\(aa\h'-\w'e'u*4/10' |
| .ds ` \h'\w'e'u*4/10'\z\(ga\h'-\w'e'u*4/10' |
| .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' |
| .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u' |
| .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u' |
| .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u' |
| .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u' |
| .. |
| . |
| . |
| . \" SP - generate paddable space |
| .de SP |
| .br |
| .nr X 1v |
| .if \\n(.$ .nr X \\$1v |
| .ie '\\$2'exactly' \{\ |
| \v'\\nXu'\ \h'-\w'\ 'u'\c |
| .sp \\$1\} |
| .el .X "SP \\nX \\$2" |
| .. |
| . \" NE - need space on this page |
| .de NE |
| .nr X 1v |
| .if \\n(.$ .nr X \\$1v |
| .X "NE \\nX \\$2" |
| .. |
| . \" BP, FL, FC - begin page, flush figures, flush column |
| .de BP |
| .br |
| .X CMD BP |
| .. |
| .de FL |
| .br |
| .X CMD FL |
| .. |
| .de FC |
| .br |
| .X CMD FC |
| .. |
| . \" X - generate an x X ... command in the output |
| .de X |
| ....ie '\\n(.z'' \\!x X \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 |
| ....el \\!.X "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 |
| ... |
| .if !'\\n(.z'' .if \\n(.$=1 \\!.X "\\$1 |
| .if !'\\n(.z'' .if \\n(.$=2 \\!.X "\\$1 \\$2 |
| .if !'\\n(.z'' .if \\n(.$=3 \\!.X "\\$1 \\$2 \\$3 |
| .if !'\\n(.z'' .if \\n(.$>3 \\!.X "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 |
| .if '\\n(.z'' .if \\n(.$=1 \\!x X \\$1 \\*# |
| .if '\\n(.z'' .if \\n(.$=2 \\!x X \\$1 \\$2 \\*# |
| .if '\\n(.z'' .if \\n(.$=3 \\!x X \\$1 \\$2 \\$3 \\*# |
| .if '\\n(.z'' .if \\n(.$=4 \\!x X \\$1 \\$2 \\$3 \\$4 \\*# |
| .if '\\n(.z'' .if \\n(.$>4 \\!x X \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 \\*# |
| .. |
| . \" DA - force date |
| .de DA |
| .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4 |
| .ds CF \\*(DY |
| .. |
| . \" ND - set new or no date |
| .de ND |
| .ds DY \\$1 \\$2 \\$3 \\$4 |
| .rm CF |
| .. |
| .de ME \" ME - set month strings |
| .if \\n(mo-0 .ds MO January |
| .if \\n(mo-1 .ds MO February |
| .if \\n(mo-2 .ds MO March |
| .if \\n(mo-3 .ds MO April |
| .if \\n(mo-4 .ds MO May |
| .if \\n(mo-5 .ds MO June |
| .if \\n(mo-6 .ds MO July |
| .if \\n(mo-7 .ds MO August |
| .if \\n(mo-8 .ds MO September |
| .if \\n(mo-9 .ds MO October |
| .if \\n(mo-10 .ds MO November |
| .if \\n(mo-11 .ds MO December |
| .if \\n(dw-0 .ds DW Sunday |
| .if \\n(dw-1 .ds DW Monday |
| .if \\n(dw-2 .ds DW Tuesday |
| .if \\n(dw-3 .ds DW Wednesday |
| .if \\n(dw-4 .ds DW Thursday |
| .if \\n(dw-5 .ds DW Friday |
| .if \\n(dw-6 .ds DW Saturday |
| .if "\\*(DY"" .ds DY \\*(MO \\n(dy, 19\\n(yr |
| .. |
| . \" FP - font position for a family |
| .de FP |
| .if '\\$1'palatino'\{\ |
| . fp 1 PA |
| . fp 2 PI |
| . fp 3 PB |
| . fp 4 PX\} |
| .if '\\$1'lucidasans'\{\ |
| . fp 1 R LucidaSans |
| . fp 2 I LucidaSansI |
| . fp 3 B LucidaSansB |
| . fp 5 CW LucidaCW\} |
| .if '\\$1'century'\{\ |
| . ie '\\*(.T'202'\{\ |
| . fp 1 NR Centsb |
| . fp 2 NI CentI |
| . fp 3 NB CentB |
| . fp 4 NX CentBI\} |
| . el \{\ |
| . fp 1 NR |
| . fp 2 NI |
| . fp 3 NB |
| . fp 4 NX\}\} |
| .if '\\$1'helvetica'\{\ |
| . fp 1 H |
| . fp 2 HI |
| . fp 3 HB |
| . fp 4 HX\} |
| .if '\\$1'bembo'\{\ |
| . ie '\\*(.T'202'\{\ |
| . fp 1 B1 Bembo |
| . fp 2 B2 BemboI |
| . fp 3 B3 BemboB |
| . fp 4 B4 BemboBI\} |
| . el \{\ |
| . fp 1 B1 |
| . fp 2 B2 |
| . fp 3 B3 |
| . fp 4 B4\}\} |
| .if '\\$1'optima'\{\ |
| . fp 1 R Optima |
| . fp 2 I OptimaI |
| . fp 3 B OptimaB |
| . fp 4 BI OptimaBI\} |
| .if '\\$1'souvenir'\{\ |
| . fp 1 R Souvenir |
| . fp 2 I SouvenirI |
| . fp 3 B SouvenirB |
| . fp 4 BI SouvenirBI\} |
| .if '\\$1'melior'\{\ |
| . fp 1 R Melior |
| . fp 2 I MeliorI |
| . fp 3 B MeliorB |
| . fp 4 BI MeliorBI\} |
| .if '\\$1'times'\{\ |
| . fp 1 R |
| . fp 2 I |
| . fp 3 B |
| . fp 4 BI\} |
| .. |
| . \" TL - title |
| .de TL |
| .br |
| .if !\\n(1T .BG |
| ....hy 0 |
| .ft 3 |
| .ps \\n(PS+2p |
| .vs \\n(VS+2p |
| .ll \\n(LLu |
| .ce 100 \" turned off in .RT |
| .sp .5i |
| .. |
| . \" AU - remember author(s) |
| .de AU |
| .ft 1 |
| .ps \\n(PS |
| .ie \\n(VS>=41 .vs \\n(VSu |
| .el .vs \\n(VSp |
| .SP .5 |
| .. |
| . \" AI - author's institution |
| .de AI |
| .SP .25 |
| .ft 2 |
| .. |
| . \" AB - begin abstract |
| .de AB |
| .nr AB 1 \" we're in abstract |
| .if !\\n(1T .BG |
| .ft 1 |
| .ps \\n(PS |
| .vs \\n(VSp |
| .ce |
| .in +\\n(.lu/12u |
| .ll -\\n(.lu/12u |
| .SP 1 |
| .ie \\n(.$ \\$1 |
| .el ABSTRACT |
| .SP .75 |
| .RT |
| .. |
| . \" AE - end of abstract |
| .de AE |
| .br |
| .nr AB 0 |
| .in 0 |
| .ll \\n(LLu |
| .ps \\n(PS |
| .ie \\n(VS>=41 .vs \\n(VSu |
| .el .vs \\n(VSp |
| .SP |
| .. |
| . \" 2C - 2 columns |
| .de 2C |
| .MC 2 |
| .. |
| . \" 1C - 1 column |
| .de 1C |
| .MC 1 |
| .. |
| . \" MC - multiple columns |
| .de MC |
| .br |
| .if \\n(1T .RT |
| .if \\n(1T .NP |
| .if !\\n(OL .nr OL \\n(LL |
| .if \\n(CW=0 .nr CW \\n(LL*7/15 |
| .if \\n(GW=0 .nr GW \\n(LL-(2*\\n(CW) |
| .nr x \\n(CW+\\n(GW |
| .if "\\$1"" .MC 2 |
| .if \\$1=1 \{\ |
| . X MC 1 0 |
| . nr LL \\n(OLu\} |
| .if \\$1=2 \{\ |
| . X MC 2 \\nx |
| . nr LL \\n(CWu\} |
| .ll \\n(LLu |
| .if \\$1>2 .tm -mpm can't handle more than two columns |
| .if \\n(1T .RT |
| .. |
| . \" TS - table start, TE - table end; also TC, TQ, TH |
| .de TS |
| .br |
| .if !\\n(1T .RT |
| .SP \\n(TSu TS |
| .X "US TS |
| .if \\$1H .TQ |
| .nr IX 1 |
| .. |
| .de TC |
| .nr TZ \\n(.lu |
| .if \\n(.$ .nr TZ \\$1n |
| .ta \\n(TZuR |
| .. |
| .de TD |
| .LP |
| .nr TZ 0 |
| .. |
| .de TQ |
| .di TT |
| .nr IT 1 |
| .. |
| .de TH |
| .if \\n(.d>0.5v \{\ |
| . nr T. 0 |
| . T# 0\} |
| .di |
| .nr TQ \\n(.i |
| .nr HT 1 |
| .in 0 |
| .mk #a |
| .mk #b |
| .mk #c |
| .mk #d |
| .mk #e |
| .mk #f |
| .TT |
| .in \\n(TQu |
| .mk #T |
| .. |
| . \" TE - table end |
| .de TE |
| .nr IX 0 |
| .if \\n(IT .if !\\n(HT \{\ |
| . di |
| . nr EF \\n(.u |
| . nf |
| . TT |
| . if \\n(EF .fi\} |
| .nr IT 0 |
| .nr HT 0 |
| .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+ |
| .rr 32 33 34 35 36 37 38 40 79 80 81 82 |
| .rr a| b| c| d| e| f| g| h| i| j| k| l| m| |
| .rr a- b- c- d- e- f- g- h- i- j- k- l- m- |
| .X "END US TE |
| .SP \\n(TSu TE |
| .bp |
| .. |
| . \" EQ - equation, breakout and display |
| .de EQ |
| .nr EF \\n(.u |
| .rm EE |
| .nr LE 1 \" 1 is center |
| .ds EL \\$1 |
| .if "\\$1"L" \{\ |
| . ds EL \\$2 |
| . nr LE 0\} |
| .if "\\$1"C" .ds EL \\$2 |
| .if "\\$1"R" \{\ |
| . ds EL \\$2 \" 2 is right adjust |
| . nr LE 2\} |
| .if "\\$1"I" \{\ |
| . nr LE 0 |
| . if "\\$3"" .ds EE \\h'|10n' |
| . el .ds EE \\h'\\$3' |
| . ds EL \\$2\} |
| .if \\n(YE .nf |
| .di EZ |
| .. |
| . \" EN - end of equation |
| .de EN |
| .br |
| .di |
| .rm EZ |
| .nr ZN \\n(dn |
| .if \\n(ZN .if !\\n(YE .LP |
| .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1 |
| .if \\n(ZN \{\ |
| . SP .5v EQ |
| . X "US EQ"\} |
| 'pc |
| .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup |
| .if \\n(MK \{\ |
| . if \\n(LE=1 .ds EE \\h'|10n' |
| . nr LE 0\} |
| 'lt \\n(.lu |
| .if !\\n(EP .if \\n(ZN \{\ |
| . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts |
| . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts |
| . if !\\n(LE \{\ |
| . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts |
| . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts |
| . if \\n(BD \!\\*(10\\t\\*(EL\}\} |
| .if \\n(EP .if \\n(ZN \{\ |
| . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts |
| . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts |
| . if !\\n(LE \{\ |
| . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts |
| . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts |
| . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\} |
| 'lt \\n(LLu |
| 'pc % |
| .if \\n(YE .if \\n(EF .fi |
| .if \\n(ZN .X "END US EQ" |
| .if \\n(ZN .SP .5v EN |
| .if \\n(ZN .bp |
| .. |
| . \" PS - start picture |
| .de PS \" $1 is height, $2 is width, in inches |
| .br |
| .nr X 0.35v |
| .if \\$1>0 .X "SP \\nX PS" |
| .ie \\$1>0 .nr $1 \\$1 |
| .el .nr $1 0 |
| .X "US PS \\$1 |
| .in (\\n(.lu-\\$2)/2u |
| .. |
| . \" PE - end of picture |
| .de PE |
| .in |
| .X "END US PE |
| .nr X .65v |
| .if \\n($1>0 .X "SP \\nX PE" |
| .bp |
| .. |
| .de IS \" for -mpm only |
| .KS |
| .. |
| .de IE |
| .KE |
| .bp |
| .. |
| . \" NP - new page |
| .de NP |
| .ev 2 |
| .bp |
| .if \\n(KF=0 \{\ |
| . nr PX \\n(.s |
| . nr PF \\n(.f |
| . nr PV \\n(.v |
| . lt \\n(LTu |
| . ps \\n(PS |
| . vs \\n(PS+2 |
| . ft 1 |
| . if \\n(PO .po \\n(POu \" why isn't this reset??? |
| . PT \\$1 |
| . bp |
| . rs |
| . BT |
| . bp |
| . nr %# +1 |
| . ps \\n(PX |
| . vs \\n(PVu |
| . ft \\n(PF \} |
| .ev |
| .. |
| . |
| .ds %e .tl '\\*(LH'\\*(CH'\\*(RH' |
| .ds %o .tl '\\*(LH'\\*(CH'\\*(RH' |
| .ds %E .tl '\\*(LF'\\*(CF'\\*(RF' |
| .ds %O .tl '\\*(LF'\\*(CF'\\*(RF' |
| . |
| . \" PT - page title |
| .de PT |
| .nr PN \\n(%# |
| .X "PT \\n(%# |
| .sp \\n(HMu/2u |
| .if \\n(OL .lt \\n(OLu \" why isn't this reset??? |
| .if \\n(BT>0 .if \\n(%#%2 \\*(%o |
| .if \\n(BT>0 .if !\\n(%#%2 \\*(%e |
| .if \\n(BT=0 .tl '\0''' \" put out something or spacing is curdled |
| .X "END PT \\n(%# |
| .. |
| . \" BT - bottom title |
| .de BT |
| .X "BT \\n(%# |
| .sp |\\n(FMu/2u+\\n(FOu-1v |
| .if \\n(%#%2 \\*(%O |
| .if !\\n(%#%2 \\*(%E |
| .nr BT \\n(BT+1 |
| .X "END BT \\n(%# |
| .. |
| . \" KS - non-floating keep |
| .de KS |
| .br |
| .if "\\n(.z"" .NP \" defends poorly against including ht of page stuff in diversion for .B1 |
| .X "US KS 0 |
| .nr KS +1 |
| .SP \\n(Ksu |
| .. |
| . \" KF - floating keep |
| .de KF |
| .ev 1 |
| .br |
| .if \\n(KS>0 .tm KF won't work inside KS, line \\n(.c, file \\n(.F |
| .if \\n(KF>0 .tm KF won't work inside KF, line \\n(.c, file \\n(.F |
| .nr KF 1 |
| .nr 10 0 |
| . if !'\\$1'' .nr 10 \\$1u |
| . if '\\$1'bottom' .nr 10 \\n(FOu-1u |
| . if '\\$1'top' .nr 10 \\n(HM |
| . if \\n(10 .X "UF \\n(10 KF" |
| . if !\\n(10 .X "UF \\n(HM KF" |
| . nr X \\n(FOu-2u |
| . if \\n(10 .X "UF \\n(10 KF" |
| . if !\\n(10 .X "UF \\nX KF" |
| .nr SJ \\n(.u |
| .ps \\n(PS |
| .if \\n(VS>40 .vs \\n(VSu |
| .if \\n(VS<=39 .vs \\n(VSp |
| .ll \\n(LLu |
| .lt \\n(LTu |
| .SP \\n(Kfu |
| .. |
| . \" KE - end of KS/KF |
| .de KE |
| .bp |
| .ie \\n(KS>0 \{\ |
| . SP \\n(Ksu |
| . X "END US KS |
| . nr KS -1 \} |
| .el .ie \\n(KF>0 \{\ |
| . SP \\n(Kfu |
| . nr KF 0 |
| . X "END UF KF" |
| . if \\n(SJ .fi |
| . ev \} |
| .el .tm .KE without preceding .KS or .KF, line \\n(.c, file \\n(.F |
| .. |
| . |
| . \" DS - display. .DS C center; L left-adjust; I indent (default) |
| .de DS \" $2 = amount of indent |
| .KS |
| .nf |
| .\\$1D \\$2 \\$1 |
| .ft 1 |
| .if !\\n(IF \{\ |
| . ps \\n(PS |
| . if \\n(VS>40 .vs \\n(VSu |
| . if \\n(VS<=39 .vs \\n(VSp\} |
| .. |
| .de D |
| .ID \\$1 |
| .. |
| .de CD |
| .XD |
| .ce 1000 |
| .. |
| .de ID |
| .XD |
| .if \\n(.$=0 .in +\\n(DIu |
| .if \\n(.$=1 .if "\\$1"I" .in +\\n(DIu |
| .if \\n(.$=1 .if !"\\$1"I" .in +\\$1n |
| .if \\n(.$>1 .in +\\$2n |
| .....in +0.5i |
| .....if \\n(.$ .if !"\\$1"I" .if !"\\$1"" .in \\n(DIu |
| .....if \\n(.$ .if !"\\$1"I" .if !"\\$1"" .in +\\$1n |
| .. |
| .de LD |
| .XD |
| .. |
| .de XD |
| .nf |
| .nr OI \\n(.i |
| .SP \\n(DVu |
| .. |
| . \" BD - block display: save everything, then center it. |
| .de BD |
| .XD |
| .nr BD 1 |
| .nf |
| .in \\n(OIu |
| .di DD |
| .. |
| . \" DE - display end |
| .de DE |
| .ce 0 |
| .if \\n(BD>0 .XF |
| .nr BD 0 |
| .in \\n(OIu |
| .SP \\n(DVu |
| .KE |
| .fi |
| .. |
| . \" XF - finish a block display to be recentered. |
| .de XF |
| .di |
| .if \\n(dl>\\n(BD .nr BD \\n(dl |
| .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u |
| .nr EI \\n(.l-\\n(.i |
| .ta \\n(EIuR |
| .nf |
| .DD |
| .in \\n(OIu |
| .. |
| . |
| . |
| . \" SH - (unnumbered) section heading |
| .de SH |
| .RT |
| .nr X 1v |
| .nr Y 3v |
| .if \\n(1T .NP |
| .if \\n(1T .X "NE \\nY SH" \" should these be reversed, change Y to 4v |
| .if \\n(1T .X "SP \\nX SH |
| .ft 3 |
| .. |
| . \" NH - numbered heading |
| .de NH |
| .RT |
| .nr X 1v |
| .nr Y 3v |
| .if \\n(1T .NP |
| .if \\n(1T .X "NE \\nY NH" \" should these be reversed, change Y to 4v |
| .if \\n(1T .X "SP \\nX NH |
| .ft 3 |
| .nr NS \\$1 |
| .if !\\n(.$ .nr NS 1 |
| .if !\\n(NS .nr NS 1 |
| .nr H\\n(NS +1 |
| .if !\\n(NS-4 .nr H5 0 |
| .if !\\n(NS-3 .nr H4 0 |
| .if !\\n(NS-2 .nr H3 0 |
| .if !\\n(NS-1 .nr H2 0 |
| .if !\\$1 .if \\n(.$ .nr H1 1 |
| .ds SN \\n(H1. |
| .if \\n(NS-1 .as SN \\n(H2. |
| .if \\n(NS-2 .as SN \\n(H3. |
| .if \\n(NS-3 .as SN \\n(H4. |
| .if \\n(NS-4 .as SN \\n(H5. |
| \\*(SN |
| .. |
| . \" RT - reset at beginning of each PP, LP, etc. |
| .de RT |
| .if !\\n(AB .if !\\n(1T .BG |
| .ce 0 |
| .if !\\n(AB .if !\\n(KF .if !\\n(IF .if !\\n(IX .if !\\n(BE .di |
| .if \\n(QP \{\ |
| . ll +\\n(QIu |
| . in -\\n(QIu |
| . nr QP -1\} |
| .if !\\n(AB \{\ |
| . ll \\n(LLu\} |
| .if !\\n(IF .if !\\n(AB \{\ |
| . ps \\n(PS |
| . ie \\n(VS>=41 .vs \\n(VSu |
| . el .vs \\n(VSp\} |
| .ie \\n(IP \{\ |
| . in \\n(I\\n(IRu |
| . nr IP -1\} |
| .el .if !\\n(IR \{\ |
| . nr I1 \\n(PIu |
| . nr I2 0 |
| . nr I3 0 |
| . nr I4 0 |
| . nr I5 0\} |
| .if !\\n(AB .ft 1 |
| .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n |
| .fi |
| .. |
| . \" BG - begin, execute at first TL, AB, NH, SH, PP, etc. |
| .de BG \" IZ has been called, so registers have some value |
| .br |
| .if \\n(CW>0 .if \\n(LL=0 .nr LL \\n(CW+\\n(CW+\\n(GW |
| .ll \\n(LLu |
| .lt \\n(LLu |
| .po \\n(POu |
| .nr YE 1 \" ok to cause break in .EQ (earlier ones won't) |
| .ev 0 |
| .hy 14 |
| .ev |
| .ev 1 |
| .hy 14 |
| .ev |
| .ev 2 |
| .hy 14 |
| .ev |
| .nr 1T 1 |
| .X "PARM NP \\n(HM |
| .X "PARM FO \\n(FO |
| .if !\\n(%# .nr %# 1 |
| .. |
| . \" PP - paragraph |
| .de PP |
| .RT |
| .if \\n(1T .NP |
| .if \\n(1T .X "SP \\n(PD PP" |
| .if \\n(1T .X "BS 2 PP" |
| .ti +\\n(PIu |
| .. |
| . \" LP - left aligned paragraph |
| .de LP |
| .RT |
| .if \\n(1T .NP |
| .if \\n(1T .X "SP \\n(PD LP" |
| .if \\n(1T .X "BS 2 LP" |
| .. |
| . \" IP - indented paragraph |
| .de IP |
| .RT |
| .if !\\n(IP .nr IP +1 |
| .if \\n(1T .NP |
| .if \\n(1T .X "SP \\n(PD PP" |
| .if \\n(1T .X "BS 2 IP" |
| .nr IU \\n(IR+1 |
| .if \\n(.$>1 .nr I\\n(IU \\$2n+\\n(I\\n(IRu |
| .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu |
| .in \\n(I\\n(IUu |
| .nr TY \\n(TZ-\\n(.i |
| .nr JQ \\n(I\\n(IU-\\n(I\\n(IR |
| .ta \\n(JQu \\n(TYuR |
| .if \\n(.$ \{\ |
| .ti \\n(I\\n(IRu |
| \&\\$1\t\c\} |
| .. |
| . \" QP - quoted paragraph (within IP) |
| .de QP |
| .RT |
| .if \\n(1T .NP |
| .if \\n(1T .X "SP \\n(PD QP" |
| .if \\n(1T .X "BS 2 QP" |
| .nr QP 1 |
| .in +\\n(QIu |
| .ll -\\n(QIu |
| .ti \\n(.iu |
| .. |
| . \" RS - prepare for double indenting |
| .de RS |
| .nr IS \\n(IP |
| .RT |
| .nr IP \\n(IS |
| .nr IU \\n(IR |
| .nr IR +1 |
| .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu |
| .in \\n(I\\n(IRu |
| .nr TY \\n(TZ-\\n(.i |
| .ta \\n(TYuR |
| .. |
| . \" RE - retreat to the left |
| .de RE |
| .nr IS \\n(IP |
| .RT |
| .nr IP \\n(IS |
| .if \\n(IR>0 .nr IR -1 |
| .in \\n(I\\n(IRu |
| .. |
| . \" B - bold font |
| .de B |
| .nr PQ \\n(.f |
| .ft 3 |
| .if \\n(.$ \&\\$1\\f\\n(PQ\\$2 |
| .. |
| . \" BI - bold italic |
| .de BI |
| .nr PQ \\n(.f |
| .ft 4 |
| .if \\n(.$ \&\\$1\\f\\n(PQ\\$2 |
| .. |
| . \" R - Roman font |
| .de R |
| .nr PQ \\n(.f |
| .ft 1 |
| .if \\n(.$ \&\\$1\f\\n(PQ\\$2 |
| .. |
| . \" I - italic font |
| .de I |
| .nr PQ \\n(.f |
| .ft 2 |
| .if \\n(.$ \&\\$1\^\f\\n(PQ\\$2 |
| .. |
| . \" CW - constant width font from -ms |
| .de CW |
| .nr PQ \\n(.f |
| .if \\n(.$=0 .ft CW |
| .if \\n(.$>0 \%\&\\$3\f(CW\\$1\\f\\n(PQ\\$2 |
| .. |
| .de IT \" ditto to italicize argument |
| .nr Sf \\n(.f |
| \%\&\\$3\f2\\$1\f\\n(Sf\&\\$2 |
| .. |
| . \" TA - tabs set in ens or chars |
| .de TA |
| .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n |
| .. |
| . \" SM - make smaller size |
| .de SM |
| .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2 |
| .el .ps -2 |
| .. |
| . \" LG - make larger size |
| .de LG |
| .ie \\n(.$ \&\\$3\s+2\\$1\s0\\$2 |
| .el .ps +2 |
| .. |
| . \" NL - return to normal size |
| .de NL |
| .ps \\n(PS |
| .. |
| . \" FS - begin footnote |
| .de FS |
| .if \\n(IF>0 .tm .FS within .FS/.FE, line \\n(.c, file \\n(.F |
| .if \\n(KF>0 .tm .FS won't work inside .KF, line \\n(.c, file \\n(.F |
| .if \\n(KS>0 .tm .FS won't work inside .KS, line \\n(.c, file \\n(.F |
| .nr IF 1 |
| .ev 1 |
| .ps \\n(PS-2 |
| .ie \\n(VS>=41 .vs \\n(VSu-2p |
| .el .vs \\n(VSp-2p |
| .ll \\n(LLu |
| .br |
| .nr X \\n(FOu |
| .X "BF \\nX FS |
| .SP .3v |
| ....FA \" deleted by authority of cvw, 10/17/88 |
| .. |
| . \" FE - end footnote |
| .de FE |
| .if !\\n(IF .tm .FE without .FS, line \\n(.c, file \\n(.F |
| .br |
| .X "END BF FE |
| .bp |
| .ev |
| .nr IF 0 |
| .. |
| . \" FA - the line for a footnote |
| .de FA |
| \l'1i' |
| .br |
| .. |
| . \" Tm - message to be passed on |
| .de Tm |
| .ev 2 |
| .if \\n(.$=1 .X "TM \\$1 |
| .if \\n(.$=2 .X "TM \\$1 \\$2 |
| .if \\n(.$=3 .X "TM \\$1 \\$2 \\$3 |
| .if \\n(.$=4 .X "TM \\$1 \\$2 \\$3 \\$4 |
| .if \\n(.$=5 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 |
| .if \\n(.$=6 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 |
| .if \\n(.$=7 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 |
| .if \\n(.$=8 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 |
| .if \\n(.$=9 .X "TM \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 |
| .br |
| .ev |
| .. |
| .de MH |
| AT&T Bell Laboratories |
| Murray Hill, New Jersey 07974 |
| .. |
| .de HO |
| AT&T Bell Laboratories |
| Holmdel, New Jersey 07733 |
| .. |
| .de WH |
| AT&T Bell Laboratories |
| Whippany, New Jersey 07981 |
| .. |
| .de IH |
| AT&T Bell Laboratories |
| Naperville, Illinois 60540 |
| .. |
| . \" UL - underline argument, don't italicize |
| .de UL |
| \\$1\l'|0\(ul'\\$2 |
| .. |
| . \" UX - print $2 UNIX $1 |
| .de UX |
| .ie \\n(UX \\$2\s-1UNIX\s0\\$1 |
| .el \{\ |
| \\$2\s-1UNIX\\s0\\$1\(rg |
| .nr UX 1\} |
| .. |
| . \" QS - start quote |
| .de QS |
| .br |
| .LP |
| .in +\\n(QIu |
| .ll -\\n(QIu |
| .. |
| . \" QE - end quote |
| .de QE |
| .br |
| .ll +\\n(QIu |
| .in -\\n(QIu |
| .LP |
| .. |
| . \" B1 - begin boxed stuff |
| .de B1 |
| .br |
| .di BB |
| .nr BC 0 |
| .if "\\$1"C" .nr BC 1 |
| .nr BE 1 |
| .. |
| . \" B2 - end boxed stuff |
| .de B2 |
| .br |
| .nr BI 1n |
| .if \\n(.$>0 .nr BI \\$1n |
| .di |
| .nr BE 0 |
| .nr BW \\n(dl |
| .nr BH \\n(dn |
| .ne \\n(BHu+\\n(.Vu |
| .nr BQ \\n(.j |
| .nf |
| .ti 0 |
| .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u |
| .in +\\n(BIu |
| .ls 1 |
| .BB |
| .ls |
| .in -\\n(BIu |
| .nr BW +2*\\n(BI |
| .sp -1 |
| \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu' |
| .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u |
| .if \\n(BQ .fi |
| .br |
| .. |
| . \" BX - boxed stuff |
| .de BX |
| \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul' |
| .. |
| . |
| . \" macros for programs, etc. |
| . |
| .ig |
| programs are displayed between .P1/.P2 pairs |
| default is to indent by 1/2 inch, nofill, dP smaller |
| .P1 x causes an indent of x instead. |
| |
| .P3 can be used to specify optional page-break points |
| inside .P1/.P2 |
| .. |
| . |
| . \" P1 - start of program |
| .de P1 |
| .nr $1 \\n(P1 |
| .if \\n(.$ .nr $1 \\$1n |
| .br |
| .X "SP \\n(DV P1" |
| .X "US P1" |
| .in \\n($1u |
| .nf |
| .nr v \\n(.v |
| .ps -\\n(dP |
| .vs -\\n(dVu |
| .ft CW |
| .nr t \\n(dT*\\w'x'u |
| .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 |
| .. |
| . \" P2 - end of program |
| .de P2 |
| .br |
| .ps \\n(PS |
| .vs \\nvu |
| .ft 1 |
| .in |
| .X "END US P1 |
| .X "SP \\n(DV P2" |
| .fi |
| .. |
| . \" P3 - provides optional unpadded break in P1/P2 |
| .de P3 |
| .nr x \\n(DV |
| .nr DV 0 |
| .P2 |
| .P1 \\n($1u |
| .nr DV \\nx |
| .. |
| .de [ |
| [ |
| .. |
| .de ] |
| ] |
| .. |
| .IZ |
| .rm IZ |
| .so /usr/local/plan9/tmac/tmac.srefs |