.\" /usr/lib/tmac.an 10/12/83 V1.2
.\" COHERENT manual nroff macro package
.\" Copyright (c) 1981-1990 by Mark Williams Company, Chicago.
.\" All rights reserved.  May not be copied or disclosed without permission.
.\" New macros added by fwb to support Lexicon files, 4/21/1990.
.\"
.\" environment usage:
.\"	0	input-line-count traps for argument collecting
.\"	1	input-line-count traps for font macros
.\"	2	indentation-free diversion processing
.\" global regs:
.\"	cP	current page number
.\"	pD	interparagraph distance
.\"	*P	pointer to "*" stack
.\"	=P	pointer to "=" stack
.\" global strings:
.\"	tH	the header title
.\"	tF	the footer title
.\" stack usage:
.\"	*	holds the prevailing indent value for that level
.\"	=	holds the increment of indentation taken for that level
.\"
.
.
.\"
.\"
.\" user-called macros
.\"
.	the header macro
.de CO
COHERENT
..
.de TH
.wh 0
.if \\n(nl .bp 0
.nr pN 0 1
.Rr
.ds tH "'\fB\\$1\fP'\\$4'\fB\\$1\fP'"
.ds tF "'COHERENT \\$3 Manual'\\$2'Page \\\\n+(pN'"
.in 0
.he
.wh 0 he
..
.	slug that describes function.  Under Lexicon macros, does lots of stuff
.de PC
.if \\n(.$ \\$1
..
.de TL
.tm tmac.an: there is no such macro `.TL'; please use `.TH'
.ab
..
.	section heading
.de SH
.br
.sp \\n(pDu
.Rr
.Pr
.fi
.in 0
.ne 3
.ft B
.it 1 S-
.if \\n(.$ .Xa \\n(.$ "*** \\$1 ***" "*** \\$2 ***" "*** \\$3 ***" "\\$4" "\\$5" "\\$6"
..
.	subsection heading
.de SS
.br
.sp \\n(pDu
.Rr
.Pr
.fi
.in 5n
.ne 3
.ft B
.it 1 S-
.if \\n(.$ .Xa \\n(.$ "*** \\$1 ***" "*** \\$2 ***" "*** \\$3 ***" "\\$4" "\\$5" "\\$6"
..
.	begin paragraph
.de PP
.Np
.nr *\\n(*P 5n
.nr *\\n+(*P 5n
.nr =\\n+(=P 0
.ns
..
.de DS		\" Indented display (sleazy version)
.LP
.sp
.nf
.ne 5
.in +5n
..
.de DE		\" End display
.in -5n
.ne 0
.LP
.sp
..
.de MS		\" Machine-specific start (will take list of machines)
..
.de ME		\" Machine-specific end
..
.	begin left-justified (block) paragraph
.de LP
.Np
.nr *\\n(*P 5n
.nr *\\n+(*P 5n
.nr =\\n+(=P 0
.ns
..
.	begin hanging paragraph
.de HP
.Np
.nr {c \\n(*\\n(*P
.if \\n(.$ \{\
.nr {c \\$1n
.nr *\\n(*P \\n({c\}
.nr *\\n+(*P \\n({c
.nr =\\n+(=P \\n({c
.in +\\n({cu
.ti -\\n({cu
.ns
..
.	begin indented paragraph
.de IP
.Np
.nr {c \\n(*\\n(*P
.if \\n(.$>1 \{\
.nr {c \\$2n
.nr *\\n(*P \\n({c\}
.nr *\\n+(*P \\n({c
.nr =\\n+(=P \\n({c
.in +\\n({cu
.ti -\\n({cu
.if \\n(.$ .ds {a "\\$1
.if !\\n(.$ .ds {a
\&\\*({a
.if \\n({c-\w'\\*({a'<1m .br
.if \\n({c-\w'\\*({a'>=1m \h'|\\n(.i'\c
.ns
..
.	display within an indented paragraph
.de ID
.sp
.nf
.ft L
..
.de IE
.sp
.fi
.ft R
..
.	begin tagged paragraph
.de TP
.Np
.nr {c \\n(*\\n(*P
.if \\n(.$ \{\
.nr {c \\$1n
.nr *\\n(*P \\n({c\}
.nr *\\n+(*P \\n({c
.nr =\\n+(=P \\n({c
.in +\\n({cu
.ti -\\n({cu
.ev 2
.di {b
.it 1 T-
..
.	begin relative indent
.de RS
.nr {c \\n(*\\n(*P
.if \\n(.$ \{\
.nr {c \\$1n
.nr *\\n(*P \\n({c\}
.nr *\\n+(*P \\n({c
.nr *\\n+(*P \\n({c
.nr {c -\\n(=\\n(=P
.nr =\\n+(=P \\n({c
.nr =\\n+(=P 0
.in +\\n({cu
..
.	end relative indent
.de RE
.nr *P -2 1
.in -\\n(=\\n(=Pu
.in -\\n(=\\n-(=Pu
.nr =P -1 1
..
.	begin help
.de HS
.ig HE
..
.	end help
.de HE
..
.	bold font
.de B
.if \\n(.$>0 \\fB\\$1\\fP
.if \\n(.$=0 .ft B
..
.	bold/italic fonts
.de BI
.Af B I \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.	bold/roman fonts
.de BR
.Af B R \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.de R
.if \\n(.$>0 \\fR\\$1\\fP
.if \\n(.$=0 .ft R
..
.	italic font
.de I
.if \\n(.$>0 \\fI\\$1\\fP
.if \\n(.$=0 .ft I
..
.	italic/bold fonts
.de IB
.Af I B \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.	italic/roman fonts
.de IR
.Af I R \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.	roman/bold fonts
.de RB
.Af R B \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.	roman/italic fonts
.de RI
.Af R I \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.	set default tabs
.de DT
.if \\n(.$ .ta \\$1 \\$2 \\$3 \\$4 \\$5 \\$6
.if !\\n(.$ .ta 5 10 15 20 25 30
..
.	set interparagraph distance
.de PD
.if \\n(.$ .nr pD \\$1v
.if !\\n(.$ .nr pD 1v
..
.	small letters
.de SM
.Xa \\n(.$ "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.\"
.\" internal macros
.\"
.de II		\" Index invisible
.if \nG=0 .tm %\\$1=\\n#
..
.de S-		\" cleanup .SH
.br
.ft P
.in 5n
.ns
..
.de Np		\" new paragraph
.in -\\n(=\\n(=Pu
.nr *P -1 1
.nr =P -1 1
.sp \\n(pDu
.ne 2
.ft R
.fi
..
.de T-		\" cleanup .TP
.br
.di
.ev
.{b
.if \\n(*\\n(*P-\\n(dl<1m .br
.if \\n(*\\n(*P-\\n(dl>=1m \h'|\\n(.i'\c
..
.de Pf		\" set previous font
.br
.di
.ev
.{e
..
.de Af		\" alternating fonts
.if \\$3>1 \f\\$1\\$4\fP\f\\$2\\$5\fP
.if \\$3>3 \f\\$1\\$6\fP\f\\$2\\$7\fP
.if \\$3>5 \f\\$1\\$8\fP\f\\$2\\$9\fP
..
.de Xa		\" expand arguments
.if \\$1>0 \&\\$2
.if \\$1>1 \&\\$3
.if \\$1>2 \&\\$4
.if \\$1>3 \&\\$5
.if \\$1>4 \&\\$6
.if \\$1>5 \&\\$7
..
.de Rr		\" reset regs
.nr pD 1v
.nr *P 1 1
.af *P a
.nr =P 1 1
.af =P a
.nr *a 5n
.nr =a 0
..
.de Pr		\" push top reg on each stack
.nr {d \\n(*\\n(*P
.nr *\\n+(*P \\n({d
.nr {d \\n(=\\n(=P
.nr =\\n+(=P \\n({d
..
.de he		\" the header
'sp 2
.tl \\*(tH
'sp 3
..
.de fo		\" the footer
'sp 2
.tl \\*(tF
'bp
..
.\"
.\" general initialization
.\"
.wh -5 fo
.ds - -
