|
|
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.