261 lines
5.7 KiB
Plaintext
261 lines
5.7 KiB
Plaintext
.\" MACROES FOR SECTIONS (file tmac.q1)
|
|
.\"
|
|
.\" Th.A. Zoethout
|
|
.\"
|
|
.de RP \" SET TO REPORT MODE
|
|
.\" .RP
|
|
. \" The initial mode is manual ( \n(RP=1 ).
|
|
.nr RP 0
|
|
.nr M1 1
|
|
.nr M2 1
|
|
.nr M3 1
|
|
.nr M4 1
|
|
.nr M5 1
|
|
.nr TP 0
|
|
.if \\n(nl<0 .Pn
|
|
.rm RP
|
|
..
|
|
.de SN \" SET SECTION NUMBERS
|
|
.\" .SN [ $1 [ $2 [ $3 [ $4 [$5] ] ] ] ]
|
|
. \" $1 = first section number level 1
|
|
. \" $2 = first section number level 2
|
|
. \" $3 = first section number level 3
|
|
. \" $4 = first section number level 4
|
|
. \" $4 = first appendix number
|
|
.nr S1 0
|
|
.if \\n(.$>0 .nr S1 \\$1
|
|
.nr S2 0
|
|
.if \\n(.$>1 .nr S2 \\$2
|
|
.nr S3 0
|
|
.if \\n(.$>2 .nr S3 \\$3
|
|
.nr S4 0
|
|
.if \\n(.$>3 .nr S4 \\$4
|
|
.nr S5 0
|
|
.if \\n(.$>4 .nr S5 \\$5
|
|
.if \\n(.$>0 .nr S\\n(.$ -1
|
|
..
|
|
.de SM \" SET MODE FOR SECTION TITLES
|
|
.\" .SM [ Sn [ $2 ... ] ]
|
|
. \" Sn = section level S1 S2 S3 S4 AP
|
|
. \" $2 ... = Capital, Bold, Underlined.
|
|
. \" $2 = absent resets, C, B and U are accumulative
|
|
.nr SM 0
|
|
.if \&\\$1\&S1\& .nr SM 1
|
|
.if \&\\$1\&S2\& .nr SM 2
|
|
.if \&\\$1\&S3\& .nr SM 3
|
|
.if \&\\$1\&S4\& .nr SM 4
|
|
.if \&\\$1\&AP\& .nr SM 5
|
|
.if \\n(SM=0 \{\
|
|
.Er W ".SM: unknown section level \\$1
|
|
.nr SM 4 \}
|
|
.nr M\\n(SM 0
|
|
.if \\n(.$>1 .So \\$2
|
|
.if \\n(.$>2 .So \\$3
|
|
.if \\n(.$>3 .So \\$4
|
|
.if \\n(.$>4 .So \\$5
|
|
.rr SM
|
|
..
|
|
.de S1 \" START SECTION AT LEVEL 1
|
|
.\" .S1 [ $1 ... ]
|
|
. \" $1 ... = heading of section
|
|
. \" Report mode headings need 9 lines on the page.
|
|
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
|
.if \&\\*(St\&\& .ds St Chapter
|
|
.Ss 1 1
|
|
.Se 1 2 4
|
|
.Ca 0
|
|
.ie \\n(RP=0 .Sh 1 1
|
|
.el .Sc 1 2
|
|
..
|
|
.de S2 \" START SECTION AT LEVEL 2
|
|
.\" .S2 [ $1 ... ]
|
|
. \" $1 ... = heading of section
|
|
. \" Needs 7 lines on the page
|
|
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
|
.Ss 2 1
|
|
.Se 0 1 3
|
|
.if !\&\\*(St\&\& .Ca 2
|
|
.Si 2 0
|
|
..
|
|
.de S3 \" START SECTION AT LEVEL 3
|
|
.\" .S3 [ $1 ... ]
|
|
. \" $1 ... = heading of section
|
|
. \" Needs 6 lines on the page
|
|
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
|
.Ss 3 1
|
|
.Se 0 0 3
|
|
.if !\&\\*(St\&\& .Ca 4
|
|
.Si 3 0
|
|
..
|
|
.de S4 \" START SECTION AT LEVEL 4
|
|
.\" .S4 [ $1 ... ]
|
|
. \" $1 ... = heading of section
|
|
. \" needs 6 lines on the page
|
|
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
|
.Ss 4 1
|
|
.Se 0 0 3
|
|
.if !\&\\*(St\&\& .Ca 6
|
|
.Si 4 0
|
|
..
|
|
.de AP \" START APPENDIX
|
|
.\" .AP [ $1 ... ]
|
|
. \" $1 ... = heading of appendix
|
|
. \" Report mode appendices are level 1 sections
|
|
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
|
.if \&\\*(St\&\& .ds St Appendix
|
|
.Ss 5 A
|
|
.Se 2 2 4
|
|
.Ca 0
|
|
.ie \\n(RP=0 .Sh 1 1
|
|
.el .Sc 5 2
|
|
..
|
|
.de CT \" OUTPUT TABLE OF CONTENTS
|
|
.\" .CT
|
|
.ti \\n(.iu
|
|
.Cc
|
|
.rm Cc
|
|
..
|
|
.de So \" decode section mode options
|
|
.\" .So $1
|
|
. \" $1 = Capital, Bold, Underlined, larger Size
|
|
.if \&\\$1\&S\& .nr M\\n(SM +8
|
|
.if \&\\$1\&C\& .nr M\\n(SM +4
|
|
.if \&\\$1\&B\& .nr M\\n(SM +2
|
|
.if \&\\$1\&U\& .nr M\\n(SM +1
|
|
..
|
|
.de Ss \" compose section number
|
|
. \" $1 = section level
|
|
. \" $2 = format for heading
|
|
.ie \\$1=5 .nr Ss 0
|
|
.el .nr Ss \\$1
|
|
.if \\n(Ss=0 .nr S5 +1
|
|
.ie \\n(Ss=1 .nr S1 +1
|
|
.el .if \\n(Ss<1 .nr S1 \\n(S5
|
|
.ie \\n(Ss=2 .nr S2 +1
|
|
.el .if \\n(Ss<2 .nr S2 0
|
|
.ie \\n(Ss=3 .nr S3 +1
|
|
.el .if \\n(Ss<3 .nr S3 0
|
|
.ie \\n(Ss=4 .nr S4 +1
|
|
.el .if \\n(Ss<4 .nr S4 0
|
|
.if \\n(Ss=0 .nr Ss 1
|
|
.af S\\n(Ss \\$2
|
|
.ie \&\\*(St\&\& .ds Sn "\\n(S\\n(Ss.
|
|
.el \{\
|
|
.ds Sn "\\n(S1.
|
|
.if \\n(Ss>1 .as Sn "\\n(S2
|
|
.if \\n(Ss>2 .as Sn ".\\n(S3
|
|
.if \\n(Ss>3 .as Sn ".\\n(S4\}
|
|
.rr Ss
|
|
..
|
|
.de Se \" end previous section
|
|
. \" $1 = next section: 0 - Sub, 1 - Main, 2 - Appendix
|
|
. \" $2 = extra vertical spacing ending previous section
|
|
. \" $3 = extra need next section
|
|
.if \\$1=1 .if \\n(S5>0 \
|
|
. Er F ".S1: sections cannot follow an appendix
|
|
.ch Id
|
|
.Cr
|
|
.if \\n(TP>0 .rs
|
|
.ie (\\n(RP=1)&(\\$1>0)&(\\n(nl>=0) .bp
|
|
.el \{\
|
|
.if \\n(NS>0 .sp \\$2v
|
|
.if \\n(NS=0 .sp \\$2v+\\n(VSu
|
|
.ne \\$3v+\\n(NDv \}
|
|
.if \\$1=1 .if \\n(RP>0 .nr FN 1
|
|
.in 0
|
|
.ti \\n(.iu
|
|
.ll \\n(LLu
|
|
.rs
|
|
..
|
|
.de Ca \" append to table of contents
|
|
. \" $1 = initial indent of line
|
|
.da Cc
|
|
.if \\$1=0 \!.sp \\\\n(VSu
|
|
.if \\$1=0 \!.ne 2u*\\\\n(NDv
|
|
\!.ti \\\n(.iu
|
|
\!\l\&\\$1n\ \&\\*(Sn\ \\*(St\ \l\&|\\\\n(.lu-\w\&\ \\n%\&u.\&\ \\n%
|
|
\!.br
|
|
.da
|
|
..
|
|
.de Sm \" apply section title modes
|
|
. \" $1 = level of section: 1 2 3 4 5 (=AP)
|
|
.nr Sm \\n(M\\$1
|
|
.if \\n(Sm>=8 \{\
|
|
.if !\&\\*(St\&\& .ds St \s+2\\*(St\s0
|
|
.ds Sn \s+2\\*(Sn\s0
|
|
.nr Sm -8 \}
|
|
.if \\n(Sm>=4 \{\
|
|
.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
|
|
.nr Sm -4 \}
|
|
.if \\n(Sm>=2 \{\
|
|
.if !\&\\*(St\&\& .ds St \f3\\*(St\fP
|
|
.ds Sn \f3\\*(Sn\fP
|
|
.nr Sm -2 \}
|
|
.if \\n(Sm=1 \{\
|
|
.if !\&\\*(St\&\& .ds St \f2\\*(St\fP
|
|
.ds Sn \f2\\*(Sn\fP \}
|
|
.rr Sm
|
|
..
|
|
.de Si \" sub-section heading
|
|
. \" $1 = level of section
|
|
. \" $2 = extra vertical spacing succeding heading
|
|
.ie !\&\\*(St\&\& .Sh \\$1 \\$2
|
|
.el \{\
|
|
.Sm \\$1
|
|
.ne 3v
|
|
\&\\*(Sn\ \ \c
|
|
.nr Id \w\&\\*(Sn\ \ \&
|
|
.wh \\n(nlu+1v Id
|
|
.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
|
|
.rm Sn \}
|
|
..
|
|
.de Sh \" left adjusted section heading
|
|
. \" $1 = level of section
|
|
. \" $2 = extra vertical spacing succeeding heading
|
|
.Sm \\$1
|
|
\\*(Sn\ \ \\*(St
|
|
.if \\n(NS>0 .if \\$2>0 .sp \\$2v
|
|
.if \\n(NS=0 .if (\\$2v+\\n(VS)>0 .sp \\$2v+\\n(VSu
|
|
.nr NS 0
|
|
.ti \\n(INu
|
|
.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
|
|
.rm Sn
|
|
.rm St
|
|
..
|
|
.de Id \" trap macro for indented section headings
|
|
\\*(Ncti \\n(.iu+\\n(Idu \" This calls ti
|
|
.if \&\\n(.z\&\& .ch Id
|
|
..
|
|
.de Sc \" centered section heading
|
|
. \" $1 = level of section
|
|
. \" $2 = extra vertical spacing succeeding heading
|
|
.if \\$1=1 \{.af S1 I
|
|
.ds Sn "\\n(S1\
|
|
.af S1 1
|
|
.if \\n(S1=0 .ds Sn "\}
|
|
.Sm \\$1
|
|
\h#\\n(.lu-\\n(.iu-\w\&\\*(St\&u/2u-\w\&\\*(Sn\ \&u#\\*(Sn\ \\*(St
|
|
.if \\n(NS>0 .if \\$2>0 .sp \\$2v
|
|
.if \\n(NS=0 .if (\\$2v+\\n(VS)>0 .sp \\$2v+\\n(VSu
|
|
.nr NS 0
|
|
.ti \\n(INu
|
|
.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
|
|
.rm Sn
|
|
.rm St
|
|
..
|
|
. \" INITIALISATION
|
|
.nr S1 0
|
|
.nr S2 0
|
|
.nr S3 0
|
|
.nr S4 0
|
|
.nr S5 0
|
|
.nr M1 4
|
|
.nr M2 1
|
|
.nr M3 1
|
|
.nr M4 1
|
|
.nr M5 4
|
|
.nr TP 1
|
|
.nr RP 1
|
|
.\*($0
|
|
.rm $0
|