* Imakefile replaced with Imakefile.in
[s-roff.git] / tmac / tmac.an
blobefd271eb016c04bb27b26bb104b5bf0d303ed215
1 .\"Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
2 .\"     Written by James Clark (jjc@jclark.com)
3 .\"
4 .\"This file is part of groff.
5 .\"
6 .\"groff is free software; you can redistribute it and/or modify it under
7 .\"the terms of the GNU General Public License as published by the Free
8 .\"Software Foundation; either version 2, or (at your option) any later
9 .\"version.
10 .\"
11 .\"groff is distributed in the hope that it will be useful, but WITHOUT ANY
12 .\"WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 .\"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 .\"for more details.
15 .\"
16 .\"You should have received a copy of the GNU General Public License along
17 .\"with groff; see the file COPYING.  If not, write to the Free Software
18 .\"Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 .\"
20 .\" -rC1 => number pages continuously, rather than start each at 1
21 .\" -rD1 => double-sided printing, ie different odd and even page footers
22 .\" -rPnnn => number first page nnn
23 .\" -rXnnn => number pages after nnn as nnna, nnnb, nnnc, ...
24 .\"
25 .\" The file man.local is loaded at the end.  Put local additions there.
26 .\" If you need to add things to TH, use `.am TH'.
27 .\"
28 .if !\n(.g .ab These man macros work only with groff.
29 .nr _C \n(.C
30 .cp 0
31 .if !rD .nr D 0
32 .if !rC .nr C 0
33 .if rP .pn 0\nP
34 .de set-an-margin
35 .  nr an-margin \\n[IN]
37 .\" .TH title section extra1 extra2 extra3
38 .de TH
39 .cp 0
40 .de an-init \" We have to do it like this to get multiple man pages right.
41 .ds an-title "\\$1
42 .ds an-section "\\$2
43 .ds an-extra1 "\\$3
44 .ie \\n[.$]>3 .ds an-extra2 "\\$4
45 .el .ds an-extra2 \"Sun Release 4.0
46 .ie \\n[.$]>4 .ds an-extra3 "\\$5
47 .el .ds an-extra3 \"System Programmer's Manual
48 .ds an-init
49 \\..
50 .DT
51 .ie '\*(.T'html' \{\
52 .  nr IN 1.2i
53 .\}
54 .el \{\
55 .  nr IN 7.2n
56 .\}
57 .nr LL 6.5i
58 .PD
59 .nr PS 10 \" normal point-size
60 .nr SN 3n \" the indentation of sub-sub-headings relative to sub-headings
61 .nr an-level 1
62 .set-an-margin
63 .nr an-prevailing-indent \\n[IN]
64 .nr an-tag-sep 1n
65 .nr an-no-space-flag 0
66 .nr an-break-flag 0
67 .nr an-div? 0
68 .wh 0 an-header
69 .wh -1i an-footer
70 .wh -.5i an-p-footer
71 .if \\n[nl]>0 \{\
72 .       ie \\nC .bp \\n%+1
73 .       el .bp 1
74 .\}
76 .de DT
77 .ta T .5i \" This sets tabs every .5 inches
79 .de PD
80 .ie \\n[.$] .nr PD (v;\\$1)
81 .el .nr PD .4v>?\n[.V]
83 .de an-header
84 .an-init
85 .ev 1
86 .ie '\*(.T'html' \{\
87 .   tl ''''
88 .\}
89 .el \{\
90 .   sp .5i
91 .   tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
92 .   sp |1i
93 .\}
94 .ev
95 .ns
97 .de an-footer
98 'bp
100 .af an-page-letter a
101 .de an-p-footer
102 .ev 1
103 .ie '\*(.T'html' \{\
104 .   ds an-page-string "
105 .   ds an-extra1      "
106 .   ds an-extra2      "
108 .el .ds an-page-string \\n%
109 .if rX \{\
110 .       if \\n%>\\nX \{\
111 .               nr an-page-letter \\n%-\\nX
112 .               ds an-page-string \\nX\\n[an-page-letter]
113 .\}\}
114 .ie \\nD \{\
115 .       if o .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
116 .       if e .tl '\\*[an-page-string]'\\*[an-extra1]'\\*[an-extra2]'
118 .el .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
119 .if '\*(.T'html' \{\
120 .       tl ''''
124 .de SH
125 .sp \\n[PD]u
126 .nr an-level 1
127 .set-an-margin
128 .nr an-prevailing-indent \\n[IN]
130 .in \\n[an-margin]u
131 .ti 0
132 .it 1 an-trap
133 .nr an-no-space-flag 1
134 .nr an-break-flag 1
135 .ps \\n[PS]-1
136 .ft B
137 .ne 2v+1u
138 .if \\n[.$] \&\\$*
140 .de SS
141 .sp \\n[PD]u
142 .nr an-level 1
143 .set-an-margin
144 .nr an-prevailing-indent \\n[IN]
146 .in \\n[IN]u
147 .ti \\n[SN]u
148 .it 1 an-trap
149 .nr an-no-space-flag 1
150 .nr an-break-flag 1
151 .ps \\n[PS]
152 .ft B
153 .ne 2v+1u
154 .if \\n[.$] \&\\$*
156 .de B
157 .it 1 an-trap
158 .ft B
159 .if \\n[.$] \&\\$*
161 .de I
162 .it 1 an-trap
163 .ft I
164 .if \\n[.$] \&\\$*
166 .de SM
167 .it 1 an-trap
168 .ps -1
169 .if \\n[.$] \&\\$*
171 .de SB
172 .it 1 an-trap
173 .ps -1
174 .ft B
175 .if \\n[.$] \&\\$*
177 .de TP
178 .sp \\n[PD]u
179 .if \\n[.$] .nr an-prevailing-indent (n;\\$1)
180 .it 1 an-trap
181 .if !\\n[an-div?] .di an-div
182 .in 0
183 .nr an-div? 1
185 .de an-trap
186 .ft R
187 .ps \\n[PS]
188 .if \\n[an-break-flag] \{\
189 .       br
190 .       nr an-break-flag 0
192 .if \\n[an-no-space-flag] \{\
193 .       ns
194 .       nr an-no-space-flag 0
196 .if \\n[an-div?] .an-do-tag
198 .de an-do-tag
199 .nr an-div? 0
202 .ie \\n[dl]+\\n[an-tag-sep]>\\n[an-prevailing-indent] \{\
203 .       in \\n[an-margin]u
204 .       ne 2v+1u
205 .       an-div
206 .       br
207 .       in \\n[an-margin]u+\\n[an-prevailing-indent]u
209 .el \{\
210 .       in \\n[an-margin]u+\\n[an-prevailing-indent]u
211 .       ti -\\n[an-prevailing-indent]u
212 .       chop an-div
213 .       ne 1v+1u
214 \\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
217 .de LP
219 .sp \\n[PD]u
220 .ps \\n[PS]
221 .ft R
222 .in \\n[an-margin]u
223 .nr an-prevailing-indent \\n[IN]
225 .als PP LP
226 .als P LP
227 .de IP
228 .ie !\\n[.$] \{\
229 .       ps \\n[PS]
230 .       ft R
231 .       sp \\n[PD]u
232 .       ne 1v+1u
233 .       in \\n[an-margin]u+\\n[an-prevailing-indent]u
235 .el \{\
236 .       ie \\n[.$]-1 .TP "\\$2"
237 .       el .TP
238 \&\\$1
241 .de HP
242 .ps \\n[PS]
243 .ft R
244 .sp \\n[PD]u
245 .ne 1v+1u
246 .if \\n[.$] .nr an-prevailing-indent (n;\\$1)
247 .in \\n[an-margin]u+\\n[an-prevailing-indent]u
248 .ti \\n[an-margin]u
250 .ds an-empty \" this is referenced to avoid looping on eg .RB ( \\ )
251 .de RI
252 .if \\n[.$] \{\
253 .       ds an-result \&\\$1
254 .       shift
255 .       while \\n[.$]>=2 \{\
256 .               as an-result \,\fI\\$1\fR\/\\$2\\*[an-empty]
257 .               shift 2
258 .       \}
259 .       if \\n[.$] .as an-result \,\fI\\$1\fR
260 \\*[an-result]
263 .de IR
264 .if \\n[.$] \{\
265 .       ds an-result \&\fI\\$1\fR
266 .       shift
267 .       while \\n[.$]>=2 \{\
268 .               as an-result \/\\$1\fI\,\\$2\fR
269 .               shift 2
270 .       \}
271 .       if \\n[.$] .as an-result \/\\$1
272 \\*[an-result]
275 .de IB
276 .if \\n[.$] \{\
277 .       ds an-result \&\fI\\$1
278 .       shift
279 .       while \\n[.$]>=2 \{\
280 .               as an-result \/\\fB\\$1\fI\,\\$2\\*[an-empty]
281 .               shift 2
282 .       \}
283 .       if \\n[.$] .as an-result \/\\fB\\$1
284 \\*[an-result]
285 .       ft R
288 .de BI
289 .if \\n[.$] \{\
290 .       ds an-result \&\fB\\$1
291 .       shift
292 .       while \\n[.$]>=2 \{\
293 .               as an-result \,\fI\\$1\fB\/\\$2\\*[an-empty]
294 .               shift 2
295 .       \}
296 .       if \\n[.$] .as an-result \,\fI\\$1
297 \\*[an-result]
298 .       ft R
301 .de RB
302 .ds an-result \&
303 .while \\n[.$]>=2 \{\
304 .       as an-result \fR\\$1\fB\\$2\\*[an-empty]
305 .       shift 2
307 .if \\n[.$] .as an-result \fR\\$1
308 \\*[an-result]
309 .ft R
311 .de BR
312 .ds an-result \&
313 .while \\n[.$]>=2 \{\
314 .       as an-result \fB\\$1\fR\\$2\\*[an-empty]
315 .       shift 2
317 .if \\n[.$] .as an-result \fB\\$1
318 \\*[an-result]
319 .ft R
321 .de RS
323 .nr an-saved-margin\\n[an-level] \\n[an-margin]
324 .nr an-saved-prevailing-indent\\n[an-level] \\n[an-prevailing-indent]
325 .ie \\n[.$] .nr an-margin +(n;\\$1)
326 .el .nr an-margin +\\n[an-prevailing-indent]
327 .in \\n[an-margin]u
328 .nr an-prevailing-indent \\n[IN]
329 .nr an-level +1
331 .de RE
333 .ie \\n[.$] .nr an-level (;\\$1)<?\\n[an-level]
334 .el .nr an-level -1
335 .nr an-level 1>?\\n[an-level]
336 .nr an-margin \\n[an-saved-margin\\n[an-level]]
337 .nr an-prevailing-indent \\n[an-saved-prevailing-indent\\n[an-level]]
338 .in \\n[an-margin]u
340 .ds S \s[\\n[PS]]
341 .ie c\[rg] .ds R \[rg]
342 .el .ds R (Reg.)
343 .ie c\[tm] .ds Tm \[tm]
344 .el .ds Tm (TM)
345 .ds lq \(lq
346 .ds rq \(rq
347 .hy 14
348 .\" Load local modifications.
349 .mso man.local
350 .cp \n(_C