commit 9847210bcb677f11ea6b80bb2942486d989647a9 from: rsc date: Tue Sep 13 00:17:07 2005 UTC Add tmac.pm. commit - 3dd8aba69153883d7dc9f694de8aafebe12d5070 commit + 9847210bcb677f11ea6b80bb2942486d989647a9 blob - /dev/null blob + 1333a31cf9caf407e44f4bd09aba43b0cfd12007 (mode 644) --- /dev/null +++ tmac/tmac.pm @@ -0,0 +1,966 @@ +.\" 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