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@36: .ds _f libertine meillo@36: meillo@36: .if '\*(_f'bookman' \{\ 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@36: .\} meillo@36: .if '\*(_f'sabon' \{\ meillo@36: .fp 1 R sabon-t1/psbr8a pfb meillo@36: .fp 2 I sabon-t1/psbri8 pfb meillo@36: .fp 3 B sabon-t1/psbb8 pfb meillo@36: .fp 4 BI sabon-t1/psbbi8 pfb meillo@36: .\} meillo@36: .if '\*(_f'palatino' \{\ meillo@36: .fp 1 R urw/palatino/uplr8a pfb meillo@36: .fp 2 I urw/palatino/uplri8 pfb meillo@36: .fp 3 B urw/palatino/uplb8 pfb meillo@36: .fp 4 BI urw/palatino/uplbi8 pfb meillo@36: .\} meillo@36: .if '\*(_f'libertine' \{\ meillo@36: .fp 1 R LinLibertine_R otf meillo@40: .feature R +onum meillo@36: .fp 2 I LinLibertine_RI otf meillo@40: .feature I +onum meillo@36: .fp 3 B LinLibertine_RB otf meillo@40: .feature B +onum meillo@36: .fp 4 BI LinLibertine_RBI otf meillo@40: .feature BI +onum meillo@36: .\} 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@49: .nr PD 0 \".3v meillo@0: .nr QI 2u*\n(PIu meillo@0: .nr lu 0 meillo@0: .af PN i meillo@23: .af % i meillo@0: meillo@49: .hylang de_DE meillo@49: meillo@30: .nr PS 11 meillo@30: .nr VS 16 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@23: .ie \\n(.$=1 \{\ meillo@23: . af PN \\$1 meillo@23: . af % \\$1 meillo@23: .\} meillo@23: .el \{\ meillo@23: . af PN 1 meillo@23: . af % 1 meillo@23: .\} 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@31: . \" H- - Chapter not numbered and not in TOC ($2==yes -> 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@31: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZäÄöÖüÜ meillo@0: \&\\$1 meillo@31: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzzääööüü meillo@0: .br 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@31: .if '\\$2'yes' \{ meillo@31: .rm t_ meillo@31: .T_ .5v 0 "\fB\\*(t_\\$1 meillo@31: .\} meillo@0: .RT meillo@31: .sp 2 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@30: .br meillo@0: .lg 0 meillo@30: .nr PS +4 meillo@30: .nr VS +4 meillo@9: .ie ,\\$2,no, \{\ meillo@9: . SH meillo@9: . ce 99 meillo@49: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZäÄöÖüÜ meillo@30: \&\\$1 meillo@49: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzzääööüü meillo@9: .\} meillo@0: .el \{\ meillo@0: . NH 1 meillo@9: . ce 99 meillo@49: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZäÄöÖüÜ meillo@30: . ie \\n(_A Appendix \\*(SN. \\$1 meillo@30: . el \\*(SN. \\$1 meillo@49: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzzääööüü meillo@0: .\} meillo@0: .br meillo@9: .ce 0 meillo@30: .nr PS -4 meillo@30: .nr VS -4 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@30: .sp .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@49: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZäÄöÖüÜ meillo@0: \&\\$1 meillo@0: .br meillo@49: .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@30: .sp .5 meillo@0: .ne 7 meillo@0: .lg 0 meillo@0: .nr PS +2 meillo@0: .nr VS +2 meillo@30: .ns meillo@0: .SH meillo@0: \&\\$1 meillo@0: .br 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@30: .sp .5 meillo@0: .ne 4 meillo@30: .ns 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: ..