.\"	MACROES FOR POINTS (file tmac.q2)
.\"
.\"		Th.A. Zoethout
.\"
.de PM			\" DEFINE POINT MARKER
.\"	.PM [$1]
.			\" $1 = default marker for .PS { - }
.ie \\n(.$>0 .ds Pm \\$1
.el .ds Pm -
..
.de PS			\" LISTS OF POINTS
.\"	.PS [ $1 [ $2 [ [$3] $4 ] ] ]
.			\" $1 = marker or conversion with .af { \*(Pm }
.			\" conversions: 1 i I a A (- denotes marker from .PM)
.			\" $2 = indentation {\n(IN }
.			\" $3 = point prefix { }
.			\" $4 = point suffix { }
.ie \\n(PS=9 .Er W ".PS: maximum nesting is 9
.el \{\
.nr PS +1
.ie \\n(.$>0 .ds P\\n(PS \\$1
.el .ds P\\n(PS -
.nr P\\n(PS 0
.if \&\\*(P\\n(PS\&1\& .nr P\\n(PS 1
.if \&\\*(P\\n(PS\&i\& .nr P\\n(PS 1
.if \&\\*(P\\n(PS\&I\& .nr P\\n(PS 1
.if \&\\*(P\\n(PS\&a\& .nr P\\n(PS 1
.if \&\\*(P\\n(PS\&A\& .nr P\\n(PS 1
.if \&\\*(P\\n(PS\&-\& .ds P\\n(PS \\*(Pm
.nr P\\n(PS -1
.if \\n(P\\n(PS=0 .nr P\\n(PS 0 1
.af P\\n(PS \\*(P\\n(PS
.nr I\\n(PS \\n(IN
.if \\n(.$>1 .if !\&\\$2\&-\& .nr I\\n(PS \\$2n
.ds I\\n(PS "
.ds M\\n(PS "
.if \\n(.$=3 .ds M\\n(PS \\$3
.if \\n(.$=4 .ds I\\n(PS \\$3
.if \\n(.$=4 .ds M\\n(PS \\$4
.ch Id
.in +\\n(I\\n(PSu \}
..
.de PT			\" A HANGING POINT
.\"	.PT [ $1 ... ]
.			\" $1 = substitute for specification with .PS and .PM
.ie \\n(PS=0 .Er W ".PT: no matching .PS
.el \{\
.ie \\n(.$>0 .Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.el .ie \\n(P\\n(PS<0 .ds St \\*(I\\n(PS\\*(P\\n(PS\\*(M\\n(PS
.el \{\
.af P\\n(PS \\*(P\\n(PS
.ds St \\*(I\\n(PS\\n+(P\\n(PS\\*(M\\n(PS
.af P\\n(PS 1\}
.ch Id
.if \\n(NS=0 .sp \\n(VPu
.nr NS 0
.ne \\n(NDv+1v
.ti -\\n(I\\n(PSu
.ie (\\w\&\\*(St\&)>(\\n(I\\n(PS) \{\
\&\\*(St
.br \}
.el \&\\*(St\h#\\n(I\\n(PSu-\w\&\\*(St\&u#\c
.rs
.rm St \}
..
.de PI			\" AN INDENTED POINT
.\"	.PI [ $1 ... ]
.			\" $1 = substitute for specification with .PS and .PM
.ie \\n(PS=0 .Er W ".PI: no matching .PS
.el \{\
.ie \\n(.$>0 .Ct \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.el .ie \\n(P\\n(PS<0 .ds St \\*(I\\n(PS\\*(P\\n(PS\\*(M\\n(PS
.el \{\
.af P\\n(PS \\*(P\\n(PS
.ds St \\*(I\\n(PS\\n+(P\\n(PS\\*(M\\n(PS
.af P\\n(PS 1\}
.ch Id
.if \\n(NS=0 .sp \\n(VPu
.nr NS 0
.ne \\NDv
\&\\*(St\ \ \c
.nr Id \w\&\\*(St\ \ \&
.ie !\&\\n(.z\&\& .dt \\n(.du+1v Id
.el .wh \\n(nlu+1v Id
.rs
.rm St \}
..
.de PE			\" END LIST OF POINTS
.\"	.PE [$1]
.			\" $1 = ending vertical spacings { n\(Ps }
.ie \\n(PS=0 .Er W ".PE: no matching .PS
.el \{\
.in -\\n(I\\n(PSu
.rr P\\n(PS
.rr I\\n(PS
.rm P\\n(PS
.rm M\\n(PS
.rm I\\n(PS
.nr PS -1
.ie \\n(.$>0 .sp \\$1v
.el .sp \\n(VPu \}
.ch Id
..
.de Pe			\" end all point levels
.if \\n(PS>0 \{\
.PE 0
.Pe \}
..
.de Id			\" trap macro for indented points
\\*(Ncti \\n(.iu+\\n(Idu \" This calls ti
.ie !\&\\n(.z\&\& .dt
.el .ch Id
..
.			\" INITIALIZATION
.ds Pm -
.\*($0
.rm $0
