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