|
|
1.1 root 1: .\" Copyright (c) 1980 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)tmac.an.new 6.4 (Berkeley) 5/30/86
6: .\"
7: ' DT, PD, SM, and B macros invoked internally.
8: ' # month name
9: .if "\nd"0" .nr m \n(mo-1
10: .if "\nm"0" .ds ]m January
11: .if "\nm"1" .ds ]m February
12: .if "\nm"2" .ds ]m March
13: .if "\nm"3" .ds ]m April
14: .if "\nm"4" .ds ]m May
15: .if "\nm"5" .ds ]m June
16: .if "\nm"6" .ds ]m July
17: .if "\nm"7" .ds ]m August
18: .if "\nm"8" .ds ]m September
19: .if "\nm"9" .ds ]m October
20: .if "\nm"10" .ds ]m November
21: .if "\nm"11" .ds ]m December
22: ' # set the date
23: .if n \{.nr m \nm+1
24: . ie \nd .ds ]W Modified \nm/\nd/\ny
25: . el .ds ]W Printed \n(mo/\n(dy/\n(yr\}
26: .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny
27: . el .ds ]W \*(]m \n(dy, 19\n(yr\}
28: .if t .tr *\(**
29: .ie n \{\
30: . ds lq \&"\"
31: . ds rq \&"\"
32: .\}
33: .el \{\
34: . ds rq ''
35: . ds lq ``
36: .\}
37: .de AT
38: .if t \{\
39: . ds ]W 7th Edition
40: . if "\\$1"3" .ds ]W 7th Edition
41: . if "\\$1"4" .ds ]W System III
42: . if "\\$1"5" \{\
43: . ie "\\$2"" .ds ]W System V
44: . el .ds ]W System V Release \\$2
45: . \}
46: .\}
47: ..
48: .de UC
49: .if t \{\
50: . ds ]W 3rd Berkeley Distribution
51: . if "\\$1"3" .ds ]W 3rd Berkeley Distribution
52: . if "\\$1"4" .ds ]W 4th Berkeley Distribution
53: . if "\\$1"5" .ds ]W 4.2 Berkeley Distribution
54: . if "\\$1"6" .ds ]W 4.3 Berkeley Distribution
55: .\}
56: ..
57: ' # reset the basic page layout
58: .de }E
59: .}f
60: .in \\n()Ru+\\n(INu
61: .ll \\n(LLu
62: ..
63: ' # default tabs
64: .de DT
65: 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
66: ..
67: ' # set type font and size
68: .de }f
69: .ps 10
70: .ft 1
71: ..
72: ' # handle the head of the page
73: .de }H
74: .ev 1
75: .}C
76: .ie "\*(.T"va" 'sp .1i
77: .el 'sp .5i
78: .ft 1
79: .ps 10
80: .tl @\\*(]H@\\*(]D@\\*(]H@
81: 'sp .5i
82: .ev
83: .ns
84: ..
85: ' # handle the foot of the page
86: .de }F
87: .ev 1
88: .ft 1
89: .ps 10
90: 'sp .5i
91: .tl @\\*(]W@\\*(]L@%@
92: 'bp
93: .ev
94: ..
95: ' # the cut mark
96: .if n .ig
97: .if !\nv=2 .ig
98: .de }C
99: .po 0i
100: .lt 7.45i
101: .tl '__''__'
102: .po
103: .lt
104: ..
105: ' # the final cut mark
106: .de }M
107: .}N
108: .wh -1p }C
109: .ll \\n(LLu
110: ..
111: ' # no runout unless there was a .TH
112: .de }K
113: .}N
114: .pl 1
115: .ll \\n(LLu
116: ..
117: .em }K
118: ' # set title and heading
119: .de TH
120: .PD
121: .DT
122: .if n .nr IN .5i
123: .if t .nr IN .5i
124: .nr LL \\n(.l
125: .ds ]H \\$1\|(\|\\$2\|)
126: .ie "\\$5"" .ds ]D UNIX Programmer's Manual
127: .el .ds ]D \\$5
128: .wh 0 }H
129: .if t .ie !"\*(.T"va" .wh -1i }F
130: .if t .el .wh -1.4i }F
131: .if n .wh -1.167i }F
132: .em }M
133: .if \\n(nl .bp 1
134: .ds ]L \\$3
135: .}E
136: .DT
137: .nr )I .5i
138: .nr )R 0
139: .if n .na
140: .mk ka
141: .if !'\\n(ka'-1' .bp
142: .if t \{\
143: . ie "\\$4"" .ds ]W 7th Edition
144: . el .ds ]W \\$4
145: .\}
146: ..
147: ' # section heading
148: .de SH
149: .ss 12
150: .if "\\$2"SYNOPSIS" .ss 18
151: .}X 0
152: .nr )E 2
153: .SM
154: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
155: ..
156: ' # sub section heading
157: .de SS
158: .}X \\n()Ru+\\n(INu
159: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
160: .br
161: ..
162: ' # subroutine for section heading
163: .de }X
164: .}E
165: .ti \\$1
166: .sp \\n()Pu
167: .ne 2
168: .nr )R 0
169: .fi
170: .it 1 }N
171: .B
172: ..
173: ' # end of SH (cf }X above and }N below)
174: .de }2
175: .nr )E 0
176: .}E
177: .nr )I .5i
178: .ns
179: ..
180: ' # italic
181: .de I
182: .ft 2
183: .it 1 }N
184: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
185: ..
186: ' # bold
187: .de B
188: .ft 3
189: .it 1 }N
190: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
191: ..
192: ' # small
193: .de SM
194: .ps 9
195: .it 1 }N
196: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
197: ..
198: ' # combinations of Roman, italic, bold
199: .de RI
200: .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
201: ..
202: .de VS
203: 'if '\\$1'4' .mc \s12\(br\s0
204: ..
205: .de VE
206: 'mc
207: ..
208: .de RB
209: .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
210: ..
211: .de IR
212: .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
213: ..
214: .de IB
215: .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
216: ..
217: .de BR
218: .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
219: ..
220: .de BI
221: .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
222: ..
223: ' # make special case of shift out of italic
224: .de }S
225: .ds ]F
226: .if "\\$1"2" .if !"\\$5"" .ds ]F\^
227: .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
228: .el \\$3
229: .}f
230: ..
231: ' # paragraph
232: .de LP
233: .PP
234: ..
235: .de PP
236: .sp \\n()Pu
237: .ne 2
238: .}E
239: .nr )I .5i
240: .ns
241: ..
242: ' # synonym for .PP
243: .de P
244: .PP
245: ..
246: ' # paragraph distance
247: .de PD
248: .if t .nr )P .4v
249: .if n .nr )P 1v
250: .if !"\\$1"" .nr )P \\$1v
251: ..
252: ' # paragraph with hanging indent
253: .de HP
254: .sp \\n()Pu
255: .ne 2
256: .if !"\\$1"" .nr )I \\$1n
257: .ll \\n(LLu
258: .in \\n()Ru+\\n(INu+\\n()Iu
259: .ti \\n()Ru+\\n(INu
260: .}f
261: ..
262: ' # indented paragraph
263: .de IP
264: .TP \\$2
265: \&\\$1
266: ..
267: ' # tagged paragraph (paragraph with hanging label)
268: .de TP
269: .if !"\\$1"" .nr )I \\$1n
270: .sp \\n()Pu
271: .ne 1.1v
272: .in \\n()Ru
273: .nr )E 1
274: .ns
275: .it 1 }N
276: .di ]B
277: ..
278: ' # end of TP (cf }N below)
279: .de }1
280: .ds ]X \&\\*(]B\\
281: .nr )E 0
282: .if !"\\$1"" .nr )I \\$1n
283: .}f
284: .ll \\n(LLu
285: .in \\n()Ru+\\n(INu+\\n()Iu
286: .ti \\n(INu
287: .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X
288: .br\}
289: .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c
290: .}f
291: ..
292: ' # handle end of 1-line features
293: .de }N
294: .if \\n()E .br
295: .di
296: .if "\\n()E"0" .}f
297: .if "\\n()E"1" .}1
298: .if "\\n()E"2" .}2
299: .nr )E 0
300: ..
301: ' # increase relative indent
302: .de RS
303: .nr ]\\n+()p \\n()I
304: .nr )\\n()p \\n()R
305: .ie !"\\$1"" .nr )R +\\$1n
306: .el .nr )R +\\n()I
307: .nr )I .5i
308: .}E
309: ..
310: .de DS
311: .RS
312: .nf
313: .sp
314: ..
315: ' # decrease relative indent
316: .de RE
317: .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1
318: . el .nr )p \\$1 1\}
319: .ds ]i \\*(]I\\n()p
320: .ds ]r \\*(]R\\n()p
321: .nr )I \\*(]i
322: .nr )R \\*(]r
323: .if \\n()p .nr )p -1
324: .}E
325: ..
326: .de DE
327: .fi
328: .RE
329: .sp .5
330: ..
331: .nr )p 0 1
332: .ds ]I \\\\n(]
333: .ds ]R \\\\n()
334: .bd S B 3
335: .if t .ds R \(rg
336: .if n .ds R (Reg.)
337: .ds S \s10
338: .hy 14
339: .if "\*(.T"va" .po -0.4i
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.