Blob


1 .\" 10/22/92 activate next line before installing
2 .pi /usr/local/plan9/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 ..
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'
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 ..
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 ..
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 ..
912 . \" macros for programs, etc.
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.
919 .P3 can be used to specify optional page-break points
920 inside .P1/.P2
921 ..
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 [
960 ..
961 .de ]
963 ..
964 .IZ
965 .rm IZ
966 .so /usr/local/plan9/tmac/tmac.srefs