groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 01/04: Version 2.1


From: Peter Schaffter
Subject: [groff] 01/04: Version 2.1
Date: Thu, 05 Feb 2015 20:21:08 +0000

PTPi pushed a commit to branch master
in repository groff.

commit 2dec18f066f1f93d6b92e6a1a64146c76f2e2f1e
Author: Peter Schaffter <address@hidden>
Date:   Thu Feb 5 15:15:30 2015 -0500

    Version 2.1
---
 contrib/mom/om.tmac-u | 5831 +++++++++++++++++++++++++------------------------
 1 files changed, 2984 insertions(+), 2847 deletions(-)

diff --git a/contrib/mom/om.tmac-u b/contrib/mom/om.tmac-u
index dd6d527..8cec0d5 100644
--- a/contrib/mom/om.tmac-u
+++ b/contrib/mom/om.tmac-u
@@ -3,7 +3,7 @@
 .ig
 Mom -- a typesetting/document-processing macro set for groff.
 
-Copyright (C) 2002-2014  Free Software Foundation, Inc.
+Copyright (C) 2002-2015  Free Software Foundation, Inc.
  Written by Peter Schaffter <address@hidden>
  PDF integration contributed by Deri James <address@hidden>
 
@@ -22,8 +22,8 @@ for more details.
 You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
 
-Version 2.1-c_2
----------------
+Version 2.1
+-----------
 Antoine de St-Exup�ry asserted that elegance in engineering is
 achieved not when there is nothing left to add, but when there is
 nothing left to take away.
@@ -41,7 +41,7 @@ Thanks to everyone who has contributed suggestions and 
patches,
 and to those whose GPL'd work has been plundered.  Special thanks
 to Werner Lemberg (margin notes), Tadziu Hoffman (underlining),
 Deri James (pdf integration), Robin Haberkorn (tbl integration, eqn
-extentions, and float management).
+extensions, and float management).
 ..
 .\" %beginstrip%
 \#
@@ -215,6 +215,9 @@ end
 .if n .color 0
 .nr TOC.RELOCATE 0 \" TOC.RELOCATE is off by default
 .ds PDFHREF.TEXTCOL.DEFAULT 0.0 0.3 0.9
+.nr PDFHREF.VIEW.LEADING.C 3i
+.nr PDFHREF.VIEW.LEADING.T 1i
+.nr PDFHREF.VIEW.LEADING.H \n[PDFHREF.VIEW.LEADING]
 \#
 \# ====================================================================
 \#
@@ -333,7 +336,6 @@ end
 \#
 .MAC T_MARGIN END
 .    nr #T_MARGIN (\\$1)
-.    nr #TOP 1
 .    if !\\n[#DOCS] .sp |\\n[#T_MARGIN]u-1v
 .    wh 0i DO_T_MARGIN
 .END
@@ -405,10 +407,8 @@ end
 \#
 .MAC DO_T_MARGIN END
 .    ev T_MARGIN
-.    nr #TOP 1
 .    sp |\\n[#T_MARGIN]u-1v
 .    ev
-.    sp -\\n[#T_MARGIN_LEAD_ADJ]u
 .END
 \#
 \# DO_B_MARGIN
@@ -422,11 +422,11 @@ end
 \#
 .MAC DO_B_MARGIN END
 .    nr #T_MARGIN_LEAD_ADJ \\n[#LEAD]-12000
-.    if !\\n[#DOCS] .vpt 0
 .    ev B_MARGIN
-'    sp |\\n[.p]u
-.    if !\\n[#DOCS] .vpt
 .    if !n .nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+.    ie \\n[#DOCS] \
+.       if !\\n[#NEWPAGE] .bp
+.    el .bp
 .    ev
 .END
 \#
@@ -441,28 +441,24 @@ end
 \#   breaks to a new page.
 \#
 .MAC NEWPAGE END
+.    nr #NEWPAGE 1
 .    if \\n[.vpt]=0 .vpt
 .    ie \\n[#NO_BREAK] \{\
 '       br
 .       rr #NO_BREAK
 .    \}
 .    el .br
-.    nr #NEWPAGE 1
 .    nr @TOP 1
 .    ie \\n[#B_MARGIN_SET]=1 \{\
-.       ie !\\n[#DOCS]=1 \{\
-.          ev NP
-.          DO_B_MARGIN
-.          ev
-.       \}
+.       ie !\\n[#DOCS]=1 .DO_B_MARGIN
 .       el \{\
 .          if \\n[#COLUMNS]=1 .nr #COL_NUM \\n[#NUM_COLS]
 .          ie !\\n[#FN_DEPTH] \{\
 .             ch FN_OVERFLOW_TRAP
 .             DO_FOOTER
-.             wh -(\\n[#FN_OVERFLOW_TRAP_POS]u) FN_OVERFLOW_TRAP
+.             wh -\\n[#FN_OVERFLOW_TRAP_POS]u FN_OVERFLOW_TRAP
 .          \}
-.          el .DO_B_MARGIN
+.          el .FOOTER
 .       \}
 .    \}
 .    el 'bp
@@ -534,6 +530,8 @@ end
 \#   to $FAMILY.
 \#
 .MAC FAMILY END
+.    if '\\n[.ev]'COVER_TEXT' .ds $SAVED_DOC_FAM \\n[.fam]
+.    if \\n[#COLLATE] .rm $SAVED_DOC_FAM
 .    ds $FAMILY \\$1
 .    if \\n[#PRINT_STYLE]=1 \{\
 .       fam \\*[$TYPEWRITER_FAM]
@@ -590,14 +588,14 @@ end
 .                tm1 "[mom]: Font style "\\*[$FONT]" at line \\n[.c] has not 
been registered.
 .                ie \\n[#ABORT_FT_ERRORS]=0 \
 .                   tm1 "       Continuing to process using fallback font.
-.                el .ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.                el .ab [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .             \}
 .             if \\n[.f]=0 \{\
 .                tm1 "[mom]: Either font style "\\*[$FONT]" at line \\n[.c] 
does not exist in family "\\n[.fam]",
 .                tm1 "       or family "\\n[.fam]" has not been installed.
 .                ie \\n[#ABORT_FT_ERRORS]=0 \
 .                   tm1 "       Continuing to process using fallback font.
-.                el .ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.                el .ab [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .             \}
 .          \}
 .       \}
@@ -660,7 +658,6 @@ end
 \#
 .MAC LS END
 .    br
-.    nr #OLD_LEAD \\n[.v]
 .    if \\n[#PRINT_STYLE]=1 .return
 .    if \\n[#IGNORE] .return
 .    if \\n[#AUTO_LEAD] \{\
@@ -670,12 +667,6 @@ end
 .    \}
 .    vs \\$1
 .    if \\n[.t]<\\n[.v] 'bp
-.    if \\n[#TOP] \{\
-.       nr #TOP_BASELINE_ADJ \\n[.v]-\\n[#OLD_LEAD]
-.       sp -\\n[#TOP_BASELINE_ADJ]u
-.       rr #TOP
-.       rr #TOP_BASELINE_ADJ
-.    \}
 .END
 \#
 \# AUTOLEAD
@@ -696,7 +687,6 @@ end
 .    if \\n[#PRINT_STYLE]=1 .return
 .    if \\n[#IGNORE] .return
 .    nr #AUTO_LEAD 1 \" autolead on or off
-.    nr #OLD_LEAD \\n[.v]
 .    nr #AUTOLEAD_VALUE (p;\\$1) \" arg x 1000
 .    ie '\\$2'FACTOR' \{\
 .       if !\\n[#DOCS] .nr #DOC_AUTOLEAD_FACTOR \\n[#AUTOLEAD_VALUE] \" save 
for DOC_PT_SIZE
@@ -704,12 +694,6 @@ end
 .    \}
 .    el .nr #AUTOLEADING \\n[#AUTOLEAD_VALUE]
 .    vs \\n[.ps]u+\\n[#AUTOLEADING]u
-.    if \\n[#TOP] \{\
-.       nr #TOP_BASELINE_ADJ \\n[.v]-\\n[#OLD_LEAD]
-.       sp -\\n[#TOP_BASELINE_ADJ]u
-.       rr #TOP
-.       rr #TOP_BASELINE_ADJ
-.    \}
 .END
 \#
 \# STRINGS FOR INLINE CONTROL OF GENERAL TYPE STYLE
@@ -771,14 +755,9 @@ end
 \#
 .nr #LOOP 0 1
 .while \n+[#LOOP]<37 \{\
-.   ds BU\n[#LOOP]  \h'-(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\n[#LOOP]u)'
-.\}
-\#
-.nr #LOOP 0 1
-.while \n+[#LOOP]<37 \{\
+.   ds BU\n[#LOOP] \h'-(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\n[#LOOP]u)'
 .   ds FU\n[#LOOP] \h'(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\n[#LOOP]u)'
 .\}
-.rr #LOOP
 \#
 \# Horizontal movements
 \# --------------------
@@ -1066,14 +1045,13 @@ end
 \#
 .MAC ALD END
 .    br
-.    if \\n[nl]=0 .nr #TOP 1
 .    if '\\$0'ALD' \{\
-.       nr #ALD (\\$1)
+.       nr #ALD (u;\\$1)
 .       sp \\n[#ALD]u
 .    \}
 .    if '\\$0'ADD_SPACE' \{\
 .       vpt 0
-.       nr #ALD (\\$1)
+.       nr #ALD (u;\\$1)
 .       rs
 .       nop \&
 .       sp |\\n[#T_MARGIN]u-1v+\\n[#ALD]u
@@ -1097,7 +1075,7 @@ end
 \#
 .MAC RLD END
 .    br
-.    nr #RLD (\\$1)
+.    nr #RLD (u;\\$1)
 .    sp -\\n[#RLD]u
 .END
 \#
@@ -1451,6 +1429,8 @@ end
 \#   mode is enabled.
 \#
 .MAC QUAD END
+.    if \\n[#COVERTEXT_PP] \
+.       ds $RESTORE_DOC_QUAD \\*[$QUAD_VALUE]
 .    ds $QUAD_VALUE \\$1
 .    if \\n[#TAB_ACTIVE]=0 \{\
 .       nr #QUAD 1
@@ -1500,12 +1480,12 @@ end
 \# LEFT, RIGHT, AND CENTER
 \# -----------------------
 \# The purpose of these macros is to allow the user to enter lines
-\# of text that will be quadded LRC having to stick .BR or .br
-\# between lines.  For the sake of consistency, all three appear to
-\# behave similarly (from the point of view of the user), although
-\# the underlying primitives don't.  For this reason, LEFT, RIGHT,
-\# and CENTER must be followed by .QUAD [L R C J] or .JUSTIFY to
-\# restore text to fill mode.
+\# of text that will be quadded LRC without having to stick .BR
+\# or .br between lines.  For the sake of consistency, all three
+\# appear to behave similarly (from the point of view of the user),
+\# although the underlying primitives don't.  For this reason, LEFT,
+\# RIGHT, and CENTER must be followed by .QUAD [L R C J] or .JUSTIFY
+\# to restore text to fill mode.
 \#
 \# LEFT
 \# ----
@@ -1895,6 +1875,28 @@ end
 \#
 \# +++MISCELLANEOUS USEFUL MACROS AND STRINGS+++
 \#
+.nr _w 500
+.nr _d 1250
+\#
+\# These string are used for creating aliases within loops that set
+\# style for doc-cover, cover, and docheader items.  They're defined
+\# here because underscoring needs them.
+\#
+.ds TITLE_TYPE_1  ATTRIBUTE
+.ds TITLE_TYPE_2  AUTHOR
+.ds TITLE_TYPE_3  CHAPTER
+.ds TITLE_TYPE_4  CHAPTER_TITLE
+.ds TITLE_TYPE_12 COPYRIGHT
+.ds TITLE_TYPE_5  COVERTITLE
+.ds TITLE_TYPE_14 COVER_TITLE
+.ds TITLE_TYPE_6  DOCTITLE
+.ds TITLE_TYPE_7  DOCTYPE
+.ds TITLE_TYPE_8  DOC_COVERTITLE
+.ds TITLE_TYPE_13 DOC_COVER_TITLE
+.ds TITLE_TYPE_11 MISC
+.ds TITLE_TYPE_9  SUBTITLE
+.ds TITLE_TYPE_10 TITLE
+\#
 \# UNDERLINE
 \# ---------
 \# *Arguments:
@@ -1905,9 +1907,6 @@ end
 \#   Defaults for rule weight and distance from baseline are below.
 \#   UNDERLINE_SPECS lets user change them
 \#
-.nr _w 500
-.nr _d 1250
-\#
 .MAC UNDERLINE_SPECS END
 .    ie \B'\\$1' .nr _w (u;\\$1)
 .    el \{\
@@ -1943,7 +1942,7 @@ end
 .    \}
 .    el \{\
 .       nr #UNDERLINE_ON 0
-.       SS \\*[$SAVED_SS_VAR]
+.       if !'\\*[$SAVED_SS_VAR]'' .SS \\*[$SAVED_SS_VAR]
 .       ie !n .nop \X'ps: exec decornone'\c
 .       el .ul 0
 .    \}
@@ -2038,69 +2037,29 @@ end
 .    nr #SAVED_UNDERSCORE_WEIGHT     \\n[#UNDERSCORE_WEIGHT]
 .    nr #SAVED_UNDERSCORE_WEIGHT_ADJ \\n[#UNDERSCORE_WEIGHT_ADJ]
 .    ds $SAVED_UNDERSCORE_GAP        \\*[$UNDERSCORE_GAP]
-.    if \\n[#FROM_BIB_STRING]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#BIB_STRING_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#BIB_STRING_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$BIB_STRING_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_COVER]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#COVER_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#COVER_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$COVER_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_DOC_COVER]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#DOC_COVER_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#DOC_COVER_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$DOC_COVER_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_DOCTYPE]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#DOCTYPE_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#DOCTYPE_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$DOCTYPE_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_EN_STRING]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#EN_STRING_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#EN_STRING_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$EN_STRING_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_EN_TITLE]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#EN_TITLE_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#EN_TITLE_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$EN_TITLE_UNDERLINE_GAP]
-.    \}
-.    if \\n[#FROM_TOC_HEADER]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#TOC_HEADER_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#TOC_HEADER_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$TOC_HEADER_UNDERLINE_GAP]
-.    \}
-.    ie \\n[#NUM_ARGS]=1 \{\
-.       nr #TEXT_WIDTH \w'\\$1'
-\\$1\
-\D't \\n[#UNDERSCORE_WEIGHT]'\
-\h'-\\n[#TEXT_WIDTH]u-\\n[#UNDERSCORE_WEIGHT]u'\
-\v'+(\\*[$UNDERSCORE_GAP])+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\D't \\n[#RULE_WEIGHT]'\
-\h'-\\n[#RULE_WEIGHT]u'\
-\v'-(\\*[$UNDERSCORE_GAP])-\\n[#UNDERSCORE_WEIGHT_ADJ]u'
+.    if \\n[#NUM_ARGS]=2 \{\
+.       ds $UNDERSCORE_GAP \\$1
+.       shift
 .    \}
-.    el \{\
-.       nr #TEXT_WIDTH \w'\\$2'
-\\$2\
-\h'-\\n[#TEXT_WIDTH]u-\\n[#UNDERSCORE_WEIGHT]u'\
-\v'+(\\$1)+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
-\D't \\n[#UNDERSCORE_WEIGHT]'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\D't \\n[#RULE_WEIGHT]'\
-\h'-\\n[#RULE_WEIGHT]u'\
-\v'-(\\$1)-\\n[#UNDERSCORE_WEIGHT_ADJ]u'
+.    if !'\\*[$TITLE_TYPE]'' \{\
+.       nr #UNDERSCORE_WEIGHT     \\n[#\\*[$TITLE_TYPE]_UNDERLINE_WEIGHT]
+.       nr #UNDERSCORE_WEIGHT_ADJ \\n[#\\*[$TITLE_TYPE]_UNDERLINE_WEIGHT_ADJ]
+.       ds $UNDERSCORE_GAP        \\*[$\\*[$TITLE_TYPE]_UNDERLINE_GAP]
 .    \}
+.    nr #TEXT_WIDTH \w'\\$1'
+\Z'\\$1'\
+\Z'\D't \\n[#UNDERSCORE_WEIGHT]''\
+\v'\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
+\D'l \\n[#TEXT_WIDTH]u 0'\
+\Z'\D't \\n[#RULE_WEIGHT]''\
+\v'-(\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u)'
 .    nr #UNDERSCORE_WEIGHT     \\n[#SAVED_UNDERSCORE_WEIGHT]
 .    nr #UNDERSCORE_WEIGHT_ADJ \\n[#SAVED_UNDERSCORE_WEIGHT_ADJ]
 .    ds $UNDERSCORE_GAP        \\*[$SAVED_UNDERSCORE_GAP]
 .    rr #SAVED_UNDERSCORE_WEIGHT
 .    rr #SAVED_UNDERSCORE_WEIGHT_ADJ
 .    rm $SAVED_UNDERSCORE_GAP
+.    rm $TITLE_TYPE
 .END
 \#
 \# DOUBLE UNDERSCORE
@@ -2120,71 +2079,28 @@ end
 .    ds $SAVED_RULE_GAP              \\*[$RULE_GAP]
 .    if \\n[#NUM_ARGS]=2 \{\
 .       ds $UNDERSCORE_GAP \\$1
+.       shift
 .    \}
 .    if \\n[#NUM_ARGS]=3 \{\
 .       ds $UNDERSCORE_GAP \\$1
 .       ds $RULE_GAP \\$2
+.       shift 2
 .    \}
-.    if \\n[#FROM_BIB_STRING] \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#BIB_STRING_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#BIB_STRING_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$BIB_STRING_UNDERLINE_GAP]
-.       ds $RULE_GAP                 \\*[$BIB_STRING_RULE_GAP]
-.    \}
-.    if \\n[#FROM_EN_STRING] \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#EN_STRING_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#EN_STRING_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$EN_STRING_UNDERLINE_GAP]
-.       ds $RULE_GAP                 \\*[$EN_STRING_RULE_GAP]
-.    \}
-.    if \\n[#FROM_TOC_HEADER]=1 \{\
-.       nr #UNDERSCORE_WEIGHT        \\n[#TOC_HEADER_UNDERLINE_WEIGHT]
-.       nr #UNDERSCORE_WEIGHT_ADJ    \\n[#TOC_HEADER_UNDERLINE_WEIGHT_ADJ]
-.       ds $UNDERSCORE_GAP           \\*[$TOC_HEADER_UNDERLINE_GAP]
-.       ds $RULE_GAP                 \\*[$TOC_HEADER_RULE_GAP]
-.    \}
-.    if \\n[#NUM_ARGS]=1 \{\
-.       nr #TEXT_WIDTH \w'\\$1'
-\\$1\
-\D't \\n[#UNDERSCORE_WEIGHT]'\
-\v'+\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
-\h'-\\n[#TEXT_WIDTH]u-\\n[#UNDERSCORE_WEIGHT]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\v'+\\*[$RULE_GAP]+\\n[#UNDERSCORE_WEIGHT]u'\
-\h'-\\n[#TEXT_WIDTH]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\D't \\n[#RULE_WEIGHT]'\
-\h'-\\n[#RULE_WEIGHT]u'\
-\v'-(\\*[$UNDERSCORE_GAP]+\\*[$RULE_GAP])-(\\n[#UNDERSCORE_WEIGHT]u*2u)'
-.    \}
-.    if \\n[#NUM_ARGS]=2 \{\
-.       nr #TEXT_WIDTH \w'\\$2'
-\\$2\
-\D't \\n[#UNDERSCORE_WEIGHT]'\
-\v'+\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
-\h'-\\n[#TEXT_WIDTH]u-\\n[#UNDERSCORE_WEIGHT]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\v'+(\\*[$RULE_GAP])+\\n[#UNDERSCORE_WEIGHT]u'\
-\h'-\\n[#TEXT_WIDTH]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\D't \\n[#RULE_WEIGHT]'\
-\h'-\\n[#RULE_WEIGHT]u'\
-\v'-(\\*[$UNDERSCORE_GAP]+\\*[$RULE_GAP])+(\\n[#UNDERSCORE_WEIGHT]u*2u)'
-.    \}
-.    if \\n[#NUM_ARGS]=3 \{\
-.       nr #TEXT_WIDTH \w'\\$3'
-\\$3\
-\D't \\n[#UNDERSCORE_WEIGHT]'\
-\v'+\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
-\h'-\\n[#TEXT_WIDTH]u-\\n[#UNDERSCORE_WEIGHT]u'\
+.    if !'\\*[$TITLE_TYPE]'' \{\
+.       nr #UNDERSCORE_WEIGHT     \\n[#\\*[$TITLE_TYPE]_UNDERLINE_WEIGHT]
+.       nr #UNDERSCORE_WEIGHT_ADJ \\n[#\\*[$TITLE_TYPE]_UNDERLINE_WEIGHT_ADJ]
+.       ds $UNDERSCORE_GAP        \\*[$\\*[$TITLE_TYPE]_UNDERLINE_GAP]
+.       ds $RULE_GAP              \\*[$\\*[$TITLE_TYPE]_RULE_GAP]
+.    \}
+.    nr #TEXT_WIDTH \w'\\$1'
+\Z'\\$1'\
+\Z'\D't \\n[#UNDERSCORE_WEIGHT]''\
+\v'\\*[$UNDERSCORE_GAP]+\\n[#UNDERSCORE_WEIGHT_ADJ]u'\
+\Z'\D'l \\n[#TEXT_WIDTH]u 0''\
+\v'\\*[$RULE_GAP]+\\n[#UNDERSCORE_WEIGHT]u'\
 \D'l \\n[#TEXT_WIDTH]u 0'\
-\v'+\\*[$RULE_GAP]+\\n[#UNDERSCORE_WEIGHT]u'\
-\h'-\\n[#TEXT_WIDTH]u'\
-\D'l \\n[#TEXT_WIDTH]u 0'\
-\D't \\n[#RULE_WEIGHT]'\
-\h'-\\n[#RULE_WEIGHT]u'\
+\Z'\D't \\n[#RULE_WEIGHT]''\
 \v'-(\\*[$UNDERSCORE_GAP]+\\*[$RULE_GAP])-(\\n[#UNDERSCORE_WEIGHT]u*2u)'
-.    \}
 .    nr #UNDERSCORE_WEIGHT     \\n[#SAVED_UNDERSCORE_WEIGHT]
 .    nr #UNDERSCORE_WEIGHT_ADJ \\n[#SAVED_UNDERSCORE_WEIGHT_ADJ]
 .    ds $UNDERSCORE_GAP        \\*[$SAVED_UNDERSCORE_GAP]
@@ -2192,23 +2108,31 @@ end
 .    rr #SAVED_UNDERSCORE_WEIGHT_ADJ
 .    rm $SAVED_UNDERSCORE_GAP
 .    rm $SAVED_RULE_GAP
+.    rm $TITLE_TYPE
 .END
 \#
-\# Default underscoring rule gaps
+\# Default underscoring underline and rule gaps
 \#
-.ds $BIB_STRING_UNDERLINE_GAP 2p
 .ds $BIB_STRING_RULE_GAP      2p
-.ds $COVER_UNDERLINE_GAP      2p
-.ds $DOC_COVER_UNDERLINE_GAP  2p
-.ds $DOCTYPE_UNDERLINE_GAP    2p
-.ds $EN_STRING_UNDERLINE_GAP  2p
+.ds $BIB_STRING_UNDERLINE_GAP 2p
 .ds $EN_STRING_RULE_GAP       2p
+.ds $EN_STRING_UNDERLINE_GAP  2p
 .ds $EN_TITLE_UNDERLINE_GAP   2p
 .ds $RULE_GAP                 2p
-.ds $TOC_HEADER_UNDERLINE_GAP 2p
 .ds $TOC_HEADER_RULE_GAP      2p
+.ds $TOC_HEADER_UNDERLINE_GAP 2p
 .ds $UNDERSCORE_GAP           2p
 \#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=14 \{\
+. ds $\*[TITLE_TYPE_\n[#LOOP]]_RULE_GAP                2p
+. ds $COVER_\*[TITLE_TYPE_\n[#LOOP]]_RULE_GAP          2p
+. ds $DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_RULE_GAP      2p
+. ds $\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_GAP           2p
+. ds $COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_GAP     2p
+. ds $DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_GAP 2p
+.\}
+\#
 \# SUPERSCRIPT
 \# -----------
 \# *Function:
@@ -3162,7 +3086,7 @@ end
 .       substring $ARG -1
 .       if !\B'\\*[$ARG]' \{\
 .          tm1 "[mom]: The argument to \\$0 must not have a unit of measure 
appended.
-.          ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.          ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .       \}
 .       length #STR_LENGTH \\$1
 .       ds $ARG \\$1
@@ -3173,13 +3097,14 @@ end
 .          nr #WEIGHT \\*[$ARG]*100
 .          if (\\n[#WEIGHT]>=1000) \{\
 .              while (\\n[#WEIGHT]>=1000) \{\
-.                  nr #WEIGHT \\n[#WEIGHT]/10
+.                 nr #WEIGHT \\n[#WEIGHT]/10
 .              \}
 .          \}
 .       \}
 .       el \{\
 .          ds $ARG \\$1
-.          substring $ARG 1 1
+.          length #ARG_LENGTH \\*[$ARG]
+.          if \\n[#ARG_LENGTH]>1 .substring $ARG 1 1
 .          ie '\\*[$ARG]'.' \{\
 .             ds $LHS \\$1
 .             substring $LHS 0 0
@@ -3219,29 +3144,32 @@ end
 .          \}
 .       \}
 .       nr #WEIGHT_ADJ \\n[#WEIGHT]/2
-.       if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT' \{\
-.          nr #BIB_STRING_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #BIB_STRING_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
-.       if '\\$0'COVER_UNDERLINE_WEIGHT' \{\
-.          nr #COVER_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #COVER_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
-.       if '\\$0'DOC_COVER_UNDERLINE_WEIGHT' \{\
-.          nr #DOC_COVER_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #DOC_COVER_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
-.       if '\\$0'DOCTYPE_UNDERLINE_WEIGHT' \{\
-.          nr #DOCTYPE_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #DOCTYPE_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
+.       if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT' \
+.          ds $TITLE_TYPE BIB_STRING_
+.       if '\\$0'ENDNOTE_TITLE_UNDERLINE_WEIGHT' \
+.          ds $TITLE_TYPE EN_TITLE_
+.       if '\\$0'EN_HEADER_UNDERLINE_WEIGHT' \
+.          ds $TITLE_TYPE EN_STRING_
+.       if !'\\*[$TITLE_TYPE]'BIB_STRING' \
+.          if !'\\*[$TITLE_TYPE]'EN_TITLE' \
+.             if !'\\*[$TITLE_TYPE]'EN_STRING' \
+.                ds _TYPE \\$0
+.       length type-len _TYPE
+.       if \\n[type-len]>17 \{\
+.          substring _TYPE 0 -17
+.          ds $TITLE_TYPE \\*[_TYPE]
+.       \}
+.       if !'\\*[$TITLE_TYPE]'' \{\
+.          nr #\\*[$TITLE_TYPE]UNDERLINE_WEIGHT \\n[#WEIGHT]
+.          nr #\\*[$TITLE_TYPE]UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
 .       \}
-.       if '\\$0'ENDNOTE_STRING_UNDERLINE_WEIGHT' \{\
-.          nr #EN_STRING_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #EN_STRING_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
+.       if '\\$0'RULE_WEIGHT' \{\
+.          nr #RULE_WEIGHT     \\n[#WEIGHT]
+.          nr #RULE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
 .       \}
-.       if '\\$0'ENDNOTE_TITLE_UNDERLINE_WEIGHT' \{\
-.          nr #EN_TITLE_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #EN_TITLE_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
+.       if '\\$0'UNDERSCORE_WEIGHT' \{\
+.          nr #UNDERSCORE_WEIGHT     \\n[#WEIGHT]
+.          nr #UNDERSCORE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
 .       \}
 .       if '\\$0'FOOTER_RULE_WEIGHT' \{\
 .          nr #FOOTER_RULE_WEIGHT     \\n[#WEIGHT]
@@ -3255,40 +3183,26 @@ end
 .          nr #HEADER_RULE_WEIGHT     \\n[#WEIGHT]
 .          nr #HEADER_RULE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
 .       \}
-.       if '\\$0'RULE_WEIGHT' \{\
-.          nr #RULE_WEIGHT     \\n[#WEIGHT]
-.          nr #RULE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
-.       if '\\$0'TOC_HEADER_UNDERLINE_WEIGHT' \{\
-.          nr #TOC_HEADER_UNDERLINE_WEIGHT     \\n[#WEIGHT]
-.          nr #TOC_HEADER_UNDERLINE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
-.       if '\\$0'UNDERSCORE_WEIGHT' \{\
-.          nr #UNDERSCORE_WEIGHT     \\n[#WEIGHT]
-.          nr #UNDERSCORE_WEIGHT_ADJ \\n[#WEIGHT_ADJ]
-.       \}
 .    di
 .END
 \#
-\# Aliases
+\# Aliases for RULE_WEIGHT
 \# 
-.ALIAS BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT RULE_WEIGHT
-.ALIAS COVER_UNDERLINE_WEIGHT               RULE_WEIGHT
-.ALIAS DOC_COVER_UNDERLINE_WEIGHT           RULE_WEIGHT
-.ALIAS DOCTYPE_UNDERLINE_WEIGHT             RULE_WEIGHT
-.ALIAS ENDNOTE_STRING_UNDERLINE_WEIGHT      RULE_WEIGHT
-.ALIAS ENDNOTE_TITLE_UNDERLINE_WEIGHT       RULE_WEIGHT
-.ALIAS FOOTER_RULE_WEIGHT                   RULE_WEIGHT
-.ALIAS FOOTNOTE_RULE_WEIGHT                 RULE_WEIGHT
-.ALIAS HEADER_RULE_WEIGHT                   RULE_WEIGHT
-.ALIAS TOC_HEADER_UNDERLINE_WEIGHT          RULE_WEIGHT
-.ALIAS UNDERSCORE_WEIGHT                    RULE_WEIGHT
+.ALIAS BIB_STRING_UNDERLINE_WEIGHT RULE_WEIGHT
+.ALIAS DOCTYPE_UNDERLINE_WEIGHT    RULE_WEIGHT
+.ALIAS EN_STRING_UNDERLINE_WEIGHT  RULE_WEIGHT
+.ALIAS EN_TITLE_UNDERLINE_WEIGHT   RULE_WEIGHT
+.ALIAS FN_RULE_WEIGHT              RULE_WEIGHT
+.ALIAS FOOTER_RULE_WEIGHT          RULE_WEIGHT
+.ALIAS FOOTNOTE_RULE_WEIGHT        RULE_WEIGHT
+.ALIAS HEADER_RULE_WEIGHT          RULE_WEIGHT
+.ALIAS RULE_WEIGHT                 RULE_WEIGHT
+.ALIAS TOC_HEADER_UNDERLINE_WEIGHT RULE_WEIGHT
+.ALIAS UNDERSCORE_WEIGHT           RULE_WEIGHT
 \#
 \# Default rule weights
-\# ~~~~~~~~~~~~~~~~~~~~
+\# 
 .nr #BIB_STRING_UNDERLINE_WEIGHT 500
-.nr #COVER_UNDERLINE_WEIGHT      500
-.nr #DOC_COVER_UNDERLINE_WEIGHT  500
 .nr #DOCTYPE_UNDERLINE_WEIGHT    500
 .nr #EN_STRING_UNDERLINE_WEIGHT  500
 .nr #EN_TITLE_UNDERLINE_WEIGHT   500
@@ -3300,18 +3214,34 @@ end
 .nr #UNDERSCORE_WEIGHT           500
 \#
 .nr #BIB_STRING_UNDERLINE_WEIGHT_ADJ \n[#BIB_STRING_UNDERLINE_WEIGHT]/2
-.nr #COVER_UNDERLINE_WEIGHT_ADJ      \n[#DOCTYPE_UNDERLINE_WEIGHT]/2
-.nr #DOC_COVER_UNDERLINE_WEIGHT_ADJ  \n[#DOCTYPE_RULE_WEIGHT]/2
-.nr #DOCTYPE_UNDERLINE_WEIGHT_ADJ    \n[#DOCTYPE_RULE_WEIGHT]/2
+.nr #DOCTYPE_UNDERLINE_WEIGHT_ADJ    \n[#DOCTYPE_UNDERLINE_WEIGHT]/2
 .nr #EN_STRING_UNDERLINE_WEIGHT_ADJ  \n[#EN_STRING_UNDERLINE_WEIGHT]/2
-.nr #EN_TITLE_UNDERLINE_WEIGHT_ADJ   \n[#EN_STRING_UNDERLINE_WEIGHT]/2
-.nr #FOOTER_RULE_WEIGHT_ADJ          \n[#FOOTER_RULE_WEIGHT]/2
+.nr #EN_TITLE_UNDERLINE_WEIGHT_ADJ   \n[#EN_TITLE_UNDERLINE_WEIGHT]/2
 .nr #FN_RULE_WEIGHT_ADJ              \n[#FN_RULE_WEIGHT]/2
+.nr #FOOTER_RULE_WEIGHT_ADJ          \n[#FOOTER_RULE_WEIGHT]/2
 .nr #HEADER_RULE_WEIGHT_ADJ          \n[#HEADER_RULE_WEIGHT]/2
 .nr #RULE_WEIGHT_ADJ                 \n[#RULE_WEIGHT]/2
 .nr #TOC_HEADER_UNDERLINE_WEIGHT_ADJ \n[#TOC_HEADER_UNDERLINE_WEIGHT]/2
 .nr #UNDERSCORE_WEIGHT_ADJ           \n[#UNDERSCORE_WEIGHT]/2
 \#
+\# Read in remaining aliases and default rule weights
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=14 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT           RULE_WEIGHT
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT     RULE_WEIGHT
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT RULE_WEIGHT
+. nr #\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT            500
+. nr #COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT      500
+. nr #DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT  500
+. nr #\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT_ADJ \
+    \n[#\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT]/2
+. nr #COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT_ADJ \
+    \n[#COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT]/2
+. nr #DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT_ADJ \
+    \n[#DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE_WEIGHT]/2
+.\}
+\#
 \# Set default rule weight
 \#
 .di NULL
@@ -3375,7 +3305,7 @@ end
 .    ie '\\$1'0' .ss \\n[.ss] (\\n[.ss]-\\n[.ss])
 .    el \{\
 .       ie '\\$1'DEFAULT' .ss \\n[.ss]
-.       el                .ss \\n[.ss] (0\\*[$SS_VAR])
+.       el                .ss \\n[.ss] (0+\\*[$SS_VAR])
 .    \}
 .END
 \#
@@ -3750,6 +3680,126 @@ end
 .    nop \\$*
 .END
 \#
+\# Numbered strings for while loop in SMALLCAPS.
+\#
+.ds $c1 a
+.ds $c2 b
+.ds $c3 c
+.ds $c4 d
+.ds $c5 e
+.ds $c6 f
+.ds $c7 g
+.ds $c8 h
+.ds $c9 i
+.ds $c10 j
+.ds $c11 k
+.ds $c12 l
+.ds $c13 m
+.ds $c14 n
+.ds $c15 o
+.ds $c16 p
+.ds $c17 q
+.ds $c18 r
+.ds $c19 s
+.ds $c20 t
+.ds $c21 u
+.ds $c22 v
+.ds $c23 w
+.ds $c24 x
+.ds $c25 y
+.ds $c26 z
+.ds $c27 \[`a]
+.ds $c28 \[^a]
+.ds $c29 \['a]
+.ds $c30 \[:a]
+.ds $c31 \[oa]
+.ds $c32 \[~a]
+.ds $c33 \[ae]
+.ds $c34 \[`e]
+.ds $c35 \[^e]
+.ds $c36 \['e]
+.ds $c37 \[:e]
+.ds $c38 \[`i]
+.ds $c39 \[^i]
+.ds $c40 \['i]
+.ds $c41 \[:i]
+.ds $c42 \[`o]
+.ds $c43 \[^o]
+.ds $c44 \['o]
+.ds $c45 \[:o]
+.ds $c46 \[~o]
+.ds $c47 \[/o]
+.ds $c48 \[`u]
+.ds $c49 \[^u]
+.ds $c50 \['u]
+.ds $c51 \[:u]
+.ds $c52 \[,c]
+.ds $c53 \[Sd]
+.ds $c54 \[~n]
+.ds $c55 \[Sd]
+.ds $c56 \[Tp]
+.ds $c57 \['y]
+.ds $c58 \[:y]
+\#
+.ds $C1 A
+.ds $C2 B
+.ds $C3 C
+.ds $C4 D
+.ds $C5 E
+.ds $C6 F
+.ds $C7 G
+.ds $C8 H
+.ds $C9 I
+.ds $C10 J
+.ds $C11 K
+.ds $C12 L
+.ds $C13 M
+.ds $C14 N
+.ds $C15 O
+.ds $C16 P
+.ds $C17 Q
+.ds $C18 R
+.ds $C19 S
+.ds $C20 T
+.ds $C21 U
+.ds $C22 V
+.ds $C23 W
+.ds $C24 X
+.ds $C25 Y
+.ds $C26 Z
+.ds $C27 \[`A]
+.ds $C28 \[^A]
+.ds $C29 \['A]
+.ds $C30 \[:A]
+.ds $C31 \[oA]
+.ds $C32 \[~A]
+.ds $C33 \[AE]
+.ds $C34 \[`E]
+.ds $C35 \[^E]
+.ds $C36 \['E]
+.ds $C37 \[:E]
+.ds $C38 \[`I]
+.ds $C39 \[^I]
+.ds $C40 \['I]
+.ds $C41 \[:I]
+.ds $C42 \[`O]
+.ds $C43 \[^O]
+.ds $C44 \['O]
+.ds $C45 \[:O]
+.ds $C46 \[~O]
+.ds $C47 \[/O]
+.ds $C48 \[`U]
+.ds $C49 \[^U]
+.ds $C50 \['U]
+.ds $C51 \[:U]
+.ds $C52 \[,C]
+.ds $C53 \[-D]
+.ds $C54 \[~N]
+.ds $C55 \[-D]
+.ds $C56 \[TP]
+.ds $C57 \['Y]
+.ds $C58 \[:Y]
+\#
 \# CAPS
 \# ----
 \# *Arguments:
@@ -3762,152 +3812,124 @@ end
 \#
 .MAC CAPS END
 .    ie '\\$1'' \{\
-.       tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
-.       tr \[`a]\[`A]
-.       tr \[^a]\[^A]
-.       tr \['a]\['A]
-.       tr \[:a]\[:A]
-.       tr \[oa]\[oA]
-.       tr \[~a]\[~A]
-.       tr \[ae]\[AE]
-.       tr \[`e]\[`E]
-.       tr \[^e]\[^E]
-.       tr \['e]\['E]
-.       tr \[:e]\[:E]
-.       tr \[`i]\[`I]
-.       tr \[^i]\[^I]
-.       tr \['i]\['I]
-.       tr \[:i]\[:I]
-.       tr \[`o]\[`O]
-.       tr \[^o]\[^O]
-.       tr \['o]\['O]
-.       tr \[:o]\[:O]
-.       tr \[~o]\[~O]
-.       tr \[/o]\[/O]
-.       tr \[`u]\[`U]
-.       tr \[^u]\[^U]
-.       tr \['u]\['U]
-.       tr \[:u]\[:U]
-.       tr \[,c]\[,C]
-.       tr \[-d]\[-D]
-.       tr \[~n]\[~N]
-.       tr \[Sd]\[-D]
-.       tr \[Tp]\[TP]
-.       tr \['y]\['Y]
-.       tr \[:y]\[:Y]
+.       LC_TO_CAPS
 .       nr #CAPS_ON 1
 .    \}
 .    el \{\
-.       tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
-.       tr \[`a]\[`a]
-.       tr \[^a]\[^a]
-.       tr \['a]\['a]
-.       tr \[:a]\[:a]
-.       tr \[oa]\[oa]
-.       tr \[~a]\[~a]
-.       tr \[ae]\[ae]
-.       tr \[`e]\[`e]
-.       tr \[^e]\[^e]
-.       tr \['e]\['e]
-.       tr \[:e]\[:e]
-.       tr \[`i]\[`i]
-.       tr \[^i]\[^i]
-.       tr \['i]\['i]
-.       tr \[:i]\[:i]
-.       tr \[`o]\[`o]
-.       tr \[^o]\[^o]
-.       tr \['o]\['o]
-.       tr \[:o]\[:o]
-.       tr \[~o]\[~o]
-.       tr \[/o]\[/o]
-.       tr \[`u]\[`u]
-.       tr \[^u]\[^u]
-.       tr \['u]\['u]
-.       tr \[:u]\[:u]
-.       tr \[,c]\[,c]
-.       tr \[Sd]\[Sd]
-.       tr \[~n]\[~n]
-.       tr \[Tp]\[Tp]
-.       tr \['y]\['y]
-.       tr \[:y]\[:y]
+.       CAPS_TO_LC
 .       rr #CAPS_ON
 .    \}
 .END
 \#
 .MAC UC END
 \c
-.    tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
-.    tr \[`a]\[`A]
-.    tr \[^a]\[^A]
-.    tr \['a]\['A]
-.    tr \[:a]\[:A]
-.    tr \[oa]\[oA]
-.    tr \[~a]\[~A]
-.    tr \[ae]\[AE]
-.    tr \[`e]\[`E]
-.    tr \[^e]\[^E]
-.    tr \['e]\['E]
-.    tr \[:e]\[:E]
-.    tr \[`i]\[`I]
-.    tr \[^i]\[^I]
-.    tr \['i]\['I]
-.    tr \[:i]\[:I]
-.    tr \[`o]\[`O]
-.    tr \[^o]\[^O]
-.    tr \['o]\['O]
-.    tr \[:o]\[:O]
-.    tr \[~o]\[~O]
-.    tr \[/o]\[/O]
-.    tr \[`u]\[`U]
-.    tr \[^u]\[^U]
-.    tr \['u]\['U]
-.    tr \[:u]\[:U]
-.    tr \[,c]\[,C]
-.    tr \[Sd]\[-D]
-.    tr \[~n]\[~N]
-.    tr \[Tp]\[TP]
-.    tr \['y]\['Y]
-.    tr \[:y]\[:Y]
+.    LC_TO_CAPS
 .    nr #CAPS_ON 1
 .END
 \#
 .MAC LC END
 \c
-.    tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
-.    tr \[`a]\[`a]
-.    tr \[^a]\[^a]
-.    tr \['a]\['a]
-.    tr \[:a]\[:a]
-.    tr \[oa]\[oa]
-.    tr \[~a]\[~a]
-.    tr \[ae]\[ae]
-.    tr \[`e]\[`e]
-.    tr \[^e]\[^e]
-.    tr \['e]\['e]
-.    tr \[:e]\[:e]
-.    tr \[`i]\[`i]
-.    tr \[^i]\[^i]
-.    tr \['i]\['i]
-.    tr \[:i]\[:i]
-.    tr \[`o]\[`o]
-.    tr \[^o]\[^o]
-.    tr \['o]\['o]
-.    tr \[:o]\[:o]
-.    tr \[~o]\[~o]
-.    tr \[/o]\[/o]
-.    tr \[`u]\[`u]
-.    tr \[^u]\[^u]
-.    tr \['u]\['u]
-.    tr \[:u]\[:u]
-.    tr \[,c]\[,c]
-.    tr \[Sd]\[Sd]
-.    tr \[~n]\[~n]
-.    tr \[Tp]\[Tp]
-.    tr \['y]\['y]
-.    tr \[:y]\[:y]
+.    CAPS_TO_LC
 .    rr #CAPS_ON
 .END
 \#
+\# Perform lowercase conversion to caps or revert to lowercase
+\#
+.MAC CONVERT_CASE END
+.    if '\\$0'LC_TO_CAPS' \{\
+.       nr #LOOP 0 1
+.       while \\n+[#LOOP]<=58 \{\
+.          tr \\*[$c\\n[#LOOP]]\\*[$C\\n[#LOOP]]  
+.       \}
+.    \}
+.    if '\\$0'CAPS_TO_LC' \{\
+.       nr #LOOP 0 1
+.       while \\n+[#LOOP]<=58 \{\
+.          tr \\*[$c\\n[#LOOP]]\\*[$c\\n[#LOOP]]  
+.       \}
+.    \}
+.END
+.
+.ALIAS LC_TO_CAPS CONVERT_CASE
+.ALIAS CAPS_TO_LC CONVERT_CASE
+.
+\#
+\# SMALLCAPS
+\# ---------
+\# *Arguments:
+\#   <none> | <anything>
+\# *Function:
+\#   Converts text to smallcaps, or, if OFF, reverts to normal caps/lc.
+\# *Notes:
+\#   SMALLCAPS has no inline escape eqiv. to \*[UC].
+\#
+.MAC SMALLCAPS END
+.    if \\n[.int] .nop \& \c
+.    nr sc*size \\n[.ps]*\\n[sc*factor]/1000
+.    if \\n[sc*wt-adj] .nr sc*wt-adj-factor \\n[sc*size]*\\n[sc*wt-adj]/1000
+.    if \\n[sc*extend] .nr sc*extend-factor \\n[sc*size]*\\n[sc*extend]/1000
+.    ie '\\$1'' \{\
+.       nr #SMALLCAPS_ON 1
+.       nr #LOOP 0 1
+.       while \\n+[#LOOP]<=58 \{\
+.       char \\*[$c\\n[#LOOP]] \
+\Z'\s[\\n[sc*size]u+\\n[sc*extend-factor]u]\H'-\\n[sc*extend-factor]u'\
+\\*[$C\\n[#LOOP]]'\
+\h'\\n[sc*wt-adj-factor]u'\\*[$C\\n[#LOOP]]\s[0]
+.       \}
+.    \}
+.    el \{\
+.       nr #LOOP 0 1
+.       while \\n+[#LOOP]<=58 \{\
+.          rchar \\*[$c\\n[#LOOP]]
+.      \}
+.      rr sc*wt-adj-factor
+.      rr sc*extend-factor
+.      rr #SMALLCAPS_ON
+.    \}
+.END
+\#
+\# SMALLCAPS_SIZE
+\# --------------
+\# *Arguments:
+\#   <size> [ <weight adjustment>
+\# *Function:
+\#   Sets registers 'sc*factor', 'sc*wt-adj', and sc*extend.
+\# *Notes:
+\#   Weight adjustment pseudo-emboldens small caps to visually match the
+\#   weight of the larger real caps.
+\#
+\#   Both sc*factor (size) and sc*wt-adj (weight adjustment) args are
+\#   expressed as percentages of type size.
+\#
+.MAC SMALLCAPS_STYLE END
+.    nr #LOOP 0 1
+.    while \\n+[#LOOP]<=\\n[#NUM_ARGS] \{\
+.       if '\\$1'SIZE' \{\
+.          shift
+.          nr sc*factor (z;\\$1)/100
+.          shift
+.       \}
+.       if '\\$1'WEIGHT_ADJ' \{\
+.          shift
+.          nr sc*wt-adj (z;\\$1)/100
+.          shift
+.       \}
+.       if '\\$1'EXTEND' \{\
+.          shift
+.          nr sc*extend (z;\\$1)/100
+.          shift
+.       \}
+.    \}
+.    if \\n[sc*wt-adj]=0 .rr sc*wt-adj
+.    if \\n[sc*extend]=0 .rr sc*extend
+.END
+.
+.SMALLCAPS_STYLE \
+SIZE 74 \
+WEIGHT_ADJ .3 \
+EXTEND 5
+\#
 \# SIZESPECS
 \# ---------
 \# Argument:
@@ -3938,32 +3960,32 @@ y\R'#DESCENDER \\n[.cdp]'
 \#
 \# +++TYPESETTING ALIASES+++
 \#
-.ALIAS    ADD_SPACE       ALD
-.ALIAS    CENTRE          CENTER
-.ALIAS    COLOUR          COLOR
-.ALIAS    COMMENT         SILENT
-.ALIAS    CONDENSE        CONDENSE_OR_EXTEND
-.ALIAS    EXTEND          CONDENSE_OR_EXTEND
-.ALIAS    FAM             FAMILY
-.ALIAS    FONT            FT
-.ALIAS    HYPHENATE       HY
-.ALIAS    HYPHENATION     HY
-.ALIAS    HYSET           HY_SET
-.ALIAS    IBQ             IBX
-.ALIAS    ILQ             ILX
-.ALIAS    IQ              IX
-.ALIAS    IRQ             IRX
-.ALIAS    LIG             LIGATURES
-.ALIAS    NEWCOLOUR       NEWCOLOR
-.ALIAS    PADMARKER       PAD_MARKER
-.ALIAS    SP              ALD
-.ALIAS    SPACE           ALD
-.ALIAS    TABSET          TAB_SET
-.ALIAS    TB              TAB
-.ALIAS    UNDERSCORE_2    UNDERSCORE2
-.ALIAS    XCOLOUR         XCOLOR
-.ALIAS    PDF_LINK_COLOUR PDF_LINK_COLOR
-.ALIAS    AUTO_TOC_RELOCATE AUTO_RELOCATE_TOC
+.ALIAS ADD_SPACE         ALD
+.ALIAS CENTRE            CENTER
+.ALIAS COLOUR            COLOR
+.ALIAS COMMENT           SILENT
+.ALIAS CONDENSE          CONDENSE_OR_EXTEND
+.ALIAS EXTEND            CONDENSE_OR_EXTEND
+.ALIAS FAM               FAMILY
+.ALIAS FONT              FT
+.ALIAS HYPHENATE         HY
+.ALIAS HYPHENATION       HY
+.ALIAS HYSET             HY_SET
+.ALIAS IBQ               IBX
+.ALIAS ILQ               ILX
+.ALIAS IQ                IX
+.ALIAS IRQ               IRX
+.ALIAS LIG               LIGATURES
+.ALIAS NEWCOLOUR         NEWCOLOR
+.ALIAS PADMARKER         PAD_MARKER
+.ALIAS SP                ALD
+.ALIAS SPACE             ALD
+.ALIAS TABSET            TAB_SET
+.ALIAS TB                TAB
+.ALIAS UNDERSCORE_2      UNDERSCORE2
+.ALIAS XCOLOUR           XCOLOR
+.ALIAS PDF_LINK_COLOUR   PDF_LINK_COLOR
+.ALIAS AUTO_TOC_RELOCATE AUTO_RELOCATE_TOC
 \#
 \# ====================================================================
 \#
@@ -3971,7 +3993,7 @@ y\R'#DESCENDER \\n[.cdp]'
 \# ===============================================
 \#
 \# DOC_MACRO_ERROR
-\# ----------
+\# ---------------
 \# *Arguments:
 \#   None.
 \# *Function:
@@ -3987,7 +4009,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .    if '\\$1'DOC_QUAD'        .ds $REPLACEMENT QUAD
 .    tm1 "[mom]: \\$1 at line \\n[.c] of '\\n[.F]' should not be used before 
START.
 .    tm1 "       Use \\*[$REPLACEMENT] instead.
-.    ab  Aborting.
+.    ab   [mom]: Aborting.
 .END
 \#
 \# +++PAGE DIMENSIONS+++
@@ -4094,7 +4116,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .             nr #SINGLE_SPACE 1
 .             vs 12
 .             ie \\n[#DOC_TYPE]=4 .nr #FOOTER_ADJ \\n[.v]
-.             el .nr #FOOTER_ADJ \\n[.v]*2
+.             el .nr #FOOTER_ADJ \\n[.v]
 .             nr #ORIGINAL_DOC_LEAD \\n[.v]
 .          \}
 .          el \{\
@@ -4186,7 +4208,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .    \}
 .END
 \#
-\# PRINTSTYLE TYPEWRITE control.
+\# Set limited parameters to TYPEWRITE.
 \#
 .MAC TYPEWRITER_FAMILY END
 .    ds $TYPEWRITER_FAM \\$1
@@ -4550,24 +4572,36 @@ y\R'#DESCENDER \\n[.cdp]'
 \#
 \# ====================================================================
 \#
-\# +++COLLECT DOC INFO -- STRINGS AND REGISTERS FOR REFERENCE MACROS+++
+\# +++COLLECT DOC INFO (reference macros, metadata)+++
 \#
 \# *Arguments:
 \#   various string/register arguments
 \# *Function:
-\#   Collect information about documents.
+\#   Set strings and registers for covers, docheaders, page headers.
 \#
 .MAC DOCTITLE END
 .    rr #DOCTITLE_NUM
 .    nr #DOCTITLE_NUM 0 1
 .    while \\n[#NUM_ARGS]>\\n[#DOCTITLE_NUM] \{\
-.       ds $DOC_TITLE_\\n+[#DOCTITLE_NUM] \\$\\n[#DOCTITLE_NUM]
+.       ds $DOCTITLE_\\n+[#DOCTITLE_NUM] \\$\\n[#DOCTITLE_NUM]
 .    \}
-.    ds $DOC_TITLE \\$*
-.    PDF_TITLE \\*[$DOC_TITLE]
+.    ds $DOCTITLE \\$*
+.    PDF_TITLE \\*[$DOCTITLE]
 .END
 \#
 .MAC TITLE END \"Document title
+.    if '\\$1'DOC_COVER' \{\
+.       shift
+.       DOC_COVERTITLE \\$@
+.       nr #FROM_DOC_COVERTITLE 1
+.       return
+.    \}
+.    if '\\$1'COVER' \{\
+.       shift
+.       COVERTITLE \\$@
+.       nr #FROM_COVERTITLE 1
+.       return
+.    \}
 .    ie \\n[#NUM_ARGS]=0 \{\
 .       if \\n[#TITLE_NUM] \{\
 .          nr #ITEM 0 1
@@ -4588,39 +4622,35 @@ y\R'#DESCENDER \\n[.cdp]'
 \#
 .MAC SUBTITLE END \"Document sub-title
 .    ie \\n[#NUM_ARGS]=0 \{\
-.       if \\n[#SUBTITLE_NUM] \{\
+.       if \\n[#DOC_COVER_SUBTITLE_NUM] \
+.          ds COVER_ DOC_COVER_
+.       if \\n[#COVER_SUBTITLE_NUM] \
+.          ds COVER_ COVER_
+.       if \\n[#\\*[COVER_]SUBTITLE_NUM] \{\
 .          nr #ITEM 0 1
-.          while \\n[#SUBTITLE_NUM]>\\n[#ITEM] \{\
-.             rm $SUBTITLE_\\n+[#ITEM]
+.          while \\n[#\\*[COVER_]SUBTITLE_NUM]>\\n[#ITEM] \{\
+.             rm $\\*[COVER_]SUBTITLE_\\n+[#ITEM]
 .          \}
-.          rr #SUBTITLE_NUM
+.          rr #\\*[COVER_]SUBTITLE_NUM
 .          rm $SUBTITLE
 .       \}
 .    \}
 .    el \{\
 .       if '\\$1'DOC_COVER' \{\
+.          ds COVER_ DOC_COVER_
 .          shift
-.          nr #SUBTITLE_DOC_COVER_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#SUBTITLE_DOC_COVER_NUM] \{\
-.              ds $SUBTITLE_DOC_COVER_\\n+[#SUBTITLE_DOC_COVER_NUM] \
-\\$\\n[#SUBTITLE_DOC_COVER_NUM]
-.          \}
-.          return
 .       \}
 .       if '\\$1'COVER' \{\
+.          ds COVER_ COVER_
 .          shift
-.          nr #SUBTITLE_COVER_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#SUBTITLE_COVER_NUM] \{\
-.              ds $SUBTITLE_COVER_\\n+[#SUBTITLE_COVER_NUM] \
-\\$\\n[#SUBTITLE_COVER_NUM]
-.          \}
-.          return
 .       \}
-.       nr #SUBTITLE_NUM 0 1
-.       while \\n[#NUM_ARGS]>\\n[#SUBTITLE_NUM] \{\
-.          ds $SUBTITLE_\\n+[#SUBTITLE_NUM] \\$\\n[#SUBTITLE_NUM]
+.       nr #\\*[COVER_]SUBTITLE_NUM 0 1
+.       while \\n[#NUM_ARGS]>\\n[#\\*[COVER_]SUBTITLE_NUM] \{\
+.          ds $\\*[COVER_]SUBTITLE_\\n+[#\\*[COVER_]SUBTITLE_NUM] \
+\\$\\n[#\\*[COVER_]SUBTITLE_NUM]
 .       \}
-.          ds $SUBTITLE \\$*
+.       rm COVER_
+.       ds $SUBTITLE \\$*
 .    \}
 .END
 \#
@@ -4667,111 +4697,71 @@ y\R'#DESCENDER \\n[.cdp]'
 .END
 \#
 .MAC AUTHOR END \"Author.  Enclose all args fully in double quotes.
-.    nr #NEW_AUTHOR 1
+.    rr #NO_PRINT_AUTHOR
 .    if '\\$1'DOC_COVER' \{\
+.       ds COVER_ DOC_COVER_
 .       shift
-.       nr #AUTHOR_DOCCOVER_NUM 0 1
-.       while \\n[#NUM_ARGS]>\\n[#AUTHOR_DOCCOVER_NUM] \{\
-.           ds $AUTHOR_DOCCOVER_\\n+[#AUTHOR_DOCCOVER_NUM] \
-\\$\\n[#AUTHOR_DOCCOVER_NUM]
-.       \}
-.       return
 .    \}
 .    if '\\$1'COVER' \{\
+.       ds COVER_ COVER_
 .       shift
-.       nr #AUTHOR_COVER_NUM 0 1
-.           while \\n[#NUM_ARGS]>\\n[#AUTHOR_COVER_NUM] \{\
-.              ds $AUTHOR_COVER_\\n+[#AUTHOR_COVER_NUM] 
\\$\\n[#AUTHOR_COVER_NUM]
-.           \}
-.       return
 .    \}
-.    nr #AUTHOR_NUM 0 1
-.    rm $AUTHORS
-.    while \\n[#NUM_ARGS]>\\n[#AUTHOR_NUM] \{\
-.       ds $AUTHOR_\\n+[#AUTHOR_NUM] \\$\\n[#AUTHOR_NUM]
-.       as $AUTHORS \\*[$AUTHOR_\\n[#AUTHOR_NUM]], \"
+.    nr #\\*[COVER_]AUTHOR_NUM 0 1
+.    while \\n[#NUM_ARGS]>\\n[#\\*[COVER_]AUTHOR_NUM] \{\
+.       ds $\\*[COVER_]AUTHOR_\\n+[#\\*[COVER_]AUTHOR_NUM] \
+\\$\\n[#\\*[COVER_]AUTHOR_NUM]
+.       if !'\\*[$\\*[COVER_]AUTHOR_\\n[#\\*[COVER_]AUTHOR_NUM]]'' \
+.          as $AUTHORS \
+"\\*[$\\*[COVER_]AUTHOR_\\n[#\\*[COVER_]AUTHOR_NUM]], \"
 .    \}
 .    ds $AUTHOR \\*[$AUTHOR_1]
-.    substring $AUTHORS 0 -2
+.    substring $AUTHORS 0 -3
 .    ds PDF_AUTHORS \\*[$AUTHORS]
 .    pdfmomclean PDF_AUTHORS
 .    nop \!x X ps:exec [/Author (\\*[PDF_AUTHORS]) /DOCINFO pdfmark
 .END
-\#
+.
 .ALIAS EDITOR AUTHOR
 \#
 .MAC COPYRIGHT END          \"For use on cover pages only
-.   ie \\n[#NUM_ARGS]=1 \{\
-.       ds $COPYRIGHT \[co]\\$1
-.       rm $COPYRIGHT_DOCCOVER
-.       rm $COPYRIGHT_COVER
-.    \}
-.    el \{\
-.       if '\\$1'DOC_COVER' .ds $COPYRIGHT_DOCCOVER \[co]\\$2
-.       if '\\$1'COVER'     .ds $COPYRIGHT_COVER \[co]\\$2
-.    \}
+.   ie \\n[#NUM_ARGS]=1 \
+.       ds $COVER_COPYRIGHT \[co]\\$1
+.    el \
+.       if '\\$1'DOC_COVER' .ds $DOC_COVER_COPYRIGHT \[co]\\$2
 .END
 \#
-.MAC MISC END \"For use on cover pages only; enclose all args in double quotes
+.MAC MISC END \"Doc cover and cover pages only; enclose all args in double 
quotes
+.    rm COVER_
 .    ie \\n[#NUM_ARGS]=0 \{\
-.       if \\n[#MISC_NUM] \{\
-.          nr #ITEM 0 1
-.          while \\n[#MISC_NUM]>\\n[#ITEM] \{\
-.             rm $MISC_\\n+[#ITEM]
-.          \}
-.          rr #MISC_NUM
-.          rr #NUM_MISCS
-.       \}
-.       if \\n[#MISC_DOC_COVER_NUM] \{\
-.          nr #ITEM 0 1
-.          while \\n[#MISC_DOC_COVER_NUM]>\\n[#ITEM] \{\
-.             rm $MISC_DOC_COVER_\\n+[#ITEM]
-.          \}
-.          rr #MISC_DOC_COVER_NUM
-.          rr #NUM_MISCS
-.       \}
-.       if \\n[#MISC_COVER_NUM] \{\
-.          nr #ITEM 0 1
-.          while \\n[#MISC_COVER_NUM]>\\n[#ITEM] \{\
-.             rm $MISC_COVER_\\n+[#ITEM]
+.       if \\n[#DOC_COVER_MISC_LINES] \
+.          ds COVER_ DOC_COVER_
+.       if \\n[#COVER_MISC_LINES] \
+.          ds COVER_ COVER_
+.       if \\n[#\\*[COVER_]MISC_LINES] \{\
+.          nr #LINE 0 1
+.          while \\n[#\\*[COVER_]MISC_LINES]>\\n[#LINE] \{\
+.             rm $\\*[COVER_]MISC_\\n+[#LINE]
 .          \}
-.          rr #MISC_COVER_NUM
-.          rr #NUM_MISCS
+.          rr #\\*[COVER_]MISC_LINES
 .       \}
 .    \}
 .    el \{\
-.       if !'\\$1'DOC_COVER' \{\
-.         if !'\\$1'COVER' .nr #NEITHER 1
-.       \}
-.       if !'\\$1'COVER' \{\
-.          if !'\\$1'DOC_COVER' .nr #NEITHER 1
-.       \}
 .       if '\\$1'DOC_COVER' \{\
+.          ds COVER_ DOC_COVER_
 .          shift
-.          nr #MISC_DOC_COVER_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#MISC_DOC_COVER_NUM] \{\
-.             ds $MISC_DOC_COVER_\\n+[#MISC_DOC_COVER_NUM] \
-\\$[\\n[#MISC_DOC_COVER_NUM]]
-.          \}
-.          nr #NUM_MISCS_DOCCOVER \\n[#NUM_ARGS]
 .       \}
 .       if '\\$1'COVER' \{\
+.          ds COVER_ COVER_
 .          shift
-.          nr #MISC_COVER_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#MISC_COVER_NUM] \{\
-.             ds $MISC_COVER_\\n+[#MISC_COVER_NUM] \\$[\\n[#MISC_COVER_NUM]]
-.          \}
-.          nr #NUM_MISCS_COVER \\n[#NUM_ARGS]
 .       \}
-.       if \\n[#NEITHER]=1 \{\
-.          nr #MISC_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#MISC_NUM] \{\
-.             ds $MISC_\\n+[#MISC_NUM] \\$[\\n[#MISC_NUM]]
-.          \}
-.          nr #NUM_MISCS \\n[#NUM_ARGS]
-.          rr #NEITHER
+.       nr #\\*[COVER_]MISC_LINE 0 1
+.       while \\n[#NUM_ARGS]>\\n[#\\*[COVER_]MISC_LINE] \{\
+.          ds $\\*[COVER_]MISC_\\n+[#\\*[COVER_]MISC_LINE] \
+\\$[\\n[#\\*[COVER_]MISC_LINE]]
 .       \}
-.   \}
+.       nr #\\*[COVER_]MISC_LINES \\n[#NUM_ARGS]
+.       rm COVER_
+.    \}
 .END
 \#
 .MAC PAGENUMBER END \"Page # that appears on page one.
@@ -4798,6 +4788,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .    if '\\$1'DEFAULT' .nr #DOC_TYPE 1
 .    if '\\$1'CHAPTER' .nr #DOC_TYPE 2
 .    if '\\$1'NAMED' \{\
+.       rr #NO_PRINT_DOCTYPE
 .       ds $DOC_TYPE \\$2
 .       nr #DOC_TYPE 3
 .    \}
@@ -4907,7 +4898,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .       ch FOOTER
 .       br
 .       tm1 "[mom]: Insufficient room for \\$0 and signature line.
-.       ab Aborting '\\n[.F]'.
+.       ab   [mom]: Aborting '\\n[.F]'.
 .    \}
 .    el .br
 .    nr #CLOSING 1
@@ -4950,538 +4941,560 @@ y\R'#DESCENDER \\n[.cdp]'
 \#
 \# ====================================================================
 \#
-\# +++DEFAULTS+++
+\# +++DEFAULTS FOR DOCUMENT PROCESSING+++
 \#
 \# TYPE-STYLE CONTROL MACROS
 \# -------------------------
-\# The control macros for family, font, size, quad and color are here
-\# grouped together.  Each (e.g. _FAMILY or _FONT) tests for a calling
-\# alias before performing the action(s) appropriate to the calling
-\# macro.  Defaults for all these guys are set in DEFAULTS, and listed
-\# in the "Control Macros" section of the documentation pertinent to
-\# the macro whose style is to be changed.
+\# The control macros for family, font, size, color and quad are
+\# here grouped together.  Each (eg _FAMILY) uses the calling alias
+\# to determine the document element to which the style parameter
+\# applies.  Defaults for all these guys are set in DEFAULTS, and
+\# listed in the "Control Macros" section of the documentation
+\# pertinent to the element whose style is to be changed.
 \#
 .MAC _FAMILY END
-.    if '\\$0'AUTHOR_FAMILY' \
-.       ds $AUTHOR_FAM \\$1
-.    if '\\$0'BIBLIOGRAPHY_FAMILY' \
-.       ds $BIB_FAM \\$1
-.    if '\\$0'BIBLIOGRAPHY_STRING_FAMILY' \
-.       ds $BIB_STRING_FAM \\$1
-.    if '\\$0'BLOCKQUOTE_FAMILY' \
-.       ds $BQUOTE_FAM \\$1
-.    if '\\$0'CITATION_FAMILY' \
-.       ds $BQUOTE_FAM \\$1
-.    if '\\$0'CITE_FAMILY' \
-.       ds $BQUOTE_FAM \\$1
-.    if '\\$0'CHAPTER_TITLE_FAMILY' \
-.       ds $CHAPTER_TITLE_FAM \\$1
-.    if '\\$0'COVER_AUTHOR_FAMILY' \
-.       ds $COVER_AUTHOR_FAM \\$1
-.    if '\\$0'COVER_CHAPTER_TITLE_FAMILY' \
-.       ds $COVER_CHAPTER_TITLE_FAM \\$1
-.    if '\\$0'COVER_COPYRIGHT_FAMILY' \
-.       ds $COVER_COPYRIGHT_FAM \\$1
-.    if '\\$0'COVER_DOCTYPE_FAMILY' \
-.       ds $COVER_DOCTYPE_FAM \\$1
-.    if '\\$0'COVER_FAMILY' \
-.       ds $COVER_FAM \\$1
-.    if '\\$0'COVER_MISC_FAMILY' \
-.       ds $COVER_MISC_FAM \\$1
-.    if '\\$0'COVER_SUBTITLE_FAMILY' \
-.       ds $COVER_SUBTITLE_FAM \\$1
-.    if '\\$0'COVER_TITLE_FAMILY' \
-.       ds $COVER_TITLE_FAM \\$1
-.    if '\\$0'DOC_COVER_AUTHOR_FAMILY' \
-.       ds $DOC_COVER_AUTHOR_FAM \\$1
-.    if '\\$0'DOC_COVER_CHAPTER_TITLE_FAMILY' \
-.       ds $DOC_COVER_CHAPTER_TITLE_FAM \\$1
-.    if '\\$0'DOC_COVER_COPYRIGHT_FAMILY' \
-.       ds $DOC_COVER_COPYRIGHT_FAM \\$1
-.    if '\\$0'DOC_COVER_DOCTYPE_FAMILY' \
-.       ds $DOC_COVER_DOCTYPE_FAM \\$1
-.    if '\\$0'DOC_COVER_FAMILY' \
-.       ds $DOC_COVER_FAM \\$1
-.    if '\\$0'DOC_COVER_MISC_FAMILY' \
-.       ds $DOC_COVER_MISC_FAM \\$1
-.    if '\\$0'DOC_COVER_SUBTITLE_FAMILY' \
-.       ds $DOC_COVER_SUBTITLE_FAM \\$1
-.    if '\\$0'DOC_COVER_TITLE_FAMILY' \
-.       ds $DOC_COVER_TITLE_FAM \\$1
-.    if '\\$0'DOCHEADER_FAMILY' \
-.       ds $DOCHEADER_FAM \\$1
-.    if '\\$0'DOCTYPE_FAMILY' \
-.       ds $DOCTYPE_FAM \\$1
-.    if '\\$0'ENDNOTE_FAMILY' \
-.       ds $EN_FAM \\$1
-.    if '\\$0'ENDNOTE_NUMBER_FAMILY' \
-.       ds $EN_NUMBER_FAM \\$1
-.    if '\\$0'ENDNOTE_LINENUMBER_FAMILY' \
-.       ds $EN_LN_FAM \\$1
-.    if '\\$0'ENDNOTES_HEADER_FAMILY' \
-.       ds $EN_STRING_FAM \\$1
-.    if '\\$0'ENDNOTE_STRING_FAMILY' \
-.       ds $EN_STRING_FAM \\$1
-.    if '\\$0'ENDNOTE_TITLE_FAMILY' \
-.       ds $EN_TITLE_FAM \\$1
-.    if '\\$0'EPIGRAPH_FAMILY' \
-.       ds $EPI_FAM \\$1
-.    if '\\$0'FOOTNOTE_FAMILY' \
-.       ds $FN_FAM \\$1
-.    if '\\$0'HDRFTR_CENTER_FAMILY' \
-.       ds $HDRFTR_CENTER_FAM \\$1
-.    if '\\$0'HDRFTR_FAMILY' \{\
-.       ds $HDRFTR_FAM        \\$1
-.       ds $HDRFTR_LEFT_FAM   \\$1
-.       ds $HDRFTR_CENTER_FAM \\$1
-.       ds $HDRFTR_RIGHT_FAM  \\$1
-.    \}
-.    if '\\$0'HDRFTR_LEFT_FAMILY' \
-.       ds $HDRFTR_LEFT_FAM \\$1
-.    if '\\$0'HDRFTR_RIGHT_FAMILY' \
-.       ds $HDRFTR_RIGHT_FAM \\$1
-.    if '\\$0'LINENUMBER_FAMILY' \
-.       ds $LN_FAM \\$1
-.    if '\\$0'PAGENUM_FAMILY' \
-.       ds $PAGE_NUM_FAM \\$1
-.    if '\\$0'QUOTE_FAMILY' \
-.       ds $QUOTE_FAM \\$1
-.    if '\\$0'SUBTITLE_FAMILY' \
-.       ds $SUBTITLE_FAM \\$1
-.    if '\\$0'TITLE_FAMILY' \
-.       ds $TITLE_FAM \\$1
-.    if '\\$0'TOC_FAMILY' \
-.       ds $TOC_FAM \\$1
-.    if '\\$0'TOC_FAM' \
-.       ds $TOC_FAM \\$1
-.    if '\\$0'TOC_HEADER_FAMILY' \
-.       ds $TOC_HEADER_FAM \\$1
-.    if '\\$0'TOC_PN_FAMILY' \
-.       ds $TOC_PN_FAM \\$1
+.    ds PARAM      FAM
+.    ds ELEMENT    \\$0
+.    if '\\$0'COPYRIGHT_FAMILY' \
+.       ds ELEMENT COVER_COPYRIGHT_FAMILY
+.    ds FROM_ALIAS \\$0
+.    substring ELEMENT 0 -4    \" Strip 'ILY' from FAMILY
+.    ASSIGN_ELEMENT \\$1
 .END
 \#
 .MAC _FONT END
-.    if '\\$0'AUTHOR_FONT' \
-.       ds $AUTHOR_FT \\$1
-.    if '\\$0'BIBLIOGRAPHY_FONT' \
-.       ds $BIB_FT \\$1
-.    if '\\$0'BIBLIOGRAPHY_STRING_FONT' \
-.       ds $BIB_STRING_FT \\$1
-.    if '\\$0'BLOCKQUOTE_FONT' \
-.       ds $BQUOTE_FT \\$1
-.    if '\\$0'CITATION_FONT' \
-.       ds $BQUOTE_FT \\$1
-.    if '\\$0'CITE_FONT' \
-.       ds $BQUOTE_FT \\$1
-.    if '\\$0'CHAPTER_TITLE_FONT' \
-.       ds $CHAPTER_TITLE_FT \\$1
-.    if '\\$0'COVER_AUTHOR_FONT' \
-.       ds $COVER_AUTHOR_FT \\$1
-.    if '\\$0'COVER_CHAPTER_TITLE_FONT' \
-.       ds $COVER_CHAPTER_TITLE_FT \\$1
-.    if '\\$0'COVER_COPYRIGHT_FONT' \
-.       ds $COVER_COPYRIGHT_FT \\$1
-.    if '\\$0'COVER_DOCTYPE_FONT' \
-.       ds $COVER_DOCTYPE_FT \\$1
-.    if '\\$0'COVER_MISC_FONT' \
-.       ds $COVER_MISC_FT \\$1
-.    if '\\$0'COVER_SUBTITLE_FONT' \
-.       ds $COVER_SUBTITLE_FT \\$1
-.    if '\\$0'COVER_TITLE_FONT' \
-.       ds $COVER_TITLE_FT \\$1
-.    if '\\$0'DOC_COVER_AUTHOR_FONT' \
-.       ds $DOC_COVER_AUTHOR_FT \\$1
-.    if '\\$0'DOC_COVER_CHAPTER_TITLE_FONT' \
-.       ds $DOC_COVER_CHAPTER_TITLE_FT \\$1
-.    if '\\$0'DOC_COVER_COPYRIGHT_FONT' \
-.       ds $DOC_COVER_COPYRIGHT_FT \\$1
-.    if '\\$0'DOC_COVER_DOCTYPE_FONT' \
-.       ds $DOC_COVER_DOCTYPE_FT \\$1
-.    if '\\$0'DOC_COVER_MISC_FONT' \
-.       ds $DOC_COVER_MISC_FT \\$1
-.    if '\\$0'DOC_COVER_SUBTITLE_FONT' \
-.       ds $DOC_COVER_SUBTITLE_FT \\$1
-.    if '\\$0'DOC_COVER_TITLE_FONT' \
-.       ds $DOC_COVER_TITLE_FT \\$1
-.    if '\\$0'DOCTYPE_FONT' \
-.       ds $DOCTYPE_FT \\$1
-.    if '\\$0'ENDNOTE_FONT' \
-.       ds $EN_FT \\$1
-.    if '\\$0'ENDNOTE_NUMBER_FONT' \
-.       ds $EN_NUMBER_FT \\$1
-.    if '\\$0'ENDNOTE_LINENUMBER_FONT' \
-.       ds $EN_LN_FT \\$1
-.    if '\\$0'ENDNOTES_HEADER_FONT' \
-.       ds $EN_STRING_FT \\$1
-.    if '\\$0'ENDNOTE_STRING_FONT' \
-.       ds $EN_STRING_FT \\$1
-.    if '\\$0'ENDNOTE_TITLE_FONT' \
-.       ds $EN_TITLE_FT \\$1
-.    if '\\$0'EPIGRAPH_FONT' \
-.       ds $EPI_FT \\$1
-.    if '\\$0'FOOTNOTE_FONT' \
-.       ds $FN_FT \\$1
-.    if '\\$0'HDRFTR_CENTER_FONT' \
-.       ds $HDRFTR_CENTER_FT \\$1
-.    if '\\$0'HDRFTR_LEFT_FONT' \
-.       ds $HDRFTR_LEFT_FT \\$1
-.    if '\\$0'HDRFTR_RIGHT_FONT' \
-.       ds $HDRFTR_RIGHT_FT \\$1
-.    if '\\$0'LINENUMBER_FONT' \
-.       ds $LN_FT \\$1
-.    if '\\$0'PAGENUM_FONT' \
-.       ds $PAGE_NUM_FT \\$1
-.    if '\\$0'QUOTE_FONT' \
-.       ds $QUOTE_FT \\$1
-.    if '\\$0'SUBTITLE_FONT' \
-.       ds $SUBTITLE_FT \\$1
-.    if '\\$0'TITLE_FONT' \
-.       ds $TITLE_FT \\$1
-.    if '\\$0'TOC_HEADER_FONT' \
-.       ds $TOC_HEADER_FT \\$1
-.    if '\\$0'TOC_PN_FONT' \
-.       ds $TOC_PN_FT \\$1
+.    ds PARAM      FT
+.    ds ELEMENT    \\$0
+.    ds FROM_ALIAS \\$0
+.    if '\\$0'COPYRIGHT_FONT' \
+.       ds ELEMENT COVER_COPYRIGHT_FONT
+.    substring ELEMENT 0 -5
+.    ds ELEMENT \\*[ELEMENT]FT \" ELEMENT is now \\$0_FT
+.    ASSIGN_ELEMENT \\$1
 .END
 \#
 .MAC _SIZE END
-.    if '\\$0'AUTHOR_SIZE' \
-.       ds $AUTHOR_SIZE_CHANGE \\$1
-.    if '\\$0'BIBLIOGRAPHY_STRING_SIZE' \
-.       ds $BIB_STRING_SIZE_CHANGE \\$1
-.    if '\\$0'BLOCKQUOTE_SIZE' \
-.       ds $BQUOTE_SIZE_CHANGE \\$1
-.    if '\\$0'CITATION_SIZE' \
-.       ds $BQUOTE_SIZE_CHANGE \\$1
-.    if '\\$0'CITE_SIZE' \
-.       ds $BQUOTE_SIZE_CHANGE \\$1
-.    if '\\$0'CHAPTER_TITLE_SIZE' \
-.       ds $CHAPTER_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_AUTHOR_SIZE' \
-.       ds $COVER_AUTHOR_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_CHAPTER_TITLE_SIZE' \
-.       ds $COVER_CHAPTER_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_COPYRIGHT_SIZE' \
-.       ds $COVER_COPYRIGHT_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_DOCTYPE_SIZE' \
-.       ds $COVER_DOCTYPE_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_MISC_SIZE' \
-.       ds $COVER_MISC_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_SUBTITLE_SIZE' \
-.       ds $COVER_SUBTITLE_SIZE_CHANGE \\$1
-.    if '\\$0'COVER_TITLE_SIZE' \
-.       ds $COVER_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_AUTHOR_SIZE' \
-.       ds $DOC_COVER_AUTHOR_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_CHAPTER_TITLE_SIZE' \
-.       ds $DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_COPYRIGHT_SIZE' \
-.       ds $DOC_COVER_COPYRIGHT_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_DOCTYPE_SIZE' \
-.       ds $DOC_COVER_DOCTYPE_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_MISC_SIZE' \
-.       ds $DOC_COVER_MISC_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_SUBTITLE_SIZE' \
-.       ds $DOC_COVER_SUBTITLE_SIZE_CHANGE \\$1
-.    if '\\$0'DOC_COVER_TITLE_SIZE' \
-.       ds $DOC_COVER_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'DOCTYPE_SIZE' \
-.       ds $DOCTYPE_SIZE_CHANGE \\$1
-.    if '\\$0'ENDNOTE_NUMBER_SIZE' \
-.       ds $EN_NUMBER_SIZE_CHANGE \\$1
-.    if '\\$0'ENDNOTE_LINENUMBER_SIZE' \
-.       ds $EN_LN_SIZE_CHANGE \\$1
-.    if '\\$0'ENDNOTES_HEADER_SIZE' \
-.       ds $EN_STRING_SIZE_CHANGE \\$1
-.    if '\\$0'ENDNOTE_STRING_SIZE' \
-.       ds $EN_STRING_SIZE_CHANGE \\$1
-.    if '\\$0'ENDNOTE_TITLE_SIZE' \
-.       ds $EN_TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'EPIGRAPH_SIZE' \
-.       ds $EPI_SIZE_CHANGE \\$1
-.    if '\\$0'FOOTNOTE_SIZE' \
-.       ds $FN_SIZE_CHANGE \\$1
-.    if '\\$0'HDRFTR_CENTER_SIZE' \
-.       ds $HDRFTR_CENTER_SIZE_CHANGE \\$1
-.    if '\\$0'HDRFTR_LEFT_SIZE' \
-.       ds $HDRFTR_LEFT_SIZE_CHANGE \\$1
-.    if '\\$0'HDRFTR_RIGHT_SIZE' \
-.       ds $HDRFTR_RIGHT_SIZE_CHANGE \\$1
-.    if '\\$0'HDRFTR_SIZE' \
-.       ds $HDRFTR_SIZE_CHANGE \\$1
-.    if '\\$0'LINENUMBER_SIZE' \
-.       ds $LN_SIZE_CHANGE \\$1
-.    if '\\$0'PAGENUM_SIZE' \
-.       ds $PAGE_NUM_SIZE_CHANGE \\$1
-.    if '\\$0'QUOTE_SIZE' \
-.       ds $QUOTE_SIZE_CHANGE \\$1
-.    if '\\$0'SUBTITLE_SIZE' \
-.       ds $SUBTITLE_SIZE_CHANGE \\$1
-.    if '\\$0'TITLE_SIZE' \
-.       ds $TITLE_SIZE_CHANGE \\$1
-.    if '\\$0'TOC_HEADER_SIZE' \
-.       ds $TOC_HEADER_SIZE_CHANGE \\$1
-.    if '\\$0'TOC_PN_SIZE' \
-.       ds $TOC_PN_SIZE_CHANGE \\$1
+.    ds PARAM       SIZE_CHANGE
+.    ds ELEMENT     \\$0_CHANGE
+.    if '\\$0'CODE_SIZE' \{\
+.       ds PARAM SIZE_ADJ
+.       ds ELEMENT \\$0_ADJ
+.    \}
+.    if '\\$0'COPYRIGHT_SIZE' \
+.       ds ELEMENT COVER_COPYRIGHT_SIZE_CHANGE
+.    ds FROM_ALIAS  \\$0
+.    ASSIGN_ELEMENT \\$1
 .END
 \#
 .MAC _COLOR END
 .    if \\n[#PRINT_STYLE]=1 .return
-.    if '\\$0'ATTRIBUTE_COLOR' \{\
-.       nr #ATTRIBUTE_COLOR 1
-.       ds $ATTRIBUTE_COLOR \\$1
-.    \}
-.    if '\\$0'AUTHOR_COLOR' \{\
-.       nr #AUTHOR_COLOR 1
-.       ds $AUTHOR_COLOR \\$1
-.    \}
-.    if '\\$0'BLOCKQUOTE_COLOR' \{\
-.       nr #BQUOTE_COLOR 1
-.       ds $BQUOTE_COLOR \\$1
-.    \}
-.    if '\\$0'CITATION_COLOR' \{\
-.       nr #BQUOTE_COLOR 1
-.       ds $BQUOTE_COLOR \\$1
-.    \}
-.    if '\\$0'CITE_COLOR' \{\
-.       nr #BQUOTE_COLOR 1
-.       ds $BQUOTE_COLOR \\$1
-.    \}
-.    if '\\$0'CHAPTER_TITLE_COLOR' \{\
-.       nr #CHAPTER_TITLE_COLOR 1
-.       ds $CHAPTER_TITLE_COLOR \\$1
-.    \}
-.    if '\\$0'CODE_COLOR' \{\
-.       nr #CODE_COLOR 1
-.       ds $CODE_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_ATTRIBUTE_COLOR' \{\
-.       nr #COVER_ATTRIBUTE_COLOR 1
-.       ds $COVER_ATTRIBUTE_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_AUTHOR_COLOR' \{\
-.       nr #COVER_AUTHOR_COLOR 1
-.       ds $COVER_AUTHOR_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_CHAPTER_TITLE_COLOR' \{\
-.       nr #COVER_CHAPTER_TITLE_COLOR 1
-.       ds $COVER_CHAPTER_TITLE_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_COLOR' \{\
-.       nr #COVER_COLOR 1
-.       ds $COVER_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_COPYRIGHT_COLOR' \{\
-.       nr #COVER_COPYRIGHT_COLOR 1
-.       ds $COVER_COPYRIGHT_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_MISC_COLOR' \{\
-.       nr #COVER_MISC_COLOR 1
-.       ds $COVER_MISC_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_TITLE_COLOR' \{\
-.       nr #COVER_TITLE_COLOR 1
-.       ds $COVER_TITLE_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_SUBTITLE_COLOR' \{\
-.       nr #COVER_SUBTITLE_COLOR 1
-.       ds $COVER_SUBTITLE_COLOR \\$1
-.    \}
-.    if '\\$0'COVER_DOCTYPE_COLOR' \{\
-.       nr #COVER_DOCTYPE_COLOR 1
-.       ds $COVER_DOCTYPE_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_ATTRIBUTE_COLOR' \{\
-.       nr #DOC_COVER_ATTRIBUTE_COLOR 1
-.       ds $DOC_COVER_ATTRIBUTE_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_AUTHOR_COLOR' \{\
-.       nr #DOC_COVER_AUTHOR_COLOR 1
-.       ds $DOC_COVER_AUTHOR_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_CHAPTER_TITLE_COLOR' \{\
-.       nr #DOC_COVER_CHAPTER_TITLE_COLOR 1
-.       ds $DOC_COVER_CHAPTER_TITLE_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_COLOR' \{\
-.       nr #DOC_COVER_COLOR 1
-.       ds $DOC_COVER_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_COPYRIGHT_COLOR' \{\
-.       nr #DOC_COVER_COPYRIGHT_COLOR 1
-.       ds $DOC_COVER_COPYRIGHT_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_MISC_COLOR' \{\
-.       nr #DOC_COVER_MISC_COLOR 1
-.       ds $DOC_COVER_MISC_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_TITLE_COLOR' \{\
-.       nr #DOC_COVER_TITLE_COLOR 1
-.       ds $DOC_COVER_TITLE_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_SUBTITLE_COLOR' \{\
-.       nr #DOC_COVER_SUBTITLE_COLOR 1
-.       ds $DOC_COVER_SUBTITLE_COLOR \\$1
-.    \}
-.    if '\\$0'DOC_COVER_DOCTYPE_COLOR' \{\
-.       nr #DOC_COVER_DOCTYPE_COLOR 1
-.       ds $DOC_COVER_DOCTYPE_COLOR \\$1
-.    \}
-.    if '\\$0'DOCHEADER_COLOR' \{\
-.       nr #DOCHEADER_COLOR 1
-.       ds $DOCHEADER_COLOR \\$1
-.    \}
-.    if '\\$0'DOCTYPE_COLOR' \{\
-.       nr #DOCTYPE_COLOR 1
-.       ds $DOCTYPE_COLOR \\$1
-.    \}
-.    if '\\$0'ENDNOTES_HEADER_COLOR' \{\
-.       nr #ENDNOTE_STRING_COLOR 1
-.       ds $ENDNOTE_STRING_COLOR \\$1
-.    \}
-.    if '\\$0'ENDNOTE_STRING_COLOR' \{\
-.       nr #ENDNOTE_STRING_COLOR 1
-.       ds $ENDNOTE_STRING_COLOR \\$1
-.    \}
-.    if '\\$0'EPIGRAPH_COLOR' \{\
-.       nr #EPI_COLOR 1
-.       ds $EPI_COLOR \\$1
-.    \}
-.    if '\\$0'FINIS_COLOR' \{\
-.       nr #FINIS_COLOR 1
-.       ds $FINIS_COLOR \\$1
-.    \}
-.    if '\\$0'FOOTNOTE_COLOR' \{\
-.       nr #FOOTNOTE_COLOR 1
-.       ds $FOOTNOTE_COLOR \\$1
-.    \}
-.    if '\\$0'HDRFTR_CENTER_COLOR' \{\
-.       nr #HDRFTR_CENTER_COLOR 1
-.       ds $HDRFTR_CENTER_COLOR \\$1
-.    \}
-.    if '\\$0'HDRFTR_COLOR' \{\
-.       nr #HDRFTR_COLOR 1
-.       ds $HDRFTR_COLOR \\$1
-.    \}
-.    if '\\$0'HDRFTR_LEFT_COLOR' \{\
-.       nr #HDRFTR_LEFT_COLOR 1
-.       ds $HDRFTR_LEFT_COLOR \\$1
-.    \}
-.    if '\\$0'HDRFTR_RIGHT_COLOR' \{\
-.       nr #HDRFTR_RIGHT_COLOR 1
-.       ds $HDRFTR_RIGHT_COLOR \\$1
-.    \}
-.    if '\\$0'HDRFTR_RULE_COLOR' \{\
-.       nr #HDRFTR_RULE_COLOR 1
-.       ds $HDRFTR_RULE_COLOR \\$1
-.    \}
-.    if '\\$0'LINEBREAK_COLOR' \{\
-.       nr #LINEBREAK_COLOR 1
-.       ds $LINEBREAK_COLOR \\$1
-.    \}
-.    if '\\$0'LINENUMBER_COLOR' \{\
-.       nr #LINENUMBER_COLOR 1
-.       ds $LN_COLOR \\$1
-.    \}
-.    if '\\$0'PAGENUM_COLOR' \{\
-.       nr #PAGE_NUM_COLOR 1
-.       ds $PAGENUM_COLOR \\$1
-.    \}
-.    if '\\$0'QUOTE_COLOR' \{\
-.       nr #QUOTE_COLOR 1
-.       ds $QUOTE_COLOR \\$1
-.    \}
-.    if '\\$0'SECTION_COLOR' \{\
-.       nr #LINEBREAK_COLOR 1
-.       ds $LINEBREAK_COLOR \\$1
+.    ds PARAM       COLOR
+.    ds ELEMENT     \\$0
+.    if '\\$0'COPYRIGHT_COLOR' \
+.       ds ELEMENT COVER_COPYRIGHT_COLOR
+.    ds FROM_ALIAS  \\$0
+.    ASSIGN_ELEMENT \\$1
+.END
+\#
+.MAC _CAPS END
+.    ds CAPS_TYPE \\$0
+.    substring CAPS_TYPE 0 7
+.    ds CALLED_AS \\$0
+.    substring CALLED_AS -7
+.    ie '\\*[CALLED_AS]'NO_CAPS' \{\
+.       ie '\\*[CAPS_TYPE]'BIBLIOGR' \{\
+.          if '\\$0'BIBLIOGRAPHY_HEADER_NO_CAPS' .rr #BIB_STRING_CAPS
+.          if '\\$0'BIBLIOGRAPHY_STRING_NO_CAPS' .rr #BIB_STRING_CAPS
+.       \}
+.       el \{\
+.          ie '\\*[CAPS_TYPE]'ENDNOTES' \{\
+.             if '\\$0'ENDNOTES_HEADER_NO_CAPS' .rr #EN_STRING_CAPS
+.             if '\\$0'ENDNOTES_STRING_NO_CAPS' .rr #EN_STRING_CAPS
+.          \}
+.          el \{\
+.             ie '\\$0'TOC_HEADER_NO_CAPS' .rr #TOC_STRING_CAPS
+.             el \{\
+.                ds REGISTER_TYPE \\$0
+.                substring REGISTER_TYPE 0 -8
+.                as REGISTER_TYPE CAPS
+.                rr #\\*[REGISTER_TYPE]
+.             \}
+.          \}
+.       \}
 .    \}
-.    if '\\$0'SUBTITLE_COLOR' \{\
-.       nr #SUBTITLE_COLOR 1
-.       ds $SUBTITLE_COLOR \\$1
+.    el \{\
+.       ie '\\*[CAPS_TYPE]'BIBLIOGR' \{\
+.          if '\\$0'BIBLIOGRAPHY_HEADER_CAPS' .nr #BIB_STRING_CAPS 1
+.          if '\\$0'BIBLIOGRAPHY_STRING_CAPS' .nr #BIB_STRING_CAPS 1
+.       \}
+.       el .nr #\\$0 1
 .    \}
-.    if '\\$0'TITLE_COLOR' \{\
-.       nr #TITLE_COLOR 1
-.       ds $TITLE_COLOR \\$1
+.END
+.
+.ALIAS _NO_CAPS _CAPS
+\#
+.MAC _SMALLCAPS END
+.    ds SMALLCAPS_TYPE \\$0
+.    substring SMALLCAPS_TYPE 0 7
+.    ds CALLED_AS \\$0
+.    substring CALLED_AS -12
+.    ie '\\*[CALLED_AS]'NO_SMALLCAPS' \{\
+.       ie '\\*[SMALLCAPS_TYPE]'BIBLIOGR' \{\
+.          if '\\$0'BIBLIOGRAPHY_HEADER_NO_SMALLCAPS' .rr #BIB_STRING_SMALLCAPS
+.          if '\\$0'BIBLIOGRAPHY_STRING_NO_SMALLCAPS' .rr #BIB_STRING_SMALLCAPS
+.       \}
+.       el \{\
+.          ie '\\*[SMALLCAPS_TYPE]'ENDNOTES' \{\
+.             if '\\$0'ENDNOTES_HEADER_NO_SMALLCAPS' .rr #EN_STRING_SMALLCAPS
+.             if '\\$0'ENDNOTES_STRING_NO_SMALLCAPS' .rr #EN_STRING_SMALLCAPS
+.          \}
+.          el \{\
+.             ie '\\$0'TOC_HEADER_NO_SMALLCAPS' .rr #TOC_STRING_SMALLCAPS
+.             el \{\
+.                ds REGISTER_TYPE \\$0
+.                substring REGISTER_TYPE 0 -13
+.                as REGISTER_TYPE SMALLCAPS
+.                rr #\\*[REGISTER_TYPE]
+.             \}
+.          \}
+.       \}
 .    \}
-.    if '\\$0'TOC_HEADER_COLOR' \{\
-.       nr #TOC_HEADER_COLOR 1
-.       ds $TOC_HEADER_COLOR \\$1
+.    el \{\
+.       ie '\\*[SMALLCAPS_TYPE]'BIBLIOGR' \{\
+.          if '\\$0'BIBLIOGRAPHY_HEADER_SMALLCAPS' .nr #BIB_STRING_SMALLCAPS 1
+.          if '\\$0'BIBLIOGRAPHY_STRING_SMALLCAPS' .nr #BIB_STRING_SMALLCAPS 1
+.       \}
+.       el .nr #\\$0 1
 .    \}
 .END
+.
+.ALIAS _NO_SMALLCAPS _SMALLCAPS
 \#
 .MAC _QUAD END
 .    if '\\$0'BIBLIOGRAPHY_QUAD' \{\
-.       ds $BIB_QUAD \\$1
-.       if '\\*[$BIB_QUAD]'R' \
-.ab \\$0 at line \\n[.c] must be set to either L or J.  Aborting \\n'[.F]'.
-.       if '\\*[$BIB_QUAD]'C' \
-.ab \\$0 at line \\n[.c] must be set to either L or J.  Aborting \\n'[.F]'.
-.    \}
-.    if '\\$0'BIBLIOGRAPHY_STRING_QUAD' \
-.       ds $BIB_STRING_QUAD \\$1
-.    if '\\$0'BLOCKQUOTE_QUAD' \
-.       ds $BQUOTE_QUAD \\$1
-.    if '\\$0'CITATION_QUAD' \
-.       ds $BQUOTE_QUAD \\$1
-.    if '\\$0'CITE_QUAD' \
-.       ds $BQUOTE_QUAD \\$1
-.    if '\\$0'COVER_COPYRIGHT_QUAD' \
-.       ds $COVER_COPYRIGHT_QUAD \\$1
-.    if '\\$0'COVER_MISC_QUAD' \
-.       ds $COVER_MISC_QUAD \\$1
-.    if '\\$0'COVER_QUAD' \
-.       ds $COVER_QUAD \\$1
-.    if '\\$0'DOC_COVER_COPYRIGHT_QUAD' \
-.       ds $DOC_COVER_COPYRIGHT_QUAD \\$1
-.    if '\\$0'DOC_COVER_MISC_QUAD' \
-.       ds $DOC_COVER_MISC_QUAD \\$1
-.    if '\\$0'DOC_COVER_QUAD' \
-.       ds $DOC_COVER_QUAD \\$1
-.    if '\\$0'DOCHEADER_QUAD' \
-.       ds $DOCHEADER_QUAD \\$1
-.    if '\\$0'DOC_QUAD' \{\
-.       if !\\n[DOCS] .DOC_MACRO_ERROR \\$0
-.        ds $DOC_QUAD \\$1
-.        QUAD \\*[$DOC_QUAD]
+.       if '\\$1'R' .QUAD-ERROR \\$0
+.       if '\\$1'C' .QUAD-ERROR \\$0
 .    \}
 .    if '\\$0'ENDNOTE_QUAD' \{\
-.       ds $EN_QUAD \\$1
-.       if '\\*[$EN_QUAD]'R' \
-.ab \\$0 at line \\n[.c] must be set to either L or J.  Aborting \\n'[.F]'.
-.       if '\\*[$EN_QUAD]'C' \
-.ab \\$0 at line \\n[.c] must be set to either L or J.  Aborting \\n'[.F]'.
-.    \}
-.    if '\\$0'ENDNOTES_HEADER_QUAD' \
-.       ds $EN_STRING_QUAD \\$1
-.    if '\\$0'ENDNOTE_STRING_QUAD' \
-.       ds $EN_STRING_QUAD \\$1
-.    if '\\$0'ENDNOTE_TITLE_QUAD' \
-.       ds $EN_TITLE_QUAD \\$1
-.    if '\\$0'EPIGRAPH_QUAD' \
-.       ds $EPI_QUAD \\$1
-.    if '\\$0'FOOTNOTE_QUAD' \
-.       ds $FN_QUAD \\$1
-.    if '\\$0'TOC_HEADER_QUAD' \
-.       ds $TOC_HEADER_QUAD \\$1
+.       if '\\$1'R' .QUAD-ERROR \\$0
+.       if '\\$1'C' .QUAD-ERROR \\$0
+.    \}
+.    if '\\$0'DOC_QUAD' \{\
+.       if !\\n[#DOCS] .DOC_MACRO_ERROR \\$0
+.    \}
+.    ds PARAM       QUAD
+.    ds ELEMENT     \\$0
+.    if '\\$0'COPYRIGHT_QUAD' \
+.       ds ELEMENT COVER_COPYRIGHT_QUAD
+.    ds FROM_ALIAS  \\$0
+.    ASSIGN_ELEMENT \\$1
 .END
 \#
-\# DEFAULTS
-\# --------
-\# *Arguments:
-\#   <none>
-\# *Function:
-\#   Sets up defaults if no values are entered prior to START.
-\# *Notes:
-\#   The defaults for $CHAPTER_STRING, $DRAFT_STRING, and
-\#   $REVISION_STRING are in the COPYSTYLE macro.
+\# Special handling for QUOTE quadding
 \#
-.MAC DEFAULTS END
-.    if !d $PAPER .PAPER LETTER
-.    if !\\n[#DOC_TYPE] .DOCTYPE DEFAULT
-.    ie \\n[#PAGENUM_STYLE_SET] .PAGENUM_STYLE \\*[$PAGENUM_STYLE]
-.    el \
-.       if !\\n[#COPY_STYLE]=1 .PAGENUM_STYLE DIGIT
-.    if !\\n[#COPY_STYLE] .COPYSTYLE FINAL
-.    if \\n[#DRAFT_WITH_PAGENUM] .COPYSTYLE \\*[$COPY_STYLE]
+.MAC QUOTE_QUAD END
+.    ds $Q_QUAD \\$0
+.    substring $Q_QUAD 6
+.END
+.
+.ALIAS QUOTE_LEFT   QUOTE_QUAD
+.ALIAS QUOTE_CENTER QUOTE_QUAD
+.ALIAS QUOTE_RIGHT  QUOTE_QUAD
+\#
+.MAC QUAD-ERROR END
+.    tm1 "[mom]: \\$1 at line \\n[.c] of '\\n[.F]' must be set to either L or 
J.
+.    ab   [mom]: Aborting.
+.END
+\#
+.MAC ASSIGN_ELEMENT END
+.\" HDRFTR_<POSITION>_<PARAMETER> need special handling.
+.    ds hdrftr \\*[FROM_ALIAS]
+.    substring hdrftr 0 5
+.    if '\\*[hdrftr]'HDRFTR' \{\
+.       ds hdrftr-pos-element \\*[ELEMENT]
+.\" See if ELEMENT is of the form HDRFTR_<pos>_<param>
+.       substring hdrftr-pos-element 0 7
+.       substring hdrftr-pos-element -1
+.       if '\\*[hdrftr-pos-element]'L' .nr hdrftr-pos-element 1
+.       if '\\*[hdrftr-pos-element]'C' .nr hdrftr-pos-element 1
+.       if '\\*[hdrftr-pos-element]'R' .nr hdrftr-pos-element 1
+.    \}
+.    if !\\n[hdrftr-pos-element] \{\
+.       ds c1-c5 \\*[ELEMENT]
+.       substring c1-c5 0 4  \" Grab first five letters of the alias
+.    \}
+.    rr hdrftr-pos-element
+.\"  If none of the following, convert the substring of the
+.\"  calling alias, ie \*[ELEMENT], into the parameter string, eg
+.\"  $TITLE_FAM, assign arg, and set register.
+.    if !'\\*[c1-c5]'BIBLI' \
+.    if !'\\*[c1-c5]'BLOCK' \
+.    if !'\\*[c1-c5]'CITAT' \
+.    if !'\\*[c1-c5]'ENDNO' \
+.    if !'\\*[c1-c5]'EPIGR' \
+.    if !'\\*[c1-c5]'FOOTN' \
+.    if !'\\*[c1-c5]'HDRFT' \
+.    if !'\\*[c1-c5]'LINEN' \
+.    if !'\\*[c1-c5]'PAGEN' \{\
+.       ie '\\*[ELEMENT]'CODE_SIZE_ADJ' .nr #\\*[ELEMENT] \\$1
+.       el \{\
+.          ds $\\*[ELEMENT] \\$1
+.          nr #\\*[ELEMENT] 1
+.       \}
+.    \}
+.    if '\\*[$\\*[ELEMENT]]'' \{\
+.       if '\\*[c1-c5]'BIBLI' .ASSIGN_PARAM BIB       \\$1
+.       if '\\*[c1-c5]'BLOCK' .ASSIGN_PARAM BQUOTE_   \\$1
+.       if '\\*[c1-c5]'CITAT' .ASSIGN_PARAM BQUOTE_   \\$1
+.       if '\\*[c1-c5]'ENDNO' .ASSIGN_PARAM EN        \\$1
+.       if '\\*[c1-c5]'EPIGR' .ASSIGN_PARAM EPI_      \\$1
+.       if '\\*[c1-c5]'FOOTN' .ASSIGN_PARAM FN_       \\$1
+.       if '\\*[c1-c5]'HDRFT' .ASSIGN_PARAM HDRFTR_   \\$1
+.       if '\\*[c1-c5]'LINEN' .ASSIGN_PARAM LN_       \\$1
+.       if '\\*[c1-c5]'PAGEN' .ASSIGN_PARAM PAGE_NUM_ \\$1
+.    \}
+.END
+\#
+.MAC ASSIGN_PARAM END
+.    if '\\*[PARAM]'FAM'         .nr substr-index -7
+.    if '\\*[PARAM]'FT'          .nr substr-index -5
+.    if '\\*[PARAM]'SIZE_CHANGE' .nr substr-index -5
+.    if '\\*[PARAM]'COLOR'       .nr substr-index -6
+.    if '\\*[PARAM]'QUAD'        .nr substr-index -5
+.    if '\\$1'BIB' \{\
+.       ds ELEMENT \\*[FROM_ALIAS]
+.       substring ELEMENT 12 \\n[substr-index]
+.       if '\\*[ELEMENT]'_HEADER_' \
+.          ds ELEMENT _STRING_
+.    \}
+.    if '\\$1'BQUOTE_' .rm ELEMENT
+.    if '\\$1'EN' \{\
+.       ds ELEMENT \\*[FROM_ALIAS]
+.       substring ELEMENT 7 \\n[substr-index]
+.       if '\\*[ELEMENT]'S_HEADER_' \
+.          ds ELEMENT _STRING_
+.       if '\\*[ELEMENT]'_LINENUMBER_' \
+.          ds ELEMENT _LN_
+.    \}
+.    if '\\$1'EPI_' .rm ELEMENT
+.    if '\\$1'FN_'  .rm ELEMENT
+.    if '\\$1'HDRFTR_' \{\
+.       ie '\\*[ELEMENT]'HDRFTR_FAM' \{\
+.          nr #HDRFTR 1
+.          ds $HDRFTR_FAM        \\$2
+.          ds $HDRFTR_LEFT_FAM   \\$2
+.          ds $HDRFTR_CENTER_FAM \\$2
+.          ds $HDRFTR_RIGHT_FAM  \\$2
+.       \}
+.       el \{\
+.          substring ELEMENT 7 \\n[substr-index]
+.          if '\\*[ELEMENT]'_LEFT' \
+.             ds ELEMENT _STRING_
+.       \}
+.    \}
+.    if '\\$1'LN_'       .rm ELEMENT
+.    if '\\$1'PAGE_NUM_' .rm ELEMENT
+.    if !r #HDRFTR \{\
+.       ds $\\$1\\*[ELEMENT]\\*[PARAM] \\$2
+.       nr #\\$1\\*[ELEMENT]\\*[PARAM] 1
+.    \}
+.    rr #HDRFTR
+.    rm hdrftr-pos-element
+.    rr substr-index
+.    rm FROM_ALIAS
+.    rm ELEMENT
+.END
+\#
+.MAC TITLE_LEAD END
+.    ds $TYPE \\$0
+.    substring $TYPE 0 2
+.    if '\\*[$TYPE]'DOC' .nr DOC_ 1
+.    ds $TYPE \\$0
+.    ie '\\*[$TYPE]'MISC_LEAD' .ds $TYPE COVER_MISC
+.    el .substring $TYPE -6 0
+.    ds $\\*[$TYPE]_LEAD \\$1
+.    nr #\\*[$TYPE]_LEAD 1
+.    rm $TYPE
+.END
+\#
+\# The _STYLE macro, called by various aliases, allows grouping
+\# style parameters for most document elements in a single macro
+\# using 'KEYWORD value' pairs.
+\#
+.MAC _STYLE END
+.    ds $STYLE_TYPE \\$0
+.    substring $STYLE_TYPE 0 -7
+.    if '\\*[$STYLE_TYPE]'ENDNOTES_HEADER' \
+.       ds $BIB-EN-TOC EN_STRING
+.    if '\\*[$STYLE_TYPE]'ENDNOTE_STRING' \
+.       ds $BIB-EN-TOC EN_STRING
+.    if '\\*[$STYLE_TYPE]'BIBLIOGRAPHY_HEADER' \
+.       ds $BIB-EN-TOC BIB_STRING
+.    if '\\*[$STYLE_TYPE]'TOC_HEADER' \
+.       ds $BIB-EN-TOC TOC_STRING
+.    nr #LOOP 0 1
+.    nr #STYLE_PARAMS \\n[#NUM_ARGS]
+.    while \\n+[#LOOP]<=\\n[#STYLE_PARAMS] \{\ 
+.       if '\\$1'FAMILY' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_FAMILY \\$1
+.          shift
+.       \}
+.       if '\\$1'FONT' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_FONT \\$1
+.          shift
+.       \}
+.       if '\\$1'SIZE' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_SIZE \\$1
+.          shift
+.       \}
+.       if '\\$1'COLOR' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_COLOR \\$1
+.          shift
+.       \}
+.       if '\\$1'CAPS' \{\
+.          if \\n[#\\*[$STYLE_TYPE]_SMALLCAPS] \{\
+.             tm1 \
+"[mom]: '\\*[$STYLE_TYPE]_STYLE' contains CAPS and SMALLCAPS. \
+CAPS takes precedence.
+.             rr #\\*[$STYLE_TYPE]_SMALLCAPS
+.          \}
+.          \\*[$STYLE_TYPE]_CAPS
+.          shift
+.       \}
+.       if '\\$1'NO_CAPS' \{\
+.          rr #\\*[$STYLE_TYPE]_CAPS
+.          if !'\\*[$BIB-EN-TOC]'' \
+.             rr #\\*[$BIB-EN-TOC]_CAPS
+.          shift
+.       \}
+.       if '\\$1'SMALLCAPS' \{\
+.          if \\n[#\\*[$STYLE_TYPE]_CAPS] \{\
+.             tm1 \
+"[mom]: '\\*[$STYLE_TYPE]_STYLE' contains CAPS and SMALLCAPS. \
+SMALLCAPS takes precedence.
+.             rr #\\*[$STYLE_TYPE]_CAPS
+.          \}
+.          \\*[$STYLE_TYPE]_SMALLCAPS
+.          shift
+.       \}
+.       if '\\$1'NO_SMALLCAPS' \{\
+.          rr #\\*[$STYLE_TYPE]_SMALLCAPS
+.          if !'\\*[$BIB-EN-TOC]'' \
+.             rr #\\*[$BIB-EN-TOC]_SMALLCAPS
+.          shift
+.       \}
+.       if '\\$1'LEAD' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_LEAD \\$1
+.          shift
+.       \}
+.       if '\\$1'AUTOLEAD' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_AUTOLEAD \\$1
+.          shift
+.       \}
+.       if '\\$1'SPACE' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_SPACE \\$1
+.          shift
+.       \}
+.       if '\\$1'QUAD' \{\
+.          shift
+.          ie '\\*[$STYLE_TYPE]'QUOTE' \{\
+.              if '\\$1'L'      .QUOTE_LEFT
+.              if '\\$1'LEFT'   .QUOTE_LEFT
+.              if '\\$1'C'      .QUOTE_CENTER
+.              if '\\$1'CENTER' .QUOTE_CENTER
+.              if '\\$1'CENTRE' .QUOTE_CENTER
+.              if '\\$1'R'      .QUOTE_RIGHT
+.              if '\\$1'RIGHT'  .QUOTE_RIGHT
+.          \}
+.          el .\\*[$STYLE_TYPE]_QUAD \\$1
+.          shift
+.       \}
+.       if '\\$1'INDENT' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_INDENT \\$1
+.          shift
+.       \}
+.\" UNDERLINE and UNDERSCORE are identical but we can't use : or &
+.\" in string comparisons.
+.       if '\\$1'UNDERLINE' \{\
+.          shift
+.          if '\\$1'DOUBLE' \{\
+.             as ul-args \\$1 \"
+.             shift
+.          \}
+.          nr #COUNT 0 1
+.          while \\n+[#COUNT]<=3 \{\
+.             if \B'\\$1' \{\
+.                as ul-args \\$1 \"
+.                shift
+.             \}
+.          \}
+.          \\*[$STYLE_TYPE]_UNDERSCORE \\*[ul-args]
+.       \}
+.       if '\\$1'UNDERSCORE' \{\
+.          shift
+.          if '\\$1'DOUBLE' \{\
+.             as ul-args \\$1 \"
+.             shift
+.          \}
+.          nr #COUNT 0 1
+.          while \\n+[#COUNT]<=3 \{\
+.             if \B'\\$1' \{\
+.                as ul-args \\$1 \"
+.                shift
+.             \}
+.          \}
+.          \\*[$STYLE_TYPE]_UNDERSCORE \\*[ul-args]
+.       \}
+.       if '\\$1'NO_UNDERSCORE' \{\
+.          rr #\\*[$STYLE_TYPE]_UNDERLINE
+.          if !'\\*[$BIB-EN-TOC]'' \
+.             rr #\\*[$BIB-EN-TOC]_UNDERLINE
+.          shift
+.       \}
+.       if '\\$1'NO_UNDERLINE' \{\
+.          rr #\\*[$STYLE_TYPE]_UNDERLINE
+.          if !'\\*[$BIB-EN-TOC]'' \
+.             rr #\\*[$BIB-EN-TOC]_UNDERLINE
+.          shift
+.       \}
+.    \}
+.    br
+.    rm $STYLE_TYPE
+.    rm $BIB-EN-TOC
+.    rm ul-args
+.END
+.
+.ds STYLE_TYPE_1  ATTRIBUTE
+.ds STYLE_TYPE_2  AUTHOR
+.ds STYLE_TYPE_3  BIBLIOGRAPHY_HEADER
+.ds STYLE_TYPE_4  BIBLIOGRAPHY_STRING
+.ds STYLE_TYPE_5  BLOCKQUOTE
+.ds STYLE_TYPE_6  CHAPTER
+.ds STYLE_TYPE_7  CHAPTER_TITLE
+.ds STYLE_TYPE_8  CODE
+.ds STYLE_TYPE_9  COPYRIGHT
+.ds STYLE_TYPE_10 COVER
+.ds STYLE_TYPE_11 COVERTITLE
+.ds STYLE_TYPE_12 DOC_COVERTITLE
+.ds STYLE_TYPE_13 DOCHEADER
+.ds STYLE_TYPE_14 DOCTITLE
+.ds STYLE_TYPE_15 DOCTYPE
+.ds STYLE_TYPE_16 ENDNOTE_TITLE
+.ds STYLE_TYPE_17 ENDNOTES_HEADER
+.ds STYLE_TYPE_18 ENDNOTE_STRING
+.ds STYLE_TYPE_19 EPIGRAPH
+.ds STYLE_TYPE_20 FINIS
+.ds STYLE_TYPE_21 LEAD
+.ds STYLE_TYPE_22 LINENUMBER
+.ds STYLE_TYPE_23 MISC
+.ds STYLE_TYPE_24 QUOTE
+.ds STYLE_TYPE_25 SUBTITLE
+.ds STYLE_TYPE_26 TITLE
+.ds STYLE_TYPE_27 TOC_HEADER
+.
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=27 \{\
+. ALIAS \*[STYLE_TYPE_\n[#LOOP]]_STYLE           _STYLE
+. ALIAS COVER_\*[STYLE_TYPE_\n[#LOOP]]_STYLE     _STYLE
+. ALIAS DOC_COVER_\*[STYLE_TYPE_\n[#LOOP]]_STYLE _STYLE
+.\}
+\#
+\# UNDERLINE CONTROL
+\# -----------------
+\# *Arguments:
+\#   [ DOUBLE ] [ <underline weight> [<underline gap>] ] | <none> | <anything>
+\# *Function:
+\#   Toggles underlining of the element indicated by the calling alias
+\#   on or off.  Uses #<element>_UNDERLINE_WEIGHT to set the weight,
+\#   and defines string $<element>_UNDERLINE_GAP.
+\#
+.MAC _UNDERLINE END
+.    ds $GET_TITLE_TYPE \\$0
+.    substring $GET_TITLE_TYPE -2
+.    ie '\\*[$GET_TITLE_TYPE]'NE' \{\
+.\" Called as _UNDERLINE
+.        ds $GET_TITLE_TYPE \\$0
+.        substring $GET_TITLE_TYPE 0 -10
+.        ds $TITLE_TYPE \\*[$GET_TITLE_TYPE]
+.    \}
+.    el \{\
+.\" Called as _UNDERSCORE
+.        ds $GET_TITLE_TYPE \\$0
+.        substring $GET_TITLE_TYPE 0 -11
+.        ds $TITLE_TYPE \\*[$GET_TITLE_TYPE]
+.    \}
+.    ds $GET_TITLE_TYPE \\$0
+.    substring $GET_TITLE_TYPE 0 2
+.    if '\\*[$GET_TITLE_TYPE]'BIB' .ds $TITLE_TYPE BIB_STRING_
+.    if '\\*[$GET_TITLE_TYPE]'SUB' .ds $TITLE_TYPE SUBTITLE_
+.    ds $GET_TITLE_TYPE \\$0
+.    substring $GET_TITLE_TYPE 0 7
+.    if '\\*[$GET_TITLE_TYPE]'ENDNOTES' .ds $TITLE_TYPE EN_STRING_
+.    ds $GET_TITLE_TYPE \\$0
+.    substring $GET_TITLE_TYPE 0 10
+.    if '\\*[$GET_TITLE_TYPE]'ENDNOTE_STR' .ds $TITLE_TYPE EN_STRING_
+.    if '\\*[$GET_TITLE_TYPE]'ENDNOTE_TIT' .ds $TITLE_TYPE EN_TITLE_
+.    ie '\\$1'' .nr #\\*[$TITLE_TYPE]UNDERLINE 1
+.    el \{\
+.       ie \\n[#NUM_ARGS]=1 \{\
+.          ie \B'\\$1' \{\
+.             if !\\n[#PRINT_STYLE]=1 \{\
+.                \\*[$TITLE_TYPE]UNDERLINE_WEIGHT \\$1
+.                nr #\\*[$TITLE_TYPE]UNDERLINE 1
+.             \}
+.          \}
+.          el \{\
+.             ie '\\$1'DOUBLE' .nr #\\*[$TITLE_TYPE]UNDERLINE 2
+.             el .nr #\\*[$TITLE_TYPE]UNDERLINE 0
+.          \}
+.       \}
+.       el \{\
+.          if !\\n[#PRINT_STYLE]=1 \{\
+.               nr #\\*[$TITLE_TYPE]UNDERLINE 1
+.               if '\\$1'DOUBLE' \{\
+.                  nr #\\*[$TITLE_TYPE]UNDERLINE 2
+.                  shift
+.               \}
+.               \\*[$TITLE_TYPE]UNDERLINE_WEIGHT \\$1
+.               if !'\\$2'' \
+.                  ds $\\*[$TITLE_TYPE]UNDERLINE_GAP \\$2
+.               if !'\\$3'' \
+.                  ds $\\*[$TITLE_TYPE]RULE_GAP \\$3
+.          \}
+.       \}
+.    \}
+.    rm $TITLE_TYPE
+.END
+.
+.ALIAS ENDNOTE_STRING_UNDERLINE _UNDERLINE
+.ALIAS ENDNOTE_STRING_UNDERSCORE _UNDERLINE
+\#
+\# DEFAULTS
+\# --------
+\# *Arguments:
+\#   <none>
+\# *Function:
+\#   Sets up defaults if no values are entered prior to START.
+\# *Notes:
+\#   The defaults for $CHAPTER_STRING, $DRAFT_STRING, and
+\#   $REVISION_STRING are in the COPYSTYLE macro.
+\#
+.MAC DEFAULTS END
+.    if !d $PAPER .PAPER LETTER
+.    if !\\n[#DOC_TYPE] .DOCTYPE DEFAULT
+.    ie \\n[#PAGENUM_STYLE_SET] .PAGENUM_STYLE \\*[$PAGENUM_STYLE]
+.    el \
+.       if !\\n[#COPY_STYLE]=1 .PAGENUM_STYLE DIGIT
+.    if !\\n[#COPY_STYLE] .COPYSTYLE FINAL
+.    if \\n[#DRAFT_WITH_PAGENUM] .COPYSTYLE \\*[$COPY_STYLE]
 .    if \\n[#DOC_TYPE]=4 \{\
 .       if !\\n[#USER_SET_L_LENGTH] \{\
 .          R_MARGIN \\n[#R_MARGIN]u
@@ -5536,10 +5549,11 @@ y\R'#DESCENDER \\n[.cdp]'
 .    nr #DOC_L_MARGIN \\n[#L_MARGIN]
 .    nr #DOC_L_LENGTH \\n[#L_LENGTH]
 .    nr #DOC_R_MARGIN \\n[#PAGE_WIDTH]-(\\n[#DOC_L_MARGIN]+\\n[#L_LENGTH])
-.    if '\\*[$SAVED_DOC_FAM]'' \{\
-.       ds $DOC_FAM \\*[$FAMILY]
+.    ie !'\\*[$SAVED_DOC_FAM]'' \{\
+.       ds $DOC_FAM \\*[$SAVED_DOC_FAM]
 .       rm $SAVED_DOC_FAM
 .    \}
+.    el .ds $DOC_FAM \\*[$FAMILY]
 .    nr #DOC_PT_SIZE  \\n[#PT_SIZE]
 .\"
 .    if \\n[#TOC]          .nr #DOC_PT_SIZE \\n[#TOC_PS]
@@ -5561,10 +5575,14 @@ y\R'#DESCENDER \\n[.cdp]'
 .    ie \\n[#ADJ_DOC_LEAD]=1 .
 .    el \
 .       if !\\n[#DOC_LEAD_ADJUST_OFF] .DOC_LEAD_ADJUST
-.    ds $DOC_QUAD \\*[$QUAD_VALUE]
+.    ie d$RESTORE_DOC_QUAD \{\
+.       ds $DOC_QUAD \\*[$RESTORE_DOC_QUAD]
+.       rm $RESTORE_DOC_QUAD
+.    \}
+.    el .ds $DOC_QUAD \\*[$QUAD_VALUE]
 .    if '\\*[$FONT]''   .FT R
 .    if '\\*[$PP_FT]''  .ds $PP_FT \\*[$FONT]
-.    if !'\\*[$PP_FT]'' .ds $PP_FT \\*[$FONT]
+.    FT \\*[$PP_FT]
 .\" Counters
 .    nr #PP                0
 .    nr #FN_NUMBER         0 1
@@ -5576,40 +5594,38 @@ y\R'#DESCENDER \\n[.cdp]'
 .\" General style defaults for both PRINTSTYLEs
 .    nr #PP_STYLE 1
 .    PARA_INDENT \\n[#PP_INDENT]u
-.    if !d $HDRFTR_FAM               .HDRFTR_FAMILY \\*[$DOC_FAM]
-.    if !d $HDRFTR_SIZE_CHANGE       .HDRFTR_SIZE +0
-.    if !d $PAGE_NUM_FAM             .PAGENUM_FAMILY \\*[$DOC_FAM]
-.    if !d $PAGE_NUM_FT              .PAGENUM_FONT R
-.    if !d $PAGE_NUM_SIZE_CHANGE     .PAGENUM_SIZE +0
-.    if !r #PAGE_NUM_POS_SET         .PAGENUM_POS BOTTOM CENTER
+.    if !d $HDRFTR_FAM           .ds $HDRFTR_FAM \\*[$DOC_FAM]
+.    if !d $HDRFTR_SIZE_CHANGE   .HDRFTR_SIZE +0
+.    if !d $PAGE_NUM_FAM         .PAGENUM_FAMILY \\*[$DOC_FAM]
+.    if !d $PAGE_NUM_FT          .PAGENUM_FONT R
+.    if !d $PAGE_NUM_SIZE_CHANGE .PAGENUM_SIZE +0
+.    if !r #PAGE_NUM_POS_SET     .PAGENUM_POS BOTTOM CENTER
 .    ie \\n[#PAGE_NUM_HYPHENS_SET] \{\
-.       if \\n[#PAGE_NUM_HYPHENS]=0  .PAGENUM_HYPHENS OFF
-.       if \\n[#PAGE_NUM_HYPHENS]=1  .PAGENUM_HYPHENS
+.       if \\n[#PAGE_NUM_HYPHENS]=0 .PAGENUM_HYPHENS OFF
+.       if \\n[#PAGE_NUM_HYPHENS]=1 .PAGENUM_HYPHENS
 .    \}
 .    el .PAGENUM_HYPHENS
-.    if !r #HDRFTR_RIGHT_CAPS .HDRFTR_RIGHT_CAPS
+.    if !r #HDRFTR_RIGHT_CAPS .nr #HDRFTR_RIGHT_CAPS 1
 .    if \\n[#HDRFTR_RIGHT_CAPS]=0 \
 .       if !d $HDRFTR_RIGHT_SIZE_CHANGE .HDRFTR_RIGHT_SIZE +0
-.    if !d $FN_FAM        .FOOTNOTE_FAMILY \\*[$DOC_FAM]
-.    if !d $FN_FT         .FOOTNOTE_FONT R
-.    if !d $FN_QUAD       .FOOTNOTE_QUAD \\*[$DOC_QUAD]
-.    if !r #FN_RULE       .FOOTNOTE_RULE
-.    if !r #FN_MARKERS    .FOOTNOTE_MARKERS
+.    if !d $FN_FAM     .FOOTNOTE_FAMILY \\*[$DOC_FAM]
+.    if !d $FN_FT      .FOOTNOTE_FONT R
+.    if !d $FN_QUAD    .FOOTNOTE_QUAD \\*[$DOC_QUAD]
+.    if !r #FN_RULE    .FOOTNOTE_RULE
+.    if !r #FN_MARKERS .FOOTNOTE_MARKERS
 .    if \\n[#FN_MARKERS]=1 \{\
 .       if \\n[#FN_REF]=1 \
 .          if !\\n[#FN_MARKER_STYLE] .FOOTNOTE_MARKER_STYLE NUMBER
 .       if !\\n[#FN_MARKER_STYLE] .FOOTNOTE_MARKER_STYLE STAR
 .    \}
-.    if !r #EN_MARKER_STYLE     .ENDNOTE_MARKER_STYLE SUPERSCRIPT
-.    if !d $EN_PN_STYLE         .ENDNOTES_PAGENUM_STYLE digit
-.    if !d $EN_FAM              .ENDNOTE_FAMILY \\*[$DOC_FAM]
-.    if !d $EN_FT               .ENDNOTE_FONT R
-.    if !d $EN_QUAD             .ENDNOTE_QUAD \\*[$DOC_QUAD]
-.    if !d $EN_STRING           .ENDNOTES_HEADER_STRING "Endnotes"
-.    if !d $EN_STRING_FAM       .ENDNOTES_HEADER_FAMILY \\*[$EN_FAM]
-.    if !d $EN_STRING_QUAD      .ENDNOTES_HEADER_QUAD CENTER
-.    if !r #EN_STRING_UNDERLINE .nr #EN_STRING_UNDERLINE 2
-.    if !r #EN_STRING_CAPS      .ENDNOTES_HEADER_CAPS
+.    if !r #EN_MARKER_STYLE .ENDNOTE_MARKER_STYLE SUPERSCRIPT
+.    if !d $EN_PN_STYLE     .ENDNOTES_PAGENUM_STYLE digit
+.    if !d $EN_FAM          .ENDNOTE_FAMILY \\*[$DOC_FAM]
+.    if !d $EN_FT           .ENDNOTE_FONT R
+.    if !d $EN_QUAD         .ENDNOTE_QUAD \\*[$DOC_QUAD]
+.    if !d $EN_STRING       .ENDNOTES_HEADER_STRING "Endnotes"
+.    if !d $EN_STRING_FAM   .ENDNOTES_HEADER_FAMILY \\*[$EN_FAM]
+.    if !d $EN_STRING_QUAD  .ENDNOTES_HEADER_QUAD CENTER
 .    if !d $EN_TITLE \{\
 .       ie \\n[#DOC_TYPE]=2 \{\
 .          ie !'\\*[$CHAPTER_TITLE_1]'' \{\
@@ -5624,32 +5640,29 @@ y\R'#DESCENDER \\n[.cdp]'
 .          \}
 .       el .ENDNOTE_TITLE "\\*[$TITLE]"
 .    \}
-.    if !d $EN_TITLE_FAM          .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM]
-.    if !d $EN_TITLE_QUAD         .ENDNOTE_TITLE_QUAD LEFT
-.    if !r #EN_TITLE_UNDERLINE    .nr #EN_TITLE_UNDERLINE 1
-.    if !d $EN_NUMBER_FAM         .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM]
-.    if !d $EN_LN_FAM             .ENDNOTE_LINENUMBER_FAMILY \\*[$EN_FAM]
+.    if !d $EN_TITLE_FAM  .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM]
+.    if !d $EN_TITLE_QUAD .ENDNOTE_TITLE_QUAD LEFT
+.    if !d $EN_NUMBER_FAM .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM]
+.    if !d $EN_LN_FAM     .ENDNOTE_LINENUMBER_FAMILY \\*[$EN_FAM]
 .    if !r #EN_NUMBERS_ALIGN_LEFT \{\
 .       if !r #EN_NUMBERS_ALIGN_RIGHT \{\
 .          ie !\\n[#EN_MARKER_STYLE]=2 .ENDNOTE_NUMBERS_ALIGN RIGHT 2
 .          el .ENDNOTE_NUMBERS_ALIGN RIGHT 4
 .       \}
 .    \}
-.    if !r #EN_LN_GAP            .ENDNOTE_LINENUMBER_GAP 1m
-.    if !r #EN_ALLOWS_HEADERS    .ENDNOTES_ALLOWS_HEADERS
-.    if !d $BIB_PN_STYLE         .BIBLIOGRAPHY_PAGENUM_STYLE digit
-.    if !d $BIB_FAM              .BIBLIOGRAPHY_FAMILY \\*[$DOC_FAM]
-.    if !d $BIB_FT               .BIBLIOGRAPHY_FONT R
-.    if !d $BIB_QUAD             .BIBLIOGRAPHY_QUAD \\*[$DOC_QUAD]
-.    if !d $BIB_STRING           .BIBLIOGRAPHY_STRING "Bibliography"
-.    if !d $BIB_STRING_FAM       .BIBLIOGRAPHY_STRING_FAMILY \\*[$BIB_FAM]
-.    if !d $BIB_STRING_QUAD      .BIBLIOGRAPHY_STRING_QUAD CENTER
-.    if !r #BIB_STRING_UNDERLINE .nr #BIB_STRING_UNDERLINE 2
-.    if !r #BIB_STRING_CAPS      .BIBLIOGRAPHY_STRING_CAPS
-.    if !d $TOC_HEADER_STRING    .TOC_HEADER_STRING "Contents"
-.    if !d $TOC_HEADER_QUAD      .TOC_HEADER_QUAD LEFT
-.    if !d $TOC_PN_STYLE         .TOC_PAGENUM_STYLE roman
-.    if !r #TOC_PN_PADDING       .TOC_PADDING 3
+.    if !r #EN_LN_GAP         .ENDNOTE_LINENUMBER_GAP 1m
+.    if !r #EN_ALLOWS_HEADERS .ENDNOTES_ALLOWS_HEADERS
+.    if !d $BIB_PN_STYLE      .BIBLIOGRAPHY_PAGENUM_STYLE digit
+.    if !d $BIB_FAM           .BIBLIOGRAPHY_FAMILY \\*[$DOC_FAM]
+.    if !d $BIB_FT            .BIBLIOGRAPHY_FONT R
+.    if !d $BIB_QUAD          .BIBLIOGRAPHY_QUAD \\*[$DOC_QUAD]
+.    if !d $BIB_STRING        .BIBLIOGRAPHY_STRING "Bibliography"
+.    if !d $BIB_STRING_FAM    .BIBLIOGRAPHY_STRING_FAMILY \\*[$BIB_FAM]
+.    if !d $BIB_STRING_QUAD   .BIBLIOGRAPHY_STRING_QUAD CENTER
+.    if !d $TOC_HEADER_STRING .TOC_HEADER_STRING "Contents"
+.    if !d $TOC_HEADER_QUAD   .TOC_HEADER_QUAD LEFT
+.    if !d $TOC_PN_STYLE      .TOC_PAGENUM_STYLE roman
+.    if !r #TOC_PN_PADDING    .TOC_PADDING 3
 .\" Line numbering
 .    if !r #LN_GUTTER      .nr #LN_GUTTER 2
 .    if !r #Q_LN_GUTTER    .nr #Q_LN_GUTTER 2
@@ -5682,7 +5695,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .   \}
 .\" String defaults for both PRINTSTYLEs
 .    ie \\n[#DOC_TYPE]=1 \{\
-.       ie '\\*[$DOC_TITLE]'' \{\
+.       ie '\\*[$DOCTITLE]'' \{\
 .          if \\n[#USER_DEF_HDRFTR_LEFT]=0  .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
 .          if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE]
 .       \}
@@ -5690,25 +5703,24 @@ y\R'#DESCENDER \\n[.cdp]'
 .          if \\n[#COPY_STYLE]=1             .DRAFT_WITH_PAGENUMBER
 .          if \\n[#USER_DEF_HDRFTR_LEFT]=0   .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
 .          if \\n[#USER_DEF_HDRFTR_CENTER]=0 .ds $HDRFTR_CENTER \\*[$TITLE]
-.          if \\n[#USER_DEF_HDRFTR_RIGHT]=0  .ds $HDRFTR_RIGHT \\*[$DOC_TITLE]
+.          if \\n[#USER_DEF_HDRFTR_RIGHT]=0  .ds $HDRFTR_RIGHT \\*[$DOCTITLE]
 .       \}
 .    \}
 .    el \{\
 .       if \\n[#USER_DEF_HDRFTR_LEFT]=0  .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
 .       if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE]
 .    \}
-.    if !d $ATTRIBUTE_STRING     .ds $ATTRIBUTE_STRING by
-.    if !d $FINIS_STRING         .FINIS_STRING "End"
-.    if !r #FINIS_STRING_CAPS    .nr #FINIS_STRING_CAPS 1
+.    if !d $ATTRIBUTE_STRING  .ds $ATTRIBUTE_STRING by
+.    if !d $FINIS_STRING      .FINIS_STRING "End"
+.    if !r #FINIS_STRING_CAPS .nr #FINIS_STRING_CAPS 1
 .\" Covers
 .    if !r #DOC_COVERS_OFF           .nr #DOC_COVERS 1
 .    if !r #COVERS_OFF               .nr #COVERS 1
 .    if !d $COVER_COPYRIGHT_QUAD     .COVER_COPYRIGHT_QUAD R
 .    if !d $COVER_MISC_QUAD          .COVER_MISC_QUAD L
+.    if !d $MISC_QUAD                .MISC_QUAD L
 .    if !d $DOC_COVER_COPYRIGHT_QUAD .DOC_COVER_COPYRIGHT_QUAD R
 .    if !d $DOC_COVER_MISC_QUAD      .DOC_COVER_MISC_QUAD L
-.    if !r #DOC_COVER_UNDERLINE      .DOC_COVER_UNDERLINE
-.    if !r #COVER_UNDERLINE          .COVER_UNDERLINE
 .\" Defaults for printstyle TYPEWRITE
 .    if \\n[#PRINT_STYLE]=1 \{\
 .       TYPEWRITER
@@ -5718,26 +5730,36 @@ y\R'#DESCENDER \\n[.cdp]'
 .\" +Doctype underlining (if NAMED)
 .       if !r #DOCTYPE_UNDERLINE .nr #DOCTYPE_UNDERLINE 1
 .\" +Quotes and blockquotes
-.       if !r #Q_OFFSET_VALUE \{\
-.          if '\\*[$Q_OFFSET_VALUE]'' .QUOTE_INDENT 1
-.       \}
+.       if !r #Q_OFFSET_VALUE \
+.          if '\\*[$Q_OFFSET_VALUE]'' \
+.             QUOTE_INDENT \\n[#PP_INDENT]u+(\\n[#PP_INDENT]u/2u)
+.       if !d $Q_QUAD .QUOTE_LEFT
+.       if !d $BQUOTE_QUAD        .BLOCKQUOTE_QUAD LEFT
+.       if !r #BQ_OFFSET_VALUE \
+.          if '\\*[$BQ_OFFSET_VALUE]'' \
+.             BLOCKQUOTE_INDENT \\n[#PP_INDENT]u+(\\n[#PP_INDENT]u/2u)
 .\" +Epigraphs
 .       if !r #EPI_OFFSET_VALUE \
 .          if '\\*[$EPI_OFFSET_VALUE]'' .EPIGRAPH_INDENT 2
 .\" +Linebreaks
 .       if !d $LINEBREAK_CHAR .LINEBREAK_CHAR * 3 2p
 .\" +Footnotes
-.       if !d $FN_SIZE_CHANGE    .FOOTNOTE_SIZE +0
-.       if !r #FN_RULE_LENGTH    .FOOTNOTE_RULE_LENGTH 2i
+.       if !d $FN_SIZE_CHANGE .FOOTNOTE_SIZE +0
+.       if !r #FN_RULE_LENGTH .FOOTNOTE_RULE_LENGTH 2i
 .\" +Endnotes
 .       if !r #EN_PP_INDENT .ENDNOTE_PARA_INDENT \\n[#PP_INDENT]
+.       if !r #EN_STRING_UNDERLINE .nr #EN_STRING_UNDERLINE 2
+.       if !r #EN_STRING_CAPS .ENDNOTES_HEADER_CAPS
 .\" +Footnotes
-.       if !r #FN_RULE_ADJ  .FOOTNOTE_RULE_ADJ 6p
+.       if !r #FN_RULE_ADJ .FOOTNOTE_RULE_ADJ 6p
 .\" +Slant stuff
 .       if !r #SLANT_MEANS_SLANT \{\
 .          ie \\n[#UNDERLINE_SLANT]=1 .UNDERLINE_SLANT
 .          el .UNDERLINE_SLANT OFF
 .       \}
+.\" +Bibliography
+.       if !r #BIB_STRING_UNDERLINE .nr #BIB_STRING_UNDERLINE 2
+.       if !r #BIB_STRING_CAPS .BIBLIOGRAPHY_STRING_CAPS
 .    \}
 .\" Defaults for printstyle TYPESET
 .    if \\n[#PRINT_STYLE]=2 \{\
@@ -5752,6 +5774,34 @@ y\R'#DESCENDER \\n[.cdp]'
 .       \}
 .       if !d $COVER_TITLE_FT .COVER_TITLE_FONT B
 .       if !d $COVER_TITLE_SIZE_CHANGE .COVER_TITLE_SIZE +3.5
+.\" (doctitle)
+.       if !d $COVER_DOCTITLE_FAM \{\
+.          ie !d $DOC_COVER_FAM .COVER_DOCTITLE_FAMILY \\*[$DOC_FAM]
+.          el .COVER_DOCTITLE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $COVER_DOCTITLE_FT          .COVER_DOCTITLE_FONT B
+.       if !d $COVER_DOCTITLE_SIZE_CHANGE .COVER_DOCTITLE_SIZE +3.5
+.\" (covertitle)
+.       if !d $COVER_COVERTITLE_FAM \{\
+.          ie !d $COVER_FAM .COVER_COVERTITLE_FAMILY \\*[$DOC_FAM]
+.          el .COVER_COVERTITLE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $COVER_COVERTITLE_FT .COVER_COVERTITLE_FONT B
+.       if !d $COVER_COVERTITLE_SIZE_CHANGE .COVER_COVERTITLE_SIZE +3.5
+.\" (doc_covertitle)
+.       if !d $COVER_DOC_COVERTITLE_FAM \{\
+.          ie !d $COVER_FAM .COVER_DOC_COVERTITLE_FAMILY \\*[$DOC_FAM]
+.          el .COVER_DOC_COVERTITLE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $COVER_DOC_COVERTITLE_FT .COVER_DOC_COVERTITLE_FONT B
+.       if !d $COVER_DOC_COVERTITLE_SIZE_CHANGE .COVER_DOC_COVERTITLE_SIZE +3.5
+.\" (chapter)
+.       if !d $COVER_CHAPTER_FAM \{\
+.          ie !d $COVER_FAM .COVER_CHAPTER_FAMILY \\*[$DOC_FAM]
+.          el .COVER_CHAPTER_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $COVER_CHAPTER_FT .COVER_CHAPTER_FONT B
+.       if !d $COVER_CHAPTER_SIZE_CHANGE .COVER_CHAPTER_SIZE +3.5
 .\" (chapter title)
 .       if !d $COVER_CHAPTER_TITLE_FAM \{\
 .          ie !d $COVER_FAM .COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_FAM]
@@ -5767,6 +5817,12 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $COVER_SUBTITLE_FT .COVER_SUBTITLE_FONT R
 .       if !d $COVER_SUBTITLE_SIZE_CHANGE .COVER_SUBTITLE_SIZE +0
 .\" (attribution and author[s])
+.       if !d $COVER_ATTRIBUTE_FAM \{\
+.          ie !d $COVER_FAM .COVER_ATTRIBUTE_FAMILY \\*[$DOC_FAM]
+.          el .COVER_ATTRIBUTE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $COVER_ATTRIBUTE_FT .COVER_ATTRIBUTE_FONT I
+.       if !d $COVER_ATTRIBUTE_SIZE_CHANGE .COVER_ATTRIBUTE_SIZE +0
 .       if !d $COVER_AUTHOR_FAM \{\
 .          ie !d $COVER_FAM .COVER_AUTHOR_FAMILY \\*[$DOC_FAM]
 .          el .COVER_AUTHOR_FAMILY \\*[$COVER_FAM]
@@ -5791,7 +5847,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $COVER_MISC_FAM         .COVER_MISC_FAMILY \\*[$DOC_FAM]
 .       if !d $COVER_MISC_FT          .COVER_MISC_FONT R
 .       if !d $COVER_MISC_SIZE_CHANGE .COVER_MISC_SIZE -2
-.       if !r #COVER_MISC_AUTOLEAD    .COVER_MISC_AUTOLEAD 2
+.       if !r #COVER_MISC_LEAD        .COVER_MISC_LEAD 14.5
 .\" +Doc cover
 .       if !d $DOC_COVER_LEAD_ADJ .DOC_COVER_LEAD +0
 .       if !d $DOC_COVER_FAM      .DOC_COVER_FAMILY \\*[$DOC_FAM]
@@ -5802,6 +5858,34 @@ y\R'#DESCENDER \\n[.cdp]'
 .       \}
 .       if !d $DOC_COVER_TITLE_FT          .DOC_COVER_TITLE_FONT B
 .       if !d $DOC_COVER_TITLE_SIZE_CHANGE .DOC_COVER_TITLE_SIZE +3.5
+.\" (doctitle)
+.       if !d $DOC_COVER_DOCTITLE_FAM \{\
+.          ie !d $DOC_COVER_FAM .DOC_COVER_DOCTITLE_FAMILY \\*[$DOC_FAM]
+.          el .DOC_COVER_DOCTITLE_FAMILY \\*[$DOC_COVER_FAM]
+.       \}
+.       if !d $DOC_COVER_DOCTITLE_FT          .DOC_COVER_DOCTITLE_FONT B
+.       if !d $DOC_COVER_DOCTITLE_SIZE_CHANGE .DOC_COVER_DOCTITLE_SIZE +3.5
+.\" (covertitle)
+.       if !d $DOC_COVER_COVERTITLE_FAM \{\
+.          ie !d $COVER_FAM .DOC_COVER_COVERTITLE_FAMILY \\*[$DOC_FAM]
+.          el .DOC_COVER_COVERTITLE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $DOC_COVER_COVERTITLE_FT .DOC_COVER_COVERTITLE_FONT B
+.       if !d $DOC_COVER_COVERTITLE_SIZE_CHANGE .DOC_COVER_COVERTITLE_SIZE +3.5
+.\" (doc_covertitle)
+.       if !d $DOC_COVER_DOC_COVERTITLE_FAM \{\
+.          ie !d $COVER_FAM .DOC_COVER_DOC_COVERTITLE_FAMILY \\*[$DOC_FAM]
+.          el .DOC_COVER_DOC_COVERTITLE_FAMILY \\*[$COVER_FAM]
+.       \}
+.       if !d $DOC_COVER_DOC_COVERTITLE_FT .DOC_COVER_DOC_COVERTITLE_FONT B
+.       if !d $DOC_COVER_DOC_COVERTITLE_SIZE_CHANGE 
.DOC_COVER_DOC_COVERTITLE_SIZE +3.5
+.\" (chapter)
+.       if !d $DOC_COVER_CHAPTER_FAM \{\
+.          ie !d $DOC_COVER_FAM .DOC_COVER_CHAPTER_FAMILY \\*[$DOC_FAM]
+.          el .DOC_COVER_CHAPTER_FAMILY \\*[$DOC_COVER_FAM]
+.       \}
+.       if !d $DOC_COVER_CHAPTER_FT          .DOC_COVER_CHAPTER_FONT B
+.       if !d $DOC_COVER_CHAPTER_SIZE_CHANGE .DOC_COVER_CHAPTER_SIZE +3.5
 .\" (chapter title)
 .       if !d $DOC_COVER_CHAPTER_TITLE_FAM \{\
 .          ie !d $DOC_COVER_FAM .DOC_COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_FAM]
@@ -5817,6 +5901,12 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $DOC_COVER_SUBTITLE_FT .DOC_COVER_SUBTITLE_FONT R
 .       if !d $DOC_COVER_SUBTITLE_SIZE_CHANGE .DOC_COVER_SUBTITLE_SIZE +0
 .\" (attribution and author[s])
+.       if !d $DOC_COVER_ATTRIBUTE_FAM \{\
+.          ie !d $DOC_COVER_FAM .DOC_COVER_ATTRIBUTE_FAMILY \\*[$DOC_FAM]
+.          el .DOC_COVER_ATTRIBUTE_FAMILY \\*[$DOC_COVER_FAM]
+.       \}
+.       if !d $DOC_COVER_ATTRIBUTE_FT .DOC_COVER_ATTRIBUTE_FONT I
+.       if !d $DOC_COVER_ATTRIBUTE_SIZE_CHANGE .DOC_COVER_ATTRIBUTE_SIZE +0
 .       if !d $DOC_COVER_AUTHOR_FAM \{\
 .          ie !d $DOC_COVER_FAM .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_FAM]
 .          el .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_COVER_FAM]
@@ -5841,7 +5931,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $DOC_COVER_MISC_FAM         .DOC_COVER_MISC_FAMILY \\*[$DOC_FAM]
 .       if !d $DOC_COVER_MISC_FT          .DOC_COVER_MISC_FONT R
 .       if !d $DOC_COVER_MISC_SIZE_CHANGE .DOC_COVER_MISC_SIZE -2
-.       if !r #DOC_COVER_MISC_AUTOLEAD    .DOC_COVER_MISC_AUTOLEAD 2
+.       if !r #DOC_COVER_MISC_LEAD        .DOC_COVER_MISC_LEAD 14.5
 .\" +Docheader
 .       if !d $DOCHEADER_FAM .DOCHEADER_FAMILY \\*[$DOC_FAM]
 .       if !d $TITLE_FAM \{\
@@ -5853,6 +5943,12 @@ y\R'#DESCENDER \\n[.cdp]'
 .          ie \\n[#DOC_TYPE]=2 .TITLE_SIZE +4
 .          el .TITLE_SIZE +3.5
 .       \}
+.       if !d $CHAPTER_FAM \{\
+.          ie !d $DOCHEADER_FAM .CHAPTER_FAMILY \\*[$DOC_FAM]
+.          el .CHAPTER_FAMILY \\*[$DOCHEADER_FAM]
+.       \}
+.       if !d $CHAPTER_FT .CHAPTER_FONT B
+.       if !d $CHAPTER_SIZE_CHANGE .CHAPTER_SIZE +4
 .       if !d $CHAPTER_TITLE_FAM \{\
 .          ie !d $DOCHEADER_FAM .CHAPTER_TITLE_FAMILY \\*[$DOC_FAM]
 .          el .CHAPTER_TITLE_FAMILY \\*[$DOCHEADER_FAM]
@@ -5865,6 +5961,12 @@ y\R'#DESCENDER \\n[.cdp]'
 .       \}
 .       if !d $SUBTITLE_FT          .SUBTITLE_FONT R
 .       if !d $SUBTITLE_SIZE_CHANGE .SUBTITLE_SIZE +0
+.       if !d $ATTRIBUTE_FAM \{\
+.          ie !d $DOCHEADER_FAM .ATTRIBUTE_FAMILY \\*[$DOC_FAM]
+.          el .ATTRIBUTE_FAMILY \\*[$DOCHEADER_FAM]
+.       \}
+.       if !d $ATTRIBUTE_FT          .ATTRIBUTE_FONT I
+.       if !d $ATTRIBUTE_SIZE_CHANGE .ATTRIBUTE_SIZE +0
 .       if !d $AUTHOR_FAM \{\
 .          ie !d $DOCHEADER_FAM .AUTHOR_FAMILY \\*[$DOC_FAM]
 .          el .AUTHOR_FAMILY \\*[$DOCHEADER_FAM]
@@ -5875,9 +5977,8 @@ y\R'#DESCENDER \\n[.cdp]'
 .          ie !d $DOCHEADER_FAM .DOCTYPE_FAMILY \\*[$DOC_FAM]
 .          el .DOCTYPE_FAMILY \\*[$DOCHEADER_FAM]
 .       \}
-.       if !d $DOCTYPE_FT           .DOCTYPE_FONT BI
-.       if !d $DOCTYPE_SIZE_CHANGE  .DOCTYPE_SIZE +3
-.       if !r #DOCTYPE_UNDERLINE    .DOCTYPE_UNDERLINE
+.       if !d $DOCTYPE_FT          .DOCTYPE_FONT BI
+.       if !d $DOCTYPE_SIZE_CHANGE .DOCTYPE_SIZE +3
 .\" +Headers and footers
 .       if !d $HDRFTR_LEFT_FAM              .HDRFTR_LEFT_FAMILY \\*[$DOC_FAM]
 .       if !d $HDRFTR_LEFT_FT               .HDRFTR_LEFT_FONT R
@@ -5891,8 +5992,14 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $HDRFTR_CENTER_SIZE_CHANGE    .HDRFTR_CENTER_SIZE -.5
 .       if !d $HDRFTR_RIGHT_FAM             .HDRFTR_RIGHT_FAMILY \\*[$DOC_FAM]
 .       if !d $HDRFTR_RIGHT_FT              .HDRFTR_RIGHT_FONT R
-.       if \\n[#HDRFTR_RIGHT_CAPS] \
-.          if !d $HDRFTR_RIGHT_SIZE_CHANGE  .HDRFTR_RIGHT_SIZE -2
+.       ie !\\n[#HDRFTR_RIGHT_SMALLCAPS] \{\
+.          if \\n[#HDRFTR_RIGHT_CAPS] \
+.             if !d $HDRFTR_RIGHT_SIZE_CHANGE .HDRFTR_RIGHT_SIZE -2
+.       \}
+.       el \{\
+.          nr #SKIP_CAPS_SMALLCAPS_WARNING 1
+.          if \\n[#HDRFTR_RIGHT_CAPS] .HDRFTR_RIGHT_CAPS OFF
+.       \}
 .       if !d $HDRFTR_RIGHT_SIZE_CHANGE     .HDRFTR_RIGHT_SIZE -.5
 .\" +Quotes
 .       if !d $QUOTE_FAM         .QUOTE_FAMILY \\*[$DOC_FAM]
@@ -5900,12 +6007,15 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !d $QUOTE_SIZE_CHANGE .QUOTE_SIZE+0
 .       if !r #Q_OFFSET_VALUE \
 .          if '\\*[$Q_OFFSET_VALUE]'' .QUOTE_INDENT 3
+.       if !d $Q_QUAD .QUOTE_LEFT
 .\" +Blockquotes
 .\"  Note: the leading for quotes and blockquotes is set after .DEFAULTS in 
START
 .       if !d $BQUOTE_FAM         .BLOCKQUOTE_FAMILY \\*[$DOC_FAM]
 .       if !d $BQUOTE_FT          .BLOCKQUOTE_FONT R
 .       if !d $BQUOTE_SIZE_CHANGE .BLOCKQUOTE_SIZE -1
 .       if !d $BQUOTE_QUAD        .BLOCKQUOTE_QUAD LEFT
+.       if !r #BQ_OFFSET_VALUE \
+.          if '\\*[$BQ_OFFSET_VALUE]'' .BLOCKQUOTE_INDENT 3
 .\" +Epigraphs
 .       if !d $EPI_FAM         .EPIGRAPH_FAMILY \\*[$DOC_FAM]
 .       if !d $EPI_FT          .EPIGRAPH_FONT R
@@ -5925,7 +6035,7 @@ y\R'#DESCENDER \\n[.cdp]'
 .\" +Endnotes
 .       if !r #EN_PS                 .ENDNOTE_PT_SIZE (\\n[#DOC_PT_SIZE]u)
 .       if !d $EN_STRING_FT          .ENDNOTES_HEADER_FONT B
-.       if !d $EN_STRING_SIZE_CHANGE .ENDNOTES_HEADER_SIZE +1
+.       if !d $EN_STRING_SIZE_CHANGE .ENDNOTES_HEADER_SIZE +3.5
 .       if !d $EN_TITLE_FT           .ENDNOTE_TITLE_FONT B
 .       if !d $EN_TITLE_SIZE_CHANGE  .ENDNOTE_TITLE_SIZE +0
 .       if !d $EN_NUMBER_FT          .ENDNOTE_NUMBER_FONT B
@@ -5938,17 +6048,18 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if !r #BIB_LIST               .BIBLIOGRAPHY_TYPE PLAIN
 .       if !r #BIB_PS                 .BIBLIOGRAPHY_PT_SIZE 
(\\n[#DOC_PT_SIZE]u)
 .       if !d $BIB_STRING_FT          .BIBLIOGRAPHY_STRING_FONT B
-.       if !d $BIB_STRING_SIZE_CHANGE .BIBLIOGRAPHY_STRING_SIZE +1
+.       if !d $BIB_STRING_SIZE_CHANGE .BIBLIOGRAPHY_STRING_SIZE +3.5
 .\" +Table of contents
 .       if !d $TOC_FAM                .TOC_FAMILY \\*[$DOC_FAM]
 .       if !r #TOC_PS                 .TOC_PT_SIZE (\\n[#DOC_PT_SIZE]u)
 .       if '\\*[$TOC_LEAD]''          .TOC_LEAD address@hidden ADJUST
 .       if !d $TOC_HEADER_FAM         .TOC_HEADER_FAMILY \\*[$TOC_FAM]
-.       if !d $TOC_HEADER_SIZE_CHANGE .TOC_HEADER_SIZE +4
+.       if !d $TOC_HEADER_SIZE_CHANGE .TOC_HEADER_SIZE +3.5
 .       if !d $TOC_HEADER_FT          .TOC_HEADER_FONT B
 .       if !d $TOC_PN_FAM             .TOC_PN_FAMILY \\*[$TOC_FAM]
 .       if !d $TOC_PN_FT              .TOC_PN_FONT R
 .       if !d $TOC_PN_SIZE_CHANGE     .TOC_PN_SIZE +0
+.       if !d $TOC_TITLE_FAM          .TOC_TITLE_FAMILY \\*[$TOC_FAM]
 .    \}
 .\" +Refer support
 .    if !r #EN_REF .nr #FN_REF 1
@@ -6051,9 +6162,9 @@ y\R'#DESCENDER \\n[.cdp]'
 .       if '\\*[$HEAD_\\n[#HD_LEVEL]_BASELINE_ADJ]'' \
 .           ds $HEAD_\\n[#HD_LEVEL]_BASELINE_ADJ \\n[.v]/10
 .       if '\\*[$TOC_HEAD_\\n[#HD_LEVEL]_FAM]'' \
-.           ds $TOC_HEAD_\\n[#HD_LEVEL]_FAM \\*[$DOC_FAM]
+.           ds $TOC_HEAD_\\n[#HD_LEVEL]_FAM \\*[$TOC_FAM]
 .    \}
-.    if '\\*[$TOC_TITLE_FAM]'' .ds $TOC_TITLE_FAM \\*[$DOC_FAM]
+.    if '\\*[$TOC_TITLE_FAM]'' .TOC_TITLE_FAMILY \\*[$DOC_FAM]
 .\" Re-run MNinit to capture strings and registers set in DEFAULTS.
 .    if !'\\*[$MN-arg1]'' \{\
 .       MNinit \
@@ -6070,76 +6181,10 @@ y\R'#DESCENDER \\n[.cdp]'
 .    \}
 .END
 \#
-\# ====================================================================
-\#
-\# +++START THE DOCUMENT+++
-\#
-\# THE START MACRO
-\# ---------------
-\# *Arguments:
-\#   <none>
-\# *Function:
-\#   Reads in default document style parameters and any parameters
-\#   the user has changed before issuing START.
-\#   Using the information gathered in the opening macros,
-\#   prints appropriate title (or chapter #), subtitle, author
-\#   and document type (if appropriate).
-\# *Notes:
-\#   The .PRINT \& (zero-width character) is required to get the
-\#   subsequent .sp request to work as advertised.
-\#
-\#   The overall document line length, family, and point-size
-\#   are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for
-\#   use in the HEADER and FOOTER macros.
+\# =================================================================
 \#
-\#  First, define some strings for point sizes
-\#
-\# Doc cover
-\#
-.ds $DOC_COVER_AUTHOR_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_AUTHOR_SIZE_CHANGE]
-.ds $DOC_COVER_CHAPTER_TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE]
-.ds $DOC_COVER_COPYRIGHT_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_COPYRIGHT_SIZE_CHANGE]
-.ds $DOC_COVER_DOCTYPE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_DOCTYPE_SIZE_CHANGE]
-.ds $DOC_COVER_MISC_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_MISC_SIZE_CHANGE]
-.ds $DOC_COVER_SUBTITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_SUBTITLE_SIZE_CHANGE]
-.ds $DOC_COVER_TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_TITLE_SIZE_CHANGE]
-\# Cover
-.ds $COVER_AUTHOR_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_AUTHOR_SIZE_CHANGE]
-.ds $COVER_CHAPTER_TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_CHAPTER_TITLE_SIZE_CHANGE]
-.ds $COVER_COPYRIGHT_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_COPYRIGHT_SIZE_CHANGE]
-.ds $COVER_DOCTYPE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_DOCTYPE_SIZE_CHANGE]
-.ds $COVER_MISC_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_MISC_SIZE_CHANGE]
-.ds $COVER_SUBTITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_SUBTITLE_SIZE_CHANGE]
-.ds $COVER_TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COVER_TITLE_SIZE_CHANGE]
-\# Docheader
-.ds $AUTHOR_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE]
-.ds $CHAPTER_TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$CHAPTER_TITLE_SIZE_CHANGE]
-.ds $COPYRIGHT_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$COPYRIGHT_SIZE_CHANGE]
-.ds $DOCTYPE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE]
-.ds $SUBTITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$SUBTITLE_SIZE_CHANGE]
-.ds $TITLE_PT_SIZE \
-    \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
-\#
-\# Next, some utility macros for various routines to prevent repetition
+\# Macros and aliases needed for doccover, cover, and docheader in
+\# START.
 \#
 .MAC DOC_HEADER_QUAD END
 .    if '\\$0'DOC_HEADER_QUAD' .ds $CALLING_MACRO DOCHEADER
@@ -6156,226 +6201,344 @@ y\R'#DESCENDER \\n[.cdp]'
 .    \}
 .    el .CENTER
 .END
-\#
-\# Aliases for DOC_HEADER_QUAD
-\#
-.ALIAS COVER_H_POS      DOC_HEADER_QUAD
-.ALIAS DOC_COVER_H_POS  DOC_HEADER_QUAD
-\#
-.MAC PRINT_AUTHORS END
-.    ie r#DOING_COVER \{\
-.       if \\n[#DOC_COVER]=1 \{\
-.          ie !'\\*[$AUTHOR_DOCCOVER_1]'' \{\
-.             nr #AUTHORS \\n[#AUTHOR_DOCCOVER_NUM]
-.             nr #NEXT_AUTHOR 0 1
-.             while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                ie \\n[#DOC_COVER_AUTHOR_COLOR]=1 \
-.                   PRINT \
-\m[\\*[$DOC_COVER_AUTHOR_COLOR]]\\*[$AUTHOR_DOCCOVER_\\n+[#NEXT_AUTHOR]]\m[]
-.                el .PRINT \\*[$AUTHOR_DOCCOVER_\\n+[#NEXT_AUTHOR]]
+.
+.ALIAS COVER_H_POS     DOC_HEADER_QUAD
+.ALIAS DOC_COVER_H_POS DOC_HEADER_QUAD
+\#
+.MAC DO_TITLE_OR_AUTHOR END
+.    ie '\\$0'DO_AUTHORS' .ds $TTL_AUTH AUTHOR
+.    el .ds $TTL_AUTH TITLE
+.    if !'\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_1]'' \{\
+.       if '\\$0'DO_SUBTITLE' \{\
+.          if '\\*[$PRFX]'\\*[DOC_]COVER_SUB' \{\
+.             ds $PRFX SUB
+.             nr #\\*[DOC_]COVER_SUB 1
+.          \}
+.       \}
+.       if !\\n[#PRINT_STYLE]=1 \{\
+.          fam  \\*[$\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_FAM]
+.          ft      \\*[$\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_FT]
+.          ps \
+\\n[#DOC_PT_SIZE]u\\*[$\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_SIZE_CHANGE]
+.          if '\\*[$COVER_TYPE]'' .vs \\n[#DOCHEADER_LEAD]u
+.          if \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_LEAD] \{\
+.            vs \\*[$\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_LEAD]
+.            if \\n[#DOCHEADER] .sp |\\n[#T_MARGIN]u-1v
+.          \}
+.          if \\n[#CHAPTER+TITLE]=1 .ALD \\n[.v]u/4u \" A little space before 
the chapter title
+.          if \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_COLOR]=1 \
+.             gcolor \\*[$\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_COLOR]
+.          if \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_CAPS]=1 .CAPS
+.          if \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_SMALLCAPS]=1 
.SMALLCAPS
+.       \}
+.       if \\n[#\\*[DOC_]COVER_SUB] \{\
+.          rr #\\*[DOC_]COVER_SUB
+.          ds $PRFX \\*[DOC_]COVER_SUB
+.          ds $SAVED_COVER_TYPE \\*[$COVER_TYPE]
+.          rm $COVER_TYPE
+.       \}
+.       nr #ARG_NUM 0 1
+.       while \\n[#\\*[$PRFX]\\*[$TTL_AUTH]_NUM]>=\\n+[#ARG_NUM] \{\
+.          ie \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_UNDERLINE] \{\
+.             ds $TITLE_TYPE \\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]
+.             ie \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_UNDERLINE]=2 \{\
+.                ie !\\n[#PRINT_STYLE]=1 \
+.                   UNDERSCORE2 \\*[$\\*[$PRFX]\\*[$TTL_AUTH]_UNDERLINE_GAP] \
+\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_RULE_GAP] \
+"\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
+.                el .UNDERSCORE "\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
+.             \}
+.             el \{\
+.                ie !\\n[#PRINT_STYLE]=1 \
+.                   UNDERSCORE "\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
+.                el .PRINT "\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
 .             \}
 .          \}
 .          el \{\
-.             nr #AUTHORS \\n[#AUTHOR_NUM]
-.             nr #NEXT_AUTHOR 0 1
-.             while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                ie \\n[#DOC_COVER_AUTHOR_COLOR]=1 \
-.                   PRINT \
-\m[\\*[$DOC_COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
-.                el .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-.             \}
+.             PRINT "\\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
 .          \}
-.          return
+.          if \\n[#ARG_NUM]>1 .as PDF_BM " \"
+.          as PDF_BM \\*[$\\*[$PRFX]\\*[$TTL_AUTH]_\\n[#ARG_NUM]]
 .       \}
-.       if \\n[#COVER]=1 \{\
-.          ie !'\\*[$AUTHOR_COVER_1]'' \{\
-.             nr #AUTHORS \\n[#AUTHOR_COVER_NUM]
-.             nr #NEXT_AUTHOR 0 1
-.             while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                ie \\n[#COVER_AUTHOR_COLOR]=1 \
-.                   PRINT \
-\m[\\*[$COVER_AUTHOR_COLOR]]\\*[$AUTHOR_COVER_\\n+[#NEXT_AUTHOR]]\m[]
-.                el .PRINT \\*[$AUTHOR_COVER_\\n+[#NEXT_AUTHOR]]
-.             \}
+.       rm $TITLE_TYPE
+.       if \\n[#PRINT_STYLE]=2 .vs
+.       if \\n[#\\*[$COVER_TYPE]\\*[$PRFX]\\*[$TTL_AUTH]_COLOR]=1 \
+.          gcolor
+.       SMALLCAPS off
+.       CAPS off
+.    \}
+.    if !'\\*[$SAVED_COVER_TYPE]'' \{\
+.      ds $COVER_TYPE \\*[$SAVED_COVER_TYPE]
+.      rm $SAVED_COVER_TYPE
+.   \}
+.END
+.
+.ALIAS DO_TITLE    DO_TITLE_OR_AUTHOR
+.ALIAS DO_SUBTITLE DO_TITLE_OR_AUTHOR
+.ALIAS DO_AUTHORS  DO_TITLE_OR_AUTHOR
+\#
+.MAC DO_CHAPTER END
+.    fam \\*[$\\*[DOC_]COVER_CHAPTER_FAM]
+.    ft     \\*[$\\*[DOC_]COVER_CHAPTER_FT]
+.    ps \\n[#DOC_PT_SIZE]u\\*[$\\*[DOC_]COVER_CHAPTER_SIZE_CHANGE]
+.    if \\n[#\\*[DOC_]COVER_CHAPTER_COLOR]=1 \
+.       gcolor \\*[$\\*[DOC_]COVER_CHAPTER_COLOR]
+.    if \\n[#\\*[DOC_]COVER_CHAPTER_CAPS]=1 .CAPS
+.    if \\n[#\\*[DOC_]COVER_CHAPTER_SMALLCAPS]=1 .SMALLCAPS
+.    ie \\n[#\\*[DOC_]COVER_CHAPTER_UNDERLINE] \{\
+.       ds $TITLE_TYPE \\*[$COVER_TYPE]CHAPTER
+.       ie \\n[#\\*[DOC_]COVER_CHAPTER_UNDERLINE]=2 \
+.          UNDERSCORE2 \\*[$\\*[DOC_]COVER_CHAPTER_UNDERLINE_GAP] \
+\\*[$\\*[DOC_]COVER_CHAPTER_RULE_GAP] "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.       el .UNDERSCORE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.    \}
+.    el .PRINT "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.    gcolor
+.    SMALLCAPS off
+.    CAPS off
+.END
+\#
+\# Spacing adjustments for (doc)cover and docheader elements
+\#
+.MAC _SPACE END
+.   ds $\\$0R \\$1
+.END
+.
+.ds SPACER_TYPE_1 SUBTITLE
+.ds SPACER_TYPE_2 ATTRIBUTE
+.ds SPACER_TYPE_3 AUTHOR
+.ds SPACER_TYPE_4 CHAPTER_TITLE
+.ds SPACER_TYPE_5 DOCTYPE
+.
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=5 \{\
+.   ALIAS \*[SPACER_TYPE_\n[#LOOP]]_SPACE           _SPACE
+.   ALIAS COVER_\*[SPACER_TYPE_\n[#LOOP]]_SPACE     _SPACE
+.   ALIAS DOC_COVER_\*[SPACER_TYPE_\n[#LOOP]]_SPACE _SPACE
+.\}
+\#
+.MAC DEFAULT_DOCHEADER END
+.    nr #DOCHEADER 1
+.    DOC_HEADER_QUAD
+.    vs \\n[#DOCHEADER_LEAD]u
+.    if \\n[#PRINT_STYLE]=2 \
+.       if \\n[#DOCHEADER_COLOR]=1 \
+.          gcolor \\*[$DOCHEADER_COLOR]
+.    DO_TITLE
+.    rr #DOCHEADER
+.    if !'\\*[$SUBTITLE_1]'' \{\
+.       ds $PRFX SUB
+.       if !'\\*[$SUBTITLE_SPACER]'' .sp \\*[$SUBTITLE_SPACER]
+.       if \\n[#PRINT_STYLE]=2 \
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
+.       DO_SUBTITLE
+.       rm $PRFX
+.    \}
+.    if !\\n[#NO_PRINT_AUTHOR] \{\
+.       if !'\\*[$AUTHOR_1]'' \{\
+.          ie \\n[#PRINT_STYLE]=1 \{\
+.             TYPEWRITER
+.             ie \\n[#SINGLE_SPACE]=1 .vs \\n[#DOC_LEAD]u
+.             el .vs \\n[#DOC_LEAD]u/2u
+.             sp
 .          \}
-.          el \{\
-.             nr #AUTHORS \\n[#AUTHOR_NUM]
-.             nr #NEXT_AUTHOR 0 1
-.             while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                ie \\n[#COVER_AUTHOR_COLOR]=1 \
-.                   PRINT \
-\m[\\*[$COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
-.                el .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
+.          el .vs \\n[#DOC_LEAD]u\\*[$DOCHEADER_LEAD_ADJ]
+.          if d$ATTRIBUTE_STRING \{\
+.             FAMILY \\*[$ATTRIBUTE_FAM]
+.             FT     \\*[$ATTRIBUTE_FT]
+.             ps \
+\\n[#DOC_PT_SIZE]u\\*[$ATTRIBUTE_SIZE_CHANGE]
+.             if \\n[#DOCHEADER_COLOR]=1 \
+.                gcolor \\*[$DOCHEADER_COLOR]
+.             if \\n[#ATTRIBUTE_COLOR]=1 \
+.                gcolor \\*[$ATTRIBUTE_COLOR]
+.             if \\n[#ATTRIBUTE_CAPS]=1 .CAPS
+.             if !'\\*[$ATTRIBUTE_SPACER]'' \
+.                sp \\*[$ATTRIBUTE_SPACER]
+.             ie \\n[#ATTRIBUTE_UNDERLINE] \{\
+.                ds $TITLE_TYPE ATTRIBUTE
+.                ie \\n[#ATTRIBUTE_UNDERLINE]=2 \
+.                   UNDERSCORE2 \\*[$ATTRIBUTE_UNDERLINE_GAP] \
+\\*[$ATTRIBUTE_RULE_GAP] "\\*[$ATTRIBUTE_STRING]"
+.                el .UNDERSCORE "\\*[$ATTRIBUTE_STRING]"
 .             \}
+.             el .PRINT "\\*[$ATTRIBUTE_STRING]"
+.             if \\n[#ATTRIBUTE_COLOR]=1 .gcolor
+.             CAPS off
 .          \}
-.          return
-.       \}
-.    \}
-.    el \{\
-.       nr #AUTHORS \\n[#AUTHOR_NUM]
-.       nr #NEXT_AUTHOR 0 1
-.       while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.          ie \\n[#AUTHOR_COLOR]=1 \
-.             PRINT \m[\\*[$AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
-.          el .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
+.          if !'\\*[$AUTHOR_SPACER]'' .sp \\*[$AUTHOR_SPACER]
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
+.          DO_AUTHORS
 .       \}
 .    \}
+.    FAMILY \\*[$DOC_FAM]
+.    FT R
 .END
 \#
-.MAC DEFAULT_DOCHEADER END
-.    DOC_HEADER_QUAD
+.MAC DEFAULT_DOCHEADER_TYPEWRITE END
+.    CENTER
+.    TYPEWRITER
+.    if !\\n[#SINGLE_SPACE] \{\
+.       vs \\n[#DOC_LEAD]u/2u
+.       sp |\\n[#T_MARGIN]u-1v
+.    \}
 .    if !'\\*[$TITLE_1]'' \{\
-.       FAMILY  \\*[$TITLE_FAM]
-.       FT      \\*[$TITLE_FT]
-.       ps \\*[$TITLE_PT_SIZE]
-.       vs      \\n[#DOCHEADER_LEAD]u
-.       nr #ARG_NUM 0 1
-.       while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.          ie \\n[#TITLE_COLOR]=1 \
-.             PRINT "\m[\\*[$TITLE_COLOR]]\\*[$TITLE_\\n[#ARG_NUM]]\m[]
-.          el .PRINT "\\*[$TITLE_\\n[#ARG_NUM]]
-.       \}
+.       ie \\n[#SINGLE_SPACE] \
+.          vs \\n[#DOC_LEAD]u+(\\n[#DOC_LEAD]u/4u)
+.       el .vs (\\n[#DOC_LEAD]u/2u)+(\\n[#DOC_LEAD]u/4u)
+.       CAPS
+.       DO_TITLE
+.       CAPS OFF
+.       vs
 .    \}
-.    if !'\\*[$SUBTITLE_1]'' \{\
-.       FAMILY  \\*[$SUBTITLE_FAM]
-.       FT      \\*[$SUBTITLE_FT]
-.       ps \\*[$SUBTITLE_PT_SIZE]
-.       nr #ARG_NUM 0 1
-.       while \\n[#SUBTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.          ie \\n[#SUBTITLE_COLOR]=1 \
-.             PRINT "\m[\\*[$SUBTITLE_COLOR]]\\*[$SUBTITLE_\\n[#ARG_NUM]]\m[]
-.          el .PRINT "\\*[$SUBTITLE_\\n[#ARG_NUM]]
-.       \}
+.    if !'\\*[$SUBTITLE]'' \{\
+.       ds $PRFX SUB
+.       sp
+.       DO_SUBTITLE
+.       rm $PRFX
 .    \}
-.    if !'\\*[$AUTHOR_1]'' \{\
-.       if \\n[#NEW_AUTHOR] \{\
-.          rr #NEW_AUTHOR
-.          FAMILY  \\*[$AUTHOR_FAM]
-.          FT      \\*[$AUTHOR_FT]
-.          ps \\*[$AUTHOR_PT_SIZE]
-.          ie \\n[#ATTRIBUTE_COLOR]=1 \
-.             PRINT \&\m[\\*[$ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[]
-.          el .PRINT \&\\*[$ATTRIBUTE_STRING]
-.          PRINT_AUTHORS
+.    if !\\n[#NO_PRINT_AUTHOR] \{\
+.       if !'\\*[$AUTHOR_1]'' \{\
+.          sp
+.          if d$ATTRIBUTE_STRING .PRINT "\\*[$ATTRIBUTE_STRING]
+.          sp
+.          DO_AUTHORS
 .       \}
 .    \}
-.    FAMILY \\*[$DOC_FAM]
-.    FT R
 .END
 \#
 .MAC CHAPTER_DOCHEADER END
 .    DOC_HEADER_QUAD
-.    FAMILY  \\*[$TITLE_FAM]
-.    FT      \\*[$TITLE_FT]
-.    ps \\*[$TITLE_PT_SIZE]
+.    FAMILY  \\*[$CHAPTER_FAM]
+.    FT      \\*[$CHAPTER_FT]
+.    ps \\n[#DOC_PT_SIZE]u\\*[$CHAPTER_SIZE_CHANGE]
 .    vs \\n[#DOCHEADER_LEAD]u
 .\" Chapter title only
 .    ie '\\*[$CHAPTER]'' \{\
+.       if \\n[#PRINT_STYLE]=2 \
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
 .       ie !'\\*[$CHAPTER_TITLE_1]'' \{\
+.          ds $PRFX CHAPTER_
+.          nr #DOCHEADER 1
+.          DO_TITLE
+.          rr #DOCHEADER
+.          rm $PRFX
+.       \}
+.       el .DO_TITLE
+.    \}
+.\" Chapter string, possibly with a chapter title
+.    el \{\
+.       if \\n[#PRINT_STYLE]=2 \
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
+.          if \\n[#CHAPTER_COLOR]=1 \
+.             gcolor \\*[$CHAPTER_COLOR]
+.       \}
+.       if \\n[#CHAPTER_CAPS]=1 .CAPS
+.       ie \\n[#CHAPTER_UNDERLINE] \{\
+.          ds $TITLE_TYPE CHAPTER
+.          ie \\n[#CHAPTER_UNDERLINE]=2 \
+.             UNDERSCORE2 \\*[$CHAPTER_UNDERLINE_GAP] \
+\\*[$CHAPTER_RULE_GAP] "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.          el .UNDERSCORE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.       \}
+.       el .PRINT "\\*[$CHAPTER_STRING] \\*[$CHAPTER]"
+.       rm $TITLE_TYPE
+.       if \\n[#PRINT_STYLE]=2 \
+.          if \\n[#CHAPTER_COLOR]=1 .gcolor
+.       CAPS off
+.       if !'\\*[$CHAPTER_TITLE_1]'' \{\
+.          ds $PRFX CHAPTER_
 .          if \\n[#PRINT_STYLE]=2 \{\
-.             FAMILY  \\*[$CHAPTER_TITLE_FAM]
-.             FT      \\*[$CHAPTER_TITLE_FT]
-.             ps \\*[$CHAPTER_TITLE_PT_SIZE]
-.             vs \\n[#DOCHEADER_LEAD]u
+.             nr #CHAPTER+TITLE 1
+.             if \\n[#DOCHEADER_COLOR]=1 \
+.                gcolor \\*[$DOCHEADER_COLOR]
 .          \}
+.          if !'\\*[$CHAPTER_TITLE_SPACER]'' \
+.             sp \\*[$CHAPTER_TITLE_SPACER]
+.          DO_TITLE
+.          rm $PRFX
+.          rr #CHAPTER+TITLE
+.          RLD \\n[#DOC_LEAD]u \" Just looks better this way
+.       \}
+.    \}
+.    FAMILY \\*[$DOC_FAM]
+.    FT R
+.END
+\#
+.MAC CHAPTER_DOCHEADER_TYPEWRITE END
+.    CENTER
+.    TYPEWRITER
+.    if !\\n[#SINGLE_SPACE] \{\
+.       vs \\n[#DOC_LEAD]u/2u
+.       sp |\\n[#T_MARGIN]u-1v
+.    \}
+.    ie '\\*[$CHAPTER]'' \{\
+.       CAPS
+.       ie !'\\*[$CHAPTER_TITLE]'' \{\
+.          vs \\n[.v]u+(\\n[.v]u/3u)
 .          nr #ARG_NUM 0 1
 .          while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el .PRINT \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
+.             UNDERSCORE 3p "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
 .          \}
+.          vs
 .       \}
 .       el \{\
-.          ie \\n[#TITLE_COLOR]=1 \{\
-.             PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_STRING]\m[]
-.          \}
-.          el .PRINT \\*[$CHAPTER_STRING]
+.          CAPS
+.          UNDERSCORE 3p "\\*[$CHAPTER_STRING]"
 .       \}
+.       CAPS OFF
+.       RLD 1v
 .    \}
-.\" Chapter string, possibly with a chapter title
 .    el \{\
-.       ie \\n[#TITLE_COLOR]=1 \{\
-.          PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[]
-.       \}
-.       el .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
-.       if !'\\*[$CHAPTER_TITLE_1]'' \{\
-.          if \\n[#PRINT_STYLE]=2 \{\
-.             FAMILY  \\*[$CHAPTER_TITLE_FAM]
-.             FT      \\*[$CHAPTER_TITLE_FT]
-.             ps \\*[$CHAPTER_TITLE_PT_SIZE]
-.             vs \\n[#DOCHEADER_LEAD]u
-.             ALD     \\n[.v]u/4u \" Put a little space before the chapter 
title
-.          \}
+.       CAPS
+.       UNDERSCORE 3p "\\*[$CHAPTER_STRING] \\*[$CHAPTER]
+.       CAPS OFF
+.       if !'\\*[$CHAPTER_TITLE]'' \{\
+.          sp
 .          nr #ARG_NUM 0 1
 .          while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#CHAPTER_TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$CHAPTER_TITLE_COLOR]]\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el .PRINT \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
+.             PRINT "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
 .          \}
-.          RLD \\n[#DOC_LEAD]u    \" Just looks better this way
 .       \}
+.       sp -1
+.    \}
+.    vs \\n[#DOC_LEAD]u
+.    if \\n[#SINGLE_SPACE] .sp 2
+.END
+\#
+.MAC NAMED_DOCHEADER END
+.    DEFAULT_DOCHEADER
+.    if !\\n[#NO_PRINT_DOCTYPE] \{\
+.       FAMILY  \\*[$DOCTYPE_FAM]
+.       FT      \\*[$DOCTYPE_FT]
+.       ps \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE]
+.       vs \\n[#DOCHEADER_LEAD]u
+.       ALD     \\n[#DOCHEADER_LEAD]u
+.       if \\n[#DOCHEADER_COLOR]=1 \
+.          gcolor \\*[$DOCHEADER_COLOR]
+.       if \\n[#DOCTYPE_COLOR]=1 \
+.          gcolor \\*[$DOCTYPE_COLOR]
+.       if \\n[#DOCTYPE_CAPS]=1 .CAPS
+.       if !'\\*[$DOCTYPE_SPACER]'' .sp \\*[$DOCTYPE_SPACER]
+.       ie \\n[#DOCTYPE_UNDERLINE] \{\
+.          ds $TITLE_TYPE DOCTYPE
+.          ie \\n[#DOCTYPE_UNDERLINE]=2 \
+.              UNDERSCORE2 \\*[$DOCTYPE_UNDERLINE_GAP] \
+\\*[$DOCTYPE_RULE_GAP] "\\*[$DOC_TYPE]
+.          el .UNDERSCORE "\\*[$DOC_TYPE]
+.       \}
+.       el .PRINT "\\*[$DOC_TYPE]
+.       gcolor
+.       CAPS off
 .    \}
 .    FAMILY \\*[$DOC_FAM]
 .    FT R
 .END
 \#
-.MAC NAMED_DOCHEADER END
-.    DOC_HEADER_QUAD
-.    FAMILY  \\*[$TITLE_FAM]
-.    FT      \\*[$TITLE_FT]
-.    ps \\*[$TITLE_PT_SIZE]
-.    vs      \\n[#DOCHEADER_LEAD]u
-.    if !'\\*[$TITLE_1]'' \{\
-.       nr #ARG_NUM 0 1
-.       while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.          ie \\n[#TITLE_COLOR]=1 \{\
-.             PRINT "\m[\\*[$TITLE_COLOR]]\\*[$TITLE_\\n[#ARG_NUM]]\m[]
-.          \}
-.          el .PRINT "\\*[$TITLE_\\n[#ARG_NUM]]
-.       \}
-.    \}
-.    if !'\\*[$SUBTITLE]'' \{\
-.       FAMILY  \\*[$SUBTITLE_FAM]
-.       FT      \\*[$SUBTITLE_FT]
-.       ps \\*[$SUBTITLE_PT_SIZE]
-.       nr #ARG_NUM 0 1
-.       while \\n[#SUBTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.          ie \\n[#SUBTITLE_COLOR]=1 \{\
-.             PRINT "\m[\\*[$SUBTITLE_COLOR]]\\*[$SUBTITLE_\\n[#ARG_NUM]]\m[]
-.          \}
-.          el .PRINT "\\*[$SUBTITLE_\\n[#ARG_NUM]]
-.       \}
-.    \}
-.    if !'\\*[$AUTHOR_1]'' \{\
-.       FAMILY  \\*[$AUTHOR_FAM]
-.       FT      \\*[$AUTHOR_FT]
-.       ps \\*[$AUTHOR_PT_SIZE]
-.       ie \\n[#ATTRIBUTE_COLOR]=1 \{\
-.          PRINT \&\m[\\*[$ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[]
-.       \}
-.       el .PRINT \&\\*[$ATTRIBUTE_STRING]
-.       PRINT_AUTHORS
-.    \}
-.    FAMILY  \\*[$DOCTYPE_FAM]
-.    FT      \\*[$DOCTYPE_FT]
-.    ps \\*[$DOCTYPE_PT_SIZE]
-.    vs \\n[#DOCHEADER_LEAD]u
-.    ALD     \\n[#DOCHEADER_LEAD]u
-.    nr #FROM_DOCTYPE 1
-.    if \\n[#DOCTYPE_COLOR]=1 .COLOR \\*[$DOCTYPE_COLOR]
-.    ie \\n[#DOCTYPE_UNDERLINE]=1 \
-.       UNDERSCORE \\*[$DOCTYPE_UNDERLINE_GAP] "\\*[$DOC_TYPE]"
-.    el .PRINT "\\*[$DOC_TYPE]"
-.    COLOR black
-.    FAMILY \\*[$DOC_FAM]
-.    FT R
-.    rr #FROM_DOCTYPE
-.END
-\#
 \# COVER PAGE
 \# ----------
 \# *Arguments:
@@ -6394,6 +6557,7 @@ y\R'#DESCENDER \\n[.cdp]'
 \#   applies everything to a doc cover.
 \#
 .MAC COVER END
+.    rm DOC_
 .    ie '\\$0'DOC_COVER' \{\
 .       nr #DOC_COVER 1
 .       ds DOC_ DOC_
@@ -6401,15 +6565,19 @@ y\R'#DESCENDER \\n[.cdp]'
 .    el .nr #COVER 1
 .    nr #ARG_NUM 0 1
 .    nr #COVER_ITEM \\n[#NUM_ARGS]  \"loop count
+.    if \\n[#NUM_ARGS]=1 \
+.       if '\\$1'\\*[DOC_]COVERTEXT' \
+.          nr #\\*[DOC_]COVERTEXT_ONLY 1
 .    while \\n+[#ARG_NUM]<=\\n[#COVER_ITEM] \{\
-.       if '\\$1'TITLE' \{\
-.          nr #\\*[DOC_]COVER_TITLE 1
-.          shift
-.       \}
 .       if '\\$1'DOCTITLE' \{\
 .          nr #\\*[DOC_]COVER_TITLE 2
 .          shift
 .       \}
+.       if '\\$1'TITLE' \{\
+.          nr #\\*[DOC_]COVER_TITLE 1
+.          if \\n[#FROM_\\*[DOC_]COVERTITLE] .nr #\\*[DOC_]COVER_TITLE 7
+.          shift
+.       \}
 .       if '\\$1'CHAPTER' \{\
 .          nr #\\*[DOC_]COVER_TITLE 3
 .          shift
@@ -6422,10 +6590,16 @@ y\R'#DESCENDER \\n[.cdp]'
 .          nr #\\*[DOC_]COVER_TITLE 5
 .          shift
 .       \}
-.       if '\\$1'\\*[DOC_]COVERTITLE' \{\
+.       if '\\$1'COVERTITLE' \{\
+.          nr #COVERTITLE 1
 .          nr #\\*[DOC_]COVER_TITLE 6
 .          shift
 .       \}
+.       if '\\$1'DOC_COVERTITLE' \{\
+.          nr #DOC_COVERTITLE 1
+.          nr #\\*[DOC_]COVER_TITLE 7
+.          shift
+.       \}
 .       if '\\$1'SUBTITLE' \{\
 .          nr #\\*[DOC_]COVER_SUBTITLE 1
 .          shift
@@ -6446,6 +6620,14 @@ y\R'#DESCENDER \\n[.cdp]'
 .          nr #\\*[DOC_]COVER_MISC 1
 .          shift
 .       \}
+.       if '\\$1'\\*[DOC_]COVERTEXT' \{\
+.          nr #\\*[DOC_]COVERTEXT 1
+.          shift
+.       \}
+.       if '\\$1'\\*[DOC_]COVER_IMAGE' \{\
+.          nr #\\*[DOC_]COVER_IMAGE 1
+.          shift
+.       \}
 .       if '\\$1'PDF_OUTLINE_LABEL' \{\
 .          shift
 .          ds $PDF_\\*[DOC_]COVER_LABEL \\$1
@@ -6459,49 +6641,165 @@ y\R'#DESCENDER \\n[.cdp]'
 .    if '\\$0'DOC_COVER' .rm DOC_
 .END
 \#
+\# COVER TITLE
+\# -----------
+\# *Arguments:
+\#   <covertitle>
+\# *Function:
+\#   Stores cover title in string(s) for output on cover pages.
+\#
 .MAC COVERTITLE END
-.    ie '\\$0'DOC_COVERTITLE' \{\
-.       ie \\n[#NUM_ARGS]=0 \{\
-.          if \\n[#DOC_COVER_TITLE_NUM] \{\
+.    rm DOC_
+.    if '\\$0'DOC_COVERTITLE' .ds DOC_ DOC_
+.    ie \\n[#NUM_ARGS]=0 \{\
+.       nr argc 0 1
+.       while \\n+[argc]<=3 \{\
+.          if \\n[#\\*[DOC_]COVER_TITLE_NUM] \{\
 .             nr #ITEM 0 1
-.             while \\n[#DOC_COVER_TITLE_NUM]>\\n[#ITEM] \{\
-.                rm $DOC_COVER_TITLE_\\n+[#ITEM]
+.             while \\n[#\\*[DOC_]COVERTITLE_NUM]>\\n[#ITEM] \{\
+.                rm $\\*[DOC_]COVERTITLE_\\n+[#ITEM]
 .             \}
-.             rr #DOC_COVER_TITLE_NUM
-.             rm $DOC_COVER_TITLE
-.          \}
-.       \}
-.       el \{\
-.          nr #DOC_COVER_TITLE_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#DOC_COVER_TITLE_NUM] \{\
-.             ds \
-$DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] \\$\\n[#DOC_COVER_TITLE_NUM]
+.             rr #\\*[DOC_]COVERTITLE_NUM
+.             rm $\\*[DOC_]COVERTITLE
 .          \}
-.          ds $DOC_COVER_TITLE \\$*
 .       \}
 .    \}
 .    el \{\
-.       ie \\n[#NUM_ARGS]=0 \{\
-.          if \\n[#COVER_TITLE_NUM] \{\
-.             nr #ITEM 0 1
-.             while \\n[#COVER_TITLE_NUM]>\\n[#ITEM] \{\
-.                rm $COVER_TITLE_\\n+[#ITEM]
-.             \}
-.             rr #COVER_TITLE_NUM
-.             rm $COVER_TITLE
-.          \}
-.       \}
-.       el \{\
-.          nr #COVER_TITLE_NUM 0 1
-.          while \\n[#NUM_ARGS]>\\n[#COVER_TITLE_NUM] \{\
-.             ds $COVER_TITLE_\\n+[#COVER_TITLE_NUM] \\$\\n[#COVER_TITLE_NUM]
-.          \}
-.          ds $COVER_TITLE \\$*
-.\" .          if \\n[#DOCTITLE_NUM]=0 .PDF_TITLE \\*[$COVER_TITLE]
+.       nr #\\*[DOC_]COVERTITLE_NUM 0 1
+.       while \\n[#NUM_ARGS]>\\n[#\\*[DOC_]COVERTITLE_NUM] \{\
+.          ds \
+$\\*[DOC_]COVERTITLE_\\n+[#\\*[DOC_]COVERTITLE_NUM] 
\\$\\n[#\\*[DOC_]COVERTITLE_NUM]
+.          nr #\\*[DOC_]COVERTITLE_NUM \\n[#\\*[DOC_]COVERTITLE_NUM]
 .       \}
+.       ds $\\*[DOC_]COVERTITLE \\$*
 .    \}
 .END
 \#
+\# COVER TEXT
+\# ----------
+\# *Arguments:
+\#   [ START <vertical pos> ] | <anything>
+\# *Function:
+\#   With no arg, begins a diversion holding the cover text for
+\#   output on the cover page.  With START <pos>, sets a vertical
+\#   starting position relative to the top edge of the page.  With
+\#   any other arg, ends the diversion.
+\# *Notes:
+\#   Aliased as DOC_COVERTEXT.
+\#
+\#   If no other items assigned to cover pages, starts 1/3 of the
+\#   way down the cover page unless START pos is given, otherwise
+\#   starts underneath the last of title, subtitle, author(s) or
+\#   doctype, preceded by a blank line.
+\#
+\#   Does not persist.
+\#
+.MAC COVERTEXT END
+.    rm DOC_
+.    if '\\$0'DOC_COVERTEXT' .ds DOC_ DOC_
+.    if '\\$1'START' \{\
+.       shift
+.       nr #\\*[DOC_]COVERTEXT_START_POS (u;\\$1)
+.       shift
+.    \}
+.    ie '\\$1'' \{\
+.       nr #COVERTEXT_PP 1
+.       di \\*[DOC_]COVER_TEXT
+\!.     ie !\\n[#\\*[DOC_]COVERTEXT_START_POS] \{\
+\!.        sp |\\n[.p]u/3u-1v
+\!.     \}
+\!.     el \{\
+\!.        vs 0
+\!.        sp |0i
+\!.        vs \\\\n[#DOC_LEAD]u+\\\\*[$\\*[DOC_]COVER_LEAD_ADJ]
+\!.        sp |\\n[#\\*[DOC_]COVERTEXT_START_POS]u-1
+\!.     \}
+\!.     vpt
+.    \}
+.    el \{\
+.       br
+\!.     vpt 0
+.       di
+.       rm $FONT
+.       rr #COVERTEXT_PP
+.       IQ CLEAR
+.    \}
+.    rm DOC_
+.END
+.
+.ALIAS DOC_COVERTEXT COVERTEXT
+\#
+\# COVER IMAGE
+\# -----------
+\#*Arguments:
+\#  <image file> <width> <height> [ -L|-C|-R|-I <ind> Y-pos [ X-pos ] ]
+\#*Function:
+\#  Places an image on doccovers and covers.
+\#*Notes:
+\#  Aliased as DOC_COVER_IMAGE.
+\#
+\#  <width> and <height> are required.  With no further args, images
+\#  are set at 0,0 by default so that full page images fill the entire
+\#  printer sheet.
+\#  
+\#  Positioning args are the same as PDF_IMAGE.  -L, -R, -C and -I <ind>
+\#  observe the left and right margins.
+\#
+\#  Y-pos is required for all but full page images; without it, images
+\#  are flush with the top of the page.  X-pos is only needed if the
+\#  user prefers to give absolute X,Y positioning.
+\#
+\#  Note that Y-pos comes before X-pos in the args.
+\#
+.MAC COVER_IMAGE END
+. if '\\$0'DOC_COVER_IMAGE' .ds DOC_ DOC_
+. ds \\*[DOC_]COVER_IMG_FILE \\$1
+. nr \\*[DOC_]COVER_IMG_W (z;\\$2)
+. nr \\*[DOC_]COVER_IMG_H (z;\\$3)
+. if !'\\$4'' \{\
+.   ie !\B'\\$4' \{\
+.     if '\\$4'-L' .nr \\*[DOC_]COVER_IMG_IND \
+        \\n[#L_MARGIN]u
+.     if '\\$4'-C' .nr \\*[DOC_]COVER_IMG_IND \
+        \\n[#PAGE_WIDTH]u-\\n[\\*[DOC_]COVER_IMG_W]u/2
+.     if '\\$4'-R' .nr \\*[DOC_]COVER_IMG_IND \
+        \\n[#L_MARGIN]+\\n[.l]u-\\n[\\*[DOC_]COVER_IMG_W]u
+.     if '\\$4'-I' \{\
+.       nr \\*[DOC_]COVER_IMG_IND \\n[#L_MARGIN]+\\$5
+.       if !'\\$6'' .nr \\*[DOC_]COVER_IMG_Y (u;\\$6)
+.       shift \\n[#NUM_ARGS]
+.     \}
+.     if \B'\\$5' .nr \\*[DOC_]COVER_IMG_Y (u;\\$5)
+.   \}
+.   el \{\
+.     nr \\*[DOC_]COVER_IMG_Y (u;\\$4)
+.     if \B'\\$5' .nr \\*[DOC_]COVER_IMG_X (u;\\$5)
+.   \}
+. \}
+. rm DOC_
+.END
+.
+.ALIAS DOC_COVER_IMAGE COVER_IMAGE
+\#
+.MAC DO_COVER_IMAGE END
+. ll \\n[#PAGE_WIDTH]u
+. po 0
+. vs 0
+. sp |0i
+. if \\n[\\*[DOC_]COVER_IMG_Y]   .sp \\n[\\*[DOC_]COVER_IMG_Y]u
+. if \\n[\\*[DOC_]COVER_IMG_X]   .in \\n[\\*[DOC_]COVER_IMG_X]u
+. if \\n[\\*[DOC_]COVER_IMG_IND] .in \\n[\\*[DOC_]COVER_IMG_IND]u
+. if \\n[.u]=1 .nf
+. nop \X'pdf: pdfpic \\*[\\*[DOC_]COVER_IMG_FILE] -L \
+\\n[\\*[DOC_]COVER_IMG_W]z \\n[\\*[DOC_]COVER_IMG_H]z'
+. in
+. vs
+. po
+. ll
+.END
+.
+.ALIAS DO_DOC_COVER_IMAGE DO_COVER_IMAGE
+\#
 \# COVER PAGE LEADING
 \# ------------------
 \# *Arguments:
@@ -6519,16 +6817,25 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    el .ds $COVER_LEAD_ADJ \\$1
 .END
 \#
-\# MISCs get treated similarly to QUOTEs and BLOCKQUOTEs with respect to
-\# leading
+\# MISC_AUTOLEAD functionality has been removed.  Leading for MISCs
+\# is now entered as an absolute value.  The macro emits a warning.
 \#
 .MAC MISC_AUTOLEAD END
-.    if '\\$0'DOC_COVER_MISC_AUTOLEAD' .nr #DOC_COVER_MISC_AUTOLEAD (p;\\$1)
-.    if '\\$0'COVER_MISC_AUTOLEAD'     .nr #COVER_MISC_AUTOLEAD (p;\\$1)
+.    ds replacement \\$0
+.    substring replacement 0 -9
+.    ds replacement \\*[replacement]LEAD
+.    ds cover-type \\$0
+.    substring cover-type 0 2
+.    ie '\\*[cover-type]'COV' .ds cover-type cover
+.    el .ds cover-type doc-cover
+.    tm1 "[mom]: \\$0 at line \\n[.c] of '\\n[.F]' is no longer valid.
+.    tm1 "       Leading of \\*[cover-type] MISC items is now set with 
\\*[replacement], which
+.    tm1 "       takes an absolute leading value.  Please update your document.
+.    ab   [mom]: Aborting.
 .END
-\#
-.ALIAS DOC_COVER_MISC_AUTOLEAD  MISC_AUTOLEAD
-.ALIAS COVER_MISC_AUTOLEAD      MISC_AUTOLEAD
+.
+.ALIAS DOC_COVER_MISC_AUTOLEAD MISC_AUTOLEAD
+.ALIAS COVER_MISC_AUTOLEAD     MISC_AUTOLEAD
 \#
 \# COVER PAGE START POSITION
 \# -------------------------
@@ -6545,238 +6852,16 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#   down the page (setup in DO_COVER).
 \#
 .MAC COVER_ADVANCE END
-.    ie '\\$0'DOC_COVER_ADVANCE' .nr #DOC_COVER_START_POS (\\$1)
+.    ds COVER_TYPE \\$0
+.    substring COVER_TYPE 0 2
+.    ie 'COVER_TYPE'DOC' .nr #DOC_COVER_START_POS (\\$1)
 .    el .nr #COVER_START_POS (\\$1)
 .END
-\#
-\# UNDERLINE CONTROL
-\# -----------------
-\# *Arguments:
-\#   [ DOUBLE ] [ <underline weight> [<underline gap>] ] | <none> | <anything>
-\# *Function:
-\#   Toggles underlining of the element indicated by the calling alias
-\#   on or off.  Uses #<element>_UNDERLINE_WEIGHT to set the weight,
-\#   and defines string $<element>_UNDERLINE_GAP.
-\# *Notes:
-\#   Calling aliases COVER_ and DOCCOVER_ only apply if DOCTYPE is
-\#   NAMED and the DOCTYPE arg is passed to COVER or DOC_COVER.
-\#
-.MAC _UNDERLINE END
-.    ie '\\$1'' \{\
-.       if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE' \
-.          nr #BIB_STRING_UNDERLINE 1
-.       if '\\$0'BIBLIOGRAPHY_STRING_UNDERSCORE' \
-.          nr #BIB_STRING_UNDERLINE 1
-.       if '\\$0'COVER_UNDERLINE' \
-.          nr #COVER_UNDERLINE 1
-.       if '\\$0'DOC_COVER_UNDERLINE' \
-.          nr #DOC_COVER_UNDERLINE 1
-.       if '\\$0'DOCTYPE_UNDERLINE' \
-.          nr #DOCTYPE_UNDERLINE 1
-.       if '\\$0'ENDNOTE_STRING_UNDERLINE' \
-.          nr #EN_STRING_UNDERLINE 1
-.       if '\\$0'ENDNOTES_HEADER_UNDERSCORE' \
-.          nr #EN_STRING_UNDERLINE 1
-.       if '\\$0'ENDNOTE_STRING_UNDERSCORE' \
-.          nr #EN_STRING_UNDERLINE 1
-.       if '\\$0'ENDNOTE_TITLE_UNDERLINE' \
-.          nr #EN_TITLE_UNDERLINE 1
-.       if '\\$0'ENDNOTE_TITLE_UNDERSCORE' \
-.          nr #EN_TITLE_UNDERLINE 1
-.       if '\\$0'TOC_HEADER_UNDERSCORE' \
-.          nr #TOC_HEADER_UNDERLINE 1
-.    \}
-.    el \{\
-.       ie \\n[#NUM_ARGS]=1 \{\
-.          ds $ARG \\$1
-.          substring $ARG -1
-.          ie \B'\\*[$ARG]' \{\
-.             if !\\n[#PRINT_STYLE]=1 \{\
-.                if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE' \
-.                   BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'BIBLIOGRAPHY_STRING_UNDERSCORE' \
-.                   BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'COVER_UNDERLINE' \
-.                   COVER_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'DOC_COVER_UNDERLINE' \
-.                   DOC_COVER_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'DOCTYPE_UNDERLINE' \
-.                   DOCTYPE_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'ENDNOTES_HEADER_UNDERLINE' \{\
-.                   ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                   nr #EN_STRING_UNDERLINE 1
-.                \}
-.                if '\\$0'ENDNOTE_STRING_UNDERLINE' \{\
-.                   ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                   nr #EN_STRING_UNDERLINE 1
-.                \}
-.                if '\\$0'ENDNOTES_HEADER_UNDERSCORE' \{\
-.                   ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                   nr #EN_STRING_UNDERLINE 1
-.                \}
-.                if '\\$0'ENDNOTE_STRING_UNDERSCORE' \{\
-.                   ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                   nr #EN_STRING_UNDERLINE 1
-.                \}
-.                if '\\$0'ENDNOTE_TITLE_UNDERLINE' \
-.                   ENDNOTE_TITLE_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'ENDNOTE_TITLE_UNDERSCORE' \
-.                   ENDNOTE_TITLE_UNDERLINE_WEIGHT \\$1
-.                if '\\$0'TOC_HEADER_UNDERSCORE' \
-.                   TOC_HEADER_UNDERLINE_WEIGHT \\$1
-.                   nr #TOC_HEADER_UNDERLINE 1
-.             \}
-.          \}
-.          el \{\
-.             if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE' \{\
-.                ie '\\$1'DOUBLE' .nr #BIB_STRING_UNDERLINE 2
-.                el .nr #BIB_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'BIBLIOGRAPHY_STRING_UNDERSCORE' \{\
-.                ie '\\$1'DOUBLE' .nr #BIB_STRING_UNDERLINE 2
-.                el .nr #BIB_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'COVER_UNDERLINE'     .nr #COVER_UNDERLINE 0
-.             if '\\$0'DOC_COVER_UNDERLINE' .nr #DOC_COVER_UNDERLINE 0
-.             if '\\$0'DOCTYPE_UNDERLINE'   .nr #DOCTYPE_UNDERLINE 0
-.             if '\\$0'ENDNOTE_STRING_UNDERLINE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_STRING_UNDERLINE 2
-.                el .nr #EN_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'ENDNOTES_HEADER_UNDERSCORE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_STRING_UNDERLINE 2
-.                el .nr #EN_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'ENDNOTE_STRING_UNDERLINE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_STRING_UNDERLINE 2
-.                el .nr #EN_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'ENDNOTE_STRING_UNDERSCORE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_STRING_UNDERLINE 2
-.                el .nr #EN_STRING_UNDERLINE 0
-.             \}
-.             if '\\$0'ENDNOTE_TITLE_UNDERLINE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_TITLE_UNDERLINE 2
-.                el .nr #EN_TITLE_UNDERLINE 0
-.             \}
-.             if '\\$0'ENDNOTE_TITLE_UNDERSCORE' \{\
-.                ie '\\$1'DOUBLE' .nr #EN_TITLE_UNDERLINE 2
-.                el .nr #EN_TITLE_UNDERLINE 0
-.             \}
-.             if '\\$0'TOC_HEADER_UNDERSCORE' \{\
-.                ie '\\$1'DOUBLE' .nr #TOC_HEADER_UNDERLINE 2
-.                el .nr #TOC_HEADER_UNDERLINE 0
-.             \}
-.          \}
-.       \}
-.       el \{\
-.          if !\\n[#PRINT_STYLE]=1 \{\
-.             if '\\$0'BIBLIOGRAPHY_STRING_UNDERLINE' \{\
-.                nr #BIB_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #BIB_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' \
-.                   ds $BIB_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' \
-.                   ds $BIB_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'BIBLIOGRAPHY_STRING_UNDERSCORE' \{\
-.                nr #BIB_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #BIB_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                BIBLIOGRAPHY_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $BIB_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $BIB_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'COVER_UNDERLINE' \{\
-.                nr #COVER_UNDERLINE 1
-.                COVER_UNDERLINE_WEIGHT \\$1
-.                ds $COVER_UNDERLINE_GAP \\$2
-.             \}
-.             if '\\$0'DOC_COVER_UNDERLINE' \{\
-.                nr #DOC_COVER_UNDERLINE 1
-.                DOC_COVER_UNDERLINE_WEIGHT \\$1
-.                ds $DOC_COVER_UNDERLINE_GAP \\$2
-.             \}
-.             if '\\$0'DOCTYPE_UNDERLINE' \{\
-.                nr #DOCTYPE_UNDERLINE 1
-.                DOCTYPE_UNDERLINE_WEIGHT \\$1
-.                ds $DOCTYPE_UNDERLINE_GAP \\$2
-.             \}
-.\" ENDNOTE_STRING_UNDERLINE and ENDNOTE_STRING_UNDERSCORE are identical
-.\" _UNDERLINE left in for backward compatibility
-.             if '\\$0'ENDNOTES_HEADER_UNDERLINE' \{\
-.                nr #EN_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #EN_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $EN_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $EN_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'ENDNOTE_STRING_UNDERLINE' \{\
-.                nr #EN_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #EN_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $EN_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $EN_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'ENDNOTE_STRING_UNDERSCORE' \{\
-.                nr #EN_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #EN_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $EN_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $EN_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'ENDNOTES_HEADER_UNDERSCORE' \{\
-.                nr #EN_STRING_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #EN_STRING_UNDERLINE 2
-.                   shift
-.                \}
-.                ENDNOTE_STRING_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $EN_STRING_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $EN_STRING_RULE_GAP \\$3
-.             \}
-.             if '\\$0'TOC_HEADER_UNDERSCORE' \{\
-.                nr #TOC_HEADER_UNDERLINE 1
-.                if '\\$1'DOUBLE' \{\
-.                   nr #TOC_HEADER_UNDERLINE 2
-.                   shift
-.                \}
-.                TOC_HEADER_UNDERLINE_WEIGHT \\$1
-.                if !'\\$2'' .ds $TOC_HEADER_UNDERLINE_GAP \\$2
-.                if !'\\$3'' .ds $TOC_HEADER_RULE_GAP \\$3
-.             \}
-.          \}
-.       \}
-.    \}
-.END
-\#
-.ALIAS BIBLIOGRAPHY_STRING_UNDERSCORE _UNDERLINE
-.ALIAS BIBLIOGRAPHY_STRING_UNDERLINE  _UNDERLINE
-.ALIAS COVER_UNDERLINE                _UNDERLINE
-.ALIAS DOC_COVER_UNDERLINE            _UNDERLINE
-.ALIAS DOCTYPE_UNDERLINE              _UNDERLINE
-.ALIAS ENDNOTES_HEADER_UNDERLINE      _UNDERLINE
-.ALIAS ENDNOTES_HEADER_UNDERSCORE     _UNDERLINE
-.ALIAS ENDNOTE_STRING_UNDERLINE       _UNDERLINE
-.ALIAS ENDNOTE_STRING_UNDERSCORE      _UNDERLINE
-.ALIAS ENDNOTE_TITLE_UNDERLINE        _UNDERLINE
-.ALIAS ENDNOTE_TITLE_UNDERSCORE       _UNDERLINE
-.ALIAS TOC_HEADER_UNDERSCORE          _UNDERLINE
+.
+.ALIAS DOC_COVER_ADVANCE   COVER_ADVANCE
+.ALIAS DOC_COVER_START_POS COVER_ADVANCE
+.ALIAS COVER_ADVANCE       COVER_ADVANCE
+.ALIAS COVER_START_POS     COVER_ADVANCE
 \#
 \# COVERS - WHETHER TO PRINT
 \# -------------------------
@@ -6835,7 +6920,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    nr #DOING_COVER 1
 .    ev COVER
 .    evc 0
-.    TRAP OFF
+.    vpt 0
 .    if \\n[#PAGINATE]=1 \{\
 .       nr #PAGINATION_WAS_ON 1
 .       rr #PAGINATE
@@ -6859,53 +6944,51 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if '\\*[$PDF_DOC_COVER_LABEL]'' \
 .          ds $PDF_DOC_COVER_LABEL Cover:
 .    \}
-.    el \{\
-.       if '\\*[$PDF_COVER_LABEL]'' .ds $PDF_COVER_LABEL Title Page:
-.    \}
+.    el \
+.       if '\\*[$PDF_COVER_LABEL]'' \
+.          ds $PDF_COVER_LABEL Title Page:
+.    ds $COVER_TYPE \\*[DOC_]COVER_
 .    if !r#\\*[DOC_]COVER_START_POS \
 .       nr #\\*[DOC_]COVER_START_POS \\n[#PAGE_LENGTH]/3
-.    if \\n[#PRINT_STYLE]=1 \{\
-.       ie \\n[#SINGLE_SPACE]=1 .vs \\n[#DOC_LEAD]u*2u
-.       el .vs \\n[#DOC_LEAD]u
-.    \}
+.    if \\n[#PRINT_STYLE]=1 \
+.       if !\\n[#SINGLE_SPACE]=1 .vs \\n[#DOC_LEAD]u/2u
 .    if \\n[#PRINT_STYLE]=2 \{\
-.       vs \\n[#DOC_LEAD]u\\*[$\\*[DOC_]COVER_LEAD_ADJ]
-.       nr #\\*[DOC_]COVER_LEAD \\n[#LEAD]
+.       vs \\n[#DOC_LEAD]u+\\*[$\\*[DOC_]COVER_LEAD_ADJ]
+.       nr #\\*[DOC_]COVER_LEAD \\n[.v]
 .    \}
 .    if \\n[.ns] .rs
 .    if '\\$0'DO_COVER' \{\
-.       if \\n[TOC.RELOCATE]==5 \{\
+.       if \\n[TOC.RELOCATE]==5 \
 .          if !rTOC_BH .TOC_BEFORE_HERE
-.       \}
 .    \}
 .    if '\\$0'DO_DOC_COVER' \{\
-.       if \\n[TOC.RELOCATE]==3 \{\
+.       if \\n[TOC.RELOCATE]==3 \
 .          if !rTOC_BH .TOC_BEFORE_HERE
-.       \}
 .    \}
 .    RV_HARD_SET_MARGINS
-.    sp |\\n[#\\*[DOC_]COVER_START_POS]u-1v
-.    if \\n[#\\*[DOC_]COVER_COLOR]=1 \{\
-.       nf
-\m[\\*[$\\*[DOC_]COVER_COLOR]]
-.       EOL
+.\" Cover image
+.    if \\n[#\\*[DOC_]COVER_IMAGE]=1 \{\
+.       DO_\\*[DOC_]COVER_IMAGE
+.       rr #\\*[DOC_]COVER_IMAGE
 .    \}
+.\" Start cover
+.    sp |\\n[#\\*[DOC_]COVER_START_POS]u-1v
+.    if !\\n[#PRINT_STYLE]=1 \
+.       if \\n[#\\*[DOC_]COVER_COLOR]=1 \
+.          gcolor \\*[$\\*[DOC_]COVER_COLOR]
 .    \\*[DOC_]COVER_H_POS
-.    fam \\*[$\\*[DOC_]COVER_TITLE_FAM]
-.    ft  \\*[$\\*[DOC_]COVER_TITLE_FT]
-.    ps  \\*[$\\*[DOC_]COVER_TITLE_PT_SIZE]
-.    ie \\n[#PRINT_STYLE]=1 \{\
-.       ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#DOC_LEAD]u*2u \}
-.       el \{ .vs \\n[#DOC_LEAD]u \}
-.    \}
+.    if \\n[#\\*[DOC_]COVER_TITLE]=2 .ds DOC DOC
+.    fam \\*[$\\*[DOC_]COVER_\\*[DOC]TITLE_FAM]
+.    ft  \\*[$\\*[DOC_]COVER_\\*[DOC]TITLE_FT]
+.    ps  \\*[$\\*[DOC_]COVER_\\*[DOC]TITLE_PT_SIZE]
+.    ie \\n[#PRINT_STYLE]=1 .TYPEWRITER
 .    el .vs \\n[#\\*[DOC_]COVER_LEAD]u
-.    if \\n[#PRINT_STYLE]=1 .TYPEWRITER
-.    if \\n[#\\*[DOC_]COVER_TITLE] \{\
-.       nr PDFHREF.VIEW.LEADING.H \\n[PDFHREF.VIEW.LEADING]
-.       nr PDFHREF.VIEW.LEADING   \\n[nl]u-1v-1000u
-.    \}
-.    if \\n[#\\*[DOC_]COVER_TITLE]=1 \{\
+.    nr PDFHREF.VIEW.LEADING \\n[PDFHREF.VIEW.LEADING.C]
+.\" Title and/or doctitle
+.    if (\\n[#\\*[DOC_]COVER_TITLE]=1):(\\n[#\\*[DOC_]COVER_TITLE]=2) \{\
 .       ie \\n[#PRINT_STYLE]=1 \{\
+.          vs \\n[.v]u*2u
+.          sp -1.5
 .          CAPS
 .          nr #ARG_NUM 0 1
 .          while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
@@ -6914,109 +6997,56 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             as PDF_BM \\*[$TITLE_\\n[#ARG_NUM]]
 .          \}
 .          CAPS OFF
+.          vs
 .       \}
 .       el \{\
-.          nr #ARG_NUM 0 1
-.          while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el \
-.                PRINT "\\*[$TITLE_\\n[#ARG_NUM]]
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$TITLE_\\n[#ARG_NUM]]
-.          \}
-.       \}
-.       PDF_BOOKMARK 1 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[PDF_BM]
-.\" .          PDF_TITLE \\*[PDF_BM]
-.    \}
-.    if \\n[#\\*[DOC_]COVER_TITLE]=2 \{\
-.       ie \\n[#PRINT_STYLE]=1 \{\
-.          CAPS
-.          nr #ARG_NUM 0 1
-.          while \\n[#DOCTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             UNDERSCORE "\\*[$\\*[DOC_]TITLE_\\n[#ARG_NUM]]"
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$\\*[DOC_]TITLE_\\n[#ARG_NUM]]
-.          \}
-.          CAPS OFF
-.       \}
-.       el \{\
-.          nr #ARG_NUM 0 1
-.          while \\n[#DOCTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$\\*[DOC_]TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el .PRINT \\*[$\\*[DOC_]TITLE_\\n[#ARG_NUM]]
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$\\*[DOC_]TITLE_\\n[#ARG_NUM]]
-.          \}
+.          DO_TITLE
+.          rm $PRFX
 .       \}
 .       PDF_BOOKMARK 1 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[PDF_BM]
-.\" .          PDF_TITLE \\*[PDF_BM]
 .    \}
+.\" Chapter
 .    if \\n[#\\*[DOC_]COVER_TITLE]=3 \{\
 .       ie \\n[#PRINT_STYLE]=1 \{\
 .          CAPS
-.          PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+.          UNDERSCORE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]
 .          CAPS OFF
 .       \}
-.       el \{\
-.          ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.             PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[]
-.          \}
-.          el .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
-.       \}
+.       el .DO_CHAPTER
 .       PDF_BOOKMARK 1 \
 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[$CHAPTER_STRING] \\*[$CHAPTER]
-.\" .          PDF_TITLE \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+.       if \\n[#\\*[DOC_]COVER_CHAPTER_CAPS]=1 .CAPS off
 .    \}
+.\" Chapter title
 .    if \\n[#\\*[DOC_]COVER_TITLE]=4 \{\
 .       ie \\n[#PRINT_STYLE]=1 \{\
 .          CAPS
 .          nr #ARG_NUM 0 1
-.             ie \\n[#SINGLE_SPACE]=0 .vs \\n[#DOC_LEAD]u/2u
-.             el .vs \\n[#DOC_LEAD]u
-.             sp
-.          while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             UNDERSCORE "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
-.          \}
+.          vs \\n[.v]u*2u
+.          sp -1.5
+.             while \\n[#CHAPTER_TITLE_NUM]>=\\n[#ARG_NUM] \{\
+.                UNDERSCORE "\\*[$CHAPTER_TITLE_\\n+[#ARG_NUM]]"
+.                if \\n[#ARG_NUM]>1 .as PDF_BM " \"
+.                as PDF_BM \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
+.             \}
 .          CAPS OFF
-.          if \\n[#SINGLE_SPACE]=0 .vs \\n[#DOC_LEAD]u
+.          vs
 .       \}
 .       el \{\
-.          nr #ARG_NUM 0 1
-.          while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el .PRINT \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
-.          \}
+.          ds $PRFX CHAPTER_
+.          DO_TITLE
+.          rm $PRFX
 .       \}
 .       PDF_BOOKMARK 1 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[PDF_BM]
-.\" .          PDF_TITLE \\*[PDF_BM]
 .    \}
+.\" Chapter + chapter title
 .    if \\n[#\\*[DOC_]COVER_TITLE]=5 \{\
 .       ie \\n[#PRINT_STYLE]=1 \{\
 .          CAPS
-.          PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+.          UNDERSCORE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]
 .          CAPS OFF
 .       \}
-.       el \{\
-.          ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.             PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[]
-.          \}
-.          el .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
-.       \}
+.       el .DO_CHAPTER
 .       if !'\\*[$CHAPTER_TITLE_1]'' \{\
 .          ie \\n[#PRINT_STYLE]=1 \{\
 .             ie \\n[#SINGLE_SPACE]=0 .vs \\n[#DOC_LEAD]u/2u
@@ -7024,253 +7054,265 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             sp
 .             nr #ARG_NUM 0 1
 .             while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                UNDERSCORE "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
+.                PRINT "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
 .                if \\n[#ARG_NUM]>1 .as PDF_BM " \"
 .                as PDF_BM \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
 .             \}
 .             if \\n[#SINGLE_SPACE]=0 .vs \\n[#DOC_LEAD]u
 .          \}
 .          el \{\
-.             fam \\*[$\\*[DOC_]COVER_CHAPTER_TITLE_FAM]
-.             ft  \\*[$\\*[DOC_]COVER_CHAPTER_TITLE_FT]
-.             ps  \\*[$\\*[DOC_]COVER_CHAPTER_TITLE_PT_SIZE]
-.             ALD \\n[.v]u/4u \"Put a little space before the chapter title
-.             nr #ARG_NUM 0 1
-.             while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.                   PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]\m[]
-.                \}
-.                el .PRINT \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
-.                if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.                as PDF_BM \\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]
-.             \}
+.             ds $PRFX CHAPTER_
+.             if \\n[#PRINT_STYLE]=2 .nr #CHAPTER+TITLE 1
+.             if !'\\*[$\\*[DOC_]COVER_CHAPTER_TITLE_SPACER]'' \
+.                sp \\*[$\\*[DOC_]COVER_CHAPTER_TITLE_SPACER]
+.             DO_TITLE
+.             rr #CHAPTER+TITLE
+.             rm $PRFX
 .          \}
 .       \}
 .       PDF_BOOKMARK 1 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[PDF_BM]
-.\" .          PDF_TITLE \\*[PDF_BM]
 .    \}
-.    if \\n[#\\*[DOC_]COVER_TITLE]=6 \{\
+.\"  (Doc)covertitle
+.\"    Titles to (doc)covers that are entered with
+.\"      .TITLE DOC_COVER title
+.\"    and included in (DOC)COVER with TITLE get treated as
+.\"    (DOC_)COVERTITLEs, so we define the appropriate strings and
+.\"    registers from their (DOC_)COVER_TITLE equivalents.
+.\"
+.    if (\\n[#\\*[DOC_]COVER_TITLE]=6):(\\n[#\\*[DOC_]COVER_TITLE]=7) \{\
+.       if \\n[#FROM_\\*[DOC_]COVERTITLE] \{\
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_FAM \
+\\*[$\\*[DOC_]COVER_TITLE_FAM]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_FT \
+\\*[$\\*[DOC_]COVER_TITLE_FT]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_COLOR \
+\\*[$\\*[DOC_]COVER_TITLE_COLOR]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_COLOR \
+\\n[#\\*[DOC_]COVER_TITLE_COLOR]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_CAPS  \
+\\n[#\\*[DOC_]COVER_TITLE_CAPS]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_SMALLCAPS  \
+\\n[#\\*[DOC_]COVER_TITLE_SMALLCAPS]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_LEAD  \
+\\*[$\\*[DOC_]COVER_TITLE_LEAD]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_SIZE_CHANGE \
+\\*[$\\*[DOC_]COVER_TITLE_SIZE_CHANGE]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_UNDERLINE \
+\\n[#\\*[DOC_]COVER_TITLE_UNDERLINE]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_UNDERLINE_WEIGHT \
+\\n[#\\*[DOC_]COVER_TITLE_UNDERLINE_WEIGHT]
+.          nr #\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_UNDERLINE_WEIGHT_ADJ \
+\\n[#\\*[DOC_]COVER_TITLE_UNDERLINE_WEIGHT_ADJ]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_UNDERLINE_GAP \
+\\*[$\\*[DOC_]COVER_TITLE_UNDERLINE_GAP]
+.          ds $\\*[DOC_]COVER_\\*[DOC_]COVERTITLE_RULE_GAP \
+\\*[$\\*[DOC_]COVER_TITLE_RULE_GAP]
+.          rr #FROM_\\*[DOC_]COVERTITLE
+.       \}
 .       ie \\n[#PRINT_STYLE]=1 \{\
 .          CAPS
+.          vs \\n[.v]u*2u
 .          nr #ARG_NUM 0 1
-.          while \\n[#\\*[DOC_]COVER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             UNDERSCORE "\\*[$\\*[DOC_]COVER_TITLE_\\n[#ARG_NUM]]"
+.          while \\n[#\\*[DOC_]COVERTITLE_NUM]>=\\n+[#ARG_NUM] \{\
+.             UNDERSCORE "\\*[$\\*[DOC_]COVERTITLE_\\n[#ARG_NUM]]"
 .                if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.                as PDF_BM \\*[$\\*[DOC_]COVER_TITLE_\\n[#ARG_NUM]]
+.                as PDF_BM \\*[$\\*[DOC_]COVERTITLE_\\n[#ARG_NUM]]
 .          \}
+.          vs
 .          CAPS OFF
 .       \}
 .       el \{\
-.          nr #ARG_NUM 0 1
-.          while \\n[#\\*[DOC_]COVER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.             ie \\n[#\\*[DOC_]COVER_TITLE_COLOR]=1 \{\
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_TITLE_COLOR]]\
-\\*[$\\*[DOC_]COVER_TITLE_\\n[#ARG_NUM]]\m[]
-.             \}
-.             el .PRINT \\*[$\\*[DOC_]COVER_TITLE_\\n[#ARG_NUM]]
-.             if \\n[#ARG_NUM]>1 .as PDF_BM " \"
-.             as PDF_BM \\*[$\\*[DOC_]COVER_TITLE_\\n[#ARG_NUM]]
-.          \}
+.          ds $PRFX \\*[DOC_]COVER
+.          DO_TITLE
+.          rm $PRFX
 .       \}
 .       PDF_BOOKMARK 1 \\*[$PDF_\\*[DOC_]COVER_LABEL] \\*[PDF_BM]
-.\" .          PDF_TITLE \\*[PDF_BM]
-.    \}
-.    if \\n[#\\*[DOC_]COVER_TITLE] \{\
-.      nr PDFHREF.VIEW.LEADING \\n[PDFHREF.VIEW.LEADING.H]
-.      rr PDFHREF.VIEW.LEADING.H
 .    \}
+.    ie !'\\*[DOC_]'' \
+.       if !\\n[#DOC_COVER_TITLE] .PDF_BOOKMARK 1 Cover page
+.    el \
+.       if !\\n[#COVER_TITLE] .PDF_BOOKMARK 1 Title page
+.    rr #\\*[DOC_]COVER_TITLE
+.\" Subtitle
 .    if \\n[#\\*[DOC_]COVER_SUBTITLE]=1 \{\
-.       fam \\*[$\\*[DOC_]COVER_SUBTITLE_FAM]
-.       ft  \\*[$\\*[DOC_]COVER_SUBTITLE_FT]
-.       ps  \\*[$\\*[DOC_]COVER_SUBTITLE_PT_SIZE]
-.       if \\n[#PRINT_STYLE]=1 \{\
-.          TYPEWRITER
-.          ie \\n[#SINGLE_SPACE]=0 .vs \\n[#DOC_LEAD]u/2u
-.          el .vs \\n[#DOC_LEAD]u
-.          sp
-.       \}
-.       if \\n[#\\*[DOC_]COVER]=1 \{\
-.          ie !'\\*[$SUBTITLE_\\*[DOC_]COVER_1]'' \{\
-.             nr #SUBTITLES \\n[#SUBTITLE_\\*[DOC_]COVER_NUM]
-.             nr #NEXT_SUBTITLE 0 1
-.             while \\n[#SUBTITLES]>\\n[#NEXT_SUBTITLE] \{\
-.                ie \\n[#\\*[DOC_]COVER_SUBTITLE_COLOR]=1 \{\
-.                   PRINT \
-\m[\\*[$\\*[DOC_]COVER_SUBTITLE_COLOR]]\
-\\*[$SUBTITLE_\\*[DOC_]COVER_\\n+[#NEXT_SUBTITLE]]\m[]
-.                \}
-.                el .PRINT \
-\\*[$SUBTITLE_\\*[DOC_]COVER_\\n+[#NEXT_SUBTITLE]]
-.             \}
-.          \}
-.          el \{\
-.             nr #SUBTITLES \\n[#SUBTITLE_NUM]
-.             nr #NEXT_SUBTITLE 0 1
-.             while \\n[#SUBTITLES]>\\n[#NEXT_SUBTITLE] \{\
-.                ie \\n[#\\*[DOC_]COVER_SUBTITLE_COLOR]=1 \{\
-.                   PRINT \
-\m[\\*[$\\*[DOC_]COVER_SUBTITLE_COLOR]]\\*[$SUBTITLE_\\n+[#NEXT_SUBTITLE]]\m[]
-.                \}
-.                el .PRINT \\*[$SUBTITLE_\\n+[#NEXT_SUBTITLE]]
-.             \}
+.       ie \\n[#PRINT_STYLE]=1 \{\
+.          if !'\\*[$\\*[DOC_]COVER_SUBTITLE_1]'' \
+.             ds $PRFX \\*[DOC_]COVER_
+.          sp 2
+.          nr #ARG_NUM 0 1
+.          while \\n[#\\*[$PRFX]SUBTITLE_NUM]>=\\n+[#ARG_NUM] \{\
+.             PRINT "\\*[$\\*[$PRFX]SUBTITLE_\\n[#ARG_NUM]]"
 .          \}
+.          rm $PRFX
 .       \}
-.       if \\n[#PRINT_STYLE]=1 \{\
-.          if \\n[#SINGLE_SPACE]=0 .vs
+.       el \{\
+.          ie !'\\*[$\\*[DOC_]COVER_SUBTITLE_1]'' .ds $PRFX \\*[DOC_]COVER_SUB
+.          el .ds $PRFX SUB
+.          if !'\\*[$\\*[DOC_]COVER_SUBTITLE_SPACER]'' \
+.             sp \\*[$\\*[DOC_]COVER_SUBTITLE_SPACER]
+.          DO_SUBTITLE
+.          rm $PRFX
 .       \}
 .    \}
-.    if \\n[#PRINT_STYLE]=1 \{\
+.    if \\n[#PRINT_STYLE]=1 \
 .       if !r#\\*[DOC_]COVER_SUBTITLE .sp
-.    \}
+.\" Author (plus attribution)
 .    if \\n[#\\*[DOC_]COVER_AUTHOR]=1 \{\
-.       fam \\*[$\\*[DOC_]COVER_AUTHOR_FAM]
-.       ft  \\*[$\\*[DOC_]COVER_AUTHOR_FT]
-.       ps  \\*[$\\*[DOC_]COVER_AUTHOR_PT_SIZE]
-.       if \\n[#PRINT_STYLE]=1 \{\
-.          TYPEWRITER
-.          ie \\n[#SINGLE_SPACE]=1 .vs \\n[#DOC_LEAD]u
-.          el .vs \\n[#DOC_LEAD]u/2u
+.       ie \\n[#PRINT_STYLE]=1 \
 .          sp
+.       el \{\
+.          ie !'\\*[$\\*[DOC_]COVER_AUTHOR_LEAD]'' \
+.             vs \\*[$\\*[DOC_]COVER_AUTHOR_LEAD]
+.          el .vs \\n[#\\*[DOC_]COVER_LEAD]u
+.       \}
+.       if '\\*[$\\*[DOC_]COVER_ATTRIBUTE_STRING]'' \
+.          ds $\\*[DOC_]COVER_ATTRIBUTE_STRING \
+              \\*[$ATTRIBUTE_STRING]
+.       ie !\\n[#PRINT_STYLE]=1 \{\
+.          fam \\*[$\\*[DOC_]COVER_ATTRIBUTE_FAM]
+.          ft  \\*[$\\*[DOC_]COVER_ATTRIBUTE_FT]
+.          ps \
+\\n[#DOC_PT_SIZE]u\\*[$\\*[DOC_]COVER_ATTRIBUTE_SIZE_CHANGE]
+.          if \\n[#\\*[DOC_]COVER_ATTRIBUTE_COLOR]=1 \
+.             gcolor \\*[$\\*[DOC_]COVER_ATTRIBUTE_COLOR]
+.          if \\n[#\\*[DOC_]COVER_ATTRIBUTE_CAPS]=1 .CAPS
+.          if \\n[#\\*[DOC_]COVER_ATTRIBUTE_SMALLCAPS]=1 .SMALLCAPS
+.          if !'\\*[$\\*[DOC_]COVER_ATTRIBUTE_SPACER]'' \
+.             sp \\*[$\\*[DOC_]COVER_ATTRIBUTE_SPACER]
+.          ie \\n[#\\*[DOC_]COVER_ATTRIBUTE_UNDERLINE] \{\
+.             ds $TITLE_TYPE \\*[DOC_]COVER_ATTRIBUTE
+.             ie \\n[#\\*[DOC_]COVER_ATTRIBUTE_UNDERLINE]=2 \
+.                UNDERSCORE2 \\*[$\\*[DOC_]COVER_ATTRIBUTE_UNDERLINE_GAP] \
+\\*[$\\*[DOC_]COVER_ATTRIBUTE_RULE_GAP] "\\*[$\\*[DOC_]COVER_ATTRIBUTE_STRING]"
+.             el .UNDERSCORE \\*[$\\*[DOC_]COVER_ATTRIBUTE_STRING] 
+.          \}
+.          el .PRINT "\\*[$\\*[DOC_]COVER_ATTRIBUTE_STRING]"
+.          SMALLCAPS off
+.          CAPS off
+.          if \\n[#\\*[DOC_]COVER_ATTRIBUTE_COLOR]=1 \
+.             gcolor
 .       \}
-.       ie d$ATTRIBUTE_STRING_DO_CCOVER \{\
-.          ie \\n[#\\*[DOC_]COVER_ATTRIBUTE_COLOR]=1 \{\
-.             PRINT \
-\&\m[\\*[$\\*[DOC_]COVER_ATTRIBUTE_COLOR]]\
-\\*[$ATTRIBUTE_STRING_\\*[DOC_]COVER]\m[]
-.          \}
-.          el .PRINT \&\\*[$ATTRIBUTE_STRING_\\*[DOC_]COVER]
-.       \}
+.       el \
+.          PRINT "\\*[$\\*[DOC_]COVER_ATTRIBUTE_STRING]"
+.       ie \\n[#PRINT_STYLE]=1 .sp
 .       el \{\
-.          if d$ATTRIBUTE_STRING \{\
-.             ie \\n[#\\*[DOC_]COVER_ATTRIBUTE_COLOR]=1 \{\
-.                PRINT \
-\&\m[\\*[$\\*[DOC_]COVER_ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[]
-.             \}
-.             el .PRINT \&\\*[$ATTRIBUTE_STRING]
-.          \}
+.          if !'\\*[$\\*[DOC_]COVER_AUTHOR_SPACER]'' \
+.             sp \\*[$\\*[DOC_]COVER_AUTHOR_SPACER]
 .       \}
-.       PRINT_AUTHORS
+.       DO_AUTHORS
+.       rm $PRFX
 .    \}
-.    fam \\*[$\\*[DOC_]COVER_DOCTYPE_FAM]
-.    ft  \\*[$\\*[DOC_]COVER_DOCTYPE_FT]
-.    ps  \\*[$\\*[DOC_]COVER_DOCTYPE_PT_SIZE]
-.    sp
+.\" Named doctype string
 .    if \\n[#DOC_TYPE]=3 \{\
 .       if \\n[#\\*[DOC_]COVER_DOCTYPE]=1 \{\
 .          ie \\n[#PRINT_STYLE]=1 \{\
 .             TYPEWRITER
-.             vs \\n[#DOC_LEAD]u
-.             UNDERSCORE2 "\\*[$DOC_TYPE]"
+.             sp 1.5
+.             UNDERSCORE2 3p 2p "\\*[$DOC_TYPE]
 .          \}
 .          el \{\
-.             nr #FROM_\\*[DOC_]COVER 1
-.             ie \\n[#\\*[DOC_]COVER_DOCTYPE_COLOR]=1 \{\
-.                COLOR \\*[$\\*[DOC_]COVER_DOCTYPE_COLOR]
-.                ie \\n[#\\*[DOC_]COVER_UNDERLINE]=1 \
-.                   UNDERSCORE \\*[$\\*[DOC_]COVER_UNDERLINE_GAP] 
"\\*[$DOC_TYPE]"
-.                el .PRINT "\\*[$DOC_TYPE]"
-.             \}
-.             el \{\
-.                ie \\n[#\\*[DOC_]COVER_UNDERLINE]=1 \
-.                   UNDERSCORE \
-\\*[$\\*[DOC_]COVER_UNDERLINE_GAP] "\\*[$DOC_TYPE]"
-.                el .PRINT "\\*[$DOC_TYPE]"
-.             \}
-.             rr #FROM_\\*[DOC_]COVER
-.          \}
+.             fam \\*[$\\*[DOC_]COVER_DOCTYPE_FAM]
+.             ft  \\*[$\\*[DOC_]COVER_DOCTYPE_FT]
+.             ps \
+\\n[#DOC_PT_SIZE]u\\*[$\\*[DOC_]COVER_DOCTYPE_SIZE_CHANGE]
+.             if \\n[#\\*[DOC_]COVER_DOCTYPE_COLOR]=1 \
+.                gcolor \\*[$\\*[DOC_]COVER_DOCTYPE_COLOR]
+.          sp
+.          if \\n[#\\*[DOC_]COVER_DOCTYPE_CAPS]=1 .CAPS
+.          if \\n[#\\*[DOC_]COVER_DOCTYPE_SMALLCAPS]=1 .SMALLCAPS
+.          if !'\\*[$\\*[DOC_]COVER_DOCTYPE_SPACER]'' \
+.             sp \\*[$\\*[DOC_]COVER_DOCTYPE_SPACER]
+.          ie \\n[#\\*[DOC_]COVER_DOCTYPE_UNDERLINE] \{\
+.             ds $TITLE_TYPE \\*[DOC_]COVER_DOCTYPE
+.             ie \\n[#\\*[DOC_]COVER_DOCTYPE_UNDERLINE]=2 \
+.                UNDERSCORE2 \\*[$\\*[DOC_]COVER_DOCTYPE_UNDERLINE_GAP] \
+\\*[$\\*[DOC_]COVER_DOCTYPE_RULE_GAP] "\\*[$DOC_TYPE]"
+.             el .UNDERSCORE "\\*[$DOC_TYPE]" 
+.          \}
+.          el .PRINT "\\*[$DOC_TYPE]"
+.          SMALLCAPS off
+.          CAPS off
+.          if \\n[#\\*[DOC_]COVER_DOCTYPE_COLOR]=1 \
+.             gcolor
+.          \}
+.       \}
+.    \}
+.\" Covertext
+.    if \\n[#\\*[DOC_]COVERTEXT]=1 \{\
+.       nr #DOING_COVERTEXT 1
+.       if !\\n[#\\*[DOC_]COVERTEXT_START_POS] .sp
+.       if \\n[#\\*[DOC_]COVERTEXT]=1 \{\
+.          ev \\*[DOC_]COVERTEXT
+.          nf
+.          \\*[DOC_]COVER_TEXT
+.          ev
 .       \}
+.       rr #\\*[DOC_]COVERTEXT
+.       rm \\*[DOC_]COVER_TEXT
+.       rr #DOING_COVERTEXT
+.       rr #\\*[DOC_]COVERTEXT_START_POS
 .    \}
 .    sp |\\n[#VISUAL_B_MARGIN]u
-.    ie \\n[#PRINT_STYLE]=1 \{\
-.       TYPEWRITER
-.       ie \\n[#SINGLE_SPACE]=1 .vs \\n[#DOC_LEAD]u
-.       el .vs \\n[#DOC_LEAD]u/2u
-.       sp
-.    \}
+.\" Copyright
+.    ie \\n[#PRINT_STYLE]=1 \
+.       if !\\n[#SINGLE_SPACE] .sp
 .    el \{\
 .       fam \\*[$\\*[DOC_]COVER_COPYRIGHT_FAM]
 .       ft  \\*[$\\*[DOC_]COVER_COPYRIGHT_FT]
-.       ps \\*[$\\*[DOC_]COVER_COPYRIGHT_PT_SIZE]
-.       vs \\n[.ps]u+\\n[#\\*[DOC_]COVER_MISC_AUTOLEAD]u
+.       ps \\n[#DOC_PT_SIZE]u\\*[$\\*[DOC_]COVER_COPYRIGHT_SIZE_CHANGE]
 .       nr #COPYRIGHT_V_ADJ \\n[#DOC_LEAD]-\\n[.v]
 .       sp \\n[#COPYRIGHT_V_ADJ]u
 .       rr #COPYRIGHT_V_ADJ
 .    \}
 .    if \\n[#\\*[DOC_]COVER_COPYRIGHT]=1 \{\
-.       if !'\\*[$COPYRIGHT_DOCCOVER]'' \{\
-.          ds $SAVED_COPYRIGHT \\*[$COPYRIGHT]
-.          ds $COPYRIGHT \\*[$COPYRIGHT_DOCCOVER]
-.       \}
 .       QUAD \\*[$\\*[DOC_]COVER_COPYRIGHT_QUAD]
-.       ie \\n[#\\*[DOC_]COVER_COPYRIGHT_COLOR]=1 \{\
-.          PRINT \m[\\*[$\\*[DOC_]COVER_COPYRIGHT_COLOR]]\\*[$COPYRIGHT]\m[]
-.       \}
-.       el .PRINT \\*[$COPYRIGHT]
-.       if d$SAVED_COPYRIGHT .ds $COPYRIGHT \\*[$SAVED_COPYRIGHT]
+.       if \\n[#\\*[DOC_]COVER_COPYRIGHT_COLOR]=1 \
+.          gcolor \\*[$\\*[DOC_]COVER_COPYRIGHT_COLOR]
+.       PRINT \\*[$\\*[DOC_]COVER_COPYRIGHT]
+.       if \\n[#\\*[DOC_]COVER_COPYRIGHT_COLOR]=1 \
+.          gcolor
 .    \}
-.    br
+.    sp |\\n[#VISUAL_B_MARGIN]u
+.\" Misc
 .    if \\n[#\\*[DOC_]COVER_MISC]=1 \{\
 .       if \\n[#PRINT_STYLE]=2 \{\
 .          fam \\*[$\\*[DOC_]COVER_MISC_FAM]
 .          ft  \\*[$\\*[DOC_]COVER_MISC_FT]
-.          ps \\*[$\\*[DOC_]COVER_MISC_PT_SIZE]
-.       \}
-.       QUAD \\*[$\\*[DOC_]COVER_MISC_QUAD]
-.       ie !'\\*[$MISC_\\*[DOC_]COVER_1]'' \{\
-.          nr #MISCS \\n[#MISC_\\*[DOC_]COVER_NUM]
+.          ps \\n[#DOC_PT_SIZE]u\\*[$\\*[DOC_]COVER_MISC_SIZE_CHANGE]
+.          vs \\*[$\\*[DOC_]COVER_MISC_LEAD]
+.          if \\n[#\\*[DOC_]COVER_MISC_COLOR]=1 \
+.             gcolor \\*[$\\*[DOC_]COVER_MISC_COLOR]
+.       \}
+.       ie !'\\*[$\\*[DOC_]COVER_MISC_1]'' \{\
+.          QUAD \\*[$\\*[DOC_]COVER_MISC_QUAD]
+.          da MISC_DIV
 .          nr #NEXT_MISC 0 1
-.          while \\n[#MISCS]>\\n[#NEXT_MISC] \{\
-.             ie \\n[#\\*[DOC_]COVER_MISC_COLOR]=1 \{\
-.                da MISC_DIV
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_MISC_COLOR]]\\*[$MISC_\\*[DOC_]COVER_\\n+[#NEXT_MISC]]\m[]
-.                br
-.                da
-.                rm $MISC_\\*[DOC_]COVER_\\n[#NEXT_MISC]
-.                rm $MISC_\\n[#NEXT_MISC]
-.             \}
-.             el \{\
-.                da MISC_DIV
-.                PRINT \\*[$MISC_\\*[DOC_]COVER_\\n+[#NEXT_MISC]]
-.                br
-.                da
-.                rm $MISC_\\*[DOC_]COVER_\\n[#NEXT_MISC]
-.                rm $MISC_\\n[#NEXT_MISC]
-.             \}
+.          while \\n[#\\*[DOC_]COVER_MISC_LINES]>=\\n+[#NEXT_MISC] \{\
+.             nop \\*[$\\*[DOC_]COVER_MISC_\\n[#NEXT_MISC]]
+.             br
 .          \}
-.          rm $MISC_\\n+[#NEXT_MISC]
+.          da
 .       \}
 .       el \{\
-.          nr #MISCS \\n[#MISC_NUM]
+.          QUAD \\*[$MISC_QUAD]
+.          da MISC_DIV
 .          nr #NEXT_MISC 0 1
-.          while (\\n[#MISCS]>=\\n+[#NEXT_MISC]) \{\
-.             ie \\n[#\\*[DOC_]COVER_MISC_COLOR]=1 \{\
-.                da MISC_DIV
-.                PRINT \
-\m[\\*[$\\*[DOC_]COVER_MISC_COLOR]]\\*[$MISC_\\n[#NEXT_MISC]]\m[]
-.                br
-.                da
-.             \}
-.             el \{\
-.                da MISC_DIV
-.                PRINT \\*[$MISC_\\n[#NEXT_MISC]]
-.                br
-.                da
-.             \}
-.             nr #MISC_DEPTH +\\n[dn]
+.          while \\n[#MISC_LINES]>=\\n+[#NEXT_MISC] \{\
+.             nop \\*[$MISC_\\n[#NEXT_MISC]]
+.             br
 .          \}
+.          da
 .       \}
-.       nr #MISC_DEPTH -\\n[#DOC_LEAD]
-.       sp |\\n[#VISUAL_B_MARGIN]u-\\n[#MISC_DEPTH]u
+.       nr #MISC_V_ADJ \\n[#DOC_LEAD]-\\n[.v]
+.       sp \\n[#MISC_V_ADJ]u
+.       sp -\\n[dn]u+1
 .       nf
 .       MISC_DIV
+.       if \\n[#MISC_COLOR]=1 .gcolor
+.       if \\n[#\\*[DOC_]COVER_MISC_COLOR]=1 .gcolor
 .       rm MISC_DIV
 .       rr #MISC_DEPTH
 .    \}
-.    if '\\$0'DO_COVER'     .nr #COVER_END 1
-.    if '\\$0'DO_DOC_COVER' .nr #DOC_COVER_END 1
 .    if \\n[TOC.RELOCATE]==1 \{\
 .       if !\\n[#COVER_BLANKPAGE] \
 .          if !rTOC_BH .TOC_AFTER_HERE
@@ -7293,31 +7335,18 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    EOL
 .    TRAP
 .    NEWPAGE
+.    if '\\*[$COVER_TYPE]'DOC_COVER_' .ds DOC DOC
+.    rm $COVER_TYPE
 .    if \\n[#PAGINATION_WAS_ON]=1 .nr % +1
-.    if \\n[#DOC_COVER_END]=1 \{\
-.       ie \\n[#DOC_COVER_BLANKPAGE]=1 \{\
-.          if \\n[TOC.RELOCATE] \
-.             if !\\n[#TOC_BH] .TOC_AFTER_HERE
-.          NEWPAGE
-.          rr #DOC_COVER_BLANKPAGE
-.          if !\\n[#DOCCOVERS_COUNT]=1 .nr % -2
-.       \}
-.       el \
-.          if !\\n[#DOCCOVERS_COUNT]=1 .nr #PAGE_NUM_ADJ -1
-.       rr #DOC_COVER_END
-.    \}
-.    if \\n[#COVER_END]=1 \{\
-.       ie \\n[#COVER_BLANKPAGE]=1 \{\
-.          if \\n[TOC.RELOCATE] \
-.             if !\\n[TOC_BH] .TOC_AFTER_HERE
-.          NEWPAGE
-.          rr #COVER_BLANKPAGE
-.          if !\\n[#COVERS_COUNT]=1 .nr % -2
-.       \}
-.       el \
-.          if !\\n[#COVERS_COUNT]=1 .nr #PAGE_NUM_ADJ -1
-.       rr #COVER_END
+.    ie \\n[#\\*[DOC]_COVER_BLANKPAGE]=1 \{\
+.       if \\n[TOC.RELOCATE] \
+.          if !\\n[#TOC_BH] .TOC_AFTER_HERE
+.       NEWPAGE
+.       rr #\\*[DOC]_COVER_BLANKPAGE
+.       if !\\n[#\\*[DOC]COVERS_COUNT]=1 .nr % -2
 .    \}
+.    el \
+.       if !\\n[#\\*[DOC]COVERS_COUNT]=1 .nr #PAGE_NUM_ADJ -1
 .    if !'\\n[.ev]'0' .ev
 .    if \\n[#PAGINATION_WAS_ON] \{\
 .       rr #PAGINATION_WAS_ON
@@ -7341,7 +7370,25 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if \\n[#RECTO_VERSO] .nr #RV_POST_COVER 1
 .END
 \#
-\# Macro to begin document processing
+\# +++START THE DOCUMENT+++
+\#
+\# THE START MACRO
+\# ---------------
+\# *Arguments:
+\#   <none>
+\# *Function:
+\#   Macro to start document processiong.  Reads in default document
+\#   style parameters and any parameters the user has changed before
+\#   issuing START.  Using the information gathered in the opening
+\#   macros, prints appropriate title (or chapter #), subtitle,
+\#   author and document type (if appropriate).
+\# *Notes:
+\#   The .PRINT \& (zero-width character) is required to get the
+\#   subsequent .sp request to work as advertised.
+\#
+\#   The overall document line length, family, and point-size
+\#   are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for
+\#   use in the HEADER and FOOTER macros.
 \#
 .MAC START END
 .    nr #DOCS 1
@@ -7357,12 +7404,11 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       ta \\n[.l]u
 .       sp |1i-1v
 .       CENTER
-.       PRINT "You neglected to enter a PRINTSTYLE"
-.       fl
+.       PRINT "You neglected to enter a PRINTSTYLE."
 .       ab [mom]: PRINTSTYLE missing.  Aborting '\\n[.F]'.
 .    \}
 .    if \\n[#LINENUMBERS]=1 \{\
-.       nn
+.       nm
 .       NUMBER_LINES OFF
 .       nr #LINENUMBERS 2
 .    \}
@@ -7386,29 +7432,12 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if address@hidden .nr @R_MARGIN \\n[#DOC_R_MARGIN]
 .\" Covers and doc covers
 .    if \\n[#DOC_COVERS]=1 \{\
-.       if \\n[#DOC_COVER]=1 \{\
-.          DO_DOC_COVER
-.          rr #DOC_COVER
-.          rr #DOC_COVER_TITLE
-.          rr #DOC_COVER_SUBTITLE
-.          rr #DOC_COVER_AUTHOR
-.          rr #DOC_COVER_DOCTYPE
-.          rr #DOC_COVER_COPYRIGHT
-.          rr #DOC_COVER_MISC
-.       \}
+.       if \\n[#DOC_COVER]=1 .DO_DOC_COVER
 .    \}
 .    if \\n[#COVERS]=1 \{\
-.       if \\n[#COVER]=1 \{\
-.          DO_COVER
-.          rr #COVER
-.          rr #COVER_TITLE
-.          rr #COVER_SUBTITLE
-.          rr #COVER_AUTHOR
-.          rr #COVER_DOCTYPE
-.          rr #COVER_COPYRIGHT
-.          rr #COVER_MISC
-.       \}
+.       if \\n[#COVER]=1 .DO_COVER
 .    \}
+.    nr PDFHREF.VIEW.LEADING \\n[PDFHREF.VIEW.LEADING.T]
 .    if !\\n[#TOC] .RV_HARD_SET_MARGINS
 .    if \\n[#COLUMNS] .COLUMNS \\n[#NUM_COLS] \\n[#GUTTER]u
 .\" Collect TITLE for TOC.
@@ -7443,7 +7472,6 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             rm $TOC_AUTHORS
 .          \}
 .       \}
-.       sp |\\n[#DOCHEADER_ADVANCE]u-\\n[#DOC_LEAD]u
 .       if !'\\*[$TOC_TITLE_ITEM]'' \
 .          PDF_BOOKMARK 1 \\*[$TOC_TITLE_ITEM]
 .       as $TOC_TITLE_ITEM \|
@@ -7465,6 +7493,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    rr #COLLATE
 .    rr #PAGINATION_STATE
 .\" End collate stuff
+.    sp |\\n[#DOCHEADER_ADVANCE]u-\\n[#DOC_LEAD]u
 .    ie \\n[#DOC_HEADER]=0 \{\
 .       if \\n[.ns] .rs
 .       if \\n[#DOC_TYPE]=4 \
@@ -7500,171 +7529,57 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          nr #AUTOLEAD_VALUE  \\n[#SAVED_AUTOLEAD_VALUE]
 .       \}
 .       nr #DOCHEADER_LEAD \\n[#LEAD]
+.       vpt 0
 .\" Default doctype
 .       if \\n[#DOC_TYPE]=1 \{\
-.          if \\n[.ns] .rs
-.          ev DOCHEADER
-.          if \\n[#DOCHEADER_COLOR]=1 \{\
-.             nf
-\m[\\*[$DOCHEADER_COLOR]]
-.             EOL
+.          if \\n[.ns] \{\
+.             rs
+.             nop \&
+.             sp -1
 .          \}
+.          ev DOCHEADER
+.          evc 0
 .          L_MARGIN \\n[#DOC_L_MARGIN]u
 .          LL       \\n[#DOC_L_LENGTH]u
 .          ta \\n[.l]u
-.          if \\n[#PRINT_STYLE]=1 \{\
-.             DOC_HEADER_QUAD
-.             TYPEWRITER
-.             if !\\n[#SINGLE_SPACE] \{\
-.                vs (\\n[#DOC_LEAD]u/2u)+(\\n[.v]u/3u)
-.                sp |\\n[#T_MARGIN]u-1v
-.             \}
-.             if !'\\*[$TITLE_1]'' \{\
-.                CAPS
-.                nr #ARG_NUM 0 1
-.                while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                   UNDERSCORE 3p "\\*[$TITLE_\\n[#ARG_NUM]]"
-.                \}
-.                CAPS OFF
-.             \}
-.             if !'\\*[$SUBTITLE]'' \{\
-.                sp
-.                nr #ARG_NUM 0 1
-.                while \\n[#SUBTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                   UNDERSCORE 3p "\\*[$SUBTITLE_\\n[#ARG_NUM]]"
-.                \}
-.             \}
-.             if !'\\*[$AUTHOR_1]'' \{\
-.                sp
-.                PRINT \&\\*[$ATTRIBUTE_STRING]
-.                nr #AUTHORS \\n[#AUTHOR_NUM]
-.                nr #NEXT_AUTHOR 0 1
-.                if !\\n[#SINGLE_SPACE] .vs (\\n[#DOC_LEAD]u/2u)+(\\n[.v]u/3u)
-.                while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                   PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-.                \}
-.             \}
-.          \}
-.          if \\n[#PRINT_STYLE]=2 \{\
-.             DEFAULT_DOCHEADER
-.          \}
+.          if \\n[#PRINT_STYLE]=1 .DEFAULT_DOCHEADER_TYPEWRITE
+.          if \\n[#PRINT_STYLE]=2 .DEFAULT_DOCHEADER
 .          ev
 .       \}
 .\" Chapter doctype
 .       if \\n[#DOC_TYPE]=2 \{\
 .          if \\n[.ns] .rs
-.          ev DOCHEADER
-.          if \\n[#DOCHEADER_COLOR]=1 \{\
-.             nf
-\m[\\*[$DOCHEADER_COLOR]]
-.             EOL
-.          \}
-.          L_MARGIN \\n[#DOC_L_MARGIN]u
-.          LL       \\n[#DOC_L_LENGTH]u
-.          ta \\n[.l]u
-.          if \\n[#PRINT_STYLE]=1 \{\
-.             CENTER
-.             TYPEWRITER
-.             if !\\n[#SINGLE_SPACE] \{\
-.                vs (\\n[#DOC_LEAD]u/2u)+(\\n[.v]u/3u)
-.                sp |\\n[#T_MARGIN]u-1v
-.             \}
-.             ie '\\*[$CHAPTER]'' \{\
-.                CAPS
-.                ie !'\\*[$CHAPTER_TITLE]'' \{\
-.                   nr #ARG_NUM 0 1
-.                   while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                      UNDERSCORE 3p "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
-.                   \}
-.                \}
-.                el \{\
-.                   CAPS
-.                   UNDERSCORE 3p "\\*[$CHAPTER_STRING]"
-.                \}
-.                CAPS OFF
-.                RLD 1v
-.             \}
-.             el \{\
-.                CAPS
-.                PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
-.                CAPS OFF
-.                if !'\\*[$CHAPTER_TITLE]'' \{\
-.                   sp
-.                   nr #ARG_NUM 0 1
-.                   while \\n[#CHAPTER_TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                      UNDERSCORE 3p "\\*[$CHAPTER_TITLE_\\n[#ARG_NUM]]"
-.                   \}
-.                \}
-.                RLD 1v
-.             \}
-.             vs \\n[#DOC_LEAD]u
-.             if \\n[#SINGLE_SPACE] .sp 2
-.          \}
-.          if \\n[#PRINT_STYLE]=2 \{\
-.             CHAPTER_DOCHEADER
-.             di DOCHEADER_DIVERSION \" This diversion is only
-.             br                     \" necessary to find the depth of the
-.             CHAPTER_DOCHEADER      \" docheader
-.             br
-.             di
-.             nr #DOCHEADER_DEPTH \\n[dn]-\\n[#DOCHEADER_LEAD] \" Storing the 
depth (height) of the diversion
-.                                                              \" in 
#DOCHEADER_DEPTH
-.             rm DOCHEADER_DIVERSION                           \" Removing the 
diversion macro
-.          \}
+.          ev DOCHEADER
+.          evc 0
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
+.          L_MARGIN \\n[#DOC_L_MARGIN]u
+.          LL       \\n[#DOC_L_LENGTH]u
+.          ta \\n[.l]u
+.          if \\n[#PRINT_STYLE]=1 .CHAPTER_DOCHEADER_TYPEWRITE
+.          if \\n[#PRINT_STYLE]=2 .CHAPTER_DOCHEADER
 .          ev
 .       \}
 .\" Named
 .       if \\n[#DOC_TYPE]=3 \{\
-.          if \\n[.ns] .rs
-.          ev DOCHEADER
-.          if \\n[#DOCHEADER_COLOR]=1 \{\
-.             nf
-\m[\\*[$DOCHEADER_COLOR]]
-.             EOL
+.          if \\n[.ns] \{\
+.             rs
+.             nop \&
+.             sp -1
 .          \}
+.          ev DOCHEADER
+.          evc 0
+.          if \\n[#DOCHEADER_COLOR]=1 \
+.             gcolor \\*[$DOCHEADER_COLOR]
 .          L_MARGIN \\n[#DOC_L_MARGIN]u
 .          LL       \\n[#DOC_L_LENGTH]u
 .          ta \\n[.l]u
 .          if \\n[#PRINT_STYLE]=1 \{\
-.             CENTER
-.             TYPEWRITER
-.             if !\\n[#SINGLE_SPACE] \{\
-.                vs (\\n[#DOC_LEAD]u/2u)+(\\n[.v]u/3u)
-.                sp |\\n[#T_MARGIN]u-1v
-.             \}
-.             if !'\\*[$TITLE_1]'' \{\
-.                CAPS
-.                nr #ARG_NUM 0 1
-.                while \\n[#TITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                   UNDERSCORE 3p "\\*[$TITLE_\\n[#ARG_NUM]]"
-.                \}
-.                CAPS OFF
-.             \}
-.             if !'\\*[$SUBTITLE]'' \{\
+.             DEFAULT_DOCHEADER_TYPEWRITE
+.             if !\\n[#NO_PRINT_DOCTYPE] \{\
 .                sp
-.                nr #ARG_NUM 0 1
-.                while \\n[#SUBTITLE_NUM]>=\\n+[#ARG_NUM] \{\
-.                   UNDERSCORE 3p "\\*[$SUBTITLE_\\n[#ARG_NUM]]"
-.                \}
-.             \}
-.             if !'\\*[$AUTHOR_1]'' \{\
-.                sp
-.                PRINT \&\\*[$ATTRIBUTE_STRING]
-.                nr #AUTHORS \\n[#AUTHOR_NUM]
-.                nr #NEXT_AUTHOR 0 1
-.                if !\\n[#SINGLE_SPACE] .vs (\\n[#DOC_LEAD]u/2u)+(\\n[.v]u/3u)
-.                while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-.                   PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-.                \}
+.                UNDERSCORE2 3p 2p "\\*[$DOC_TYPE]"
 .             \}
-.             ie !\\n[#SINGLE_SPACE] .sp 2
-.             el .sp
-.             ie \\n[#DOCTYPE_UNDERLINE] \{\
-.             UNDERSCORE2 3p "\\*[$DOC_TYPE]"
-.             \}
-.             el \
-.                PRINT "\\*[$DOC_TYPE]"
-.             if \\n[#SINGLE_SPACE]=1 .sp
 .          \}
 .          if \\n[#PRINT_STYLE]=2 .NAMED_DOCHEADER
 .          ev
@@ -7689,26 +7604,34 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             ta \\n[.l]u
 .          \}
 .       \}
+.       nr #NO_PRINT_AUTHOR  1
+.       nr #NO_PRINT_DOCTYPE 1
 .    \}
 .    vs \\n[#DOC_LEAD]u
+.    if \\n[#PRINT_STYLE]=1 \
+.       if \\n[#SINGLE_SPACE]=1 .sp
 .    if \\n[#ADJ_DOC_LEAD]=1 \{\
 .       ie \\n[#ADVANCE_FROM_TOP]=0 \
 .          if \\n[#DOC_HEADER]=1 .SHIM
 .       el .rr #ADVANCE_FROM_TOP
 .    \}
 .    mk dc
+.    FAMILY \\*[$DOC_FAM]
 .    QUAD \\*[$DOC_QUAD]
 .    CLEANUP_DEFAULTS
 .    nr #START_FOR_FOOTERS 1
 .    if !\\n[#DOC_TYPE]=4 .em TERMINATE
 .    if \\n[#LINENUMBERS]=2 \{\
-.       NUMBER_LINES RESUME
+.       ie \\n[#PER_SECTION] .NUMBER_LINES 1
+.       el .NUMBER_LINES RESUME
 .       nr #LINENUMBERS 1
 .    \}
 .    if \\n[#RUN_ON]=1 \{\
 .       if \\n[#FN_MARKER_STYLE]=1 .RUNON_WARNING
 .       if \\n[#FN_MARKER_STYLE]=2 .RUNON_WARNING
 .    \}
+.    nr PDFHREF.VIEW.LEADING \\n[PDFHREF.VIEW.LEADING.H]
+.    vpt
 .END
 \#
 .MAC CLEANUP_DEFAULTS END
@@ -7926,7 +7849,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \# *Argument:
 \#   None
 \# *Function:
-\#   Advances to the next "valid" baseline.
+\#   Advances to the next valid baseline.
 \# *Notes:
 \#   If a user plays around with spacing in a doc (say, with ALD),
 \#   it isn't easy to get mom back on track so she can achieve
@@ -7989,10 +7912,16 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if !'\\$1'COVER' .nr #NEITHER 1
 .    if !'\\$1'COVER' \
 .       if !'\\$1'DOC_COVER' .nr #NEITHER 1
-.    if '\\$1'DOC_COVER' \
-.       ds $ATTRIBUTE_STRING_DOC_COVER \\$2
-.    if '\\$1'COVER' \
-.       ds $ATTRIBUTE_STRING_COVER \\$2
+.    if '\\$1'DOC_COVER' \{\
+.       ds $DOC_COVER_ATTRIBUTE_STRING \\$2
+.       if '\\*[$DOC_COVER_ATTRIBUTE_STRING]'' \
+.          ds $DOC_COVER_ATTRIBUTE_STRING \&
+.    \}
+.    if '\\$1'COVER' \{\
+.       ds $COVER_ATTRIBUTE_STRING \\$2
+.       if '\\*[$COVER_ATTRIBUTE_STRING]'' \
+.          ds $COVER_ATTRIBUTE_STRING \&
+.    \}
 .    if \\n[#NEITHER]=1 \{\
 .       ds $ATTRIBUTE_STRING \\$1
 .       rr #NEITHER
@@ -8051,11 +7980,6 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    ds $FINIS_STRING \\$1
 .END
 \#
-.MAC FINIS_STRING_CAPS END
-.    ie '\\$1'' .nr #FINIS_STRING_CAPS 1
-.    el .nr #FINIS_STRING_CAPS 0
-.END
-\#
 \# ====================================================================
 \#
 \# +++RECTO/VERSO+++
@@ -8502,22 +8426,36 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    ALD \\n[#DOC_LEAD]u
 .    CENTER
 .    if \\n[#FINIS_STRING_CAPS]=1 .CAPS
-.    if \\n[#PRINT_STYLE]=1 .PRINT "--\\*[$FINIS_STRING]--
+.    if \\n[#PRINT_STYLE]=1 \{\
+.       ie !\\n[#FINIS_NO_DASHES] .PRINT "--\\*[$FINIS_STRING]--
+.       el .PRINT "\\*[$FINIS_STRING]
+.    \}
 .    if \\n[#PRINT_STYLE]=2 \{\
-.       ie \\n[#FINIS_COLOR] \
-.          PRINT \
-\m[\\*[$FINIS_COLOR]]\v'-\\n[#EM_ADJUST]u'\[em]\v'+\\n[#EM_ADJUST]u'\
-\\*[$FINIS_STRING]\v'-\\n[#EM_ADJUST]u'\*[FU1]\[em]\m[]\c
-.       el .PRINT \
-\v'-\\n[#EM_ADJUST]u'\[em]\v'+\\n[#EM_ADJUST]u'\
-\\*[$FINIS_STRING]\v'-\\n[#EM_ADJUST]u'\*[FU1]\[em]\m[]\c
+.       if \\n[#FINIS_COLOR]=1 .gcolor \\*[$FINIS_COLOR]
+.       ie !\\n[#FINIS_NO_DASHES] .ds $FINIS_DASH \
+\v'-\\n[#EM_ADJUST]u'\[em]\v'+\\n[#EM_ADJUST]u'
+.       el .rm $FINIS_DASH
+.       PRINT \
+\\*[$FINIS_DASH]\\*[$FINIS_STRING]\\*[$FINIS_DASH]\c
 .    \}
 .    EL
+.    if \\n[#FINIS_COLOR]=1 .gcolor
 .    if \\n[#FINIS_STRING_CAPS]=1 .CAPS OFF
 .    ev
 .    pdfsync
 .END
 \#
+.MAC FINIS_STRING_CAPS END
+.    ie '\\$1'' .nr #FINIS_STRING_CAPS 1
+.    el .nr #FINIS_STRING_CAPS 0
+.END
+.
+.ALIAS FINIS_CAPS FINIS_STRING_CAPS
+\#
+.MAC FINIS_NO_DASHES END
+.    nr #FINIS_NO_DASHES 1
+.END
+\#
 \# ====================================================================
 \#
 \# +++HEADERS/FOOTERS+++
@@ -8587,23 +8525,46 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    ds $HDRFTR_LEFT \\$1
 .END
 \#
-\# HDRFTR LEFT CAPS
-\# ----------------
+\# HDRFTR <POSITION> CAPS AND SMALLCAPS
+\# ------------------------------------
 \# *Argument:
 \#   <none> | <anything>
 \# *Function:
-\#   Turns capitalisation of $HDRFTR_LEFT (typically, the author of
-\#   the document) on or off.
+\#   Turns capitalisation of $HDRFTR_<POSITION> on or off.
 \# *Notes:
-\#   Default is on.
+\#   Default for RIGHT (ie AUTHOR) is on.
 \#
-.MAC HDRFTR_LEFT_CAPS END
-.    ie '\\$1'' .nr #HDRFTR_LEFT_CAPS 1
+.MAC CAPS_SMALLCAPS_WARNING END
+.    tm1 "[mom]: At line \\n[.c], both CAPS and SMALLCAPS have been enabled 
for HEADER_\\$1.
+.    tm1 "       CAPS takes precedence.
+.END
+.
+.MAC _HDRFTR_CAPS END
+.    if '\\$0'HEADER_LEFT_CAPS'   .ds POSITION LEFT
+.    if '\\$0'HEADER_CENTER_CAPS' .ds POSITION CENTER
+.    if '\\$0'HEADER_CENTRE_CAPS' .ds POSITION CENTER
+.    if '\\$0'HEADER_RIGHT_CAPS'  .ds POSITION RIGHT
+.    if \\n[#HDRFTR_\\*[POSITION]_SMALLCAPS]=1 \
+.       CAPS_SMALLCAPS_WARNING \\*[POSITION]
+.    ie '\\$1'' .nr #HDRFTR_\\*[POSITION]_CAPS 1
 .    el \{\
-.       nr #HDRFTR_LEFT_CAPS 0
-.       ds $HDRFTR_LEFT_SIZE_CHANGE +0
+.       nr #HDRFTR_\\*[POSITION]_CAPS 0
+.       ds $HDRFTR_\\*[POSITION]_SIZE_CHANGE +0
 .    \}
 .END
+.
+.MAC _HDRFTR_SMALLCAPS END
+.    if '\\$0'HEADER_LEFT_SMALLCAPS'   .ds POSITION LEFT
+.    if '\\$0'HEADER_CENTER_SMALLCAPS' .ds POSITION CENTER
+.    if '\\$0'HEADER_CENTRE_SMALLCAPS' .ds POSITION CENTER
+.    if '\\$0'HEADER_RIGHT_SMALLCAPS'  .ds POSITION RIGHT
+.    if \\n[#HDRFTR_\\*[POSITION]_CAPS]=1 \{\
+.       CAPS_SMALLCAPS_WARNING \\*[POSITION]
+.    \}
+.    ie '\\$1'' .nr #HDRFTR_\\*[POSITION]_SMALLCAPS 1
+.    el \
+.       nr #HDRFTR_\\*[POSITION]_SMALLCAPS 0
+.END
 \#
 \# HDRFTR CENTER
 \# -------------
@@ -8639,8 +8600,8 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    ds $HDRFTR_CENTER \\$1
 .END
 \#
-\# HDRFTR CENTER CAPS
-\# ------------------
+\# HDRFTR CENTER CAPS AND SMALLCAPS
+\# --------------------------------
 \# *Argument:
 \#   <none> | <anything>
 \# *Function:
@@ -8649,12 +8610,13 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \# *Notes:
 \#   Default is on.
 \#
-.MAC HDRFTR_CENTER_CAPS END
-.    ie '\\$1'' .nr #HDRFTR_CENTER_CAPS 1
-.    el \{\
-.       nr #HDRFTR_CENTER_CAPS 0
-.       ds $HDRFTR_CENTER_SIZE_CHANGE +0
+.MAC HDRFTR_CENTER_SMALLCAPS END
+.    if \\n[#HDRFTR_CENTER_SMALLCAPS]=1 \{\
+.       CAPS_SMALLCAPS_WARNING CENTER
 .    \}
+.    ie '\\$1'' .nr #HDRFTR_CENTER_SMALLCAPS 1
+.    el \
+.       nr #HDRFTR_CENTER_SMALLCAPS 0
 .END
 \#
 \# HDRFTR CENTER PADDING
@@ -8675,12 +8637,12 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#   A unit of measure is required.
 \#
 .MAC HDRFTR_CENTER_PAD END
-.    if '\\$1'LEFT'  .nr #HDRFTR_CTR_PAD_LEFT (\\$2)
+.    if '\\$1'LEFT'  .nr #HDRFTR_CTR_PAD_LEFT  (\\$2)
 .    if '\\$1'RIGHT' .nr #HDRFTR_CTR_PAD_RIGHT (\\$2)
 .END
 \#
-\# SWITCH HDRFTR CENTER PADDING SIDE - support macro
-\# --------------------------------
+\# SWITCH HDRFTR CENTER PADDING SIDE (support macro)
+\# -------------------------------------------------
 \# *Argument:
 \#   <none>
 \# *Function:
@@ -8720,8 +8682,8 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    ds $HDRFTR_RIGHT \\$1
 .END
 \#
-\# HDRFTR RIGHT CAPS
-\# -----------------
+\# HDRFTR RIGHT CAPS AND SMALLCAPS
+\# -------------------------------
 \# *Argument:
 \#   <none> | <anything>
 \# *Function:
@@ -8730,12 +8692,13 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \# *Notes:
 \#   Default is on.
 \#
-.MAC HDRFTR_RIGHT_CAPS END
-.    ie '\\$1'' .nr #HDRFTR_RIGHT_CAPS 1
-.    el \{\
-.       nr #HDRFTR_RIGHT_CAPS 0
-.       ds $HDRFTR_RIGHT_SIZE_CHANGE +0
+.MAC HDRFTR_RIGHT_SMALLCAPS END
+.    if \\n[#HDRFTR_RIGHT_SMALLCAPS]=1 \{\
+.       CAPS_SMALLCAPS_WARNING RIGHT
 .    \}
+.    ie '\\$1'' .nr #HDRFTR_RIGHT_SMALLCAPS 1
+.    el \
+.       nr #HDRFTR_RIGHT_SMALLCAPS 0
 .END
 \#
 \# HDRFTR RULE
@@ -8857,7 +8820,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       el .nr #HDRFTR_RULE 0
 .    \}
 .END
-\#
+.
 .ALIAS HDRFTR_RULE_INTERNAL HDRFTR_RULE
 \#
 \# HDRFTR PLAIN
@@ -8870,20 +8833,27 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#   text.  Font for the header/footer becomes roman throughout.
 \#
 .MAC HDRFTR_PLAIN END
-.    HDRFTR_FAMILY        \\*[$DOC_FAM]
-.    HDRFTR_PT_SIZE       \\n[#DOC_PT_SIZE]
-.    HDRFTR_LEFT_FAMILY   \\*[$DOC_FAM]
-.    HDRFTR_LEFT_FONT     R
-.    HDRFTR_LEFT_SIZE     +0
-.    HDRFTR_LEFT_CAPS     OFF
-.    HDRFTR_CENTER_FAMILY \\*[$DOC_FAM]
-.    HDRFTR_CENTER_FONT   R
-.    HDRFTR_CENTER_SIZE   +0
-.    HDRFTR_CENTER_CAPS   OFF
-.    HDRFTR_RIGHT_FAMILY  \\*[$DOC_FAM]
-.    HDRFTR_RIGHT_FONT    R
-.    HDRFTR_RIGHT_SIZE    +0
-.    HDRFTR_RIGHT_CAPS    OFF
+.    rm $HDRFTR_FAMILY
+.    rm #HDRFTR_PT_SIZE
+.    rm $HDRFTR_COLOR
+.    rm $HDRFTR_LEFT_FAMILY
+.    rm $HDRFTR_LEFT_FONT
+.    rm $HDRFTR_LEFT_SIZE_CHANGE
+.    rr #HDRFTR_LEFT_CAPS
+.    rr #HDRFTR_LEFT_SMALLCAPS
+.    rr #HDRFTR_LEFT_COLOR
+.    rm $HDRFTR_CENTER_FAMILY
+.    rm $HDRFTR_CENTER_FONT
+.    rm $HDRFTR_CENTER_SIZE_CHANGE
+.    rr #HDRFTR_CENTER_CAPS
+.    rr #HDRFTR_CENTER_SMALLCAPS
+.    rr #HDRFTR_CENTER_COLOR
+.    rm $HDRFTR_RIGHT_FAMILY
+.    rm $HDRFTR_RIGHT_FONT
+.    rm $HDRFTR_RIGHT_SIZE_CHANGE
+.    rr #HDRFTR_RIGHT_CAPS
+.    rr #HDRFTR_RIGHT_SMALLCAPS
+.    rr #HDRFTR_RIGHT_COLOR
 .END
 \#
 \# SWITCH HDRFTR
@@ -9047,6 +9017,8 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       ds $HDRFTR_RIGHT_SIZE_CHANGE      \\*[$HDRFTR_TMP_SIZE_CHANGE_SWITCH]
 .       nr #HDRFTR_TMP_CAPS_SWITCH        \\n[#HDRFTR_LEFT_CAPS]
 .       nr #HDRFTR_LEFT_CAPS              \\n[#HDRFTR_RIGHT_CAPS]
+.       nr #HDRFTR_TMP_SMALLCAPS_SWITCH   \\n[#HDRFTR_LEFT_SMALLCAPS]
+.       nr #HDRFTR_LEFT_SMALLCAPS         \\n[#HDRFTR_RIGHT_SMALLCAPS]
 .       nr #HDRFTR_RIGHT_CAPS             \\n[#HDRFTR_TMP_CAPS_SWITCH]
 .       ds $HDRFTR_TMP_COLOR_SWITCH       \\*[$HDRFTR_LEFT_COLOR]
 .       ds $HDRFTR_LEFT_COLOR             \\*[$HDRFTR_RIGHT_COLOR]
@@ -9068,14 +9040,14 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       \}
 .       if o .RIGHT
 .       if e .LEFT
-.       if \\n[#RECTO_VERSO]=0    .LEFT
+.       if \\n[#RECTO_VERSO]=0 .LEFT
 .       if \\n[#HDRFTR_LEFT_CAPS] .CAPS
 .       ie '\\*[$HDRFTR_LEFT]'#' .PRINT \\n[#PAGENUMBER]
 .       el \{\
 .          ie !'\\*[$HDRFTR_LEFT]'' .PRINT \\*[$HDRFTR_LEFT]
 .          el .PRINT \&
 .       \}
-.       if \\n[#HDRFTR_LEFT_CAPS]   .CAPS OFF
+.       if \\n[#HDRFTR_LEFT_CAPS] .CAPS OFF
 .       CENTER
 .       if \\n[#HDRFTR_CENTER_CAPS] .CAPS
 .       rt \\n[y]u
@@ -9089,7 +9061,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if \\n[#HDRFTR_CENTER_CAPS] .CAPS OFF
 .       if o .LEFT
 .       if e .RIGHT
-.       if \\n[#RECTO_VERSO]=0     .RIGHT
+.       if \\n[#RECTO_VERSO]=0 .RIGHT
 .       if \\n[#HDRFTR_RIGHT_CAPS] .CAPS
 .       rt \\n[y]u
 .       ie '\\*[$HDRFTR_RIGHT]'#' .PRINT \\n[#PAGENUMBER]
@@ -9116,6 +9088,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if o .LEFT
 .       if e .RIGHT
 .       if \\n[#RECTO_VERSO]=0 .LEFT
+.       if \\n[#HDRFTR_LEFT_SMALLCAPS] .SMALLCAPS
 .       if \\n[#HDRFTR_LEFT_CAPS] .CAPS
 .       ie '\\*[$HDRFTR_LEFT]'#' \{\
 .          ie \\n[#HDRFTR_LEFT_COLOR]=1 \
@@ -9133,6 +9106,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          el .nop \&
 .       \}
 .       if \\n[#HDRFTR_LEFT_CAPS] .CAPS OFF
+.       if \\n[#HDRFTR_LEFT_SMALLCAPS] .SMALLCAPS OFF
 .       fam     \\*[$HDRFTR_CENTER_FAM]
 .       ft      \\*[$HDRFTR_CENTER_FT]
 .       ps      \\n[#HDRFTR_PT_SIZE]u\\*[$HDRFTR_CENTER_SIZE_CHANGE]
@@ -9143,6 +9117,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          di
 .       \}
 .       CENTER
+.       if \\n[#HDRFTR_CENTER_SMALLCAPS] .SMALLCAPS
 .       if \\n[#HDRFTR_CENTER_CAPS] .CAPS
 .       rt \\n[y]u
 .       ie '\\*[$HDRFTR_CENTER]'#' \{\
@@ -9163,6 +9138,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          el .PRINT \&
 .       \}
 .       if \\n[#HDRFTR_CENTER_CAPS] .CAPS OFF
+.       if \\n[#HDRFTR_CENTER_SMALLCAPS] .SMALLCAPS OFF
 .       fam \\*[$HDRFTR_RIGHT_FAM]
 .       ft  \\*[$HDRFTR_RIGHT_FT]
 .       ps  \\n[#HDRFTR_PT_SIZE]u\\*[$HDRFTR_RIGHT_SIZE_CHANGE]
@@ -9175,6 +9151,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if o .RIGHT
 .       if e .LEFT
 .       if \\n[#RECTO_VERSO]=0 .RIGHT
+.       if \\n[#HDRFTR_RIGHT_SMALLCAPS] .SMALLCAPS
 .       if \\n[#HDRFTR_RIGHT_CAPS] .CAPS
 .       rt \\n[y]u
 .       ie '\\*[$HDRFTR_RIGHT]'#' \{\
@@ -9193,6 +9170,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          el .PRINT \&
 .       \}
 .       if \\n[#HDRFTR_RIGHT_CAPS] .CAPS OFF
+.       if \\n[#HDRFTR_RIGHT_SMALLCAPS] .SMALLCAPS OFF
 .    \}
 .    if \\n[#HDRFTR_RULE] .HDRFTR_RULE_INTERNAL
 .    br
@@ -9456,6 +9434,16 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       \}
 .       if \\n[#PRINT_STYLE]=2 .sp \\n[#Q_LEAD_DIFF]u
 .    \}
+.    if \\n[#RESET_FN_COUNTERS]=1 \{\
+.       rr #RESET_FN_COUNTERS
+.       PROCESS_FN_IN_DIVER
+.       nr #FN_COUNT \\n[#SAVED_FN_COUNT] 1
+.       if \\n[#COLUMNS]=1 .nr #FN_COUNT_FOR_COLS 
\\n[#SAVED_FN_COUNT_FOR_COLS] 1
+.       ie \\n[#RESET_FN_NUMBER]=1 .nr #FN_NUMBER \\n[#SAVED_FN_NUMBER] 1
+.       el .nr #FN_NUMBER \\n[#FN_NUMBER] 1
+.       rm FN_IN_DIVER
+.       if dRUNON_FN_IN_DIVER .rm RUNON_FN_IN_DIVER
+.    \}
 .    if \\n[#EPIGRAPH] \{\
 .       ie \\n[#TAB_ACTIVE] .TAB \\n[#CURRENT_TAB]
 .       el \{\
@@ -9490,10 +9478,10 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       ll \\n[#COL_L_LENGTH]u
 .       ta \\n[.l]u
 .       if \\n[#QUOTE] \{\
-.          ie \\n[#Q_OFFSET_VALUE] \
-.             po +(\\n[#PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u)
+.          ie \\n[#\\*[BQ]_OFFSET_VALUE] \
+.             po +(\\n[#PP_INDENT]u*\\n[#\\*[BQ]_OFFSET_VALUE]u)
 .          el \
-.             po +\\*[$Q_OFFSET_VALUE]
+.             po +\\*[$\\*[BQ]_OFFSET_VALUE]
 .       \}
 .       if \\n[#EPIGRAPH] \{\
 .          if \\n[#EPI_ACTIVE] \{\
@@ -9507,16 +9495,6 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          el .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u+\\*[$EPI_OFFSET_VALUE]
 .       \}
 .    \}
-.    if \\n[#RESET_FN_COUNTERS]=1 \{\
-.       rr #RESET_FN_COUNTERS
-.       PROCESS_FN_IN_DIVER
-.       nr #FN_COUNT \\n[#SAVED_FN_COUNT] 1
-.       if \\n[#COLUMNS]=1 .nr #FN_COUNT_FOR_COLS 
\\n[#SAVED_FN_COUNT_FOR_COLS] 1
-.       ie \\n[#RESET_FN_NUMBER]=1 .nr #FN_NUMBER \\n[#SAVED_FN_NUMBER] 1
-.       el .nr #FN_NUMBER \\n[#FN_NUMBER] 1
-.       rm FN_IN_DIVER
-.       if dRUNON_FN_IN_DIVER .rm RUNON_FN_IN_DIVER
-.    \}
 .    rr #FROM_HEADER
 .    rr #DEFER_SPACE_ADDED
 .    if !\\n[#FN_DEPTH] .if r #DIVERTED .rr #DIVERTED
@@ -9579,6 +9557,9 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       rr tbl*interrupted
 .      \}
 .    el address@hidden
+.    if \\n[#QUOTE]=1 \
+.       if '\\*[$Q_QUAD]'LEFT' .po \\n[#Q_OFFSET]u
+.    if \\n[#QUOTE]=2 .po \\n[#BQ_OFFSET]u
 .END
 \#
 \# ====================================================================
@@ -9649,6 +9630,10 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#   FINAL respects PAGENUMBER.
 \#
 .MAC FOOTER END
+.    if \\n[#DOING_COVERTEXT] \{\
+.       tm1 "[mom]: COVERTEXT exceeds cover page depth.
+.       ab   [mom]: Aborting '\\n[.F]'.
+.    \}
 .    vpt 0
 .    rr #LB_4_HD
 .    rr #QUOTE_4_HD
@@ -9846,16 +9831,16 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .END
 \#
 .MAC PRINT_FOOTER END
-.   br
 .\" Have to change position of FN_OVERFLOW_TRAP or it screws up the
 .\" placement of page numbers (or footers).  It's reset to its original
 .\" position at the end of the macro.
 .    if r #SAVED_FOOTER_POS .ch FOOTER \\n[#SAVED_FOOTER_POS]u
 .    rr #SAVED_FOOTER_POS
+.    vpt 0
+.    sp -1
 .    ie (\\n[#FOOTER_MARGIN]+\\n[.v]>\\n[#B_MARGIN]) .nr #SKIP_FOOTER 1
 .    el \{\
 .       ev FOOTER
-.       vpt 0
 .       ie n \
 .          sp |\\n[#PAGE_LENGTH]u-\\n[#FOOTER_MARGIN]u
 .       el \
@@ -10000,7 +9985,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#
 \# ====================================================================
 \#
-\# +++HEADS+++
+\# +++HEADINGS+++
 \#
 .char \[hd-num-spacer]     \0
 .char \[parahead-spacer]   \~\~
@@ -10023,7 +10008,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .MAC HEADING END
 .    if !\B'\\$1' \{\
 .       tm1 "[mom]: The first argument to \\$0 must be a numeric heading level.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .    \}
 .    if r #QUOTE     .rr #QUOTE
 .    if r #END_QUOTE .rr #END_QUOTE
@@ -10072,7 +10057,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       if \\n[#NUM_ARGS]>1 \{\
 .          tm1 "[mom]: Error at line \\n[.c], \\$0.
 .          tm1 "       PARAHEAD may not be given more than 1 line of text.
-.          ab  Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.          ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .       \}
 .       vpt 0
 .       if !(\\n[#PRINT_STYLE]=1)&(\\n[#SINGLE_SPACE]=1) .sp -1v
@@ -10092,7 +10077,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if \\n[#PRINT_STYLE]=2 \{\
 .       fam \\*[$HEAD_\\n[#LEVEL]_FAM]
 .       ft  \\*[$HEAD_\\n[#LEVEL]_FT]
-.       ps  \\n[#DOC_PT_SIZE]u+\\*[$HEAD_\\n[#LEVEL]_SIZE]
+.       ps  \\n[#DOC_PT_SIZE]u\\*[$HEAD_\\n[#LEVEL]_SIZE]
 .       nf
 .    \}
 .\" Numbering
@@ -10255,6 +10240,14 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       CAPS 
 .       nr #CAPS_OFF 1
 .    \}
+.    if \\n[#SMALLCAPS_ON] \{\
+.       SMALLCAPS OFF
+.       nr #SMALLCAPS_RESTORE 1
+.    \}
+.    if \\n[#HEAD_\\n[#LEVEL]_SMALLCAPS] \{\
+.       SMALLCAPS 
+.       nr #SMALLCAPS_OFF 1
+.    \}
 .    if !'\\*[$HEAD_\\n[#LEVEL]_COLOR]'' \
 .       COLOR \\*[$HEAD_\\n[#LEVEL]_COLOR]
 .    nop \X'ps: exec decornone'\c
@@ -10385,6 +10378,14 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       CAPS
 .       rr #CAPS_RESTORE
 .    \}
+.    if \\n[#SMALLCAPS_OFF] \{\
+.       SMALLCAPS OFF
+.       rr #SMALLCAPS_OFF
+.    \}
+.    if \\n[#SMALLCAPS_RESTORE] \{\
+.       SMALLCAPS
+.       rr #SMALLCAPS_RESTORE
+.    \}
 .    ev
 .    rm $HD_NUM
 .    rr #HD_NUM_INDENT
@@ -10443,7 +10444,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .MAC HEADING_STYLE END
 .    if !\B'\\$1' \{\
 .       tm1 "[mom]: The first argument to \\$0 must be a numeric heading level.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .    \}
 .    nr #LEVEL \\$1
 .    if \\n[#FROM_OLDSTYLE] .nr #LEVEL_\\n[#LEVEL]_SET 1
@@ -10458,13 +10459,13 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          shift
 .          if '\\$1'' \{\
 .             tm1 "[mom]: The UNDERSCORE argument to \\$0 requires a rule 
weight.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          ds $HEAD_\\n[#LEVEL]_UL_WEIGHT \\$1
 .          shift
 .          if '\\$1'' \{\
 .             tm1 "[mom]: The UNDERSCORE argument to \\$0 requires a rule gap.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          ds $HEAD_\\n[#LEVEL]_UL_GAP    \\$1
 .          shift
@@ -10478,25 +10479,26 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          shift
 .          if '\\$1'' \{\
 .             tm1 "[mom]: The UNDERSCORE2 argument to \\$0 requires a rule 
weight.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          ds $HEAD_\\n[#LEVEL]_UL2_WEIGHT \\$1
 .          shift
 .          if '\\$1'' \{\
 .             tm1 "[mom]: The UNDERSCORE2 argument to \\$0 requires a rule gap.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          ds $HEAD_\\n[#LEVEL]_UL2_GAP_1  \\$1
 .          shift
 .          if '\\$1'' \{\
 .             tm1 "[mom]: The UNDERSCORE2 argument to \\$0 requires an 
inter-rule gap.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          ds $HEAD_\\n[#LEVEL]_UL2_GAP_2  \\$1
 .          shift
 .       \}
 .       if '\\$1'NO_UNDERSCORE2' \{\
 .          rr #HEAD_\\n[#LEVEL]_UNDERSCORE2
+.          shift
 .       \}
 .       if '\\$1'SPACE_AFTER' \{\
 .          nr #HEAD_\\n[#LEVEL]_SPACE_AFTER 1
@@ -10550,6 +10552,14 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          rr #HEAD_\\n[#LEVEL]_CAPS
 .          shift
 .       \}
+.       if '\\$1'SMALLCAPS' \{\
+.          nr #\\*[$TOC]HEAD_\\n[#LEVEL]_SMALLCAPS 1
+.          shift
+.       \}
+.       if '\\$1'NO_SMALLCAPS' \{\
+.          rr #HEAD_\\n[#LEVEL]_SMALLCAPS
+.          shift
+.       \}
 .       if '\\$1'NUMBER' \{\
 .          nr #NUMBER_HEAD_\\n[#LEVEL] 1
 .          nr #HEAD_\\n[#LEVEL]_NUM 0 1
@@ -10569,7 +10579,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    rr #LEVEL
 .    if d$TOC .rm $TOC
 .END
-\#
+.
 .ALIAS TOC_ENTRY_STYLE HEADING_STYLE
 \#
 \# OLDSTYLE HEADINGS
@@ -10708,7 +10718,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    tm1 "       Use 'HEADING <level> PARAHEAD <text>' instead.
 .    tm1 "       You will probably want to invoke HEADING_STYLE to set
 .    tm1 "       the type parameters for the parahead.  See docs.
-.    ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.    ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .END
 \#
 \# Wrapper macro for oldstyle NUMBER_HEADS, NUMBER_SUBHEADS...
@@ -10717,7 +10727,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if '\\$0'NUMBER_PARAHEADS' \{\
 .       tm1 "[mom]: \\$0 is no longer a valid macro.
 .       tm1 "       Use 'HEADING_STYLE <level> NUMBER' instead.  See docs.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .       return
 .    \}
 .    if '\\$0'NUMBER_HEADS'       .nr level 1
@@ -10738,7 +10748,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    rm $PARAM
 .    rm $SWITCH
 .END
-\#
+.
 .ALIAS NUMBER_HEADS       HEADING_NUMBERS
 .ALIAS NUMBER_SUBHEADS    HEADING_NUMBERS
 .ALIAS NUMBER_SUBSUBHEADS HEADING_NUMBERS
@@ -10786,7 +10796,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    tm1 "[mom]: PREFIX_CHAPTER_NUMBER cannot determine a chapter number.
 .    tm1 "       Enter the current chapter number as a digit after
 .    tm1 "       PREFIX_CHAPTER_NUMBER.
-.    ab Aborting '\\n[.F]', line \\n[.c].
+.    ab   [mom]: Aborting '\\n[.F]', line \\n[.c].
 .END
 \#
 \# ====================================================================
@@ -10962,6 +10972,11 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#
 .MAC PP END
 .    br
+.    if \\n[#COVERTEXT_PP] \{\
+.       ie \\n[#INDENT_ACTIVE] .ti \\n[#INDENT]u+\\n[#PP_INDENT]u
+.       el .ti \\n[#PP_INDENT]u
+.       return
+.    \}
 .    if \\n[defer-pp-ind-reset] \{\
 .       sp -1
 .       rr defer-pp-ind-reset
@@ -11170,14 +11185,18 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#  Default is 3 for typeset; 2 for typewrite.
 \#
 .MAC QUOTE_INDENT END
-.    rr #Q_OFFSET_VALUE
-.    rm $Q_OFFSET_VALUE
+.    if '\\$0'BLOCKQUOTE_INDENT' .ds BQ BQ
+.    if '\\$0'QUOTE_INDENT'      .ds BQ Q
+.    rr #\\*[BQ]_OFFSET_VALUE
+.    rm $\\*[BQ]_OFFSET_VALUE
 .    ds $EVAL_QI_ARG \\$1
 .    substring $EVAL_QI_ARG -1
-.    ie \B'\\*[$EVAL_QI_ARG]' .nr #Q_OFFSET_VALUE \\$1
-.    el .ds $Q_OFFSET_VALUE \\$1
-.    rm $EVAL_QI_ARG
+.    ie \B'\\*[$EVAL_QI_ARG]' .nr #\\*[BQ]_OFFSET_VALUE \\$1
+.    el .ds $\\*[BQ]_OFFSET_VALUE \\$1
+.    rm BQ
 .END
+.
+.ALIAS BLOCKQUOTE_INDENT QUOTE_INDENT
 \#
 \# QUOTE_AUTOLEAD
 \# --------------
@@ -11193,7 +11212,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if '\\$0'ENDNOTE_QUOTE_AUTOLEAD'      .nr #EN_Q_AUTOLEAD (p;\\$1)
 .    if '\\$0'ENDNOTE_BLOCKQUOTE_AUTOLEAD' .nr #EN_BQ_AUTOLEAD (p;\\$1)
 .END
-\#
+.
 .ALIAS BLOCKQUOTE_AUTOLEAD         QUOTE_AUTOLEAD
 .ALIAS ENDNOTE_QUOTE_AUTOLEAD      QUOTE_AUTOLEAD
 .ALIAS ENDNOTE_BLOCKQUOTE_AUTOLEAD QUOTE_AUTOLEAD
@@ -11252,8 +11271,10 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       nr #IN_DIVER 1
 .       nr #QUOTE 1
 .       di P_QUOTE
-.       ie !'\\*[$Q_OFFSET_VALUE]'' .ll 
\\n[#L_LENGTH]u-(\\*[$Q_OFFSET_VALUE]*2u)
-.       el .ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+.       if '\\*[$Q_QUAD]'LEFT' \{\
+.          ie !'\\*[$Q_OFFSET_VALUE]'' .ll \\n[#L_LENGTH]u-\\*[$Q_OFFSET_VALUE]
+.          el .ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u)
+.       \}
 .       ta \\n[.l]u
 .       if \\n[#COLUMNS] \{\
 .          ie \\n[#Q_OFFSET_VALUE] \
@@ -11284,12 +11305,11 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             \}
 .          \}
 .          nr #Q_LEAD_REAL \\n[.v]
-.          LEFT
 .          if \\n[#QUOTE_COLOR]=1 \{\
 .             nf
-\m[\\*[$QUOTE_COLOR]]
-.             EOL
+.             gcolor \\*[$QUOTE_COLOR]
 .          \}
+.          \\*[$Q_QUAD]
 .       \}
 .       if \\n[#LINENUMBERS]=2 \{\
 .          ie \\n[#QUOTE_LN]=1 \{\
@@ -11364,7 +11384,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .             CODE_FONT R
 .             ft \\*[$CODE_FT]
 .          \}
-.          if \\n[#CODE_COLOR]=1 .COLOR \\*[$CODE_COLOR]
+.          if \\n[#CODE_COLOR]=1 .gcolor \\*[$CODE_COLOR]
 .          char ' \[aq]
 .          if !\\n[#CODE_SIZE_ADJ]=0 .ps 
\\n[#PT_SIZE]u*\\n[#CODE_SIZE_ADJ]u/100u
 .          if \\n[#SQ_ON] \{\
@@ -11391,46 +11411,10 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          rr #SQ_WAS_ON
 .          SMARTQUOTES
 .       \}
-.       if \\n[#QUOTE] .sp 1v
+.       if \\n[#QUOTE] .sp
 .    \}
 .END
 \#
-\# CODE_FAMILY
-\# -----------
-\# *Arguments:
-\#   <family>
-\# *Function:
-\#   Creates register #CODE_FAM and string $CODE_FAM for use by CODE.
-\#
-.MAC CODE_FAMILY END
-.    nr #CODE_FAM 1
-.    ds $CODE_FAM \\$1
-.END
-\#
-\# CODE_FONT
-\# ---------
-\# *Arguments:
-\#   <font>
-\# *Function:
-\#   Creates register #CODE_FT and string $CODE_FT for use by CODE.
-\#
-.MAC CODE_FONT END
-.    nr #CODE_FT 1
-.    ds $CODE_FT \\$1
-.END
-\#
-\# CODE_SIZE
-\# ---------
-\# *Arguments:
-\#   <percentage to zoom code font>
-\# *Function:
-\#   Creates register #CODE_SIZE_ADJ, used in CODE to zoom the
-\#   CODE_FONT to a percentage of the current point size.
-\#
-.MAC CODE_SIZE END
-. nr #CODE_SIZE_ADJ \\$1
-.END
-\#
 \# ---Blockquotes---
 \#
 \# BLOCKQUOTE
@@ -11450,6 +11434,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 \#
 .MAC BLOCKQUOTE END
 .    br
+.    if \\n[#PP]>0 .rr #START
 .    if \\n[#LINENUMBERS]=1 \{\
 .       nr #LINENUMBERS 2
 .       nr #NEXT_LN \\n[ln]
@@ -11470,48 +11455,48 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          \}
 .       \}
 .       di B_QUOTE
-.       ie !'\\*[$Q_OFFSET_VALUE]'' .ll 
\\n[#L_LENGTH]u-(\\*[$Q_OFFSET_VALUE]*2u)
-.       el .ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+.       ie !'\\*[$BQ_OFFSET_VALUE]'' .ll 
\\n[#L_LENGTH]u-(\\*[$BQ_OFFSET_VALUE]*2u)
+.       el .ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .       if \\n[in-cutaround] .nr #PP_INDENT \\n[.i]+\\n[pp-ind-tmp]
 .       if \\n[#ENDNOTE] \{\
 .          if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-.             ie r#Q_OFFSET_VALUE \
+.             ie r#BQ_OFFSET_VALUE \
 .                ll \
-\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .             el \
 .                ll \
-\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\*[$Q_OFFSET_VALUE]*2u)
+\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\*[$BQ_OFFSET_VALUE]*2u)
 .          \}
 .          if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
-.             ie r#Q_OFFSET_VALUE \
-.                ll 
\\n[#L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+.             ie r#BQ_OFFSET_VALUE \
+.                ll 
\\n[#L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .             el \
-.                ll \\n[#L_LENGTH]u-(\\*[$Q_OFFSET_VALUE]u*2u)
+.                ll \\n[#L_LENGTH]u-(\\*[$BQ_OFFSET_VALUE]u*2u)
 .          \}
 .       \}
 .       ta \\n[.l]u
 .       CHECK_INDENT
 .       if \\n[#COLUMNS] \{\
-.          ie r#Q_OFFSET_VALUE \
+.          ie r#BQ_OFFSET_VALUE \
 .             ll \
-\\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+\\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .          el \
-.             ll \\n[#COL_L_LENGTH]u-(\\*[$Q_OFFSET_VALUE]*2u)
+.             ll \\n[#COL_L_LENGTH]u-(\\*[$BQ_OFFSET_VALUE]*2u)
 .          if \\n[#ENDNOTE] \{\
 .             if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-.                ie r#Q_OFFSET_VALUE \
+.                ie r#BQ_OFFSET_VALUE \
 .                   ll \
-\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .                el \
 .                   ll \
-\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\*[$Q_OFFSET_VALUE]*2u)
+\\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\*[$BQ_OFFSET_VALUE]*2u)
 .             \}
 .             if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
-.                ie r#Q_OFFSET_VALUE \
+.                ie r#BQ_OFFSET_VALUE \
 .                   ll \
-\\n[#COL_L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+\\n[#COL_L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#BQ_OFFSET_VALUE]u*2u))
 .                el \
-.                   ll \\n[#COL_L_LENGTH]u-(\\*[$Q_OFFSET_VALUE]*2u)
+.                   ll \\n[#COL_L_LENGTH]u-(\\*[$BQ_OFFSET_VALUE]*2u)
 .             \}
 .          \}
 .          ta \\n[.l]u
@@ -11542,8 +11527,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          nr #Q_LEAD_REAL \\n[.v]
 .          if \\n[#BQUOTE_COLOR]=1 \{\
 .             nf
-\m[\\*[$BQUOTE_COLOR]]
-.             EOL
+.             gcolor \\*[$BQUOTE_COLOR]
 .          \}
 .          QUAD \\*[$BQUOTE_QUAD]
 .          nr #DIVERSIONS_HY_MARGIN (p;\\n[.ps]u*2.75)/1000
@@ -11574,7 +11558,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          \}
 .       \}
 .    \}
-.    el .DO_QUOTE
+.    el .DO_BLOCKQUOTE
 .END
 \#
 \# DO QUOTE
@@ -11597,10 +11581,12 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .       rr #DIVER_LN_OFF
 .    \}
 .    di
+.    if '\\$0'DO_BLOCKQUOTE' .ds BQ BQ
+.    if '\\$0'DO_QUOTE'      .ds BQ Q
 .    if \\n[in-cutaround] \{\
 .       if \\n[dn]>\\n[.t] \{\
 .          tm1 "[mom]: Blockquote depth exceeds cutaround depth."
-.          ab Aborting at line \\n[.c].
+.          ab   [mom]: Aborting at line \\n[.c].
 .       \}
 .    \}
 .    rr #IN_DIVER
@@ -11616,13 +11602,13 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    nr #DONE_ONCE 0 1
 .    REMOVE_INDENT
 .    ev
-.    nr #Q_DEPTH (\\n[#DIVER_DEPTH])
+.    nr #Q_DEPTH \\n[#DIVER_DEPTH]
 .    nr #Q_LEAD_DIFF \\n[#LEAD]-\\n[#Q_LEAD_REAL]
 .    if !\\n[.v]=\\n[#Q_LEAD_REAL] \{\
 .       if !\\n[#NO_SHIM] \{\
 .          br
 .          nr #CALCULATE_ONLY 1
-.          nr #CURRENT_V_POS \\n[nl]+\\n[#Q_DEPTH]-\\n[#Q_LEAD_DIFF]u
+.          nr #CURRENT_V_POS \\n[nl]+\\n[#Q_DEPTH]
 .          SHIM
 .          rr #CALCULATE_ONLY
 .          nr #Q_SPACE_ADJ (\\n[#SHIM]/2)
@@ -11675,22 +11661,28 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          \}
 .       \}
 .    \}
-.    ie !'\\*[$Q_OFFSET_VALUE]'' .nr #Q_OFFSET 
\\n[#L_MARGIN]+\\*[$Q_OFFSET_VALUE]
+.    ie !'\\*[$\\*[BQ]_OFFSET_VALUE]'' \
+.       nr #\\*[BQ]_OFFSET \\n[#L_MARGIN]+\\*[$\\*[BQ]_OFFSET_VALUE]
 .    el \
-.       nr #Q_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE])
+.       nr #\\*[BQ]_OFFSET 
\\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#\\*[BQ]_OFFSET_VALUE])
 .    if \\n[#COLUMNS] \{\
-.       ie r#Q_OFFSET_VALUE \
-.          nr #Q_OFFSET \
-\\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE])
-.       el .nr #Q_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+\\*[$Q_OFFSET_VALUE]
+.       ie r#\\*[BQ]_OFFSET_VALUE \
+.          nr #\\*[BQ]_OFFSET \
+\\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#\\*[BQ]_OFFSET_VALUE])
+.       el .nr #\\*[BQ]_OFFSET 
\\n[#COL_\\n[#COL_NUM]_L_MARGIN]+\\*[$\\*[BQ]_OFFSET_VALUE]
 .    \}
 .    if !\\n[#ENDNOTE] \{\
-.       po \\n[#Q_OFFSET]u
-.       if '\\n[.z]'FLOAT*DIV' \!.po \\n[#Q_OFFSET]u
+.       ie '\\*[BQ]'Q' \{\
+.          if '\\*[$Q_QUAD]'LEFT' \
+.             po \\n[#Q_OFFSET]u
+.             if '\\n[.z]'FLOAT*DIV' \!.po \\n[#Q_OFFSET]u
+.       \}
+.       el .po \\n[#\\*[BQ]_OFFSET]u
+.       if '\\n[.z]'FLOAT*DIV' \!.po \\n[#\\*[BQ]_OFFSET]u
 .    \}
 .    if \\n[#ENDNOTE] \{\
-.       ie \\n[#Q_OFFSET_VALUE] .in +\\n[#EN_PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u
-.       el .in +\\*[$Q_OFFSET_VALUE]
+.       ie \\n[#\\*[BQ]_OFFSET_VALUE] .in 
+\\n[#EN_PP_INDENT]u*\\n[#\\*[BQ]_OFFSET_VALUE]u
+.       el .in +\\*[$\\*[BQ]_OFFSET_VALUE]
 .    \}
 .    ie \\n[#START]=1 \{\
 .       ie !\\n[#Q_LEAD_DIFF]<0 .ALD \\n[#Q_SPACE_ADJ]u
@@ -11698,22 +11690,22 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    \}
 .    el \{\
 .       if \\n[#PRINT_STYLE]=2 \{\
-.           if !\\n[.v]=\\n[#Q_LEAD] .ALD \\n[#Q_SPACE_ADJ]u
+.          if !\\n[.v]=\\n[#Q_LEAD_REAL] .ALD \\n[#Q_SPACE_ADJ]u
 .       \}
 .    \}
 .    if \\n[#QUOTE]=1 \{\
 .       nf
 .       P_QUOTE
 .       br
-.       if !\\n[#START] .rr #QUOTE
 .    \}
 .    if \\n[#QUOTE]=2 \{\
 .       nf
 .       B_QUOTE
 .       br
 .    \}
+.    if !\\n[#START] .rr #QUOTE
 .    if \\n[in-cutaround] .nr #PP_INDENT \\n[pp-ind-tmp]
-\#.    if !\\n[ev-popped] .ev \! Needed once cutarounds are implemented
+\#.    if !\\n[ev-popped] .ev \" Needed once cutarounds are implemented
 .    rr delay-ev-pop
 .    if \\n[reset-ll] \{\
 .       if '\\*[cutaround-type]'RIGHT' \{\
@@ -11816,7 +11808,10 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if \\n[#PRINT_STYLE]=1 \
 .       if \\n[#UNDERLINE_QUOTES] .FT R
 .    nr #QUOTE_4_HD 1
+.    rm BQ
 .END
+.
+.ALIAS DO_BLOCKQUOTE DO_QUOTE
 \#
 \# Utility macros for DO_QUOTE
 \# ---------------------------
@@ -11877,7 +11872,8 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .          el .ALD \\n[#DOC_LEAD]u+\\n[#Q_LEAD_DIFF]u
 .       \}
 .       el \{\
-.          ALD \\n[#DOC_LEAD]u+\\n[#Q_LEAD_DIFF]
+.          ie !\\n[#Q_LEAD_DIFF] .ALD \\n[#DOC_LEAD]u
+.          el .ALD \\n[#Q_LEAD_DIFF]u
 .          if address@hidden .rs
 .       \}
 .       nr #Q_PARTIAL_DEPTH 0 \\n[#Q_LEAD_REAL]
@@ -12035,7 +12031,7 @@ $DOC_COVER_TITLE_\\n+[#DOC_COVER_TITLE_NUM] 
\\$\\n[#DOC_COVER_TITLE_NUM]
 .    if '\\*[$PN_FOR_KN]'1' .ds $POST_HY_KN \*[BU3]
 .    if '\\*[$PN_FOR_KN]'7' .ds $POST_HY_KN \*[BU3]
 .    PRINT \
-\m[\\*[$PAGENUM_COLOR]]\
+\m[\\*[$PAGE_NUM_COLOR]]\
 \\*[$HYPHEN]\|\\*[$PRE_HY_KN]\\n[#PAGENUMBER]\\*[$POST_HY_KN]\|\\*[$HYPHEN]
 .    br
 .    rm $PRE_HY_KERN
@@ -12116,11 +12112,11 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .             PN_WITH_HYPHENS
 .          \}
 .          if '\\*[$PAGENUM_STYLE]'roman' \
-.             PRINT \m[\\*[$PAGENUM_COLOR]]-\|\\n[#PAGENUMBER]\|-
+.             PRINT \m[\\*[$PAGE_NUM_COLOR]]-\|\\n[#PAGENUMBER]\|-
 .          if '\\*[$PAGENUM_STYLE]'alpha' \
-.             PRINT \m[\\*[$PAGENUM_COLOR]]-\|\\n[#PAGENUMBER]\|-
+.             PRINT \m[\\*[$PAGE_NUM_COLOR]]-\|\\n[#PAGENUMBER]\|-
 .       \}
-.       el .PRINT \m[\\*[$PAGENUM_COLOR]]\\n[#PAGENUMBER]
+.       el .PRINT \m[\\*[$PAGE_NUM_COLOR]]\\n[#PAGENUMBER]
 .    \}
 .    ev
 .    nr #DIVER_DEPTH 0
@@ -12469,7 +12465,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          if !\\n[#LINENUMBERS] \{\
 .             tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
 .             tm1 "       FOOTNOTE_MARKER_STYLE is LINE.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          if \\n[#FN_MARK]=0 .nr #FN_MARK \\n[ln]
 .          nr #FN_MARK_2 \\n[ln]
@@ -12747,7 +12743,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .                      if !'\\*[$FN_SPACE]'' .sp -\\*[$FN_SPACE]
 .                   \}
 .                \}
-.                el .sp 1v
+.                el .sp
 .                nr #RULED 1
 .             \}
 .          \}
@@ -13393,47 +13389,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    nr #EN_PS (p;\\$1)
 .END
 \#
-\# ENDNOTES, BIBLIOGRAPHY and TOC LEADING
-\# --------------------------------------
-\# *Argument:
-\#   <leading> [ ADJUST ]
-\# *Function:
-\#   Depending on the name by which it's called, creates or modifies
-\#   register #<type>_LEAD, where <type> is BIB, EN, or TOC.  Creates or 
removes
-\#   register #ADJ_<type>_LEAD.  Stores arguments in strings if BIB,
-\#   EN, or TOC leading are set before START.
-\# *Notes:
-\#   Default is same as doc lead for TYPESET, adjusted; 24 for TYPEWRITE.
-\#
-.MAC _LEAD END
-.    if '\\$0'BIBLIOGRAPHY_LEAD' .ds $SECTION BIB
-.    if '\\$0'ENDNOTE_LEAD' .ds $SECTION EN
-.    if '\\$0'TOC_LEAD' .ds $SECTION TOC
-.    ds $\\*[$SECTION]_LEAD \\$1
-.    ds $ADJUST_\\*[$SECTION]_LEAD \\$2
-.    if !\\n[#OK_PROCESS_LEAD] .return
-.    nr #\\*[$SECTION]_LEAD (p;\\$1)
-.    rr #ADJ_\\*[$SECTION]_LEAD
-.    als \\*[$SECTION]_LEAD DOC_LEAD
-.    if '\\$2'ADJUST' \{\
-.       nr #ORIG_DOC_LEAD \\n[#UNADJUSTED_DOC_LEAD]
-.       nr #RESTORE_ADJ_DOC_LEAD \\n[#ADJ_DOC_LEAD]
-.       nr #ADJ_DOC_LEAD 1
-.       nr #ADJ_\\*[$SECTION]_LEAD 1
-.       nr #NO_TRAP_RESET 1
-.       \\*[$SECTION]_LEAD \\n[#\\*[$SECTION]_LEAD]u ADJUST
-.       nr #\\*[$SECTION]_LEAD \\n[#DOC_LEAD]
-.       DOC_LEAD \\n[#ORIG_DOC_LEAD]u
-.       rr #NO_TRAP_RESET
-.       nr #ADJ_DOC_LEAD \\n[#RESTORE_ADJ_DOC_LEAD]
-.       rr #ORIG_DOC_LEAD
-.    \}
-.END
-\#
-.ALIAS BIBLIOGRAPHY_LEAD _LEAD
-.ALIAS ENDNOTE_LEAD _LEAD
-.ALIAS TOC_LEAD _LEAD
-\#
 \# ENDNOTE SPACING
 \# ----------------
 \# *Arguments:
@@ -13477,36 +13432,53 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .MAC ENDNOTES_HEADER_STRING END
 .    ds $EN_STRING \\$1
 .END
+.
+.ALIAS ENDNOTE_STRING ENDNOTES_HEADER_STRING
+\#
+\# ENDNOTE STRING START POSTION
+\# ----------------------------
+\# *Argument:
+\#   <distance from page top>
+\# *Function:
+\#   Creates or modifies register #EN_STRING_V_POS
 \#
 .MAC ENDNOTES_HEADER_V_POS END
-.    nr #EN_STRING_ADVANCE (\\$1)
+.    nr #EN_STRING_V_POS (\\$1)
 .END
+.
+.ALIAS ENDNOTE_STRING_ADVANCE  ENDNOTES_HEADER_V_POS
+.ALIAS ENDNOTE_STRING_V_POS    ENDNOTES_HEADER_V_POS
+.ALIAS ENDNOTES_HEADER_V_POS   ENDNOTES_HEADER_V_POS
 \#
-.ALIAS ENDNOTE_STRING ENDNOTES_HEADER_STRING
-.ALIAS ENDNOTE_STRING_ADVANCE ENDNOTES_HEADER_V_POS
-\#
-\# ENDNOTE HEADER CAPS
-\# -------------------
+\# ENDNOTE HEADER CAPS and SMALLCAPS
+\# ---------------------------------
 \# *Arguments:
 \#   <none> | <anything>
 \# *Function:
-\#   Turns capitalization of the endnotes pages title string
-\#   "Endnotes" on or off.
+\#   Turns capitalization or smallcaps style of the endnotes pages
+\#   title string "Endnotes" on or off.
 \# *Notes:
 \#   Users may want the endnotes pages title string to be in
 \#   caps, but the toc entry for endnotes in lower case.  If the
 \#   argument to ENDNOTES_HEADER_STRING is in lower case and
 \#   ENDNOTES_HEADER_CAPS is turned on, this is exactly what will
-\#   happen.
+\#   happen.  Ditto for smallcaps.
 \#
-\#   Default is on.
+\#   Default for CAPS is on.
 \#
 .MAC ENDNOTES_HEADER_CAPS END
 .   ie '\\$1'' .nr #EN_STRING_CAPS 1
 .   el .nr #EN_STRING_CAPS 0
 .END
-\#
+.
 .ALIAS ENDNOTE_STRING_CAPS ENDNOTES_HEADER_CAPS
+.
+.MAC ENDNOTES_HEADER_SMALLCAPS END
+.   ie '\\$1'' .nr #EN_STRING_SMALLCAPS 1
+.   el .nr #EN_STRING_SMALLCAPS 0
+.END
+.
+.ALIAS ENDNOTE_STRING_SMALLCAPS ENDNOTES_HEADER_SMALLCAPS
 \#
 \# ENDNOTE TITLE
 \# -------------
@@ -13839,7 +13811,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          if !\\n[#LINENUMBERS] \{\
 .             tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
 .             tm1 "       ENDNOTE_MARKER_STYLE is LINE.
-.             ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.             ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .          \}
 .          if \\n[#EN_MARK]=0 .nr #EN_MARK \\n[ln]
 .          nr #EN_MARK_2 \\n[ln]
@@ -13871,8 +13843,12 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .             FAMILY  \\*[$EN_TITLE_FAM]
 .             FT      \\*[$EN_TITLE_FT]
 .             ps \\n[#EN_PS]u\\*[$EN_TITLE_SIZE_CHANGE]
+.             if \\n[#EN_TITLE_COLOR] .gcolor \\*[$EN_TITLE_COLOR]
+.             if \\n[#ENDNOTE_TITLE_SMALLCAPS] .SMALLCAPS
+.             if \\n[#ENDNOTE_TITLE_CAPS] .CAPS
 .          \}
-.          sp
+.          ie \\n[#SINGLE_SPACE]=1 .sp 2
+.          el .sp
 .          if !'\\*[$EN_TITLE]'' \{\
 .             if '\\*[$EN_TITLE_QUAD]'L'      .LEFT
 .             if '\\*[$EN_TITLE_QUAD]'LEFT'   .LEFT
@@ -13882,12 +13858,17 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .             if '\\*[$EN_TITLE_QUAD]'R'      .RIGHT
 .             if '\\*[$EN_TITLE_QUAD]'RIGHT'  .RIGHT
 .             ie \\n[#EN_TITLE_UNDERLINE] \{\
-.                nr #FROM_EN_TITLE 1
 .                UNDERSCORE "\\*[$EN_TITLE]"
-.                rr #FROM_EN_TITLE
 .             \}
-.             el .PRINT "\\*[$EN_TITLE]"
+.             el \{\
+.                ie \\n[#PRINT_STYLE]=1 \
+.                   UNDERSCORE "\\*[$EN_TITLE]"
+.                el .PRINT "\\*[$EN_TITLE]"
+.             \}
 .          \}
+.          if \\n[#EN_TITLE_COLOR] .gcolor
+.          if \\n[#ENDNOTE_TITLE_SMALLCAPS] .SMALLCAPS OFF
+.          if \\n[#ENDNOTE_TITLE_CAPS] .CAPS OFF
 .       \}
 .\" Get indent from endnotes point size; convert string to reg in
 .\" case indent string is, e.g., m or n
@@ -13895,12 +13876,15 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       nr #REF_EN_INDENT (u;\\*[$REF_EN_INDENT])
 .       if \\n[#PRINT_STYLE]=1 \{\
 .          TYPEWRITER
-.          if \\n[#EN_NUMBER]=1 .sp
+.          if \\n[#EN_NUMBER]=1 \{\
+.             ie \\n[#SINGLE_SPACE]=1 .sp
+.             el .sp .25
+.           \}
 .          if \\n[#EN_MARKER_STYLE]=3 .ps -2
 .       \}
 .       if \\n[#PRINT_STYLE]=2 \{\
 .          if \\n[#EN_NUMBER]=1 \
-.             if !'\\*[$EN_TITLE]'' .sp .5v
+.             if !'\\*[$EN_TITLE]'' .sp .25v
 .          if \\n[#EN_MARKER_STYLE]=1 \{\
 .             FAMILY  \\*[$EN_NUMBER_FAM]
 .             FT      \\*[$EN_NUMBER_FT]
@@ -14041,6 +14025,9 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    \}
 .END
 \#
+\# Endnotes (user space macro)
+\# ---------------------------
+\#
 \# ENDNOTES
 \# --------
 \# *Arguments:
@@ -14055,6 +14042,36 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    nr #LAST_EN \\n[#EN_NUMBER]
 .    nr #ENDNOTES 1
 .    nr #EN_FIRST_PAGE 1
+.    SETUP_ENDNOTES
+.    if !\\n[#PRINT_STYLE]=1 .chop END_NOTES
+.    nf
+.    END_NOTES
+.    rm END_NOTES
+.    ps \\n[#DOC_PT_SIZE]u
+.    if \\n[#PRINT_STYLE]=1 .vs \\n[#DOC_LEAD]u
+.    if \\n[#PRINT_STYLE]=2 \{\
+.       ie \\n[#ADJ_EN_LEAD] \
+.          nr #DOC_LEAD \\n[#RESTORE_DOC_LEAD]
+.       el .DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
+.       rr #RESTORE_DOC_LEAD
+.    \}
+.    if \\n[#COLUMNS_WERE_ON] .nr #COLUMNS 1
+.    if \\n[#HEADER_STATE]=1 .HEADERS
+.    if \\n[#LINENUMBERS]=2 \{\
+.       NUMBER_LINES RESUME
+.       nr #LINENUMBERS 1
+.    \}
+.
+.    PRINT_FOOTER
+.    rr #ENDNOTES
+.END
+\#
+\# Macros common to endnotes, bibliography, and toc
+\# ------------------------------------------------
+\#
+.MAC SETUP_BIB_EN END
+.    if '\\$0'SETUP_BIBLIOGRAPHY' .ds EN-OR-BIB BIB
+.    if '\\$0'SETUP_ENDNOTES'     .ds EN-OR-BIB EN
 .    nr #HEADER_STATE \\n[#HEADERS_ON]
 .    ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
 .    if \\n[#LINENUMBERS]=1 \{\
@@ -14062,17 +14079,17 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       nr #LINENUMBERS 2
 .    \}
 .    if \\n[#HEADERS_ON]=1 \
-.       if !\\n[#EN_ALLOWS_HEADERS_ALL] .HEADERS OFF
+.       if !\\n[#\\*[EN-OR-BIB]_ALLOWS_HEADERS_ALL] .HEADERS OFF
 .    if \\n[#HEADER_STATE]=1 \{\
-.       ie \\n[#EN_HDRFTR_CENTER]=1 .
+.       ie \\n[#\\*[EN-OR-BIB]_HDRFTR_CENTER]=1 .
 .       el .rm $HDRFTR_CENTER
 .    \}
 .    ie !\\n[#SUSPEND_PAGINATION] \{\
 .       if \\n[#PAGINATE]=1 \{\
 .          if \\n[#PAGE_NUM_V_POS]=1 \{\
-.             PAGENUM_STYLE \\*[$EN_PN_STYLE]
-.             if \\n[#EN_FIRST_PN] .PAGENUMBER \\n[#EN_FIRST_PN]-1
-.             if r #EN_NO_FIRST_PN .nr #PAGINATE 0
+.             PAGENUM_STYLE \\*[$\\*[EN-OR-BIB]_PN_STYLE]
+.             if \\n[#\\*[EN-OR-BIB]_FIRST_PN] .PAGENUMBER 
\\n[#\\*[EN-OR-BIB]_FIRST_PN]-1
+.             if r #\\*[EN-OR-BIB]_NO_FIRST_PN .nr #PAGINATE 0
 .          \}
 .       \}
 .    \}
@@ -14092,116 +14109,144 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    \}
 .    ie !\\n[#SUSPEND_PAGINATION] \{\
 .       if \\n[#PAGE_NUM_V_POS]=1 \{\
-.          if r #EN_NO_FIRST_PN \
+.          if r #\\*[EN-OR-BIB]_NO_FIRST_PN \
 .             if \\n[#PAGINATION_STATE]=1 .nr #PAGINATE 1
 .       \}
 .    \}
 .    el \
 .       if \\n[#PAGE_NUM_V_POS]=2 .nr #PAGINATE 0
 .    rr #PAGINATION_STATE
-.    PAGENUM_STYLE \\*[$EN_PN_STYLE]
-.    if \\n[#EN_FIRST_PN] .PAGENUMBER \\n[#EN_FIRST_PN]
+.    PAGENUM_STYLE \\*[$\\*[EN-OR-BIB]_PN_STYLE]
+.    if \\n[#\\*[EN-OR-BIB]_FIRST_PN] .PAGENUMBER \\n[#\\*[EN-OR-BIB]_FIRST_PN]
 .    if \\n[#HEADER_STATE]=1 \
-.       if \\n[#EN_ALLOWS_HEADERS] .HEADERS
+.       if \\n[#\\*[EN-OR-BIB]_ALLOWS_HEADERS] .HEADERS
 .\" Collect endnotes title string for TOC
 .    nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
 .    af #TOC_ENTRY_PN \\g[#PAGENUMBER]
-.    ds $TOC_TITLE_ITEM \\*[$EN_STRING]\|
-.    PDF_BOOKMARK 1 \\*[$EN_STRING]
+.    ds $TOC_TITLE_ITEM \\*[$\\*[EN-OR-BIB]_STRING]\|
+.    PDF_BOOKMARK 1 \\*[$\\*[EN-OR-BIB]_STRING]
 .    TITLE_TO_TOC
 .\" End collection of endnotes title string for TOC
 .\" Process endnotes
-.    if \\n[#PRINT_STYLE]=1 .vs \\n[#EN_LEAD]u
+.    if \\n[#PRINT_STYLE]=1 .vs \\n[#\\*[EN-OR-BIB]_LEAD]u
 .    if \\n[#PRINT_STYLE]=2 \{\
-.       if \\n[#EN_NO_COLS] \{\
+.       if \\n[#\\*[EN-OR-BIB]_NO_COLS] \{\
 .          if \\n[#COLUMNS] .nr #COLUMNS_WERE_ON 1
 .          nr #COLUMNS 0
 .       \}
 .       nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
-.       ie \\n[#ADJ_EN_LEAD] .nr #DOC_LEAD \\n[#EN_LEAD]
-.       el .DOC_LEAD \\n[#EN_LEAD]u
+.       ie \\n[#ADJ_\\*[EN-OR-BIB]_LEAD] .nr #DOC_LEAD 
\\n[#\\*[EN-OR-BIB]_LEAD]
+.       el .DOC_LEAD \\n[#\\*[EN-OR-BIB]_LEAD]u
 .    \}
 .    vpt 0
-.    ie r#EN_STRING_ADVANCE .sp |\\n[#EN_STRING_ADVANCE]u-1v
-.    el .sp |\\n[#T_MARGIN]u-1v
-.    vpt 1
+.    RESTORE_SPACE
+.    ie r#\\*[EN-OR-BIB]_STRING_V_POS .sp 
|\\n[#\\*[EN-OR-BIB]_STRING_V_POS]u-1v
+.    el .sp |\\n[#T_MARGIN]u-\\n[#\\*[EN-OR-BIB]_LEAD]u
+.    vpt
 .    mk ec
 .    if \\n[#SLANT_ON] \{\
 \*[SLANTX]\c
 .    \}
 .    sp
-.    if !'\\*[$EN_STRING]'' \{\
+.    if !'\\*[$\\*[EN-OR-BIB]_STRING]'' \{\
 .       if \\n[#PRINT_STYLE]=1 \{\
 .          TYPEWRITER
-.          vs \\n[#EN_LEAD]u
+.          vs \\n[#\\*[EN-OR-BIB]_LEAD]u
 .       \}
 .       if \\n[#PRINT_STYLE]=2 \{\
 .          LL \\n[#DOC_L_LENGTH]u
 .          ta \\n[.l]u
 .          if \\n[#COLUMNS] \{\
-.             ie \\n[#EN_NO_COLS] .LL \\n[#DOC_L_LENGTH]u
+.             ie \\n[#\\*[EN-OR-BIB]_NO_COLS] .LL \\n[#DOC_L_LENGTH]u
 .             el .LL \\n[#COL_L_LENGTH]u
 .             ta \\n[.l]u
 .          \}
-.          FAMILY  \\*[$EN_STRING_FAM]
-.          FT      \\*[$EN_STRING_FT]
-.          ps \\n[#EN_PS]u\\*[$EN_STRING_SIZE_CHANGE]
-.          vs      \\n[#EN_LEAD]u
-.          if \\n[#ENDNOTE_STRING_COLOR]=1 \{\
-.             COLOR \\*[$ENDNOTE_STRING_COLOR]
-.             EOL
-.          \}
-.       \}
-.       if '\\*[$EN_STRING_QUAD]'L'      .LEFT
-.       if '\\*[$EN_STRING_QUAD]'LEFT'   .LEFT
-.       if '\\*[$EN_STRING_QUAD]'C'      .CENTER
-.       if '\\*[$EN_STRING_QUAD]'CENTER' .CENTER
-.       if '\\*[$EN_STRING_QUAD]'CENTRE' .CENTER
-.       if '\\*[$EN_STRING_QUAD]'R'      .RIGHT
-.       if '\\*[$EN_STRING_QUAD]'RIGHT'  .RIGHT
+.          FAMILY  \\*[$\\*[EN-OR-BIB]_STRING_FAM]
+.          FT      \\*[$\\*[EN-OR-BIB]_STRING_FT]
+.          ps \\n[#\\*[EN-OR-BIB]_PS]u\\*[$\\*[EN-OR-BIB]_STRING_SIZE_CHANGE]
+.          vs      \\n[#\\*[EN-OR-BIB]_LEAD]u
+.       \}
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'L'      .LEFT
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'LEFT'   .LEFT
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'C'      .CENTER
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'CENTER' .CENTER
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'CENTRE' .CENTER
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'R'      .RIGHT
+.       if '\\*[$\\*[EN-OR-BIB]_STRING_QUAD]'RIGHT'  .RIGHT
 .       EOL
-.       if \\n[#EN_STRING_CAPS] .CAPS
-.       ie \\n[#EN_STRING_UNDERLINE] \{\
-.          nr #FROM_EN_STRING 1
-.          ie \\n[#EN_STRING_UNDERLINE]=2 \
-.             UNDERSCORE2 \\*[$EN_UNDERLINE_GAP] \\*[$EN_RULE_GAP] 
"\\*[$EN_STRING]"
-.          el .UNDERSCORE "\\*[$EN_STRING]"
-.          rr #FROM_EN_STRING
-.       \}
-.       el .PRINT "\\*[$EN_STRING]
-.    \}
-.    CAPS OFF
-.    if \\n[#PRINT_STYLE]=1 \{\
-.       ie \\n[#SINGLE_SPACE]=1 .sp
-.       el \{\
-.          ie \\n[#EN_SINGLESPACE]=1 .sp
-.          el .
-.       \}
-.    \}
-.    if \\n[#PRINT_STYLE]=2 .ALD \\n[#EN_LEAD]u
-.    QUAD \\*[$EN_QUAD]
-.    chop END_NOTES
-.    nf
-.    END_NOTES
-.    rm END_NOTES
-.    ps \\n[#DOC_PT_SIZE]u
-.    if \\n[#PRINT_STYLE]=1 .vs \\n[#DOC_LEAD]u
-.    if \\n[#PRINT_STYLE]=2 \{\
-.       ie \\n[#ADJ_EN_LEAD] \
-.          nr #DOC_LEAD \\n[#RESTORE_DOC_LEAD]
-.       el .DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
-.       rr #RESTORE_DOC_LEAD
+.       if \\n[#\\*[EN-OR-BIB]_STRING_COLOR]=1 .gcolor 
\\*[$\\*[EN-OR-BIB]_STRING_COLOR]
+.       if \\n[#\\*[EN-OR-BIB]_STRING_CAPS] .CAPS
+.       if \\n[#\\*[EN-OR-BIB]_STRING_SMALLCAPS] .SMALLCAPS
+.       ie \\n[#\\*[EN-OR-BIB]_STRING_UNDERLINE] \{\
+.          if \\n[#PRINT_STYLE]=2 .ds $TITLE_TYPE \\*[EN-OR-BIB]_STRING
+.          ie \\n[#PRINT_STYLE]=1 \{\
+.             UNDERSCORE2 3p 2p "\\*[$\\*[EN-OR-BIB]_STRING]"
+.          \}
+.          el \{\
+.             ie \\n[#\\*[EN-OR-BIB]_STRING_UNDERLINE]=2 \
+.                UNDERSCORE2 \\*[$\\*[EN-OR-BIB]_UNDERLINE_GAP] 
\\*[$\\*[EN-OR-BIB]_RULE_GAP] "\\*[$\\*[EN-OR-BIB]_STRING]"
+.             el .UNDERSCORE "\\*[$\\*[EN-OR-BIB]_STRING]"
+.          \}
+.       \}
+.       el .PRINT "\\*[$\\*[EN-OR-BIB]_STRING]
 .    \}
-.    if \\n[#COLUMNS_WERE_ON] .nr #COLUMNS 1
-.    if \\n[#HEADER_STATE]=1 .HEADERS
-.    if \\n[#LINENUMBERS]=2 \{\
-.       NUMBER_LINES RESUME
-.       nr #LINENUMBERS 1
+.    SMALLCAPS OFF
+.    CAPS OFF
+.    if \\n[#\\*[EN-OR-BIB]_STRING_COLOR]=1 .gcolor
+.    if \\n[#PRINT_STYLE]=1 \{\
+.       ie \\n[#SINGLE_SPACE]=1 .sp
+.       el \{\
+.          ie \\n[#\\*[EN-OR-BIB]_SINGLESPACE]=1 .sp
+.          el .
+.       \}
 .    \}
+.    SHIM
+.    QUAD \\*[$\\*[EN-OR-BIB]_QUAD]
+.END
 .
-.    PRINT_FOOTER
-.    rr #ENDNOTES
+.ALIAS SETUP_BIBLIOGRAPHY SETUP_BIB_EN
+.ALIAS SETUP_ENDNOTES     SETUP_BIB_EN
+\#
+\# ENDNOTES, BIBLIOGRAPHY and TOC LEADING
+\# --------------------------------------
+\# *Argument:
+\#   <leading> [ ADJUST ]
+\# *Function:
+\#   Depending on the name by which it's called, creates or modifies
+\#   register #<type>_LEAD, where <type> is BIB, EN, or TOC.  Creates or 
removes
+\#   register #ADJ_<type>_LEAD.  Stores arguments in strings if BIB,
+\#   EN, or TOC leading are set before START.
+\# *Notes:
+\#   Default is same as doc lead for TYPESET, adjusted; 24 for TYPEWRITE.
+\#
+.MAC _LEAD END
+.    if '\\$0'BIBLIOGRAPHY_LEAD' .ds $SECTION BIB
+.    if '\\$0'ENDNOTE_LEAD' .ds $SECTION EN
+.    if '\\$0'TOC_LEAD' .ds $SECTION TOC
+.    ds $\\*[$SECTION]_LEAD \\$1
+.    ds $ADJUST_\\*[$SECTION]_LEAD \\$2
+.    if !\\n[#OK_PROCESS_LEAD] .return
+.    nr #\\*[$SECTION]_LEAD (p;\\$1)
+.    rr #ADJ_\\*[$SECTION]_LEAD
+.    als \\*[$SECTION]_LEAD DOC_LEAD
+.    if '\\$2'ADJUST' \{\
+.       nr #ORIG_DOC_LEAD \\n[#UNADJUSTED_DOC_LEAD]
+.       nr #RESTORE_ADJ_DOC_LEAD \\n[#ADJ_DOC_LEAD]
+.       nr #ADJ_DOC_LEAD 1
+.       nr #ADJ_\\*[$SECTION]_LEAD 1
+.       nr #NO_TRAP_RESET 1
+.       \\*[$SECTION]_LEAD \\n[#\\*[$SECTION]_LEAD]u ADJUST
+.       nr #\\*[$SECTION]_LEAD \\n[#DOC_LEAD]
+.       DOC_LEAD \\n[#ORIG_DOC_LEAD]u
+.       rr #NO_TRAP_RESET
+.       nr #ADJ_DOC_LEAD \\n[#RESTORE_ADJ_DOC_LEAD]
+.       rr #ORIG_DOC_LEAD
+.    \}
 .END
+.
+.ALIAS BIBLIOGRAPHY_LEAD _LEAD
+.ALIAS ENDNOTE_LEAD      _LEAD
+.ALIAS TOC_LEAD          _LEAD
 \#
 \# ====================================================================
 \#
@@ -14234,13 +14279,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .END
 \#
 .MAC BIBLIOGRAPHY_STRING_ADVANCE END
-.    nr #BIB_STRING_ADVANCE (\\$1)
+.    nr #BIB_STRING_V_POS (u;\\$1)
 .END
 \#
-.MAC BIBLIOGRAPHY_STRING_CAPS END
-.   ie '\\$1'' .nr #BIB_STRING_CAPS 1
-.   el .nr #BIB_STRING_CAPS 0
+.MAC BIBLIOGRAPHY_STRING_V_POS END
+.    nr #BIB_STRING_V_POS (u;\\$1)
 .END
+.
+.ALIAS BIBLIOGRAPHY_HEADER_V_POS BIBLIOGRAPHY_STRING_V_POS
 \#
 .MAC BIBLIOGRAPHY_NO_COLUMNS END
 .    ie '\\$1'' .nr #BIB_NO_COLS 1
@@ -14317,7 +14363,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#   LIST means unumbered."  Effectively, any arg but LIST produces
 \#   a "plain" bibliographic list.
 \#
-\#   The 2nd and 3rd args have the same options as the 2nd arg to LIST.
+\# The 2nd and 3rd args have the same options as the 2nd and 3rd
+\# args to LIST.
 \#
 .MAC BIBLIOGRAPHY_TYPE END
 .    ie '\\$1'LIST' \{\
@@ -14356,8 +14403,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    el .nr #BIB_SPACE (\\$1)
 .END
 \#
-\# Set up bibliography page
-\# ------------------------
+\# Bibliography (user space macro)
+\# -------------------------------
 \# *Function:
 \#   Sets up a new page, with title, ready to accept the output
 \#   of refer's $LIST$ or .R1 bibliography .R2
@@ -14365,135 +14412,13 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#   Bibliography pages are set up almost identically to endnotes pages.
 \#
 .MAC BIBLIOGRAPHY END
+.    if \\n[defer] .NEWPAGE
 .    ie '\\$1'' \{\
 .       rr #FN_REF
 .       rr #EN_REF
 .       nr #BIBLIOGRAPHY 1
 .       nr #BIB_FIRST_PAGE 1
-.       nr #HEADER_STATE \\n[#HEADERS_ON]
-.       ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
-.       if \\n[#LINENUMBERS]=1 \{\
-.          NUMBER_LINES OFF
-.          nr #LINENUMBERS 2
-.       \}
-.       if \\n[#HEADERS_ON]=1 \
-.          if !\\n[#BIB_ALLOWS_HEADERS_ALL] .HEADERS OFF
-.       if \\n[#HEADER_STATE]=1 \{\
-.          ie \\n[#BIB_HDRFTR_CENTER]=1 .
-.          el .rm $HDRFTR_CENTER
-.       \}
-.       ie !\\n[#SUSPEND_PAGINATION] \{\
-.          if \\n[#PAGINATE]=1 \{\
-.             if \\n[#PAGE_NUM_V_POS]=1 \{\
-.                PAGENUM_STYLE \\*[$BIB_PN_STYLE]
-.                if \\n[#BIB_FIRST_PN] .PAGENUMBER \\n[#BIB_FIRST_PN]-1
-.                if r #BIB_NO_FIRST_PN .nr #PAGINATE 0
-.             \}
-.          \}
-.       \}
-.       el \{\
-.          ie \\n[#PAGE_NUM_V_POS]=2 .nr #PAGINATE 1
-.          el .nr #PAGINATE 0
-.       \}
-.       if \\n[#FOOTERS_ON]=1 \{\
-.          if !'\\*[$HDRFTR_CENTER_OLD]'' \
-.             ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_OLD]
-.       \}
-.       NEWPAGE
-.       if \\n[#FOOTERS_ON]=1 \{\
-.          ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_NEW]
-.          rm $HDRFTR_CENTER_OLD
-.          rm $HDRFTR_CENTER_NEW
-.       \}
-.       ie !\\n[#SUSPEND_PAGINATION] \{\
-.          if \\n[#PAGE_NUM_V_POS]=1 \{\
-.             if r #BIB_NO_FIRST_PN \{\
-.                if \\n[#PAGINATION_STATE]=1 .nr #PAGINATE 1
-.             \}
-.          \}
-.       \}
-.       el \
-.          if \\n[#PAGE_NUM_V_POS]=2 .nr #PAGINATE 0
-.       rr #PAGINATION_STATE
-.       PAGENUM_STYLE \\*[$BIB_PN_STYLE]
-.       if \\n[#BIB_FIRST_PN] .PAGENUMBER \\n[#BIB_FIRST_PN]
-.       if \\n[#HEADER_STATE]=1 \
-.          if \\n[#BIB_ALLOWS_HEADERS] .HEADERS
-.\" Collect bibliography title string for TOC
-.       nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
-.       af #TOC_ENTRY_PN \\g[#PAGENUMBER]
-.       ds $TOC_TITLE_ITEM \\*[$BIB_STRING]\\|
-.       PDF_BOOKMARK 1 \\*[$BIB_STRING]
-.       TITLE_TO_TOC
-.\" End collection of bibliography title string for TOC
-.\" Process bibliography
-.       if \\n[#PRINT_STYLE]=1 .vs \\n[#BIB_LEAD]u
-.       if \\n[#PRINT_STYLE]=2 \{\
-.          if \\n[#BIB_NO_COLS] \{\
-.             if \\n[#COLUMNS] .nr #COLUMNS_WERE_ON 1
-.             nr #COLUMNS 0
-.          \}
-.          nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
-.          ie \\n[#ADJ_BIB_LEAD] .nr #DOC_LEAD \\n[#BIB_LEAD]
-.          el .DOC_LEAD \\n[#BIB_LEAD]u
-.       \}
-.       vpt 0
-.       ie r#BIB_STRING_ADVANCE .sp |\\n[#BIB_STRING_ADVANCE]u-1v
-.       el .sp |\\n[#T_MARGIN]u-1v
-.       vpt 1
-.       mk bc
-.       if \\n[#SLANT_ON] \{\
-\*[SLANTX]\c
-.       \}
-.       sp
-.       if !'\\*[$BIB_STRING]'' \{\
-.          if \\n[#PRINT_STYLE]=1 \{\
-.             TYPEWRITER
-.             vs \\n[#BIB_LEAD]u
-.          \}
-.          if \\n[#PRINT_STYLE]=2 \{\
-.             LL \\n[#DOC_L_LENGTH]u
-.             ta \\n[.l]u
-.             if \\n[#COLUMNS] \{\
-.                ie \\n[#BIB_NO_COLS] .LL \\n[#DOC_L_LENGTH]u
-.                el .LL \\n[#COL_L_LENGTH]u
-.                ta \\n[.l]u
-.             \}
-.             FAMILY  \\*[$BIB_STRING_FAM]
-.             FT      \\*[$BIB_STRING_FT]
-.             ps \\n[#BIB_PS]u\\*[$BIB_STRING_SIZE_CHANGE]
-.             vs      \\n[#BIB_LEAD]u
-.          \}
-.          if '\\*[$BIB_STRING_QUAD]'LEFT'   .LEFT
-.          if '\\*[$BIB_STRING_QUAD]'C'      .CENTER
-.          if '\\*[$BIB_STRING_QUAD]'CENTER' .CENTER
-.          if '\\*[$BIB_STRING_QUAD]'CENTRE' .CENTER
-.          if '\\*[$BIB_STRING_QUAD]'R'      .RIGHT
-.          if '\\*[$BIB_STRING_QUAD]'RIGHT'  .RIGHT
-.          EOL
-.          if \\n[#BIB_STRING_CAPS] .CAPS
-.          ie \\n[#BIB_STRING_UNDERLINE] \{\
-.             nr #FROM_BIB_STRING 1
-.             ie \\n[#BIB_STRING_UNDERLINE]=2 \
-.                UNDERSCORE2 "\\*[$BIB_STRING]"
-.             el .UNDERSCORE "\\*[$BIB_STRING]"
-.             rr #FROM_BIB_STRING
-.          \}
-.          el .PRINT "\\*[$BIB_STRING]"
-.       \}
-.       CAPS OFF
-.       FAMILY \\*[$BIB_FAMILY]
-.       FT \\*[$BIB_FT]
-.       ps -\\*[$BIB_STRING_SIZE_CHANGE]
-.       if \\n[#PRINT_STYLE]=1 \{\
-.          ie \\n[#SINGLE_SPACE]=1 .ALD \\n[#BIB_LEAD]*3u
-.          el \{\
-.             ie \\n[#BIB_SINGLESPACE]=1 .ALD \\n[#BIB_LEAD]u*3u
-.             el .ALD \\n[#BIB_LEAD]u
-.          \}
-.       \}
-.       if \\n[#PRINT_STYLE]=2 .ALD \\n[#BIB_LEAD]u*2u
-.       QUAD \\*[$BIB_QUAD]
+.       SETUP_BIBLIOGRAPHY
 .       if \\n[#PRINT_STYLE]=1 \{\
 .          ie \\n[#SINGLE_SPACE]=1 .vs \\n[#BIB_LEAD]u
 .          el \{\
@@ -14562,8 +14487,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \!.           ps \\n[#TOC_PS]u\\*[$TOC_HEAD_\\n[#LEVEL]_SIZE]
 .          \}
 .          el \{\
-\!.           FAMILY  \\*[$TOC_TITLE_FAM]
-\!.           FT      \\*[$TOC_TITLE_FT]
+\!.           FAMILY \\*[$TOC_TITLE_FAM]
+\!.           FT     \\*[$TOC_TITLE_FT]
 \!.           ps \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE]
 .          \}
 .       \}
@@ -14592,6 +14517,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       \}
 \!.     vpt 0
 .       ie '\\$0'HD_TO_TOC' \{\
+.          if \\n[#PRINT_STYLE]=1 \{\
+.             ds $TOC_HEAD_\\n[#LEVEL]_FAM] \\*[$TYPEWRITER_FAM]
+.             ds $TOC_HEAD_\\n[#LEVEL]_FT]  R
+.          \}
 \!.        PAD \
 "\\f[\\*[$TOC_HEAD_\\n[#LEVEL]_FAM]\
 \\*[$TOC_HEAD_\\n[#LEVEL]_FT]]\
@@ -14600,6 +14529,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 "\\*[PDFBOOKMARK.NAME]"
 .       \}
 .       el \{\
+.          if \\n[#PRINT_STYLE]=1 \{\
+.             ds $TOC_TITLE_FAM \\*[$TYPEWRITER_FAM]
+.             ds $TOC_TITLE_FT  R
+.          \}
 \!.        PAD \
 "\\f[\\*[$TOC_TITLE_FAM]\\*[$TOC_TITLE_FT]]\
 \h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN\\*[_TYPEWRITE]]" \
@@ -14633,8 +14566,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .   da
 .   ev
 .END
-\#
-.ALIAS HD_TO_TOC  TO_TOC
+.
+.ALIAS HD_TO_TOC    TO_TOC
 .ALIAS TITLE_TO_TOC TO_TOC
 \#
 \# Control macros for toc
@@ -14683,6 +14616,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          rr #TOC_TITLE_CAPS
 .          shift
 .       \}
+.       if '\\$1'SMALLCAPS' \{\
+.          nr #TOC_TITLE_SMALLCAPS 1
+.          shift
+.       \}
+.       if '\\$1'NO_SMALLCAPS' \{\
+.          rr #TOC_TITLE_SMALLCAPS
+.          shift
+.       \}
 .       if '\\$1'INDENT' \{\
 .          shift
 .          nr #TOC_TITLE_INDENT \\$1
@@ -14704,23 +14645,30 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    ds $TOC_HEADER_STRING \\$1
 .END
 \#
-\# TOC HEADER CAPS
-\# ---------------
+\# TOC HEADER CAPS and SMALLCAPS
+\# -----------------------------
 \# *Arguments:
 \#   <none> | <anything>
 \# *Function:
-\#   Turns capitalization of the toc title string on or off.
+\#   Turns capitalization or smallcaps style of the toc title string
+\#   on or off.
 \# *Notes:
 \#   Users may want the the toc title string to be in
 \#   caps, but the page header to be in lower case.  If the
 \#   argument to TOC_HEADER_STRING is in lower case and
 \#   TOC_HEADER_CAPS is turned on, this is exactly what will
-\#   happen.
+\#   happen.  Ditto for SMALLCAPS.
 \#
 .MAC TOC_HEADER_CAPS END
 .   ie '\\$1'' .nr #TOC_STRING_CAPS 1
 .   el .nr #TOC_STRING_CAPS 0
 .END
+.
+.MAC TOC_HEADER_SMALLCAPS END
+.   ie '\\$1'' .nr #TOC_STRING_SMALLCAPS 1
+.   el .nr #TOC_STRING_SMALLCAPS 0
+.END
+.
 \#
 \# TOC VERTICAL PLACEMENT
 \# ----------------------
@@ -14904,8 +14852,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       if \\n[#PREFIX_CH_NUM] .nr #TOC_INDENT_ADJ \\n[#TOC_CH_NUM_INDENT]
 .    \}
 .    el \{\
-.       nr #SKIP_ENTRY 1
-.       nr #TOC_INDENT_ADJ 0
+.       if !\\n[#DOC_TYPE]=2 \{\
+.          if r #LEVEL .nr #SKIP_ENTRY 1
+.          nr #TOC_INDENT_ADJ 0
+.       \}
 .    \}
 .    nr #TOC 1
 .    nr TOC.RELOCATE 0
@@ -14928,8 +14878,11 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    rr #COLUMNS
 .    COLLATE
 .    if \\n[#PRINT_STYLE]=1 \{\
-.       if \\n[#SINGLE_SPACE] .vs 24
+.       rr #IGNORE
+.       if \\n[#SINGLE_SPACE] .DOC_LEAD 24
 .       DOC_LEAD_ADJUST
+.       TRAPS
+.       nr #IGNORE 1
 .    \}
 .    if \\n[#PRINT_STYLE]=2 .vs \\n[#TOC_LEAD]u
 .    if \\n[#FINIS] \{\
@@ -14950,15 +14903,20 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    ie \\n[#TOC_HEADER_V_POS] \
 .      DOCHEADER OFF \\n[#TOC_HEADER_V_POS]u-\\n[#DOC_LEAD]u 
 .    el .DOCHEADER OFF \\n[#T_MARGIN]u-\\n[#DOC_LEAD]u
+.    if (\\n[#PRINT_STYLE]=1)&(\\n[#SINGLE_SPACE]=1) \{\
+.       DOCHEADER OFF \\n[#T_MARGIN]u-(\\n[#DOC_LEAD]u*2u)
+.    \}
 .    if !r #TOC_START_PAGENUM .nr #TOC_START_PAGENUM 1
 .       PAGENUMBER \\n[#TOC_START_PAGENUM]
 .    if \\n[#LINENUMBERS]=2 .nr #LINENUMBERS 3
 .    L_MARGIN   \\n[#DOC_L_MARGIN]u
 .    LL         \\n[#DOC_L_LENGTH]u
+.    HEADER_FAMILY \\*[$TOC_FAM]
 .    HEADER_CENTER "\\*[$TOC_HEADER_STRING]
 .    if \\n[#SLANT_ON] .nop \\*[SLANTX]
-.    START
 .    PAGENUM_STYLE \\*[$TOC_PN_STYLE]
+.    PAGENUM_FAMILY \\*[$TOC_PN_FAM]
+.    START
 .    PDF_BOOKMARK 1 \\*[$TOC_HEADER_STRING]
 .    if \\n[#PRINT_STYLE]=1 .TYPEWRITER
 .    if \\n[#PRINT_STYLE]=2 \{\
@@ -14971,24 +14929,27 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       \}
 .    \}
 .    QUAD \\*[$TOC_HEADER_QUAD]
+.    if \\n[#TOC_HEADER_COLOR]=1 .gcolor \\*[$TOC_HEADER_COLOR]
 .    if \\n[#TOC_STRING_CAPS] .CAPS
+.    if \\n[#TOC_STRING_SMALLCAPS] .SMALLCAPS
 .    if \\n[#PRINT_STYLE]=1 \{\
 .       UNDERSCORE 3p "\\*[$TOC_HEADER_STRING]"
 .    \}
 .    if \\n[#PRINT_STYLE]=2 \{\
 .       ie \\n[#TOC_HEADER_UNDERLINE] \{\
-.          nr #FROM_TOC_HEADER 1
+.          ds $TITLE_TYPE TOC_HEADER
 .          ie \\n[#TOC_HEADER_UNDERLINE]=2 \
 .             UNDERSCORE2 \\*[$TOC_UNDERLINE_GAP] \\*[$TOC_RULE_GAP] 
"\\*[$TOC_HEADER_STRING]"
 .          el .UNDERSCORE "\\*[$TOC_HEADER_STRING]"
-.          rr #FROM_TOC_HEADER
 .       \}
 .       el .PRINT \\*[$TOC_HEADER_STRING]
 .    \}
+.    SMALLCAPS OFF
 .    CAPS OFF
+.    if \\n[#TOC_HEADER_COLOR]=1 .gcolor
 .    sp
+.    SHIM
 .    nf
-.    gcolor
 .    TOC_ENTRIES
 .    rr #TOC
 .    if \\n[#LINENUMBERS]=3 \{\
@@ -15109,7 +15070,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          tm1 "[mom]: You must append a number to the \\$1 argument to \\$0.
 .          tm1 "       The number should be the total number of items in this 
list.
 .          tm1 "       See the documentation.
-.          ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.          ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .       \}
 .       ds $ROMAN_WIDTH \\$1
 .          substring $ROMAN_WIDTH 1
@@ -15801,6 +15762,16 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#   N.B.--the START macro must be used after every COLLATE
 \#
 .MAC COLLATE END
+.    nr #HEADER_STATE \\n[#HEADERS_ON]
+.    if (\\n[defer]=0)&(\\n[float*defer]=0) .HEADERS OFF
+.    if \\n[#LINENUMBERS] \{\
+.       NUMBER_LINES off
+.       nr #LINENUMBERS 2
+.    \}
+.    if \\n[nl]=\\n[#PAGE_TOP] \{\
+.       nr #NO_NEWPAGE 1
+.       RESTORE_SPACE
+.    \}
 .    if \\n[defer] \
 .       DO_FOOTER
 .    EOL
@@ -15810,7 +15781,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    ds $SAVED_PP_FT   \\*[$PP_FT]
 .    nr #COLLATE 1
 .    nr #PRE_COLLATE 1
-.    nr #HEADER_STATE \\n[#HEADERS_ON]
 .    nr #POST_TOP 1
 .    nr #ARG_NUM 0 1
 .    nr #LOOP \\n[#ACTIVE_LEVELS]      \" loop count                           
        
@@ -15824,7 +15794,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    if \\n[pdf-img*label-with-chapter]=1 .nr pdf-img*label-num 0 1
 .    if \\n[pic*label-with-chapter]=1     .nr pic*label-num     0 1
 .    if \\n[tbl*label-with-chapter]=1     .nr tbl*label-num     0 1
-.    if (\\n[defer]=0)&(\\n[float*defer]=0) .HEADERS OFF
 .    if \\n[#DOC_HEADER]=2 .nr #DOC_HEADER 1
 .    if \\n[#PAGE_NUM_V_POS]=1 \{\
 .       nr #PAGINATION_STATE \\n[#PAGINATE]
@@ -15861,12 +15830,28 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       if \\n[#TOC]=0 .nr #CH_NUM +1
 .    rm $EN_TITLE
 .    COVERTITLE
-.    DOCCOVERTITLE
-.    MISC
+.    DOC_COVERTITLE
 .    TITLE
-.    SUBTITLE
 .    CHAPTER
 .    CHAPTER_TITLE
+.    SUBTITLE
+.    MISC
+.    rr #COVER_TITLE
+.    rr #DOC_COVER_TITLE
+.    rr #MISC
+.    rr #COVER_MISC
+.    rr #DOC_COVER_MISC
+.    rr #COPYRIGHT
+.    rr #COVER_COPYRIGHT
+.    rr #DOC_COVER_COPYRIGHT
+.    rr #COVER_AUTHOR
+.    rr #DOC_COVER_AUTHOR
+.    rm COVER_TEXT
+.    rm DOC_COVER_TEXT
+.    rm $COPYRIGHT
+.    rm $COVER_COPYRIGHT
+.    rm $DOC_COVER_COPYRIGHT
+.    rr #END_QUOTE
 .    rr #PAGENUM_STYLE_SET
 .    rr #DOC_COVER
 .    rr #COVER
@@ -15889,23 +15874,23 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#
 .MAC NUMBER_LINES END
 .    br
-.    if \\n[#QUOTE] \{\
-.       if \\n[#QUOTE]=1 .ds macro QUOTE
-.       if \\n[#QUOTE]=2 .ds macro BLOCKQUOTE
-.       tm1 "[mom]: \\$0 at line \\n[.c] may not be used inside \\*[macro].
-.       tm1 "       Please set NUMBER_LINES before \\*[macro], followed by
-.       tm1 "       NUMBER_\\*[macro]_LINES.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
-.    \}
 .    if '\\n[.z]'EPI_TEXT' .return
 .    if '\\$1'' \{\
 .       tm1 "[mom]: NUMBER_LINES at line \\n[.c] has no argument.
-.       tm1 "       Most likely, you have forgotten to give it a starting line 
number.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       tm1 "       You have forgotten to give a starting line number or 
'RESUME'.
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .    \}
 .    if !\\n[#LINENUMBERS]=2 .nr #LINENUMBERS 1
 .\" Test whether the first arg is a digit.
 .    if \B'\\$1' \{\
+.       if \\n[#QUOTE] \{\
+.          if \\n[#QUOTE]=1 .ds macro QUOTE
+.          if \\n[#QUOTE]=2 .ds macro BLOCKQUOTE
+.          tm1 "[mom]: \\$0 at line \\n[.c] may not be used inside \\*[macro].
+.          tm1 "       Please set NUMBER_LINES before \\*[macro], followed by
+.          tm1 "       NUMBER_\\*[macro]_LINES.
+.          ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       \}
 .       nr #LN \\$1
 .       ds $LN_NUM \\$1
 .       if !'\\n[.z]'' .nr #RESTORE_LN_NUM 1
@@ -15926,8 +15911,9 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       \}
 .       el \{\
 .          nm
-.\" register ln is still set and may confuse preprocessors like tbl
-.\" still, resuming line numbering must be possible, so save ln in $LN_NUM
+.\"  Register ln is still set and may confuse preprocessors like tbl.
+.\"  Still, resuming line numbering must be possible, so save ln in
+.\"  $LN_NUM
 .          ds $LN_NUM \\n[ln]
 .          if !\\n[#QUOTE] .nr ln 0
 .          if !\\n[#LINENUMBERS]=2 .rr #LINENUMBERS
@@ -15949,6 +15935,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \# *Function:
 \#   LN_PARAMS sets parameters for line numbers.
 \#   RESTORE_PARAMS restores them after internal calls to .nm
+\# *Notes:
+\#   It's not documented, but groff's linenumbering is processed
+\#   in a unique environment reserved for the numbers, such that
+\#   whatever style params were in effect prior to the invocation
+\#   of .nm remain in effect for the numbers even if the running
+\#   text has different params.  Eg, If you set .gcolor to 'purple'
+\#   before .nm then set it back to what it was, the numbers will be
+\#   purple while the text remains at the default color.
 \#
 .MAC LN_PARAMS END
 .    ie d$LN_FAM .fam \\*[$LN_FAM]
@@ -15968,6 +15962,23 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    gcolor
 .END
 \#
+\# Whether, at COLLATE, to reset line number to 1.
+\#
+\# NUMBER LINES PER SECTION
+\# ------------------------
+\# *Argument:
+\#   none
+\# *Function:
+\#   Sets register that determines whether, at COLLATE, to reset
+\#   line number to 1.
+\# *Notes:
+\#   The default is to continue the line numbering from where it
+\#   left off.
+\#
+.MAC NUMBER_LINES_PER_SECTION END
+.    nr #PER_SECTION 1
+.END
+\#
 \# NUMBER QUOTE AND BLOCKQUOTE LINES AS PART OF RUNNING TEXT
 \# ---------------------------------------------------------
 \# *Argument:
@@ -16526,7 +16537,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    if \\n[#INDENT_LEFT_ACTIVE] \{\
 .       in \\n[#L_INDENT]u
 .       if \\n[#QUOTE] \{\
-.          in -\\n[#L_INDENT]u \"Because you added an indent in 2nd line of 
macro
+.          in -\\n[#L_INDENT]u \"Because we added an indent in 2nd line of 
macro
 .          ll -\\n[#L_INDENT]u
 .          ta \\n[.l]u
 .       \}
@@ -16649,49 +16660,37 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#
 \# +++DOCUMENT PROCESSING ALIASES+++
 \#
-\# Aliases to make life easier for users: synonyms, short forms
+\# Create aliases to make life easier for users: synonyms, short forms
 \# and alternate spellings.
 \#
-.ALIAS   BREAK_BLOCKQUOTE    BREAK_QUOTE
-.ALIAS   BREAK_CITATION      BREAK_QUOTE
-.ALIAS   BREAK_CITE          BREAK_QUOTE
-.ALIAS   BLOCKQUOTE_INDENT   QUOTE_INDENT
-.ALIAS   CITATION            BLOCKQUOTE
-.ALIAS   CITATION_FAMILY     BLOCKQUOTE_FAMILY
-.ALIAS   CITATION_FONT       BLOCKQUOTE_FONT
-.ALIAS   CITATION_SIZE       BLOCKQUOTE_SIZE
-.ALIAS   CITATION_COLOR      BLOCKQUOTE_COLOR
-.ALIAS   CITATION_QUAD       BLOCKQUOTE_QUAD
-.ALIAS   CITE                BLOCKQUOTE
-.ALIAS   CITE_FAMILY         BLOCKQUOTE_FAMILY
-.ALIAS   CITE_FONT           BLOCKQUOTE_FONT
-.ALIAS   CITE_SIZE           BLOCKQUOTE_SIZE
-.ALIAS   CITE_COLOR          BLOCKQUOTE_COLOR
-.ALIAS   CITE_QUAD           BLOCKQUOTE_QUAD
-.ALIAS   DOC_R_MARGIN        DOC_RIGHT_MARGIN
-.ALIAS   DOC_L_MARGIN        DOC_LEFT_MARGIN
-.ALIAS   DOC_L_LENGTH        DOC_LINE_LENGTH
-.ALIAS   DOC_RMARGIN         DOC_RIGHT_MARGIN
-.ALIAS   DOC_LMARGIN         DOC_LEFT_MARGIN
-.ALIAS   DOC_LLENGTH         DOC_LINE_LENGTH
-.ALIAS   DOC_FAM             DOC_FAMILY
-.ALIAS   DOC_LS              DOC_LEAD
-.ALIAS   DOC_PS              DOC_PT_SIZE
-.ALIAS   FILL                QUAD
-.ALIAS   PAGENUM             PAGENUMBER
-.ALIAS   PAGINATION          PAGINATE
-.ALIAS   PP_FT               PP_FONT
-.ALIAS   REF_INDENT          INDENT_REFS
-.ALIAS   TOC_PS              TOC_PT_SIZE
+.ALIAS BREAK_BLOCKQUOTE    BREAK_QUOTE
+.ALIAS BREAK_CITATION      BREAK_QUOTE
+.ALIAS BREAK_CITE          BREAK_QUOTE
+.ALIAS CITATION            BLOCKQUOTE
+.ALIAS CITE                BLOCKQUOTE
+.ALIAS DOC_R_MARGIN        DOC_RIGHT_MARGIN
+.ALIAS DOC_L_MARGIN        DOC_LEFT_MARGIN
+.ALIAS DOC_L_LENGTH        DOC_LINE_LENGTH
+.ALIAS DOC_RMARGIN         DOC_RIGHT_MARGIN
+.ALIAS DOC_LMARGIN         DOC_LEFT_MARGIN
+.ALIAS DOC_LLENGTH         DOC_LINE_LENGTH
+.ALIAS DOC_FAM             DOC_FAMILY
+.ALIAS DOC_LS              DOC_LEAD
+.ALIAS DOC_PS              DOC_PT_SIZE
+.ALIAS FILL                QUAD
+.ALIAS PAGENUM             PAGENUMBER
+.ALIAS PAGINATION          PAGINATE
+.ALIAS PP_FT               PP_FONT
+.ALIAS REF_INDENT          INDENT_REFS
+.ALIAS TOC_PS              TOC_PT_SIZE
 \#
 \# HEADER and FOOTER macros
 \# ------------------------
 \# Because the type-style of headers and footers are managed
 \# identically, and the type-style macros (_<type parameter>) all
 \# require the correct name of the calling macro, it's necessary
-\# to create HEADER_ and FOOTER_ macros here.  They're basically
-\# aliases of HDRFTR_, but required because you can't alias an
-\# alias.
+\# to create HEADER_ and FOOTER_ macros here that are basically
+\# aliases with an argument.
 \#
 .MAC FOOTER_CENTER_COLOR END
 .    HDRFTR_CENTER_COLOR \\$1
@@ -17001,244 +17000,273 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    HDRFTR_SIZE \\$1
 .END
 \#
-\# HEADER and FOOTER aliases for HDRFTR macros.
-\#
-.ALIAS   BIBLIOGRAPHY_FOOTER_CENTER    BIBLIOGRAPHY_HDRFTR_CENTER
-.ALIAS   BIBLIOGRAPHY_FOOTER_CENTRE    BIBLIOGRAPHY_HDRFTR_CENTRE
-.ALIAS   BIBLIOGRAPHY_HEADER_CENTER    BIBLIOGRAPHY_HDRFTR_CENTER
-.ALIAS   BIBLIOGRAPHY_HEADER_CENTRE    BIBLIOGRAPHY_HDRFTR_CENTRE
-.ALIAS   ENDNOTES_FOOTER_CENTER    ENDNOTES_HDRFTR_CENTER
-.ALIAS   ENDNOTES_FOOTER_CENTRE    ENDNOTES_HDRFTR_CENTRE
-.ALIAS   ENDNOTES_HEADER_CENTER    ENDNOTES_HDRFTR_CENTER
-.ALIAS   ENDNOTES_HEADER_CENTRE    ENDNOTES_HDRFTR_CENTRE
-.ALIAS   FOOTER_CENTER_CAPS        HDRFTR_CENTER_CAPS
-.ALIAS   FOOTER_CENTER             HDRFTR_CENTER
-.ALIAS   FOOTER_CENTER_PAD         HDRFTR_CENTER_PAD
-.ALIAS   FOOTER_CENTRE             HDRFTR_CENTER
-.ALIAS   FOOTER_CENTRE_PAD         HDRFTR_CENTER_PAD
-.ALIAS   FOOTER_LEFT_CAPS          HDRFTR_LEFT_CAPS
-.ALIAS   FOOTER_LEFT               HDRFTR_LEFT
-.ALIAS   FOOTER_PLAIN              HDRFTR_PLAIN
-.ALIAS   FOOTER_RECTO              HDRFTR_RECTO
-.ALIAS   FOOTER_RIGHT_CAPS         HDRFTR_RIGHT_CAPS
-.ALIAS   FOOTER_RIGHT              HDRFTR_RIGHT
-.ALIAS   FOOTER_RULE_GAP           HDRFTR_RULE_GAP
-.ALIAS   FOOTER_RULE               HDRFTR_RULE
-.ALIAS   FOOTER_VERSO              HDRFTR_VERSO
-.ALIAS   HEADER_CENTER_CAPS        HDRFTR_CENTER_CAPS
-.ALIAS   HEADER_CENTER             HDRFTR_CENTER
-.ALIAS   HEADER_CENTER_PAD         HDRFTR_CENTER_PAD
-.ALIAS   HEADER_CENTRE_CAPS        HDRFTR_CENTER_CAPS
-.ALIAS   HEADER_CENTRE             HDRFTR_CENTER
-.ALIAS   HEADER_CENTRE_PAD         HDRFTR_CENTER_PAD
-.ALIAS   HEADER_LEFT_CAPS          HDRFTR_LEFT_CAPS
-.ALIAS   HEADER_LEFT               HDRFTR_LEFT
-.ALIAS   HEADER_PLAIN              HDRFTR_PLAIN
-.ALIAS   HEADER_RECTO              HDRFTR_RECTO
-.ALIAS   HEADER_RIGHT_CAPS         HDRFTR_RIGHT_CAPS
-.ALIAS   HEADER_RIGHT              HDRFTR_RIGHT
-.ALIAS   HEADER_RULE_GAP           HDRFTR_RULE_GAP
-.ALIAS   HEADER_RULE               HDRFTR_RULE
-.ALIAS   HEADER_VERSO              HDRFTR_VERSO
-.ALIAS   SWITCH_FOOTERS            SWITCH_HDRFTR
-.ALIAS   SWITCH_HEADERS            SWITCH_HDRFTR
-\#
-\# Type-style aliases
-\#
-.ALIAS   AUTHOR_FAMILY                    _FAMILY
-.ALIAS   BIBLIOGRAPHY_FAMILY              _FAMILY
-.ALIAS   BIBLIOGRAPHY_STRING_FAMILY       _FAMILY
-.ALIAS   BLOCKQUOTE_FAMILY                _FAMILY
-.ALIAS   CHAPTER_TITLE_FAMILY             _FAMILY
-.ALIAS   COVER_AUTHOR_FAMILY              _FAMILY
-.ALIAS   COVER_CHAPTER_TITLE_FAMILY       _FAMILY
-.ALIAS   COVER_COPYRIGHT_FAMILY           _FAMILY
-.ALIAS   COVER_DOCTYPE_FAMILY             _FAMILY
-.ALIAS   COVER_FAMILY                     _FAMILY
-.ALIAS   COVER_MISC_FAMILY                _FAMILY
-.ALIAS   COVER_SUBTITLE_FAMILY            _FAMILY
-.ALIAS   COVER_TITLE_FAMILY               _FAMILY
-.ALIAS   DOC_COVER_AUTHOR_FAMILY          _FAMILY
-.ALIAS   DOC_COVER_CHAPTER_TITLE_FAMILY   _FAMILY
-.ALIAS   DOC_COVER_COPYRIGHT_FAMILY       _FAMILY
-.ALIAS   DOC_COVER_DOCTYPE_FAMILY         _FAMILY
-.ALIAS   DOC_COVER_FAMILY                 _FAMILY
-.ALIAS   DOC_COVER_MISC_FAMILY            _FAMILY
-.ALIAS   DOC_COVER_SUBTITLE_FAMILY        _FAMILY
-.ALIAS   DOC_COVER_TITLE_FAMILY           _FAMILY
-.ALIAS   DOCHEADER_FAMILY                 _FAMILY
-.ALIAS   DOCTYPE_FAMILY                   _FAMILY
-.ALIAS   ENDNOTE_FAMILY                   _FAMILY
-.ALIAS   ENDNOTE_NUMBER_FAMILY            _FAMILY
-.ALIAS   ENDNOTE_LINENUMBER_FAMILY        _FAMILY
-.ALIAS   ENDNOTES_HEADER_FAMILY           _FAMILY
-.ALIAS   ENDNOTE_STRING_FAMILY            _FAMILY
-.ALIAS   ENDNOTE_TITLE_FAMILY             _FAMILY
-.ALIAS   EPIGRAPH_FAMILY                  _FAMILY
-.ALIAS   FOOTNOTE_FAMILY                  _FAMILY
-.ALIAS   HDRFTR_CENTER_FAMILY             _FAMILY
-.ALIAS   HDRFTR_FAMILY                    _FAMILY
-.ALIAS   HDRFTR_LEFT_FAMILY               _FAMILY
-.ALIAS   HDRFTR_RIGHT_FAMILY              _FAMILY
-.ALIAS   LINENUMBER_FAMILY                _FAMILY
-.ALIAS   PAGENUM_FAMILY                   _FAMILY
-.ALIAS   QUOTE_FAMILY                     _FAMILY
-.ALIAS   SUBTITLE_FAMILY                  _FAMILY
-.ALIAS   TITLE_FAMILY                     _FAMILY
-.ALIAS   TOC_FAM                          _FAMILY
-.ALIAS   TOC_FAMILY                       _FAMILY
-.ALIAS   TOC_HEADER_FAMILY                _FAMILY
-.ALIAS   TOC_PN_FAMILY                    _FAMILY
-\#
-.ALIAS   AUTHOR_FONT                    _FONT
-.ALIAS   BIBLIOGRAPHY_STRING_FONT       _FONT
-.ALIAS   BIBLIOGRAPHY_FONT              _FONT
-.ALIAS   BLOCKQUOTE_FONT                _FONT
-.ALIAS   CHAPTER_TITLE_FONT             _FONT
-.ALIAS   COVER_AUTHOR_FONT              _FONT
-.ALIAS   COVER_CHAPTER_TITLE_FONT       _FONT
-.ALIAS   COVER_COPYRIGHT_FONT           _FONT
-.ALIAS   COVER_DOCTYPE_FONT             _FONT
-.ALIAS   COVER_MISC_FONT                _FONT
-.ALIAS   COVER_SUBTITLE_FONT            _FONT
-.ALIAS   COVER_TITLE_FONT               _FONT
-.ALIAS   DOC_COVER_AUTHOR_FONT          _FONT
-.ALIAS   DOC_COVER_CHAPTER_TITLE_FONT   _FONT
-.ALIAS   DOC_COVER_COPYRIGHT_FONT       _FONT
-.ALIAS   DOC_COVER_DOCTYPE_FONT         _FONT
-.ALIAS   DOC_COVER_MISC_FONT            _FONT
-.ALIAS   DOC_COVER_SUBTITLE_FONT        _FONT
-.ALIAS   DOC_COVER_TITLE_FONT           _FONT
-.ALIAS   DOCTYPE_FONT                   _FONT
-.ALIAS   ENDNOTE_FONT                   _FONT
-.ALIAS   ENDNOTE_NUMBER_FONT            _FONT
-.ALIAS   ENDNOTE_LINENUMBER_FONT        _FONT
-.ALIAS   ENDNOTES_HEADER_FONT           _FONT
-.ALIAS   ENDNOTE_STRING_FONT            _FONT
-.ALIAS   ENDNOTE_TITLE_FONT             _FONT
-.ALIAS   EPIGRAPH_FONT                  _FONT
-.ALIAS   FOOTNOTE_FONT                  _FONT
-.ALIAS   HDRFTR_CENTER_FONT             _FONT
-.ALIAS   HDRFTR_LEFT_FONT               _FONT
-.ALIAS   HDRFTR_RIGHT_FONT              _FONT
-.ALIAS   LINENUMBER_FONT                _FONT
-.ALIAS   PAGENUM_FONT                   _FONT
-.ALIAS   QUOTE_FONT                     _FONT
-.ALIAS   SUBTITLE_FONT                  _FONT
-.ALIAS   TITLE_FONT                     _FONT
-.ALIAS   TOC_HEADER_FONT                _FONT
-.ALIAS   TOC_PN_FONT                    _FONT
-\#
-.ALIAS   AUTHOR_SIZE                    _SIZE
-.ALIAS   BIBLIOGRAPHY_STRING_SIZE       _SIZE
-.ALIAS   BLOCKQUOTE_SIZE                _SIZE
-.ALIAS   CHAPTER_TITLE_SIZE             _SIZE
-.ALIAS   COVER_AUTHOR_SIZE              _SIZE
-.ALIAS   COVER_CHAPTER_TITLE_SIZE       _SIZE
-.ALIAS   COVER_COPYRIGHT_SIZE           _SIZE
-.ALIAS   COVER_DOCTYPE_SIZE             _SIZE
-.ALIAS   COVER_MISC_SIZE                _SIZE
-.ALIAS   COVER_SUBTITLE_SIZE            _SIZE
-.ALIAS   COVER_TITLE_SIZE               _SIZE
-.ALIAS   DOC_COVER_AUTHOR_SIZE          _SIZE
-.ALIAS   DOC_COVER_CHAPTER_TITLE_SIZE   _SIZE
-.ALIAS   DOC_COVER_COPYRIGHT_SIZE       _SIZE
-.ALIAS   DOC_COVER_DOCTYPE_SIZE         _SIZE
-.ALIAS   DOC_COVER_MISC_SIZE            _SIZE
-.ALIAS   DOC_COVER_SUBTITLE_SIZE        _SIZE
-.ALIAS   DOC_COVER_TITLE_SIZE           _SIZE
-.ALIAS   DOCTYPE_SIZE                   _SIZE
-.ALIAS   ENDNOTE_NUMBER_SIZE            _SIZE
-.ALIAS   ENDNOTE_LINENUMBER_SIZE        _SIZE
-.ALIAS   ENDNOTES_HEADER_SIZE           _SIZE
-.ALIAS   ENDNOTE_STRING_SIZE            _SIZE
-.ALIAS   ENDNOTE_TITLE_SIZE             _SIZE
-.ALIAS   EPIGRAPH_SIZE                  _SIZE
-.ALIAS   FOOTNOTE_SIZE                  _SIZE
-.ALIAS   HDRFTR_CENTER_SIZE             _SIZE
-.ALIAS   HDRFTR_LEFT_SIZE               _SIZE
-.ALIAS   HDRFTR_RIGHT_SIZE              _SIZE
-.ALIAS   HDRFTR_SIZE                    _SIZE
-.ALIAS   LINENUMBER_SIZE                _SIZE
-.ALIAS   PAGENUM_SIZE                   _SIZE
-.ALIAS   QUOTE_SIZE                     _SIZE
-.ALIAS   SUBTITLE_SIZE                  _SIZE
-.ALIAS   TITLE_SIZE                     _SIZE
-.ALIAS   TOC_HEADER_SIZE                _SIZE
-.ALIAS   TOC_PN_SIZE                    _SIZE
-\#
-.ALIAS   ATTRIBUTE_COLOR                 _COLOR
-.ALIAS   AUTHOR_COLOR                    _COLOR
-.ALIAS   BLOCKQUOTE_COLOR                _COLOR
-.ALIAS   CHAPTER_TITLE_COLOR             _COLOR
-.ALIAS   CODE_COLOR                      _COLOR
-.ALIAS   COVER_ATTRIBUTE_COLOR           _COLOR
-.ALIAS   COVER_AUTHOR_COLOR              _COLOR
-.ALIAS   COVER_CHAPTER_TITLE_COLOR       _COLOR
-.ALIAS   COVER_COLOR                     _COLOR
-.ALIAS   COVER_COPYRIGHT_COLOR           _COLOR
-.ALIAS   COVER_DOCTYPE_COLOR             _COLOR
-.ALIAS   COVER_MISC_COLOR                _COLOR
-.ALIAS   COVER_SUBTITLE_COLOR            _COLOR
-.ALIAS   COVER_TITLE_COLOR               _COLOR
-.ALIAS   DOC_COVER_ATTRIBUTE_COLOR       _COLOR
-.ALIAS   DOC_COVER_AUTHOR_COLOR          _COLOR
-.ALIAS   DOC_COVER_CHAPTER_TITLE_COLOR   _COLOR
-.ALIAS   DOC_COVER_COLOR                 _COLOR
-.ALIAS   DOC_COVER_COPYRIGHT_COLOR       _COLOR
-.ALIAS   DOC_COVER_DOCTYPE_COLOR         _COLOR
-.ALIAS   DOC_COVER_MISC_COLOR            _COLOR
-.ALIAS   DOC_COVER_SUBTITLE_COLOR        _COLOR
-.ALIAS   DOC_COVER_TITLE_COLOR           _COLOR
-.ALIAS   DOCHEADER_COLOR                 _COLOR
-.ALIAS   DOCTYPE_COLOR                   _COLOR
-.ALIAS   ENDNOTES_HEADER_COLOR           _COLOR
-.ALIAS   ENDNOTE_STRING_COLOR            _COLOR
-.ALIAS   EPIGRAPH_COLOR                  _COLOR
-.ALIAS   FINIS_COLOR                     _COLOR
-.ALIAS   FOOTNOTE_COLOR                  _COLOR
-.ALIAS   HDRFTR_CENTER_COLOR             _COLOR
-.ALIAS   HDRFTR_COLOR                    _COLOR
-.ALIAS   HDRFTR_LEFT_COLOR               _COLOR
-.ALIAS   HDRFTR_RIGHT_COLOR              _COLOR
-.ALIAS   HDRFTR_RULE_COLOR               _COLOR
-.ALIAS   LINEBREAK_COLOR                 _COLOR
-.ALIAS   LINENUMBER_COLOR                _COLOR
-.ALIAS   PAGENUM_COLOR                   _COLOR
-.ALIAS   QUOTE_COLOR                     _COLOR
-.ALIAS   SECTION_COLOR                   _COLOR
-.ALIAS   SUBTITLE_COLOR                  _COLOR
-.ALIAS   TITLE_COLOR                     _COLOR
-.ALIAS   TOC_HEADER_COLOR                _COLOR
-\#
-.ALIAS   BIBLIOGRAPHY_QUAD          _QUAD
-.ALIAS   BIBLIOGRAPHY_STRING_QUAD   _QUAD
-.ALIAS   BLOCKQUOTE_QUAD            _QUAD
-.ALIAS   COVER_COPYRIGHT_QUAD       _QUAD
-.ALIAS   COVER_MISC_QUAD            _QUAD
-.ALIAS   COVER_QUAD                 _QUAD
-.ALIAS   DOC_COVER_COPYRIGHT_QUAD   _QUAD
-.ALIAS   DOC_COVER_MISC_QUAD        _QUAD
-.ALIAS   DOC_COVER_QUAD             _QUAD
-.ALIAS   DOCHEADER_QUAD             _QUAD
-.ALIAS   DOC_QUAD                   _QUAD
-.ALIAS   ENDNOTE_QUAD               _QUAD
-.ALIAS   ENDNOTES_HEADER_QUAD       _QUAD
-.ALIAS   ENDNOTE_STRING_QUAD        _QUAD
-.ALIAS   ENDNOTE_TITLE_QUAD         _QUAD
-.ALIAS   EPIGRAPH_QUAD              _QUAD
-.ALIAS   FOOTNOTE_QUAD              _QUAD
-.ALIAS   TOC_HEADER_QUAD            _QUAD
+\# Aliases for other HEADER and FOOTER macros.
+\#
+.ALIAS  BIBLIOGRAPHY_FOOTER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+.ALIAS  BIBLIOGRAPHY_FOOTER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTER
+.ALIAS  BIBLIOGRAPHY_HEADER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+.ALIAS  BIBLIOGRAPHY_HEADER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTER
+.
+.ALIAS  ENDNOTES_FOOTER_CENTER ENDNOTES_HDRFTR_CENTER
+.ALIAS  ENDNOTES_FOOTER_CENTRE ENDNOTES_HDRFTR_CENTER
+.ALIAS  ENDNOTES_HEADER_CENTER ENDNOTES_HDRFTR_CENTER
+.ALIAS  ENDNOTES_HEADER_CENTRE ENDNOTES_HDRFTR_CENTER
+.
+.ALIAS  FOOTER_CENTER           HDRFTR_CENTER
+.ALIAS  FOOTER_CENTER_CAPS      _HDRFTR_CAPS
+.ALIAS  FOOTER_CENTER_PAD       HDRFTR_CENTER_PAD
+.ALIAS  FOOTER_CENTER_SMALLCAPS _HDRFTR_SMALLCAPS
+.ALIAS  FOOTER_CENTRE           HDRFTR_CENTER
+.ALIAS  FOOTER_CENTRE_CAPS      _HDRFTR_CAPS
+.ALIAS  FOOTER_CENTRE_PAD       HDRFTR_CENTER_PAD
+.ALIAS  FOOTER_CENTRE_SMALLCAPS _HDRFTR_SMALLCAPS
+.ALIAS  FOOTER_LEFT             HDRFTR_LEFT
+.ALIAS  FOOTER_LEFT_CAPS        _HDRFTR_CAPS
+.ALIAS  FOOTER_LEFT_SMALLCAPS   _HDRFTR_SMALLCAPS
+.ALIAS  FOOTER_PLAIN            HDRFTR_PLAIN
+.ALIAS  FOOTER_RECTO            HDRFTR_RECTO
+.ALIAS  FOOTER_RIGHT            HDRFTR_RIGHT
+.ALIAS  FOOTER_RIGHT_CAPS       _HDRFTR_CAPS
+.ALIAS  FOOTER_RIGHT_SMALLCAPS  _HDRFTR_SMALLCAPS
+.ALIAS  FOOTER_RULE             HDRFTR_RULE
+.ALIAS  FOOTER_RULE_GAP         HDRFTR_RULE_GAP
+.ALIAS  FOOTER_VERSO            HDRFTR_VERSO
+.
+.ALIAS  HEADER_CENTER           HDRFTR_CENTER
+.ALIAS  HEADER_CENTER_CAPS      _HDRFTR_CAPS
+.ALIAS  HEADER_CENTER_PAD       HDRFTR_CENTER_PAD
+.ALIAS  HEADER_CENTER_SMALLCAPS _HDRFTR_SMALLCAPS
+.ALIAS  HEADER_CENTRE           HDRFTR_CENTER
+.ALIAS  HEADER_CENTRE_CAPS      _HDRFTR_CAPS
+.ALIAS  HEADER_CENTRE_PAD       HDRFTR_CENTER_PAD
+.ALIAS  HEADER_CENTRE_SMALLCAPS _HDRFTR_SMALLCAPS
+.ALIAS  HEADER_LEFT             HDRFTR_LEFT
+.ALIAS  HEADER_LEFT_CAPS        _HDRFTR_CAPS
+.ALIAS  HEADER_LEFT_SMALLCAPS   _HDRFTR_SMALLCAPS
+.ALIAS  HEADER_PLAIN            HDRFTR_PLAIN
+.ALIAS  HEADER_RECTO            HDRFTR_RECTO
+.ALIAS  HEADER_RIGHT            HDRFTR_RIGHT
+.ALIAS  HEADER_RIGHT_CAPS       _HDRFTR_CAPS
+.ALIAS  HEADER_RIGHT_SMALLCAPS  _HDRFTR_SMALLCAPS
+.ALIAS  HEADER_RULE             HDRFTR_RULE
+.ALIAS  HEADER_RULE_GAP         HDRFTR_RULE_GAP
+.ALIAS  HEADER_VERSO            HDRFTR_VERSO
+.
+.ALIAS  SWITCH_FOOTERS     SWITCH_HDRFTR
+.ALIAS  SWITCH_HEADERS     SWITCH_HDRFTR
+\#
+\# Create type-style aliases for tags, titles, and page elements
+\#
+\# These are used for creating aliases with while loops
+\#
+.ds ELEMENT_TYPE_1  BIBLIOGRAPHY_STRING
+.ds ELEMENT_TYPE_2  BIBLIOGRAPHY_HEADER
+.ds ELEMENT_TYPE_3  BLOCKQUOTE
+.ds ELEMENT_TYPE_4  CITATION
+.ds ELEMENT_TYPE_5  CITE
+.ds ELEMENT_TYPE_6  ENDNOTES_HEADER
+.ds ELEMENT_TYPE_7  ENDNOTE_STRING
+.ds ELEMENT_TYPE_8  EPIGRAPH
+.ds ELEMENT_TYPE_9  HDRFTR_CENTER
+.ds ELEMENT_TYPE_10 HDRFTR_LEFT
+.ds ELEMENT_TYPE_11 HDRFTR_RIGHT
+.ds ELEMENT_TYPE_12 LINENUMBER
+.ds ELEMENT_TYPE_13 PAGENUM
+.ds ELEMENT_TYPE_14 QUOTE
+.ds ELEMENT_TYPE_15 TOC_HEADER
+.ds ELEMENT_TYPE_16 CODE
+.ds ELEMENT_TYPE_17 FINIS
+.ds ELEMENT_TYPE_18 COPYRIGHT
+\#
+\# Create aliases for _FAMILY
+.ALIAS BIBLIOGRAPHY_FAMILY       _FAMILY
+.ALIAS COVER_FAMILY              _FAMILY
+.ALIAS DOCHEADER_FAMILY          _FAMILY
+.ALIAS DOC_COVER_FAMILY          _FAMILY
+.ALIAS ENDNOTE_FAMILY            _FAMILY
+.ALIAS ENDNOTE_LINENUMBER_FAMILY _FAMILY
+.ALIAS ENDNOTE_NUMBER_FAMILY     _FAMILY
+.ALIAS ENDNOTE_STRING_FAMILY     _FAMILY
+.ALIAS ENDNOTE_TITLE_FAMILY      _FAMILY
+.ALIAS FOOTNOTE_FAMILY           _FAMILY
+.ALIAS HDRFTR_FAMILY             _FAMILY
+.ALIAS PAGENUMBER_FAMILY         _FAMILY
+.ALIAS TOC_FAMILY                _FAMILY
+.ALIAS TOC_PAGENUMBER_FAMILY     _FAMILY
+.ALIAS TOC_PN_FAMILY             _FAMILY
+.ALIAS TOC_TITLE_FAMILY          _FAMILY
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=18 \{\
+. ALIAS \*[ELEMENT_TYPE_\n[#LOOP]]_FAMILY _FAMILY
+.\}
+\# Covers, docheader
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_FAMILY           _FAMILY
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_FAMILY     _FAMILY
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_FAMILY _FAMILY
+.\}
+\#
+\# Create aliases for _FONT
+.ALIAS BIBLIOGRAPHY_FONT       _FONT
+.ALIAS ENDNOTE_FONT            _FONT
+.ALIAS ENDNOTE_LINENUMBER_FONT _FONT
+.ALIAS ENDNOTE_NUMBER_FONT     _FONT
+.ALIAS ENDNOTE_TITLE_FONT      _FONT
+.ALIAS FOOTNOTE_FONT           _FONT
+.ALIAS TOC_PN_FONT             _FONT
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=18 \{\
+. ALIAS \*[ELEMENT_TYPE_\n[#LOOP]]_FONT _FONT
+.\}
+\# Covers, docheader
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_FONT           _FONT
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_FONT     _FONT
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_FONT _FONT
+.\}
+\#
+\# Create aliases for _SIZE
+.ALIAS   ENDNOTE_LINENUMBER_SIZE _SIZE
+.ALIAS   ENDNOTE_NUMBER_SIZE     _SIZE
+.ALIAS   ENDNOTE_TITLE_SIZE      _SIZE
+.ALIAS   FOOTNOTE_SIZE           _SIZE
+.ALIAS   HDRFTR_SIZE             _SIZE
+.ALIAS   TOC_PN_SIZE             _SIZE
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=18 \{\
+. ALIAS \*[ELEMENT_TYPE_\n[#LOOP]]_SIZE _SIZE
+.\}
+\# Covers, docheader
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_SIZE           _SIZE
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_SIZE     _SIZE
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_SIZE _SIZE
+.\}
+\#
+\# Create aliases for TITLE_LEAD
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_LEAD           TITLE_LEAD
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_LEAD     TITLE_LEAD
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_LEAD TITLE_LEAD
+.\}
+\#
+\# Create aliases for _UNDERLINE
+.ALIAS BIBLIOGRAPHY_HEADER_UNDERLINE  _UNDERLINE
+.ALIAS BIBLIOGRAPHY_HEADER_UNDERSCORE _UNDERLINE
+.ALIAS BIBLIOGRAPHY_STRING_UNDERLINE  _UNDERLINE
+.ALIAS BIBLIOGRAPHY_STRING_UNDERSCORE _UNDERLINE
+.ALIAS BIB_STRING_UNDERLINE           _UNDERLINE
+.ALIAS ENDNOTES_HEADER_UNDERLINE      _UNDERLINE
+.ALIAS ENDNOTES_HEADER_UNDERSCORE     _UNDERLINE
+.ALIAS ENDNOTES_STRING_UNDERLINE      _UNDERLINE
+.ALIAS ENDNOTES_STRING_UNDERSCORE     _UNDERLINE
+.ALIAS ENDNOTE_TITLE_UNDERLINE        _UNDERLINE
+.ALIAS ENDNOTE_TITLE_UNDERSCORE       _UNDERLINE
+.ALIAS EN_STRING_UNDERLINE            _UNDERLINE
+.ALIAS EN_STRING_UNDERSCORE           _UNDERLINE
+.ALIAS TOC_HEADER_UNDERLINE           _UNDERLINE
+.ALIAS TOC_HEADER_UNDERSCORE          _UNDERLINE
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE            _UNDERLINE
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_UNDERSCORE           _UNDERLINE
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE      _UNDERLINE
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERSCORE     _UNDERLINE
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERLINE  _UNDERLINE
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_UNDERSCORE _UNDERLINE
+.\}
+\#
+\# Create aliases for _COLOR
+.ALIAS BIBLIOGRAPHY_HEADER_COLOR _COLOR
+.ALIAS COVER_COLOR               _COLOR
+.ALIAS DOCHEADER_COLOR           _COLOR
+.ALIAS ENDNOTE_TITLE_COLOR       _COLOR
+.ALIAS FINIS_COLOR               _COLOR
+.ALIAS FOOTNOTE_COLOR            _COLOR
+.ALIAS HDRFTR_COLOR              _COLOR
+.ALIAS HDRFTR_RULE_COLOR         _COLOR
+.ALIAS LINEBREAK_COLOR           _COLOR
+.ALIAS SECTION_COLOR             _COLOR
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=18 \{\
+. ALIAS \*[ELEMENT_TYPE_\n[#LOOP]]_COLOR _COLOR
+.\}
+\# Covers, docheader
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_COLOR           _COLOR
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_COLOR     _COLOR
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_COLOR _COLOR
+.\}
+\#
+\# Create aliases for _CAPS
+.ALIAS BIBLIOGRAPHY_HEADER_CAPS _CAPS
+.ALIAS BIBLIOGRAPHY_STRING_CAPS _CAPS
+.ALIAS ENDNOTE_TITLE_CAPS       _CAPS
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_CAPS           _CAPS
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_CAPS     _CAPS
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_CAPS _CAPS
+.\}
+\#
+\# Create aliases for _SMALLCAPS
+.ALIAS BIBLIOGRAPHY_HEADER_SMALLCAPS _SMALLCAPS
+.ALIAS BIBLIOGRAPHY_STRING_SMALLCAPS _SMALLCAPS
+.ALIAS ENDNOTE_TITLE_SMALLCAPS       _SMALLCAPS
+.ALIAS HDRFTR_CENTER_SMALLCAPS       _SMALLCAPS
+.ALIAS HDRFTR_LEFT_SMALLCAPS         _SMALLCAPS
+.ALIAS HDRFTR_RIGHT_SMALLCAPS        _SMALLCAPS
+\#
+.nr #LOOP 0 1
+.while \n+[#LOOP]<=12 \{\
+. ALIAS \*[TITLE_TYPE_\n[#LOOP]]_SMALLCAPS           _SMALLCAPS
+. ALIAS COVER_\*[TITLE_TYPE_\n[#LOOP]]_SMALLCAPS     _SMALLCAPS
+. ALIAS DOC_COVER_\*[TITLE_TYPE_\n[#LOOP]]_SMALLCAPS _SMALLCAPS
+.\}
+\#
+\# Create aliases for _QUAD
+.ALIAS  BIBLIOGRAPHY_HEADER_QUAD  _QUAD
+.ALIAS  BIBLIOGRAPHY_QUAD         _QUAD
+.ALIAS  BIBLIOGRAPHY_STRING_QUAD  _QUAD
+.ALIAS  BLOCKQUOTE_QUAD           _QUAD
+.ALIAS  COPYRIGHT_QUAD            _QUAD
+.ALIAS  COVER_COPYRIGHT_QUAD      _QUAD
+.ALIAS  COVER_MISC_QUAD           _QUAD
+.ALIAS  COVER_QUAD                _QUAD
+.ALIAS  DOCHEADER_QUAD            _QUAD
+.ALIAS  DOC_COVER_COPYRIGHT_QUAD  _QUAD
+.ALIAS  DOC_COVER_MISC_QUAD       _QUAD
+.ALIAS  DOC_COVER_QUAD            _QUAD
+.ALIAS  DOC_QUAD                  _QUAD
+.ALIAS  ENDNOTES_HEADER_QUAD      _QUAD
+.ALIAS  ENDNOTE_QUAD              _QUAD
+.ALIAS  ENDNOTE_STRING_QUAD       _QUAD
+.ALIAS  ENDNOTE_TITLE_QUAD        _QUAD
+.ALIAS  EPIGRAPH_QUAD             _QUAD
+.ALIAS  FOOTNOTE_QUAD             _QUAD
+.ALIAS  MISC_QUAD                 _QUAD
+.ALIAS  TOC_HEADER_QUAD           _QUAD
 \#
 \# Support aliases
 \#
 .ALIAS   COL_BREAK               COL_NEXT
-.ALIAS   DOC_COVER_ADVANCE       COVER_ADVANCE
 .ALIAS   DOC_COVER               COVER
-.ALIAS   DOC_COVER_COUNTS_PAGES  COVER_COUNTS_PAGES
 .ALIAS   DOC_COVERS              COVERS
-.ALIAS   DOC_COVER_LEAD          COVER_LEAD
 .ALIAS   DOC_COVERTITLE          COVERTITLE
+.ALIAS   DOC_COVER_COUNTS_PAGES  COVER_COUNTS_PAGES
+.ALIAS   DOC_COVER_LEAD          COVER_LEAD
+.ALIAS   DOC_DOC_COVERTITLE      COVERTITLE
 .ALIAS   DO_DOC_COVER            DO_COVER
 .ALIAS   PRINT_FOOTNOTE_RULE     FOOTNOTE_RULE
 \#
@@ -17267,7 +17295,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    \}
 .END
 \#
-\#
 \# PREPROCESSOR SUPPORT
 \# ====================
 \#
@@ -17724,7 +17751,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          el .ds missing-arg PREFIX
 .          tm1 "[mom]: You must supply a \\*[missing-arg] argument to \\$0.
 .          tm1 "       If you wish the \\*[missing-arg] to be blank, use 
\\*[missing-arg] "".
-.          ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.          ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .       \}
 .       if !\\n[\\*[label-type]-label-args] \{\
 .          rr \\*[label-type]*autolabel
@@ -17745,7 +17772,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    tm1 "[mom]: \\$1 cannot determine a chapter number.
 .    tm1 "       Enter the current chapter number as a digit after the
 .    tm1 "       PREFIX_CHAPTER argument at line \\n[.c].
-.    ab Aborting '\\n[.F]', line \\n[.c]. 
+.    ab   [mom]: Aborting '\\n[.F]', line \\n[.c]. 
 .END
 \#
 \# MLA STYLE
@@ -17772,7 +17799,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \#
 .MAC address@hidden END
 .    tm1 "[mom]: MLA style enabled, but \\$1 has no corresponding \\$2.
-.    ab Aborting '\\$3' at \\$4, line \\$5.
+.    ab   [mom]: Aborting '\\$3' at \\$4, line \\$5.
 .END
 \#
 \# LISTS_OF
@@ -17880,9 +17907,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    \}
 .    ie !'\\*[$LISTS_TITLE_QUAD]'' \
 .       DOCHEADER_QUAD \\*[$LISTS_TITLE_QUAD]
-.    el .DOCHEADER_QUAD \\*[$TOC_HEADER_QUAD]
-.    if '\\*[$LISTS_TITLE_QUAD]'' \
-.       ds $LISTS_TITLE_QUAD \\*[$TOC_HEADER_QUAD]
+.    el .DOC_HEADER_QUAD \\*[$TOC_HEADER_QUAD]
 .    if !'\\*[$LISTS_TITLE_FAM]'' \
 .       TITLE_FAMILY \\*[$LISTS_TITLE_FAM]
 .    if !'\\*[$LISTS_TITLE_FT]'' \
@@ -17891,6 +17916,17 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       TITLE_SIZE \\*[$LISTS_TITLE_SIZE]
 .    if !'\\*[$LISTS_TITLE_COLOR]'' \
 .       TITLE_COLOR \\*[$LISTS_TITLE_COLOR]
+.    if \\n[#LISTS_TITLE_CAPS] \
+.       TITLE_CAPS
+.    if \\n[#LISTS_TITLE_SMALLCAPS] \
+.       TITLE_SMALLCAPS
+.    if \\n[#LISTS_TITLE_UNDERSCORE] \{\
+.       TITLE_UNDERSCORE \
+\\*[DOUBLE] \
+\\*[$LISTS_OF_UL_WT] \
+\\*[$LISTS_OF_UL_GAP] \
+\\*[$LISTS_OF_RULE_GAP]
+.    \}
 .    if '\\*[$LISTS_PN_FAM]'' \
 .       ds $LISTS_PN_FAM \\*[$TOC_PN_FAM]
 .    if '\\*[$LISTS_PN_FT]'' \
@@ -17947,20 +17983,25 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \# LISTS-OF STYLE
 \# --------------
 \# *Arguments:
-\#   FAMILY        fam  /
-\#   FONT          sty /
-\#   PT_SIZE       size /
-\#   LEAD          leading [ADJUST] /
-\#   TITLE_FAMILY  fam /
-\#   TITLE_FONT    sty /
-\#   TITLE_SIZE    +|-size /
-\#   TITLE_QUAD    LEFT | CENTER | RIGHT /
-\#   TITLE_COLOR   color /
-\#   NO_PAGINATION /
-\#   PAGENUM_STYLE format /
-\#   PN_FAMILY     fam /
-\#   PN_FONT       sty /
-\#   PN_SIZE       +|-size /
+\#   FAMILY        fam \
+\#   FONT          sty \
+\#   PT_SIZE       size \
+\#   LEAD          leading [ADJUST] \
+\#   TITLE_FAMILY  fam \
+\#   TITLE_FONT    sty \
+\#   TITLE_SIZE    +|-size \
+\#   TITLE_QUAD    LEFT | CENTER | RIGHT \
+\#   TITLE_COLOR   color \
+\#   TITLE_CAPS    \
+\#   TITLE_NO_CAPS \
+\#   TITLE_SMALLCAPS \
+\#   TITLE_NO_SMALLCAPS \
+\#   TITLE_UNDERSCORE [ DOUBLE] <wt> <gap> (dbl-rule-gap) \
+\#   NO_PAGINATION \
+\#   PAGENUM_STYLE format \
+\#   PN_FAMILY     fam \
+\#   PN_FONT       sty \
+\#   PN_SIZE       +|-size \
 \#   PN_PADDING    n
 \# *Function:
 \#   Allows setting of all style parameters for lists-of.
@@ -18000,6 +18041,100 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          ds $LISTS_TITLE_COLOR \\$2
 .          shift 2
 .       \}
+.       if '\\$1'TITLE_CAPS' \{\
+.          nr #LISTS_TITLE_CAPS 1
+.          shift 1
+.       \}
+.       if '\\$1'TITLE_NO_CAPS' \{\
+.          rr #LISTS_TITLE_CAPS
+.          shift 1
+.       \}
+.       if '\\$1'TITLE_SMALLCAPS' \{\
+.          nr #LISTS_TITLE_SMALLCAPS 1
+.          shift 1
+.       \}
+.       if '\\$1'TITLE_NO_SMALLCAPS' \{\
+.          rr #LISTS_TITLE_NO_SMALLCAPS
+.          shift 1
+.       \}
+.\" UNDERSCORE and UNDERLINE are identical, but we can't evaluate
+.\" the results of two string comparisons.
+.       if '\\$1'TITLE_UNDERSCORE' \{\
+.          nr #LISTS_TITLE_UNDERSCORE 1
+.          shift
+.          ie '\\$1'DOUBLE' \{\
+.             ds DOUBLE DOUBLE
+.             shift
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_WT \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_GAP \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_RULE_GAP \\$1
+.                shift
+.             \}
+.          \}
+.          el \{\
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_WT \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_GAP \\$1
+.                shift
+.             \}
+.          \}
+.       \}
+.       if '\\$1'TITLE_UNDERLINE' \{\
+.          nr #LISTS_TITLE_UNDERSCORE 1
+.          shift
+.          ie '\\$1'DOUBLE' \{\
+.             ds DOUBLE DOUBLE
+.             shift
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_WT \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_GAP \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_RULE_GAP \\$1
+.                shift
+.             \}
+.          \}
+.          el \{\
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_WT \\$1
+.                shift
+.             \}
+.             if \B'\\$1' \{\
+.                ds $LISTS_OF_UL_GAP \\$1
+.                shift
+.             \}
+.          \}
+.       \}
+.       if '\\$1'TITLE_NO_UNDERSCORE' \{\
+.          rr #LISTS_TITLE_UNDERSCORE 1
+.          rm DOUBLE
+.          rm $LISTS_OF_UL_WT
+.          rm $LISTS_OF_UL_GAP
+.          rm $LISTS_OF_RULE_GAP
+.          shift
+.       \}
+.       if '\\$1'TITLE_NO_UNDERLINE' \{\
+.          rr #LISTS_TITLE_UNDERSCORE 1
+.          rm DOUBLE
+.          rm $LISTS_OF_UL_WT
+.          rm $LISTS_OF_UL_GAP
+.          rm $LISTS_OF_RULE_GAP
+.          shift
+.       \}
 .       if '\\$1'PT_SIZE' \{\
 .          nr #LISTS_PS (p;\\$2)
 .          shift 2
@@ -18129,7 +18264,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 \!.  vpt
 .    da
 .END
-\#
+.
 .ALIAS TO_EQUATIONS LISTS_COLLECTOR
 .ALIAS TO_FIGURES   LISTS_COLLECTOR
 .ALIAS TO_TABLES    LISTS_COLLECTOR
@@ -18216,7 +18351,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    if !\\n[tbl*needs] .nr tbl*needs 1
 .    if !\\n[tbl*have-header] .nr tbl*no-header 1
 .    ds tbl*label-sffx-tmp \\*[tbl*label-sffx]
-.    substring tbl*label-sffx-tmp -1
+.    if !'\\*[tbl*label-sffx-tmp]'' .substring tbl*label-sffx-tmp -1
 .    if '\\*[tbl*label-sffx-tmp]'.' \
 .       if (\\n[tbl*caption-after-label]=0):(\\n[#MLA]=1) .chop tbl*label-sffx
 .    if \\n[tbl*caption-after-label] \{\
@@ -18357,6 +18492,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    rr tbl*no-header
 .    if !'\\n[.z]'FLOAT*DIV' \{\
 .       ie \\n[.t]<(\\n[.v]+(\\n[.v]/2u)) \{\
+.          if \\n[tbl*have-label] \{\
 .          rm tbl*header-div
 .          nr tbl*no-top-hook 1
 .          nr pgnum \\n%+\\n[#PAGE_NUM_ADJ]
@@ -18368,6 +18504,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .          nr tbl*skip-label 1
 .          ch FN_OVERFLOW_TRAP -\\n[#FN_OVERFLOW_TRAP_POS]u
 .       \}
+.       \}
 .       el \{\
 .          if \\n[pre-tbl-vfp] \{\
 .            ch FOOTER 0+\\n[pre-tbl-vfp]u
@@ -18780,7 +18917,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .MAC tbl*float-warning END
 .    tm1 "[mom]: Table in FLOAT, output page \\n[#PAGENUMBER], exceeds page 
vertical limits.
 .    tm1 "       Multipage boxed tables cannot be contained within floats.
-.    ab Aborting '\\n[.F]'.
+.    ab   [mom]: Aborting '\\n[.F]'.
 .END
 \#
 .MAC address@hidden END \" Move vertically until there is enough space for \$1
@@ -18923,7 +19060,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       el \{\
 .          tm1 "[mom]: Invalid argument \\$1 to \\$0.
 .          tm1 "       Must be 'CONTINUED', 'CONT', or '...'
-.          ab Aborting '\\n[.F]' at line \\n[.c].
+.          ab   [mom]: Aborting '\\n[.F]' at line \\n[.c].
 .       \}
 .    \}
 .    if \\n[dl]:\\n[eqn*have-label] \{\
@@ -19506,7 +19643,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .    tm1 "[mom]: \\$1 has been removed from mom.  See the mom documentation 
'refer.html'
 .    tm1 "       for instructions on parenthetical insertions of references 
into text.
 .    ie '\\$1'REF_STYLE' .tm1 "       Continuing to process '\\n[.F]' from 
line \\n[.c].
-.    el .ab Aborting '\\n[.F]' at \\$1, line \\n[.c].
+.    el .ab   [mom]: Aborting '\\n[.F]' at \\$1, line \\n[.c].
 .END
 \#
 .MAC REF_BRACKETS_START END
@@ -20348,7 +20485,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .       tm1 "[mom]: 1.x-style \\$0 detected, but you are using v2.x.
 .       tm1 "       v2.x requires flags before arguments to \\$0.
 .       tm1 "       Please read docelement.html#mn-init and update your file.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .    \}
 .    nr #ARGS  0 1
 .    nr #COUNT 9
@@ -20583,8 +20720,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
 .  \}
 .\}
 .  if !\\n[#MNinit]=1 \{\
-.    tm [mom]: Macro MN: You must set parameters with MN_INIT before using MN.
-.    ab Aborting '\\n[.F]' at MN, line \\n[.c].
+.    tm1 "[mom]: Macro MN: You must set parameters with MN_INIT before using 
MN.
+.    ab   [mom]: Aborting '\\n[.F]' at MN, line \\n[.c].
 .  \}
 .  ie !'\\$1'' \{\
 .    if \\n[MN-active] \{\
@@ -20881,7 +21018,7 @@ Macro MN: Warning: Right margin note #\\n[MN-curr] on 
page \\n[#P] shifted down.
 .       nr PDF_LEV (\\n[LEVEL_REQ]*\\n[#PDF_BOOKMARKS_OPEN])
 .       ie '\\*[.T]'ps' \{\
 .           if !'\\*[PDF_NM]'' \{\
-.              pdfhref M -N \\*[PDF_NM2] -- \\*[PDF_TX]
+.              pdfhref M -N\\*[PDF_NM2] -- \\*[PDF_TX]
 .              if !dpdf:href.map .tm gropdf-info:href \\*[PDF_NM2] \\*[PDF_TX]
 .           \}
 .           pdfbookmark \\n[PDF_LEV] \\*[PDF_TX]
@@ -21042,7 +21179,7 @@ Macro MN: Warning: Right margin note #\\n[MN-curr] on 
page \\n[#P] shifted down.
 .MAC PDF_TARGET END
 .    ds ARG_1 \\$1
 .    shift
-.    pdfhref M -N \\*[ARG_1] -E -- \\$*
+.    pdfhref M -N\\*[ARG_1] -E -- \\$*
 .    if '\\*[.T]'ps' .if !dpdf:href.map .tm gropdf-info:href \\*[ARG_1] \\$*
 .END
 \#
@@ -21085,7 +21222,7 @@ Macro MN: Warning: Right margin note #\\n[MN-curr] on 
page \\n[#P] shifted down.
 .    substring address@hidden -1 -3
 .    if !'address@hidden'pdf' \{\
 .       tm1 "[mom]: Image file '\\*[pdf-img:file]' at line \\n[.c] not found, 
or not a PDF image.
-.       ab Aborting '\\n[.F]' at \\$0, line \\n[.c].
+.       ab   [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
 .    \}
 .    nr pdf-img:width \\$2
 .    nr pdf-img:depth \\$3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]