.\" $Header$
.\"		PUBMAC
.\"
.\"	MACROES FOR FORMATTING TEXT
.\"
.\"		Th.A. Zoethout
.\"
.\"	GENERAL PAGE CONTROL MACROES
.\"
.de SS			\" SET POINT SIZES
.\"	.SS [ $1 [$2] ]
.			\" $1 = point size { 10 }
.			\" $2 = footnote point size { $1-2 }
.ps 10
.if \\n(.$>0 .ps \\$1	   \" for troff
.nr SS \\n(.s
.ev 1
.ie \\n(.$>1 .ps \\$2
.el .ps \\n(SS-2
.nr Sf \\n(.s
.ps \\n(SS
.ev
.\\*(Ld
.\\*(Vs
..
.\"
.de TP			\" SET NUMBER OF FREE PAGES
.\"	.TP [$1]
.			\" $1 = number of free pages { 1 }
.			\" initially one free page
.nr TP 1
.if \\n(.$>0 .if \\$1>=0 .nr TP \\$1
.if \\n(nl<0 .Pn
.rm TP
..
.de PL			\" SET VERTICAL SIZES
.\"	.PL [ $1 [ $2 [$3] ] ]
.			\" $1 = paper size { A4 }
.			\" $2 = text size { 27.38c }
.			\" $3 = offset from top of paper { 1.35c }
.			\" constraints: $2+$3 <= $1
.\" The distance from the foot margin to the bottom of the
.\" paper (\n(Bd) is implicit { \n(.p - \n(Td - \n(Pl }
.ie \\n(.$>0 .pl \\$1
.el .pl 29.73c
.ie \\n(.$>1 .nr Pl \\$2v
.el .nr Pl 27.38c
.if \\n(Pl>\\n(.p .Er F ".PL: page size(\\n(Pl) > paper size(\\n(.p)
.ie \\n(.$>2 .nr Td \\$3v
.el .nr Td 1.35c
.nr Bd \\n(.p-\\n(Td-\\n(Pl
.if \\n(Bd<=0 \
.	Er F ".PL: top offset(\\n(Td) + page size(\\n(Pl) > paper size(\\n(.p)
.nr Tm \\n(Tdu+\\n(Ttu+\\n(Tsu
.nr Bm \\n(Bsu+\\n(Btu+\\n(Bdu
.ch Bm \\n(.pu-\\n(Bmu
.if \\n(Fl>0 .Fp
.rr Pl
..
.de LL			\" SET HORIZONTAL SIZES
.\"	.LL [ $1 [$2] ]
.			\" $1 = line length { 6.5i }
.			\" $2 = footnote line length { $1*10/11 }
.ll 16.02c
.if \\n(.$>0 .ll \\$1
.lt \\n(.lu
.nr LL \\n(.l
.ev 1
.ll \\n(LLu
.lt \\n(LLu
.ev
.ie \\n(.$>1 .nr Lf \\$2m
.el .nr Lf \\n(LLu*10/11
..
.\"			\" PAGE SIZES
.\"	Default is 11 inch, 6.5 inch line length
.\"	The .An macros set to European standard sizes.
.\"		LL	PL	TL	Of
.\"	A0	74.09	118.92	108.92	5
.\"	A1	51.46	84.09	78.09	4
.\"	A2	35.045	59.46	52.46	3.5
.\"	A3	23.73	42.045	36.045	3
.\"	A4	16.02	29.73	27.38	1.35
.\"	A5	11.60	21.022	18.33	1.20
.\"	All sizes in cm.
.\"	The .An macros have one parameter. An optional -.
.\"	If this is used the page size is not altered, to allow
.\"	for example printing A5 pages on A4 paper.
.\"
.de A0			\" SET PAGE SIZE TO A0
.\"	.A0 [ - ]
.if !\\n(.$ .pl 118.92c
.PL \\n(.pu 108.92c 5c
.LL 74.09c
..
.de A1			\" SET PAGE SIZE TO A1
.\"	.A1 [ - ]
.if !\\n(.$ .pl 84.09c
.PL \\n(.pu 78.09c 4c
.LL 51.45c
..
.de A2			\" SET PAGE SIZE TO A2
.\"	.A2 [ - ]
.if !\\n(.$ .pl 59.46c
.PL \\n(.pu 52.46c 3.5c
.LL 35.045c
..
.de A3			\" SET PAGE SIZE TO A3
.\"	.A3 [ - ]
.if !\\n(.$ .pl 42.045c
.PL \\n(.pu 36.045c 3c
.LL 23.73c
..
.de A4			\" SET PAGE SIZE TO A4
.\"	.A4 [ - ]
.if !\\n(.$ .pl 29.73c
.PL \\n(.pu 27.38c 1.35c
.LL 16.02c
..
.de A5			\" SET PAGE SIZE TO A5
.\"	.A5 [ - ]
.if !\\n(.$ .pl 21.022c
.PL \\n(.pu 19c 0.9c
.LL 12c
..
.\"de PO		\" PAGE OFFSET
.\"	.PO [$1]
.			\" $1 = page offset in characters { 1 }
.\"ie \\n(.$>0 .po \\$1m
.\"el .po 1m
.rn po PO
.\".
.\"
.\"	MARGIN TEXT CONTROL
.\"
.de MT			\" MARGIN TEXT SETTINGS
.\"	.MT $1 [$2] [$3]
.			\" $1 = Top or Bottom
.			\" $2 = Even[Odd], All { no title }
.			\" $3 = Vertical spacing to/from text { 2 }
.ds Mc N
.if \&\\$1\&T\& .ds Mc T
.if \&\\$1\&B\& .ds Mc B
.if \&\\*(Mc\&N\& .Er W ".MT: unknown margin type. T assumed
.nr MT 2
.if \&\\*(Mc\&N\& .nr MT 1
.if \&\\*(Mc\&N\& .ds Mc T
.nr \\*(Mcc 0
.if \&\\$2\&E\& .nr \\*(Mcc 1
.if \&\\$2\&O\& .nr \\*(Mcc 1
.if \&\\$2\&A\& .nr \\*(Mcc 2
.if \\n(\\*(Mcc=0 .nr \\*(Mct 0v
.if \\n(\\*(Mcc>0 .nr MT +1
.nr \\*(Mcs 2v
.if \\n(\\*(Mcc=0 .nr \\*(Mcs 0
.if \\n(MT<=\\n(.$ .nr \\*(Mcs \\$\\n(MTv
.rr MT
.rm Mc
..
.de MS			\" SET MARGIN TEXT FOR TOP OR BOTTOM OF PAGE
.\"	.MS $1 [ $2 [$3] ]
.			\" $1 = Top or Bottom
.			\" $2 = Even pages, Odd pages, All pages { A }
.			\" $3 = vertical spacing to/from text { 2 }
.ds Mc N
.if \&\\$1\&T\& .ds Mc T
.if \&\\$1\&B\& .ds Mc B
.if \&\\*(Mc\&N\& .Er W ".MS: unknown margin type. T assumed
.nr MS 2
.if \&\\*(Mc\&N\& .nr MS 1
.if \&\\*(Mc\&N\& .ds Mc T
.nr \\*(Mcc 0
.if \&\\$\\n(MS\&E\& .nr \\*(Mcc 1
.if \&\\$\\n(MS\&O\& .nr \\*(Mcc 3
.if \&\\$\\n(MS\&A\& .nr \\*(Mcc 2
.if \\n(\\*(Mcc>0 .nr MS +1
.if \\n(\\*(Mcc=0 .nr \\*(Mcc 2
.nr \\*(Mcs 2v
.if \\n(MS<=\\n(.$ .nr \\*(Mcs \\$\\n(MSv
.ev 2
.ll \\n(LLu
.lt \\n(LLu
.if \\n(\\*(Mcc=1 .di \\*(Mce
.if \\n(\\*(Mcc=2 .di \\*(Mct
.if \\n(\\*(Mcc=3 .di \\*(Mco
.if \\n(\\*(Mcc=3 .nr \\*(Mcc 1
..
.de ME			\" END SPECIFICATION OF TOP/BOTTOM MARGIN TITLE
.\"	.ME
.ie \\n(MS=0 .Er W ".ME: no matching .MS
.el \{\
.br
.di
.cu 0
.ev
.nr \\*(Mct \\n(dn
.nr Tm \\n(Tdu+\\n(Ttu+\\n(Tsu
.nr Bm \\n(Bsu+\\n(Btu+\\n(Bdu
.ch Bm \\n(.pu-\\n(Bmu
.if \\n(Fl>0 .Fp
.if \\n(Tmu+\\n(Bmu>=\\n(.pu \
.	Er F "top margin size + bottom margin size >= paper size
.rm Mc
.nr MS 0
.if (\\(nl>=(\\n(.pu-\\n(Bmu))&(\\n(Mi=0) .Bm \}
..
.de PN			\" SET FIRST PAGE NUMBER
.\"	.PN [ $1 [$2] ]
.			\" $1 = number of first page { 1 }
.			\" $2 = pagenumber format { 1 }
.ie \\n(.$>0 .nr PN \\$1
.el .nr PN 1
.ie \\n(.$>1 .ds Pa \\$2
.el .ds Pa 1
.if \\n(nl<0 .Pn
..
.de Pn			\" set page number
.if \\n(TP=0 .if \\n(PN>0 \{\
.pn \\n(PN
.af % \\*(Pa
.rm Pa
.nr PN 0 \}
..
.\"
.\"	GLOBAL SIZE CONTROL
.\"
.de VS			\" SET DEFAULT VERTICAL SPACING
.\"	.VS [$1 [$2] ]
.			\" $1 = default vertical spacing { 0.8v }
.			\" $2 = default vertical spacing in PS { 0.7v }
.ie \\n(.$>0 .nr VS \\$1v
.el .nr VS 0.8v
.ie \\n(.$>1 .nr VP \\$2v
.el .nr VP 0.7v
.ds $0 VS
.At "\\$1" "\\$2"
.rn $0 Vs
..
.de LD			\" SET LINE DISTANCE
.\"	.LD [$1]
.			\" $1 = default line distance { SS+2 points }
.ie \\n(.$>0 .vs \\$1
.el .vs \\n(SS+2
.ev 1
.ie \\n(.$>0 .vs \\$1
.el .vs \\n(Sf+2
.ev
.ds $0 LD
.At "\\$1" "\\$2"
.rn $0 Ld
..
.de ND			\" SET DEFAULT VERTICAL NEED
.\"	.ND [$1]
.			\" $1 = default need { 2 }
.ie \\n(.$>0 .nr ND \\$1
.el .nr ND 2
..
.de IN			\" SET DEFAULT INDENTATION
.\"	.IN [$1]
.			\" $1 = default indent { 3 }
.ie \\n(.$>0 .nr IN \\$1n
.el .nr IN 3n
..
.\"
.\"	TEXT PROCESSING MODES
.\"
.de AD			\" SET ADJUSTMENT
.\"	.AD [$1]
.			\" $1 = adjustment type L R C B { previous }
.if \&\\$1\&L\& .ad l
.if \&\\$1\&R\& .ad r
.if \&\\$1\&C\& .ad c
.if \&\\$1\&B\& .ad b
.if \&\\$1\&\& .ad
.ev 1
.if \&\\$1\&L\& .ad l
.if \&\\$1\&R\& .ad r
.if \&\\$1\&C\& .ad c
.if \&\\$1\&B\& .ad b
.if \&\\$1\&\& .ad
.ev
..
.de NA			\" NO ADJUSTMENT
.\"	.NA
.			\" .NA = .AD L
.na
.ev 1
.na
.ev
..
.de NS			\" NO SPACING
.\"	.NS
.			\" cancel first default vertical spacing.
.nr NS 1
..
.de HY			\" HYPHENATION ON
.\"	.HY
.hy 7
.ev 1
.hy 7
.ev
..
.de NH			\" NO HYPHENATION
.\"	.NH
.nh
.ev 1
.nh
.ev
..
.de HC			\" SET HYPHENATION CHARACTER
.\"	.HC [$1]
.			\" $1 = hyphenation character { \% }
.ie \\n(.$>0 \{\
.ds Hc \\$1
.hc \\$1
.ev 1
.hc \\$1
.ev \}
.el \{\
.ds Hc \%
.hc
.ev 1
.hc
.ev \}
..
.\"
.\"	LOCAL SIZE CONTROL
.\"
.de BP			\" BEGIN PAGE
.rs
.sp 50c
.ns
..
.de N			\" NEW LINE
.\"	.N [$1]
.			\" $1 = preceeding vertical spacing { 0 }
.			\" needs \n(ND+$1 lines on the page
.ti \\n(.iu
.ie \\n(.$>0 .sp \\$1
.el .br
.ne \\n(ND
.rs
..
.de A			\" NEW ALINEA
.\"	.A [ $1 [$2] ]
.			\" $1 = preceeding vertical spacing { 0 }
.			\" $2 = indent of first text line { \n(IN }
.			\" needs \n(ND+\$1 lines on the page
.ie \\n(.$>0 .sp \\$1
.el .br
.ne \\n(ND
.ie \\n(.$=2 .ti +\\$2
.el .ti +\\n(INu
.rs
..
.de P			\" NEW PARAGRAPH
.\"	.P [ $1 [$2] ]
.			\" $1 = preceeding vertical spacing { 1 }
.			\" $2 = indent of first line { \n(IN }
.			\" .P $1 $2  =	.A $1 $2
.			\" needs \n(ND+\$1 lines on the page
.if \\n(.$=0 .A 0.8v
.if \\n(.$=1 .A \\$1
.if \\n(.$=2 .A \\$1 \\$2
..
.de NE		\" NEED LINES
.\"	.NE [$1]
.			\" $1 = number of lines needed on page { \n(ND }
.br
.ie \\n(.$=0 .ne \\n(NDv
.el .ne \\$1v
.rs
..
.\"	DATES
.\"
.de TA			\" SET TAB POSITIONS
.\"	.TA [ $1 ... ]
.			\" $1 ... = tab positions { 9 17 25 33 41 49 57 65 73 }
.if \\n(.$=0 .ta 9 17 25 33 41 49 57 65 73
.if \\n(.$>0 .ta \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
..
.de NC			\" SET NO-BREAK CONTROL CHARACTER
.\"	.NC [ $1 ]
.			\" $1 = no-break control character
.ie \\n(.$>0 .ds Nc \\$1
.el .ds Nc 
.ev 0
.c2 \\*(Nc
.ev
.ev 1
.c2 \\*(Nc
.ev
.ev 2
.c2 \\*(Nc
.ev
..
.de SP			\" SET UNPADDABLE SPACE CHARACTER
.\"	.SP [$1]
.			\" $1 = unpaddable space character { none }
.			\" initially set to ~
.\\*(Sp
.if \\n(.$>0 .ds Sp "tr \\$1
.if \\n(.$>0 .\\*(Sp
.if \\n(.$>0 .as Sp "\\$1
..
.de IS			\" INDENTATION START
.\"	.IS [ $1 [ $2 [$3] ] ]
.			\" $1 = indent from left margin { \n(IN }
.			\" $2 = indent from right margin { 0 }
.			\" $3 = preceeding vertical spacing { 0 }
.ie \\n(IS>0 .Er W ".IS: nesting not allowed
.el \{\
.if \\n(.$>2 \{\
.sp \\$3v
.rs \}
.nr IE \\n(.l
.if \\n(.$>1 .ll -\\$2m
.nr UN \\n(.i
.if \\n(.$=0 .in +\\n(INu
.if \\n(.$>0 .in +\\$1
.nr IS 1 \}
..
.de UN			\" TEMPORARILY UNDENT
.\"	.UN [$1]
.			\" $1 = undent { \n(UN }
.if \\n(.$=0 .if \\n(IS>0 .ti \\n(UNu
.if \\n(.$=0 .if \\n(IS=0 .Er W ".UN: no matching .IS
.if \\n(.$>0 .if \\$1m>=\\n(.iu .ti 0
.if \\n(.$>0 .if \\$1m<\\n(.iu .ti -\\$1m
..
.de IE			\" INDENTATION END
.\"	.IE [$1]
.			\" $1 = succeeding vertical spacing { 0 }
.ie \\n(IS=0 .Er W ".IE: no matching .IS
.el \{\
.nr IS 0
.in \\n(UNu
.ll \\n(IEu
.if \\n(.$>0 \{\
.sp \\$1v
.rs \}
.rr UN
.rr IE \}
..
.\"
.\"	LOCAL TEXTPROCESSING CONTROL
.\"
.de CS			\" START CENTERED NONFILLED TEXT
.\"	.CS [$1]
.			\" $1 = preceding vertical spacing { 0 }
.nr CS 1
.if \\n(.$>0 .sp \\$1v
.ce 1000
..
.de CE			\" END CENTERED NONFILLED TEXT
.\"	.CE [$1]
.			\" $1 = succeeding vertical spacing
.if \\n(CS=0 .Er W ".CE: no matching .CS
.nr CS 0
.ce 0
.if \\n(.$>0 .sp \\$1v
..
.de C			\" CENTER WORDS
.\"	.C $1 ...
.			\" $1 ... = words to be centered
.if \\n(.$>0 \{\
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.ce 1
\&\\*(St
.rm St
.if \\n(CS>0 .ce 1000 \}
..
.de US			\" START UNDERLINED TEXT
.\"	.US [$1]
.			\" $1 = Underl., Continuous underl. (non-filled) { U }
.nr US 2
.if \&\\$1\&C\& .nr US 1
.if \\n(US=1 .cu 1000
.if \\n(US=2 .ul 1000
..
.de UE			\" END UNDERLINED TEXT
.\"	.UE
.if \\n(US=0 .Er W ".UE: no matching .US
.if \\n(US=1 .cu 0
.if \\n(US=2 .ul 0
.nr US 0
..
.de U			\" UNDERLINE WORDS
.\"	.U $1 ...
.			\" $1 ... = words to be underlined
.nr Bf \\n(.f
.ft 2
\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.ft \\n(Bf
.rr Bf
..
.de CU			\" CONTINUOUS UNDERLINE WORDS
.\"	.CU $1 ...
.			\" $1 ... = words to be underlined
.if \\n(.$>0 \{\
.Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
\\*(Hc\l#\w\&\\*(St\&u\(ul#\h#-\w\&\\*(St\&u#\\*(St
.rm St \}
..
.de UW			\" UNDERLINE WORD
.\"	.UW [ [$1] ) $2 ( $3 [ $4 [ $5 [ $6 [ $7 [ $8 [$9]]]]]] ]
.			\" $1 = non-underlined prefix
.			\" $2 = word to be underlined
.			\" $3 = non-underlined suffix
.			\" $4 $6 $8 = underlined tail
.			\" $5 $7 $9 = non-underlined tail
.if \\n(.$=1 .ds St \f2\\$1\fP
.if \\n(.$=2 .ds St \f2\\$1\fP\\$2
.if \\n(.$>2 .ds St \\$1\f2\\$2\fP\\$3
.if \\n(.$>3 .as St \f2\\$4\fP
.if \\n(.$>4 .as St \\$5
.if \\n(.$>5 .as St \f2\\$6\fP
.if \\n(.$>6 .as St \\$7
.if \\n(.$>7 .as St \f2\\$8\fP
.if \\n(.$>8 .as St \\$9
\&\\*(St
.rm St
..
.de BS			\" EMBOLDING START
.ie \\n(BS>0 .Er W ".BS: nesting not allowed
.el \{\
.ft 3
.nr BS 1 \}
..
.de BE			\" EMBOLDING END
.ie \\n(BS=0 .Er W ".BE: no matching .BS
.el \{\
.ft 1
.nr BS 0 \}
..
.de B			\" EMBOLDEN WORDS
.\"	.B $1 ...
.			\" $1 ... = words to be emboldened
.nr Bf \\n(.f
.ft 3
\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.ft \\n(Bf
.rr Bf
..
.de BW			\" EMBOLDEN WORD
.\"	.BW [ [$1] ) $2 ( $3 [ $4 [ $5 [ $6 [ $7 [ $8 [$9]]]]]] ]
.			\" $1 = non-emboldened prefix
.			\" $2 = word to be emboldened
.			\" $3 = non-emboldened suffix
.			\" $4 $6 $8 = emboldened tail
.			\" $5 $7 $9 = non-emboldened tail
.if \\n(.$=1 .ds St \f3\\$1\fP
.if \\n(.$=2 .ds St \f3\\$1\fP\\$2
.if \\n(.$>2 .ds St \\$1\f3\\$2\fP\\$3
.if \\n(.$>3 .as St \f3\\$4\fP
.if \\n(.$>4 .as St \\$5
.if \\n(.$>5 .as St \f3\\$6\fP
.if \\n(.$>6 .as St \\$7
.if \\n(.$>7 .as St \f3\\$8\fP
.if \\n(.$>8 .as St \\$9
\&\\*(St
.rm St
..
.\"	PAGE CONTROL SUPPORT
.\"
.de Tm			\" top margin trap macro
.ie \\n(Fl=0 .ch Bm \\n(.pu-\\n(Bmu
.el .Ft 		\" process footnote
.ev 2
.sp \\n(Tdu
.if \\n(TP=0 .Mm T
.ev
.if \\n(TP=0 .ns
.nr TQ \\n(.i
.nr TK \\n(.u
.if \\n(TH=2 \{\
.	nr TQ \\n(.i	\" insert table header
.	in 0
.	nf
.	nr TH 0
.	TT
.	nr TH 2
.	in \\n(TQu
.	if \\n(TK .fi\
\}
.mk #T
..
.de Bm			\" bottom margin trap macro
.if \\(Im .Er F "Macro package error: recursive trap
.nr Im 1
.ch Bm \\n(.p+1u	\" The trap gets reset by Tm
.if \\n(TS>0 \{\
.nr Ft \\n(Fl
.nr Fl 0		\" Disable footnote processing
.nr T. 1		\" Draw box for this page
.T# 1
.nr Fl \\n(Ft		\" Enable footnote processing
.rr Ft
.br \}
.ch Id
.if \\n(Fl>0 .Fb	\" process footnotes
.ev 2
.if \\n(TP=0 .Mm B
.ev
.if \\n(TP>0 \{\
.nr TP -1
.if \\n(TP=0 .if \\n(PN=0 .ds Pa 1
.if \\n(TP=0 .if \\n(PN=0 .nr PN 1 \}
.Pn
\\*(Ncbp		\" Nc is no-break control character
.if \\n(Fl>1 \\*(Ncbr	\" footnote overflow from last page
.rr Im
..
.de Mm			\" output margin
.			\" $1 = Top, Bottom
.ll \\n(LLu
.lt \\n(LLu
.nr Mm \\n(.i
.in 0
\\*(Ncnf		\" Nc is no-break control character
.pc %
.if \&\\$1\&B\& .sp |\\n(.pu-\\n(Bmu+\\n(Bsu
.if \\n(\\$1c=1 .if e .\\$1e
.if \\n(\\$1c=2 .\\$1t
.if \\n(\\$1c=1 .if o .\\$1o
.if \&\\$1\&T\& .sp \\n(Tsu
\\*(Ncfi		\" Nc is no-break control character
.in \\n(Mmu
.rr Mm
..
.\"
.\"	PRESET MARGIN TEXTS
.\"
.rn tl TL		\" TITLE REQUEST renamed
.\"
.de Tt			\" title at top of page
.TL \&\&\(hy\(hy % \(hy\(hy\&\&
..
.de Te			\" title at top of even page
.TL \&%\&\&\&
..
.de To			\" title at top of odd page
.TL \&\&\&%\&
..
.de Bt			\" title at bottom of page
.TL \&\&\(hy\(hy % \(hy\(hy\&\&
..
.de Be			\" title at bottom of even page
.TL \&%\&\&\&
..
.de Bo			\" title at bottom of odd page
.TL \&\&\&%\&
..
.\"
.\"	ERROR MESSAGE MACRO
.\"
.de Er			\" errors
.\"	.Er $1 $2
.			\" $1 = Warning/Fatal
.			\" $2 = error message
.tm Error, page \\n%: \\$2
.lt \\n(.lu+\w'\\*(rE Error'u+1n
.vs 0
.TL \&\&\&\v'-1v'\\*(rE Error\v'1v'\&
.vs
.lt \\n(LLu
.if \&\\$1\&F\& .br
.if \&\\$1\&F\& .fl
.if \&\\$1\&F\& .ex
.rr Er
..
.\"
.\"	OTHER SERVICE MACROES
.\"
.de Cr			\" Check for non-overlapping constructs
.if \\n(PS>0 \{\
.	Er W "Points not closed
.Pe \}
.if \\n(FS>0 \{\
.	Er W "Footnote not closed
.FE \}
.if \\n(DS>0 \{\
.	Er W "Display not closed
.DE \}
.if \\n(IS>0 \{\
.	Er W "Indentation not closed
.IE \}
.if \\n(CS>0 \{\
.	Er W "Centered text not closed
.CE \}
.if \\n(US>0 \{\
.	Er W "Underlined text not closed
.UE \}
.if \\n(BS>0 \{\
.	Er W "Embolded text not closed
.BE \}
.if \\n(RS>0 \{\
.	Er W "Reference not closed
.RE \}
..
.de Ct			\" catenate arguments
.			\" $1 ... = to be glued with unpaddable space
.ds St \\$1
.if \\n(.$>1 .as St \ \\$2
.if \\n(.$>2 .as St \ \\$3
.if \\n(.$>3 .as St \ \\$4
.if \\n(.$>4 .as St \ \\$5
.if \\n(.$>5 .as St \ \\$6
.if \\n(.$>6 .as St \ \\$7
.if \\n(.$>7 .as St \ \\$8
.if \\n(.$>8 .as St \ \\$9
..
.\"
.\"	INITIALIZATION
.\"
.nr MS 0		\" margin title setting indicator
.nr Tt 1v		\" length of top title { no title }
.nr Tc 0		\" case of top title { no title }
.nr Ts 2v		\" vertical spacing succeeding top title
.nr Bt 1v		\" length of bottom title
.nr Bc 2		\" case of bottom title { ALL }
.nr Bs 2v-0.3c		\" vertical spacing preceeding bottom title
.wh 0 Tm		\" set top margin trap macro
.wh \n(.pu-1v Bm	\" set bottom margin trap macro, A4 determines final pos
.A4                     \" Paper size is A4
.SS 10                  \" Point size is 10
.LD                     \" default baseline spacing
.VS                     \" default extra vertical spacing
.NC                     \" Set no-break to our own default
.nr PN 1		\" other pagenumber indicator { first pagenumber = 1 }
.nr TP 1		\" number of unnumbered pages at start of text
.nr NS 0		\" don't cancel default spacing
.nr ND 2		\" default need
.nr IN 3n		\" default indent
.ds Hc \%
.nr IS 0		\" indent indicator
.nr CS 0		\" center indicator
.nr US 0		\" underline indicator
.nr BS 0		\" bold indicator
.		\" refer set up
.ie \n(.V<=(1v/5) \{\
.ds <. .\h'-0.2m'	\" . is placed directly after the word
.ds <, ,\h'-0.2m'	\" , is placed directly after the word
.ds [. \v'-0.4m'\s-2\^\f1	\" The reference is placed n-e and smaller
.ds .] \s0\v'0.4m'\fP\}
.el \{\
.ds >. .		\" The . follows the reference
.ds >, ,		\" The , follows the reference
.ds [. \f1[		\" The ref. is enclosed in [ and ]
.ds .] ]\fP\}
.ie (\w\&\(lh\&) .ds rE \(lh
.el .ds rE \(pl\(pl\(pl
.			\" unpaddable space
.ds Sp "tr ~
.tr ~
.as Sp ~
.em Cr			\" check for non-closed constructs at end of input
.\"
.de At			\" parameterpassing macro
.\"	.At $1...
.if \\n(.$>=1 .as $0 " \\$1
.if \\n(.$>=2 .as $0 " \\$2
.if \\n(.$>=3 .as $0 " \\$3
.if \\n(.$>=4 .as $0 " \\$4
.if \\n(.$>=5 .as $0 " \\$5
.if \\n(.$>=6 .as $0 " \\$6
.if \\n(.$>=7 .as $0 " \\$7
.if \\n(.$>=8 .as $0 " \\$8
.if \\n(.$>=9 .as $0 " \\$9
..
.\"
.\"	CATCH MACROES FOR SECTIONS file tmac.q1
.\"
.de RP
.ds $0 RP
.rn RP ]R
.so LIBDIR/tmac/tmac.q1
..
.de SN
.ds $0 SN
.rn SN ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5"
.so LIBDIR/tmac/tmac.q1
..
.de SM
.ds $0 SM
.rn SM ]R
.At "\\$1" "\\$2" "\\$3" "\\$4"
.so LIBDIR/tmac/tmac.q1
..
.de S1
.ds $0 S1
.rn S1 ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q1
..
.de S2
.ds $0 S2
.rn S2 ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q1
..
.de S3
.ds $0 S3
.rn S3 ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q1
..
.de S4
.ds $0 S4
.rn S4 ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q1
..
.de AP
.ds $0 AP
.rn AP ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q1
..
.\"	CATCH MACROES FOR POINTS file tmac.q2
.\"
.de PM
.ds $0 PM
.rn PM ]R
.At "\\$1"
.so LIBDIR/tmac/tmac.q2
..
.de PS
.ds $0 PS
.rn PS ]R
.At "\\$1" "\\$2" "\\$3" "\\$4"
.so LIBDIR/tmac/tmac.q2
..
.nr PS 0
.\"	CATCH MACROES FOR DISPLAYS file tmac.q3
.\"
.de DB
.ds $0 DB
.rn DB ]R
.At "\\$1"
.so LIBDIR/tmac/tmac.q3
..
.de DS
.ds $0 DS
.rn DS ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8"
.so LIBDIR/tmac/tmac.q3
..
.nr DS 0
.\"	CATCH MACROES FOR FOOTNOTES file tmac.q4
.\"
.de FN
.ds $0 FN
.rn FN ]R
.At "\\$1" "\\$2"
.so LIBDIR/tmac/tmac.q4
..
.de FS
.ds $0 FS
.rn FS ]R
.At "\\$1" "\\$2" "\\$3"
.so LIBDIR/tmac/tmac.q4
..
.nr FS 0
.nr Fl 0
.\"	CATCH MACRO FOR EQUATIONS file tmac.q5
.\"
.de EQ
.ds $0 EQ
.rn EQ ]R
.At "\\$1" "\\$2" "\\$3" "\\$4"
.so LIBDIR/tmac/tmac.q5
..
.\"	CATCH MACROES FOR TABLES file tmac.q6
.\"
.de TS
.ds $0 TS
.rn TS ]R
.At "\\$1" "\\$2"
.so LIBDIR/tmac/tmac.q6
..
.\"nr TS 0
.\"	CATCH MACROES FOR BIBLIGRAPHIC REFERENCES file tmac.q7
.\"
.de RS
.ds $0 RS
.rn RS ]R
.At "\\$1" "\\$2" "\\$3"
.so LIBDIR/tmac/tmac.q7
..
.de RF
.ds $0 RF
.rn RF ]R
.At "\\$1"
.so LIBDIR/tmac/tmac.q7
..
.nr RS 0
.\"	CATCH MACROES FOR INDEX REFERENCES file tmac.q8
.\"
.de IX
.ds $0 IX
.rn IX ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q8
..
.de IW
.ds $0 IW
.rn IW ]R
.At "\\$1" "\\$2" "\\$3"
.so LIBDIR/tmac/tmac.q8
..
.de IR
.ds $0 IR
.rn IR ]R
.At "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
.so LIBDIR/tmac/tmac.q8
..
.\"	CATCH MACROES FOR INDEX REFERENCES file tmac.q9
.\"
.de ]-
.ds $0 ]-
.rn ]- ]R
.so LIBDIR/tmac/tmac.q9
..
.de ]<
.ds $0 ]<
.rn ]< ]R
.so LIBDIR/tmac/tmac.q9
..
.de [
.tm Error, page \\n%: did you forget refer?
.rm [
..
