.\"
.\" Font Notes:
.\" CW, CB, CI are used for non-proportional, non-proportional bold, and
.\" non-proportional italic (courier, courier-bold, courier-italic).  If
.\" the font names are different at your site, change definitions of
.\" of .Cw, .Cb, and .Ci below.  There may be other inline references to
.\" CW, CB, and CI that need to be changed as well.
.\"
.\" The inline font reference is given using \f[xx], which requires a
.\" version of troff that understands the [xx] notation, e.g., groff.
.\"
.\"
.\" Ft - font reference
.\" $1 = font to use for .ft switches
.\" $2 = font to use for inline \f switches
.\" $3 = thing to put in the given font
.\" $4 = goes immediately after $3
.\" $5 = goes immediately before $4
.\" if $3-$5 are empty, simply switch font w/o switching back
.de Ft
.nr PQ \\n(.f
.ie \(ts\\$3\\$4\\$5\(ts\(ts .ft \\$1
.el \&\\$5\\f[\\$2]\\$3\\f\\n(PQ\&\\$4
..
.\"
.\" Cw - constant width font
.de Cw
.Ft CW CW "\\$1" "\\$2" "\\$3"
..
.\"
.\" Cb - bold constant width font
.de Cb
.Ft CB CB "\\$1" "\\$2" "\\$3"
..
.\"
.\" Ci - italic constant width font
.de Ci
.Ft CI CI "\\$1" "\\$2" "\\$3"
..
.\"
.\" I - italic font
.de I
.Ft I I "\\$1" "\\$2" "\\$3"
..
.\"
.\" B - bold font
.de B
.Ft B B "\\$1" "\\$2" "\\$3"
..
.\"
.\" Bi - bold italic font
.de Bi
.Ft BI BI "\\$1" "\\$2" "\\$3"
..
.\"
.\" Most of following are modified from ORA macros
.\"
.de Ps  \" Printout start; $1 = indent (default is 5 spaces)
.br
.nr pS \\n(.s  \" Save current point size
.nr vS \\n(.v  \" Save current vertical spacing
.nr pF \\n(.f  \" Save current font
.nr pI \\n(.iu  \" Save current indent
.sp \\n(PDu 
.ns
.\".ps 9
.\".vs 11
.ps 8
.vs 10
.ft CW
.ie !"\\$1"" .in \\n(.iu+\\$1n
.el .in \\n(.iu+5n                  \" default indent = +5n
.nf
.\" 4n doesn't work.  How come?
.\".ta 4n +4n +4n +4n +4n +4n +4n +4n +4n +4n
.nr Cw 4*\\w`n`
.ta \\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu +\\n(Cwu
.rr Cw
..
.de Pe  \" Printout end; if $1 non-null, no concluding blank line
.br
.if "\\$1"" .sp \\n(PDu
.ps \\n(pS
.vs \\n(vSu
.ft \\n(pF
.in \\n(pIu
.rr pS
.rr vS
.rr pF
.rr pI
.fi
..
.\"
.\" Vertical ellipsis with squished vertical spacing.  Optional argument
.\" sets indent (restored afterward).
.\"
.de Ve
.if !`\\$1`` .in \\$1
.vs 4

\&.
\&.
\&.
.vs
.if !`\\$1`` .in
..
.\"
.nr l0 0 1      \" initialize list nesting level counter
.\"
.\" list start; $1 = A(LPHA), a(alpha), B(ullet), N(umeric), 
.\"                  R(oman), r(oman);  $2 = indent;  $3 = bullet char
.de Ls
.br
.if !"\\$1"A" .if !"\\$1"B" .if !"\\$1"N" .if !"\\$1"R" \
.	if !"\\$1"r" .if !"\\$1"a" .if !"\\$1"" \
.ab Ls: Need A B N R a r or null as list type--abort
.nr l\\n+(l0 0 1 \" increment list level, create new l<n> register for level n
.nr In\\n(l0 \\n(.iu    \" save initial indent
.\".tm Ls indent In\\n(l0 is \\n[In\\n(l0]
.ie "\\$1"" \{\
.       if "\\n(l0"1" .af l\\n(l0 1     \" default to numeric at 1st level
.       if "\\n(l0"2" .af l\\n(l0 a     \" default to lc alphabetic at 2nd level
.       if "\\n(l0"3" .af l\\n(l0 i     \" default to lc roman at 3rd level
.	if "\\n(l0"4" .ds l\\n(l0 \(bu  \" default to bullet at 4th level
.	if "\\n(l0"5" .ds l\\n(l0 \f3\-\f1  \" default to dash at 5th level
.	if \\n(l0-5 .ds l\\n(l0\(bu     \" default to bullet above 5rd level
.	if \\n(l0-3 .nr l\\n(l0 0-1 
.	\}
.el \{\
.       if "\\$1"A" .af l\\n(l0 A
.       if "\\$1"a" .af l\\n(l0 a
.       if "\\$1"B"\{\
.		if "\\$3"" .ds l\\n(l0 \(bu     \" no 3rd arg = default bullet
.		if !"\\$3"" .ds l\\n(l0 \\$3    \" 3rd arg = bullet
.		nr l\\n(l0 0-1
.		\}
.       if "\\$1"R" .af l\\n(l0 I
.       if "\\$1"r" .af l\\n(l0 i \}
.ie !"\\$2"" .nr i\\n(l0 \\$2   \" 2nd arg = list indent, if given
.el .nr i\\n(l0 \\n(.iu+3n               \" default indent (used to be 5)
.\".el .nr i\\n(l0 3               \" default indent (used to be 5)
.\".nr I0 0
.if \\n(l0>1 .RS                \" shift right if this is a nested list
..
.de Li  \" list item;  $1 = 0 means no blank line before item
.br
.if "\\$1"0" .ns
.ie "\\n(l\\n(l0"-1" .IP "\\*(l\\n(l0" "\\n(i\\n(l0u"
.el \{\
.    nr l\\n(l0 +1
.    IP "\\n(l\\n(l0." "\\n(i\\n(l0u" 
.\}
..
.de Le  \" list end;  $1 = 0 means no extra blank line following last item
.br
.rr l\\n(l0
.rr i\\n(l0
.rm l\\n(l0
.\".tm Le \\n(l0 indent1=\\n(.i
.if \\n(l0>1 .RE      \" shift left if this is a nested list
.\".tm Le \\n(l0 indent2=\\n(.i
.in \\n[In\\n(l0]u
.rr In\\n(l0
.\".tm Le \\n(l0 indent3=\\n(.i
.nr l0 -1             \" decrement list level
.ie !\\n(l0 \{\
.\" if the current indent is now > 0 assume the list was inside an IP
.\" and don't reset indent all the way back out
.  ie \\n(.i>0 \{\
.       if !"\\$1"0" .sp \\n(PDu
.  \}
.  el \{\
.       ie "\\$1"0" .LP 0
.       el .LP
.  \}
.\}
.el .if !"\\$1"0" .sp \\n(PDu
.\".if \\n(IP=0 'in 0
..
.\"
.\" Ah, Bh, Ch - headings for various levels.  $1 = heading
.\"
.de Ah
.sp
.RT
.ne 5
.ps 14
.vs 16
.lg 0
.B
\&\\$1
.R
.lg
.sp
.ns
..
.de Bh
.sp
.RT
.ne 5
.ps 11
.vs 13
.lg 0
.B
\&\\$1
.R
.lg
.sp
.ns
..
.de Ch
.sp
.RT
.ne 5
.ps 10
.vs 12
.lg 0
.B
\&\\$1
.R
.lg
.sp
.ns
..
.\"
.\" Reset margins and paragraph distance.
.nr PO 1.2in    \" page offset 1.2 inches
.nr PD .7v      \" inter-paragraph distance
