Commit | Line | Data |
---|---|---|
84f25a89 | 1 | .nr _0 \n(.c |
0a1cd3e4 | 2 | .\" Copyright (c) 1988 The Regents of the University of California. |
70e37822 KB |
3 | .\" All rights reserved. |
4 | .\" | |
5 | .\" Redistribution and use in source and binary forms are permitted | |
0a1cd3e4 KB |
6 | .\" provided that the above copyright notice and this paragraph are |
7 | .\" duplicated in all such forms and that any documentation, | |
8 | .\" advertising materials, and other materials related to such | |
9 | .\" distribution and use acknowledge that the software was developed | |
10 | .\" by the University of California, Berkeley. The name of the | |
11 | .\" University may not be used to endorse or promote products derived | |
12 | .\" from this software without specific prior written permission. | |
13 | .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
14 | .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
15 | .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
16 | .\" | |
964b9ef7 | 17 | .\" @(#)tmac.orig_me 2.33 (Berkeley) %G% |
0a1cd3e4 | 18 | .\" |
a3fd506b | 19 | .\" %beginstrip% |
70e37822 | 20 | .\" |
84f25a89 EA |
21 | .\"********************************************************************** |
22 | .\"* * | |
23 | .\"* ****** - M E N R O F F / T R O F F M A C R O S ****** * | |
24 | .\"* * | |
25 | .\"* Produced for your edification and enjoyment by: * | |
26 | .\"* Eric Allman * | |
27 | .\"* Electronics Research Laboratory * | |
28 | .\"* U.C. Berkeley. * | |
7729eef3 EA |
29 | .\"* current address: * |
30 | .\"* Britton-Lee, Inc. * | |
b4c5d7ad | 31 | .\"* 1919 Addison Street Suite 105 * |
a61ea4a3 | 32 | .\"* Berkeley, California 94704 * |
84f25a89 | 33 | .\"* * |
964b9ef7 | 34 | .\"* VERSION 2.33 First Release: 11 Sept 1978 * |
84f25a89 EA |
35 | .\"* See file \*(||/revisions for revision history * |
36 | .\"* * | |
37 | .\"* Documentation is available. * | |
38 | .\"* * | |
39 | .\"********************************************************************** | |
6c97ff5a | 40 | .\" |
84f25a89 EA |
41 | .\" Code on .de commands: |
42 | .\" *** a user interface macro. | |
43 | .\" &&& a user interface macro which is redefined | |
44 | .\" when used to be the real thing. | |
45 | .\" $$$ a macro which may be redefined by the user | |
46 | .\" to provide variant functions. | |
47 | .\" --- an internal macro. | |
48 | .\" | |
49 | .if !\n(.V .tm You are using the wrong version of NROFF/TROFF!! | |
50 | .if !\n(.V .tm This macro package works only on the version seven | |
51 | .if !\n(.V .tm release of NROFF and TROFF. | |
52 | .if !\n(.V .ex | |
53 | .if \n(pf \ | |
54 | . nx \*(||/null.me | |
55 | .\"\f *** INTERNAL GP MACROS *** | |
56 | .de @C \" --- change ev's, taking info with us | |
57 | .nr _S \\n(.s | |
58 | .nr _V \\n(.v | |
59 | .nr _F \\n(.f | |
60 | .nr _I \\n(.i | |
61 | .ev \\$1 | |
59ed1d66 | 62 | .ps \\n(_S |
84f25a89 EA |
63 | .vs \\n(_Vu |
64 | .ft \\n(_F | |
65 | 'in \\n(_Iu | |
66 | .xl \\n($lu | |
67 | .lt \\n($lu | |
68 | .rr _S | |
69 | .rr _V | |
70 | .rr _F | |
71 | .rr _I | |
72 | .ls 1 | |
73 | 'ce 0 | |
74 | .. | |
75 | .de @D \" --- determine display type (Indent, Left, Center) | |
76 | .ds |p "\\$3 | |
77 | .nr _d \\$1 | |
78 | .ie "\\$2"C" \ | |
79 | . nr _d 1 | |
80 | .el .ie "\\$2"L" \ | |
81 | . nr _d 2 | |
82 | .el .ie "\\$2"I" \ | |
83 | . nr _d 3 | |
84 | .el .ie "\\$2"M" \ | |
85 | . nr _d 4 | |
86 | .el \ | |
87 | . ds |p "\\$2 | |
88 | .. | |
89 | .de @z \" --- end macro | |
799e5a57 | 90 | .if \n@>1 .tm >> @z, .z=\\n(.z ?a=\\n(?a |
84f25a89 EA |
91 | .if !"\\n(.z"" \ |
92 | \{\ | |
93 | . tm Line \\n(c. -- Unclosed block, footnote, or other diversion (\\n(.z) | |
94 | . di | |
95 | . ex | |
96 | .\} | |
97 | .if \\n(?a \ | |
98 | . bp \" force out final table | |
99 | .rm bp | |
799e5a57 | 100 | .rm @b\" \" don't start another page |
84f25a89 EA |
101 | .if t \ |
102 | . wh -1p @m | |
103 | .br | |
799e5a57 | 104 | .if \n@>1 .tm << @z |
84f25a89 EA |
105 | .. |
106 | .de @I \" --- initialize processor | |
107 | .rm th | |
108 | .rm ac | |
109 | .rm lo | |
110 | .rm sc | |
111 | .rm @I | |
112 | .. | |
113 | .\"\f *** STANDARD HEADERS AND FOOTERS *** | |
114 | .de he \" *** define header | |
115 | .ie !\\n(.$ \ | |
116 | \{\ | |
117 | . rm |4 | |
118 | . rm |5 | |
119 | .\} | |
120 | .el \ | |
121 | \{\ | |
122 | . ds |4 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
123 | . ds |5 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
124 | .\} | |
125 | .. | |
126 | .de eh \" *** define even header | |
127 | .ie !\\n(.$ \ | |
128 | . rm |4 | |
129 | .el \ | |
130 | . ds |4 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
131 | .. | |
132 | .de oh \" *** define odd header | |
133 | .ie !\\n(.$ \ | |
134 | . rm |5 | |
135 | .el \ | |
136 | . ds |5 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
137 | .. | |
138 | .de fo \" *** define footer | |
139 | .ie !\\n(.$ \ | |
140 | \{\ | |
141 | . rm |6 | |
142 | . rm |7 | |
143 | .\} | |
144 | .el \ | |
145 | \{\ | |
146 | . ds |6 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
147 | . ds |7 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
148 | .\} | |
149 | .. | |
150 | .de ef \" *** define even foot | |
151 | .ie !\\n(.$ \ | |
152 | . rm |6 | |
153 | .el \ | |
154 | . ds |6 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
155 | .. | |
156 | .de of \" *** define odd footer | |
157 | .ie !\\n(.$ \ | |
158 | . rm |7 | |
159 | .el \ | |
160 | . ds |7 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
161 | .. | |
162 | .de ep \" *** end page (must always be followed by a .bp) | |
163 | .if \\n(nl>0 \ | |
164 | \{\ | |
165 | . wh 0 | |
166 | . rs | |
167 | . @b | |
168 | .\} | |
169 | .. | |
170 | .\"\f *** INTERNAL HEADER AND FOOTER MACROS *** | |
171 | .de @h \" --- header | |
799e5a57 | 172 | .if \n@>1 .tm >> @h %=\\n% ?a=\\n(?a ?b=\\n(?b ?w=\\n(?w |
84f25a89 EA |
173 | .if (\\n(.i+\\n(.o)>=\\n(.l \ |
174 | . tm Line \\n(c. -- Offset + indent exceeds line length | |
175 | .if t .if (\\n(.l+\\n(.o)>7.75i \ | |
176 | . tm Line \\n(c. -- Offset + line length exceeds paper width | |
177 | .\" initialize a pile of junk | |
178 | .nr ?h \\n(?H \" transfer "next page" to "this page" | |
179 | .rr ?H | |
180 | .nr ?c \\n(?C | |
181 | .rr ?C | |
182 | .rn |4 |0 | |
183 | .rn |5 |1 | |
184 | .rn |6 |2 | |
185 | .rn |7 |3 | |
186 | .nr _w 0 \" reset max footnote width | |
9271e56c | 187 | .nr ?W 0 \" no wide floats this page (yet) |
84f25a89 EA |
188 | .nr ?I 1 |
189 | .\" begin actual header stuff | |
190 | .ev 2 | |
191 | .rs | |
192 | .if t .@m \" output cut mark | |
193 | .if \\n(hm>0 \ | |
194 | . sp |\\n(hmu \" move to header position | |
84f25a89 EA |
195 | .@t $h \" output header title |
196 | .if \\n(tm<=0 \ | |
197 | . nr tm \n(.Vu | |
198 | .sp |\\n(tmu \" move to top of text | |
199 | .ev | |
200 | .mk _k \" for columned output | |
201 | .if \\n(?n .nm 1 \" restore line numbering if n1 mode | |
202 | .nr $c 1 \" set first column | |
203 | .if \n@>4 .tm -- @h >> .ns nl=\\n(nl %=\\n% _k=\\n(_k tm=\\n(tm | |
204 | .ie \\n(?s \ | |
205 | \{\ | |
206 | . rr ?s | |
207 | . rs | |
208 | ' @b | |
209 | .\} | |
210 | .el \ | |
211 | . @n \" begin the column | |
799e5a57 | 212 | .if \n@>2 .tm << @h |
84f25a89 | 213 | .. |
8f2cf3db | 214 | .if \nv=2 \ |
5fcae4d3 EA |
215 | \{\ |
216 | . de @m \" --- output cut mark (only on C/A/T-style) | |
217 | . @O 0 | |
218 | . lt 7.5i | |
219 | . tl '\(rn''\(rn' | |
220 | . @O | |
221 | . lt | |
84f25a89 | 222 | .. |
5fcae4d3 | 223 | .\} |
84f25a89 EA |
224 | .de @n \" --- new column or page |
225 | .if \n@>3 .tm >> @n nl=\\n(nl %=\\n% ?f=\\n(?f ?o=\\n(?o | |
226 | .if \\n(bm<=0 \ | |
227 | . nr bm \\n(.Vu | |
9271e56c | 228 | .if (\\n(_w<=\\n($l)&(\\n(?W=0) \ |
84f25a89 EA |
229 | \{\ |
230 | . nr _b (\\n(ppu*\\n($ru)/2u \" compute fudge factor (must be < 1P) | |
231 | . if \\n(_bu>((\\n(bmu-\\n(fmu-(\\n(tpu*\\n($ru))/2u) \ | |
232 | . nr _b (\\n(ppu*\\n($ru)-\n(.Vu | |
233 | . nr _b +\\n(bmu | |
234 | .\} | |
235 | .nr _B \\n(_bu | |
236 | .ch @f | |
237 | .wh -\\n(_bu @f | |
601202e1 EA |
238 | .nr _b +(\\n(ppu*\\n($ru) \" add 1 paragraph v in case of sweep past |
239 | .if \n@>2 .tm @n .p=\\n(.p bm=\\n(bm _b=\\n(_b _B=\\n(_B | |
84f25a89 EA |
240 | .nr ?f 0 \" reset footnote flag |
241 | .if \\n(?o \ | |
242 | \{\ | |
243 | . (f _ \" reprocess footnotes which run off page | |
244 | . nf | |
245 | . |o | |
246 | . fi | |
247 | . )f | |
248 | . rm |o | |
249 | .\} | |
250 | .nr ?o 0 | |
251 | .if \\n(?T \ | |
252 | \{\ | |
253 | . nr _i \\n(.i | |
254 | . in \\n($iu | |
255 | . |h \" output the table header | |
256 | . in \\n(_iu | |
257 | . rr _i | |
258 | . mk #T \" for tbl commands | |
259 | . ns | |
260 | .\} | |
3778aaad | 261 | .if (\\n(?a)&((\\n($c<2):(\\n(?w=0)) \ |
84f25a89 EA |
262 | \{\ |
263 | . nr ?a 0 \" output floating keep | |
264 | . @k |t | |
3778aaad EA |
265 | . if \\n(?w \ |
266 | . mk _k \" don't overstrike wide keeps | |
267 | . nr ?w 0 | |
84f25a89 EA |
268 | .\} |
269 | .os | |
270 | .$H \" special column header macro | |
271 | .ns | |
272 | .. | |
273 | .de @f \" --- footer | |
601202e1 EA |
274 | .if \n@>1 .tm >> @f %=\\n% nl=\\n(nl ?a=\\n(?a ?b=\\n(?b ?f=\\n(?f |
275 | .if \n@>2 .nr VL \\n(.pu-\\n(nlu | |
276 | .if \n@>2 .tm @f bm=\\n(bm _B=\\n(_B _b=\\n(_b .p-nl=\\n(VL | |
84f25a89 EA |
277 | .ec |
278 | .if \\n(?T \ | |
279 | \{\ | |
280 | . nr T. 1 \" for tbl commands (to output bottom line) | |
281 | . T# 1 \" output the sides and bottom lines | |
282 | . br | |
283 | .\} | |
284 | .ev 2 | |
285 | .ce 0 | |
286 | .if \\n(?b \ | |
287 | \{\ | |
288 | . nr ?b 0 | |
799e5a57 | 289 | . @k |b\" \" output bottom of page tables |
84f25a89 EA |
290 | .\} |
291 | .if \\n(?f \ | |
292 | . @o \" output footnote if present | |
293 | .ie \\n($c<\\n($m \ | |
294 | . @c \" handle new column | |
295 | .el \ | |
296 | . @e \" new page | |
297 | .ev | |
298 | .if \n@>2 .tm << @f | |
299 | .. | |
300 | .de @o \" --- output footnote | |
301 | .nf | |
302 | .ls 1 | |
303 | .in 0 | |
601202e1 | 304 | .if \n@>2 .tm @o last printed text = \\n(nl placing @r trap at -\\n(_B |
84f25a89 EA |
305 | .wh -\\n(_Bu @r |
306 | .|f | |
307 | .fi | |
601202e1 | 308 | .if \n@>2 .tm @o triggered @r (?o) = \\n(?o |
84f25a89 | 309 | .if \\n(?o \ |
d382181b | 310 | \{\ |
84f25a89 EA |
311 | . di \" just in case triggered @r |
312 | . if \\n(dn=0 \ | |
313 | \{\ | |
314 | . rm |o | |
315 | . nr ?o 0 | |
316 | . \} | |
317 | . nr dn \\n(_D | |
318 | . rr _D | |
319 | .\} | |
320 | .rm |f | |
321 | .ch @r | |
322 | .. | |
323 | .de @c \" --- new column | |
324 | .if \n@>2 .tm >> @c %=\\n% | |
325 | .rs | |
326 | .sp |\\n(_ku | |
327 | .@O +\\n($lu+\\n($su | |
328 | .nr $c +1 | |
329 | .@n | |
330 | .. | |
331 | .de @e \" --- end page | |
332 | .if \n@>2 .tm >> @e | |
333 | .@O \\n(_ou | |
334 | .rs | |
335 | .sp |\\n(.pu-\\n(fmu-(\\n(tpu*\\n($ru) \" move to footer position | |
336 | .@t $f \" output footer title | |
337 | .nr ?h 0 | |
338 | .bp | |
339 | .. | |
340 | .de @t \" --- output header or footer title | |
341 | .if !\\n(?h \ | |
342 | \{\ | |
343 | . sz \\n(tp \" set header/footer type fonts, etc. | |
344 | . @F \\n(tf | |
345 | . lt \\n(_Lu \" make title span entire page | |
346 | . nf | |
347 | . \\$1 | |
348 | . br | |
349 | .\} | |
350 | .. | |
351 | .de $h \" $$$ print header | |
352 | .rm |z | |
353 | .if !\\n(?c \ | |
354 | \{\ | |
355 | . if e .ds |z "\\*(|0 | |
356 | . if o .ds |z "\\*(|1 | |
357 | .\} | |
358 | .if !\(ts\\*(|z\(ts\(ts \ | |
359 | ' tl \\*(|z | |
360 | .rm |z | |
361 | .. | |
362 | .de $f \" $$$ print footer | |
363 | .rm |z | |
364 | .if \\n(?c \ | |
365 | \{\ | |
366 | . if e .ds |z "\\*(|0 | |
367 | . if o .ds |z "\\*(|1 | |
368 | .\} | |
369 | .if \(ts\\*(|z\(ts\(ts \ | |
370 | \{\ | |
371 | . if e .ds |z "\\*(|2 | |
372 | . if o .ds |z "\\*(|3 | |
373 | .\} | |
374 | .if !\(ts\\*(|z\(ts\(ts \ | |
375 | ' tl \\*(|z | |
376 | .rm |z | |
377 | .. | |
378 | .de @r \" --- reprocess overflow footnotes | |
379 | .if \n@>3 .tm >> @r .z=\\n(.z ?f=\\n(?f ?a=\\n(?a ?b=\\n(?b _b=\\n(_b | |
380 | .di |o \" save overflow footnote | |
381 | .nr ?o 1 | |
382 | .nr _D \\n(dn | |
383 | .ns | |
384 | .. | |
385 | .\"\f *** COMMANDS WITH VARIANT DEFINITIONS *** | |
386 | .rn bp @b \" --- begin page | |
387 | .de bp \" *** begin new page (overrides columns) | |
388 | .nr $c \\n($m \" force new page, not new column | |
389 | .ie \\n(nl>0 \ | |
390 | . @b \\$1 | |
391 | .el \ | |
392 | \{\ | |
393 | . if \\n(.$>0 \ | |
394 | . pn \\$1 | |
395 | . if \\n(?I \ | |
396 | . @h \" 'spring' the header trap | |
397 | .\} | |
398 | .br | |
399 | .wh 0 @h \" reset header | |
400 | .. | |
401 | .rn ll xl \" *** special line length (local) | |
402 | .de ll \" *** line length (global to environments) | |
403 | .xl \\$1 | |
404 | .lt \\$1 | |
405 | .nr $l \\n(.l | |
406 | .if (\\n($m<=1):(\\n($l>\\n(_L) \ | |
407 | . nr _L \\n(.l | |
408 | .. | |
409 | .rn po @O \" --- local page offset | |
410 | .de po \" *** page offset | |
411 | .@O \\$1 | |
412 | .nr _o \\n(.o | |
413 | .. | |
414 | .\"\f *** MISCELLANEOUS ROFF COMMANDS *** | |
415 | .de hx \" *** suppress headers and footers next page | |
416 | .nr ?H 1 | |
417 | .. | |
418 | .de ix \" *** indent, no break | |
419 | 'in \\$1 | |
420 | .. | |
421 | .de bl \" *** contiguous blank lines | |
422 | .br | |
423 | .ne \\$1 | |
424 | .rs | |
425 | .sp \\$1 | |
426 | .. | |
427 | .de n1 \" *** line numbering 1 | |
428 | .nm 1 | |
429 | .xl -\w'0000'u | |
430 | .nr ?n 1 | |
431 | .. | |
432 | .de n2 \" *** line numbering 2 | |
433 | .nm \\$1 | |
434 | .ie \\n(.$ \ | |
435 | . xl -\w'0000'u | |
436 | .el \ | |
437 | . xl \\n($lu | |
438 | .. | |
439 | .de pa \" *** new page | |
440 | .bp \\$1 | |
441 | .. | |
442 | .de ro \" *** roman page numbers | |
443 | .af % i | |
444 | .. | |
445 | .de ar \" *** arabic page numbers | |
446 | .af % 1 | |
447 | .. | |
448 | .de m1 \" *** position one space | |
449 | .nr _0 \\n(hmu | |
450 | .nr hm \\$1v | |
451 | .nr tm +\\n(hmu-\\n(_0u | |
452 | .rr _0 | |
453 | .. | |
454 | .de m2 \" *** position two space | |
455 | .nr tm \\n(hmu+\\n(tpp+\\$1v | |
456 | .. | |
457 | .de m3 \" *** position three space | |
458 | .nr bm \\n(fmu+\\n(tpp+\\$1v | |
459 | .. | |
460 | .de m4 \" *** position four space | |
461 | .nr _0 \\n(fmu | |
462 | .nr fm \\$1v | |
463 | .nr bm +\\n(fmu-\\n(_0u | |
464 | .. | |
465 | .de sk \" *** leave a blank page (next page) | |
466 | .if \\n(.$>0 \ | |
467 | . tm Line \\n(c. -- I cannot skip multiple pages | |
468 | .nr ?s 1 | |
469 | .. | |
470 | .\"\f *** MISCELLANEOUS USER SUPPORT COMMANDS *** | |
471 | .de re \" *** reset tabs (TROFF defines 15 stops default) | |
472 | .ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i | |
473 | .. | |
474 | .if t .ig | |
475 | .de re \" *** reset tabs (NROFF version) | |
476 | .ta 0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i | |
477 | .. | |
478 | .de ba \" *** set base indent | |
479 | .ie \\n(.$ \ | |
480 | . nr $i \\$1n | |
481 | .el \ | |
482 | . nr $i \\n(siu*\\n($0u | |
483 | .. | |
484 | .de hl \" *** draw horizontal line | |
485 | .br | |
486 | \l'\\n(.lu-\\n(.iu' | |
487 | .sp | |
488 | .. | |
489 | .\"\f *** PARAGRAPHING *** | |
490 | .de pp \" *** paragraph | |
491 | .lp \\n(piu | |
492 | .. | |
493 | .de lp \" *** left aligned paragraph | |
494 | .@p | |
495 | .if \\n(.$ \ | |
496 | . ti +\\$1 | |
497 | .nr $p 0 1 | |
498 | .. | |
499 | .de ip \" *** indented paragraph w/ optional tag | |
500 | .if (\\n(ii>0)&(\\n(ii<1n) \ | |
501 | . nr ii \\n(iin | |
502 | .nr _0 \\n(ii | |
503 | .if \\n(.$>1 \ | |
504 | . nr _0 \\$2n | |
505 | .@p \\n(_0u | |
506 | .if \\w"\\$1" \ | |
507 | \{\ | |
508 | . ti -\\n(_0u | |
509 | . ie \\w"\\$1">=\\n(_0 \ | |
510 | \{\ | |
511 | \&\\$1 | |
512 | . br | |
513 | . \} | |
514 | . el \&\\$1\h'|\\n(_0u'\c | |
515 | .\} | |
516 | .rr _0 | |
517 | .. | |
518 | .de np \" *** numbered paragraph | |
da445562 EA |
519 | .if \\n($p<0 \ |
520 | . nr $p 0 \" reset number after .bu | |
521 | .nr $p +1 \" increment paragraph number | |
522 | .@p \w'\0(000)\0'u | |
523 | .ti -\w'\0(000)\0'u | |
524 | \0(\\n($p)\h'|\w'\0(000)\0'u'\c | |
53122a0b EA |
525 | .. |
526 | .de bu \" *** bulleted paragraph | |
da445562 EA |
527 | .br |
528 | .if \\n($p<0 \ | |
529 | . ns \" don't space between .bu paragraphs | |
530 | .nr $p 0-1 \" mark "bulleted paragraph" mode | |
531 | .@p \w'\0\(bu\0'u | |
532 | .ti -\w'\0\(bu\0'u | |
533 | \0\(bu\0\c | |
84f25a89 EA |
534 | .. |
535 | .de @p \" --- initialize for paragraph | |
536 | .@I \" initialize macro processor | |
537 | .if "\\n(.z"|e" .tm Line \\n(c. -- Unmatched continued equation | |
538 | .in \\n($iu+\\n(pou | |
539 | .if \\n(.$ \ | |
540 | . in +\\$1n | |
541 | .ce 0 | |
542 | .fi | |
543 | .@F \\n(pf | |
59ed1d66 | 544 | .sz \\n(pp |
84f25a89 EA |
545 | .sp \\n(psu |
546 | .ne \\n(.Lv+\\n(.Vu | |
547 | .ns | |
548 | .. | |
549 | .\"\f *** SECTION HEADINGS *** | |
550 | .de sh \" &&& section heading | |
551 | .rn sh @T | |
552 | .so \\*(||/sh.me | |
553 | .sh "\\$1" "\\$2" \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 | |
554 | .rm @T | |
555 | .. | |
556 | .de $p \" $$$ print section heading | |
557 | .if (\\n(si>0)&(\\n(.$>2) \ | |
558 | . nr $i \\$3*\\n(si | |
559 | .in \\n($iu | |
560 | .ie !"\\$1\\$2"" \ | |
561 | \{\ | |
562 | . sp \\n(ssu \" one of them is non-null | |
563 | . ne \\n(.Lv+\\n(.Vu+\\n(psu+(\\n(spu*\\n($ru*\\n(.Lu) | |
564 | . ie \\n(.$>2 \ | |
565 | . ti -(\\n(siu-\\n(sou) | |
566 | . el \ | |
567 | . ti +\\n(sou | |
568 | . @F \\n(sf | |
59ed1d66 | 569 | . sz \\n(sp |
84f25a89 EA |
570 | . if \\$3>0 \ |
571 | . $\\$3 | |
572 | . if \w"\\$2">0 \\$2. | |
284cbcb7 | 573 | . if \w"\\$1">0 \\$1\f1\ \ \& |
84f25a89 EA |
574 | .\} |
575 | .el \ | |
576 | . sp \\n(psu | |
577 | .@F \\n(pf | |
59ed1d66 | 578 | .sz \\n(pp |
84f25a89 EA |
579 | .. |
580 | .de uh \" *** unnumbered section heading | |
581 | .rn uh @T | |
582 | .so \\*(||/sh.me | |
583 | .uh "\\$1" | |
584 | .rm @T | |
585 | .. | |
586 | .\"\f *** COLUMNNED OUTPUT *** | |
587 | .de 2c \" *** double columned output | |
588 | .br | |
589 | .if \\n($m>1 \ | |
590 | . 1c \" revert to 1c if already 2c | |
591 | .nr $c 1 | |
592 | .nr $m 2 | |
593 | .if \\n(.$>1 \ | |
594 | . nr $m \\$2 | |
595 | .if \\n(.$>0 \ | |
596 | . nr $s \\$1n \" param 1: column seperation | |
597 | .nr $l (\\n(.l-((\\n($m-1)*\\n($s))/\\n($m | |
598 | .xl \\n($lu | |
599 | .mk _k | |
600 | .ns | |
601 | .. | |
602 | .de 1c \" *** single columned output | |
603 | .br | |
604 | .nr $c 1 | |
605 | .nr $m 1 | |
606 | .ll \\n(_Lu \" return to normal output | |
607 | .sp |\\n(.hu | |
608 | .@O \\n(_ou | |
609 | .. | |
610 | .de bc \" *** begin column | |
611 | .sp 24i | |
612 | .. | |
613 | .\"\f *** FLOATING TABLES AND NONFLOATING BLOCKS *** | |
614 | .de (z \" &&& begin floating keep | |
517824c0 | 615 | .rn (z @V |
84f25a89 EA |
616 | .so \\*(||/float.me |
617 | .(z \\$1 \\$2 | |
517824c0 | 618 | .rm @V |
84f25a89 EA |
619 | .. |
620 | .de )z \" &&& end floating keep | |
621 | .tm Line \\n(c. -- unmatched .)z | |
622 | .. | |
623 | .de (t \" XXX temp ref to (z | |
624 | .(z \\$1 \\$2 | |
625 | .. | |
626 | .de )t \" XXX temp ref to )t | |
627 | .)z \\$1 \\$2 | |
628 | .. | |
629 | .de (b \" *** begin block | |
630 | .br | |
631 | .@D 3 \\$1 \\$2 | |
632 | .sp \\n(bsu | |
633 | .@( | |
634 | .. | |
635 | .de )b \" *** end block | |
636 | .br | |
637 | .@) | |
638 | .if (\\n(bt=0):(\\n(.t<\\n(bt) \ | |
639 | . ne \\n(dnu \" make it all on one page | |
640 | .ls 1 | |
641 | .nf | |
642 | .|k | |
643 | .ec | |
644 | .fi | |
645 | .in 0 | |
646 | .xl \\n($lu | |
647 | .ev | |
648 | .rm |k | |
649 | .sp \\n(bsu+\\n(.Lv-1v | |
650 | .. | |
651 | .de @( \" --- begin keep | |
652 | .if !"\\n(.z"" .tm Line \\n(c. -- Illegal nested keep \\n(.z | |
653 | .@M | |
654 | .di |k | |
655 | \!'rs | |
656 | .. | |
657 | .de @M \" --- set modes for display | |
658 | .nr ?k 1 | |
659 | .@C 1 | |
660 | .@F \\n(df | |
661 | .vs \\n(.su*\\n($Ru | |
662 | .nf | |
663 | .if "\\*(|p"F" \ | |
664 | . fi \" set fill mode if "F" parameter | |
665 | .if \\n(_d=4 \ | |
666 | . in 0 | |
667 | .if \\n(_d=3 \ | |
668 | \{\ | |
669 | . in +\\n(biu | |
670 | . xl -\\n(biu | |
671 | .\} | |
672 | .if \\n(_d=1 \ | |
673 | . ce 10000 | |
674 | .. | |
675 | .de @) \" --- end keep | |
676 | .br | |
677 | .if !"\\n(.z"|k" .tm Line \\n(c. -- Close of a keep which has never been opened | |
678 | .nr ?k 0 | |
679 | .di | |
680 | .in 0 | |
681 | .ce 0 | |
682 | .. | |
683 | .de (c \" *** begin block centered text | |
684 | .if "\\n(.z"|c" .tm Line \\n(c. -- Nested .(c requests | |
685 | .di |c | |
686 | .. | |
687 | .de )c \" *** end block centered text | |
688 | .if !"\\n(.z"|c" .tm Line \\n(c. -- Unmatched .)c | |
f0646cae | 689 | .br \" force out final line |
84f25a89 EA |
690 | .di |
691 | .if \n@>4 .tm >> .)c .l=\\n(.l .i=\\n(.i $i=\\n($i dl=\\n(dl | |
692 | .ev 1 | |
693 | .ls 1 | |
694 | .in (\\n(.lu-\\n(.iu-\\n(dlu)/2u | |
695 | .if \n@>4 .tm -- .)c << .in .l=\\n(.l .i=\\n(.i dl=\\n(dl | |
696 | .nf | |
697 | .|c | |
698 | .ec | |
699 | .in | |
700 | .ls | |
701 | .ev | |
702 | .rm |c | |
703 | .. | |
704 | .\"\f *** BLOCK QUOTES (OR WHATEVER) AND LISTS *** | |
705 | .de (q \" *** begin block quote | |
706 | .br | |
707 | .@C 1 | |
708 | .fi | |
709 | .sp \\n(qsu | |
710 | .in +\\n(qiu | |
711 | .xl -\\n(qiu | |
712 | .sz \\n(qp | |
713 | .. | |
714 | .de )q \" *** end block quote | |
715 | .br | |
716 | .ev | |
717 | .sp \\n(qsu+\\n(.Lv-1v | |
718 | .nr ?k 0 | |
719 | .. | |
720 | .de (l \" *** begin list | |
721 | .br | |
722 | .sp \\n(bsu | |
723 | .@D 3 \\$1 \\$2 | |
724 | .@M | |
725 | .. | |
726 | .de )l \" *** end list | |
727 | .br | |
728 | .ev | |
729 | .sp \\n(bsu+\\n(.Lv-1v | |
730 | .nr ?k 0 | |
731 | .. | |
732 | .\"\f *** PREPROCESSOR SUPPORT *** | |
b4c5d7ad EA |
733 | .\" |
734 | .\" EQN | |
735 | .\" | |
84f25a89 EA |
736 | .de EQ \" &&& begin equation |
737 | .rn EQ @T | |
738 | .so \\*(||/eqn.me | |
739 | .EQ \\$1 \\$2 | |
740 | .rm @T | |
741 | .. | |
b4c5d7ad EA |
742 | .\" |
743 | .\" TBL | |
744 | .\" | |
84f25a89 | 745 | .de TS \" &&& begin table |
517824c0 | 746 | .rn TS @W |
84f25a89 EA |
747 | .so \\*(||/tbl.me |
748 | .TS \\$1 \\$2 | |
517824c0 | 749 | .rm @W |
84f25a89 | 750 | .. |
b4c5d7ad EA |
751 | .\" |
752 | .\" REFER | |
753 | .\" | |
a61ea4a3 EA |
754 | .de ]- \" &&& initialize reference |
755 | .rn ]- @] | |
756 | .so \\*(||/refer.me | |
757 | .]- | |
758 | .rm @] | |
759 | .. | |
1169d9f1 EA |
760 | .de ]< \" &&& initialize reference |
761 | .rn ]< @] | |
762 | .so \\*(||/refer.me | |
763 | .]< | |
764 | .rm @] | |
765 | .. | |
a61ea4a3 EA |
766 | .if n .ds [. " [ |
767 | .if t .ds [. \s-2\v'-.4m'\f1 | |
768 | .if n .ds .] ] | |
769 | .if t .ds .] \v'.4m'\s+2\fP | |
770 | .if n .ds <. " | |
771 | .if t .ds <. . | |
772 | .if n .ds >. . | |
773 | .if t .ds >. " | |
b4c5d7ad EA |
774 | .\" |
775 | .\" IDEAL | |
776 | .\" | |
777 | .de IS \" *** start ideal picture | |
778 | .nr g7 \\n(.u | |
779 | .ls 1 | |
780 | .. | |
781 | .de IF | |
782 | .if \\n(g7 .fi | |
783 | .ls | |
784 | .. | |
785 | .de IE \" *** end ideal picture | |
786 | .if \\n(g7 .fi | |
787 | .ls | |
788 | .. | |
789 | .\" | |
790 | .\" PIC | |
791 | .\" | |
f0475b37 | 792 | .de PS \" *** start picture: $1=height, $2=width in units or inches |
b4c5d7ad EA |
793 | .if t \ |
794 | . sp 0.3 | |
f0475b37 MK |
795 | .nr g7 \\$2 |
796 | .in (\\n(.lu-\\n(g7u)/2u | |
b4c5d7ad EA |
797 | .ne \\$1u |
798 | .nr g7 \\n(.u | |
799 | .ls 1 | |
800 | .. | |
801 | .de PE \" *** end picture | |
802 | .ls | |
803 | .in | |
804 | .if \\n(g7 .fi | |
805 | .if t .sp .6 | |
806 | .. | |
807 | .\" | |
808 | .\" GREMLIN | |
809 | .\" | |
810 | .de GS \" *** start gremlin picture | |
811 | .nr g7 (\\n(.lu-\\n(g1u)/2u | |
812 | .if "\\$1"L" .nr g7 \\n(.iu | |
813 | .if "\\$1"R" .nr g7 \\n(.lu-\\n(g1u | |
814 | .in \\n(g7u | |
815 | .nr g7 \\n(.u | |
816 | .ls 1 | |
817 | .nf | |
818 | .ne \\n(g2u | |
819 | .. | |
820 | .de GE \" *** end gremlin picture | |
821 | .GF | |
822 | .if t .sp .6 | |
823 | .. | |
824 | .de GF \" *** finish gremlin picture; stay at top | |
825 | .ls | |
826 | .in | |
827 | .if \\n(g7 .fi | |
828 | .. | |
84f25a89 EA |
829 | .\"\f *** FONT AIDS *** |
830 | .de sz \" *** set point size and vertical spacing | |
831 | .ps \\$1 | |
832 | .vs \\n(.su*\\n($ru \" default vs at pointsize + 20% | |
833 | .bd S B \\n(.su/3u | |
834 | .. | |
835 | .de r \" *** enter roman font | |
836 | .nr _F \\n(.f | |
837 | .ul 0 | |
838 | .ft 1 | |
839 | .if \\n(.$ \&\\$1\f\\n(_F\\$2 | |
840 | .rr _F | |
841 | .. | |
842 | .de i \" *** enter italic | |
843 | .nr _F \\n(.f | |
844 | .ul 0 | |
845 | .ft 2 | |
846 | .if \\n(.$ \&\\$1\f\\n(_F\\$2 | |
847 | .rr _F | |
848 | .. | |
849 | .de b \" *** enter boldface (underline in NROFF) | |
850 | .nr _F \\n(.f | |
851 | .ul 0 | |
7729eef3 | 852 | .ft \\n($b |
84f25a89 | 853 | .if \\n(.$ \&\\$1\f\\n(_F\\$2 |
84f25a89 EA |
854 | .rr _F |
855 | .. | |
856 | .de rb \" *** enter real boldface (not underlined in NROFF) | |
857 | .nr _F \\n(.f | |
858 | .ul 0 | |
859 | .ft 3 | |
860 | .if \\n(.$ \&\\$1\f\\n(_F\\$2 | |
861 | .rr _F | |
862 | .. | |
863 | .de u \" *** enter underlined word | |
864 | \&\\$1\l'|0\(ul'\\$2 | |
865 | .. | |
866 | .de q \" *** enter quoted word | |
867 | \&\\*(lq\\$1\\*(rq\\$2 | |
868 | .. | |
869 | .de bi \" *** enter word in bold italics | |
870 | .ft 2 | |
b4c5d7ad | 871 | .ie t \&\k~\\$1\h'|\\n~u+(\\w' 'u/4u)'\\$1\fP\\$2 |
84f25a89 EA |
872 | .el \&\\$1\fP\\$2 |
873 | .. | |
874 | .de bx \" *** enter boxed word | |
875 | .ie \\n($T \&\f2\\$1\fP\\$2 | |
876 | .el \k~\(br\|\\$1\|\(br\l'|\\n~u\(rn'\l'|\\n~u\(ul'\^\\$2 | |
877 | .. | |
53122a0b EA |
878 | .de sm \" *** print in smaller font |
879 | \s-1\\$1\\s0\\$2 | |
880 | .. | |
84f25a89 EA |
881 | .de @F \" --- change font (8 -> underlined, 0 -> no change) |
882 | .nr ~ \\$1 | |
883 | .if \\n~>0 \ | |
884 | \{\ | |
885 | . ul 0 | |
964b9ef7 | 886 | . if \\n~=8 \ |
7729eef3 EA |
887 | . nr ~ \\n($b |
888 | . ft \\n~ | |
84f25a89 EA |
889 | .\} |
890 | .rr ~ | |
891 | .. | |
892 | .\"\f *** FOOTNOTING *** | |
893 | .de (f \" &&& begin footnote | |
517824c0 | 894 | .rn (f @U |
84f25a89 EA |
895 | .so \\*(||/footnote.me |
896 | .(f \\$1 \\$2 | |
517824c0 | 897 | .rm @U |
84f25a89 EA |
898 | .. |
899 | .de )f \" &&& end footnote | |
900 | .tm Line \\n(c. -- unmatched .)f | |
901 | .. | |
902 | .de $s \" $$$ footnote separator | |
903 | \l'2i' | |
904 | .if n \ | |
905 | . sp 0.3 | |
906 | .. | |
907 | .\"\f *** DELAYED TEXT *** | |
908 | .de (d \" &&& begin delayed text | |
517824c0 | 909 | .rn (d @U |
84f25a89 EA |
910 | .so \\*(||/deltext.me |
911 | .(d \\$1 \\$2 | |
517824c0 | 912 | .rm @U |
84f25a89 EA |
913 | .. |
914 | .de )d \" &&& end delayed text | |
915 | .tm Line \\n(c. -- unmatched .)d | |
916 | .. | |
917 | .\"\f *** INDEXES (TABLE OF CONTENTS) *** | |
918 | .de (x \" &&& begin index | |
517824c0 | 919 | .rn (x @U |
84f25a89 EA |
920 | .so \\*(||/index.me |
921 | .(x \\$1 \\$2 | |
517824c0 | 922 | .rm @U |
84f25a89 EA |
923 | .. |
924 | .de )x \" &&& end index entry | |
925 | .tm Line \\n(c. -- unmatched .)x | |
926 | .. | |
927 | .\"\f *** STUFF FOR "STANDARD" PAPERS *** | |
928 | .de th \" *** set "thesis" mode | |
929 | .so \\*(||/thesis.me | |
930 | .rm th | |
931 | .. | |
932 | .de +c \" *** begin chapter | |
933 | .ep \" force out footnotes | |
934 | .if \\n(?o:\\n(?a \ | |
935 | \{\ | |
936 | . bp \" force out a table or more footnote | |
937 | . rs | |
938 | . ep | |
939 | .\} | |
940 | .nr ?C 1 | |
941 | .nr $f 1 1 | |
942 | .ds * \\*[1\\*]\k* | |
943 | .if \\n(?R \ | |
944 | . pn 1 | |
945 | .bp | |
946 | .in \\n($iu \" reset the indent | |
947 | .rs | |
948 | .ie \\n(.$ \ | |
949 | . $c "\\$1" | |
950 | .el \ | |
951 | . sp 3 | |
952 | .. | |
953 | .de ++ \" *** declare chapter type | |
954 | .nr _0 0 | |
955 | .if "\\$1"C" \ | |
956 | . nr _0 1 \" chapter | |
957 | .if "\\$1"RC" \ | |
958 | . nr _0 11 \" renumbered chapter | |
959 | .if "\\$1"A" \ | |
960 | . nr _0 2 \" appendix | |
961 | .if "\\$1"RA" \ | |
962 | . nr _0 12 \" renumbered appendix | |
963 | .if "\\$1"P" \ | |
964 | . nr _0 3 \" preliminary material | |
965 | .if "\\$1"B" \ | |
966 | . nr _0 4 \" bibliographic material | |
967 | .if "\\$1"AB" \ | |
968 | . nr _0 5 \" abstract | |
969 | .if \\n(_0=0 \ | |
970 | . tm Line \\n(c. -- Bad mode to .++ | |
971 | .nr ?R 0 | |
972 | .if \\n(_0>10 \ | |
973 | .\{ | |
974 | . nr ?R 1 | |
975 | . nr _0 -10 | |
976 | .\} | |
977 | .nr ch 0 1 | |
978 | .if (\\n(_0=3):(\\n(_0=5) \ | |
979 | . pn 1 \" must do before .ep | |
980 | .ep \" end page for correct page number types | |
981 | .if \\n(_0=1 \ | |
982 | \{\ | |
983 | . af ch 1 | |
984 | . af % 1 | |
985 | .\} | |
986 | .if \\n(_0=2 \ | |
987 | \{\ | |
988 | . af ch A | |
989 | . af % 1 | |
990 | .\} | |
991 | .if \\n(_0=3 \ | |
992 | . af % i | |
993 | .if \\n(_0=4 \ | |
994 | . af % 1 | |
995 | .if \\n(_0=5 \ | |
996 | . af % 1 | |
997 | .if \\n(.$>1 \ | |
998 | . he \\$2 | |
999 | .if !\\n(_0=\\n(_M .if \\n(_M=3 \ | |
1000 | . pn 1 | |
1001 | .nr _M \\n(_0 | |
1002 | .rr _0 | |
1003 | .. | |
1004 | .de $c \" $$$ print chapter title | |
1005 | .sz 12 | |
1006 | .ft B | |
1007 | .ce 1000 | |
1008 | .if \\n(_M<3 \ | |
1009 | . nr ch +1 | |
1010 | .ie \\n(_M=1 CHAPTER\ \ \\n(ch | |
1011 | .el .if \\n(_M=2 APPENDIX\ \ \\n(ch | |
1012 | .if \w"\\$1" .sp 3-\\n(.L | |
1013 | .if \w"\\$1" \\$1 | |
1014 | .if (\\n(_M<3):(\w"\\$1") \ | |
1015 | . sp 4-\\n(.L | |
1016 | .ce 0 | |
1017 | .ft | |
1018 | .sz | |
1019 | .ie \\n(_M=1 \ | |
1020 | . $C Chapter \\n(ch "\\$1" | |
1021 | .el .if \\n(_M=2 \ | |
1022 | . $C Appendix \\n(ch "\\$1" | |
1023 | .. | |
1024 | .de tp \" *** title page | |
1025 | .hx | |
1026 | .bp | |
1027 | .br | |
1028 | .rs | |
1029 | .pn \\n% | |
1030 | .. | |
1031 | .de ac \" *** setup for ACM photo-ready paper | |
1032 | .rn ac @T | |
1033 | .so \\*(||/acm.me | |
1034 | .ac "\\$1" "\\$2" | |
1035 | .rm @T | |
1036 | .. | |
1037 | .de lo \" *** pull in the set of local macros | |
1038 | .\" all these macros should be named "*X", where X is any letter | |
1039 | .so \\*(||/local.me | |
1040 | .rm lo | |
1041 | .. | |
b4c5d7ad EA |
1042 | .de lh \" *** letterhead |
1043 | .so \\*(||/letterhead.me | |
1044 | .. | |
84f25a89 EA |
1045 | .\"\f *** DATES *** |
1046 | .if \n(mo=1 .ds mo January | |
1047 | .if \n(mo=2 .ds mo February | |
1048 | .if \n(mo=3 .ds mo March | |
1049 | .if \n(mo=4 .ds mo April | |
1050 | .if \n(mo=5 .ds mo May | |
1051 | .if \n(mo=6 .ds mo June | |
1052 | .if \n(mo=7 .ds mo July | |
1053 | .if \n(mo=8 .ds mo August | |
1054 | .if \n(mo=9 .ds mo September | |
1055 | .if \n(mo=10 .ds mo October | |
1056 | .if \n(mo=11 .ds mo November | |
1057 | .if \n(mo=12 .ds mo December | |
1058 | .if \n(dw=1 .ds dw Sunday | |
1059 | .if \n(dw=2 .ds dw Monday | |
1060 | .if \n(dw=3 .ds dw Tuesday | |
1061 | .if \n(dw=4 .ds dw Wednesday | |
1062 | .if \n(dw=5 .ds dw Thursday | |
1063 | .if \n(dw=6 .ds dw Friday | |
1064 | .if \n(dw=7 .ds dw Saturday | |
1065 | .ds td \*(mo \n(dy, 19\n(yr | |
1066 | .\"\f *** PARAMETRIC INITIALIZATIONS *** | |
1067 | .if (1m<0.1i)&(\nx!=0) \ | |
1068 | . vs 9p \" for 12-pitch DTC terminals | |
1069 | .rr x | |
1070 | .nr $r \n(.v/\n(.s \" ratio of vs to ps for .sz request | |
1071 | .nr $R \n($r \" ratio for displays & footnotes | |
1072 | .nr hm 4v \" header margin | |
1073 | .nr tm 7v \" top margin | |
1074 | .nr bm 6v \" bottom margin | |
1075 | .nr fm 3v \" footer margin | |
1076 | .nr tf 3 \" title font: (real) Times Bold | |
1077 | .nr tp 10 \" title point size | |
1078 | .hy 14 | |
7e6018e6 | 1079 | .nr bi 4m \" indent for blocks |
84f25a89 EA |
1080 | .nr pi 5n \" indent for paragraphs |
1081 | .nr pf 1 \" normal text font | |
1082 | .nr pp 10 \" normal text point size | |
1083 | .nr qi 4n \" indent for quotes | |
1084 | .nr qp -1 \" down one point | |
1085 | .nr ii 5n \" indent for .ip's and .np's | |
1086 | .nr $m 1 \" max number of columns | |
1087 | .nr $s 4n \" column separation | |
1088 | .ds || /usr/lib/me | |
1089 | .if \n@>0 .ds || . | |
1090 | .bd S B 3 | |
1091 | .\"\f *** OTHER INITIALIZATION *** | |
1092 | .ds [ \u\x'-0.25v' | |
1093 | .ds ] \d | |
1094 | .ds < \d\x'0.25v' | |
1095 | .ds > \u | |
1096 | .ds - -- | |
1097 | .if t \ | |
1098 | \{\ | |
1099 | . ds [ \v'-0.4m'\x'-0.2m'\s-3 | |
1100 | . ds ] \s0\v'0.4m' | |
1101 | . ds < \v'0.4m'\x'0.2m'\s-3 | |
1102 | . ds > \s0\v'-0.4m' | |
7e6018e6 | 1103 | . ds - \(em |
6c97ff5a EA |
1104 | . nr fi 0.3i |
1105 | .\} | |
1106 | .if n \ | |
1107 | \{\ | |
1108 | . nr fi 3n | |
84f25a89 EA |
1109 | .\} |
1110 | .nr _o \n(.o | |
1111 | .if n .po 1i | |
1112 | .if \n(.V=1v \ | |
1113 | . nr $T 2 | |
7063ebd2 | 1114 | .if n .if \n(.T=0 \ |
84f25a89 | 1115 | . nr $T 1 |
8f2cf3db | 1116 | .if \nv=2 \ |
84f25a89 EA |
1117 | \{\ |
1118 | . nr $T 0 | |
8f2cf3db | 1119 | . po -0.5i \" make ugly line on LHS on C/A/T typesetters |
84f25a89 EA |
1120 | .\} |
1121 | .if \n($T \ | |
1122 | \{\ | |
1123 | . if \n($T=1 \ | |
1124 | . po 0 | |
1125 | . ds [ [ | |
1126 | . ds ] ] | |
1127 | . ds < < | |
1128 | . ds > > | |
1129 | .\} | |
7729eef3 EA |
1130 | .nr $b \nb \" figure the real font 8 font |
1131 | .rr b | |
1132 | .if \n($b=0 \ | |
1133 | \{\ | |
1134 | . if n .nr $b 2 \" italic | |
1135 | . if t .nr $b 3 \" bold | |
1136 | .\} | |
84f25a89 EA |
1137 | .nr ps 0.5v \" paragraph pre/post spacing |
1138 | .if \n($T \ | |
1139 | . nr ps 1v | |
1140 | .if t .nr ps 0.35v | |
1141 | .nr bs \n(ps \" block pre/post spacing | |
1142 | .nr qs \n(ps \" quote pre/post spacing | |
1143 | .nr zs 1v \" float-block pre/postspacing | |
1144 | .nr xs 0.2v \" index prespacing | |
1145 | .nr fs 0.2v \" footnote prespacing | |
1146 | .if \n($T \ | |
1147 | . nr fs 0 | |
1148 | .if n .nr es 1v \" equation pre/postspacing | |
1149 | .if t .nr es 0.5v | |
1150 | .wh 0 @h \" set header | |
1151 | .nr $l \n(.lu \" line length | |
1152 | .nr _L \n(.lu \" line length of page | |
1153 | .nr $c 1 \" current column number | |
1154 | .nr $f 1 1 \" footnote number | |
1155 | .ds * \*[1\*]\k*\" \" footnote "name" | |
1156 | .nr $d 1 1 \" delayed text number | |
1157 | .ds # [1]\k#\" \" delayed text "name" | |
1158 | .nr _M 1 \" chapter mode is chapter | |
1159 | .ds lq \&"\" \" left quote | |
1160 | .ds rq \&"\" \" right quote | |
1161 | .if t \ | |
1162 | . ds lq `` | |
1163 | .if t \ | |
1164 | . ds rq '' | |
1165 | .em @z | |
1166 | .\" *** FOREIGN LETTERS AND SPECIAL CHARACTERS *** | |
1167 | .de sc \" *** define special characters | |
1168 | .so \\*(||/chars.me | |
1169 | .rm sc | |
1170 | .. | |
1171 | .ll 6.0i | |
1172 | .lt 6.0i |