docs/master

view style @ 185:6f8adf7d190c

style: Extended the system to handle appendices and fixed the page hdrs.
author markus schnalke <meillo@marmaro.de>
date Wed, 11 Jul 2012 11:05:22 +0200
parents 846f6a67f44e
children 5060e8cd7e59
line source
1 .do xflag 3
2 .de __
3 ..
4 .blm __ \" ignore empty lines in input
5 .lc_ctype en_US.utf8
6 .mediasize a4
8 .fp 1 R LinLibertine_R otf
9 .feature R +onum
10 .fp 2 I LinLibertine_RI otf
11 .feature I +onum
12 .fp 3 B LinLibertine_RB otf
13 .feature B +onum
14 .fp 4 BI LinLibertine_RBI otf
15 .feature BI +onum
16 .fp 5 CW TerminusMedium-4.36 ttf
17 .fp 0 CI TerminusMediumItalic-4.36 ttf
18 .fp 0 CB TerminusBold-4.36 ttf
19 .fp 0 L TerminusMedium-4.36 ttf
20 .ftr CW -\-`\`'\'
21 .ftr CI -\-`\`'\'
22 .ftr CB -\-`\`'\'
23 .ftr L -\-`\`'\'
24 .fp 0 SC LinLibertine_R otf
25 .feature SC +onum +smcp
26 .fp 0 IC LinLibertine_RI otf
27 .feature IC +onum +smcp
28 .fp 0 BC LinLibertine_RB otf
29 .feature BC +onum +smcp
31 .ig
32 . nr PS 11
33 . nr VS 13
34 . padj
35 ..
37 .ss 12 0 \" the second (non-portable) argument requests french spacing
39 .nr PI 4n
40 .nr PD .3v
41 .nr QI 2u*\n(PIu
42 .nr lu 0
43 .af PN i
45 .ds _E '\\\\n(PN''\f(SCMarkus Schnalke: The Modern Mail Handler\fP' \" left
46 .ds _a '\f(SCAppendix \\\\n(H1\ \ \\\\*(_C\fP''\\\\n(PN' \" right
47 .ds _O '\f(SCChapter \\\\n(H1\ \ \\\\*(_C\fP''\\\\n(PN' \" right
48 .ds _o '\f(SC\\\\*(_C\fP''\\\\n(PN' \" right
49 .ds CH "
51 .nr HM 3.3c
52 .nr FM 6.6c
53 .nr LL 13c
54 .ll 13c
55 .nr LT \n(LL
57 . \" _M - change margins for text block on next page
58 .de _M
59 .if t .if o .nr PO 5c
60 .if t .if e .nr PO 3c
61 .ds CF "
62 ..
63 .wh -1u _M
65 . \" Lp - enlarge the current page by one line to avoid widows
66 .de Lp
67 .ch FO -\n(FMu+1v
68 ..
70 . \" CW - Set text in CW font (similar to .B and .I)
71 .de CW
72 .nr PQ \\n(.f
73 .if t \{\
74 . ft CW
75 . if !^\\$1^^ \&\\$1\f\\n(PQ\\$2
76 .\}
77 .if n \{\
78 . ie ^\\$1^^ .ul 999
79 . el .ul 1
80 . if \\n(.$=1 \&\\$1
81 . if \\n(.$>1 \&\\$1\c
82 . if \\n(.$>1 \&\\$2
83 .\}
84 ..
86 . \" refer(1) stuff
87 .ds [. " [
88 .ds .] ]
89 .rm ]<
90 .de ]<
91 . de FP
92 . IP \\\\$1
93 \\..
94 . rm FS FE
95 ..
97 . \" PT - page top macro of ms
98 .am PT
99 . rs
100 ..
103 . \" RN - Reset PN and continue on an odd page ($1=number-format)
104 .de RN
105 .ie e .pn 1
106 .el \{
107 . pn 0
108 . bp
109 .\}
110 .ie \\n(.$=1 .af PN \\$1
111 .el .af PN 1
112 ..
115 . \" T_ - Add TOC entry ($1=pre-space $2=indent-level $3=text)
116 .de T_
117 .tm TOC____.sp \\$1
118 .tm TOC____\&\\h'\\$2u*2u*\\n(PIu'\\$3\0\0\a\t\\n(PN\fR
119 ..
121 . \" NH - redefine numbered heading
122 .de NH
123 .SH
124 .nr NS \\$1
125 .if !\\n(.$ .nr NS 1
126 .if !\\n(NS .nr NS 1
127 .nr H\\n(NS +1
128 .if \\n(NS<2 .nr H2 0
129 .if \\n(NS<3 .nr H3 0
130 .ds SN \\n(H1
131 .if \\n(NS>1 .as SN \&.\\n(H2
132 .if \\n(NS>2 .as SN \&.\\n(H3
133 ..
135 . \" H- - Chapter not numbered and not in TOC
136 .de H-
137 .EH "
138 .OH "
139 .bp
140 .if e .rs \" move to an odd page
141 .if e .bp
142 .lg 0
143 .nr PS +6
144 .nr VS +6
145 .SH
146 .ce 1
147 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
148 \&\\$1
149 .br
150 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
151 .nr PS -6
152 .nr VS -6
153 .lg
154 .EH "\\\\*(_E
155 .OH "\\\\*(_o
156 .ds CF \\n(PN
157 .RT
158 .sp 4
159 .nr PP 0
160 ..
162 . \" AP - Start the Appendix
163 .de AP
164 .nr _A 1
165 .nr H1 0
166 .af H1 A
167 ..
169 . \" H0 - Chapter ($2=="no" -> not numbered)
170 .de H0
171 .EH "
172 .OH "
173 .bp
174 .if e .rs \" begin chapter on an odd page
175 .if e .bp
176 .lg 0
177 .nr PS +6
178 .nr VS +6
179 .ie ,\\$2,no, .SH
180 .el \{\
181 . NH 1
182 . ce 1
183 .ie \\n(_A Appendix \\*(SN
184 .el Chapter \\*(SN
185 . sp .5
186 .\}
187 .ce 1
188 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
189 \&\\$1
190 .br
191 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
192 .nr PS -6
193 .nr VS -6
194 .lg
195 .\" add to TOC
196 .rm t_
197 .if !,\\$2,no, .ds t_ \\*(SN\0\0
198 .T_ .5v 0 "\fB\\*(t_\\$1
199 .\" set page headers and footers
200 .EH "\\\\*(_E
201 .ds _C "\\$1
202 .ie ,\\$2,no, .OH "\\\\*(_o
203 .el .ie \\n(_A .OH "\\\\*(_a
204 .el .OH "\\\\*(_O
205 .ds CF \\n(PN
206 .RT
207 .sp 4
208 .nr PP 0
209 ..
212 . \" H1 - Section ($2=="no" -> not numbered)
213 .de H1
214 .br
215 .ne 7
216 .sp
217 .lg 0
218 .nr PS +2
219 .nr VS +2
220 .ie '\\$2'no' .SH
221 .el .NH 2
222 .if !'\\$2'no' \&\\*(SN
223 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
224 \&\\$1
225 .br
226 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
227 .nr PS -2
228 .nr VS -2
229 .lg
230 .if !'\\$2'no' .T_ .3v 1 "\\*(SN\0\0\\$1 \" add to TOC
231 .RT
232 .nr PP 0
233 ..
235 . \" H2 - Subsection
236 .de H2
237 .br
238 .ne 4
239 .NH 3
240 \&\\*(SN \\$1
241 .T_ 0 2 "\\*(SN\0\0\\$1 \" add to TOC
242 .RT
243 .nr PP 0
244 ..
246 . \" U2 - Subsection unnumbered
247 .de U2
248 .br
249 .ne 4
250 .SH
251 \&\\$1
252 .RT
253 .nr PP 0
254 ..
256 . \" U3 - Subsubsection unnumbered
257 .de U3
258 .br
259 .ne 4
260 .RT
261 .sp
262 .I "\\$1
263 .RT
264 .nr PP 0
265 ..
267 . \" P - Paragraph (indented unless following a heading)
268 .de P
269 .ie \\n(PP .PP
270 .el .LP
271 .nr PP 1
272 ..
274 .am LP
275 .nr PP 1
276 ..
279 . \" LI - Numbered paragraph ``list item'' ($1=label)
280 .de LI
281 .ie \\n(.$ .IP "\\h'\\n(PIu'\\$1." 2u*\\n(PIu
282 .el .IP "\\h'\\n(PIu'\\(bu" 2u*\\n(PIu
283 .nr PP 1
284 ..
285 .ig \" backup
286 .ie \\n(.$ .IP "\h'1n'\\$1"
287 .el .IP "\h'1.5n'\\(bu"
288 ..
290 . \" BU - Bulleted paragraph
291 .de BU
292 .LI
293 ..
295 . \" QS - Block quote start
296 .de QS
297 .ti \\n(.iu
298 .\"RT
299 .sp 2u*\\n(PDu
300 .ne 1.1
301 .ps -1
302 .vs -1
303 .in +\\n(QIu
304 .ll -\\n(QIu
305 .ti \\n(.iu
306 .\"if \\n(Qp .ti +\\n(PIu
307 .\"nr QP 1
308 .\"rr Qp
309 ..
311 . \" QP - Block quote paragraph
312 .de QP
313 .sp \n(PDu
314 .ne 1.1
315 .ti +\\n(PIu
316 ..
318 . \" QP - Block quote end
319 .de QE
320 .sp \\n(PDu
321 .in -\\n(QIu
322 .ll +\\n(QIu
323 .ti \\n(.iu
324 .ps +1
325 .vs +1
326 ..
328 . \" DS - Code display
329 .am DS
330 .ft CW
331 .ps -1
332 .ta T 8n
333 ..
335 . \" VS - verbatim text start (\\ -> ^G; ' -> disabled; . -> ^B)
336 .de VS
337 .br
338 .ne 3
339 .sp \n(DDu
340 .di _V
341 .nf
342 .ft CW
343 .ps -.5
344 .\" set up verbatim environment
345 \.blm
346 \.ec 
347 \.c2 ""
348 \.cc 
349 ..
351 . \" VE - verbatim text end (NOTE: Needs to be called as ^BVE !)
352 .de VE
353 \" restore the special characters
354 cc
355 .c2
356 .ec
357 .br
358 .di
359 .ne \\n(dnu+1v \" ensure enough space on the page
360 .in +2u*\\n(PIu
361 .ta T 8n
362 \.ec  \" set up verbatim environment, once again
363 \.c2 ""
364 \.cc 
365 _V \" output the verbatim content
366 \" restore the special characters
367 cc
368 .c2
369 .ec
370 .blm __
371 .in -2u*\\n(PIu
372 .sp \n(DDu
373 .ft P
374 .fi
375 .TA
376 ..
378 . \" VF - verbatim text from file ($1=filename)
379 .de VF
380 .VS
381 so $1
382 VE
383 ..
385 . \" FA - XXX somehow related to footnotes?
386 .am FA
387 .ps 8
388 .vs 9
389 ..
391 .de Fn \" file name
392 .CW "\\$1" "\\$2
393 ..
394 .de Pn \" program name
395 .CW "\\$1" "\\$2
396 ..
397 .de Fu \" function
398 .CW "\\$1" "\\$2
399 ..
400 .de Ev \" env variable
401 .CW "\\$1" "\\$2
402 ..
403 .de Cl \" command line
404 `\c
405 .CW "\\$1" "'\\$2
406 ..
407 .de Sw \" switch
408 .CW "\\$1" "\\$2
409 ..
410 .de Ar \" argument
411 .CW "\f(CI\\$1" "\\$2
412 ..
413 .de Mp \" man page
414 .I "\\$1" "\\$2
415 ..
416 .de Pe \" profile entry
417 .CW "\\$1" "\\$2
418 ..
419 .de Hd \" mail header field
420 .CW "\\$1:\&" "\\$2
421 ..
423 .de Ci \" commit hash ref
424 .ds _t \\$1
425 .substring _t 0 6
426 [\(rh\|\fL\\*(_t\fP]\\$2
427 ..
429 . \" Cf - reference within the document ($1=name of ref file)
430 .de Cf
431 \.if !\\nZ .so refs/\\$1 \c
432 \\$2
433 ..
435 . \" Id - put a referenceable marker here ($1=identifier)
436 .de Id
437 .tm REF____\\$1\t\\*(SN\t\\n(PN
438 ..