docs/master

view style @ 184:1d28ed59de8a

Added appendix ``tools of mmh''
author markus schnalke <meillo@marmaro.de>
date Wed, 11 Jul 2012 11:04:43 +0200
parents 97461b0b34d2
children 6f8adf7d190c
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 _O '\f(SCChapter \\\\n(H1\ \ \\\\*(_C\fP''\\\\n(PN' \" right
47 .ds _o '\f(SC\\\\*(_C\fP''\\\\n(PN' \" right
48 .ds CH "
50 .nr HM 3.3c
51 .nr FM 6.6c
52 .nr LL 13c
53 .ll 13c
54 .nr LT \n(LL
56 . \" _M - change margins for text block on next page
57 .de _M
58 .if t .if o .nr PO 5c
59 .if t .if e .nr PO 3c
60 .ds CF "
61 ..
62 .wh -1u _M
64 . \" Lp - enlarge the current page by one line to avoid widows
65 .de Lp
66 .ch FO -\n(FMu+1v
67 ..
69 . \" CW - Set text in CW font (similar to .B and .I)
70 .de CW
71 .nr PQ \\n(.f
72 .if t \{\
73 . ft CW
74 . if !^\\$1^^ \&\\$1\f\\n(PQ\\$2
75 .\}
76 .if n \{\
77 . ie ^\\$1^^ .ul 999
78 . el .ul 1
79 . if \\n(.$=1 \&\\$1
80 . if \\n(.$>1 \&\\$1\c
81 . if \\n(.$>1 \&\\$2
82 .\}
83 ..
85 . \" refer(1) stuff
86 .ds [. " [
87 .ds .] ]
88 .rm ]<
89 .de ]<
90 . de FP
91 . IP \\\\$1
92 \\..
93 . rm FS FE
94 ..
96 . \" PT - page top macro of ms
97 .am PT
98 . rs
99 ..
102 . \" RN - Reset PN and continue on an odd page ($1=number-format)
103 .de RN
104 .ie e .pn 1
105 .el \{
106 . pn 0
107 . bp
108 .\}
109 .ie \\n(.$=1 .af PN \\$1
110 .el .af PN 1
111 ..
114 . \" T_ - Add TOC entry ($1=pre-space $2=indent-level $3=text)
115 .de T_
116 .tm TOC____.sp \\$1
117 .tm TOC____\&\\h'\\$2u*2u*\\n(PIu'\\$3\0\0\a\t\\n(PN\fR
118 ..
120 . \" NH - redefine numbered heading
121 .de NH
122 .SH
123 .nr NS \\$1
124 .if !\\n(.$ .nr NS 1
125 .if !\\n(NS .nr NS 1
126 .nr H\\n(NS +1
127 .if \\n(NS<2 .nr H2 0
128 .if \\n(NS<3 .nr H3 0
129 .ds SN \\n(H1
130 .if \\n(NS>1 .as SN \&.\\n(H2
131 .if \\n(NS>2 .as SN \&.\\n(H3
132 ..
134 . \" H- - Chapter unnumbered and not in TOC ($2=="no" -> no page hdrs)
135 .de H-
136 .EH "
137 .OH "
138 .bp
139 .if e .rs \" move to an odd page
140 .if e .bp
141 .lg 0
142 .nr PS +6
143 .nr VS +6
144 .SH
145 .ce 1
146 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
147 \&\\$1
148 .br
149 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
150 .nr PS -6
151 .nr VS -6
152 .lg
153 .if !,\\$2,no, \{
154 . EH "\\\\*(_E
155 . ie \\n(H1 .OH "\\\\*(_O
156 . el .OH "\\\\*(_o
157 . ds CF \\n(PN
158 .\}
159 .RT
160 .sp 4
161 .nr PP 0
162 ..
164 . \" H0 - Chapter ($2=="no" -> not numbered)
165 .de H0
166 .EH "
167 .OH "
168 .bp
169 .if e .rs \" begin chapter on an odd page
170 .if e .bp
171 .lg 0
172 .nr PS +6
173 .nr VS +6
174 .ie ,\\$2,no, .SH
175 .el \{\
176 . NH 1
177 . ce 1
178 Chapter \\*(SN
179 . sp .5
180 .\}
181 .ce 1
182 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
183 \&\\$1
184 .br
185 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
186 .nr PS -6
187 .nr VS -6
188 .lg
189 .\" add to TOC
190 .rm t_
191 .if !,\\$2,no, .ds t_ \\*(SN\0\0
192 .T_ .5v 0 "\fB\\*(t_\\$1
193 .\" set page headers and footers
194 .EH "\\\\*(_E
195 .ds _C "\\$1
196 .ie \\n(H1 .OH "\\\\*(_O
197 .el .OH "\\\\*(_o
198 .ds CF \\n(PN
199 .RT
200 .sp 4
201 .nr PP 0
202 ..
205 . \" H1 - Section ($2=="no" -> not numbered)
206 .de H1
207 .br
208 .ne 7
209 .sp
210 .lg 0
211 .nr PS +2
212 .nr VS +2
213 .ie '\\$2'no' .SH
214 .el .NH 2
215 .if !'\\$2'no' \&\\*(SN
216 .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
217 \&\\$1
218 .br
219 .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
220 .nr PS -2
221 .nr VS -2
222 .lg
223 .if !'\\$2'no' .T_ .3v 1 "\\*(SN\0\0\\$1 \" add to TOC
224 .RT
225 .nr PP 0
226 ..
228 . \" H2 - Subsection
229 .de H2
230 .br
231 .ne 4
232 .NH 3
233 \&\\*(SN \\$1
234 .T_ 0 2 "\\*(SN\0\0\\$1 \" add to TOC
235 .RT
236 .nr PP 0
237 ..
239 . \" U2 - Subsection unnumbered
240 .de U2
241 .br
242 .ne 4
243 .SH
244 \&\\$1
245 .RT
246 .nr PP 0
247 ..
249 . \" U3 - Subsubsection unnumbered
250 .de U3
251 .br
252 .ne 4
253 .RT
254 .sp
255 .I "\\$1
256 .RT
257 .nr PP 0
258 ..
260 . \" P - Paragraph (indented unless following a heading)
261 .de P
262 .ie \\n(PP .PP
263 .el .LP
264 .nr PP 1
265 ..
267 .am LP
268 .nr PP 1
269 ..
272 . \" LI - Numbered paragraph ``list item'' ($1=label)
273 .de LI
274 .ie \\n(.$ .IP "\\h'\\n(PIu'\\$1." 2u*\\n(PIu
275 .el .IP "\\h'\\n(PIu'\\(bu" 2u*\\n(PIu
276 .nr PP 1
277 ..
278 .ig \" backup
279 .ie \\n(.$ .IP "\h'1n'\\$1"
280 .el .IP "\h'1.5n'\\(bu"
281 ..
283 . \" BU - Bulleted paragraph
284 .de BU
285 .LI
286 ..
288 . \" QS - Block quote start
289 .de QS
290 .ti \\n(.iu
291 .\"RT
292 .sp 2u*\\n(PDu
293 .ne 1.1
294 .ps -1
295 .vs -1
296 .in +\\n(QIu
297 .ll -\\n(QIu
298 .ti \\n(.iu
299 .\"if \\n(Qp .ti +\\n(PIu
300 .\"nr QP 1
301 .\"rr Qp
302 ..
304 . \" QP - Block quote paragraph
305 .de QP
306 .sp \n(PDu
307 .ne 1.1
308 .ti +\\n(PIu
309 ..
311 . \" QP - Block quote end
312 .de QE
313 .sp \\n(PDu
314 .in -\\n(QIu
315 .ll +\\n(QIu
316 .ti \\n(.iu
317 .ps +1
318 .vs +1
319 ..
321 . \" DS - Code display
322 .am DS
323 .ft CW
324 .ps -1
325 .ta T 8n
326 ..
328 . \" VS - verbatim text start (\\ -> ^G; ' -> disabled; . -> ^B)
329 .de VS
330 .br
331 .ne 3
332 .sp \n(DDu
333 .di _V
334 .nf
335 .ft CW
336 .ps -.5
337 .\" set up verbatim environment
338 \.blm
339 \.ec 
340 \.c2 ""
341 \.cc 
342 ..
344 . \" VE - verbatim text end (NOTE: Needs to be called as ^BVE !)
345 .de VE
346 \" restore the special characters
347 cc
348 .c2
349 .ec
350 .br
351 .di
352 .ne \\n(dnu+1v \" ensure enough space on the page
353 .in +2u*\\n(PIu
354 .ta T 8n
355 \.ec  \" set up verbatim environment, once again
356 \.c2 ""
357 \.cc 
358 _V \" output the verbatim content
359 \" restore the special characters
360 cc
361 .c2
362 .ec
363 .blm __
364 .in -2u*\\n(PIu
365 .sp \n(DDu
366 .ft P
367 .fi
368 .TA
369 ..
371 . \" VF - verbatim text from file ($1=filename)
372 .de VF
373 .VS
374 so $1
375 VE
376 ..
378 . \" FA - XXX somehow related to footnotes?
379 .am FA
380 .ps 8
381 .vs 9
382 ..
384 .de Fn \" file name
385 .CW "\\$1" "\\$2
386 ..
387 .de Pn \" program name
388 .CW "\\$1" "\\$2
389 ..
390 .de Fu \" function
391 .CW "\\$1" "\\$2
392 ..
393 .de Ev \" env variable
394 .CW "\\$1" "\\$2
395 ..
396 .de Cl \" command line
397 `\c
398 .CW "\\$1" "'\\$2
399 ..
400 .de Sw \" switch
401 .CW "\\$1" "\\$2
402 ..
403 .de Ar \" argument
404 .CW "\f(CI\\$1" "\\$2
405 ..
406 .de Mp \" man page
407 .I "\\$1" "\\$2
408 ..
409 .de Pe \" profile entry
410 .CW "\\$1" "\\$2
411 ..
412 .de Hd \" mail header field
413 .CW "\\$1:\&" "\\$2
414 ..
416 .de Ci \" commit hash ref
417 .ds _t \\$1
418 .substring _t 0 6
419 [\(rh\|\fL\\*(_t\fP]\\$2
420 ..
422 . \" Cf - reference within the document ($1=name of ref file)
423 .de Cf
424 \.if !\\nZ .so refs/\\$1 \c
425 \\$2
426 ..
428 . \" Id - put a referenceable marker here ($1=identifier)
429 .de Id
430 .tm REF____\\$1\t\\*(SN\t\\n(PN
431 ..