meillo@0: .do xflag 3
meillo@0: .de __
meillo@0: ..
meillo@0: .blm __  \" ignore empty lines in input
meillo@0: .lc_ctype en_US.utf8
meillo@0: .mediasize a4
meillo@0: 
meillo@0: .fp 1 R urw/bookman/ubkl8a pfb
meillo@0: .fp 2 I urw/bookman/ubkli8a pfb
meillo@0: .fp 3 B urw/bookman/ubkd8a pfb
meillo@0: .fp 4 BI urw/bookman/ubkdi8a pfb
meillo@0: 
meillo@0: 
meillo@0: .ss 12 0  \" the second (non-portable) argument requests french spacing
meillo@0: 
meillo@0: .nr PI 4n
meillo@0: .nr PD .3v
meillo@0: .nr QI 2u*\n(PIu
meillo@0: .nr lu 0
meillo@0: .af PN i
meillo@0: 
meillo@0: .nr PS 12
meillo@0: .nr VS 18
meillo@0: 
meillo@0: .ds CH "
meillo@0: 
meillo@1: .nr PO 2.5c
meillo@1: .nr HM 3.5c
meillo@1: .nr FM 3.5c
meillo@0: .nr LL 15c
meillo@0: .ll 15c
meillo@0: .nr LT \n(LL
meillo@0: 
meillo@0: .	\" _M - change margins for text block on next page
meillo@0: .de _M
meillo@1: .\" if t .if o .nr PO 5c
meillo@1: .\" if t .if e .nr PO 3c
meillo@1: .\" nr PO 2.5c
meillo@1: .\" ds CF "
meillo@0: ..
meillo@1: .\" .wh -1u _M
meillo@1: 
meillo@1: .de _H
meillo@1: 'sp |\n(HMu-1.5c
meillo@1: .ps 12
meillo@1: .vs 14
meillo@1: .ft I
meillo@1: .tl 'Markus Schnalke: Die Anfaenge der digitalen Revolution''%'
meillo@1: .ft P
meillo@1: .ps
meillo@1: .vs
meillo@1: ..
meillo@1: .wh 1u _H
meillo@0: 
meillo@0: .	\" ZZ - enlarge or shorten the text block on the current
meillo@0: .	\"      page to avoid widows
meillo@0: .	\"  .ZZ      -> enlarge by one line
meillo@0: .	\"  .ZZ +3   -> enlarge by three lines
meillo@0: .	\"  .ZZ -2   -> shorten by two lines
meillo@0: .	\"  .ZZ +1c  -> enlarge by one centimeter
meillo@0: .	\"  .ZZ ""   -> reset to the default
meillo@0: .de ZZ
meillo@0: .ie \\n(.$=0 .ch FO -\\n(FMu+1v
meillo@0: .el .ch FO -\\n(FMu\\$1
meillo@0: ..
meillo@0: 
meillo@0: .	\" CW - Set text in CW font (similar to .B and .I)
meillo@0: .de CW
meillo@0: .nr PQ \\n(.f
meillo@0: .if t \{\
meillo@0: .	ft CW
meillo@0: .	if !^\\$1^^ \&\\$1\f\\n(PQ\\$2
meillo@0: .\}
meillo@0: .if n \{\
meillo@0: .	ie ^\\$1^^ .ul 999
meillo@0: .	el .ul 1
meillo@0: .	if \\n(.$=1 \&\\$1
meillo@0: .	if \\n(.$>1 \&\\$1\c
meillo@0: .	if \\n(.$>1 \&\\$2
meillo@0: .\}
meillo@0: ..
meillo@0: 
meillo@0: .	\" refer(1) stuff
meillo@0: .ds [. " [
meillo@0: .ds .] ]
meillo@0: .rm ]<
meillo@0: .de ]<
meillo@0: .	de FP
meillo@0: .	IP \\\\$1
meillo@0: \\..
meillo@0: .	rm FS FE
meillo@0: ..
meillo@0: 
meillo@0: .	\" PT - page top macro of ms
meillo@0: .am PT
meillo@0: .	rs
meillo@0: ..
meillo@0: 
meillo@0: 
meillo@0: .	\" RN - Reset PN and continue on an odd page ($1=number-format)
meillo@0: .de RN
meillo@0: .ie e .pn 1
meillo@0: .el \{
meillo@0: .       pn 0
meillo@0: .       bp
meillo@0: .\}
meillo@0: .ie \\n(.$=1 .af PN \\$1
meillo@0: .el .af PN 1
meillo@0: ..
meillo@0: 
meillo@0: 
meillo@0: .	\" T_ - Add TOC entry ($1=pre-space $2=indent-level $3=text)
meillo@0: .de T_
meillo@0: .tm TOC____.sp \\$1
meillo@0: .tm TOC____\&\\h'\\$2u*2u*\\n(PIu'\\$3\0\0\a\t\\n(PN\fR
meillo@0: ..
meillo@0: 
meillo@0: .	\" NH - redefine numbered heading
meillo@0: .de NH
meillo@0: .SH
meillo@0: .nr NS \\$1
meillo@0: .if !\\n(.$ .nr NS 1
meillo@0: .if !\\n(NS .nr NS 1
meillo@0: .nr H\\n(NS +1
meillo@0: .if \\n(NS<2 .nr H2 0
meillo@0: .if \\n(NS<3 .nr H3 0
meillo@0: .ds SN \\n(H1
meillo@0: .if \\n(NS>1 .as SN \&.\\n(H2
meillo@0: .if \\n(NS>2 .as SN \&.\\n(H3
meillo@0: ..
meillo@0: 
meillo@0: .	\" H- - Chapter not numbered and not in TOC
meillo@0: .de H-
meillo@1: .ig IG
meillo@0: .EH "
meillo@0: .OH "
meillo@1: .IG
meillo@0: .bp
meillo@0: .\" .if e .rs  \" move to an odd page
meillo@0: .\" .if e .bp
meillo@0: .lg 0
meillo@0: .nr PS +6
meillo@0: .nr VS +6
meillo@0: .SH
meillo@0: .ce 1
meillo@0: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
meillo@0: \&\\$1
meillo@0: .br
meillo@0: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
meillo@0: .nr PS -6
meillo@0: .nr VS -6
meillo@0: .lg
meillo@1: .ig IG
meillo@0: .EH "\\\\*(_E
meillo@0: .OH "\\\\*(_o
meillo@1: .IG
meillo@0: .\" .ds CF \\n(PN
meillo@0: .RT
meillo@0: .sp 4
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: .	\" AP - Start the Appendix
meillo@0: .de AP
meillo@0: .nr _A 1
meillo@0: .nr H1 0
meillo@0: .af H1 A
meillo@0: ..
meillo@0: 
meillo@0: .	\" H0 - Chapter ($2=="no" -> not numbered)
meillo@0: .de H0
meillo@1: .\" bp
meillo@0: .\" .if e .rs  \" begin chapter on an odd page
meillo@0: .\" .if e .bp
meillo@9: .sp
meillo@0: .lg 0
meillo@0: .nr PS +6
meillo@0: .nr VS +6
meillo@9: .ie ,\\$2,no, \{\
meillo@9: .	SH
meillo@9: .	ce 99
meillo@9: .\}
meillo@0: .el \{\
meillo@0: .	NH 1
meillo@9: .	ce 99
meillo@9: .	ie \\n(_A Appendix \\*(SN
meillo@9: .	el \\*(SN
meillo@0: .\}
meillo@0: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
meillo@0: \&\\$1
meillo@0: .br
meillo@9: .ce 0
meillo@0: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
meillo@0: .nr PS -6
meillo@0: .nr VS -6
meillo@0: .lg
meillo@0: .\" add to TOC
meillo@0: .rm t_
meillo@0: .if !,\\$2,no, .ds t_ \\Z'\\*(SN'\\h'3n'
meillo@0: .T_ .5v 0 "\fB\\*(t_\\$1
meillo@0: .RT
meillo@9: .sp 1.5
meillo@9: .ns
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: 
meillo@0: .	\" H1 - Section ($2=="no" -> not numbered)
meillo@0: .de H1
meillo@0: .br
meillo@0: .ne 7
meillo@0: .sp
meillo@0: .lg 0
meillo@0: .nr PS +2
meillo@0: .nr VS +2
meillo@0: .ie '\\$2'no' .SH
meillo@0: .el .NH 2
meillo@0: .if !'\\$2'no' \&\\*(SN
meillo@0: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
meillo@0: \&\\$1
meillo@0: .br
meillo@0: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
meillo@0: .nr PS -2
meillo@0: .nr VS -2
meillo@0: .lg
meillo@0: .if !'\\$2'no' .T_ .3v 1 "\\Z'\\*(SN'\\h'4n'\\$1  \" add to TOC
meillo@0: .RT
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: .	\" H2 - Subsection
meillo@0: .de H2
meillo@0: .br
meillo@0: .ne 4
meillo@0: .NH 3
meillo@0: \&\\*(SN \\$1
meillo@0: .T_ 0 2 "\\Z'\\*(SN'\\h'5.5n'\\$1  \" add to TOC
meillo@0: .RT
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: .	\" U1 - Section ($2=="yes" -> add to TOC)
meillo@0: .de U1
meillo@0: .br
meillo@0: .ne 7
meillo@0: .sp
meillo@0: .lg 0
meillo@0: .nr PS +2
meillo@0: .nr VS +2
meillo@0: .SH
meillo@0: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
meillo@0: \&\\$1
meillo@0: .br
meillo@0: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
meillo@0: .nr PS -2
meillo@0: .nr VS -2
meillo@0: .lg
meillo@0: .T_ .3v 1 "\\$1  \" add to TOC
meillo@0: .RT
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: 
meillo@0: .	\" U2 - Subsection unnumbered ($2=="yes" -> add to TOC)
meillo@0: .de U2
meillo@0: .br
meillo@0: .ne 4
meillo@0: .SH
meillo@0: \&\\$1
meillo@0: .if '\\$2'yes' .T_ 0 2 "\\Z'\\*(SN'\\h'5.5n'\\$1  \" add to TOC
meillo@0: .RT
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: .	\" U3 - Subsubsection unnumbered
meillo@0: .de U3
meillo@0: .br
meillo@0: .ne 4
meillo@0: .RT
meillo@0: .sp
meillo@0: .I "\\$1
meillo@0: .RT
meillo@0: .nr PP 0
meillo@0: ..
meillo@0: 
meillo@0: .	\" P - Paragraph (indented unless following a heading)
meillo@0: .de P
meillo@0: .ie \\n(PP .PP
meillo@0: .el .LP
meillo@0: .nr PP 1
meillo@0: ..
meillo@0: 
meillo@0: .am LP
meillo@0: .nr PP 1
meillo@0: ..
meillo@0: 
meillo@0: 
meillo@0: .	\" LI - Numbered paragraph ``list item'' ($1=label)
meillo@0: .de LI
meillo@0: .ie \\n(.$ .IP "\\h'\\n(PIu'\\$1." 2u*\\n(PIu
meillo@0: .el .IP "\\h'\\n(PIu'\\(bu" 2u*\\n(PIu
meillo@0: .nr PP 1
meillo@0: ..
meillo@0: .ig \" backup
meillo@0: .ie \\n(.$ .IP "\h'1n'\\$1"
meillo@0: .el .IP "\h'1.5n'\\(bu"
meillo@0: ..
meillo@0: 
meillo@0: .	\" BU - Bulleted paragraph
meillo@0: .de BU
meillo@0: .LI
meillo@0: ..
meillo@0: 
meillo@0: .	\" QS - Block quote start
meillo@0: .de QS
meillo@0: .ti \\n(.iu
meillo@0: .\"RT
meillo@0: .sp 2u*\\n(PDu
meillo@0: .ne 1.1
meillo@0: .ps -1
meillo@0: .vs -1
meillo@0: .in +\\n(QIu
meillo@0: .ll -\\n(QIu
meillo@0: .ti \\n(.iu
meillo@0: .\"if \\n(Qp .ti +\\n(PIu
meillo@0: .\"nr QP 1
meillo@0: .\"rr Qp
meillo@0: ..
meillo@0: 
meillo@0: .	\" QP - Block quote paragraph
meillo@0: .de QP
meillo@0: .sp \n(PDu
meillo@0: .ne 1.1
meillo@0: .ti +\\n(PIu
meillo@0: ..
meillo@0: 
meillo@0: .	\" QP - Block quote end
meillo@0: .de QE
meillo@0: .sp \\n(PDu
meillo@0: .in -\\n(QIu
meillo@0: .ll +\\n(QIu
meillo@0: .ti \\n(.iu
meillo@0: .ps +1
meillo@0: .vs +1
meillo@0: ..
meillo@0: 
meillo@0: .	\" DS - Code display
meillo@0: .am DS
meillo@0: .ft CW
meillo@0: .ps -1
meillo@0: .ta T 8n
meillo@0: ..
meillo@0: 
meillo@0: .	\" VS - verbatim text start (\\ -> ^G; ' -> disabled; . -> ^B)
meillo@0: .de VS
meillo@0: .br
meillo@0: .ne 3
meillo@0: .sp \n(DDu
meillo@0: .di _V
meillo@0: .nf
meillo@0: .ft CW
meillo@0: .ps -.5
meillo@0: .\" set up verbatim environment
meillo@0: \.blm
meillo@0: \.ec 
meillo@0: \.c2 ""
meillo@0: \.cc 
meillo@0: ..
meillo@0: 
meillo@0: .	\" VE - verbatim text end  (NOTE: Needs to be called as ^BVE !)
meillo@0: .de VE
meillo@0: \" restore the special characters
meillo@0: cc
meillo@0: .c2
meillo@0: .ec
meillo@0: .br
meillo@0: .di
meillo@0: .ne \\n(dnu+1v \" ensure enough space on the page
meillo@0: .in +2u*\\n(PIu
meillo@0: .ta T 8n
meillo@0: \.ec  \" set up verbatim environment, once again
meillo@0: \.c2 ""
meillo@0: \.cc 
meillo@0: _V \" output the verbatim content
meillo@0: \" restore the special characters
meillo@0: cc
meillo@0: .c2
meillo@0: .ec
meillo@0: .blm __
meillo@0: .in -2u*\\n(PIu
meillo@0: .sp \n(DDu
meillo@0: .ps +.5
meillo@0: .ft P
meillo@0: .fi
meillo@0: .TA
meillo@0: ..
meillo@0: 
meillo@0: .	\" VF - verbatim text from file  ($1=filename)
meillo@0: .de VF
meillo@0: .VS
meillo@0: so $1
meillo@0: VE
meillo@0: ..
meillo@0: 
meillo@0: .de Fn  \" file name
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Pn  \" program name
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Fu  \" function
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Ev  \" env variable
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Cl  \" command line
meillo@0: `\c
meillo@0: .CW "\\$1" "'\\$2
meillo@0: ..
meillo@0: .de Sw  \" switch
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Ar  \" argument
meillo@0: .CW "\f(CI\\$1" "\\$2
meillo@0: ..
meillo@0: .de Mp  \" man page
meillo@0: .I "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Pe  \" profile entry
meillo@0: .CW "\\$1" "\\$2
meillo@0: ..
meillo@0: .de Hd  \" mail header field
meillo@0: .CW "\\$1:\&" "\\$2
meillo@0: ..
meillo@0: 
meillo@0: .de Ci  \" commit hash ref
meillo@0: .ds _t \\$1
meillo@0: .substring _t 0 6
meillo@0: [\(rh\|\fL\\*(_t\fP]\\$2
meillo@0: ..
meillo@0: 
meillo@0: .	\" Cf - reference within the document ($1=name of ref file)
meillo@0: .de Cf
meillo@0: \.if !\\nZ .so refs/\\$1 \c
meillo@0: \\$2
meillo@0: ..
meillo@0: 
meillo@0: .	\" Id - put a referenceable marker here ($1=identifier)
meillo@0: .de Id
meillo@0: .tm REF____\\$1\t\\*(SN\t\\n(PN
meillo@0: ..