123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- .\" 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
|