xref: /original-bsd/old/ms/tmac.s (revision 09b04dfe)
1.\"	@(#)tmac.s	1.6 (Berkeley) 06/02/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
1003in 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/
1026