260 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .\"	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
 |