1 .\" @
(#)$Id: tmac.n,v 1.4 1989/03/15 Matt Bishop
2 .\" The News
macro package
4 .\" This is the
macro package that is used to format news documents
. It
5 .\" was written because many sites
do not have one of the
-mm or
-ms pack
-
6 .\" ages that the documents use
. This is NOT compatible with EITHER
, but
7 .\" (I hope
) will become the standard
for all news
documents (man pages
8 .\" excepted
, since everyone seems to have
-man
.)
10 .\" This package was written
using only the
"NROFF/TROFF Users' Guide",
11 .\" and therefore
if you can run NROFF
/TROFF
, you can legitimately use
12 .\" this package
. However
, because NROFF
/TROFF are proprietary programs
,
13 .\" I cannot place
this package
in the
public domain
. This should not
14 .\" matter
, because
if you legitimately have NROFF
/TROFF
, you have the
15 .\" documentation
; if not
, you can
't run off the documentation anyway.
17 .\" This package may be circulated freely with the news documentation; it
18 .\" may not be sold, but is to be distributed with the unformatted news
19 .\" documents. However, the name of the author and the place at which it
20 .\" was written (in the author's own time
, of course
) are not to be
21 .\" removed from the package regardless of how it is modified or altered
.
22 .\" Further
, please
do not distribute
this package
if you make any changes
23 .\" because I don
't want to get bug reports of macros I haven't written
;
24 .\" if you have a goodie you want me to add
, send it to me
and we
'll talk.
25 .\" (I really do like feedback!) I'd really appreciate your cooperation
.
27 .\" Author
: Matt Bishop
28 .\" Research Institute
for Advanced Computer Science
30 .\" NASA Ames Research Center
31 .\" Moffett Field
, CA
94035
33 .\" version
1.0 September
28, 1985 mab@riacs
.arpa
35 .\" version
1.1 October
25, 1985 mab@riacs
.arpa
36 .\" fixed an incredibly obscure footnote
bug (that occurred twice
in
37 .\" the news documentation
!) which put footnoted words on one page
38 .\" and the footnote on the next
if the word was
in the next
-to
-last
39 .\" or last line
; commented it
, and generally cleaned up
40 .\" Version
1.2 October
27, 1985 mab@riacs
.arpa
41 .\" Added a few more comments
and a check to keep footnotes lined up
42 .\" with the bottom margin
.
43 .\" Version
1.3 February
12, 1986 mab@riacs
.arpa
44 .\" Added an error check to
catch unmatched ef
's and ed's
45 .\" Version
1.4 December
29, 1986 mab@riacs
.edu
46 .\" Changed footnote
for ux
, pd
, and vx macros
and added a
string
47 .\" for rg ("Registered Trademark")
48 .\" Version
1.5 January
2, 1989 Matt
.Bishop@dartmouth
.edu
49 .\" Minor modifications
for nroff compatibility
50 .\" Version
1.6 March
15, 1989 Matt
.Bishop@dartmouth
.edu
51 .\" ..!bear
.dartmouth
.edu
!bishop
52 .\" Fixed a bug
in footnote
handling (again
, sigh
...) This one
53 .\" occurred
when the the
"fo" trap position was reset just beneath
54 .\" the current line
; the footnote overflow trap would kick
in and
59 .\" these preserve
and restore various things
60 .\" they are used to shorten other macros
61 .de yf
\" restore fonts
62 .ft
\\n(f2
\" previous font
63 .ft
\\n(f1
\" current font
65 .de yi
\" restore indents
66 'in \\n(i2u \" previous indent
67 'in \\n(i1u
\" current indent
69 .de ys
\" restore point sizes
70 .ps
\\n(s2
\" previous point size
71 .ps
\\n(s1
\" current point size
73 .de yv
\" restore vertical spacings
74 .vs
\\n(v2u
\" previous vertical spacing
75 .vs
\\n(v1u
\" current vertical spacing
77 .de ya
\" restore everything
79 .yi
\" restore indents
80 .ys
\" restore point sizes
81 .yv
\" restore vertical spacing
83 .de zf
\" preserve fonts
84 .nr f1
\\n(.f
\" current font
85 .ft
\" switch to previous font
86 .nr f2
\\n(.f
\" previous font
87 .ft
\" back to current font
89 .de zi
\" preserve indents
90 .nr i1
\\n(.iu
\" current indent
91 'in \" switch to previous indent
92 .nr i2 \\n(.iu \" previous indent
93 'in \" back to current indent
95 .de zs
\" preserve point sizes
96 .nr s1
\\n(.su
\" current point size
97 .ps
\" switch to previous point size
98 .nr s2
\\n(.su
\" previous point size
99 .ps
\" back to current point size
101 .de zv
\" preserve vertical spacings
102 .nr v1
\\n(.vu
\" current vertical spacing
103 .vs
\" switch to previous vertical spacing
104 .nr v2
\\n(.vu
\" previous vertical spacing
105 .vs
\" back to current vertical spacing
107 .de za
\" save everything
110 .zs
\" save point sizes
111 .zv
\" save vertical spacings
114 .\" these actually print the header
and footer titles
115 .\" they are defined separately from the
"hd" and "fo" macros
116 .\" to make user redefinition easy
117 .de pt
\" print header title
118 . \" omit header on first page
120 ' sp |\\$1u \" move to proper position
121 . ft 1 \" change to default font
122 . ps \\n(ps \" change to default point size
123 . vs \\n(vs \" change to default spacing
124 . tl '\\*(h0
'\\*(h1'\\*(h2
' \" center title
125 . vs \" restore current vertical spacing
126 . ps \" restore current point size
127 . ft \" restore current font
130 .de pf \" print footer title
131 .ft 1 \" change to default font
132 .ps \\n(ps \" change to default point size
133 .vs \\n(vs \" change to default spacing
134 .ie \\n%=1 .tl '\\*(h0
'\\*(h1'\\*(h2
' \" on first page, print the header here
135 .el .tl '\\*(f0
'\\*(f1'\\*(f2
' \" on other pages, print the footer
136 .vs \" restore current vertical spacing
137 .ps \" restore current point size
138 .ft \" restore current font
141 .\" these are the top of page (header) and bottom of page (footer) macros
142 .\" they don't actually print anything
, just call the right macros
143 .de hd
\" header
-- do top of page processing
144 .if t
.if \\n(cm
.tl
'\(rn''' \" drop cut mark
if needed
145 .pt
\\n(ttu
\" print header
146 .nr fc
0 1 \" init footnote count
147 .nr fs
\\n(.pu
-\\n(bmu
-1u \" if any footnotes
, start print here
148 .nr fp
0-\\n(bmu
\" reset current footer place
149 .ch fo
-\\n(bmu
\" reset footer trap
150 .if \\n(dn
.fz
\" put leftover footnotes st bottom
151 .ya
\" restore font
, etc
.
152 'sp |\\n(tmu \" move to top of body
153 .ns \" don't allow any more space
155 .de fo
\" footer
-- do bottom of page processing
156 .za
\" save font
, etc
.
157 .rs
\" you want motions here
158 .nr dn
0 \" clobber diversion size register
159 .if \\n(fc
.fd
\" now print the footnotes
, if any
160 'bp \" force out page
163 .\" these are the footnote macros
164 .\" here's an overview
:
165 .\" Footnotes are processed
in environment
#1, which is initialized
166 .\" at the bottom of
this package
. When
"fn" is called
, nroff
/troff
167 .\" switches to
this environment
. The body of the footnote is saved
168 .\" in the diversion
"tf" (for "temporary footnote"), so you will
169 .\" NEVER spring a trap during the first reading of a footnote
. When
170 .\" "ef" ("end footnote") is called
, the diversion is closed
. If
171 .\" this is the first footnote on the
page (ie
, the number register
172 .\" "fc" is
1), and the footnote
height (plus the height of
1 line
)
173 .\" crosses the bottom margin
, you get the footnoted word on one
174 .\" page
and the footnote on the other
. In
this case we just call
175 .\" "fo" manually (taking case it cannot be re
-invoked on the same
176 .\" page
!) If
this situation does not occur
, we just adjust the
177 .\" footer trap
's position upwards (we'll get to how far
in a min
-
178 .\" ute
); if this puts the trap above the current line
, we reposi
-
179 .\" tion the trap just beneath the current line to be sure of trig
-
180 .\" triggering it once the current line is forced
out.
181 .\" To reposition the footer trap
, we proceed
as follows
. Because
182 .\" the trap may be sprung
in the middle of a line
, it is possible
183 .\" that the footnote will not fit on the
page (regardless of
where
184 .\" on the page the footnoted word occurs
-- really
!) if we move the
185 .\" trap up by the size of the footnote diversion
"tf". So
, we
186 .\" fudge things a little bit
-- for the first footnote on each page
187 .\" we move the footer trap up
1 extra
line ("line" being
1v
in env
-
188 .\" ironment
#0). Unless the point size and vertical spacing are
189 .\" increased between the first footnote
and the footer trap
's being
190 .\" sprung, this will keep the footnotes on the same page as the
191 .\" footnoted word. But as there may be now as much as 1v of space
192 .\" between the footnote and the bottom margin, which looks HIDEOUS,
193 .\" we use the number register "fs" to mark where the footer trap
194 .\" would REALLY go, and just space to it when it comes time to put
195 .\" out the footnotes.
196 .de fd \" dump footnotes
197 .nr gs 1v \" get a measure of 1 line in env #0
198 .ev 1 \" switch to footnote environment
199 .nr gs +2v \" min of 2 lines of footnotes
200 . \" if the number register ns > 0,
201 . \" the last text line may contain a
202 . \" footnote that is too big to fit;
203 . \" this checks for such a note and
204 . \" if so, forces the footnote into
205 . \" the "fy" diversion that carries
206 . \" it onto the next text page
207 .ie (\\n(nsu>0)&(\\n(gsu>=\\n(.tu) 'sp
\\n(gsu
\" be sure you can get it down
208 .el
.if \\n(fsu
>\\n(nlu
'sp \\n(fsu-\\n(nlu \" move to footnote start position
209 'nf
\" don
't reprocess footnotes
210 'in 0 \" don
't indent them any more either
211 .tf \" drop text of footnotes
213 .if '\\n(.z
'fy' .di
\" end overflow diversion
, if any
214 .nr fc
0 \" re
-init footnote count
215 .ev
\" return to usual environment
217 .de fn
\" start footnote
218 . \" look
for nested footnotes
-- ILLEGAL
219 .ie
\\n(if>0 .er
"footnote within footnote"
220 .el
.da tf
\" append footnote to footnote diversion
221 .nr
if +1 \" increment level of footnoting
222 .nr fc
+1 \" one more footnote on
this page
223 .if \\n(fc
=1 .nr fp
-1v
\" The reason
for this "fudge factor"
224 . \" is that there is no way to force
225 . \" NROFF
/TROFF to invoke a
macro at
226 . \" the end of each line
. At times
,
227 . \" the trap boundary will not
match up
228 . \" with the bottom of a line
, so the
229 . \" "fo" trap which is set at
2320 may
230 . \" not be triggered until
2340 -- and
231 . \" then the footnote won
't fit. This
232 . \" gives some slack so the footnote is
233 . \" more likely to fit. *sigh*
234 .ev 1 \" enter footnote environment
235 .if \\n(fc=1 .fs \" drop separator if first footnote
236 .br \" flush out any previous line in footnote
237 .fi \" process footnote in fill mode
239 .de ef \" end footnote
240 .br \" flush out the line in footnote
241 .ie \\n(if<=0 .er "end footnote has no corresponding begin footnote"
243 . nr if -1 \" decrement level of footnoting
244 . nr fg 2v \" remember this for repositioning fo
245 . ev \" back to usual environment
247 . di \" end of footnote proper
248 . nr fp -\\n(dnu \" "fo" will be moved at least up this far
249 . nr fs -\\n(dnu \" increase size of footnote
250 . ch fo \\n(fpu \" reposition "fo" trap (first guess)
251 . \" the first part of the "ie" clause
252 . \" is taken in the special case
254 . ie (\\n(fc=1)&((\\n(nlu+1v+\\n(fgu)>=(\\n(.pu-\\n(bmu)) \{\
255 . nr ns \\n(dnu \" suppress footnote separator
256 . \" since this footnote contains it
257 . \" keep "fo" from being invoked twice
259 . fo \" force the page out AT ONCE
260 . nr ns 0 \" re-enable footnote separator
262 . \" footnote won't fit completely
263 . \" invoke the footer trap but
264 . \" don
't worry about the footnote
265 . \" separator (it's already there
)
266 . el
.if (\\n(nlu
+1v
)>=(\\n(.pu
+\\n(fpu
) \
{\
267 . \" as before we must reposition the
268 . \" "fo" trap to prevent
"fo" from
269 . \" being invoked twice
271 . fo
\" force the page
out AT ONCE
276 .de fs
\" drop footnote separator
277 . \" only
if not already dropped
279 .nr ns
0 \" in case footnotes are over
1 page
long
281 .de fx
\" process footnote overflow
282 .if \\n(fc
.di fy
\" stuff them
in the right place
284 .de fz
\" deposit footnote overflow
285 .fn
\" treat it
as a footnote
286 .nf
\" it
's already been processed
287 .in 0 \" and indented
288 .fy \" "fx" put it here
289 .ef \" end the footnote
292 .\" the ones after here are user-invoked (like "fn" and "ef" above)
293 .\" title, author, etc.
296 .sp |\\n(mtu \" space
298 .ps \\n(ps+2p \" large point size and
299 .vs \\n(vs+2p \" vertical spacing
300 .ce 1000 \" center the title
304 .nr t2 0 \" spacing here
307 .ps \\n(ps \" usual point size and
308 .vs \\n(vs \" vertical spacing
309 .ce 1000 \" center the name(s)
311 .de ai \" author's institution
312 .if \\n(t2
.sp
2v
\" space after a title
313 .nr t2
0 \" institution
315 .ps
\\n(ps
\" usual point size
and
316 .vs
\\n(vs
\" vertical spacing
317 .ce
1000 \" center the
name(s
)
319 .de bt
\" begin text
macro
320 .nr t2
0 \" hold it here
321 .nr it
+1 \" mark
as called
322 .ce
0 \" end any centering
323 .sn
3v
\" a little bit of space
326 .de si
\" start indented section
327 .nr lo
\\n(lm
\" remember the current level
328 .nr lm
+1 \" go to the next level
329 .ie
'\\$1'' .nr l\\n(lm \\n(l\\n(lo+5n \" if no arg, indent 5n
330 .el .nr l\\n(lm \\$1n \" otherwise, indent that much
333 .nr lm -1 \" down one level
334 .if \\n(lm<0 .nr lm 0 \" make sure you don't go too far
336 .de pg
\" plain old paragraph
337 .if !\\n(it
.bt
\" end the title
and such
338 .sn
\\n(pdu
\" inter
-paragraph spacing
339 .ft
1 \" reset a few
things (paranoia
)
340 . \" these ONLY
if not
in footnote
342 . ps
\\n(ps
\" reset point size
343 . vs
\\n(vs
\" reset vertical spacing
344 . ne
1v
+\\n(.Vu
\" slightly more than
1 line
347 . ps
\\n(ps
-2p
\" reset point size
348 . vs
\\n(vs
-2p
\" reset vertical spacing
350 .in \\n(l
\\n(lmu
\" stop any indenting
351 .ce
0 \" stop any centering
352 .if !'\\$1'L
' .if !'\\$1
'l' .ti
+\\n(piu
\" indent the sucker
354 .de lp
\" labelled paragraph
355 .pg l
\" reset paragraph
356 .if \\n(.$
>1 .nr li
\\$2n
\" if indent given use it
357 .in +\\n(liu
\" indent
for paragraph
358 .ti
-\\n(liu
\" force first line NOT to indent
359 .ta
+\\n(liu
\" for the label
361 .if \\w
'\\$1'u
>=(\\n(l
\\n(lmu
+\\n(liu
) .br
\" don
't overwrite
363 .\" The following two macros (hu & hn) have been modified for ELM usage.
364 .\" If the macros have text as part of the macro call, the text will be
365 .\" increased in size by two points. After printing the text, the font
366 .\" will be returned to normal, otherwise the font will be left bold.
369 .de hu \" header, unnumbered
370 . \" format: .hu [text]
371 .if !\\n(it .bt \" end the title and such
372 .br \" force out previous line
374 .ie \\n(hP .ps \\n(hP
376 .ie \\n(hv .vs \\n(hv
378 .in \\n(l\\n(lmu \" stop any indenting
379 .sn \\n(hsu \" inter-section spacing
380 .ne 3v+\\n(.Vu \" slightly more than 3 lines
381 .fi \" process the text, too
400 .de hn \" header, numbered
401 . \" format: .hn [level] [text]
402 .if !\\n(it .bt \" end the title and such
403 .br \" force out previous line
405 .ie \\n(hP .ps \\n(hP
407 .ie \\n(hv .vs \\n(hv
409 .in \\n(l\\n(lmu \" stop any indenting
410 .sn \\n(hsu \" inter-section spacing
411 .ne 3v+\\n(.Vu \" slightly more than 3 lines
412 .fi \" process the text, too
413 .ie !'\\$1
'' .nr hn
\\$1
415 .ie
\\n(hn
>0 .nr hn
-1
418 . nr h0
+1 \" add
1 to main section header
419 . nr h1
0 \" zap remaining section numbers
420 . nr h2
0 \" zap remaining section numbers
421 . nr h3
0 \" zap remaining section numbers
430 . nr h1
+1 \" add
1 to the section header
431 . nr h2
0 \" zap remaining section numbers
432 . nr h3
0 \" zap remaining section numbers
441 . nr h2
+1 \" add
1 to the section header
442 . nr h3
0 \" zap remaining section numbers
445 \\n(h0
.\\n(h1
.\\n(h2
.
448 .el
\\n(h0
.\\n(h1
.\\n(h2
.
451 . nr h3
+1 \" add
1 to the section number
454 \\n(h0
.\\n(h1
.\\n(h2
.\\n(h3
.
457 .el
\\n(h0
.\\n(h1
.\\n(h2
.\\n(h3
.
476 .\" displays (no floats
, thank God
!)
477 .de sd
\" start display
478 . \" look
for nested displays
-- ILLEGAL
479 .ie
\\n(id
>0 .er
"display within display"
481 . ie
'\\$1'c
' .nr sf 1 \" center the sucker
482 . el .nr sf 0 \" don't center it
484 .sn
\\n(pdu
\" a little bit of space
485 .ev
2 \" switch to display environment
486 .nf
\" what you
type is what you get
487 .if \\n(id
=0 .di dd
\" start saving text
488 .rs
\" don
't eat leading space
489 .nr id +1 \" increment level of display
491 .de ed \" end display
493 .ie \\n(id<=0 .er "end display has no corresponding begin display"
495 . nr id -1 \" decrement level of display
497 . di \" end diversion
498 . fi \" resume filling
499 . in -\\n(piu \" dedent
500 . ev \" pop environment
501 . ne \\n(dnu \" be sure you have room
502 . nf \" don't reprocess display
503 . rs
\" don
't eat leading space
505 . ie \\n(sf .in (\\n(llu-\\n(dlu)/2u \" center on the line length
506 . el .in +\\n(piu \" indent the sucker
508 . yi \" restore indents
511 .fi \" resume filling
512 .sn \\n(pdu \" a little bit of space
515 .\" fonts -- if argument(s), apply only to first
516 .de b \" bold (font 3)
517 .ie \\n(.$>0 \\&\\$3\\f3\\$1\\fP\\$2
520 .de i \" italics (font 2)
521 .ie \\n(.$>0 \\&\\$3\\f2\\$1\\fP\\$2
524 .de r \" roman (font 1)
525 .ft 1 \" just restore it
527 .de bi \" bold italics (embolden font 2)
529 \\kb\\f2\\$1\\fP\\h'|\\nbu
+2u'\\f2\\$1\\fP\\$2
532 .\" point sizes -- if argument(s), apply only to first
533 .de sm \" reduce point size by 2
534 .ie \\n(.$>0 \\&\\$3\\s-2\\$1\\s0\\$2
537 .de is \" increase point size by 2
538 .ie \\n(.$>0 \\&\\$3\\s+2\\$1\\s0\\$2
541 .de nl \" return to normal size
542 .ps \\n(ps \" just reset the point size
545 .\" handy force space/inhibit more space macros
546 .de sn \" space, then turn on nospace mode
548 .ns \" ignore any more space requests
550 .de sr \" force out space
551 .rs \" turn on spacing mode
555 .\" end of text and error macros
556 .de et \" end of text macro
557 . \" this: (1) flushes rest of line
558 . \" (2) trips the footer, taking
559 . \" care of footnotes
561 . \" check for open displays or footnotes
562 .if \\n(id>0 .er "unfinished display"
563 .if \\n(if>0 .er "unfinished footnote"
564 . \" this one means an -mn bug (*sigh*)
565 .if !'\\n(.z
'' .er
"diversion \\n(.z not closed"
567 .de er
\" print error message
568 . \" flag it
as an error
570 . \" if you have it, give the file name
571 .if !'\\*(.f'' .as ws " file
\\*(.f
,
572 . \" put
out the line number
574 . \" and finally the error message
578 .\" macros in this section are VERY specific to the news documentation
579 .de pa \" protocol appellation (darn names!)
580 \\&\\$3\\f2\\$1\\fP\\$2
582 .de ng \" news group name
583 \\&\\$3\\f3\\$1\\fP\\$2
585 .de cn \" computer name
586 \\&\\$3\\f2\\$1\\fP\\$2
588 .de hf \" header field
589 \\&\\$3\\*(lq\\$1\\*(rq\\$2
591 .de cf \" contents of field
592 \\&\\$3\\*(lq\\$1\\*(rq\\$2
594 .de qc \" quote control char (command)
595 \\&\\$3\\f3<\\s-2\\$1\\s0>\\fP\\$2
597 .de qp \" quote printing char (command)
598 \\&\\$3\\f3\\$1\\fP\\$2
601 \\&\\$3\\f3\\$1\\fP\\$2
604 .\" trademarked names
605 .de pd \" print "PDP
-11"
606 .ie \\n(p1 \\&\\$2\\s-1PDP\\s0-11\\$1
608 . nr p1 +1 \" mark footnote as dropped
609 \\&\\$2\\s-1PDP\\s0-11\\*(rg\\$1
610 . fn \" put out the footnote
611 \\&\\*(rgPDP-11 is a registered trademark of Digital Equipment Corporation.
612 . ef \" short and sweet ...
615 .de ux \" print "UNIX
"
616 .ie \\n(ux \\&\\$2\\s-1UNIX\\s0\\$1
618 . nr ux +1 \" mark footnote as dropped
619 \\&\\$2\\s-1UNIX\\s0\\*(rg\\$1
620 . fn \" put out the footnote
621 \\&\\*(rgUNIX is a registered trademark of AT&T.
622 . ef \" short and sweet ...
625 .de vx \" print "VAX
"
626 .ie \\n(vx \\&\\$2\\s-1VAX\\s0\\$1
628 . nr vx +1 \" mark footnote as dropped
629 \\&\\$2\\s-1VAX\\s0\\*(rg\\$1
630 . fn \" put out the footnote
631 \\&\\*(rgVAX is a trademark of Digital Equipment Corporation.
632 . ef \" short and sweet ...
636 .\" set up string and number registers
637 . \" set up for the date
638 .if \n(mo=1 .ds mo January
639 .if \n(mo=2 .ds mo February
640 .if \n(mo=3 .ds mo March
641 .if \n(mo=4 .ds mo April
642 .if \n(mo=5 .ds mo May
643 .if \n(mo=6 .ds mo June
644 .if \n(mo=7 .ds mo July
645 .if \n(mo=8 .ds mo August
646 .if \n(mo=9 .ds mo September
647 .if \n(mo=10 .ds mo October
648 .if \n(mo=11 .ds mo November
649 .if \n(mo=12 .ds mo December
651 .ds dy "\
*(mo
\n(dy
, \n(Yr
652 .if \n(dw
=1 .ds dw Sunday
653 .if \n(dw
=2 .ds dw Monday
654 .if \n(dw
=3 .ds dw Tuesday
655 .if \n(dw
=4 .ds dw Wednesday
656 .if \n(dw
=5 .ds dw Thursday
657 .if \n(dw
=6 .ds dw Friday
658 .if \n(dw
=7 .ds dw Saturday
659 . \" NROFF dependencies
661 . \" string registers
666 . \" number registers
667 . nr hs 1v \" space before section header
668 . nr pd 1v \" inter-paragraph spacing
669 . nr bm 1.0i \" height of bottom margin
671 . \" NROFF dependencies
673 . \" string registers
674 . ds rg \\u\\s-2\\(rg\\s0\\d
677 . \" number registers
678 . nr hs 1v \" space before section header
679 . nr pd 0.3v \" inter-paragraph spacing
680 . nr bm 1.0i+1v \" height of bottom margin (wacky laser)
682 . \" these are the same for [NT]ROFF
684 .ds vr "News Version B2
.11
685 .ds pv
"News macros 1.5
687 .nr bt 0.5i+1v \" bottom of page to footer
688 .nr cm 0 \" no cut marks
689 .nr fc 0 1 \" init footnote count
690 .nr fl 5.5i \" footnote line length
691 .nr fp 0-\n(bmu \" fo macro trap location
692 .nr h0 0 \" init section header level 0
693 .nr h1 0 \" init section header level 1
694 .nr h2 0 \" init section header level 2
695 .nr h3 0 \" init section header level 3
696 .nr id 0 \" 1 in display
697 .nr if 0 \" 1 in keep
698 .nr it 0 \" 1 when beyond title, etc.
699 .nr li 5n \" indent for labelled paragraph
700 .nr ll 6.5i \" line length
701 .nr lm 0 \" left margin
702 .nr l0 0 \" first indent level
703 .nr mt 1.5i+1v \" title goes down this far
704 .nr pi 5n \" regular paragraph indent
705 .nr po 1.0i \" page offset
706 .nr ps 10 \" point size
707 .nr tm 1.0i \" height of top margin
708 .nr tt 0.5i-0.5v \" top of page to header
709 .nr p1 0 \" no PDP-TM message yet
710 .nr ux 0 \" no UNIX-TM message yet
711 .nr vx 0 \" no VAX-TM message yet
712 .nr vs 12 \" vertical spacing
714 .\" DSINC changes for XROFF
723 .\" DSINC end changes for XROFF
724 .po \n(pou \" set page offset
725 .ps \n(ps \" set previous, current
726 .ps \n(ps \" point sizes
727 .vs \n(vs \" set previous, current
728 .vs \n(vs \" vertical spacings
729 .ll \n(llu \" set line length
730 .lt \n(llu \" set title line length
731 .ev 1 \" *** footnote environment
732 .ps \n(ps-2p \" set previous, current
733 .ps \n(ps-2p \" point sizes
734 .vs \n(vs-2p \" set previous, current
735 .vs \n(vs-2p \" vertical spacings
736 .ll \n(flu \" set line length
737 .lt \n(flu \" set title line length
738 .ev \" *** pop environment
739 .ev 2 \" *** footnote environment
740 .ps \n(ps \" set previous, current
741 .ps \n(ps \" point sizes
742 .vs \n(vs \" set previous, current
743 .vs \n(vs \" vertical spacings
744 .ll \n(llu \" set line length
745 .lt \n(llu \" set title line length
746 .ev \" *** pop environment
747 .\" now set internal registers (for the first header section)
748 .nr f1 \n(.f \" saved font #1
749 .nr f2 \n(.f \" saved font #2
750 .nr s1 \n(.s \" saved point size #1
751 .nr s2 \n(.s \" saved point size #2
752 .nr v1 \n(.v \" saved vertical spacing #1
753 .nr v2 \n(.v \" saved vertical spacing #2
755 .wh 0i hd \" position header trap
756 .wh -\n(bmu fo \" position footer trap
757 .wh \n(.pu+1i fx \" put footnote overflow trap here
758 .ch fx -\n(bmu \" move it over fo
759 .wh -\n(btu pf \" print the bottom margin here
760 .em et \" at end of file, call et
761 .\" couple of miscellaneous requests
762 .bd S 3 3 \" embolden special font chars if B
763 .hy 2 \" don't hyphenate last lines