summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorwlemb <wlemb>2003-05-19 05:07:42 +0000
committerwlemb <wlemb>2003-05-19 05:07:42 +0000
commit0d32731683acbf86be6ea7538a31f238fa79c9a5 (patch)
tree3d721280f44c2d08f120379b165cf526263e8ae4 /contrib
parent8a41c54176f291913304f921606367a8bba07c2d (diff)
downloadgroff-0d32731683acbf86be6ea7538a31f238fa79c9a5.tar.gz
o Added TOC (finally) and a nearly complete set of associated
control macros o Added new control macros to endnotes: ENDNOTES_STRING_CAPS - capitalize the endnotes string ENDNOTES_NO_COLUMNS - allows docs in columns and endnotes not ENDNOTES_PAGENUM_STYLE - set page numbering style for endnotes ENDNOTES_FIRST_PAGENUMBER - set first pagenumber for endnotes ENDNOTES_ALLOWS_HEADERS - page headers on endnotes pages off or on ENDNOTES_NO_FIRST_PAGENUM - allows non-printing first page number when page footers are being used instead of headers ENDNOTES_SINGLE_SPACE - for TYPEWRITE, if doc double-spaced SUSPEND/RESTORE_PAGINATION - turns page numbering off for endnotes o Added an ADJUST option to ENDNOTE_LEAD o Added DOC_TITLE (like TITLE, but sets document-wide title for collated docs) o Added HDRFTR_CENTER_PAD, to allow adjustments to placement of HDRFTR_CENTER_STRING o Added BLANKPAGE macro, to output blank pages (silently numbered) o Extensive changes to DEFAULTS, START, COLLATE, HEAD, SUBHEAD and PARAHEAD because of new TOC and extended flexibility of ENDNOTES page design o Fixed DOCHEADER OFF (distance), FINIS o (Re)-fixed handling of post epigraph spacing after #START for TYPEWRITE double-spaced.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/mom/BUGS9
-rw-r--r--contrib/mom/ChangeLog36
-rw-r--r--contrib/mom/TODO9
-rw-r--r--contrib/mom/examples/elvis_syntax27
-rw-r--r--contrib/mom/examples/typeset.mom31
-rw-r--r--contrib/mom/examples/typewrite.mom4
-rw-r--r--contrib/mom/momdoc/docelement.html976
-rw-r--r--contrib/mom/momdoc/docprocessing.html156
-rw-r--r--contrib/mom/momdoc/headfootpage.html158
-rw-r--r--contrib/mom/momdoc/intro.html29
-rw-r--r--contrib/mom/momdoc/reserved.html733
-rw-r--r--contrib/mom/momdoc/toc.html87
-rw-r--r--contrib/mom/om.tmac1787
13 files changed, 3489 insertions, 553 deletions
diff --git a/contrib/mom/BUGS b/contrib/mom/BUGS
index a96c0619..ced43a60 100644
--- a/contrib/mom/BUGS
+++ b/contrib/mom/BUGS
@@ -11,6 +11,15 @@ questions and suggestions, or contact me directly at:
========================================================================
+Version 1.1.6
+============
+
+DOCHEADER OFF (distance) not being respected.
+---Fixed---
+
+FINIS killing ENDNOTES page numbering and heads.
+---Fixed---
+
Version 1.1.5
=============
diff --git a/contrib/mom/ChangeLog b/contrib/mom/ChangeLog
index ce93092e..271d038c 100644
--- a/contrib/mom/ChangeLog
+++ b/contrib/mom/ChangeLog
@@ -1,3 +1,39 @@
+*Sat May 17 2003
+
+o Added TOC (finally) and a nearly complete set of associated
+ control macros
+
+o Added new control macros to endnotes:
+
+ ENDNOTES_STRING_CAPS - capitalize the endnotes string
+ ENDNOTES_NO_COLUMNS - allows docs in columns and endnotes not
+ ENDNOTES_PAGENUM_STYLE - set page numbering style for endnotes
+ ENDNOTES_FIRST_PAGENUMBER - set first pagenumber for endnotes
+ ENDNOTES_ALLOWS_HEADERS - page headers on endnotes pages off or on
+ ENDNOTES_NO_FIRST_PAGENUM - allows non-printing first page number when page footers are being used instead of headers
+ ENDNOTES_SINGLE_SPACE - for TYPEWRITE, if doc double-spaced
+ SUSPEND/RESTORE_PAGINATION - turns page numbering off for endnotes
+
+o Added an ADJUST option to ENDNOTE_LEAD
+
+o Added DOC_TITLE (like TITLE, but sets document-wide title for collated docs)
+
+o Added HDRFTR_CENTER_PAD, to allow adjustments to placement of
+ HDRFTR_CENTER_STRING
+
+o Added BLANKPAGE macro, to output blank pages (silently numbered)
+
+o Extensive changes to DEFAULTS, START, COLLATE, HEAD, SUBHEAD and
+ PARAHEAD because of new TOC and extended flexibility of ENDNOTES
+ page design
+
+o Fixed DOCHEADER OFF (distance), FINIS
+
+*Sat Feb 22 2003
+
+o (Re)-fixed handling of post epigraph spacing after #START for
+ TYPEWRITE double-spaced.
+
*Sun Feb 16 2003
o Added James Ramsey's proposed CHAPTER_TITLE macro, along with his
diff --git a/contrib/mom/TODO b/contrib/mom/TODO
index c5f15413..7785cd9d 100644
--- a/contrib/mom/TODO
+++ b/contrib/mom/TODO
@@ -1,3 +1,12 @@
+NUMBERED HEADS, SUBHEADS and PARAHEADS
+--------------------------------------
+Macros to set numbering style (roman, arabic, alpha, etc)?
+
+FOOTNOTES
+---------
+In columnar docs, maybe give user the choice of gathering all
+footnotes at the bottom of the last column?
+
CONTROL MACROS -- _INDENT
--------------
Let user be able to enter decimal fractions as the argument to _INDENT
diff --git a/contrib/mom/examples/elvis_syntax b/contrib/mom/examples/elvis_syntax
index 02b91a48..33492723 100644
--- a/contrib/mom/examples/elvis_syntax
+++ b/contrib/mom/examples/elvis_syntax
@@ -4,11 +4,11 @@ extension .mom
startword .\
inword _(
keyword .ALD .ALIAS .ALWAYS_FULLSPACE_QUOTES .ATTRIBUTE_STRING
-keyword .AUTHOR .AUTHOR_FAMILY .AUTHOR_FONT .AUTHOR_SIZE .AUTOLEAD
+keyword .AUTHOR .AUTHOR_FAMILY .AUTHOR_FONT .AUTHOR_SIZE .AUTOLEAD .BLANKPAGE
keyword .BLOCKQUOTE .BLOCKQUOTE_FAMILY .BLOCKQUOTE_FONT .BLOCKQUOTE_QUAD .BLOCKQUOTE_SIZE
keyword .B_MARGIN .BR .BR_AT_LINE_KERN .BREAK_QUOTE
keyword .CAPS .CENTER .CENTRE
-keyword .CHAPTER .CHAPTER_TITLE CHAPTER_STRING .CITATION .CITE .CLOSING
+keyword .CHAPTER .CHAPTER_TITLE .CHAPTER_STRING .CITATION .CITE .CLOSING
keyword .COLLATE .COL_BREAK .COL_BREAK .COL_NEXT .COLUMNS
keyword .COMMENT .CONDENSE .COPYSTYLE
keyword .DATE .DEFAULTS
@@ -18,7 +18,7 @@ keyword .DOC_LEAD .DOC_LEAD_ADJUST .DOC_LEFT_MARGIN .DOC_LINE_LENGTH
keyword .DOC_LLENGTH .DOC_L_LENGTH .DOC_L_MARGIN .DOC_LMARGIN
keyword .DOC_LS .DOC_PS .DOC_PT_SIZE .DOC_QUAD
keyword .DOC_RIGHT_MARGIN .DOC_R_MARGIN .DOC_RMARGIN
-keyword .DOCTYPE .DOCTYPE_FAMILY .DOCTYPE_FONT .DOCTYPE_SIZE
+keyword .DOCTYPE .DOCTYPE_FAMILY .DOCTYPE_FONT .DOCTYPE_SIZE .DOC_TITLE
keyword .DRAFT .DRAFT_STRING .DRAFT_WITH_PAGENUMBER
keyword .DROPCAP .DROPCAP_ADJUST .DROPCAP_FAMILY .DROPCAP_FONT .DROPCAP_GUTTER .DROPCAP_OFF
keyword .EL
@@ -31,6 +31,9 @@ keyword .ENDNOTE_TITLE_QUAD .ENDNOTE_TITLE_UNDERSCORE
keyword .ENDNOTE_NUMBER_FAMILY .ENDNOTE_NUMBER_FONT .ENDNOTE_NUMBER_SIZE
keyword .ENDNOTE_NUMBERS_ALIGN_RIGHT .ENDNOTE_NUMBERS_ALIGN_LEFT
keyword .ENDNOTE_PARA_INDENT .ENDNOTE_PARA_SPACE .ENDNOTES_FOOTER_CENTER .ENDNOTES_HEADER_CENTER
+keyword .ENDNOTE_STRING_CAPS .ENDNOTES_NO_COLUMNS .ENDNOTES_NO_FIRST_PAGENUM
+keyword .ENDNOTES_ALLOWS_HEADERS .ENDNOTES_PAGENUM_STYLE .ENDNOTES_FIRST_PAGENUMBER
+keyword .ENDNOTE_SINGLESPACE
keyword .EPIGRAPH .EPIGRAPH_AUTOLEAD .EPIGRAPH_FAMILY .EPIGRAPH_FONT
keyword .EPIGRAPH_INDENT .EPIGRAPH_QUAD .EPIGRAPH_SIZE
keyword .EW .EXTEND
@@ -52,7 +55,7 @@ keyword .FOOTNOTE_RULE_LENGTH .FOOTNOTE_SIZE
keyword .FROM .FT
keyword .GREETING
keyword .HDRFTR_CENTER .HDRFTR_CENTER .HDRFTR_CENTER_CAPS .HDRFTR_CENTER_FAMILY
-keyword .HDRFTR_CENTER_FONT .HDRFTR_CENTER_SIZE .HDRFTR_FAMILY .HDRFTR_GAP
+keyword .HDRFTR_CENTER_FONT .HDRFTR_CENTER_SIZE .HDRFTR_FAMILY .HDRFTR_GAP .HDRFTR_CENTER_PAD
keyword .HDRFTR_LEFT .HDRFTR_LEFT .HDRFTR_LEFT_CAPS .HDRFTR_LEFT_FAMILY
keyword .HDRFTR_LEFT_FONT .HDRFTR_LEFT_SIZE .HDRFTR_MARGIN .HDRFTR_PLAIN
keyword .HDRFTR_RIGHT .HDRFTR_RIGHT_CAPS .HDRFTR_RIGHT_FAMILY .HDRFTR_RIGHT_FONT
@@ -82,7 +85,7 @@ keyword .MCO .MCR .MCX
keyword .NEWPAGE .NEW_PAGE .NO_SUITE .NUMBER_HEADS .NUMBER_PARAHEADS .NUMBER_SUBHEADS
keyword .PAD .PADMARKER .PAD_STRING .PAGE .PAGE_LENGTH .PAGELENGTH .PAGEWIDTH
keyword .PAGENUM .PAGENUM_FAMILY .PAGENUM_FONT .PAGENUM_HYPHENS
-keyword .PAGENUM_ON_FIRST_PAGE .PAGENUM_POS .PAGENUM_SIZE .PAGENUM_STYLE
+keyword .PAGENUM_ON_FIRST_PAGE .PAGENUM_POS .PAGENUM_SIZE .PAGENUM_STYLE .PAGENUMBER
keyword .PAGINATE .PAGINATION .PAPER
keyword .PARAHEAD .PARAHEAD_FAMILY .PARAHEAD_FONT .PARAHEAD_INDENT .PARAHEAD_SIZE
keyword .PARA_INDENT .PARA_SPACE
@@ -98,9 +101,19 @@ keyword .SETBOLDER .SETSLANT .SILENT .SLANT_MEANS_SLANT .SMARTQUOTES .SP .SPACE
keyword .SPREAD .SS .ST .START .STRING .SUBHEAD .SUBHEAD_FAMILY .SUBHEAD_FONT .SUBHEAD_SIZE
keyword .SUBTITLE .SUBTITLE_FAMILY .SUBTITLE_FONT .SUBTITLE_SIZE
keyword .SWITCH_FOOTERS .SWITCH_HDRFTR .SWITCH_HEADERS
+keyword .SUSPEND_PAGINATION .RESTORE_PAGINATION
keyword .TAB_SET .TAB .TABSET .TB .TI
keyword .TITLE .TITLE_FAMILY .TITLE_FONT .TITLE_SIZE .T_MARGIN
-keyword .TN .TO .TQ .TRAP .TYPESIZE
+keyword .TN .TO .TOC
+keyword .TOC_FAMILY .TOC_PT_SIZE .TOC_LEAD .TOC_PAGENUM_STYLE
+keyword .TOC_HEADER_FAMILY .TOC_HEADER_FONT .TOC_HEADER_SIZE .TOC_HEADER_QUAD .TOC_HEADER_STRING
+keyword .TOC_TITLE_FAMILY .TOC_TITLE_FONT .TOC_TITLE_SIZE .TOC_TITLE_INDENT
+keyword .TOC_HEAD_FAMILY .TOC_HEAD_FONT .TOC_HEAD_SIZE .TOC_HEAD_INDENT
+keyword .TOC_SUBHEAD_FAMILY .TOC_SUBHEAD_FONT .TOC_SUBHEAD_SIZE .TOC_SUBHEAD_INDENT
+keyword .TOC_PARAHEAD_FAMILY .TOC_PARAHEAD_FONT .TOC_PARAHEAD_SIZE .TOC_PARAHEAD_INDENT
+keyword .TOC_PN_FAMILY .TOC_PN_FONT .TOC_PN_SIZE
+keyword .TOC_APPENDS_AUTHOR .TOC_RV_SWITCH .TOC_PADDING .PAGINATE_TOC
+keyword .TQ .TRAP .TYPESIZE
keyword .UNDERLINE .UNDERLINE_ITALIC .UNDERLINE_QUOTES .UNDERLINE_SLANT
keyword .UNDERSCORE .UNDERSCORE_2 .UNDERSCORE2
keyword .WS
@@ -109,7 +122,7 @@ font fixed TYPESET TYPEWRITE
font fixed FINAL DRAFT
font fixed BLOCK QUAD
font fixed LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM
-font fixed OFF QUIT END EXIT DONE NO
+font fixed OFF QUIT END EXIT DONE NO ALL
font fixed PAGE NUMBER STAR
font fixed COND EXT
font fixed LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO
diff --git a/contrib/mom/examples/typeset.mom b/contrib/mom/examples/typeset.mom
index 98dd918b..b12204b0 100644
--- a/contrib/mom/examples/typeset.mom
+++ b/contrib/mom/examples/typeset.mom
@@ -406,14 +406,15 @@ justo duo do\%lo\%res et ea rebum.
Sanctus est lorem ipsum dolor sit amet, consetetur sadipscing. Elitr,
sed diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna
ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et justo
-duo do\%lo\%res et ea rebum amet. Consetetur sadipsc\%
-ing elitr sed diam nonumy eirmod tempor invidunt ut
-.BREAK_QUOTE \" Needed because blockquote crosses page AND contain footnotes
-labore. Et do\%lo\%re magna ali\%quyam erat, sed diam voluptua, at
-vero. Eos et accusam et justo duo.\c
+rebum amet. Consetetur sadipsc\% ing elitr sed diam nonumy eirmod
+sed diam nonumy, eirmod tempor. Invidunt tempor invidunt ut labore.\c
.FOOTNOTE
-Labore et do\%lo\%re magna ali\%quyam erat sed diam voluptua.
+Sed diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re
+magna ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et
+justo.
.FOOTNOTE OFF
+Et do\%lo\%re et magna ali\%quyam erat, sed diam voluptua, at vero.
+Eos et accusam et justo duo.
.BLOCKQUOTE OFF
\#
.PP
@@ -465,12 +466,12 @@ erat, sed diam
voluptua at vero eos et accusam. Et justo duo do\%lo\%res et ea rebum,
stet clita kasd gubergren, no sea takimata.
.PP
-Sanctus est lorem ipsum. Dolor sit amet consete-
-.BREAK_QUOTE \" Needed because blockquote crosses column AND contain footnotes
-tur sadipscing elitr. Sed diam nonumy eirmod tempor invidunt ut
-labore. Et do\%lo\%re magna ali\%quyam erat, sed diam voluptua.
-At vero eos et accusam et justo duo. Dolores et ea rebum stet clita
-kasd gubergren no sea.
+Sanctus est lorem ipsum. Dolor sit amet consetetur sadipscing elitr. Sed diam nonumy eirmod tempor invidunt ut
+labore. Et do\%lo\%re magna ali\%quyam
+erat, sed diam voluptua.
+At vero eos et accusam et
+.BREAK_QUOTE \"Needed because blockquote crosses a column AND contains a footnote
+justo duo. Dolores et ea rebum stet clita kasd gubergren no sea.
.PP
Takimata lorem ipsum dolor sit amet consetetur sadipscing elitr.
Sed diam, nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna.
@@ -530,6 +531,12 @@ Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna.
Ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo
duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est.
+.PP
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna
+ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo
+duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea
+takimata sanctus est.
.RIGHT
\*[BD]\&...end of sample article\*[PREV]
.FINIS
diff --git a/contrib/mom/examples/typewrite.mom b/contrib/mom/examples/typewrite.mom
index b293840d..b3fb2f08 100644
--- a/contrib/mom/examples/typewrite.mom
+++ b/contrib/mom/examples/typewrite.mom
@@ -27,6 +27,7 @@
\# Additional style macros
\#
.NUMBER_PARAHEADS
+.HEADER_CENTER_PAD RIGHT 15p \" To get "Outline" in the page header visually centered
\#
.START
.PP
@@ -151,7 +152,8 @@ sit amet. Accusam et justo duo do\%lo\%res et ea rebum
\# Additional style macros
\#
.EPIGRAPH_FONT I \" TYPEWRITE underlines italics
-.HEADER_SIZE -1
+.HEADER_SIZE -1 \" Make page header type size smaller
+.HEADER_CENTER_PAD RIGHT 6p
\#
.START
.EPIGRAPH BLOCK
diff --git a/contrib/mom/momdoc/docelement.html b/contrib/mom/momdoc/docelement.html
index e1db2ab8..f1fde1fd 100644
--- a/contrib/mom/momdoc/docelement.html
+++ b/contrib/mom/momdoc/docelement.html
@@ -221,16 +221,22 @@ arguments as
<li><a href="#FOOTNOTE">FOOTNOTE</a>
<li><a href="#FOOTNOTE_CONTROL">Footnote control</a>
</ul>
+ <li><a href="#FINIS_INTRO">Document termination</a>
+ <ul>
+ <li><a href="#FINIS">FINIS</a>
+ <li><a href="#FINIS_STRING">Finis control</a> -- changing the FINIS string
+ </ul>
<li><a href="#ENDNOTE_INTRO">Endnotes</a>
<ul>
<li><a href="#ENDNOTE">ENDNOTE</a>
<li><a href="#ENDNOTE_CONTROL">Endnote control</a>
</ul>
- <li><a href="#FINIS_INTRO">Document termination</a>
+ <li><a href="#TOC_INTRO">Table of contents</a>
<ul>
- <li><a href="#FINIS">FINIS</a>
- <li><a href="#FINIS_STRING">Finis control</a> -- changing the FINIS string
+ <li><a href="#TOC">TOC</a>
+ <li><a href="#TOC_CONTROL">Table of contents control</a>
</ul>
+ <li><a href="#BLANK_PAGE_TITLE">Blank page</a>
</ul>
<hr>
@@ -639,6 +645,33 @@ head, simply surround each line with double-quotes.
and <strong>mom</strong> is unable to fit the head <em>plus at least
one line of text underneath it</em>, she will set the head at the
top of the next page.
+<p>
+<strong>ADDITIONAL NOTE:</strong> If an
+<a href="definitions.html#TERMS_INPUTLINE">input line</a>
+in a head (i.e. one of the lines surrounded by double-quotes) has
+to be broken by <strong>mom</strong> in order to fit the current
+line-length (say, a narrow column measure), the head underline
+(underscore) will not behave. You'll recognise the problem as soon
+as you preview your document. If you encounter a head that
+misbehaves with respect to underlining, the solution is to
+supply each line <em>as you want it</em> as a separate argument
+(surrounded by double-quotes) to the <strong>HEAD</strong> macro.
+<p>
+For example, if <strong>mom</strong> breaks
+<pre>
+ .HEAD "This is a very, very, very long head"
+</pre>
+into
+<pre>
+ This is a very, very, very
+ long head
+</pre>
+
+you'll see the misbehaving underscore and should change the
+argument to <strong>HEAD</strong> to
+<pre>
+ .HEAD "This is a very, very very" "long head"
+</pre>
<a name="HEAD_CONTROL"><h3><u>Head control macros</u></h3></a>
<p>
@@ -1462,7 +1495,7 @@ for a solution.
<a name="FOOTNOTE">
Macro: <strong>FOOTNOTE</strong> <var>&lt;toggle&gt; | INDENT LEFT | RIGHT | BOTH &lt;indent value&gt;</var>
<br>
- <em>*See <a href="#FOOTNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!
+ <em>*See <a href="#FOOTNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!</em>
<br>
&lt;indent value&gt; requires a
<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -1614,6 +1647,98 @@ is required.
<!====================================================================>
+<a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a>
+<ul>
+ <li><a href="#FINIS">Tag: FINIS</a>
+ <li><a href="#FINIS_STRING">Changing the FINIS string</a>
+</ul>
+
+<p>
+The use of <strong>FINIS</strong> is optional. If you invoke it
+(at the end of a document before
+<a href="#TOC">TOC</a>
+or
+<a href="#ENDNOTES">ENDNOTES</a>),
+<strong>mom</strong> turns off
+<a href="definitions.html#TERMS_FOOTER">footers</a>
+(if they're on) and page numbering (if page
+numbers are at the bottom of the page) and deposits the word
+END, centered after a blank line, beneath the last
+line of the document. END is enclosed between
+<a href="definitions.html#TERMS_EM">em-dashes</a>.
+<p>
+If you're writing in a language other than English, you can
+change what <strong>mom</strong> prints for END with
+the control macro <strong>FINIS_STRING</strong>.
+<br>
+
+<!---FINIS--->
+
+<hr width="66%" align="left">
+<p>
+<a name="FINIS">
+ Macro: <strong>FINIS</strong>
+</a>
+
+<p>
+The use of <strong>FINIS</strong> is optional, but if you use
+it, it should be the last macro you invoke in a document (before
+<a href="#ENDNOTES">ENDNOTES</a>
+or
+<a href="#TOC">TOC</a>).
+See
+<a href="#FINIS_INTRO">above</a>
+for a description of how <strong>FINIS</strong> behaves.
+<p>
+<strong>NOTE:</strong> If you don't use <strong>FINIS</strong>,
+and you don't want
+<a href="definitions.html#TERMS_FOOTER">footers</a>
+(if they're on) or a page number at the bottom of the last page of
+a document, you have to turn them off manually, as the last two
+lines of your document file, like this:
+<p>
+<pre>
+ .FOOTERS OFF
+ .PAGINATE OFF
+</pre>
+
+<a name="FINIS_STRING"><h3><u>Changing the FINIS string</u></h3></a>
+
+<p>
+By default, <strong>FINIS</strong> prints the word
+END between
+<a href="definitions.html#TERMS_EM">em-dashes</a>.
+If you'd like <strong>mom</strong> to print something else
+between the dashes, use the <strong>FINIS_STRING</strong> macro
+(anywhere in the document prior to <strong>FINIS</strong>).
+<p>
+For example, if your document's in French, you'd do
+<p>
+<pre>
+ .FINIS_STRING "FIN"
+</pre>
+
+Double-quotes must enclose the macro's argument.
+<p>
+<strong>NOTE:</strong> If you pass <strong>FINIS_STRING</strong>
+a blank string, i.e.
+<p>
+<pre>
+ .FINIS_STRING ""
+</pre>
+
+<strong>mom</strong> will still print the em-dashes if you
+invoke <strong>FINIS</strong>. This, in effect, produces a
+short, centered horizontal rule that terminates the document.
+(In
+<a href="docprocessing.html.#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+it's a short, dashed line composed of four hyphens.)
+
+<br>
+<hr>
+
+<!====================================================================>
+
<a name="ENDNOTE_INTRO"><h2><u>Endnotes</u></h2></a>
<ul>
<li><a href="#ENDNOTE_BEHAVIOUR">Endnote behaviour</a>
@@ -1623,7 +1748,7 @@ is required.
</ul>
<li><a href="#ENDNOTE">Tag: ENDNOTE</a>
<li><a href="#ENDNOTES">Macro: ENDNOTES</a> -- tell <strong>mom</strong> to output endnotes
- <li><a href="#ENDNOTE_CONTROL">ENDNOTE control macros</a>
+ <li><a href="#ENDNOTE_CONTROL">ENDNOTES control macros</a>
</ul>
<p>
@@ -1741,10 +1866,12 @@ rather than at the top.
<h3><u>Endnotes and columnar documents</u></h3>
</a>
<p>
-At present, there is no way to set a document in columns (see
+Formerly (pre 1.1.6), there was no way to set a document in columns
+(see
<a href="docprocessing.html#COLUMNS">COLUMNS</a>)
-and then turn off column mode for endnotes. If your document is set in
-columns, your endnotes will be, too.
+and then turn off column mode for endnotes. As of version 1.1.6,
+you may now do so. See
+<a href="#ENDNOTES_NO_COLUMNS">ENDNOTES_NO_COLUMS</a>.
<br>
<hr>
@@ -1754,7 +1881,7 @@ columns, your endnotes will be, too.
<a name="ENDNOTE">
Macro: <strong>ENDNOTE</strong> <var>&lt;toggle&gt;</var>
<br>
- <em>*See <a href="#ENDNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!
+ <em>*See <a href="#ENDNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!</em>
</a>
<p>
@@ -1829,15 +1956,30 @@ to the first instance of
<li><a href="#ENDNOTE_GENERAL">Base family/font/quad for endnotes-pages</a>
<li><a href="#ENDNOTE_PT_SIZE">Base point size for the endnotes-pages</a>
<li><a href="#ENDNOTE_LEAD">Leading of endnotes-pages</a>
+ <li><a href="#SINGLESPACE_ENDNOTES">Singlespace endnotes (for TYPEWRITE only)</a>
<li><a href="#ENDNOTE_PARA_INDENT">Size of paragraph first line indent in multi-paragraph endnotes</a>
<li><a href="#ENDNOTE_PARA_SPACE">Inserting space between paragraphs of multi-paragraph endnotes</a>
+ <li><a href="#ENDNOTES_NO_COLUMNS">Turning off column mode during endnotes output</a>
+ <li>Pagination of endnotes
+ <ul>
+ <li><a href="#ENDNOTES_PAGENUM_STYLE">Endnotes-pages page numbering style</a>
+ <li><a href="#ENDNOTES_FIRST_PAGENUMBER">Setting the first page number of endnotes pages</a>
+ <li><a href="#ENDNOTES_NO_FIRST_PAGENUM">Omitting a page number on the first page of endnotes</a>
+ </ul>
+ <li><a href="#SUSPEND_PAGINATION">Suspending pagination of endotes pages</a>
</ul>
<li><a href="#ENDNOTES_HEADER_CONTROL"><strong>Endnotes-page header/footer control</strong></a>
- <li><a href="#ENDNOTES_MAIN_TITLE"><strong>Endnotes-page head control</strong></a>
+ <ul>
+ <li><a href="#ENDNOTES_MODIFY_HDRFTR">Modifying what goes in the endnotes-pages header/footer</a>
+ <li><a href="#ENDNOTES_HDRFTR_CENTER">Enabling a header/footer centre when doctype is CHAPTER</a>
+ <li><a href="#ENDNOTES_ALLOWS_HEADERS">Allow headers on endnotes-pages</a>
+ </ul>
+ <li><a href="#ENDNOTES_MAIN_TITLE"><strong>Endnotes-page head (i.e. the title at the top) control</strong></a>
<ul>
<li><a href="#ENDNOTE_STRING">Creating/modifying the endnotes-page head</a>
<li><a href="#ENDNOTE_STRING_CONTROL">Endnotes-page head control</a>
<li><a href="#ENDNOTE_STRING_UNDERSCORE">Endnotes-page head underscoring</a>
+ <li><a href="#ENDNOTE_STRING_CAPS">Endnotes-page head capitalisation</a>
</ul>
<li><a href="#ENDNOTES_DOC_TITLE"><strong>Endnote document-identification title</strong></a>
<ul>
@@ -1859,7 +2001,7 @@ to the first instance of
<a name="ENDNOTES_GENERAL"><h2><u>1. General endnotes page style control</u></h2>
-<a name="ENDNOTE_GENERAL"><h3><u>Endnote family/font/quad</u></h3></a>
+<a name="ENDNOTE_GENERAL"><h3><u>*Endnote family/font/quad</u></h3></a>
<p>
See
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
@@ -1872,7 +2014,7 @@ See
<!---ENDNOTE_PT_SIZE--->
-<a name="ENDNOTE_PT_SIZE"><h3><u>Endnote point size</u></h3></a>
+<a name="ENDNOTE_PT_SIZE"><h3><u>*Endnote point size</u></h3></a>
<p>
Macro: <strong>ENDNOTE_PT_SIZE</strong> <var>&lt;base type size of endnotes&gt;</var>
@@ -1906,13 +2048,15 @@ the point size of other endnote page elements is calculated.
<p>
The default for
<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>
-is 12 points (the same default size used in the body of the document).
+is 12.5 points (the same default size used in the body of the document).
<!---ENDNOTE_LEAD--->
-<a name="ENDNOTE_LEAD"><h3><u>Endnote lead</u></h3></a>
+<a name="ENDNOTE_LEAD"><h3><u>*Endnote lead</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_LEAD</strong> <var>&lt;base leading of endnotes&gt;</var>
+Macro: <strong>ENDNOTE_LEAD</strong> <var>&lt;base leading of endnotes&gt; [ ADJUST ] </var>
+<br>
+<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>; points is assumed</em>
<p>
Unlike most other control macros that deal with leading of document
@@ -1939,13 +2083,48 @@ points, whereas
sets the base leading of type on the endnotes page to 1/2 inch.
<p>
+If you want the leading of endnotes adjusted to fill the page, pass
+<strong>ENDNOTE_LEAD</strong> the optional argument
+<strong>ADJUST</strong>. (See
+<a href="docprocessing.html#DOC_LEAD_ADJUST">DOC_LEAD_ADJUST</a>
+for an explanation of leading adjustment.)
+<p>
The default for
<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>
-is 14 points.
+is 14 points, adjusted.
+<p>
+<strong>NOTE:</strong> Even if you give <strong>mom</strong> a
+<strong>DOC_LEAD_ADJUST OFF</strong> command, she will still, by
+default, adjust endnote leading. You MUST enter
+<strong>ENDNOTE_LEAD &lt;lead&gt;</strong> with no
+<strong>ADJUST</strong> argument to disable this default behaviour.
+
+<!---SINGLESPACE_ENDNOTES--->
+
+<a name="SINGLESPACE_ENDNOTES"><h3><u>*Singlespace endnotes (TYPEWRITE only)</u></h3></a>
+<p>
+Macro: <strong>SINGLESPACE_ENDNOTES</strong> <var>&lt;toggle&gt;</var>
+
+<p>
+If your
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE</a>
+is <strong>TYPEWRITE</strong> and you use TYPEWRITE's default
+double-spacing, endnotes are double-spaced. If your document is
+single-spaced, endnotes are single-spaced.
+<p>
+If, for some reason, you'd prefer that endnotes be single-spaced
+in an otherwise double-spaced document (including double-spaced
+<a href="rectoverso.html#COLLATE">collated</a> documents), invoke
+<strong>SINGLESPACE_ENDNOTES</strong> with no argument. And if,
+god help you, you want to change endnote single-spacing back to
+double-spacing for different spacing of endnotes output at the ends
+of separate docs in a collated doc, invoke
+<strong>SINGLESPACE_ENDNOTES</strong> with any argument(<strong>OFF,
+QUIT, Q, X</strong>...).
<!---ENDNOTE_PARA_INDENT--->
-<a name="ENDNOTE_PARA_INDENT"><h3><u>Endnote paragraph indent</u></h3></a>
+<a name="ENDNOTE_PARA_INDENT"><h3><u>*Endnote paragraph indenting</u></h3></a>
<p>
Macro: <strong>ENDNOTE_PARA_INDENT</strong> <var>&lt;amount to indent first line of paragraphs in endnotes&gt;</var>
<br>
@@ -1972,7 +2151,7 @@ never indented. Only subsequent paragraphs are affected by
<!---ENDNOTE_PARA_SPACE--->
-<a name="ENDNOTE_PARA_SPACE"><h3><u>Endnote paragraph spacing</u></h3></a>
+<a name="ENDNOTE_PARA_SPACE"><h3><u>*Endnote paragraph spacing</u></h3></a>
<p>
Macro: <strong>ENDNOTE_PARA_SPACE</strong> <var>&lt;toggle&gt;</var>
@@ -1989,10 +2168,102 @@ endnotes.
previous endnote by a line space. <strong>ENDNOTE_PARA_SPACE</strong>
refers only to paragraphs that appear within each discrete endnote.
+<!---ENDNOTES_NO_COLUMNS--->
+
+<a name="ENDNOTES_NO_COLUMNS"><h3><u>*Turning off column mode during endnotes output</u></h3></a>
+<p>
+Macro: <strong>ENDNOTES_NO_COLUMNS</strong> <var>&lt;toggle&gt;</var>
+
+<p>
+By default, if your document is
+<a href="columns.html#COLUMNS">set in columns</a>,
+<strong>mom</strong> sets the endnotes in columns, too. However,
+if your document is set in columns and you'd like the endnotes not
+to be, just invoke <strong>ENDNOTES_NO_COLUMNS</strong> with no
+argument. The endnotes pages will be set to the full page measure
+of your document.
+<p>
+If you output endnotes at the end of each document in a
+<a href="rectoverso.html#COLLATE">collated</a>
+document set in columns, column mode will automatically
+be reinstated for each document, even with
+<strong>ENDNOTES_NO_COLUMNS</strong> turned on.
+
+<!---ENDNOTES_PAGENUM_STYLE--->
+
+<a name="ENDNOTES_PAGENUM_STYLE"><h3><u>*Endnotes-pages page numbering style</u></h3></a>
+<p>
+Macro: <strong>ENDNOTES_PAGENUM_STYLE</strong> <var>DIGIT | ROMAN | roman | ALPHA | alpha</var>
+
+<p>
+Use this macro to set the page numbering style of endnotes pages.
+The arguments are identical to those for
+<a href="headfootpage.html#PAGENUM_STYLE">PAGENUM_STYLE</a>.
+The default is <strong>digit</strong>. You may want to change it
+to, say, <strong>alpha</strong>, which you would do with
+<p>
+<pre>
+ .ENDNOTES_PAGENUM_STYLE alpha
+</pre>
+
+<!---ENDNOTES_FIRST_PAGENUMBER--->
+
+<a name="ENDNOTES_FIRST_PAGENUMBER"><h3><u>*Setting the first page number of endnotes pages</u></h3></a>
+<p>
+Macro: <strong>ENDNOTES_FIRST_PAGENUMBER</strong> <var>&lt;page # that appears on page 1 of endnotes&gt;</var>
+
+<p>
+Use this macro with caution. If all endnotes for several
+<a href="rectoverso.html#COLLATE">collated</a>
+documents are to be output at once, i.e. not at the end of each
+separate doc, <strong>ENDNOTES_FIRST_PAGENUMBER</strong> tells
+<strong>mom</strong> what page number to put on the first page of
+the endnotes.
+<p>
+If you set <strong>ENDNOTES_FIRST_PAGENUMBER</strong> in collated
+documents where the endnotes are output after each separate doc,
+you have to reset every separate document's first page number after
+<a href="rectoverso.html#COLLATE">COLLATE</a>
+and before
+<a href="docprocessing.html#START">START</a>.
+
+<!---ENDNOTES_NO_FIRST_PAGENUN--->
+
+<a name="ENDNOTES_NO_FIRST_PAGENUM"><h3><u>*Omitting a page number on the first page of endnotes</u></h3></a>
+<p>
+Macro: <strong>ENDNOTES_NO_FIRST_PAGENUM</strong> <var>&lt;toggle&gt;</var>
+
+<p>
+This macro is for use only if <strong>FOOTERS</strong> are on. It
+tells
+<a href="#ENDNOTES">ENDNOTES</a>
+not to print a page number on the first endnotes page.
+<strong>Mom</strong>'s default is to print the page number.
+
+<!---SUSPEND_PAGINATION--->
+
+<a name="SUSPEND_PAGINATION"><h3><u>*Suspending pagination of endnotes pages</u></h3></a>
+<p>
+Macro: <strong>SUSPEND_PAGINATION</strong>
+<br>
+Macro: <strong>RESTORE_PAGINATION</strong>
+
+<p>
+<strong>SUSPEND_PAGINATION</strong> doesn't take an argument.
+Invoked immediately prior to
+<a href="#ENDNOTES">ENDNOTES</a>,
+it turns off endnotes pages pagination. <strong>Mom</strong>
+continues, however to increment page numbers silently.
+<p>
+To restore normal document pagination after endnotes, invoke
+<strong>RESTORE_PAGINATION</strong> (again, with no argument)
+immediately after <strong>ENDNOTES</strong>.
+
<a name="ENDNOTES_HEADER_CONTROL"><h2><u>2. Endnotes-page header/footer control</u></h2></a>
<p>
-If you wish to modify the header/footer that appears on endnotes
-page(s), make the changes before you invoke
+<a name="ENDNOTES_MODIFY_HDRFTR"></a>
+If you wish to modify what appears in the header/footer that appears
+on endnotes page(s), make the changes before you invoke
<a href="#ENDNOTES">ENDNOTES</a>,
not afterwards.
<p>
@@ -2007,8 +2278,24 @@ title.) In most cases, this is what you want. However, should you
the endnotes page(s) headers/footers, invoke
<a href="#ENDNOTES_HDRFTR_CENTER">ENDNOTES_HEADER_CENTER</a>
with no argument.
+<p>
+An important change you may want to make is to put the word
+&quot;Endnotes&quot; in the header/footer center position.
+To do so, do
+<p>
+<pre>
+ .HEADER_CENTER "Endnotes"
+ or
+ .FOOTER_CENTER "Endnotes"
+</pre>
-<a name="ENDNOTES_HDRFTR_CENTER"><h3><u>Endnotes page(s) header/footer center string</u></h3></a>
+prior to invoking <strong>.ENDNOTES</strong>. If your
+<a href="docprocessing.html#DOCTYPE">DOCTYPE</a>
+is <kbd>CHAPTER</kbd>, you must also invoke
+<a href="#ENDNOTES_HDRFTR_CENTER">ENDNOTES_HEADER_CENTER</a>
+for the <strong>HEADER_CENTER</strong> to appear.
+
+<a name="ENDNOTES_HDRFTR_CENTER"><h3><u>*Endnotes page(s) header/footer center string</u></h3></a>
<p>
Macro: <strong>ENDNOTES_HEADER_CENTER</strong> <var>toggle</var>
@@ -2021,16 +2308,39 @@ invoke <strong>ENDNOTES_HEADER_CENTER</strong> (or
<strong>ENDNOTES_FOOTER_CENTER</strong>) with no argument.
<strong>Mom</strong>'s default is NOT to print the center string.
<p>
-If, for some
-reason, having enabled the header/footer center string on endnotes
-pages, you wish to disable it, invoke the same macro with any argument
-(<strong>OFF, QUIT, Q, X</strong>...).
+If, for some reason, having enabled the header/footer center string
+on endnotes pages, you wish to disable it, invoke the same macro
+with any argument (<strong>OFF, QUIT, Q, X</strong>...).
+
+<a name="ENDNOTES_ALLOWS_HEADERS"><h3><u>*Allow headers on endnotes_pages</u></h3></a>
+<p>
+Macro: <strong>ENDNOTES_ALLOWS_HEADERS</strong> <var>&lt;none&gt; | ALL</var>
+
+<p>
+By default, if <strong>HEADERS</strong> are on, <strong>mom</strong>
+prints page headers on all endnotes pages except the first. If you
+don't want her to print headers on endnotes pages, do
+<p>
+<pre>
+ .ENDNOTES_ALLOWS_HEADERS OFF
+</pre>
+
+If you want headers on every page <em>including the first</em>, do
+<p>
+<pre>
+ .ENDNOTES_ALLOWS_HEADERS ALL
+</pre>
+
+<strong>NOTE:</strong> If <strong>FOOTERS</strong> are on,
+<strong>mom</strong> prints footers on every endnotes page. This is
+a style convention. In <strong>mom</strong>, there is no such beast
+as <strong>ENDNOTES_ALLOWS_FOOTERS OFF</strong>.
-<a name="ENDNOTES_MAIN_TITLE"><h2><u>3. Endnotes page head control</u></h2>
+<a name="ENDNOTES_MAIN_TITLE"><h2><u>3. Endnotes-page first page head (title) control</u></h2>
<!---ENDNOTE_STRING--->
-<a name="ENDNOTE_STRING"><h3><u>Endnotes-page head string</u></h3></a>
+<a name="ENDNOTE_STRING"><h3><u>*Endnotes-page first page head (title) string</u></h3></a>
<p>
Macro: <strong>ENDNOTE_STRING</strong> <var>&quot;&lt;head to print at the top of endnotes&gt;&quot;</var>
@@ -2046,7 +2356,7 @@ at all).
<!---ENDNOTE_STRING_CONTROL--->
-<a name="ENDNOTE_STRING_CONTROL"><h3><u>Endnotes-page head control</u></h3></a>
+<a name="ENDNOTE_STRING_CONTROL"><h3><u>*Endnotes-page first page head (title) control</u></h3></a>
<p>
See
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
@@ -2062,7 +2372,7 @@ See
<!---ENDNOTE_STRING_UNDERSCORE--->
-<a name="ENDNOTE_STRING_UNDERSCORE"><h3><u>Endnotes-page head underscoring</h3></u></a>
+<a name="ENDNOTE_STRING_UNDERSCORE"><h3><u>*Endnotes-page head (title) underscoring</h3></u></a>
<p>
Macro: <strong>ENDNOTE_STRING_UNDERSCORE</strong> <var>toggle | 2</var>
@@ -2079,10 +2389,32 @@ head, therefore if you want no underscoring, you must insert
NONE,</kbd> etc.) into your document prior to outputting endnotes with
<a href="#ENDNOTES">ENDNOTES</a>.
+<!---ENDNOTE_STRING_CAPS--->
+
+<a name="ENDNOTE_STRING_CAPS"><h3><u>*Endnotes-page head (title) automatic capitalisation</h3></u></a>
+<p>
+Macro: <strong>ENDNOTE_STRING_CAPS</strong> <var>toggle</var>
+
+<p>
+Invoked by itself, <strong>ENDNOTE_STRING_CAPS</strong> will
+automatically capitalise the endnotes-page head. Invoked with any
+other argument, the macro disables automatic capitalisation of the
+head.
+<p>
+If you're generating a table of contents, you may want the
+endnotes-pages head string in caps, but the toc entry in caps/lower
+case. If the argument to
+<a href="#ENDNOTE_STRING">ENDNOTE_STRING</a>
+is in caps/lower case and <strong>ENDNOTE_STRING_CAPS</strong> is
+on, this is exactly what will happen.
+<p>
+<strong>Mom</strong>'s default is to capitalise the endnotes-pages
+head string.
+
<!---ENDNOTE_TITLE--->
<a name="ENDNOTES_DOC_TITLE"><h2><u>4. Endnote document-identification title</u></h2>
-<a name="ENDNOTE_TITLE"><h3><u>Endnote document-identification title string</u></h3></a>
+<a name="ENDNOTE_TITLE"><h3><u>*Endnote document-identification title string</u></h3></a>
<p>
Macro: <strong>ENDNOTE_TITLE</strong> <var>&quot;&lt;title to identify a document in endnotes&gt;&quot;</var>
@@ -2090,16 +2422,20 @@ Macro: <strong>ENDNOTE_TITLE</strong> <var>&quot;&lt;title to identify a documen
By default, <strong>mom</strong> identifies the document(s) to which
endnotes belong by the document title(s) given to the
<a href="docprocessing.html#TITLE">TITLE</a>
-macro. If you want her to identify the document(s) another way,
-invoke <strong>ENDNOTE_TITLE</strong> with the identifying title you
-want, surrounded by double-quotes. If you don't any identifying title,
-invoke <strong>ENDNOTE_TITLE</strong> with a blank argument (either two
-double-quotes side by side -- <kbd>&quot;&quot;</kbd> -- or no argument
-at all).
+macro. If you'd want her to identify the document(s) another way,
+just invoke <strong>ENDNOTE_TITLE</strong> with the identifying
+title you want, surrounded by double-quotes.
+<p>
+If you don't want any identifying title, invoke
+<strong>ENDNOTE_TITLE</strong> with a blank argument (either two
+double-quotes side by side -- <kbd>&quot;&quot;</kbd> -- or no
+argument at all). This is particularly useful if you have a single
+(i.e. non-collated) document and find having the document's title
+included in the endnotes redundant.
<!---ENDNOTE_TITLE_CONTROL--->
-<a name="ENDNOTE_TITLE_CONTROL"><h3><u>Endnote document-identification title control</u></h3></a>
+<a name="ENDNOTE_TITLE_CONTROL"><h3><u>*Endnote document-identification title control</u></h3></a>
<p>
See
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
@@ -2115,27 +2451,25 @@ See
<!---ENDNOTE_TITLE_UNDERSCORE--->
-<a name="ENDNOTE_TITLE_UNDERSCORE"><h3><u>Endnote document-identification title underscoring</h3></u></a>
+<a name="ENDNOTE_TITLE_UNDERSCORE"><h3><u>*Endnote document-identification title underscoring</h3></u></a>
<p>
Macro: <strong>ENDNOTE_TITLE_UNDERSCORE</strong> <var>toggle</var>
<p>
Inovked by itself, <strong>ENDNOTE_TITLE_UNDERSCORE</strong> will
-underscore the endnote document-identification title. Invoked with any
-other argument, the macro disables underscoring of the title.
+underscore the endnote document-identification title(s). Invoked with any
+other argument, the macro disables underscoring of the title(s).
<p>
<strong>Mom</strong>'s default is to underscore the document-identification title, therefore if you want no underscoring, you must
insert <kbd>.ENDNOTE_TITLE_UNDERSCORE OFF</kbd> (or <kbd>QUIT, X, NO,
NONE,</kbd> etc.) into your document prior to outputting endnotes with
<a href="#ENDNOTES">ENDNOTES</a>.
-at all.
-
<!---ENDNOTE_NUMBERING--->
<a name="ENDNOTES_NUMBERING"><h2><u>5. Endnotes-pages endnote numbering style</u></h2>
-<a name="ENDNOTE_NUMBER_CONTROL"><h3><u>Endnote numbering style control</u></h3></a>
+<a name="ENDNOTE_NUMBER_CONTROL"><h3><u>*Endnote numbering style control</u></h3></a>
<p>
See
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
@@ -2152,7 +2486,7 @@ endnote numbers that appear in the body of the document(s).
*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
</pre>
-<a name="ENDNOTE_NUMBER_ALIGNMENT"><h3><u>Endnote numbering alignment</u></h3></a>
+<a name="ENDNOTE_NUMBER_ALIGNMENT"><h3><u>*Endnote numbering alignment</u></h3></a>
<p>
By default, <strong>mom</strong> hangs the numbers on endnotes pages,
aligned right to two placeholders, producing this:
@@ -2235,84 +2569,542 @@ comes out like this:
<!====================================================================>
-<a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a>
+<a name="TOC_INTRO"><h2><u>Table of contents</u></h2></a>
<ul>
- <li><a href="#FINIS">Tag: FINIS</a>
- <li><a href="#FINIS_STRING">Changing the FINIS string</a>
+ <li><a href="#TOC_BEHAVIOUR">TOC behaviour</a>
+ <li><a href="#TOC">Macro: TOC</a> -- tell <strong>mom</strong> to output a table of contents
+ <li><a href="#TOC_CONTROL">TOC control macros</a>
</ul>
<p>
-The use of <strong>FINIS</strong> is optional. If you invoke it
-(at the end of a document, of course), <strong>mom</strong> turns off
-<a href="definitions.html#TERMS_FOOTER">footers</a>
-(if they're on) and page numbering (if page
-numbers are at the bottom of the page) and deposits the word
-END, centered after a blank line, beneath the last
-line of the document. END is enclosed between
-<a href="definitions.html#TERMS_EM">em-dashes</a>.
+Want a table of contents for your document? Easy. Just enter
<p>
-If you're writing in a language other than English, you can
-change what <strong>mom</strong> prints for END with
-the control macro <strong>FINIS_STRING</strong>.
+<pre>
+ .TOC
+</pre>
+
+as the very last macro of your document file. <strong>Mom</strong>
+will have picked up all document titles (in
+<a href="docprocessing.html#COLLATE">collated</a>
+documents), all heads, subheads, and paragraph heads, as well as any
+endnotes pages that have been output, and assigned them the
+appropriate page number (and page numbering style). Talk about a
+no-brainer!
+
+That said, tables of contents (tocs) have even more control macros
+than endnotes. As always, the reason for so many control macros is
+so that if you want to change just about any aspect of the toc's
+typographic appearance, you can. <strong>Mom</strong> is all about
+simplicity AND flexibility.
+
+<a name="TOC_BEHAVIOUR"><h3><u>TOC behaviour</u></h3></a>
+<p>
+When you output a toc (with
+<a href="#TOC">TOC</a>),
+<strong>mom</strong> finishes processing the last page of your document,
+then breaks to a new page for printing the toc.
+<p>
+<strong>Mom</strong> follows standard typesetting conventions for
+tables of contents. To this end, if
+<a href="headfootpage.html#HEADERS">HEADERS</a>
+are on for the document, the first page of the toc has no page
+header, but does have a first page (roman numeral) number, always
+&quot;1&quot;, in the bottom margin. If
+<a href="headfootpage.html#FOOTERS">FOOTERS</a>
+are on for the document, the first page has neither a footer, nor a
+page number in the top margin. (If you absolutely must have a page
+footer on the first page of the toc, simply invoke
+<a href="headfootpage.html#FOOTER_ON_FIRST_PAGE">FOOTER_ON_FIRST_PAGE</a>
+immediately before <strong>TOC</strong>.) Subsequent toc pages have
+both page headers or footers and a page number.
+<p>
+Entries in the toc are hierarchically indented, as you would
+expect. By default, each type of entry (e.g. a head or a subhead)
+is set in a different font as well. If any of heads, subheads or
+paragraph heads are numbered in the body of the document, they are
+also numbered in the toc. Head numbering in the toc is NOT
+concatenated as it is in the body of the document, which would be
+visually redundant in a toc.
+<p>
+Tocs are never set in columns, regardless of whether the rest of
+the document is. Lastly, if
+<a href="rectoverso.html#RECTO_VERSO">recto/verso</a>
+printing is enabled, the toc respects it. This sometimes leads to
+tocs that begin with the wrong margins, but the margins can be
+corrected either by outputting a
+<a href="#BLANK_PAGE">BLANKPAGE</a>
+or by using the toc control macro
+<a href="#TOC_RV_SWITCH">TOC_RV_SWITCH</a>.
+<p>
+The overall toc
+<a href="definitions.html#TERMS_FAMILY">family</a>,
+<a href="definitions.html#TERMS_PS">point size</a>
+and
+<a href="definitions.html#TERMS_LEADING">lead</a>
+can be altered with the toc
+<a href="definitions.html#TERMS_CONTROLMACRO">control macros</a>,
+as can the family,
+<a href="definitions.html#TERMS_FONT">font</a>,
+point size and indent of each type of toc entry (i.e. title, head,
+subhead, paragraph head). Furthermore, the page numbering style
+can be changed, as can the amount of visual space reserved for toc
+entry page numbers.
<br>
-<!---FINIS--->
+<!---TOC--->
<hr width="66%" align="left">
<p>
-<a name="FINIS">
- Macro: <strong>FINIS</strong>
+<a name="TOC">Macro: <strong>TOC</strong></a>
+
+<p>
+If you want a toc, just put <strong>TOC</strong> as the last macro
+in a document. <strong>Mom</strong> takes care of the rest.
+<br>
+<hr width="66%" align="left">
+
+<a name="TOC_CONTROL"><h3><u>TOC control macros</u></h3></a>
+<p>
+Toc entries are not actually processed when <strong>mom</strong>
+collects them, so you can put any toc control macros anywhere you
+like in your document. Some may prefer to place them at the top of
+the file. Others may prefer to place them just before outputting
+the toc. The choice is yours.
+<br>
+<ol>
+ <li><a href="#TOC_GENERAL"><strong>General toc page style control</strong></a>
+ <ul>
+ <li><a href="#TOC_FAMILY">Base family for toc pages</a>
+ <li><a href="#TOC_PT_SIZE">Base point size for toc pages</a>
+ <li><a href="#TOC_LEAD">Leading of toc pages</a>
+ </ul>
+ <li><a href="#TOC_PAGENUMBERING"><strong>Toc page numbering</strong></a>
+ <ul>
+ <li><a href="#PAGINATE_TOC">Turn toc pagination on or off</a>
+ <li><a href="#TOC_PAGENUM_STYLE">Toc page numbering style</a>
+ </ul>
+ <li><a href="#TOC_HEADER"><strong>Changing the toc header (title), string and style</strong></a>
+ <ul>
+ <li><a href="#TOC_HEADER_STRING">Changing the string (title)</a>
+ <li><a href="#TOC_HEADER_STYLE">Changing the string (title) style</a>
+ </ul>
+ <li><a href="#TOC_STYLE"><strong>Changing the style for toc entries</strong></a>
+ <ul>
+ <li><a href="#TOC_INDENT">The toc _INDENT control macros</a>
+ <li><a href="#TOC_TITLE">Changing the style for toc title entries</a>
+ <li><a href="#TOC_HEAD">Changing the style for toc head entries</a>
+ <li><a href="#TOC_SUBHEAD">Changing the style for toc subhead entries</a>
+ <li><a href="#TOC_PARAHEAD">Changing the style for toc paragraph head entries</a>
+ <li><a href="#TOC_PN">Changing the style for toc page number listings</a>
+ </ul>
+ <li><a href="#TOC_ADDITIONAL"><strong>Additional toc control macros</strong></a>
+ <ul>
+ <li><a href="#TOC_APPENDS_AUTHOR">Append author(s) to toc title entries</a>
+ <li><a href="#TOC_RV_SWITCH">TOC_RV_SWITCH</a>
+ <li><a href="#TOC_PADDING">TOC_PADDING</a>
+ </ul>
+</ol>
+<hr>
+
+<a name="TOC_GENERAL"><h2><u>1. General toc page style control</u></h2>
+
+<a name="TOC_FAMILY"><h3><u>*Toc family</u></h3></a>
+<p>
+See
+<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
+<p>
+Set the family of toc pages with <strong>TOC_FAMILY</strong>, which
+establishes the default family for every element of a toc page,
+including the toc title (&quot;Contents&quot;) and the page number
+in the top or bottom margin. The default is the prevailing document
+family.
+<p>
+All elements on a toc page also have their own _FAMILY
+control macros, which override the default set by
+<strong>TOC_FAMILY</strong>.
+<!---TOC_PT_SIZE--->
+
+<a name="TOC_PT_SIZE"><h3><u>*Toc point size</u></h3></a>
+<p>
+Macro: <strong>TOC_PT_SIZE</strong> <var>&lt;base type size of the toc&gt;</var>
+
+<p>
+Unlike most other control macros that deal with size of document
+elements, <strong>TOC_PT_SIZE</strong> takes as its argument an
+absolute value, relative to nothing. Therefore, the argument
+represents the size of toc type in
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>,
+unless you append an alternative
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+For example,
+<p>
+<pre>
+ .TOC_PT_SIZE 12
+</pre>
+
+sets the base point size of type for the toc to 12 points, whereas
+<p>
+<pre>
+ .TOC_PT_SIZE .6i
+</pre>
+
+sets the base point size of type for the toc to 1/6 of an inch.
+<p>
+The type size set with <strong>TOC_PT_SIZE</strong> forms the basis
+from which the point size of other toc page elements are calculated.
+<p>
+The default for
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>
+is 12.5 points (the same default size used in the body of the
+document).
+
+<!---TOC_LEAD--->
+
+<a name="TOC_LEAD"><h3><u>*Toc lead</u></h3></a>
+<p>
+Macro: <strong>TOC_LEAD</strong> <var>&lt;leading of the toc&gt; [ ADJUST ]</var>
+<br>
+<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>; points is assumed</em>
+
+<p>
+Unlike most other control macros that deal with leading of document
+elements, <strong>TOC_LEAD</strong> takes as its argument an
+absolute value, relative to nothing. Therefore, the argument
+represents the
+<a href="definitions.html#TERMS_LEADING">leading</a>
+of tocs in
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>
+unless you append an alternative
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+For example,
+<p>
+<pre>
+ .TOC_LEAD 14
+</pre>
+
+sets the base leading of type on the endnotes page to 14
+points, whereas
+<p>
+<pre>
+ .TOC_LEAD .5i
+</pre>
+
+sets the base leading of type on the endnotes page to 1/2 inch.
+<p>
+If you want the leading of toc pages adjusted to fill the
+page, pass <strong>TOC_LEAD</strong> the optional argument
+<strong>ADJUST</strong>. (See
+<a href="docprocessing.html#DOC_LEAD_ADJUST">DOC_LEAD_ADJUST</a>
+for an explanation of leading adjustment.)
+<p>
+The default for
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>
+is the prevailing document lead (16 by default), adjusted.
+<p>
+<strong>NOTE:</strong> Even if you give <strong>mom</strong> a
+<strong>DOC_LEAD_ADJUST OFF</strong> command, she will still, by
+default, adjust toc leading. You MUST enter
+<strong>TOC_LEAD &lt;lead&gt;</strong> with no
+<strong>ADJUST</strong> argument to disable this default behaviour.
+<p>
+<strong>ADDITIONAL NOTE:</strong> Tocs are always double-spaced in
+<strong>PRINTSTYLE TYPEWRITE</strong>, regardless of whether the
+body of the document is single-spaced.
+
+<a name="TOC_PAGENUMBERING"><h2><u>2. Toc page numbering</u></h2></a>
+<p>
+The page numbering of toc pages is controlled by the same macros
+that control
+<a href="headfootpage.html#PAGINATION">document page numbering</a>,
+except
+<a href="headfootpage.html#PAGENUM">PAGENUM</a>
+(tocs always start on page 1). The defaults are the same as the
+rest of the document.
+<p>
+If you wish to change some aspect of toc pagination, use the
+document pagination control macros immediately prior to
+<strong>.TOC</strong>.
+<p>
+A special macro,
+<a href="#TOC_PAGENUM_STYLE">TOC_PAGENUM_STYLE</a>
+controls the style of toc pages page numbers.
+<br>
+
+<hr width="33%" align="left">
+
+<!---PAGINATE_TOC--->
+
+<p>
+<a name="PAGINATE_TOC">
+ Macro: <strong>PAGINATE_TOC</strong> <var>&lt;toggle&gt;</var>
</a>
+<p>
+By default, <strong>mom</strong> paginates the toc. If you'd like
+her not to, do
+<p>
+<pre>
+ .PAGINATE_TOC OFF
+</pre>
+
+<strong>NOTE:</strong> Simply invoking <strong>PAGINATION
+OFF</strong> or <strong>PAGINATE OFF</strong> disables toc
+pagination <em>for the first toc page only.</em> You MUST use
+<strong>.PAGINATE_TOC OFF</strong> to disable toc pagination, even
+if pagination is turned off elsewhere in your document.
<p>
-The use of <strong>FINIS</strong> is optional, but if you use
-it, it should be the last macro you invoke in a document. See
-<a href="#FINIS_INTRO">above</a>
-for a description of how <strong>FINIS</strong> behaves.
+<hr width="33%" align="left">
<p>
-<strong>NOTE:</strong> If you don't use <strong>FINIS</strong>,
-and you don't want
-<a href="definitions.html#TERMS_FOOTER">footers</a>
-(if they're on) or a page number at the bottom of the last page of
-a document, you have to turn them off manually, as the last two
-lines of your document file, like this:
+
+<!---TOC_PAGENUM_STYLE--->
+
+<a name="TOC_PAGENUM_STYLE">
+ Macro: <strong>TOC_PAGENUM_STYLE</strong> <var>&lt;DIGIT | ROMAN | roman | ALPHA | alpha&gt;</var>
+</a>
+<p>
+By default, <strong>mom</strong> uses roman numerals to number
+toc pages. Use <strong>TOC_PAGENUM_STYLE</strong>if you'd prefer
+something else. For example, to have standard digits instead of
+roman numerals, do the following:
<p>
<pre>
- .FOOTERS OFF
- .PAGINATE OFF
+ .TOC_PAGENUM_STYLE DIGIT
</pre>
-<a name="FINIS_STRING"><h3><u>Changing the FINIS string</u></h3></a>
+<br>
+<hr width="33%" align="left">
+<br>
+<a name="TOC_HEADER"><h2><u>3. Changing the toc header (title) string and style</u></h2></a>
<p>
-By default, <strong>FINIS</strong> prints the word
-END between
-<a href="definitions.html#TERMS_EM">em-dashes</a>.
-If you'd like <strong>mom</strong> to print something else
-between the dashes, use the <strong>FINIS_STRING</strong> macro
-(anywhere in the document prior to <strong>FINIS</strong>).
+The toc header string is the title that appears at to top of the
+toc. By default, it's &quot;Contents&quot;. If you'd like
+something else, say, &quot;Table of Contents&quot;, do
<p>
-For example, if your document's in French, you'd do
+<a name="TOC_HEADER_STRING"></a>
+<pre>
+ .TOC_HEADER_STRING "Table of Contents"
+</pre>
+
+<a name="TOC_HEADER_STYLE"></a>
+The style of the toc header (title) is managed by the usual control
+macros (see
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
<p>
<pre>
- .FINIS_STRING "FIN"
+ .TOC_HEADER_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_HEADER_FONT default = bold
+ .TOC_HEADER_SIZE default = +4
+ .TOC_HEADER_QUAD default = left
</pre>
-Double-quotes must enclose the macro's argument.
+<a name="TOC_STYLE"><h2><u>4. Changing the style for toc entries</u></h2></a>
<p>
-<strong>NOTE:</strong> If you pass <strong>FINIS_STRING</strong>
-a blank string, i.e.
+&quot;Toc entries&quot; refers to titles, heads, subheads and
+paragraph heads as they appear in the toc. Their style is managed
+by the usual
+<a href="definitions.html#TERMS_CONTROLMACRO">control macros</a>,
+starting with TOC_
+
+<a name="TOC_INDENT"><h3><u>The toc _INDENT control macros</u></h3></a>
+<p>
+The toc control macros that end in _INDENT all take a single
+argument that requires a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+The argument is the distance to indent the entry from the left
+margin. For example,
<p>
<pre>
- .FINIS_STRING ""
+ .TOC_HEAD_INDENT 2P
</pre>
-<strong>mom</strong> will still print the em-dashes if you
-invoke <strong>FINIS</strong>. This, in effect, produces a
-short, centered horizontal rule that terminates the document.
-(In
-<a href="docprocessing.html.#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
-it's a short, dashed line composed of four hyphens.)
+indents head entries 2
+<a href="definitions.html#TERMS_PICASPOINTS">picas</a>
+from the left margin.
+
+<a name="TOC_TITLE"><h3><u>*Changing the style for toc title entries</u></h3></a>
+<p>
+(See
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
+<p>
+Toc title entries are the titles of documents that have been
+<a href="rectoverso.html#COLLATE">collated</a>
+together.
+<p>
+<pre>
+ .TOC_TITLE_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_TITLE_FONT default = bold italic
+ .TOC_TITLE_SIZE default = +0
+ .TOC_TITLE_INDENT default = 0 for TYPESET and TYPEWRITE
+</pre>
+
+<a name="TOC_HEAD"><h3><u>*Changing the style for toc head entries</u></h3></a>
+<p>
+(See
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
+<p>
+Toc head entries are main heads that appear in the body of a
+document.
+<p>
+<pre>
+ .TOC_HEAD_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_HEAD_FONT default = bold
+ .TOC_HEAD_SIZE default = +.5
+ .TOC_HEAD_INDENT default = 18p for TYPESET; 2m for TYPEWRITE
+</pre>
+
+<a name="TOC_SUBHEAD"><h3><u>*Changing the style for toc subhead entries</u></h3></a>
+<p>
+(See
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
+<p>
+Toc subhead entries are subheads that appear in the body of a
+document.
+<p>
+<pre>
+ .TOC_SUBHEAD_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_SUBHEAD_FONT default = roman
+ .TOC_SUBHEAD_SIZE default = +0
+ .TOC_SUBHEAD_INDENT default = 30p for TYPESET; 4m for TYPEWRITE
+</pre>
+
+<a name="TOC_PARAHEAD"><h3><u>*Changing the style for toc paragraph head entries</u></h3></a>
+<p>
+(See
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
+<p>
+Toc paragraph head entries are paragraph heads that appear in the
+body of a document.
+<p>
+<pre>
+ .TOC_PARAHEAD_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_PARAHEAD_FONT default = italic
+ .TOC_PARAHEAD_SIZE default = +0
+ .TOC_PARAHEAD_INDENT default = 42p for TYPESET; 6m for TYPEWRITE
+</pre>
+
+<a name="TOC_PN"><h3><u>*Changing the style for toc paragraph page number listings</u></h3></a>
+<p>
+(See
+<a href="#CONTROL_MACRO_ARGS">arguments to the control macros</a>).
+<p>
+Toc paragraph head entries are paragraph heads that appear in the
+body of a document.
+<p>
+<pre>
+ .TOC_PN_FAMILY default = prevailing doc family (Times Roman in TYPEWRITE)
+ .TOC_PN_FONT default = roman
+ .TOC_PN_SIZE default = +0
+</pre>
+
+<a name="TOC_ADDITIONAL"><h2><u>5. Additional toc macros</u></h2></a>
+<p>
+The following macros allow you to switch page margins should
+they be incorrect for recto/verso printing, to establish how
+many placeholders to leave for page listings, and to have
+<strong>mom</strong> append author(s) to toc title entries.
+
+<br>
+<hr width="33%" align="left">
+
+<!---TOC_RV_SWITCH--->
+
+<p>
+<a name="TOC_RV_SWITCH">
+ Macro: <strong>TOC_RV_SWITCH</strong>
+</a>
+<p>
+<strong>TOC_RV_SWITCH</strong> doesn't take an argument. It simply
+instructs <strong>mom</strong> to switch the left and right margins
+of
+<a href="rectoverso.html#RECTO_VERSO">recto/verso</a>
+documents should the toc happen to begin on an even page when you
+want an odd, or vice versa.
+<p>
+The same result can be accomplished by outputting a
+<a href="#BLANK_PAGE">BLANKPAGE</a>.
+
+<br>
+<hr width="33%" align="left">
+
+<!---TOC_APPENDS_AUTHOR--->
+
+<p>
+<a name="TOC_APPENDS_AUTHOR">
+ Macro: <strong>TOC_APPENDS_AUTHOR</strong> <var>&lt;none&gt; | &lt;&quot;name(s) of authors&quot;&gt;</var>
+</a>
+<p>
+In certain kinds of collated documents, different authors are
+responsible for the articles or stories contained within them. In
+such documents, you may wish to have the author or authors
+appended to the toc's title entry for each story or article.
+<p>
+If you invoke <strong>TOC_APPENDS_AUTHOR</strong> with no argument,
+<strong>mom</strong> appends the first argument you passed to
+<a href="docprocessing.html#AUTHOR">AUTHOR</a>
+to toc title entries, separated by a front-slash.
+<p>
+If you invoke <strong>TOC_APPENDS_AUTHOR</strong> with an argument
+(surrounded by double-quotes), <strong>mom</strong> will append it
+to the toc title entries instead. This is useful if you have
+multiple authors you wish to identify by last name only. For
+example, if three authors--Joe Blough, Jane Doe, and John
+Deere--are responsible for a single article
+<p>
+<pre>
+ .TOC_APPENDS_AUTHOR "Blough et al."
+</pre>
+
+would be a good way to identify them in the toc.
+
+<br>
+<hr width="33%" align="left">
+
+<!---TOC_PADDING--->
+
+<p>
+<a name="TOC_PADDING">
+ Macro: <strong>TOC_PADDING</strong> <var>&lt;# of placeholders to allow for page number listings&gt</var>
+</a>
+<p>
+By default, <strong>mom</strong> allows room for 3 digits in the
+page number listings of tocs. If you'd like some other number of
+placeholders, say 2, do
+<p>
+<pre>
+ .TOC_PADDING 2
+</pre>
+
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="BLANK_PAGE_TITLE"><h2><u>Inserting a blank page into the document</u></h2></a>
+<p>
+<a name="BLANK_PAGE">
+ Macro: <strong>BLANKPAGE</strong> <var>&lt;# of blank pages to insert&gt;</var>
+</a>
+
+<p>
+This one does exactly what you'd expect -- inserts a blank page into
+the document. <strong>Mom</strong> silently increments the page
+number of every blank page and keeps track of
+<a href="rectoverso.html#RECTO_VERSO">recto/verso</a>
+stuff, but otherwise, does nothing. It's up to you, the user, to
+figure out what to do with this feature. However, it's worth
+noting that without it, inserting completely blank pages, to use
+a vernacular Québécois phrase, &quot;c'est pas évident&quot;
+(somewhere between &quot;isn't easy&quot;, &quot;isn't
+obvious&quot; and &quot;isn't fun&quot;).
+<p>
+The argument to <strong>BLANK_PAGE</strong> is the number of blank
+pages to insert. The argument is not optional, hence even if you
+only want one blank page, you have to tell <strong>mom</strong>:
+<p>
+<pre>
+ .BLANKPAGE 1
+</pre>
<p>
<hr>
diff --git a/contrib/mom/momdoc/docprocessing.html b/contrib/mom/momdoc/docprocessing.html
index 04475372..c857c4f1 100644
--- a/contrib/mom/momdoc/docprocessing.html
+++ b/contrib/mom/momdoc/docprocessing.html
@@ -607,6 +607,47 @@ is <strong>CHAPTER</strong>, <strong>TITLE</strong> should be the
title of the opus, not &quot;CHAPTER whatever&quot;.
<br>
+<!---DOCTITLE--->
+
+<hr width="66%" align="left">
+<p>
+<a name="DOCTITLE"></a>
+Macro: <strong>DOCTITLE</strong> <var>&quot;&lt;overall document title&gt;&quot;</var>
+<br>
+<em>*Argument must be enclosed in double-quotes</em>
+
+<p>
+When you're creating a single document, say, an essay or a short
+story, you have no need of this macro.
+<a href="#TITLE">TITLE</a>
+takes care of all your title needs.
+<p>
+However if you're
+<a href="rectoverso.html#COLLATE">collating</a>
+a bunch of documents together, say, to print out a report containing
+many articles with different titles, or a book of short stories, you
+need <strong>DOCTITLE</strong>.
+<p>
+<strong>DOCTITLE</strong> tells <strong>mom</strong> the title
+of the complete document (as opposed to the title of each article
+or entitled section).
+<p>
+The doctitle string can be caps or caps/lower-case; it's up to you.
+In
+<a href="#PRINTSTYLE">PRINTSTYLE TYPESET</a>,
+by default, the doctitle appears in the rightmost position of
+<a href="definitions.html#TERMS_HEADER">page headers</a>,
+all in caps unless you turn that feature off (see
+<a href="headfootpage.html#_CAPS">HEADER_&lt;POSITION&gt;_CAPS</a>). In
+<a href="#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+the doctitle always gets converted to caps.
+<p>
+<strong>NOTE:</strong> If your
+<a href="#DOCTYPE">DOCTYPE</a>
+is <strong>CHAPTER</strong>, you don't need
+<strong>DOCTITLE</strong>. <strong>TITLE</strong> takes care of
+everything.
+<br>
<!---SUBTITLE--->
<hr width="66%" align="left">
@@ -854,8 +895,9 @@ for how <strong>mom</strong>'s outputs each part of the page header.)
If you give the chapter a title with
<a href="#CHAPTER_TITLE">CHAPTER TITLE</a>,
<strong>mom</strong> prints &quot;Chapter #&quot; and the title
-underneath. If you omit the <strong>CHAPTER</strong> reference
-macro but supply a
+underneath. If you omit the
+<a href="#CHAPTER">CHAPTER</a>
+reference macro but supply a
<a href="#CHAPTER_TITLE">CHAPTER_TITLE</a>,
<strong>mom</strong> prints only the chapter title. <em>(*For
backward compatability with pre-1.1.5 versions of</em>
@@ -898,6 +940,8 @@ for instructions on using <strong>mom</strong> to format letters.
Macro: <strong>PRINTSTYLE</strong> <var>TYPESET | TYPEWRITE [ SINGLESPACE ]</var>
<br>
<em>*Required for document processing.</em>
+<br>
+<em>*Must come before any changes to default document style</em>
<p>
<strong>PRINTSTYLE</strong> tells <strong>mom</strong> whether to typeset
@@ -907,7 +951,10 @@ a document, or to print it out &quot;typewritten, doubled-spaced&quot;.
document processing to take place, <strong>mom</strong> requires
a <strong>PRINTSTYLE</strong>. If you don't give one,
<strong>mom</strong> will warn you on stderr and print a single
-page with a nasty message.
+page with a nasty message. Furthermore, <strong>PRINTSTYLE</strong>
+must come before any changes to <strong>mom</strong>'s default
+typestyle parameters. (This applies primarily to
+<strong>PRINTSTYLE TYPESET</strong>.
<p>
<strong>TYPESET</strong>, as the argument implies, typesets documents
(by default in Times Roman; see
@@ -918,6 +965,25 @@ as well as the
<a href="definitions.html#STYLE_CONTROL">style control macros</a>
of document processing.
<p>
+As mentioned in the above paragraph, <strong>PRINTSTYLE
+TYPESET</strong> must come before any changes to
+<strong>mom</strong>'s default typographic settings. For example,
+
+<pre>
+ .LS 14
+ .PRINTSTYLE TYPESET
+</pre>
+
+will not changes <strong>mom</strong>'s default document leading
+of 16 points to 14 points, whereas
+
+<pre>
+ .PRINTSTYLE TYPESET
+ .LS 14
+</pre>
+
+will.
+<p>
With <strong>TYPEWRITE</strong>, <strong>mom</strong> does her best
to reproduce the look and feel of typewritten, double-spaced copy (see
<a href="#TYPEWRITE_DEFAULTS">TYPEWRITE defaults</a>).
@@ -1143,11 +1209,27 @@ adjusted to fill pages fully to the bottom margin.
<hr width="66%" align="left">
<a name="TYPE_BEFORE_START"><h2><u>Using the typesetting macros prior to START</u></h2></a>
-When used before the
-<a href="#START">START</a>
-macro, the following
+From time to time (or maybe frequently), you'll want the overall
+look of a document to differ from <strong>mom</strong>'s defaults.
+Perhaps you'd like her to use a different
+<a href="definitions.html#TERMS_FAMILY">family</a>,
+or a different overall
+<a href="definitions.html#TERMS_LEADING">leading</a>,
+or have different left and/or right page margins.
+<p>
+To accomplish such alterations, use the appropriate
<a href="typesetting.html#MACROS_TYPESETTING">typesetting macros</a>
-have these meanings:
+(listed below) prior to
+<a href="#START">START</a>.
+Do <strong>NOT</strong> use the macros listed in
+<a href="#DOC_PARAM_MACROS">Changing document-wide typesetting parameters after START</a>
+prior to <strong>START</strong>; they are exclusively for use afterwards.
+<p>
+When used before
+<strong>START</strong>,
+the
+<a href="typesetting.html#MACROS_TYPESETTING">typesetting macros</a>
+(below have) the following meanings:
<p>
<pre>
L_MARGIN Left margin of pages, including headers/footers
@@ -1208,41 +1290,57 @@ leading, then incrementally adds
to the leading until the maximum number of lines at the new leading
matches the bottom margin. In most instances, the difference
between the requested lead and the adjusted lead is
-unnoticeable.
+unnoticeable, and since in almost all cases adjusted leading is
+what you want, it's <strong>mom</strong>'s default.
<p>
-<strong>Mom</strong> uses <strong>DOC_LEAD_ADJUST</strong> with
-her default document settings, but if you invoke
-<a href="typesetting.html#LS">LS</a>
-or
-<a href="typesetting.html#AUTOLEAD">AUTOLEAD</a>
-prior to
-<a href="#START">START</a>,
-you have to do
+Should you NOT want adjusted document leading, you MUST turn it
+off manually, like this:
<p>
<pre>
- .DOC_LEAD_ADJUST
+ .DOC_LEAD_ADJUST OFF
</pre>
-in order to enable it.
-<p>
-If you don't like the idea of <strong>mom</strong> playing around
-with the leading by default, you can turn adjusting off with
+ If you set the document leading prior to <strong>START</strong>
+with
+<a href="typesetting.html#LS">LS</a>
+or
+<a href="typesetting.html#AUTOLEAD">AUTOLEAD</a>,
+<strong>DOC_LEAD_ADJUST OFF</strong> must come afterwards, like
+this:
<p>
<pre>
+ .LS 12
.DOC_LEAD_ADJUST OFF
</pre>
In this scenario, the maximum number of lines that fit on a page at
-the current document leading determine where <strong>mom</strong> ends
+a
+<a href="definitions.html#TERMS_LEADING">leading</a>
+of 12
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>
+determine where <strong>mom</strong> ends
a page. The effect will be that last lines usually fall (slightly)
-short of your expected bottom margin.
+short of the &quot;official&quot; bottom margin.
+<p>
+In
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE</a>
+<strong>TYPEWRITE</strong>, the leading is always adjusted and
+can't be turned off.
<p>
<strong>NOTE:</strong> <strong>DOC_LEAD_ADJUST</strong>, if
used, must be invoked after
-<a href="typesetting.html#LS">LS</a>
+<a href="typesetting.html#LEADING">LS</a>
or
<a href="typesetting.html#AUTOLEAD">AUTOLEAD</a>
and before
<a href="#START">START</a>
+<p>
+<strong>ADDITIONAL NOTE:</strong> Even if you disable
+<strong>DOC_LEAD_ADJUST</strong>, <strong>mom</strong> will still
+adjust the leading of endnotes pages and toc pages. See
+<a href="docelement.html#ENDNOTE_LEAD">ENDNOTE_LEAD</a>
+and
+<a href="docelement.html#TOC_LEAD">TOC_LEAD</a>
+for an explanation of how to disable this default behaviour.
<br>
<!---DOCHEADER--->
@@ -1814,6 +1912,16 @@ immediately prior to a new page, like this:
.NEWPAGE
</pre>
+<strong>NOTE:</strong> Even if you don't pass
+<strong>DOC_LEAD</strong> the optional argument
+<strong>ADJUST</strong>, <strong>mom</strong> will still adjust the
+leading of endnotes pages and toc pages. See
+<a href="docelement.html#ENDNOTE_LEAD">ENDNOTE_LEAD</a>
+and
+<a href="docelement.html#TOC_LEAD">TOC_LEAD</a>
+for an explanation of how to disable this default behaviour.
+<br>
+
<hr width="66%" align="left">
<p>
<a name="DOC_QUAD">
diff --git a/contrib/mom/momdoc/headfootpage.html b/contrib/mom/momdoc/headfootpage.html
index b82cac22..15d88128 100644
--- a/contrib/mom/momdoc/headfootpage.html
+++ b/contrib/mom/momdoc/headfootpage.html
@@ -24,7 +24,7 @@
<li><a href="#DESCRIPTION_GENERAL">General description of headers/footers</a>
<li><a href="#HEADER_STYLE">Default specs for headers/footers</a>
<li><a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>
- <li><a href="#HEADFOOT_MANAGEMENT">Managing headers/footers</a>
+ <li><a href="#HEADFOOT_MANAGEMENT">Managing headers/footers</a> -- see also <a href="#HEADFOOT_TOC">Control macros for headers/footers</a>
<ul>
<li><a href="#HEADERS">HEADERS</a> -- on or off
<li><a href="#FOOTERS">FOOTERS</a> -- on or off
@@ -35,9 +35,13 @@
<li><a href="#HDRFTR_RECTOVERSO">HEADER_RECTO, HEADER_VERSO</a>
</ul>
</ul>
+ <a name="HEADFOOT_TOC"></a>
<li><a href="#HEADFOOT_CONTROL">Control macros for headers/footers</a>
<ul>
<li><a href="#HDRFTR_STRINGS">Header/footer strings</a>
+ <ul>
+ <li><a href="#RESERVED_STRINGS">Using mom's &quot;reserved&quot; strings in header/footer definitions</a>
+ </ul>
<li><a href="#HDRFTR_STYLE">Header/footer style</a>
<ul>
<li><a href="#HDRFTR_STYLE_GLOBAL">Global style control</a>
@@ -432,6 +436,7 @@ it's possible to &quot;pad&quot; it as well.
<p>
<a name="HDRFTR_RECTOVERSO"></a>
Macro: <strong>HEADER_RECTO</strong> <var>LEFT | CENTER | RIGHT &quot;&lt;header recto string&gt;&quot;</var>
+<br>
Macro: <strong>HEADER_VERSO</strong> <var>LEFT | CENTER | RIGHT &quot;&lt;header verso string&gt;&quot;</var>
<br>
@@ -472,7 +477,7 @@ inline escapes.
To include the current page number in the string, use the
<strong>\*[PAGE#]</strong> inline.
-<h3><u>Padding the HEADER_RECTO/HEADER_VERSO string</u></h3>
+<h3><u>*Padding the HEADER_RECTO/HEADER_VERSO string</u></h3>
<p>
You can &quot;pad&quot; the header-recto string, a convenience you'll
appreciate in circumstances such as the following.
@@ -548,6 +553,9 @@ can be designed to your own specifications.
<ul>
<li><a href="#HDRFTR_LEFT">HEADER_LEFT</a>
<li><a href="#HDRFTR_CENTER">HEADER_CENTER</a>
+ <ul>
+ <li><a href="#HDRFTR_CENTER_PAD">HEADER_CENTER_PAD</a> -- stick some space left of right of the center string
+ </ul>
<li><a href="#HDRFTR_RIGHT">HEADER_RIGHT</a>
<li><a href="#PAGE_NUMBER_SYMBOL">Replacing header left, center or right with the page number</a>
<li><a href="#PAGE_NUMBER_INCL">Including the page number in header left, center or right</a>
@@ -614,10 +622,152 @@ they must be enclosed in double-quotes.
<p>
<strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
with <strong>FOOTER_</strong> to change the strings in footers.
+
+<a name="HDRFTR_CENTER_PAD"><h3><u>*Padding the header/footer center string</u></h3></a>
+<p>
+Macro: <strong>HEADER_CENTER_PAD</strong> <var>LEFT | RIGHT &lt;amount of space by which to pad center string left or right&gt;</var>
<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+<p>
+By default, <strong>mom</strong> centres the header centre string
+literally on the line length in effect for page headers. In some
+cases, notably when the header left or header right strings are
+particularly long, the effect isn't pretty. The offendingly long
+header left or right crowds, or even overprints, the header centre.
+That's where <strong>HEADER_CENTER_PAD</strong> comes in. With a
+bit of experimentation (yes, you have to preview the document), you
+can use <strong>HEADER_CENTER_PAD</strong> to move the header
+centre string left or right until it looks acceptably centred
+between the two other strings.
+<p>
+For example, say your document is an outline for a novel called "By
+the Shores of Lake Attica." You've told <strong>mom</strong>
+you want
+<p>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="docprocessing.html#DOCTYPE">DOCTYPE</a>
+<halign="center">
+<strong>NAMED</strong> "Outline"
+<p>
+but when you preview your work, you see that "Outline", in the
+centre of the page header, is uncomfortable close to the title,
+which is to the right of it. By invoking
+<p>
+<pre>
+ .HEADER_CENTER_PAD RIGHT 3P
+</pre>
+
+you can scoot the word "Outline" over three
+<a href="definitions.html#TERMS_PICASPOINTS">picas</a>
+to the left (the padding's added to the right of the string)
+so that your head looks nicely spaced out. Invoking
+<strong>HEADER_CENTER_PAD</strong> with the <strong>LEFT</strong>
+argument obviously puts the padding on the left side of the string.
+<p>
+Most reassuring of all is that if you use
+<strong>HEADER_CENTER_PAD</strong> conjunction with
+<a href="rectoverso.html#RECTO_VERSO">RECTO_VERSO</a>,
+<strong>mom</strong> will pad the center string appropriately left
+OR right, depending on which page you're on, without you having to
+tell her to do so.
+<br>
+
+<hr width="66%" align="left">
+<p>
+<a name="RESERVED_STRINGS"><h3><u>Using mom's &quot;reserved&quot; strings in header/footer definitions</u></h3></a>
+<p>
+As pointed out in the author's note in the introduction to
+headers/footers, headers and footers are something you don't
+normally have to worry much about. <strong>Mom</strong> usually
+knows what to do.
+<p>
+However, situations do arise where you need to manipulate what goes
+in the header/footer strings, setting and resetting them as you go
+along. A case where you might want to do this would be if you want
+to output endnotes at the end of each document in a series of
+<a href="rectoverso.html#COLLATE">collated</a>
+documents, and you want the word "Endnotes" to go in the header
+center position of the endnotes, but want, say, the
+<a href="docprocessing.html#TITLE">TITLE</a>
+to go back into the center position for the next output document.
+<p>
+In scenarios like the above, <strong>mom</strong> has a number of
+&quot;reserved&quot; strings that you can plug into the
+<strong>HEADER_LEFT, _CENTER</strong> and <strong>_RIGHT</strong>
+macros. They are:
+<p>
+<pre>
+ \*[$TITLE] -- the argument passed to .TITLE
+ \*[$DOCTITLE] -- the argument passed to .DOCTITLE
+ \*[$AUTHOR_1] -- the first argument passed to .AUTHOR
+ \*[$CHAPTER_STRING] -- the argument passed to .CHAPTER_STRING,
+ if invoked, otherwise, "Chapter"
+ \*[$CHAPTER] -- the argument (typically a number) passed
+ to .CHAPTER
+ \*[$CHAPTER_TITLE] -- the argument passed to .CHAPTER_TITLE
+</pre>
+
+Returning to the scenario above, first, you'd define a center
+string for the endnotes page:
+<p>
+<pre>
+ .HEADER_CENTER "Endnotes"
+</pre>
+
+Then, you'd output the endnotes:
+<p>
+<pre>
+ .ENDNOTES
+</pre>
+
+Then, you'd prepare <strong>mom</strong> for the next document:
+<p>
+<pre>
+ .COLLATE
+ .TITLE "New Doc Title"
+ .AUTHOR "Josephine Blough"
+</pre>
+
+Then, you'd redefine the header center string using the reserved
+string \*[$TITLE], like this:
+<p>
+<pre>
+ .HEADER_CENTER "\*[$TITLE]"
+</pre>
+
+And last, you'd do:
+<p>
+<pre>
+ .START
+</pre>
+
+Voilà! Any argument you pass to <strong>TITLE</strong> from here
+on in (say, for subsequent documents) is back in the header centre
+position. Here's the whole routine again:
+<p>
+<pre>
+ .HEADER_CENTER "Endnotes"
+ .ENDNOTES
+ .COLLATE
+ .TITLE "New Doc Title"
+ .AUTHOR "Josephine Blough"
+ .HEADER_CENTER "\*[$TITLE]"
+ .START
+</pre>
+
+If need be, you can concatenate the strings, as in the following
+example.
+<p>
+<pre>
+ .HEADER_CENTER "\*[$CHAPTER_STRING] \*[$CHAPTER]"
+</pre>
+
+which, assuming a <strong>.CHAPTER_STRING</strong> of
+&quot;Chapter&quot; and a <strong>.CHAPTER</strong> of
+&quot;2&quot;, would put &quot;Chapter 2&quot; in the header centre
+position.
<a name="PAGE_NUMBER_SYMBOL">
- <h3><u>Replacing header-left, -center or -right with the page number</u></h3>
+ <h3><u>*Replacing header-left, -center or -right with the page number</u></h3>
</a>
If you would like to have the current page number to appear
header-left, -center, or -right <em>instead</em> of a text
@@ -634,7 +784,7 @@ will print the current page number in the center part of
headers.
<a name="PAGE_NUMBER_INCL">
- <h3><u>Including the page number in header-left, -center or -right</u></h3>
+ <h3><u>*Including the page number in header-left, -center or -right</u></h3>
</a>
If you would like to <em>include</em> the current page number in
the string you pass to <strong>HEADER_LEFT, _CENTER,</strong> or
diff --git a/contrib/mom/momdoc/intro.html b/contrib/mom/momdoc/intro.html
index 40c306d7..b0741b41 100644
--- a/contrib/mom/momdoc/intro.html
+++ b/contrib/mom/momdoc/intro.html
@@ -220,8 +220,7 @@ produce output that looks good no matter where it's displayed.
She's designed for printed output, although with
<a href="#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>
she produces acceptable terminal copy. She makes no attempt to be
-compatible with older versions of troff. And she remains largely
-untested with the groff preprocessors (tbl, pic, eqn, etc.)
+compatible with older versions of troff.
<p>
One special feature in <strong>mom</strong>'s design is the attention
she pays to aligning the bottom margins of every page. Nothing screams
@@ -259,14 +258,26 @@ or procedure will cause head scratching, I offer an explanation.
And when explanations aren't enough, I offer examples.
<a name="CANONICAL"></a>
<p>
-The canonical reference materials for groff are <strong>cstr54</strong>
-(a downloadable PostScript copy of which is available
+The canonical reference materials for groff are
+<strong>cstr54</strong> (a downloadable PostScript copy of which is
+available
<a href="http://www.kohala.com/start/troff/">here</a>)
-and the <strong>troff</strong> and <strong>groff_diff</strong> manpages.
-I've tried to avoid reiterating them, however, in a few places, this has
-proved impossible. Be forewarned: I have no qualms about sidestepping
-excrutiating completeness about groff usage; I'm more concerned with
-getting <strong>mom</strong> users up and running. <em>Mea culpa.</em>
+and the <strong>troff</strong> and <strong>groff_diff</strong>
+manpages. Another excellent source of information (maybe the best)
+are the groff <strong>info</strong> pages, available by typing
+<p>
+<pre>
+ info groff
+</pre>
+
+at the command line (assuming you have <strong>info</strong>
+istalled on your system).
+<p>
+I've tried to avoid reiterating the information contained in these
+documents; however, in a few places, this has proved impossible.
+But be forewarned: I have no qualms about sidestepping excrutiating
+completeness about groff usage; I'm more concerned with getting
+<strong>mom</strong> users up and running. <em>Mea culpa.</em>
<p>
<strong>Note:</strong> <strong>Mom</strong>'s macro file
(om.tmac) is heavily commented. Each macro is preceded by a
diff --git a/contrib/mom/momdoc/reserved.html b/contrib/mom/momdoc/reserved.html
index 193b56d8..13714342 100644
--- a/contrib/mom/momdoc/reserved.html
+++ b/contrib/mom/momdoc/reserved.html
@@ -28,7 +28,8 @@ PAPER Letter, legal, or A4
B_MARGIN Space to leave at page bottom
L_MARGIN Page offset
-R_MARGIN Line length as a function of pagewidth - pageoffset - rightmargin
+R_MARGIN Line length as a function of
+ pagewidth minus pageoffset minus rightmargin
T_MARGIN Advance lead from page top
Page control
@@ -38,8 +39,10 @@ DO_T_MARGIN Margin at top of page
Style
-----
-CONDENSE Set percentage of pseudo-condense (alias of CONDENSE_OR_EXTEND)
-EXTEND Set percentage of pseudo-extend (alias of CONDENSE_OR_EXTEND)
+CONDENSE Set percentage of pseudo-condense (alias of
+ CONDENSE_OR_EXTEND)
+EXTEND Set percentage of pseudo-extend (alias of
+ CONDENSE_OR_EXTEND)
FAMILY Family
FT Font
LL Line length
@@ -129,26 +132,32 @@ Misc + Support
BR_AT_LINE_KERN Deposit a break before RW and WE
CAPS Convert u/lc to UC
COMMENT Don't print lines till COMMENT OFF (alias of SILENT)
-DROPCAP_ADJUST Points (poss. fractional) to add/subtract from drop caps
+DROPCAP_ADJUST Points (poss. fractional) to add/subtract
+ from drop caps
DROPCAP Create drop cap
DROPCAP_FAMILY Drop cap family
DROPCAP_FONT Drop cap font
DROPCAP_GUTTER Drop cap gutter
DROPCAP_OFF Support only; restores .in if there was one
-EW Extra white -- loosen overall line kern (character spacing)
+EW Extra white -- loosen overall line kern
+ (character spacing)
LEADER_CHARACTER Sets leader character
PAD Insert padding spaces at marked places
PADMARKER Sets character to use instead of # in PAD
-PRINT Simply prints args passed to it; keeps my code indented nicely
-RW Reduce white -- tighten overal line kern (character spacing)
+PRINT Simply prints args passed to it; keeps my code
+ indented nicely
+RW Reduce white -- tighten overal line kern
+ (character spacing)
SILENT Don't print lines till SILENT OFF
-SIZESPECS Get cap-height, x-height and descender depth for current point size
+SIZESPECS Get cap-height, x-height and descender depth for
+ current point size
TRAP Turn traps off or on
+++DIVERSIONS+++
NO_FLASH Diverts output of SILENT or COMMENT so they don't print
-NULL Diverts SIZESPECS in PRINT_HDRFTR so it SIZESPECS doesn't screw up FOOTER and FOOTNOTE processing when FOOTERS are on
+NULL Diverts SIZESPECS in PRINT_HDRFTR so it doesn't screw up
+ FOOTER and FOOTNOTE processing when FOOTERS are on
PAD_STRING Diverts $PAD_STRING for processing
TYPESIZE Diverts SIZESPECS routine so it doesn't print
@@ -164,22 +173,26 @@ TYPESIZE Diverts SIZESPECS routine so it doesn't print
#BR_INDENT Value of right indent when IB
c column mark
#CONDENSE Are we in pseudo-condense mode? (toggle)
-#COND_WIDTH Width of pseudo-condensed type (pointsize x $COND_PERCENT)
+#COND_WIDTH Width of pseudo-condensed type
+ (pointsize x $COND_PERCENT)
#CURRENT_TAB Current tab number
#DC_GUT Width of dropcap gutter
#DEGREES # of degrees slant for pseudo-italic
#EXTEND Are we in pseudo-extend mode? (toggle)
-#EXT_WIDTH Width of pseudo-extended type (pointsize x $EXT_PERCENT)
+#EXT_WIDTH Width of pseudo-extended type
+ (pointsize x $EXT_PERCENT)
#FILL_MODE Are we in fill mode (i.e. \n(.u=1)? (toggle)
#FONT_FOR_PAD Used to ensure that the font in effect prior
- to PAD is restored at the start of every iteration
- of $PAD_STRING
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
#H_INDENT Value of left indent when IH
#HL_INDENT Value of the hang when IH
#HYPHENATE Hyphenation on? (toggle)
-#HY_SET Did we manually set hyphenation parameters? (toggle)
-#IN_TAB Are we in a tab? (toggle) Set in macro TAB; used in ST to
- determine whether to add #ST_OFFSET to #ST&lt;#&gt;_OFFSETT
+#HY_SET Did we manually set hyphenation parameters?
+ (toggle)
+#IN_TAB Are we in a tab? (toggle)
+ Set in macro TAB; used in ST to determine
+ whether to add #ST_OFFSET to #ST&lt;#&gt;_OFFSETT
#INDENT_ACTIVE Indicates whether an indent is active (toggle)
#INDENT_BOTH_ACTIVE Toggle
#INDENT_LEFT_ACTIVE Toggle
@@ -196,12 +209,14 @@ c column mark
#LIGATURES Ligatures on? (toggle)
#L_INDENT Value of left indent
#L_LENGTH Line length
-#L_MARGIN Page offset if set with LMARGIN; if .po used, \n(.o returns
+#L_MARGIN Page offset if set with LMARGIN;
+ if .po used, \n(.o returns page offset
#LOOP #LOOP=1 if a while loop executes; otherwise 0.
#NEXT_TAB Current tab number + 1 (used in TN)
#NEXT_TAB Next tab in an n+1 sequence
#OPEN_CLOSE Manipulates character " to print `` or ''
-p Output line horiz position at end of $PAD_STRING
+p Output line horiz position at end of
+ $PAD_STRING
#PAD_COUNT Number of times # was included in arg to PAD
#PAD_SPACE Size of padding space
#PAGE_LENGTH Page length (alias)
@@ -209,18 +224,20 @@ p Output line horiz position at end of $PAD_STRING
#PP_ACTIVE Are we in the context of a para? (toggle)
#PRINT_FOOTER_ON_PAGE_1 toggle
#PT_SIZE Point size (fractional) in units (alias)
-#Q_AT_TOP Does a quote start at the top of a new page? (toggle)
+#Q_AT_TOP Does a quote start at the top of a new page?
+ (toggle)
#QUAD In autoquad mode? (toggle)
#RESTORE_LEAD Lead value in effect prior to AUTOLEAD
#RESTORE_LINE_LENGTH Restores actual line length in RULE
-#RESTORE_PT_SIZE Stores current point size (in units) prior to underscore
+#RESTORE_PT_SIZE Stores current point size (in units) prior
+ to underscore
#R_INDENT Value of right indent
#RLD RLD value
#R_MARGIN Right margin
#SILENT Is silent on? (toggle)
#SIZE_FOR_PAD Used to ensure that the size in effect prior
- to PAD is restored at the start of every iteration
- of $PAD_STRING
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
#SLANT_ON Is SLANT on? (toggle)
#SMART_QUOTES Smartquotes on? (toggle)
#SPACE_TO_END Whitespace at end of string passed to PAD
@@ -230,14 +247,17 @@ p Output line horiz position at end of $PAD_STRING
#ST_OFFSET Offset (from current tab) to add to #ST&lt;#&gt;_OFFSET
when calculating string indents set from within tabs
#ST&lt;#&gt;_OFFSET Indent of autotab &lt;#&gt; (page offset)
-t "mark" register set in T_MARGIN; recalled in LS and AUTOLEAD if #T_MARGIN_SET is 1
+t "mark" register set in T_MARGIN; recalled
+ in LS and AUTOLEAD if #T_MARGIN_SET is 1
#TAB_ACTIVE Are we in a tab? (toggle)
#TAB_NUMBER Tab number
#TAB_OFFSET Tab indent
#T_INDENT Value of temporary indent
#T_MARGIN Top margin
-#T_MARGIN_SET Did we set the top margin with T_MARGIN? (toggle)
+#T_MARGIN_SET Did we set the top margin with T_MARGIN?
+ (toggle)
#USER_SET_L_LENGTH Did user invoke LL? (toggle)
+#USER_SET_TITLE_ITEM Did user invoke TOC_TITLE_ENTRY?
u Horiz position of start of underscore
+++STRINGS+++
@@ -251,21 +271,24 @@ $DC_FT Drop cap font
$EXT_PERCENT Percentage by which to pseudo-extend type
$FAMILY Family
$FAMILY_FOR_PAD Used to ensure that the family in effect prior
- to PAD is restored at the start of every iteration
- of $PAD_STRING
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
$FONT Font
$PAD_MARKER Character to mark off padding in PAD
$PAD_STRING Arg passed to PAD
$QUAD_VALUE Quad value (left, right, center, justify)
$QUOTE0 ``
$QUOTE1 ''
-$RESTORE_QUAD_VALUE Quad value for use in restoring L, R, C, J (after tabs)
+$RESTORE_QUAD_VALUE Quad value for use in restoring L, R, C, J
+ (after tabs)
$SS_VAR Holds + or - sentence space value
$ST&lt;#&gt;_FILL Always QUAD if QUAD passed to ST &lt;#&gt;
$ST&lt;#&gt;_QUAD_DIR Quad direction supplied to ST for &lt;#&gt;
-$TAB_NUMBER Argument passed to TAB macro to call TAB# macro created in TAB_SET
+$TAB_NUMBER Argument passed to TAB macro to call TAB# macro
+ created in TAB_SET
$WS_CONSTANT 12; used to hold groff default wordspace
-$WS Holds WS value; concatenation of WS_CONSTANT and WS_VAR
+$WS Holds WS value; concatenation of WS_CONSTANT and
+ WS_VAR
$WS_VAR + or - value to add to $WS_CONSTANT
+++ALIASES+++
@@ -316,11 +339,14 @@ BOLDER Pseudo-bold on
BOLDERX Pseudo-bold off
BP Back points (horizontal movement)
BU Back units (inline pairwise kerning)
-COND_FOR_SUP Pseudo-condense string for use with superscripts (called with CONDSUP)
-COND_FOR_SUP Pseudo-extend string for use with superscripts (called with EXTSUP)
+COND_FOR_SUP Pseudo-condense string for use with superscripts
+ (called with CONDSUP)
+COND_FOR_SUP Pseudo-extend string for use with superscripts (called
+ with EXTSUP)
COND Pseudo-condense type
CONDX Pseudo-condense off
-CONDSUP Pseudo-condensed superscript (using value set with CONDENSE)
+CONDSUP Pseudo-condensed superscript (using value set with
+ CONDENSE)
CONDSUPX Pseudo-condensed superscript off
DOWN Inline downward vertical movement
EXT Pseudo-extend type
@@ -331,7 +357,8 @@ FP Forward points (horizontal movement)
FU Forward units (inline pairwise kerning)
FWD Inline forward horizontal movement
LEADER Deposit leader to end of current LL or TAB
-RULE Draw a rule to the full measure of the current line or tab length
+RULE Draw a rule to the full measure of the current line or
+ tab length
SLANT Slant (pseudo-italic on
SLANTX Slant off
ST&lt;#&gt; String tab end marker
@@ -374,7 +401,9 @@ PRINTSTYLE Print style (TYPEWRITE or TYPESET)
Document tags
-------------
BLOCKQUOTE Block-indented, quoted text
-COL_BREAK Breaks and spreads line before invocation; moves to next column on page or 1st col of next page. An alias of COL_NEXT.
+COL_BREAK Breaks and spreads line before invocation; moves to
+ next column on page or 1st col of next page. An alias
+ of COL_NEXT.
COL_NEXT Moves to next column on page or 1st col of next page
ENDNOTE Endnote
ENDNOTES Output endnotes
@@ -391,17 +420,21 @@ SUBHEAD Subheads
Headers/footers
--------------
-BREAK_QUOTE Manually break a footnoted quote that crosses a page/column
+BREAK_QUOTE Manually break a footnoted quote that crosses
+ a page/column
DO_FOOTER Prints footer (after footnote processing, if any)
FOOTER_ON_FIRST_PAGE Print footer on first page? (toggle)
FOOTER Trap-invoked footer macro
HEADER Trap-invoked header macro
PAGINATE Turns page numbering on or off (doc default=on)
-RECTO_VERSO Enables switch HEADER_LEFT and HEADER_RIGHT on alternate pages
+PAGINATE_TOC Turns pagination of toc on or off (default=on)
+RECTO_VERSO Enables switch HEADER_LEFT and HEADER_RIGHT on
+ alternate pages
Alter doc "look" and/or change defaults
---------------------------------------
-ALWAYS_FULLSPACE_QUOTES Fullspace quotes instead of default 1/2 spacing them.
+ALWAYS_FULLSPACE_QUOTES Fullspace quotes instead of default
+ 1/2 spacing them.
ATTRIBUTE_STRING What to print before author (default is "by")
AUTHOR_FAMILY Family to use for author in doc header
AUTHOR_FONT Font to use for author in doc header
@@ -410,13 +443,16 @@ BLOCKQUOTE_FAMILY Family to use in blockquotes
BLOCKQUOTE_FONT Font to use in blockquotes
BLOCKQUOTE_QUAD How to quad blockquotes
BLOCKQUOTE_SIZE How much to de/increase point size of bquotes
-CHAPTER_STRING What to print whenever the word "chapter" is required
+CHAPTER_STRING What to print whenever the word "chapter"
+ is required
CHAPTER_TITLE_FAMILY Family to use for chapter title in doc header
CHAPTER_TITLE_FONT Font to use for chapter title in doc header
-CHAPTER_TITLE_SIZE ps in/decrease of chapter title (relative to size of running text)
+CHAPTER_TITLE_SIZE ps in/decrease of chapter title
+ (relative to size of running text)
COLUMNS Print in columns
DOC_FAMILY Overall doc family
-DOCHEADER_ADVANCE Start position of docheader (relative to top of page)
+DOCHEADER_ADVANCE Start position of docheader (relative to top
+ of page)
DOCHEADER_LEAD +|- value applied to #DOC_LEAD to in/decrease leading of doc header
DOC_HEADER Print doc header?
DOC_LEAD_ADJUST Adjust #DOC_LEAD to fill page to #B_MARGIN
@@ -426,44 +462,61 @@ DOC_LINE_LENGTH Doc line length
DOC_PT_SIZE Overall doc point size
DOC_QUAD Overall quad of document
DOC_RIGHT_MARGIN Doc right margin
+DOC_TITLE Overall doc title that gets printed in
+ headers/footers (mostly for use with collated
+ docs where each doc is an article with a
+ different title
DOCTYPE_FAMILY Family to use for doctype string in doc header
DOCTYPE_FONT Font to use for doctype string in doc header
DOCTYPE_SIZE ps to use for doctype string in doc header
DOCTYPE Type of doc (DEFAULT, CHAPTER, NAMED, LETTER)
DO_QUOTE Print quote (invoked from QUOTE or BLOCKQUOTE)
-DRAFT_STRING What to print whenever the word "draft" is required
-DRAFT_WITH_PAGENUMBER Attach draft/revision info to page number (instead of putting it HEADER center)
+DRAFT_STRING What to print whenever the word "draft" is
+ required
+DRAFT_WITH_PAGENUMBER Attach draft/revision info to page number
+ (instead of putting it HEADER center)
ENDNOTE_FAMILY Family for endnotes
ENDNOTE_FONT Font for endnotes
ENDNOTE_LEAD Leading for endnotes page
-ENDNOTE_PARA_INDENT First line indent of paras in multi-para endnotes
+ENDNOTE_PARA_INDENT First line indent of paras in multi-para
+ endnotes
ENDNOTE_PARA_SPACE Whether to space paras in multi-para endnotes
ENDNOTE_PT_SIZE Base point size for endnotes page
ENDNOTE_QUAD Endnote quad
ENDNOTE_STRING Endnotes page head
+ENDNOTE_STRING_CAPS Capitalize the endnotes string
ENDNOTE_STRING_FAMILY Family for endnotes page head
ENDNOTE_STRING_FONT Font for endnotes page head
ENDNOTE_STRING_QUAD Quad direction for endnotes page head
-ENDNOTE_STRING_SIZE Size for endnotes page head
+ENDNOTE_STRING_SIZE Size for endnotes page head***
ENDNOTE_STRING_UNDERSCORE Underscoring of endnotes page head
ENDNOTE_TITLE Endnotes identifying title
ENDNOTE_TITLE_FAMILY Family for endnotes identifying title
ENDNOTE_TITLE_FONT Font for endnotes identifying title
ENDNOTE_TITLE_QUAD Quad direction for endnotes identifying title
-ENDNOTE_TITLE_SIZE Size for endnotes identifying title
+ENDNOTE_TITLE_SIZE Size for endnotes identifying title***
ENDNOTE_TITLE_UNDERSCORE Underscoring of endnotes identifying title
ENDNOTE_NUMBER_FAMILY Family of endnote numbers
ENDNOTE_NUMBER_FONT Font of endnote numbers
-ENDNOTE_NUMBER_SIZE Size of endnote numbers
+ENDNOTE_NUMBER_SIZE Size of endnote numbers***
ENDNOTE_NUMBERS_ALIGN_RIGHT Hang endnote numbers and align right
-ENDNOTE_NUMBERS_ALIGN_LEFT Dont' hang endnote numbers and align left
+ENDNOTE_NUMBERS_ALIGN_LEFT Don't hang endnote numbers and align left
+ENDNOTES_ALLOWS_HEADERS Page headers on endnotes pages? (toggle)
+ENDNOTES_FIRST_PAGENUMBER Page number to appear on page 1 of endnotes
+ pages
ENDNOTES_HDRFTR_CENTER Print header/footer center string on endnotes pages?
ENDNOTES_HEADER_CENTER Print header center string on endnotes pages?
ENDNOTES_FOOTER_CENTER Print footer center string on endnotes pages?
+ENDNOTES_NO_COLUMNS Turn columnar mode off for endnotes pages
+ENDNOTES_NO_FIRST_PAGENUM Don't print a pagenumber on page 1 of
+ endnotes.
+ENDNOTES_PAGENUM_STYLE Set numbering style for endnotes pages page
+ numbers
EPIGRAPH_AUTOLEAD Autolead value for epigraphs
EPIGRAPH_FAMILY Family to use in epigraphs
EPIGRAPH_FONT Font to use in epigraphs
-EPIGRAPH_INDENT Value by which to multiply PP_INDENT for block epigraphs
+EPIGRAPH_INDENT Value by which to multiply PP_INDENT for
+ block epigraphs
EPIGRAPH_QUAD Quad value of block style epigraphs
EPIGRAPH_SIZE ps de/increase of epigraphs*
FINIS_STRING What to print when FINIS is invoked
@@ -476,27 +529,35 @@ FOOTNOTE_FONT Font to use in footnotes
FOOTNOTE_MARKERS Turns footnote markers on or off
FOOTNOTE_MARKER_STYLE STAR or NUMBER; default=STAR
FOOTNOTE_QUAD Quad to use in footnotes
-FOOTNOTE_RULE_ADJ # of points to raise footnote rule from its baseline
+FOOTNOTE_RULE_ADJ # of points to raise footnote rule from its
+ baseline
FOOTNOTE_RULE_LENGTH Length of footnote separator rule
-FOOTNOTE_RULE Turns printing of fn separator rule on or off; default is on
+FOOTNOTE_RULE Turns printing of fn separator rule on or off;
+ default is on
FOOTNOTE_SIZE ps of footnotes
+HDRFTR_CENTER String to go in center part of header/footer;
+ default doctype
HDRFTR_CENTER_CAPS Center part of header/footer in caps? (toggle)
HDRFTR_CENTER_FAMILY Family of center part of header/footer
HDRFTR_CENTER_FONT Font of center part of header/footer
+HDRFTR_CENTER_PAD Pad hdrftr center left or right by specified
+ amount
HDRFTR_CENTER_SIZE ps in/decrease of center part of header/footer**
-HDRFTR_CENTER String to go in center part of header/footer; default doctype
-HDRFTR_CENTER The header/footer center string
HDRFTR_FAMILY Family to use in the headers/footers
HDRFTR_GAP Distance from header/footer to running text
HDRFTR_LEFT_CAPS Left part of header/footer in caps? (toggle)
HDRFTR_LEFT_FAMILY Family of left part of header/footer
HDRFTR_LEFT_FONT Font of left part of header/footer
-HDRFTR_LEFT_SIZE ps in/decrease of left part of headers/footers**
-HDRFTR_LEFT String to go in left part of header/footer; default author
+HDRFTR_LEFT_SIZE ps in/decrease of left part of
+ headers/footers**
+HDRFTR_LEFT String to go in left part of header/footer;
+ default is AUTHOR_1
HDRFTR_LEFT The header/footer left string
HDRFTR_MARGIN Distance from top of page to header
-HDRFTR_PLAIN Header/footer fam/ft/ps all same as running text
-HDRFTR_RECTO User-defined, single string recto header/footer
+HDRFTR_PLAIN Header/footer fam/ft/ps all same as running
+ text
+HDRFTR_RECTO User-defined, single string recto
+ header/footer
HDRFTR_RIGHT_CAPS Right part of header/footer in caps? (toggle)
HDRFTR_RIGHT_FAMILY Family of right part of headers/footers
HDRFTR_RIGHT_FONT Font of right part of headers/footers
@@ -505,9 +566,11 @@ HDRFTR_RIGHT The header/footer right string
HDRFTR_RULE_GAP Space between header/footer and header/footer rule
HDRFTR_RULE_INTERNAL Prints the header/footer rule
HDRFTR_RULE Turns header/footer rule on or off
-HDRFTR_RULE Turns header/footer rule on or off. When invoked internally, prints the rule.
+HDRFTR_RULE Turns header/footer rule on or off.
+ When invoked internally, prints the rule.
HDRFTR_SIZE ps in/decrease of headers/footers*
-HDRFTR_VERSO User-defined, single string verso header/footer
+HDRFTR_VERSO User-defined, single string verso
+ header/footer
HEAD_CAPS Print section titles in caps? (toggle)
HEADER_GAP Space between header and running text
HEADER_MARGIN Space from top of page to header
@@ -515,8 +578,10 @@ HEADERS Turns headers on or off
HEAD_FAMILY Family to use in section titles
HEAD_FONT Font to use in section titles
HEAD_QUAD Quad value of section titles
-HEAD_SIZE How much to in/decrease point size of section titles
-HEAD_SPACE Give HEADs 2 line-spaces before. If OFF, only 1. Default is on.
+HEAD_SIZE How much to in/decrease point size of section
+ titles*
+HEAD_SPACE Give HEADs 2 line-spaces before. If OFF,
+ only 1. Default is on.
HEAD_UNDERLINE Underline section titles? (toggle)
INDENT_FIRST_PARAS Indent 1st paras? (doc default=not indented)
ITALIC_MEANS_ITALIC For TYPEWRITE; render .FT I in italic.
@@ -526,43 +591,97 @@ NUMBER_SUBHEADS Print subhead numbers
PAGENUM_FAMILY Family to use in footers
PAGENUM_FONT Font to use for page numbers
PAGENUM_HYPHENS Turns on/off hyphens surrounding page numbers
-PAGENUM_ON_FIRST_PAGE Print page number on first page when footers are on (toggle)
-PAGENUM_POS Controls placement of page numbers default=bottom/centered
-PAGENUM_SIZE How much to in/decrease point size of page numbers
+PAGENUM_ON_FIRST_PAGE Print page number on first page when footers
+ are on (toggle)
+PAGENUM_POS Controls placement of page numbers;
+ default=bottom/centered
+PAGENUM_SIZE How much to in/decrease point size of page
+ numbers*
PAGENUM_STYLE Page # in roman, arabic, or alphabetic
PARAHEAD_FAMILY Family to use for paraheads
PARAHEAD_FONT Font to use for paraheads
PARAHEAD_INDENT How mucht to indent paraheads
-PARAHEAD_SIZE Size of paraheads
+PARAHEAD_SIZE Size of paraheads*
PARA_INDENT Size of para indent
PARA_SPACE Put a line space before paras
PP_FONT Overall doc font
QUOTE_FAMILY Family to use in pquotes
QUOTE_FONT Font to use in pquotes
-QUOTE_INDENT Value by which to multiply PP_INDENT for block quotes
-QUOTE_SIZE How much to de/increase point size of pquotes
-RESET_FOOTNOTE_NUMBER Reset fn# to 1, or, if arg PAGE, reset automatically to 1 on every page
+QUOTE_INDENT Value by which to multiply PP_INDENT for
+ block quotes
+QUOTE_SIZE How much to de/increase point size of
+ pquotes*
+RESET_FOOTNOTE_NUMBER Reset fn# to 1, or, if arg PAGE, reset
+ automatically to 1 on every page
RESET_HEAD_NUMBER Reset head number
RESET_PARAHEAD_NUMBER Reset parahead number
RESET_SUBHEAD_NUMBER Reset subhead number
-REVISION_STRING What to print whenever the word "revision" is required
+RESTORE_PAGINATION Restore pagination after outputting non-
+ paginated endnotes.
+REVISION_STRING What to print whenever the word "revision"
+ is required
+SINGLESPACE_ENDNOTES Single space TYPEWRITE endnotes
SLANT_MEANS_SLANT In TYPEWRITE, render \*[SLANT] as slant
SUBHEAD_FAMILY Family to use in subheads
SUBHEAD_FONT Font to use in subheads
-SUBHEAD_SIZE How much to in/decrease point size of subheads
+SUBHEAD_SIZE How much to in/decrease point size of
+ subheads*
SUBTITLE_FAMILY Family to use for subtitle in doc header
SUBTITLE_FONT Font to use for subtitle in doc header
SUBTITLE_SIZE ps to use for subtitle in doc header
+SUSPEND_PAGINATION Suspend pagination prior to outputting
+ endnotes
SWITCH_HDRFTR Switch HDRFTR_LEFT and HDRFTR_RIGHT
TITLE_FAMILY Family to use for title in doc headers
TITLE_FONT Font to use for title in doc headers
-TITLE_SIZE How much to in/decrease title at start of doc
+TITLE_SIZE How much to in/decrease title at start of doc*
+TOC_APPENDS_AUTHORS Appends author(s) to toc doc title entries
+TOC_LEAD Leading of toc pages
+TOC_FAMILY Family to use on toc pages
+TOC_HEADER_FAMILY Family to use for "Contents"
+TOC_HEADER_FONT Font to use for "Contents"
+TOC_PADDING Number of placeholders for toc entries page
+ numbers
+TOC_PN_FAMILY Family to use for toc entries page numbers
+TOC_PN_FONT Font to use for toc entries page numbers
+TOC_PN_SIZE How much to in/decrease point size of
+ toc entries page numbers****
+TOC_HEAD_FAMILY Family of toc head entries
+TOC_HEAD_FONT Font of toc head entries
+TOC_HEAD_INDENT Indent of toc head entries
+TOC_HEAD_SIZE How much to in/decrease ps of head entries****
+TOC_HEADER_QUAD Quad direction for "Contents"
+TOC_HEADER_SIZE How much to in/decrease point size of
+ "Contents"****
+TOC_HEADER_STRING TOC header string (default=Contents)
+TOC_PAGENUM_STYLE Page numbering style (hdrftr nums) of
+ toc pages
+TOC_PT_SIZE Point size to use on toc pages
+TOC_RV_SWITCH Switch L/R margins of toc pages
+TOC_PARAHEAD_FAMILY Family of toc parahead entries
+TOC_PARAHEAD_FONT Font of toc parahead entries
+TOC_PARAHEAD_INDENT Indent of toc parahead entries
+TOC_PARAHEAD_SIZE How much to in/decrease ps of parahead
+ entries****
+TOC_SUBHEAD_FAMILY Family of toc subhead entries
+TOC_SUBHEAD_FONT Font of toc subhead entries
+TOC_SUBHEAD_INDENT Indent of toc subhead entries
+TOC_SUBHEAD_SIZE How much to in/decrease ps of subhead
+ entries****
+TOC_TITLE_ENTRY User supplied toc doc title entry
+TOC_TITLE_FAMILY Family of toc doc title entries
+TOC_TITLE_FONT Font of toc doc title entries
+TOC_TITLE_INDENT Indent of toc doc title entries
+TOC_TITLE_SIZE How much to in/decrease ps of doc title
+ entries****
UNDERLINE_ITALIC In TYPEWRITE, render .FT I as underlined
UNDERLINE_QUOTES In TYPEWRITE, underline quotes? (toggle)
UNDERLINE_SLANT In TYPEWRITE, render \*[SLANT] as underlined
- *relative to #DOC_PT_SIZE
-**relative to overall ps of headers as set by HEADER_SIZE
+ *relative to #DOC_PT_SIZE
+ **relative to overall ps of headers as set by HEADER_SIZE
+ ***relative to overal ps of endnotes pages
+****relative to overall ps of toc pages
+++LETTER MACROS+++
@@ -580,162 +699,260 @@ B_QUOTE Block (indented) quote text
CLOSING Closing (ie. Yours truly,)
DATE Date string for letters
EPI_TEXT Epigraph text
+END_NOTES Endnotes text
FN_OVERFLOW Excess footnotes when B_MARGIN is reached
FOOTNOTES Text of footnotes
FROM_ADDRESS Addressor's name and address
GREETING Full salutation (eg. Dear John Smith,)
P_QUOTE Line for line (poetic) quote text
TO_ADDRESS Addressee's name and address
+TOC_ENTRIES TOC entries
+++SUPPORT+++
-CHECK_INDENT Applies indents to doc elements inside ev's (head, subhead, etc)
-D0_QUOTE Outputs quotes with space adjustments before and after
-DIVERT_FN_LEFTOVER Diverts excess fn stored in FN_OVERFLOW into FOOTNOTE
-DIVERT_FN_OVERFLOW Diverts excess fn stored in FN_OVERFLOW when FN_DEFER into FOOTNOTE
-DO_EPIGRAPH Outputs epigraphs with space adjustments before and after
-FN_OVERFLOW_TRAP Fixed at B_MARGIN; if footnotes run longer than B_MARGIN, diverts excess into FN_OVERFLOW
+CHECK_INDENT Applies indents to doc elements inside ev's
+ (head, subhead, etc)
+D0_QUOTE Outputs quotes with space adjustments before
+ and after
+DIVERT_FN_LEFTOVER Diverts excess fn stored in FN_OVERFLOW into
+ FOOTNOTE
+DIVERT_FN_OVERFLOW Diverts excess fn stored in FN_OVERFLOW when
+ FN_DEFER into FOOTNOTE
+DO_EPIGRAPH Outputs epigraphs with space adjustments before
+ and after
+FN_OVERFLOW_TRAP Fixed at B_MARGIN; if footnotes run longer than
+ B_MARGIN, diverts excess into FN_OVERFLOW
HDRFTR_RULE Prints rule under header or over footer
-PRINT_FOOTNOTE_RULE An alias of PRINT_FOOTNOTE; prints footnote separator rule
+PRINT_FOOTNOTE_RULE An alias of PRINT_FOOTNOTE; prints footnote
+ separator rule
PRINT_HDRFTR Prints header/footer (trap invoked)
PRINT_PAGE_NUMBER Invoked in HEADER or FOOTER
-PRINT_USERDEF_HDRFTR Prints user defined, single string recto/verso header/footer
+PRINT_USERDEF_HDRFTR Prints user defined, single string recto/verso
+ header/footer
REMOVE_INDENT Removes indents set with CHECK_INDENT
-TRAPS Sets hdrftr traps; optionally adjusts #DOC_LEAD to fill page to #B_MARGIN
+TRAPS Sets hdrftr traps; optionally adjusts #DOC_LEAD
+ to fill page to #B_MARGIN
+++NUMBER REGISTERS+++
#ADJ_DOC_LEAD Adjust DOC_LEAD? (toggle)
-#ARG_NUM Keeps track of number of args passed to a macro
-#AUTHOR_LINES # of lines of authors in doc header; odd=0 even=1
-#AUTHOR_NUM Keeps track of user-defined string AUTHOR_&lt;#&gt; in AUTHOR
-#AUTHORS Equals final value of AUTHOR_NUM; used for authors in doc header
+#ADJ_TOC_LEAD Adjust TOC_LEAD? (toggle)
+#ARG_NUM Keeps track of number of args passed to a
+ macro
+#AUTHOR_[n] Strings passed to AUTHOR
+#AUTHOR_LINES # of lines of authors in doc header; odd=0
+ even=1
+#AUTHOR_NUM Keeps track of user-defined string
+ AUTHOR_&lt;#&gt; in AUTHOR
+#AUTHORS Equals final value of AUTHOR_NUM;
+ used for authors in doc header
#BROKEN_QUOTE Did we invoke BREAK_QUOTE? (toggle)
-#CAP_HEIGHT_ADJUST Tallest cap height of strings LEFT, CENTER, and RIGHT in footers; used to place rule over footer
-#CAPS_WAS_ON In HDRFTR, to re-enable running text CAPS (toggle)
-#CENTER_CAP_HEIGHT Cap height of center string in headers/footers
+#CAP_HEIGHT_ADJUST Tallest cap height of strings LEFT, CENTER,
+ and RIGHT in footers; used to place rule
+ over footer
+#CAPS_WAS_ON In HDRFTR, to re-enable running text CAPS
+ (toggle)
+#CENTER_CAP_HEIGHT Cap height of center string in
+ headers/footers
#CLOSING Is there a closing (for letters)? 1=yes
#COL_L_LENGTH Line length of columns
-#COL_NEXT Was COL_NEXT invoked? (toggle; used in FOOTER)
-#COL_NUM Incrementing counter of num of columns; for use with #COL_&lt;#&gt;_L_MARGIN
-#COL_TOTAL #COL_L_LENGTH + #GUTTER; used to calculate #COL_&lt;#&gt;_L_MARGIN
+#COL_NEXT Was COL_NEXT invoked? (toggle; used in
+ FOOTER)
+#COL_NUM Incrementing counter of num of columns;
+ for use with #COL_&lt;#&gt;_L_MARGIN
+#COL_TOTAL #COL_L_LENGTH + #GUTTER; used to calculate
+ #COL_&lt;#&gt;_L_MARGIN
+#COLLATED_DOC If 1, instructs TOC that this is a collated
+ doc
#COLUMNS Are columns turned on? (toggle)
+#COLUMNS_WERE_ON Stores columnar state prior to outputting
+ endnotes in no-columns mode
#COPY_STYLE 1=draft, 2=final
-#DATE Is there a date (for letters)? 1=yes
dc "mark" register for document columns
-#DEPTH_1 Doc header depth with lead adjustment (#DOCHEADER_LINES * #DOCHEADER_LEAD)
-#DEPTH_2 Doc header depth without lead adjustment (#DOCHEADER_LINES * #DOC_LEAD)
+#DATE Is there a date (for letters)? 1=yes
+#DEFER_PAGINATION Tells COLLATE to restore pagination (from
+ RESTORE_PAGINATION
+#DEPTH_1 Doc header depth with lead adjustment
+ (#DOCHEADER_LINES * #DOCHEADER_LEAD)
+#DEPTH_2 Doc header depth without lead adjustment
+ (#DOCHEADER_LINES * #DOC_LEAD)
#DEPTH_TO_B_MARGIN Page length minus #B_MARGIN
-#DOCHEADER_ADVANCE Distance from top-of-page to baseline of docheader
-#DOCHEADER_LEAD_ADJ +|- value applied to #DOC_LEAD to in/decrease leading of doc header
-#DOCHEADER_LEAD Lead of doc header (#DOC_LEAD + #DOCHEADER_LEAD_ADJ)
-#DOCHEADER_SPACE_ADJ Lead difference between #DEPTH_1 and #DEPTH_2
+#DOCHEADER_ADVANCE Distance from top-of-page to baseline of
+ docheader
+#DOCHEADER_LEAD_ADJ +|- value applied to #DOC_LEAD to
+ in/decrease leading of doc header
+#DOCHEADER_LEAD Lead of doc header
+ (#DOC_LEAD + #DOCHEADER_LEAD_ADJ)
+#DOCHEADER_SPACE_ADJ Lead difference between #DEPTH_1 and
+ #DEPTH_2
#DOC_HEADER Whether to print a doc header (toggle)
-#DOC_LEAD_ADJ Incrementing value (in units) added to #DOC_LEAD to fill page to #B_MARGIN
+#DOC_LEAD_ADJ Incrementing value (in units) added to
+ #DOC_LEAD to fill page to #B_MARGIN
#DOC_LEAD Leading used in body
#DOC_L_LENGTH Global L_LENGTH
#DOC_L_MARGIN Global L_MARGIN
-#DOC_LR_MARGIN_TMP In HEADER, if RECTO_VERSO=1, temporarily holds DOC_L_MARGIN during page margin switch
+#DOC_LR_MARGIN_TMP In HEADER, if RECTO_VERSO=1, temporarily
+ holds DOC_L_MARGIN during page margin switch
#DOC_PT_SIZE Point size used for body text
#DOC_R_MARGIN Global R_MARGIN
#DOCS Always 1 after START
#DOC_TYPE 1=default, 2=chapter, 3=named, 4=letter
#DRAFT The draft number
-#DRAFT_WITH_PAGENUM Are we attaching draft/revision info to page number? (toggle)
+#DRAFT_WITH_PAGENUM Are we attaching draft/revision info to page
+ number? (toggle)
#EM_ADJUST Amount to raise \(em at END
-#EN_PS ps of endnotes
+#EN_ALLOWS_HEADERS Put page headers on endnotes pages? (toggle)
+#EN_ALLOWS_HEADERS_ALL Put page headers on all endnotes pages?
+ (toggle)
+#EN_FIRST_PAGE Tells PRINT_PAGE_NUMBER about endnotes
+ first page number
+#EN_FIRST_PN Page number that appears on page 1 of
+ endnotes pages.
#EN_LEAD Lead of endnotes
-#EN_STRING_UNDERSCORE Underscore endnotes page head? (toggle)
-#EN_TITLE_UNDERSCORE Underscore endnotes document identifier? (toggle)
-#EN_NUMBERS_ALIGN_RIGHT Hang and align endnote numbers right? (toggle)
-#EN_NUMBERS_ALIGN_LEFT Align endnote numbers with left margin? (toggle)
+#EN_NO_COLS Do not set endnotes in columns? (toggle)
+#EN_NO_FIRST_PN Put pagenumber on 1st page of endnotes?
+ (toggle)
+#EN_NUMBERS_ALIGN_RIGHT Hang and align endnote numbers right?
+ (toggle)
+#EN_NUMBERS_ALIGN_LEFT Align endnote numbers with left margin?
+ (toggle)
#EN_NUMBERS_PLACEHOLDERS Number of placeholders when endnote numbers hang and align right
-#EN_NUMBER_L_LENGTH Line length for endnote numbers when they're right aligned
-#EN_PP_INDENT First line indent of paras in multi-para endnotes
+#EN_NUMBER_L_LENGTH Line length for endnote numbers when they're
+ right aligned
+#EN_PP_INDENT First line indent of paras in multi-para
+ endnotes
#EN_PP_SPACE Space multi-paras in endnotes? (toggle)
-#EN_TEXT_INDENT Page offset for text of endnotes when numbers right align
-#END_QUOTE For PP=0 indenting; did we just end a quote? (toggle)
+#EN_PS ps of endnotes
+#EN_SINGLESPACE Single space endnotes pages? (toggle)
+#EN_STRING_CAPS Should ENDNOTES capitalise the endnotes
+ string? (toggle)
+#EN_STRING_UNDERSCORE Underscore endnotes page head? (toggle)
+#EN_TITLE_UNDERSCORE Underscore endnotes document identifier?
+ (toggle)
+#EN_TEXT_INDENT Page offset for text of endnotes when
+ numbers right align
+#END_QUOTE For PP=0 indenting; did we just end a quote?
+ (toggle)
#ENDNOTE Are we in an endnote? (toggle)
-#EN_HDRFTR_CENTER Should we print centre string of headers/footers on endnotes pages? (toggle)
+#ENDNOTES Are we in an endnote (for FOOTERs; toggle)
+#EN_HDRFTR_CENTER Should we print centre string of
+ headers/footers on endnotes pages? (toggle)
#EPI_ACTIVE Are we in an epigraph? (toggle)
-#EPI_DEPTH Depth of epigraph from first baseline to last
+#EPI_DEPTH Depth of epigraph from first baseline to
+ last
#EPI_FITS Does epigraph fit on page/column? (toggle)
#EPIGRAPH Did we have an epigraph? (toggle)
#EPI_LEAD_DIFF Difference between #DOC_LEAD and #EPI_LEAD
#EPI_LEAD Leading of epigraph; set by AUTOLEAD
#EPI_LINES_EVEN Even # of lines at end of epi crossing page in TYPEWRITE (d-spaced)?
#EPI_LINES Number of lines in the epigraph
-#EPI_LINES_TO_END Number of epigraph lines remaining after footer trap is sprung
-#EPI_LINES_TO_TRAP Number of epigraph lines till footer trap is sprung
+#EPI_LINES_TO_END Number of epigraph lines remaining after
+ footer trap is sprung
+#EPI_LINES_TO_TRAP Number of epigraph lines till footer trap is
+ sprung
#EPI_L_LENGTH Epigraph line length
#EPI_OFFSET Left margin of epigraphs
#EPI_OFFSET_VALUE Epigraph indent as a function of page offset
#EPI_ON Are we in an epigraph? (toggle)
-#EPI_WHITESPACE Space after epigraph to compensate for epigraph leading
+#EPI_WHITESPACE Space after epigraph to compensate for
+ epigraph leading
+#FINIS Was FINIS invoked? (toggle)
#FN_AUTOLEAD Autolead value of footnotes
#FN_BL_INDENT Left indent of INDENT BOTH in footnotes
#FN_BR_INDENT Right indent of INDENT BOTH in footnotes
#FN_COUNT_FOR_COLS Holds a separate footnote count for columns (so they don't reset to 0 1 until page break)
#FN_DEFER Defer footnote to next page/column? (toggle) If 0, don't defer.
-#FN_DEFER_SPACE Whether to deposit space before footnote 1 because there's a deferred footnote on the page
+#FN_DEFER_SPACE Whether to deposit space before
+ footnote 1 because there's a deferred
+ footnote on the page
#FN_DEPTH Depth of footnote diversion(s)
-#FN_FOR_EPI Signals to epigraph that a footnote is being processed
-#FN_LEAD Lead in footnotes after FN_AUTOLEAD is applied
+#FN_FOR_EPI Signals to epigraph that a footnote is being
+ processed
+#FN_LEAD Lead in footnotes after FN_AUTOLEAD is
+ applied
#FN_L_INDENT Left indent of INDENT LEFT in footnotes
#FN_LINES Number of lines in fn; used to calculate fn depth
#FN_MARKERS Print footnote markers? (toggle)
#FN_MARKER_STYLE 1=STAR; 2=NUMBER
#FN_NUMBER Running count of fn #; used to print fn marker numbers
#FN_R_INDENT Right indent of INDENT RIGHT in footnotes
-#FN_RULE_ADJ # of points to raise footnote separator from its baseline
+#FN_RULE_ADJ # of points to raise footnote separator from
+ its baseline
#FN_RULE_LENGTH Length of footnote separator rule
#FN_RULE Print fn rule? (toggle)
#FN_WAS_DEFERED Tells HEADER about a defered footnote
-#FOOTER_GAP Amount of space between end of text and page #
-#FOOTER_MARGIN Amount of space between page # and bottom of page
+#FOOTER_GAP Amount of space between end of text and
+ page #
+#FOOTER_MARGIN Amount of space between page # and bottom
+ of page
+#FOOTERS_ON Are we using footers? (toggle)
+#FOOTERS_WERE_ON Were footers on? - used in FINIS and BLANKPAGE (toggle)
#FROM Is there an addressor (for letters)? 1=yes
#FULLSPACE_QUOTES Should we fullspace quotes? (toggle)
#GREETING Is there a greeting (for letters)? 1=yes
#GUTTER Width of gutter between columns
-#HDRFTR_CENTER_CAPS Center part of header/footer in caps? (toggle; default=off)
-#HDRFTR_HEIGHT Cap height of $HDRFTR_RECTO/$HDRFTR_VERSO strings
-#HDRFTR_LEFT_CAPS Left part of header/footer in caps? (toggle; default=off)
-#HDRFTR_RIGHT_CAPS Right part of header/footer in caps? (toggle; default=on)
-#HDRFTR_RULE_GAP Space between header/footer and header/footer rule
+#HDRFTR_CENTER_CAPS Center part of header/footer in caps?
+ (toggle; default=off)
+#HDRFTR_CTR_PAD_LEFT Amount of hdrftr center padding on the left
+#HDRFTR_CTR_PAD_RIGHT Amount of hdrftr center padding on the right
+#HDRFTR_CTR_PAD_TMP Temp storage of left hdrftr center padding
+ (for recto/verso switch)
+#HDRFTR_HEIGHT Cap height of $HDRFTR_RECTO/$HDRFTR_VERSO
+ strings
+#HDRFTR_LEFT_CAPS Left part of header/footer in caps?
+ (toggle; default=off)
+#HDRFTR_RIGHT_CAPS Right part of header/footer in caps?
+ (toggle; default=on)
+#HDRFTR_RULE_GAP Space between header/footer and
+ header/footer rule
#HDRFTR_RULE Print head/footer rule? (toggle)
-#HDRFTR_TMP_CAPS_SWITCH Temporarily holds HDRFTR_LEFT_CAPS value if #SWITCH_HDRFTR=1
+#HDRFTR_TMP_CAPS_SWITCH Temporarily holds HDRFTR_LEFT_CAPS value if
+ #SWITCH_HDRFTR=1
#HEAD 1=main/section head 2=subhead
#HEAD_CAPS Print section titles in caps? (toggle)
#HEADER_GAP Distance from header to running text
#HEADER_MARGIN Distance from top of page to header
#HEADERS_ON Headers on? (toggle)
-#HEADER_STATE Saves header state in COLLATE for use in START after COLLATE
+#HEADER_STATE Saves header state in COLLATE for use in
+ START after COLLATE
+#HEADERS_WERE_ON Were headers on? - used in BLANKPAGE (toggle)
#HEAD_NUM Head number
-#HEAD_SPACE 2 line spaces before heads? (toggle; 1=yes, 0=no)
+#HEAD_SPACE 2 line spaces before heads?
+ (toggle; 1=yes, 0=no)
#HEAD_UNDERLINE Underline section titles? (toggle)
-#IGNORE Should we ignore this macro? Set to 1 in TYPEWRITE.
+#HOW_MANY Number of blank pages to output
+#IGNORE Should we ignore this macro? Set to 1 in
+ TYPEWRITE.
#INDENT_FIRST_PARAS Indent first paras? (toggle)
-#INDENT_FIRSTS Tells foonotes to leave INDENT_FIRST_PARAS alone if it's on for running text.
+#INDENT_FIRSTS Tells foonotes to leave INDENT_FIRST_PARAS
+ alone if it's on for running text.
#ITALIC_MEANS_ITALIC For TYPEWRITE. 1=yes; 0=no
#LEFT_CAP_HEIGHT Cap height of left string in headers/footers
#LETTER_STYLE 1=BUSINESS 2=PERSONAL
#LINEBREAK Did we have a linebreak? (toggle)
-#LINES_PER_PAGE # of lines (at DOC_LEAD) that fit on page after #B_MARGIN is set
-#L_LENGTH_FOR_EPI Stores line length at top of doc for use with EPIGRAPH when columns are on
-#L_MARGIN_DIFF Difference between DOC_L_MARGIN and L_MARGIN
+#LINES_PER_PAGE # of lines (at DOC_LEAD) that fit on
+ page after #B_MARGIN is set
+#L_LENGTH_FOR_EPI Stores line length at top of doc for use
+ with EPIGRAPH when columns are on
+#L_MARGIN_DIFF Difference between DOC_L_MARGIN and
+ L_MARGIN
#n%_AT_PAGENUM_SET Page # from n% when PAGENUMBER invoked
-#NEXT_AUTHOR Supplies correct digit to AUTHOR_&lt;#&gt; when printing authors in doc header
+#NEXT_AUTHOR Supplies correct digit to AUTHOR_&lt;#&gt;
+ when printing authors in doc header
#NO_TRAP_RESET Should we reset page traps? (toggle)
#NUM_AUTHORS # of authors mod 2 to test if odd or even # of authors
#NUMBER_HEAD Are heads numbered? (toggle)
#NUMBER_PH Are paraheads numbered? (toggle)
#NUMBER_SH Are subheads numbered? (toggle)
#NUM_COLS Number of columns per page
+#OK_PROCESS_LEAD Initial processing of TOC and endnote
+ leading is defered until OK_PROCESS_LEAD=1
#PAGE_NUM_ADJ What to add to n% to get #PAGENUMBER
#PAGENUMBER The page number
#PAGENUM_STYLE_SET Did we set pagenumber style? (toggle)
#PAGE_NUM_H_POS 1=left 2=center 3=right; default=2
-#PAGE_NUM_HYPHENS Print hyphens surrounding page numbers? (toggle)
+#PAGE_NUM_HYPHENS Print hyphens surrounding page numbers?
+ (toggle)
#PAGE_NUM_HYPHENS_SET Did user set (or unset) hyphens around page numbers? (toggle)
#PAGE_NUM_POS_SET Did user set page number position? (toggle)
#PAGE_NUM_SET Test if PAGE_1_NUM was used to set 1st page number
@@ -743,61 +960,118 @@ dc "mark" register for document columns
#PAGE_NUM_V_POS 1=top 2=bottom; default=2
#PAGE_TOP \n(nl after HEADER completes itself
#PH_NUM Parahead number
-#PAGINATION_STATE Saves pagination state in COLLATE for use in START after a COLLATE
+#PAGINATE_TOC Is toc pagination on? (toggle)
+#PAGINATE_WAS_ON Keeps track of pagination state while
+ outputting blank pages
+#PAGINATION_STATE Saves pagination state in COLLATE for use in
+ START after a COLLATE
+#PAGINATION_WAS_ON Was pagination on? - used in FINIS (toggle)
#PP 0 at first para; auto-increments
#PP_AT_PAGE_BREAK # of last (incl. partial) para on page
#PP_INDENT How much to indent paras
#PP_SPACE Put space before paras? (toggle)
-#PP_SPACE_SUSPEND Suspend para spacing for blockquotes and epigraphs
-#PP_STYLE_PREV In footnotes, stores PP style in effect prior to invoking FOOTNOTE
+#PP_SPACE_SUSPEND Suspend para spacing for blockquotes and
+ epigraphs
+#PP_STYLE_PREV In footnotes, stores PP style in effect
+ prior to invoking FOOTNOTE
#PP_STYLE Regular para=1; quote or epi para=2
-#PRINT_PAGENUM_ON_PAGE_1 Should we print the page number on first page of doc when footers are on? (toggle)
+#PRINT_PAGENUM_ON_PAGE_1 Should we print the page number on first
+ page of doc when footers are on? (toggle)
#PRINT_STYLE Typewrite=1, typeset=2
-#PT_SIZE_IN_UNITS Stored value of \n[.ps] from last time PT_SIZE was called
+#PT_SIZE_IN_UNITS Stored value of \n[.ps] from last time
+ PT_SIZE was called
#Q_DEPTH Depth of quote
-#Q_FITS Does this quote fit on one page/column? (toggle)
+#Q_FITS Does this quote fit on one page/column?
+ (toggle)
#Q_L_LENGTH Line length of quotes
#Q_OFFSET Page offset for quotes
-#Q_OFFSET_VALUE Factor by which to multiply PP_INDENT to offset quotes
-#Q_PP In PP, stores para # in QUOTE. Removed in ENDQUOTE.
+#Q_OFFSET_VALUE Factor by which to multiply PP_INDENT to
+ offset quotes
+#Q_PP In PP, stores para # in QUOTE. Removed in
+ ENDQUOTE.
#Q_TOP Vertical place on page that a quote starts
#QUOTE 1=PQUOTE, 2=BQUOTE
-#RECTO_VERSO Switch HEADER_LEFT and HEADER_RIGHT on alternate pages? (toggle); default=0
-#REPEAT Number of times to repeat linebreak character
+#RECTO_VERSO Switch HEADER_LEFT and HEADER_RIGHT on
+ alternate pages? (toggle); default=0
+#REPEAT Number of times to repeat linebreak
+ character
#RESET_EN_PP Holds value of register #EN_PP_INDENT
-#RESET_FN_NUMBER Should fn# start at 1 on every page? (toggle)
+#RESET_FN_NUMBER Should fn# start at 1 on every page?
+ (toggle)
#RESET_L_LENGTH Stores current line length when necessary
-#RESET_PARA_SPACE Holds current value of toggle register #PP_SPACE
+#RESET_PARA_SPACE Holds current value of toggle register
+ #PP_SPACE
#RESET_PP_INDENT Stores value of PP_INDENT when necessary
-#RESET_QUOTE_SPACING Stores value of toggle register #FULLSPACE_QUOTES (used in endnotes)
-#RESTORE_DOC_LEAD Holds value of current doc lead (used in endnotes)
-#RESTORE_OFFSET Page offset at moment footer trap is sprung; not currently used
+#RESET_QUOTE_SPACING Stores value of toggle register
+ #FULLSPACE_QUOTES (used in endnotes)
+#RESTORE_DOC_LEAD Holds value of current doc lead (used in
+ endnotes)
+#RESTORE_OFFSET Page offset at moment footer trap is sprung;
+ not currently used
+#RESTORE_TOC_PN_PADDING Saves #TOC_PN_PADDING in TOC prior to
+ processing $FIRST_DOC_TITLE
#REVISION The revision number
-#RIGHT_CAP_HEIGHT Cap height of right string in headers/footers
-#SH_LEAD_ADJUST #DOC_LEAD/8 (TYPESET) or /2 (TYPEWRITE) (used for subhead spacing)
+#RIGHT_CAP_HEIGHT Cap height of right string in
+ headers/footers
+#SH_LEAD_ADJUST #DOC_LEAD/8 (TYPESET) or /2 (TYPEWRITE)
+ (used for subhead spacing)
#SH_NUM Subhead number
#SINGLE_SPACE Is TYPEWRITE in single space mode? (toggle)
#SLANT_MEANS_SLANT For TYPEWRITE. 1=yes; 0=no
-#SLANT_WAS_ON Keeps track of SLANT when it needs to go off for a while
-#SPACE_REMAINING Space remaining to footer trap; used to decide whether or not to defer a footnote
+#SLANT_WAS_ON Keeps track of SLANT when it needs to go off
+ for a while
+#SPACE_REMAINING Space remaining to footer trap; used to
+ decide whether or not to defer a footnote
#START If 1, signals completion of START
-#START_FOR_FOOTERS Toggle set in START; signals to PRINT_HDRFTR that START has been invoked, allowing PRINT_HDRFTR to decide whether or not to print a footer on page 1
+#START_FOR_FOOTERS Toggle set in START; signals to
+ PRINT_HDRFTR that START has been invoked,
+ allowing PRINT_HDRFTR to decide whether or
+ not to print a footer on page 1
#SUITE Current page number (for letters)
#SUP_PT_SIZE Point size of superscript
-#SWITCH_HDRFTR Switch HDRFTR_LEFT and HDRFTR_RIGHT? (toggle)
+#SUSPEND_PAGINATION Suspend pagination prior to endnotes?
+#SWITCH_HDRFTR Switch HDRFTR_LEFT and HDRFTR_RIGHT?
+ (toggle)
#TAB_OFFSET# "#" at the end is from $CURRENT_TAB
-#TO Is there an addressee date (for letters)? 1=yes
+#TO Is there an addressee date (for letters)?
+ 1=yes
+#TOC_AUTHORS Whether to append author(s) to toc doc
+ title entries (toggle)
+#TOC_ENTRY_PN Current page number when a toc entry is
+ collected
+#TOC_FIRST_PAGE If 1, tells PRINT_PAGE_NUMBER that this
+ is the first page of the toc
+#TOC_LEAD Leading of toc pages
+#TOC_PN_PADDING Max. # of placeholders for toc entries
+ page numbers
+#TOC_PS Point size of toc pages
+#TOC_RV_SWITCH Switch L/R margins of toc pages
+#TOC_HEAD_INDENT Indent of toc head entries
+#TOC_HEAD_SIZE_CHANGE ps in/decrease of toc head entries****
+#TOC_PH_INDENT Indent of toc parahead entries
+#TOC_PH_SIZE_CHANGE ps in/decrease of toc parahead entries****
+#TOC_SH_INDENT Indent of toc subhead entries
+#TOC_SH_SIZE_CHANGE ps in/decrease of toc subhead entries****
+#TOC_TITLE_INDENT Indent of toc doc title entries
+#TOC_TITLE_SIZE_CHANGE ps in/decrease of toc doc title entries****
#UNDERLINE_ITALIC For TYPEWRITE. 1=yes; 0=no
#UNDERLINE_QUOTE Underline pquotes? (toggle)
#UNDERLINE_SLANT For TYPEWRITE. 1=yes; 0=no
-#UNDERLINE_WAS_ON In HEADER to re-enable running text UNDERLINE (toggle)
-#USERDEF_HDRFTR User defined single string recto/verso header/footer? (toggle)
+#UNDERLINE_WAS_ON In HEADER to re-enable running text
+ UNDERLINE (toggle)
+#USERDEF_HDRFTR User defined single string recto/verso
+ header/footer? (toggle)
#USERDEF_HDRFTR_RECTO_QUAD 1=left, 2=center, 3=right
#USERDEF_HDRFTR_VERSO_QUAD 1=left, 2=center, 3=right
-#USER_DEF_HEADER_CENTER User defined center title? (1=yes); used in COPYSTYLE
-#USER_DEF_HEADER_LEFT User defined center title? (1=yes); used in COPYSTYLE
-#USER_DEF_HEADER_RIGHT User defined center title? (1=yes); used in COPYSTYLE
-#VARIABLE_FOOTER_POS Wandering trap position for processing footnotes and footers; pos depends on footnotes
+#USER_DEF_HEADER_CENTER User defined center title? (1=yes);
+ used in COPYSTYLE
+#USER_DEF_HEADER_LEFT User defined center title? (1=yes);
+ used in COPYSTYLE
+#USER_DEF_HEADER_RIGHT User defined center title? (1=yes);
+ used in COPYSTYLE
+#VARIABLE_FOOTER_POS Wandering trap position for processing
+ footnotes and footers; pos depends on
+ footnotes
+++STRINGS+++
@@ -811,25 +1085,39 @@ $BQUOTE_FAM Family to use for blockquotes
$BQUOTE_FT Font to use for blockquotes
$BQUOTE_QUAD Quad value for blockquotes
$BQUOTE_SIZE_CHANGE ps in/decrease of blockquotes*
-$CENTER_TITLE What to put in the middle of header title
+$CENTER_TITLE What to put in the middle of header
+ title
$CHAPTER The chapter number
-$CHAPTER_STRING What to print whenever the word "chapter" is required
+$CHAPTER_STRING What to print whenever the word
+ "chapter" is required
$CHAPTER_TITLE Chapter title (if there is one)
$CHAPTER_TITLE_FAM Family of chapter title
$CHAPTER_TITLE_FT Font of chapter title
$CHAPTER_TITLE_SIZE_CHANGE ps in/decrease of chapter title*
$CHAPTER_TITLE_PT_SIZE Absolute ps of chapter title
$COPY_STYLE DRAFT or FINAL
-$DOC_FAM Predominant font family used in the document
-$DOC_QUAD Quad used for body text (justified or left)
-$DOC_TYPE Document type (default, chapter, named, letter)
-$DOCTYPE_FAM Family to use for DOCTYPE string in doc header
-$DOCTYPE_FT Font to use for DOCTYPE string in doc header
-$DOCTYPE_SIZE_CHANGE ps in/decrease of DOCTYPE string in doc header*
+$DOC_FAM Predominant font family used in the
+ document
+$DOC_QUAD Quad used for body text (justified or
+ left)
+$DOC_TITLE Overall doc title that gets printed in
+ headers/footers (mostly for use with collated
+ docs where each doc is an article with a
+ different title
+$DOC_TYPE Document type (default, chapter, named,
+ letter)
+$DOCTYPE_FAM Family to use for DOCTYPE string in
+ doc header
+$DOCTYPE_FT Font to use for DOCTYPE string in
+ doc header
+$DOCTYPE_SIZE_CHANGE ps in/decrease of DOCTYPE string in
+ doc header*
$DOCTYPE_PT_SIZE Absolute ps of DOCTYPE
-$DRAFT_STRING What to print whenever the word "draft" is required
+$DRAFT_STRING What to print whenever the word "draft"
+ is required
$EN_FAMILY Family for endnotes
$EN_FT Font for endnotes
+$EN_PN_STYLE Pagenumbering style for endnotes pages
$EN_QUAD Quad for endnotes
$EN_STRING Endnotes page head
$EN_STRING_FAM Endnotes page head family
@@ -839,59 +1127,85 @@ $EN_STRING_SIZE_CHANGE Endnotes page head size***
$EN_TITLE Endnote document identifier
$EN_TITLE_FAM Endnote document identifier family
$EN_TITLE_FT Endnote document identifier font
-$EN_TITLE_QUAD Endnote document identifier quad direction
+$EN_TITLE_QUAD Endnote document identifier quad
+ direction
$EN_TITLE_SIZE_CHANGE Endnote document identifier size***
$EN_NUMBER_FAM Endnote numbering family
$EN_NUMBER_FT Endnote numbering font
$EN_NUMBER_SIZE_CHANGE Endnote numbering size***
-$EPI_AUTOLEAD Autolead value (decimals ok) of epigraphs
+$EPI_AUTOLEAD Autolead value (decimals ok) of
+ epigraphs
$EPI_FAM Family to use in epigraphs
$EPI_FT Font to use in epigraphs
-$EPI_QUAD Quad in block-style epigraphs (justified or left)
+$EPI_QUAD Quad in block-style epigraphs
+ (justified or left)
$EPI_SIZE_CHANGE ps in/decrease of epigraphs*
-$FINIS_STRING What to print when FINIS macro is invoked
+$FINIS_STRING What to print when FINIS macro is
+ invoked
+$FIRST_DOC_TITLE 1st doc's title captured in COLLATE
$FN_FAM Family used in footnotes
$FN_FT Font used in footnotes
$FN_QUAD Quad used in footnotes
$FN_SIZE_CHANGE ps in/decrease of footnotes*
+$HDRFTR_CENTER What to put in center part of headers;
+ default doctype
$HDRFTR_CENTER_FAM Family of center part of headers
$HDRFTR_CENTER_FT Font of center part of headers
-$HDRFTR_CENTER_SIZE_CHANGE ps in/decrease of center title in headers**
-$HDRFTR_CENTER What to put in center part of headers; default doctype
+$HDRFTR_CENTER_NEW HDRFTR_CENTER after the start of TOC;
+ defined in HDRFTR_CENTER if
+ HDRFTR_CENTER is called as
+ FOOTER_CENTER
+$HDRFTR_CENTER_OLD HDRFTR_CENTER just prior to start of
+ TOC; defined in HDRFTR_CENTER if
+ HDRFTR_CENTER is called as
+ FOOTER_CENTER
+$HDRFTR_CENTER_SIZE_CHANGE ps in/decrease of center title in
+ headers**
$HDRFTR_FAM Family to use in headers
$HDRFTR_LEFT_FAM Family of left part of headers
$HDRFTR_LEFT_FT Font of left part of headers
$HDRFTR_LEFT_SIZE_CHANGE ps in/decrease of author in headers**
-$HDRFTR_LEFT What to put in left part of headers; default author
+$HDRFTR_LEFT What to put in left part of headers;
+ default author
$HDRFTR_RIGHT_FAM Family of right part of headers
$HDRFTR_RIGHT_FT Font of right part of headers
-$HDRFTR_RIGHT_SIZE_CHANGE ps in/decrease of right part of headers**
-$HDRFTR_RIGHT What to put in right part of headers; default title
+$HDRFTR_RIGHT_SIZE_CHANGE ps in/decrease of right part of
+ headers**
+$HDRFTR_RIGHT What to put in right part of headers;
+ default title
$HDRFTR_SIZE_CHANGE ps in/decrease of headers*
-$HDRFTR_TMP_SIZE_CHANGE_SWITCH Temporarily holds HDRFTR_LEFT_SIZE_CHANGE if #SWITCH_HDRFTRS=1
-$HDRFTR_TMP_SWITCH Temporarily holds HDRFTR_LEFT if #SWITCH_HDRFTRS=1
+$HDRFTR_TMP_SIZE_CHANGE_SWITCH Temporarily holds
+ HDRFTR_LEFT_SIZE_CHANGE if
+ #SWITCH_HDRFTRS=1
+$HDRFTR_TMP_SWITCH Temporarily holds HDRFTR_LEFT if
+ #SWITCH_HDRFTRS=1
$HEAD_FAM Family to use for section titles
$HEAD_FT Font to use for section titles
$HEAD_QUAD Quad valude of section titles
$HEAD_SIZE_CHANGE ps in/decrease of section titles*
$LINEBREAK_CHAR Character that marks line breaks
-$LINEBREAK_CHAR_V_ADJ +|- amount by which to raise/lower linebreak character
-PAGE# For use in hdrftr strings where page # is needed; \*[PAGE]
+$LINEBREAK_CHAR_V_ADJ +|- amount by which to raise/lower
+ linebreak character
+PAGE# For use in hdrftr strings where page #
+ is needed; \*[PAGE]
$PAGENUM_STYLE String passed to PAGENUM_STYLE
$PAGE_NUM_FAM Family of page numbers
$PAGE_NUM_FT Font of page numbers
$PAGE_NUM_SIZE_CHANGE ps in/decrease of page numbers
-$PAPER Paper size (LETTER, A4, LEGAL); default=LETTER
+$PAPER Paper size (LETTER, A4, LEGAL);
+ default=LETTER
$PP_FT Font used in paragraphs
$QUOTE_FAM Family to use for pquotes
$QUOTE_FT Font to use for pquotes
$QUOTE_SIZE_CHANGE ps in/decrease of pquotes*
-$REVISION_STRING What to print whenever the word "revision" is required
+$REVISION_STRING What to print whenever the word
+ "revision" is required
$SH_FAM Family to use in subheads
$SH_FT Font to use in subheads
$SH_SIZE_CHANGE ps in/decrease of subheads*
$SUBTITLE Document subtitle
-$SUBTITLE_FAM Family to use for subtitle in doc header
+$SUBTITLE_FAM Family to use for subtitle in doc
+ header
$SUBTITLE_FT Font to use for subtitle in doc header
$SUBTITLE_SIZE_CHANGE ps in/decrease of subtitle*
$SUBTITLE_PT_SIZE Absolute ps of subtitle
@@ -901,12 +1215,44 @@ $TITLE_FAM Family to use for title in doc header
$TITLE_FT Font to use for title in doc header
$TITLE_PT_SIZE Absolute point size of title in docheader
$TITLE_SIZE_CHANGE ps in/decrease of title in doc header*
+$TOC_AUTHORS What to print after toc doc title entry
+ if #TOC_AUTHORS=1
+$TOC_FAM Family to use on toc pages
+$TOC_HEAD_FAM Family of toc head entries
+$TOC_HEAD_FT Font of toc head entries
+$TOC_HEAD_ITEM A head as collected for TOC_ENTRIES
+$TOC_HEADER_FAM Family to use for "Contents"
+$TOC_HEADER_FT Font to use for "Contents"
+$TOC_HEADER_QUAD Quad direction of "Contents"
+$TOC_HEADER_SIZE ps in/decrease of "Contents"****
+$TOC_HEADER_STRING Header string of first toc page
+$TOC_PN Sets up toc leaders + entry pn
+ (typeset)
+$TOC_PN_FAM Family for toc entries page numbers
+$TOC_PN_FT Font for toc entries page numbers
+$TOC_PN_SIZE_CHANGE ps in/decrease of toc entries page
+ numbers
+$TOC_PN_STYLE Page-numbering style of toc pages
+$TOC_PN_TYPEWRITE Sets up toc leaders + entry pn
+ (typewrite)
+$TOC_PH_FAM Family of toc parahead entries
+$TOC_PH_FT Font of toc parahead entries
+$TOC_PARAHEAD_ITEM A parahead collected for TOC_ENTRIES
+$TOC_SH_FAM Family of toc subhead entries
+$TOC_SH_FT Font of toc subhead entries
+$TOC_SH_ITEM A subhead collected for TOC_ENTRIES
+$TOC_TITLE_FAM Family of toc doc title entries
+$TOC_TITLE_FT Font of toc doc title entries
+$USER_SET_TITLE_ITEM User defined toc doc title entry as
+ set by TOC_TITLE_ENTRY
+$UR_PAGINATION_STYLE Pagination style prior to endnotes
$USERDEF_HDRFTR_RECTO User defined header/footer recto string
$USERDEF_HDRFTR_VERSO User defined header/footer verso string
- *relative to #DOC_PT_SIZE
- **relative to overall ps of headers as set by HEADER_SIZE
-***relative to overall ps of endnotes
+ *relative to #DOC_PT_SIZE
+ **relative to overall ps of headers as set by HEADER_SIZE
+ ***relative to overall ps of endnotes
+****relative to overal ps of toc pages
+++PREPROCESSOR KEYWORDS+++
@@ -1049,6 +1395,9 @@ PP_FT PP_FONT
PRINT_FOOTNOTE_RULE FOOTNOTE_RULE
SWITCH_FOOTERS SWITCH_HDRFTR
SWITCH_HEADERS SWITCH_HDRFTR
+TOC_FAM TOC_FAMILY
+TOC_LS TOC_LEAD
+TOC_PS TOC_PT_SIZE
</pre>
<hr>
diff --git a/contrib/mom/momdoc/toc.html b/contrib/mom/momdoc/toc.html
index cd853e8e..a6e1b8ff 100644
--- a/contrib/mom/momdoc/toc.html
+++ b/contrib/mom/momdoc/toc.html
@@ -8,7 +8,49 @@
<!====================================================================>
<h1><u>Table of Contents</u></h1>
+<a href="#TOC_PROP">This link takes you to the Table of Contents itself</a>
+<h3>Table of Contents Navigation</h3>
+<a href="#INTRO">INTRODUCTORY STUFF</a>
<ul>
+ <li><a href="#WHAT">What is mom?</a>
+ <li><a href="#DEFS">Definitions of terms used in this manual</a>
+ <li><a href="#USING">Using mom</a>
+</ul>
+<a href="#TYPESET">TYPESETTING WITH MOM</a>
+<ul>
+ <li><a href="#TYPE_INTRO">Intro to typesetting macros</a>
+ <li><a href="#PAGE">Page setup</a>
+ <li><a href="#PARAM">Basic typesetting parameters</a>
+ <li><a href="#JUST">Justifying, quadding, etc.</a>
+ <li><a href="#REFINE">Refinements</a>
+ <li><a href="#MOD">Modifying type</a>
+ <li><a href="#VERT">Vertical movements</a>
+ <li><a href="#TAB">Tabs</a>
+ <li><a href="#COL">Multiple columns</a>
+ <li><a href="#IND">Indents</a>
+ <li><a href="#GOODIES">Goodies</a>
+ <li><a href="#ESCAPES">Inline escapes</a>
+</ul>
+<a href="#DOCPROC">DOCUMENT PROCESSING WITH MOM</a>
+<ul>
+ <li><a href="#DOCPROC_INTRO">Introduction to document processing</a>
+ <li><a href="#PRELIM">Preliminary document setup</a>
+ <li><a href="#TAGS">The document element tags</a> -- heads, subheads, footnotes, etc.
+ <li><a href="#HDRFTR">Headers and footers</a>
+ <li><a href="#PAGINATE">Pagination</a>
+ <li><a href="#RV">Recto/verso printing and collating</a>
+ <li><a href="#COVER">Cover pages</a>
+ <li><a href="#LETTER">Writing letters</a>
+ <li><a href="#TYPEMACDOC">Using typesetting macros during document processing</a>
+ <li><a href="#APP">Appendices</a>
+</ul>
+<br>
+<hr width="66%" align="left">
+<br>
+<a name="TOC_PROP"></a>
+<h3>The Table of Contents Proper</h3>
+<a name="INTRO"></a>
+<a name="WHAT"></a>
<li><a href="intro.html#INTRO"><strong>1. WHAT IS MOM?</strong></a>
<ul>
<li><a href="intro.html#INTRO_INTRO">1.1 Who is mom meant for?</a>
@@ -21,12 +63,14 @@
<li><a href="intro.html#TOGGLE_MACRO">1.5.2 &quot;Toggle&quot; macros</a>
</ul>
</ul>
+<a name="DEFS"></a>
<li><a href="definitions.html#TERMS"><strong>2. DEFINITIONS OF TERMS USED IN THIS MANUAL</strong></a>
<ul>
<li><a href="definitions.html#TERMS_TYPESETTING">2.1 Typesetting terms</a>
<li><a href="definitions.html#TERMS_GROFF">2.2 Groff terms</a>
<li><a href="definitions.html#TERMS_MOM">2.3 Mom's document processing terms</a>
</ul>
+<a name="USING"></a>
<li><a href="using.html#USING"><strong>3. USING MOM</strong></a>
<ul>
<li><a href="using.html#USING_INTRO">3.1 Introduction</a>
@@ -34,34 +78,43 @@
<li><a href="using.html#USING_INVOKING">3.3 Printing -- invoking groff with mom</a>
<li><a href="using.html#USING_PREVIEWING">3.4 How to preview documents</a>
</ul>
+<a name="TYPESET"></a>
<li><a href="typesetting.html#MACROS_TYPESETTING"><strong>4. THE TYPESETTING MACROS</strong></a>
<ul>
+<a name="TYPE_INTRO"></a>
<li><a href="typesetting.html#INTRO_MACROS_TYPESETTING">4.1 Introduction to the typesetting macros</a>
<br>
+<a name="PAGE"></a>
<li><a href="typesetting.html#PAGE_MARGINS"><strong>4.2 Page Setup</strong></a> -- paper size and page margins
<ul>
<li><a href="typesetting.html#INDEX_SETUP">4.2.1 Macro list</a>
</ul>
+<a name="PARAM"></a>
<li><a href="typesetting.html#BASIC_PARAMS"><strong>4.3 Basic Parameters</strong></a> -- family, font, point size, line space, line length, autolead
<ul>
<li><a href="typesetting.html#INDEX_BASIC">4.3.1 Macro list</a>
</ul>
+<a name="JUST"></a>
<li><a href="typesetting.html#JUST_QUAD_FILL"><strong>4.4 Justifying, Quadding, Filling and Breaking Lines</strong></a>
<ul>
<li><a href="typesetting.html#INDEX_JUST">4.4.1 Macro list</a>
</ul>
+<a name="REFINE"></a>
<li><a href="typesetting.html#REFINEMENTS"><strong>4.5 Refinements</strong></a> -- word space, sentence space, letter spacing (track kerning), hyphenation, kerning, ligatures
<ul>
<li><a href="typesetting.html#INDEX_REFINEMENTS">4.5.1 Macro list</a>
</ul>
+<a name="MOD"></a>
<li><a href="typesetting.html#MODIFICATIONS"><strong>4.6 Modifying Type</strong></a> -- pseudo-italic, -bold, -condensed, and -extended
<ul>
<li><a href="typesetting.html#INDEX_MODIFICATIONS">4.6.1 Macro list</a>
</ul>
+<a name="VERT"></a>
<li><a href="typesetting.html#ALDRLD"><strong>4.7 Vertical Movements</strong></a> -- moving up and down on the page
<ul>
<li><a href="typesetting.html#INDEX_ALDRLD">4.7.1 Macro list</a>
</ul>
+<a name="TAB"></a>
<li><a href="typesetting.html#TABS"><strong>4.8 Tabs</strong></a>
<ul>
<li><a href="typesetting.html#TYPESETTING_TABS">4.8.1 Typesetting tabs</a>
@@ -74,15 +127,18 @@
</ul>
<li><a href="typesetting.html#INDEX_TABS">4.8.3 Macro list</a>
</ul>
+<a name="COL"></a>
<li><a href="typesetting.html#MULTI_COLUMNS"><strong>4.9 Multi-columns</strong></a>
<ul>
<li><a href="typesetting.html#INDEX_MULTI_COLUMNS">4.9.1 Macro list</a>
</ul>
+<a name="IND"></a>
<li><a href="typesetting.html#INDENTS"><strong>4.10 Indents</strong></a>
<ul>
<li><a href="typesetting.html#INDENTS_TUT">4.10.1 A brief explanation of how mom handles indents</a>
<li><a href="typesetting.html#INDEX_INDENTS">4.10.2 Macro list</a>
</ul>
+<a name="GOODIES"></a>
<li><a href="goodies.html#GOODIES"><strong>4.11 Goodies</strong></a> -- aliases,
transparent lines, smartquotes, caps,
underscoring/underlining, padding lines, leaders, drop
@@ -90,6 +146,7 @@
<ul>
<li><a href="goodies.html#INDEX_GOODIES">4.11.1 Macro list</a>
</ul>
+<a name="ESCAPES"></a>
<li><a href="inlines.html#INLINE_ESCAPES"><strong>4.12 Inline Escapes</strong></a>
<ul>
<li><a href="inlines.html#INTRO_INLINE_ESCAPES">4.12.1 Introduction to inline escapes</a>
@@ -98,6 +155,8 @@
<li><a href="inlines.html#INLINE_CHARACTERS_GROFF">4.12.3.1 Inlines for special characters and symbols</a>
</ul>
</ul>
+<a name="DOCPROC"></a>
+<a name="DOCPROC_INTRO"></a>
<li><a href="docprocessing.html#DOCPROCESSING"><strong>5. DOCUMENT PROCESSING WITH MOM</strong></a>
<ul>
<li><a href="docprocessing.html#INTRO_MACROS_DOCPROCESSING">5.1 Introduction to document processing</a>
@@ -105,6 +164,7 @@
<ul>
<li><a href="docprocessing.html#LEADING_NOTE">IMPORTANT NOTE on leading/spacing and bottom margins</a>
</ul>
+<a name="PRELIM"></a>
<li><a href="docprocessing.html#SETUP"><strong>5.3 PRELIMINARY DOCUMENT SETUP</strong></a>
<ul>
<li><a href="docprocessing.html#DOCPROCESSING_TUT">5.3.1 Tutorial</a> -- setting up a mom document
@@ -112,12 +172,13 @@
<li><a href="docprocessing.html#REFERENCE_MACROS"><strong>5.3.2 The Reference Macros</strong></a>
<ul>
<li><a href="docprocessing.html#TITLE">5.3.2.1 TITLE</a>
- <li><a href="docprocessing.html#SUBTITLE">5.3.2.2 SUBTITLE</a>
- <li><a href="docprocessing.html#AUTHOR">5.3.2.3 AUTHOR</a>
- <li><a href="docprocessing.html#CHAPTER">5.3.2.4 CHAPTER</a>
- <li><a href="docprocessing.html#CHAPTER_TITLE">5.3.2.5 CHAPTER_TITLE</a>
- <li><a href="docprocessing.html#DRAFT">5.3.2.6 DRAFT</a>
- <li><a href="docprocessing.html#REVISION">5.3.2.7 REVISION</a>
+ <li><a href="docprocessing.html#DOC_TITLE">5.3.2.2 DOCTITLE</a>
+ <li><a href="docprocessing.html#SUBTITLE">5.3.2.3 SUBTITLE</a>
+ <li><a href="docprocessing.html#AUTHOR">5.3.2.4 AUTHOR</a>
+ <li><a href="docprocessing.html#CHAPTER">5.3.2.5 CHAPTER</a>
+ <li><a href="docprocessing.html#CHAPTER_TITLE">5.3.2.6 CHAPTER_TITLE</a>
+ <li><a href="docprocessing.html#DRAFT">5.3.2.7 DRAFT</a>
+ <li><a href="docprocessing.html#REVISION">5.3.2.8 REVISION</a>
</ul>
<li><a href="docprocessing.html#DOCSTYLE_MACROS"><strong>5.3.3 The Docstyle Macros</strong></a>
<ul>
@@ -139,6 +200,7 @@
<li><a href="docprocessing.html#INDEX_DOC_PARAM">5.3.6.1 Macro list</a>
</ul>
</ul>
+<a name="TAGS"></a>
<li><a href="docelement.html#DOCELEMENT"><strong>5.4 THE DOCUMENT ELEMENT TAGS</strong></a>
<ul>
<li><a href="docelement.html#DOCELEMENT_INTRO">5.4.1 Introduction to the document element tags</a>
@@ -156,8 +218,11 @@
<li><a href="docelement.html#BLOCKQUOTE_INTRO">5.4.9 Blockquotes</a> -- cited material
<li><a href="docelement.html#FOOTNOTE_INTRO">5.4.10 Footnotes</a>
<li><a href="docelement.html#ENDNOTE_INTRO">5.4.11 Endnotes</a>
- <li><a href="docelement.html#FINIS_INTRO">5.4.12 Document termination</a> -- FINIS
+ <li><a href="docelement.html#BLANK_PAGE_TITLE">5.4.12 Blank page</a>
+ <li><a href="docelement.html#TOC_INTRO">5.4.13 Table of contents</a>
+ <li><a href="docelement.html#FINIS_INTRO">5.4.14 Document termination</a> -- FINIS
</ul>
+<a name="HDRFTR"></a>
<li><a href="headfootpage.html#HEADFOOTPAGE"><strong>5.5 DOCUMENT HEADERS AND FOOTERS</strong></a>
<ul>
<li><a href="headfootpage.html#HEADFOOTPAGE_INTRO">5.5.1 Introduction</a>
@@ -170,11 +235,13 @@
</ul>
<li><a href="headfootpage.html#HEADFOOT_CONTROL">5.5.6 Control macros for headers/footers</a>
</ul>
+<a name="PAGINATE"></a>
<li><a href="headfootpage.html#PAGINATION"><strong>5.6 PAGINATION</strong></a>
<ul>
<li><a href="headfootpage.html#PAGINATION">Introduction</a>
<li><a href="headfootpage.html#INDEX_PAGINATION">Pagination macros list</a>
</ul>
+<a name="RV"></a>
<li><a href="rectoverso.html#RECTOVERSO"><strong>5.7 RECTO/VERSO PRINTING AND COLLATING</strong></a>
<ul>
<li><a href="rectoverso.html#RECTOVERSO_INTRO">5.7.1 Introduction to recto/verso</a>
@@ -186,8 +253,10 @@
<li><a href="rectoverso.html#COLLATE">5.7.2.1 The COLLATE macro</a>
</ul>
</ul>
- <li><a href="cover.html#RECTOVERSO"><strong>5.8 CREATING A COVER PAGE</strong></a>
+<a name="COVER"></a>
+ <li><a href="cover.html"><strong>5.8 CREATING A COVER PAGE</strong></a>
<br>
+<a name="LETTER"></a>
<li><a href="letters.html#LETTERS"><strong>5.9 WRITING LETTERS</strong></a>
<ul>
<li><a href="letters.html#LETTERS_INTRO">5.9.1 Introduction to writing letters</a>
@@ -195,8 +264,10 @@
<li><a href="letters.html#LETTERS_DEFAULTS">5.9.3 Default style for letters</a>
<li><a href="letters.html#LETTERS_MACROS">5.9.4 The letter macros</a>
</ul>
+<a name="TYPEMACDOC"></a>
<li><a href="typemacdoc.html#TYPESETTING"><strong>5.10 USING TYPESETTING MACROS DURING DOCUMENT PROCESSING</strong></a>
</ul>
+<a name="APP"></a>
<li><a href="appendices.html#APPENDICES"><strong>6. APPENDICES</strong></a>
<ul>
<li><a href="appendices.html#MOREDOC">6.1 Further notes on this documentation</a>
diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac
index 5d43b508..ab09d36f 100644
--- a/contrib/mom/om.tmac
+++ b/contrib/mom/om.tmac
@@ -23,7 +23,7 @@
.\"
.
.
-\# Version 1.1.5
+\# Version 1.1.6
\# -------------
\#
.if (\n[.x]\n[.y] < 118) \
@@ -460,8 +460,8 @@
. nr #KERN 1
. \}
. el \{\
-. kern 0
-. nr #KERN 0
+. kern 0
+. nr #KERN 0
. \}
.END
\#
@@ -1259,6 +1259,7 @@
.ds ST17 \Ek[#ST17_OFFSET]
.ds ST18 \Ek[#ST18_OFFSET]
.ds ST19 \Ek[#ST19_OFFSET]
+\#
.ds ST1X \Ek[#ST1_MARK]
.ds ST2X \Ek[#ST2_MARK]
.ds ST3X \Ek[#ST3_MARK]
@@ -1278,6 +1279,11 @@
.ds ST17X \Ek[#ST17_MARK]
.ds ST18X \Ek[#ST18_MARK]
.ds ST19X \Ek[#ST19_MARK]
+\# Reserved ST numbers for internal use
+.ds ST100 \Ek[#ST100_OFFSET]
+.ds ST100X \Ek[#ST100_MARK]
+.ds ST101 \Ek[#ST101_OFFSET]
+.ds ST101X \Ek[#ST101_MARK]
\#
\#
\# QUAD AND SET STRING TABS
@@ -1424,7 +1430,7 @@
\# line of the previous tab.
\# *Notes:
\# If the tabs being aligned fall too close to the footer
-\# trap, the line entered after .TN will appear on the next page.
+\# trap, the line entered after .TN will appear on the next page.
\#
.MAC TN END
. br
@@ -2047,11 +2053,12 @@
\# *Argments:
\# "<string of text with padding markers inserted>"
\# *Function:
-\# Defines and redefines padding character (default=pound sign unless
-\# padding character has been set with PAD_MARKER) several times
-\# so that when the string is output at the end of the macro, every #
-\# has been converted to an equal-sized amount of padding (blank space)
-\# on a line. # is equivalent to CompuGraphic's old <IS>.
+\# Defines and redefines padding character (default=pound sign
+\# unless padding character has been set with PAD_MARKER)
+\# several times so that when the string is output at the end
+\# of the macro, every # has been converted to an equal-sized
+\# amount of padding (blank space) on a line. # is equivalent to
+\# CompuGraphic's old <IS>.
\# *Notes:
\# String tabs may be marked off during PAD.
\#
@@ -2591,7 +2598,7 @@
. if '\\$1'CLEAR' \{\
. rr #L_INDENT
. rr #INDENT_STYLE_LEFT
-. \}
+. \}
.END
\#
\#
@@ -2609,7 +2616,7 @@
. ta \\n(.lu
. \}
. \}
-. if '\\$1'CLEAR' \{\
+. if '\\$1'CLEAR' \{\
. rr #R_INDENT
. rr #INDENT_STYLE_RIGHT
. \}
@@ -2699,7 +2706,7 @@
. ie \\n[#COLUMNS] \{\
. ll \\n[#COL_L_LENGTH]u
. ta \\n(.lu
-. \}
+. \}
. el \{\
. ll \\n[#L_LENGTH]u
. ta \\n(.lu
@@ -2783,11 +2790,11 @@
\# *Function:
\# Enables/disables traps.
\# *Notes:
-\# EL and TN don't function as advertised on the last line before a
-\# trap (when they break the preceding line, they spring the trap, and
-\# groff won't back up to the line preceding the trap). TRAP is a kludge
-\# to get EL and TN work properly on last lines. The user simply enloses
-\# the offending lines in TRAP OFF/TRAP.
+\# EL and TN don't function as advertised on the last line before
+\# a trap (when they break the preceding line, they spring the
+\# trap, and groff won't back up to the line preceding the trap).
+\# TRAP is a kludge to get EL and TN work properly on last lines.
+\# The user simply enloses the offending lines in TRAP OFF/TRAP.
\#
.MAC TRAP END
. ie '\\$1'' \{ .vpt 1 \}
@@ -2800,7 +2807,7 @@
\# *Arguments:
\# <none> | <anything>
\# *Function:
-\# Diverts text so that it doesn't print, or turns to function off.
+\# Diverts text so that it doesn't print, or turns the function off.
\# *Notes:
\# Useful for setting up autotabs where you don't want the line with
\# the tab marks to print.
@@ -2820,6 +2827,7 @@
. \}
.END
\#
+\#
\# PRINT
\# -----
\# *Arguments:
@@ -3078,6 +3086,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. UNDERLINE_ITALIC
. UNDERLINE_QUOTES
. nr #IGNORE_COLUMNS 1
+. char \(em --
. \}
. if '\\$1'TYPESET' \{\
. nr #PRINT_STYLE 2
@@ -3406,6 +3415,11 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Function:
\# Collect information about documents.
\#
+\#
+.MAC DOC_TITLE END
+. ds $DOC_TITLE \\$1
+.END
+\#
.MAC TITLE END \"Document title
. ds $TITLE \\$1
.END
@@ -3654,8 +3668,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#HEADERS_ON] \{ .HDRFTR_RULE_GAP 4p \}
. if \\n[#FOOTERS_ON] \{ .HDRFTR_RULE_GAP 4p \}
. \}
-. if !r#HDRFTR_RULE \{ .HDRFTR_RULE \}
-. if !r#PAGE_NUM_SET \{ .PAGENUMBER 1 \}
+. if !r#HDRFTR_RULE \{ .HDRFTR_RULE \}
+. if !r#PAGE_NUM_SET \{ .PAGENUMBER 1 \}
. ie r#ADJ_DOC_LEAD \{ . \}
. el \{ .DOC_LEAD_ADJUST \}
\# Read in number registers and strings for type parameters
@@ -3703,13 +3717,15 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !r#FN_RULE \{ .FOOTNOTE_RULE \}
. if !r#FN_MARKERS \{ .FOOTNOTE_MARKERS \}
. if !r#FN_MARKER_STYLE \{ .FOOTNOTE_MARKER_STYLE STAR \}
+. if !d$EN_PN_STYLE \{ .ENDNOTES_PAGENUM_STYLE digit \}
. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \}
. if !d$EN_FN \{ .ENDNOTE_FONT R \}
. if !d$EN_QUAD \{ .ENDNOTE_QUAD \\*[$DOC_QUAD] \}
-. if !d$EN_STRING \{ .ENDNOTE_STRING "ENDNOTES" \}
-. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$DOC_FAM] \}
+. if !d$EN_STRING \{ .ENDNOTE_STRING "Endnotes" \}
+. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$EN_FAM] \}
. if !d$EN_STRING_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \}
. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \}
+. if !r#EN_STRING_CAPS \{ .ENDNOTE_STRING_CAPS \}
. if !d$EN_TITLE \{\
. ie \\n[#DOC_TYPE]=2 \{\
. ie '\\*[$CHAPTER]'' \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING]" \}
@@ -3717,20 +3733,29 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. el \{ .ENDNOTE_TITLE "\\*[$TITLE]" \}
. \}
-. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAM \\*[$DOC_FAM] \}
-. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \}
-. if !r#EN_TITLE_UNDERSCORE \{ .ENDNOTE_TITLE_UNDERSCORE \}
-. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$DOC_FAM] \}
-. if !r#EN_NUMBERS_ALIGN_LEFT \{\
-. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \}
-. \}
+. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM] \}
+. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \}
+. if !r#EN_TITLE_UNDERSCORE \{ .ENDNOTE_TITLE_UNDERSCORE \}
+. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM] \}
+. if !r#EN_NUMBERS_ALIGN_LEFT \{\
+. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \}
+. \}
+. 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#TOC_TITLE_INDENT \{ .TOC_TITLE_INDENT 0 \}
+. if !r#TOC_HEAD_INDENT \{ .TOC_HEAD_INDENT 18p \}
+. if !r#TOC_SH_INDENT \{ .TOC_SUBHEAD_INDENT 30p \}
+. if !r#TOC_PH_INDENT \{ .TOC_PARAHEAD_INDENT 42p \}
\# String defaults for both PRINTSTYLEs
-. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \}
-. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT \\*[$AUTHOR_1] \}
+. if !d$DOC_TITLE \{ .ds $DOC_TITLE \E*[$TITLE] \}
+. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \}
+. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT \\*[$AUTHOR_1] \}
. rr #USER_DEF_HDRFTR_LEFT
-. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 \{ .ds $HDRFTR_RIGHT \\*[$TITLE] \}
+. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 \{ .ds $HDRFTR_RIGHT \\*[$DOC_TITLE] \}
. rr #USER_DEF_HDRFTR_RIGHT
-. if !d$FINIS_STRING \{ .FINIS_STRING "END" \}
+. if !d$FINIS_STRING \{ .FINIS_STRING "END" \}
\# Defaults for printstyle TYPEWRITE
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_QUOTES]=1 \{ .UNDERLINE_QUOTES \}
@@ -3826,16 +3851,64 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE -2 \}
. if !r#FN_AUTOLEAD \{ .FOOTNOTE_AUTOLEAD 2 \}
. if !r#EN_PS \{ .ENDNOTE_PT_SIZE \\n[#DOC_PT_SIZE]u \}
-. if !r#EN_LEAD \{ .ENDNOTE_LEAD 13.5p \}
+. if !d$EN_LEAD \{ .ENDNOTE_LEAD 14 ADJUST \}
. if !d$EN_STRING_FT \{ .ENDNOTE_STRING_FONT B \}
. if !d$EN_STRING_SIZE_CHANGE \{ .ENDNOTE_STRING_SIZE +1 \}
. if !d$EN_TITLE_FT \{ .ENDNOTE_TITLE_FONT B \}
-. if !d$EN_TITLE_SIZE_CHANGE \{ .ENDNOTE_TITLE_SIZE 0 \}
+. if !d$EN_TITLE_SIZE_CHANGE \{ .ENDNOTE_TITLE_SIZE +0 \}
. if !d$EN_NUMBER_FT \{ .ENDNOTE_NUMBER_FONT B \}
-. if !$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE 0 \}
+. if !$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE +0 \}
. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \}
+. if !d$TOC_FAM \{ .TOC_FAMILY \\*[$DOC_FAM] \}
+. if !r#TOC_PS \{ .TOC_PT_SIZE \\n[#DOC_PT_SIZE]u \}
+. if !r#TOC_LEAD \{ .TOC_LEAD \\n[#DOC_LEAD]u 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_FT \{ .TOC_HEADER_FONT B \}
+. if !d$TOC_TITLE_FAM \{ .TOC_TITLE_FAMILY \\*[$TOC_FAM] \}
+. if !d$TOC_PN_FAM \{ .TOC_PN_FAMILY \\*[$TOC_FAM] \}
+. if !d$TOC_HEAD_FAM \{ .TOC_HEAD_FAMILY \\*[$TOC_FAM] \}
+. if !d$TOC_SH_FAM \{ .TOC_SUBHEAD_FAMILY \\*[$TOC_FAM] \}
+. if !d$TOC_PH_FAM \{ .TOC_PARAHEAD_FAMILY \\*[$TOC_FAM] \}
+. if !d$TOC_TITLE_FT \{ .TOC_TITLE_FONT BI \}
+. if !d$TOC_PN_FT \{ .TOC_PN_FONT R \}
+. if !d$TOC_HEAD_FT \{ .TOC_HEAD_FONT B \}
+. if !d$TOC_SH_FT \{ .TOC_SUBHEAD_FONT R \}
+. if !d$TOC_PH_FT \{ .TOC_PARAHEAD_FONT I \}
+. if !d$TOC_TITLE_SIZE_CHANGE \{ .TOC_TITLE_SIZE +.5 \}
+. if !d$TOC_PN_SIZE_CHANGE \{ .TOC_PN_SIZE +0 \}
+. if !d$TOC_HEAD_SIZE_CHANGE \{ .TOC_HEAD_SIZE +.5 \}
+. if !d$TOC_SH_SIZE_CHANGE \{ .TOC_SUBHEAD_SIZE +0 \}
+. if !d$TOC_PH_SIZE_CHANGE \{ .TOC_PARAHEAD_SIZE +0 \}
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie \\n[#ADJ_DOC_LEAD]=1 \{ .DOC_LEAD_ADJUST \}
+. el \{ . \}
+. \}
+. if !\\n[#COLLATE] \{\
+. TRAPS
+\# Endnote and toc leading
+. nr #OK_PROCESS_LEAD 1
+. nr #RESTORE_DOC_LEAD \\n(.v
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE] \{\
+. ENDNOTE_LEAD 12 ADJUST
+. \}
+. el \{\
+. ie \\n[#EN_SINGLESPACE] \{ .ENDNOTE_LEAD 12 ADJUST \}
+. el \{ .ENDNOTE_LEAD 24 ADJUST \}
+. \}
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie !d$EN_LEAD \{ .ENDNOTE_LEAD 14 ADJUST \}
+. el \{ .ENDNOTE_LEAD \\*[$EN_LEAD] \\*[$ADJUST_EN_LEAD] \}
+. ie !d$TOC_LEAD \{ .TOC_LEAD \\n[#RESTORE_DOC_LEAD]u \}
+. el \{ .TOC_LEAD \\*[$TOC_LEAD] \\*[$ADJUST_TOC_LEAD] \}
+. rm $ADJUST_EN_LEAD
+. rm $ADJUST_TOC_LEAD
+. \}
+. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
. \}
-. TRAPS
. if \\n[#PRINT_STYLE]=1 \{ .nr #IGNORE 1 \}
.END
\#
@@ -3861,7 +3934,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# 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
+\# First, define some strings for point sizes
\#
.ds $TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
.ds $CHAPTER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$CHAPTER_TITLE_SIZE_CHANGE]
@@ -3869,36 +3942,36 @@ y\\R'#DESCENDER \\n[.cdp]'
.ds $AUTHOR_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE]
.ds $DOCTYPE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE]
\#
-.\" Next, some utility macros for various routines to prevent repetition
+\# Next, some utility macros for various routines to prevent repetition
\#
.MAC PRINT_AUTHORS END
-. nr #AUTHORS \\n[#AUTHOR_NUM]
-. nr #NEXT_AUTHOR 0 1
-. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
-. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-. \}
+. nr #AUTHORS \\n[#AUTHOR_NUM]
+. nr #NEXT_AUTHOR 0 1
+. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
+. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
+. \}
.END
\#
.MAC DEFAULT_DOCHEADER END
-. CENTER
-. FAMILY \\*[$TITLE_FAM]
-. FT \\*[$TITLE_FT]
-. PT_SIZE \\*[$TITLE_PT_SIZE]
-. LS \\n[#DOCHEADER_LEAD]u
-. PRINT \\*[$TITLE]
-. if !'\\*[$SUBTITLE]'' \{\
-. FAMILY \\*[$SUBTITLE_FAM]
-. FT \\*[$SUBTITLE_FT]
-. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
-. PRINT \\*[$SUBTITLE]
-. \}
-. if !'\\*[$AUTHOR_1]'' \{\
-. FAMILY \\*[$AUTHOR_FAM]
-. FT \\*[$AUTHOR_FT]
-. PT_SIZE \\*[$AUTHOR_PT_SIZE]
-. PRINT \\*[$ATTRIBUTE_STRING]
-. PRINT_AUTHORS
-. \}
+. CENTER
+. FAMILY \\*[$TITLE_FAM]
+. FT \\*[$TITLE_FT]
+. PT_SIZE \\*[$TITLE_PT_SIZE]
+. LS \\n[#DOCHEADER_LEAD]u
+. PRINT \\*[$TITLE]
+. if !'\\*[$SUBTITLE]'' \{\
+. FAMILY \\*[$SUBTITLE_FAM]
+. FT \\*[$SUBTITLE_FT]
+. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
+. PRINT \\*[$SUBTITLE]
+. \}
+. if !'\\*[$AUTHOR_1]'' \{\
+. FAMILY \\*[$AUTHOR_FAM]
+. FT \\*[$AUTHOR_FT]
+. PT_SIZE \\*[$AUTHOR_PT_SIZE]
+. if !'\\*[$ATTRIBUTE_STRING]'' \{ .PRINT \\*[$ATTRIBUTE_STRING] \}
+. PRINT_AUTHORS
+. \}
.END
\#
\#
@@ -3940,31 +4013,31 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
\#
.MAC NAMED_DOCHEADER END
-. CENTER
-. FAMILY \\*[$TITLE_FAM]
-. FT \\*[$TITLE_FT]
-. PT_SIZE \\*[$TITLE_PT_SIZE]
-. LS \\n[#DOCHEADER_LEAD]u
-. PRINT \\*[$TITLE]
-. if !'\\*[$SUBTITLE]'' \{\
-. FAMILY \\*[$SUBTITLE_FAM]
-. FT \\*[$SUBTITLE_FT]
-. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
-. PRINT \\*[$SUBTITLE]
-. \}
-. if !'\\*[$AUTHOR_1]'' \{\
-. FAMILY \\*[$AUTHOR_FAM]
-. FT \\*[$AUTHOR_FT]
-. PT_SIZE \\*[$AUTHOR_PT_SIZE]
-. PRINT \\*[$ATTRIBUTE_STRING]
-. PRINT_AUTHORS
-. \}
-. FAMILY \\*[$DOCTYPE_FAM]
-. FT \\*[$DOCTYPE_FT]
-. PT_SIZE \\*[$DOCTYPE_PT_SIZE]
-. LS \\n[#DOCHEADER_LEAD]u
-. ALD \\n[#DOCHEADER_LEAD]u
-. UNDERSCORE "\\*[$DOC_TYPE]
+. CENTER
+. FAMILY \\*[$TITLE_FAM]
+. FT \\*[$TITLE_FT]
+. PT_SIZE \\*[$TITLE_PT_SIZE]
+. LS \\n[#DOCHEADER_LEAD]u
+. PRINT \\*[$TITLE]
+. if !'\\*[$SUBTITLE]'' \{\
+. FAMILY \\*[$SUBTITLE_FAM]
+. FT \\*[$SUBTITLE_FT]
+. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
+. PRINT \\*[$SUBTITLE]
+. \}
+. if !'\\*[$AUTHOR_1]'' \{\
+. FAMILY \\*[$AUTHOR_FAM]
+. FT \\*[$AUTHOR_FT]
+. PT_SIZE \\*[$AUTHOR_PT_SIZE]
+. if !'\\*[$ATTRIBUTE_STRING]'' \{ .PRINT \\*[$ATTRIBUTE_STRING] \}
+. PRINT_AUTHORS
+. \}
+. FAMILY \\*[$DOCTYPE_FAM]
+. FT \\*[$DOCTYPE_FT]
+. PT_SIZE \\*[$DOCTYPE_PT_SIZE]
+. LS \\n[#DOCHEADER_LEAD]u
+. ALD \\n[#DOCHEADER_LEAD]u
+. UNDERSCORE "\\*[$DOC_TYPE]
.END
\#
\#
@@ -3989,8 +4062,93 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PAGE_NUM_V_POS]=1 \{ .nr #PAGINATE \\n[#PAGINATION_STATE] \}
. sp |\\n[#HEADER_MARGIN]u
. PRINT \&
+. if !'\\*[$RESTORE_PAGENUM_STYLE]'' \{\
+. PAGENUM_STYLE \\*[$RESTORE_PAGENUM_STYLE]
+. rm $RESTORE_PAGENUM_STYLE
+. \}
. \}
\#
+. ie \\n[#COLLATED_DOC]=1 \{\
+\# Collect TITLE for TOC.
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
+. ie \\n[#USER_SET_TITLE_ITEM] \{\
+. ds $TOC_TITLE_ITEM \\*[$USER_SET_TITLE_ITEM]\\|
+. rr #USER_SET_TITLE_ITEM
+. rm $USER_SET_TITLE_ITEM
+. \}
+. el \{\
+. ie \\n[#DOC_TYPE]=2 \{\
+. ie '\\*[$CHAPTER_TITLE]'' \{\
+. ds $TOC_TITLE_ITEM \\*[$CHAPTER_STRING] \\*[$CHAPTER]\\|
+. \}
+. el \{\
+. ie '\\*[$CHAPTER]'' \{\
+. ds $TOC_TITLE_ITEM \\*[$CHAPTER_TITLE]\\|
+. \}
+. el \{\
+. ds $TOC_TITLE_ITEM \\*[$CHAPTER_STRING] \\*[$CHAPTER]: \\*[$CHAPTER_TITLE]\\|
+. \}
+. \}
+. \}
+. el \{\
+. ds $TOC_TITLE_ITEM \\*[$TITLE]\\|
+. \}
+. \}
+. if \\n[#TOC_AUTHORS]=1 \{\
+. ie '\\*[$TOC_AUTHORS]'' \{\
+. as $TOC_TITLE_ITEM /\\|\\*[$AUTHOR_1]\\|
+. \}
+. el \{\
+. as $TOC_TITLE_ITEM /\\|\\*[$TOC_AUTHORS]\\|
+. rm $TOC_AUTHORS
+. \}
+. \}
+\# Note the use of \!, which transparently embeds the macros used
+\# in the TOC_ENTRIES diversion. The elements they control must be
+\# processed literally when the diversion is output.
+. ev TOC_EV
+. da TOC_ENTRIES
+. if \\n[#PRINT_STYLE]=1 \{\
+\!. fam C
+\!. ft R
+\!. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_TITLE_FAM]
+\!. FT \\*[$TOC_TITLE_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+\!. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN]"
+. \}
+\!. EL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+. \}
+. el \{\
+. nr #FIRST_DOC_TITLE_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. af #FIRST_DOC_TITLE_PN \\g[#PAGENUMBER]
+. nr #FIRST_DOC_TOC_PN_PADDING \\n[#TOC_PN_PADDING]
+. \}
+\# End TITLE collection
. if \\n[#PRINT_PAGENUM_ON_PAGE_1] \{\
. sp |\\n[#HEADER_MARGIN]u
. PRINT_PAGE_NUMBER
@@ -4003,9 +4161,15 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#DOC_TYPE]=4 \{\
. if !'\\n(.z'' \{ .di \}
. \}
+. PP
. ie r#ADVANCE_FROM_TOP \{ .sp |\\n[#ADVANCE_FROM_TOP]u-1v \}
. el \{ .sp |\\n[#T_MARGIN]u-1v \}
-. PP
+. if \\n[#COLUMNS] \{\
+. mk dc
+. nr #COL_NUM 0 1
+. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u
+. ll \\n[#COL_L_LENGTH]u
+. \}
. nr #PP 0
. rr #DOC_HEADER
. if r#ADVANCE_FROM_TOP \{ .rr #ADVANCE_FROM_TOP \}
@@ -4231,6 +4395,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. rr #NEXT_AUTHOR
. rr #AUTHOR_NUM
. rr #NUM_AUTHORS
+. rm $TOC_TITLE_ITEM
. nr #START 1
. nr #START_FOR_FOOTERS 1
.END
@@ -4601,7 +4766,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Argument:
\# <point size of running text>
\# *Function:
-\# Creates or modifies register $DOC_PT_SIZE.
+\# Creates or modifies register #DOC_PT_SIZE.
\# *Notes:
\# DOC_PT_SIZE is the basis for calculating all type sizes in
\# a document.
@@ -5065,7 +5230,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PRINT_STYLE]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{\
-. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD \\n[#DOC_LEAD]u/2u \}
+. ie \\n[#EPI_LINES]%2=1 \{ .ALD \\n[#DOC_LEAD]u \}
+. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
@@ -5143,10 +5309,19 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Deposits --END-- at the end of a document.
\#
.MAC FINIS END
+. nr #FINIS 1
. if \\n[#TAB_ACTIVE] \{ .TQ \}
. if \\n[#INDENT_ACTIVE] \{ .IQ CLEAR \}
-. FOOTERS OFF
-. PAGINATION OFF
+. if \\n[#FOOTERS_ON] \{\
+. nr #FOOTERS_WERE_ON 1
+. FOOTERS OFF
+. \}
+. if \\n[#PAGINATE] \{\
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. nr #PAGINATION_WAS_ON 1
+. PAGINATION OFF
+. \}
+. \}
. nr #EM_ADJUST (1m/8)
. if \\n[#COLUMNS] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \}
. ALD \\n[#DOC_LEAD]u
@@ -5338,6 +5513,14 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC HDRFTR_CENTER END
. nr #USER_DEF_HDRFTR_CENTER 1
+. if '\\$0'FOOTER_CENTER' \{\
+. ds $HDRFTR_CENTER_OLD \\*[$HDRFTR_CENTER]
+. ds $HDRFTR_CENTER_NEW \\$1
+. \}
+. if '\\$0'FOOTER_CENTRE' \{\
+. ds $HDRFTR_CENTER_OLD \\*[$HDRFTR_CENTER]
+. ds $HDRFTR_CENTER_NEW \\$1
+. \}
. ds $HDRFTR_CENTER \\$1
.END
\#
@@ -5396,7 +5579,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC HDRFTR_CENTER_CAPS END
. ie '\\$1'' \{\
-. nr #HDRFTR_CENTER_CAPS 1
+. nr #HDRFTR_CENTER_CAPS 1
. \}
. el \{\
. nr #HDRFTR_CENTER_CAPS 0
@@ -5405,6 +5588,50 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
+\# HDRFTR CENTER PADDING
+\# ---------------------
+\# *Argument:
+\# LEFT | RIGHT <amount of padding to put left or right of hdrftr
+\# center string>
+\# *Function:
+\# Creates or modifies registers #HDRFTR_CTR_PAD_LEFT or
+\# #HDRFTR_CTR_PAD_RIGHT.
+\# *Notes:
+\# By default, the HDRFTR_CENTER string is centered on the doc
+\# line length. Long titles or long author names can screw up
+\# visual centering, or create overprints. This macro allows the
+\# user to pad the center string by the specified amount of space
+\# to fix these problems. Use only one of LEFT or RIGHT.
+\#
+\# A unit of measure is required.
+\#
+.MAC HDRFTR_CENTER_PAD END
+. 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
+\# --------------------------------
+\# *Argument:
+\# <none>
+\# *Function:
+\# Switches the padding side of hdrftr center padding.
+\# *Notes:
+\# Required to keep spacing around hdrftr string constant
+\# in recto/verso documents.
+\#
+.MAC SWITCH_HDRFTR_CENTER_PAD END
+. nr #HDRFTR_CTR_PAD_TMP \\n[#HDRFTR_CTR_PAD_LEFT]
+. HDRFTR_CENTER_PAD LEFT \\n[#HDRFTR_CTR_PAD_RIGHT]u
+. HDRFTR_CENTER_PAD RIGHT \\n[#HDRFTR_CTR_PAD_TMP]u
+.END
+\#
+\#
\# HDRFTR RIGHT
\# ------------
\# *Argument:
@@ -5485,7 +5712,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC HDRFTR_RIGHT_CAPS END
. ie '\\$1'' \{\
-. nr #HDRFTR_RIGHT_CAPS 1
+. nr #HDRFTR_RIGHT_CAPS 1
. \}
. el \{\
. nr #HDRFTR_RIGHT_CAPS 0
@@ -5530,7 +5757,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. PT_SIZE 12
. if \\n[#HEADERS_ON] \{ .ALD \\n[#HDRFTR_RULE_GAP]u \}
. if \\n[#FOOTERS_ON] \{\
-. RLD \\n[#LEAD]u*3u+\\n[#HDRFTR_RULE_GAP]u+\\n[#CAP_HEIGHT_ADJUST]u+1p
+. RLD \\n[#LEAD]u*3u+\\n[#HDRFTR_RULE_GAP]u+\\n[#CAP_HEIGHT_ADJUST]u+1p
. \}
. PRINT \\l'\\n[#DOC_L_LENGTH]u'
. br
@@ -5727,6 +5954,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #SWITCH_HDRFTR 0
. \}
. nr #PAGENUMBER \\n%+\\n[#PAGE_NUM_ADJ]
+. if \\n[#ENDNOTES] \{ .PAGENUM_STYLE \\*[$EN_PN_STYLE] \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#FOOTERS_ON] \{\
. di NULL
@@ -5749,10 +5977,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. CENTER
. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS \}
. ie '\\*[$HDRFTR_CENTER]'#' \{\
-. PRINT \\v'-(\\n[#LEAD]u*1u)'\\n[#PAGENUMBER]
+. PRINT \\v'-(\\n[#LEAD]u*1u)'\\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\n[#PAGENUMBER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u'
. \}
. el \{\
-. ie !'\\*[$HDRFTR_CENTER]'' \{ .PRINT \\v'-(\\n[#LEAD]u*1u)'\\*[$HDRFTR_CENTER] \}
+. ie !'\\*[$HDRFTR_CENTER]'' \{ .PRINT \\v'-(\\n[#LEAD]u*1u)'\\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\*[$HDRFTR_CENTER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' \}
. el \{ .PRINT \& \}
. \}
. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS OFF \}
@@ -5801,10 +6029,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. CENTER
. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS \}
. ie '\\*[$HDRFTR_CENTER]'#' \{\
-. PRINT \\v'-(\\n[#LEAD]u*1u)'\\n[#PAGENUMBER]
+. PRINT \\v'-(\\n[#LEAD]u*1u)'\\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\n[#PAGENUMBER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u'
. \}
. el \{\
-. ie !'\\*[$HDRFTR_CENTER]'' \{ .PRINT \\v'-(\\n[#LEAD]u*1u)'\\*[$HDRFTR_CENTER] \}
+. ie !'\\*[$HDRFTR_CENTER]'' \{ .PRINT \\v'-(\\n[#LEAD]u*1u)'\\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\*[$HDRFTR_CENTER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' \}
. el \{ .PRINT \& \}
. \}
. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS OFF \}
@@ -5987,9 +6215,13 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#RESET_FN_NUMBER] \{ .nr #FN_NUMBER 0 1 \}
. po \\n[#DOC_L_MARGIN]u
. if \\n[#RECTO_VERSO] \{\
-. nr #DOC_LR_MARGIN_TMP \\n[#DOC_L_MARGIN]
-. DOC_LEFT_MARGIN \\n[#DOC_R_MARGIN]u
-. DOC_RIGHT_MARGIN \\n[#DOC_LR_MARGIN_TMP]u
+. if !\\n[#TOC_RV_SWITCH] \{\
+. nr #DOC_LR_MARGIN_TMP \\n[#DOC_L_MARGIN]
+. DOC_LEFT_MARGIN \\n[#DOC_R_MARGIN]u
+. DOC_RIGHT_MARGIN \\n[#DOC_LR_MARGIN_TMP]u
+. SWITCH_HDRFTR_CENTER_PAD
+. \}
+. rr #TOC_RV_SWITCH
. \}
. ev HEADER
. if \\n[#PRINT_STYLE]=1 \{ .vs 0 \}
@@ -6167,6 +6399,10 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC FOOTER END
. ev PAGE_BOTTOM
+. if \\n[#START]=1 \{\
+. ev
+. return
+. \}
. nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN]
. if !\\n[#FN_DEFER] \{\
. nr #DIVER_DEPTH 0
@@ -6188,7 +6424,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#COLUMNS] \{\
. ie \\n[#COL_NUM]=\\n[#NUM_COLS] \{ .DO_FOOTER \}
. el \{\
-. sp |\\n(dcu
+. ie \\n[#ENDNOTES] \{ .sp |\\n(ecu-\\n[#EN_LEAD]u \}
+. el \{ .sp |\\n(dcu \}
. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u
. PROCESS_FN_LEFTOVER
. if !\\n[#EPIGRAPH] \{ .rr #COL_NEXT \}
@@ -6519,7 +6756,71 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC HEAD END
. br
+\# Collect head for TOC.
. nr #ARG_NUM 0 1
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
+. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
+. ie \\n[#ARG_NUM]=\\n[#NUM_ARGS] \{\
+. as $TOC_HEAD_ITEM \\$[\\n+[#ARG_NUM]]\\|
+. \}
+. el \{\
+\# Note that in the .as lines, below, \ at the end has a literal
+\# space after it.
+. ie \\n[#NUMBER_HEAD] \{\
+. ie \\n[#ARG_NUM]=0 \{\
+. as $TOC_HEAD_ITEM \\n+[#HEAD_NUM].\0\\$[\\n+[#ARG_NUM]]\
+. nr #HEAD_NUM \\n-[#HEAD_NUM]
+. \}
+. el \{\
+. as $TOC_HEAD_ITEM \\$[\\n+[#ARG_NUM]]\
+. \}
+. \}
+. el \{\
+. as $TOC_HEAD_ITEM \\$[\\n+[#ARG_NUM]]\
+. \}
+. \}
+. \}
+\# Note the use of \!, which transparently embeds the macros used
+\# in the TOC_ENTRIES diversion. The elements they control must be
+\# processed literally when the diversion is output.
+. ev TOC_EV
+. da TOC_ENTRIES
+. if \\n[#PRINT_STYLE]=1 \{\
+\!. fam C
+\!. ft R
+\!. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_HEAD_FAM]
+\!. FT \\*[$TOC_HEAD_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_HEAD_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\h'2m'\\*[$TOC_HEAD_ITEM]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+\!. PAD "\\h'\\n[#TOC_HEAD_INDENT]u'\\*[$TOC_HEAD_ITEM]\\*[$TOC_PN]"
+. \}
+\!. EL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+\# End collection of head for TOC
+\# Process head
. nr #HEAD 1
. ev HEAD
. ll \\n[#L_LENGTH]u
@@ -6547,8 +6848,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
. if \\n[#PRINT_STYLE]=1 \{ .ne 3 \}
. if \\n[#PRINT_STYLE]=2 \{\
-. ie \\n[#HEAD_SPACE] \{ .ne 4 \}
-. el \{ .ne 3 \}
+. ie \\n[#HEAD_SPACE] \{ .ne 4 \}
+. el \{ .ne 3 \}
. \}
. ie \\n[#START] \{\
. if \\n[#DOC_HEADER]=0 \{ . \}
@@ -6574,7 +6875,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. if \\n[#END_QUOTE] \{\
-. if !\\n[#Q_FITS] \{\
+. if !\\n[#Q_FITS] \{\
. RLD \\n[#DOC_LEAD]u
. if \\n[#PP_ACTIVE] \{ .ALD \\n[#DOC_LEAD]u \}
. \}
@@ -6588,6 +6889,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. \}
+\# Print head
+. nr #ARG_NUM 0 1
. if \\n[#HEAD_CAPS] \{ .CAPS \}
. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
. ie \\n[#NUMBER_HEAD] \{\
@@ -6626,6 +6929,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#Q_AT_TOP \{ .rr #Q_AT_TOP \}
. if r#PP_ACTIVE \{ .rr #PP_ACTIVE \}
. rr #ARG_NUM
+. rm $TOC_HEAD_ITEM
. nr #PP 0
.END
\#
@@ -6707,6 +7011,70 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC SUBHEAD END
. br
+\# Collect subhead for TOC.
+. nr #ARG_NUM 0 1
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
+. ie \\n[#ARG_NUM]=\\n[#NUM_ARGS] \{\
+. as $TOC_SH_ITEM \\$[\\n+[#ARG_NUM]]\\|
+. \}
+. el \{\
+\# Note that in the .as lines, below, \ at the end has a literal
+\# space after it.
+. ie \\n[#NUMBER_SH] \{\
+. ie \\n[#ARG_NUM]=0 \{\
+. as $TOC_SH_ITEM \\n+[#SH_NUM].\0\\$[\\n+[#ARG_NUM]]\
+. nr #SH_NUM \\n-[#SH_NUM]
+. \}
+. el \{\
+. as $TOC_SH_ITEM \\$[\\n+[#ARG_NUM]]\
+. \}
+. \}
+. el \{\
+. as $TOC_SH_ITEM \\$[\\n+[#ARG_NUM]]\
+. \}
+. \}
+. \}
+\# Note the use of \!, which transparently embeds the macros used
+\# in the TOC_ENTRIES diversion. The elements they control must be
+\# processed literally when the diversion is output.
+. ev TOC_EV
+. da TOC_ENTRIES
+. if \\n[#PRINT_STYLE]=1 \{\
+\!. fam C
+\!. ft R
+\!. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_SH_FAM]
+\!. FT \\*[$TOC_SH_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_SH_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\h'4m'\\*[$TOC_SH_ITEM]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+\!. PAD "\\h'\\n[#TOC_SH_INDENT]u'\\*[$TOC_SH_ITEM]\\*[$TOC_PN]"
+. \}
+\!. EL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+\# End collection of head for TOC
+\# Process subhead
. nr #ARG_NUM 0 1
. if r#QUOTE \{ .rr #QUOTE \}
. if r#Q_AT_TOP \{ .rr #Q_AT_TOP \}
@@ -6759,6 +7127,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. \}
+\# Print subhead
. if \\n[#PRINT_STYLE]=1 \{\
. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
. ie \\n[#NUMBER_SH] \{\
@@ -6839,6 +7208,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#Q_FITS \{ .rr #Q_FITS \}
. if r#END_QUOTE \{ .rr #END_QUOTE \}
. if r#LINEBREAK \{ .rr #LINEBREAK \}
+. rm $TOC_SH_ITEM
. nr #PP 0
. nr #HEAD 2
.END
@@ -6915,6 +7285,52 @@ y\\R'#DESCENDER \\n[.cdp]'
\# PARAHEAD *must* come after PP.
\#
.MAC PARAHEAD END
+\# Collect parahead for TOC.
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. ie \\n[#NUMBER_PH] \{\
+. ds $TOC_PH_ITEM \\n+[#PH_NUM].\0\\$1\\|
+. nr #PH_NUM \\n-[#PH_NUM]
+. \}
+. el \{\
+. ds $TOC_PH_ITEM \\$1\\|
+. \}
+. ev TOC_EV
+. da TOC_ENTRIES
+. if \\n[#PRINT_STYLE]=1 \{\
+\!. fam C
+\!. ft R
+\!. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PH_FAM]
+\!. FT \\*[$TOC_PH_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PH_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\h'6m'\\*[$TOC_PH_ITEM]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+\!. PAD "\\h'\\n[#TOC_PH_INDENT]u'\\*[$TOC_PH_ITEM]\\*[$TOC_PN]"
+. \}
+\!. EL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+\# End collection of parahead for TOC
+\# Process parahead
. if \\n[#SLANT_ON] \{\
. nr #SLANT_WAS_ON 1
\E*[SLANTX]
@@ -7002,6 +7418,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. rr #NUMBERED
+. rm $TOC_PH_ITEM
.END
\#
\#
@@ -7209,7 +7626,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. fam C
. ft R
. ps 12
-. vs \\n[#DOC_LEAD]u
+. ie \\n[#ENDNOTE] \{ .vs \\n[#EN_LEAD]u \}
+. el \{ .vs \\n[#DOC_LEAD]u \}
. QUAD \\*[$DOC_QUAD]
. UNDERLINE OFF
. if \\n[#SLANT_ON] \{\
@@ -7221,7 +7639,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. FAMILY \\*[$EN_FAM]
. FT \\*[$EN_FT]
. PT_SIZE \\n[#EN_PS]u
-. LS \\n[#DOC_LEAD]u
+. vs \\n[#EN_LEAD]u
. QUAD \\*[$EN_QUAD]
. \}
. el \{\
@@ -7276,8 +7694,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#Q_FITS \{ .rr #Q_FITS \}
. if r#LINEBREAK \{ .rr #LINEBREAK \}
. if \\n[#ENDNOTE] \{\
-. ie \\n[#RESET_PARA_SPACE] \{ .PARA_SPACE \}
-. el \{ .PARA_SPACE OFF \}
+. ie \\n[#RESET_PARA_SPACE] \{ .PARA_SPACE \}
+. el \{ .PARA_SPACE OFF \}
. \}
. if \\n[#CONDENSE] \{\
\E*[COND]\c
@@ -7657,11 +8075,15 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#START] \{ . \}
. el \{\
. ie \\n[#FULLSPACE_QUOTES] \{\
-. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u \}
+. ie \\n[#ENDNOTE] \{\
+. ALD \\n[#EN_LEAD]u
+. \}
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. el \{\
-. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u/2u \}
+. ie \\n[#ENDNOTE] \{\
+. ALD \\n[#EN_LEAD]u/2u
+. \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
@@ -7710,14 +8132,14 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#HEAD]=1 \{ .ALD \\n[#DOC_LEAD]u \}
. el \{\
. ie \\n[#Q_FITS] \{\
-. ie \\n[#Q_TOP]=\\n[#PAGE_TOP] \{\
-. nr #Q_AT_TOP 1
-. ALD \\n[#DOC_LEAD]u
-. \}
-. el \{\
-. ie \\n[#FULLSPACE_QUOTES] \{ .ALD \\n[#DOC_LEAD]u \}
-. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
-. \}
+. ie \\n[#Q_TOP]=\\n[#PAGE_TOP] \{\
+. nr #Q_AT_TOP 1
+. ALD \\n[#DOC_LEAD]u
+. \}
+. el \{\
+. ie \\n[#FULLSPACE_QUOTES] \{ .ALD \\n[#DOC_LEAD]u \}
+. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
+. \}
. \}
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
@@ -7852,6 +8274,36 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
+\# SUSPEND PAGINATION (before ENDNOTES)
+\# ------------------
+\# *Argument:
+\# <none>
+\# *Function:
+\# Creates register #SUSPEND_PAGINATION
+\# *Notes:
+\# Useful only to suspend pagination before outputting endnotes.
+\#
+.MAC SUSPEND_PAGINATION END
+. nr #SUSPEND_PAGINATION 1
+.END
+\#
+\# RESTORE PAGINATION (after ENDNOTES)
+\# ------------------
+\# *Argument:
+\# <none>
+\# *Function:
+\# Removes register #SUSPEND_PAGINATION. Creates register
+\# #DEFER_PAGINATION
+\# *Notes:
+\# Useful only to restore pagination after outputting endnotes.
+\#
+.MAC RESTORE_PAGINATION END
+. rr #SUSPEND_PAGINATION
+. if \\n[#PAGE_NUM_V_POS]=1 \{ .PAGINATE \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{ .nr #DEFER_PAGINATION 1 \}
+.END
+\#
+\#
\# PAGENUMBER FAMILY
\# -----------------
\# *Argument:
@@ -8003,6 +8455,14 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PAGE_NUM_H_POS]=3 \{ .RIGHT \}
. \}
. nr #PAGENUMBER \\n%+\\n[#PAGE_NUM_ADJ]
+. if \\n[#EN_FIRST_PAGE] \{\
+. if \\n[#EN_FIRST_PN] \{ .PAGENUMBER \\n[#EN_FIRST_PN] \}
+. rr #EN_FIRST_PAGE
+. \}
+. if \\n[#TOC_FIRST_PAGE] \{\
+. PAGENUMBER 1
+. rr #TOC_FIRST_PAGE
+. \}
. ie \\n[#DRAFT_WITH_PAGENUM] \{\
. ie !\\n[#REVISION] \{ .PRINT "\\*[$DRAFT_STRING] \\n[#DRAFT] / \\n[#PAGENUMBER]" \}
. el \{ .PRINT "\\*[$DRAFT_STRING] \\n[#DRAFT], \\*[$REVISION_STRING] \\n[#REVISION] / \\n[#PAGENUMBER]" \}
@@ -8232,37 +8692,37 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. if !\\n[#NO_FN_MARKER] \{\
-. if \\n[#FN_MARKER_STYLE]=1 \{\
-. ie \\n[#FN_COUNT_FOR_COLS] \{\
-. if \\n[#FN_COUNT_FOR_COLS]=0 \{ .PRINT \*[BU3]* \}
-. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT \*[BU3]\(dg \}
-. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \*[BU3]** \}
-. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT \*[BU3]\(dg\(dg \}
-. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT \*[BU3]*** \}
-. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT \*[BU3]\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \*[BU3]**** \}
-. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \*[BU3]***** \}
-. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg\(dg \}
-. \}
-. el \{\
-. if \\n[#FN_COUNT]=0 \{ .PRINT \*[BU3]* \}
-. if \\n[#FN_COUNT]=1 \{ .PRINT \*[BU3]\(dg \}
-. if \\n[#FN_COUNT]=2 \{ .PRINT \*[BU3]** \}
-. if \\n[#FN_COUNT]=3 \{ .PRINT \*[BU3]\(dg\(dg \}
-. if \\n[#FN_COUNT]=4 \{ .PRINT \*[BU3]*** \}
-. if \\n[#FN_COUNT]=5 \{ .PRINT \*[BU3]\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT]=6 \{ .PRINT \*[BU3]**** \}
-. if \\n[#FN_COUNT]=7 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT]=8 \{ .PRINT \*[BU3]***** \}
-. if \\n[#FN_COUNT]=9 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg\(dg\(dg \}
-. \}
-. \}
-. if \\n[#FN_MARKER_STYLE]=2 \{\
+. if \\n[#FN_MARKER_STYLE]=1 \{\
+. ie \\n[#FN_COUNT_FOR_COLS] \{\
+. if \\n[#FN_COUNT_FOR_COLS]=0 \{ .PRINT \*[BU3]* \}
+. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT \*[BU3]\(dg \}
+. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \*[BU3]** \}
+. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT \*[BU3]\(dg\(dg \}
+. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT \*[BU3]*** \}
+. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT \*[BU3]\(dg\(dg\(dg \}
+. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \*[BU3]**** \}
+. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg \}
+. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \*[BU3]***** \}
+. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg\(dg \}
+. \}
+. el \{\
+. if \\n[#FN_COUNT]=0 \{ .PRINT \*[BU3]* \}
+. if \\n[#FN_COUNT]=1 \{ .PRINT \*[BU3]\(dg \}
+. if \\n[#FN_COUNT]=2 \{ .PRINT \*[BU3]** \}
+. if \\n[#FN_COUNT]=3 \{ .PRINT \*[BU3]\(dg\(dg \}
+. if \\n[#FN_COUNT]=4 \{ .PRINT \*[BU3]*** \}
+. if \\n[#FN_COUNT]=5 \{ .PRINT \*[BU3]\(dg\(dg\(dg \}
+. if \\n[#FN_COUNT]=6 \{ .PRINT \*[BU3]**** \}
+. if \\n[#FN_COUNT]=7 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg \}
+. if \\n[#FN_COUNT]=8 \{ .PRINT \*[BU3]***** \}
+. if \\n[#FN_COUNT]=9 \{ .PRINT \*[BU3]\(dg\(dg\(dg\(dg\(dg\(dg \}
+. \}
+. \}
+. if \\n[#FN_MARKER_STYLE]=2 \{\
. if \\n[#PRINT_STYLE]=1 \{ .PRINT "\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#FN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2" \}
. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n+[#FN_NUMBER]\*[SUPX]" \}
-. \}
-. \}
+. \}
+. \}
. \}
. nr #SPACE_REMAINING \\n[#PAGE_LENGTH]-\\n[#B_MARGIN]-(\\n(nl+1v)
. nr #PP_STYLE_PREV \\n[#PP_STYLE]
@@ -8315,36 +8775,36 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. if \\n[#FN_MARKERS] \{\
. if !\\n[#NO_FN_MARKER] \{\
-. if \\n[#FN_MARKER_STYLE]=1 \{\
-. ie \\n+[#FN_COUNT_FOR_COLS] \{\
-. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT *\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \(dg\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT **\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT \(dg\(dg\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT ***\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \(dg\(dg\(dg\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT ****\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \(dg\(dg\(dg\(dg\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT *****\c \}
-. if \\n[#FN_COUNT_FOR_COLS]=10 \{ .PRINT \(dg\(dg\(dg\(dg\(dg\c \}
-. \}
-. el \{\
-. if \\n[#FN_COUNT]=1 \{ .PRINT *\c \}
-. if \\n[#FN_COUNT]=2 \{ .PRINT \(dg\c \}
-. if \\n[#FN_COUNT]=3 \{ .PRINT **\c \}
-. if \\n[#FN_COUNT]=4 \{ .PRINT \(dg\(dg\c \}
-. if \\n[#FN_COUNT]=5 \{ .PRINT ***\c \}
-. if \\n[#FN_COUNT]=6 \{ .PRINT \(dg\(dg\(dg\c \}
-. if \\n[#FN_COUNT]=7 \{ .PRINT ****\c \}
-. if \\n[#FN_COUNT]=8 \{ .PRINT \(dg\(dg\(dg\(dg\c \}
-. if \\n[#FN_COUNT]=9 \{ .PRINT *****\c \}
-. if \\n[#FN_COUNT]=10 \{ .PRINT \(dg\(dg\(dg\(dg\(dg\c \}
-. \}
-. \}
-. if \\n[#FN_MARKER_STYLE]=2 \{\
-. if \\n[#PRINT_STYLE]=1 \{ .PRINT "(\\n[#FN_NUMBER])\c" \}
-. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n[#FN_NUMBER]\*[SUPX]\c" \}
-. \}
+. if \\n[#FN_MARKER_STYLE]=1 \{\
+. ie \\n+[#FN_COUNT_FOR_COLS] \{\
+. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT *\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT **\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT \(dg\(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT ***\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT ****\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \(dg\(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT *****\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=10 \{ .PRINT \(dg\(dg\(dg\(dg\(dg\c \}
+. \}
+. el \{\
+. if \\n[#FN_COUNT]=1 \{ .PRINT *\c \}
+. if \\n[#FN_COUNT]=2 \{ .PRINT \(dg\c \}
+. if \\n[#FN_COUNT]=3 \{ .PRINT **\c \}
+. if \\n[#FN_COUNT]=4 \{ .PRINT \(dg\(dg\c \}
+. if \\n[#FN_COUNT]=5 \{ .PRINT ***\c \}
+. if \\n[#FN_COUNT]=6 \{ .PRINT \(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT]=7 \{ .PRINT ****\c \}
+. if \\n[#FN_COUNT]=8 \{ .PRINT \(dg\(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT]=9 \{ .PRINT *****\c \}
+. if \\n[#FN_COUNT]=10 \{ .PRINT \(dg\(dg\(dg\(dg\(dg\c \}
+. \}
+. \}
+. if \\n[#FN_MARKER_STYLE]=2 \{\
+. if \\n[#PRINT_STYLE]=1 \{ .PRINT "(\\n[#FN_NUMBER])\c" \}
+. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n[#FN_NUMBER]\*[SUPX]\c" \}
+. \}
. \}
. \}
. \}
@@ -8533,14 +8993,36 @@ y\\R'#DESCENDER \\n[.cdp]'
\# ENDNOTE LEAD
\# ------------
\# *Argument:
-\# <base leading to use in endnotes>
+\# <base leading to use in endnotes> [ ADJUST ]
\# *Function:
-\# Creates or modifies register #EN_LEAD.
+\# Creates or modifies register #EN_LEAD. Creates or removes
+\# register #ADJ_EN_LEAD. Stores arguments in strings if ENDNOTE_LEAD
+\# set before START.
\# *Notes:
-\# Default is 13.5 points for TYPESET; 24 for TYPEWRITE.
+\# Default is 14 points for TYPESET, adjusted; 24 for TYPEWRITE.
\#
.MAC ENDNOTE_LEAD END
+. if !\\n[#OK_PROCESS_LEAD] \{\
+. ds $EN_LEAD \\$1
+. if !'\\$2'' \{\
+. ds $ADJUST_EN_LEAD \\$2
+. \}
+. return
+. \}
+. rr #ADJ_EN_LEAD
. nr #EN_LEAD (p;\\$1)
+. if '\\$2'ADJUST' \{\
+. nr #ORIG_DOC_LEAD \\n[#DOC_LEAD]
+. nr #ADJ_DOC_LEAD 1
+. nr #ADJ_EN_LEAD 1
+. nr #NO_TRAP_RESET 1
+. DOC_LEAD \\n[#EN_LEAD]u ADJUST
+. nr #EN_LEAD \\n[#DOC_LEAD]
+. DOC_LEAD \\n[#ORIG_DOC_LEAD]u
+. rr #NO_TRAP_RESET
+. rr #ADJ_DOC_LEAD
+. rr #ORIG_DOC_LEAD
+. \}
.END
\#
\#
@@ -8583,7 +9065,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Function:
\# Creates or modifies string $EN_STRING.
\# *Notes:
-\# Default is "ENDNOTES"
+\# Default is "Endnotes"
\#
.MAC ENDNOTE_STRING END
. ds $EN_STRING \\$1
@@ -8661,11 +9143,32 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie '\\$1'' \{ .nr #EN_STRING_UNDERSCORE 1 \}
. el \{\
. ie '\\$1'2' \{ .nr #EN_STRING_UNDERSCORE 2 \}
-. el \{ .rr #EN_STRING_UNDERSCORE \}
+. el \{ .nr #EN_STRING_UNDERSCORE 0 \}
. \}
.END
\#
\#
+\# ENDNOTE STRING CAPS
+\# -------------------
+\# *Arguments:
+\# <none> | <anything>
+\# *Function:
+\# Turns capitalization 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 ENDNOTE_STRING is in lower case and ENDNOTE_STRING_CAPS is
+\# turned on, this is exactly what will happen.
+\#
+\# Default is on.
+\#
+.MAC ENDNOTE_STRING_CAPS END
+. ie '\\$1'' \{ .nr #EN_STRING_CAPS 1 \}
+. el \{ .rr #EN_STRING_CAPS \}
+.END
+\#
+\#
\# ENDNOTE TITLE
\# -------------
\# *Argument:
@@ -8802,7 +9305,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# numbers as they appear on the endnotes page(s). The superscript
\# numbers that appear in running text are unaffected.
\#
-.MAC ENDNOTE_NUMBER_SIZE END \"Default for TYPESET is 0
+.MAC ENDNOTE_NUMBER_SIZE END
. ds $EN_NUMBER_SIZE_CHANGE \\$1
.END
\#
@@ -8856,6 +9359,144 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
+\# TURN OFF COLUMN MODE FOR ENDNOTES
+\# ---------------------------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Creates or removes register #EN_NO_COLS
+\# *Notes:
+\# Allows user to tell mom not to set endnotes in columnar
+\# documents in columns. Default is to set endnotes in columns.
+\#
+.MAC ENDNOTES_NO_COLUMNS END
+. ie '\\$1'' \{ .nr #EN_NO_COLS 1 \}
+. el \{ .rr #EN_NO_COLS \}
+.END
+\#
+\#
+\# NO FIRST PAGE NUMBER ON ENDNOTES FIRST PAGE
+\# -------------------------------------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Creates or removes register #EN_NO_FIRST_PN
+\# *Notes:
+\# For use if FOOTERS are on. Tells ENDNOTES not to put a page
+\# number on the first endnotes page. Some users may want this.
+\# Default is to print a page number at the top of the first
+\# endnotes page when footers are on.
+\#
+.MAC ENDNOTES_NO_FIRST_PAGENUM END
+. ie '\\$1'' \{ .nr #EN_NO_FIRST_PN 1 \}
+. el \{ .rr #EN_NO_FIRST_PN \}
+.END
+\#
+\#
+\# PAGE HEADERS ON ENDNOTES PAGES
+\# ------------------------------
+\# *Argument:
+\# <none> | ALL
+\# *Function:
+\# Creates or removes register #EN_ALLOWS_HEADERS or
+\# #EN_ALLOWS_HEADERS_ALL
+\# *Notes:
+\# Whether ENDNOTES puts a page header at the top of endnotes
+\# pages if page headers are used throughout the document.
+\# Default is to insert the page headers, but not on the first
+\# page. If the optional argument ALL is given, ENDNOTES puts a
+\# page header on the first page as well.
+\#
+.MAC ENDNOTES_ALLOWS_HEADERS END
+. ie '\\$1'' \{ .nr #EN_ALLOWS_HEADERS 1 \}
+. el \{\
+. ie '\\$1'ALL' \{\
+. nr #EN_ALLOWS_HEADERS 1
+. nr #EN_ALLOWS_HEADERS_ALL 1
+. \}
+. el \{\
+. rr #EN_ALLOWS_HEADERS
+. rr #EN_ALLOWS_HEADERS_ALL
+. \}
+. \}
+.END
+\#
+\#
+\# ENDNOTES PAGES PAGE NUMBERING STYLE
+\# ----
+\# *Argument:
+\# DIGIT | ROMAN | roman | ALPHA | alpha
+\# *Function:
+\# Creates or modifies $EN_PN_STYLE.
+\# *Notes:
+\# Allows user to define what style should be used for endnotes
+\# pages page numbering. Arguments are the same as for
+\# PAGENUM_STYLE.
+\#
+\# Default is DIGIT.
+\#
+.MAC ENDNOTES_PAGENUM_STYLE END
+. ds $EN_PN_STYLE \\$1
+.END
+\#
+\#
+\# FIRST PAGE NUMBER FOR ENDNOTES
+\# ------------------------------
+\# *Argument:
+\# <page number that appears on page 1 of endnotes pages>
+\# *Function:
+\# Creates or modifies string $EN_FIRST_PN
+\# *Notes:
+\# To be used with caution, only if all endnotes
+\# are to be output at once, i.e. not at the end of the separate
+\# docs of a collated doc
+\#
+.MAC ENDNOTES_FIRST_PAGENUMBER END
+. nr #EN_FIRST_PN \\$1
+.END
+\#
+\# SINGLESPACE ENDNOTES
+\# --------------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Sets lead of endnotes pages in TYPEWRITE to 12 points,
+\# adjusted.
+\# *Notes:
+\# Default is to double-space endnotes pages.
+\#
+.MAC SINGLESPACE_ENDNOTES END
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE] \{\
+. nr #EN_SINGLESPACE 1
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. ENDNOTE_LEAD 12 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. el \{\
+. ie '\\$1'' \{\
+. nr #EN_SINGLESPACE 1
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. ENDNOTE_LEAD 12 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. el \{\
+. rr #EN_SINGLESPACE
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. ENDNOTE_LEAD 24 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. \}
+. \}
+.END
+\#
+\#
\# ENDNOTE PARAGRAPH SPACE
\# -----------------------
\# *Argument:
@@ -8898,26 +9539,22 @@ y\\R'#DESCENDER \\n[.cdp]'
. PRINT "\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#EN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2"
. \}
. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n+[#EN_NUMBER]\*[SUPX]" \}
-. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
. nr #PP_STYLE_PREV \\n[#PP_STYLE]
. nr #PP_STYLE 1
. if \\n[#INDENT_FIRST_PARAS] \{ .nr #INDENT_FIRSTS 1 \}
. INDENT_FIRST_PARAS
. ev EN
. da END_NOTES
-. nr #NO_TRAP_RESET 1
-. if \\n[#PRINT_STYLE]=2 \{ .DOC_LEAD \\n[#EN_LEAD]u ADJUST \}
-. rr #NO_TRAP_RESET
-. vs \\n[#DOC_LEAD]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if \\n[#COLUMNS] \{\
-. LL \\n[#COL_L_LENGTH]u
+. ie \\n[#EN_NO_COLS] \{ .LL \\n[#DOC_L_LENGTH]u \}
+. el \{ .LL \\n[#COL_L_LENGTH]u \}
. ta \\n(.lu
. \}
+. vs \\n[#EN_LEAD]u
. if \\n[#EN_NUMBER]=1 \{\
-\!. ne 3
-. if !'\\*[$EN_STRING]'' \{ .sp \}
+\!. ne 3
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
@@ -8928,6 +9565,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. FT \\*[$EN_TITLE_FT]
. PT_SIZE \\n[#EN_PS]u\\*[$EN_TITLE_SIZE_CHANGE]
. \}
+. sp
. if !'\\*[$EN_TITLE]'' \{\
. if '\\*[$EN_TITLE_QUAD]'L' \{ .LEFT \}
. if '\\*[$EN_TITLE_QUAD]'LEFT' \{ .LEFT \}
@@ -9012,12 +9650,11 @@ y\\R'#DESCENDER \\n[.cdp]'
. in 0
. \}
. di
-. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
+. ev
. nr #PP_STYLE \\n[#PP_STYLE_PREV]
. if !\\n[#INDENT_FIRSTS] \{ .INDENT_FIRST_PARAS OFF \}
. rr #INDENT_FIRSTS
. rr #ENDNOTE
-. ev
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_WAS_ON] \{\
. rr #UNDERLINE_WAS_ON
@@ -9042,26 +9679,155 @@ y\\R'#DESCENDER \\n[.cdp]'
\# with endnotes, then outputs diversion END_NOTES.
\#
.MAC ENDNOTES END
+. nr #ENDNOTES 1
+. nr #EN_FIRST_PAGE 1
+. nr #HEADER_STATE \\n[#HEADERS_ON]
+. ds $UR_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
+. if \\n[#HEADERS_ON]=1 \{\
+. if !\\n[#EN_ALLOWS_HEADERS_ALL] \{ .HEADERS OFF \}
+. \}
. if \\n[#DOC_TYPE]=2 \{\
. ie \\n[#EN_HDRFTR_CENTER]=1 \{ . \}
. el \{ .HDRFTR_CENTER \}
. \}
+. ie !\\n[#SUSPEND_PAGINATION] \{\
+. if \\n[#PAGINATE]=1 \{\
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
+. 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 \}
+. \}
+. \}
+. \}
+. el \{\
+. ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
+. 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
-. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
-. if \\n[#PRINT_STYLE]=2 \{ .DOC_LEAD \\n[#EN_LEAD]u ADJUST \}
+. if \\n[#FINIS] \{\
+. if \\n[#FOOTERS_WERE_ON] \{\
+. FOOTERS
+. rr #FOOTERS_WERE_ON
+. \}
+. if \\n[#PAGINATION_WAS_ON] \{\
+. PAGINATE
+. rr #PAGINATION_WAS_ON
+. \}
+. rr #FINIS
+. \}
+. if \\n[#FOOTERS_WERE_ON] \{\
+. FOOTERS
+. rr #FOOTERS_WERE_ON
+. \}
+. if \\n[#PAGINATION_WAS_ON] \{\
+. PAGINATE
+. rr #PAGINATION_WAS_ON
+. \}
+. 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#EN_NO_FIRST_PN \{ .nr #PAGINATE 1 \}
+. \}
+. \}
+. el \{\
+. if \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 0 \}
+. \}
+. if '\\*[$RESTORE_PAGENUM_STYLE]'' \{\
+. ds $RESTORE_PAGENUM_STYLE \\*[$UR_PAGENUM_STYLE]
+. \}
+. PAGENUM_STYLE \\*[$EN_PN_STYLE]
+. if \\n[#EN_FIRST_PN] \{ .PAGENUMBER \\n[#EN_FIRST_PN] \}
+. if \\n[#HEADER_STATE]=1 \{\
+. if \\n[#EN_ALLOWS_HEADERS] \{ .HEADERS \}
+. \}
+\# Collect endnote 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]\\|
+. ev TOC_EV
+. da TOC_ENTRIES
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_TITLE_FAM]
+\!. FT \\*[$TOC_TITLE_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+\!. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN]"
+. \}
+\!. EL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+\# End collection of endnote title string for TOC
+\# Process endnote
+. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#EN_LEAD]u \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. if \\n[#EN_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 \}
+. \}
+. PRINT \&
+. sp |\\n[#T_MARGIN]u
+. mk ec
. if \\n[#SLANT_ON] \{\
\*[SLANTX]\c
. \}
+. ev ENDNOTES
. if !'\\*[$EN_STRING]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
+. vs \\n[#EN_LEAD]u
. \}
. if \\n[#PRINT_STYLE]=2 \{\
+. LL \\n[#DOC_L_LENGTH]u
+. ta \\n(.lu
+. if \\n[#COLUMNS] \{\
+. ie \\n[#EN_NO_COLS] \{ .LL \\n[#DOC_L_LENGTH]u \}
+. el \{ .LL \\n[#COL_L_LENGTH]u \}
+. ta \\n(.lu
+. \}
. FAMILY \\*[$EN_STRING_FAM]
. FT \\*[$EN_STRING_FT]
. PT_SIZE \\n[#EN_PS]u\\*[$EN_STRING_SIZE_CHANGE]
+. vs \\n[#EN_LEAD]u
. \}
. if '\\*[$EN_STRING_QUAD]'L' \{ .LEFT \}
. if '\\*[$EN_STRING_QUAD]'LEFT' \{ .LEFT \}
@@ -9071,6 +9837,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if '\\*[$EN_STRING_QUAD]'R' \{ .RIGHT \}
. if '\\*[$EN_STRING_QUAD]'RIGHT' \{ .RIGHT \}
. EL
+. if \\n[#EN_STRING_CAPS] \{ .CAPS \}
. ie \\n[#EN_STRING_UNDERSCORE] \{\
. ie \\n[#EN_STRING_UNDERSCORE]=2 \{\
. UNDERSCORE2 "\\*[$EN_STRING]
@@ -9083,18 +9850,534 @@ y\\R'#DESCENDER \\n[.cdp]'
. PRINT "\\*[$EN_STRING]
. \}
. \}
-. ev EN
+. CAPS OFF
+. ALD \\n[#EN_LEAD]u
+. QUAD \\*[$EN_QUAD]
. nf
-. vs \\n[#DOC_LEAD]u
. END_NOTES
. br
. ev
. rm END_NOTES
-. DOC_LEAD \\n[#RESTORE_DOC_LEAD]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 \}
+. rr #ENDNOTES
.END
\#
\# ====================================================================
\#
+\# +++TABLE OF CONTENTS+++
+\#
+\#
+\# Strings to allocate space for leaders and entry page numbers
+\#
+.ds $TOC_PN \\*[ST100]\\F[\\*[$TOC_PN_FAM]]\\f[\\*[$TOC_PN_FT]]\\s[\\n[#TOC_PS]u]#\\*[ST100X]\\*[ST101]\\s[\\*[$TOC_PN_SIZE_CHANGE]]\\|\\h'\\w'0'u*\\n[#TOC_PN_PADDING]u'\*[ST101X]
+.ds $TOC_PN_TYPEWRITE \\*[ST100]#\\*[ST100X]\\*[ST101]\\|\\h'\\w'0'u*\\n[#TOC_PN_PADDING]u'\\*[ST101X]
+\#
+\# TOC ENTRIES PAGE NUMBERS PADDING
+\# --------------------------------
+\# *Argument:
+\# <number of placeholders for toc entries page numbers>
+\# *Function:
+\# Creates or modifies register #TOC_PN_PADDING.
+\# *Notes:
+\# "Placeholders" is the maximum number of digits in a page
+\# number numeral.
+\#
+\# Default is 3.
+\#
+.MAC TOC_PADDING END
+. nr #TOC_PN_PADDING \\$1
+.END
+\#
+\#
+\# PAGINATE TOC
+\# ------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Creates or removes register #PAGINATE_TOC.
+\# *Notes:
+\# Default is to paginate toc.
+\#
+.MAC PAGINATE_TOC END
+. ie '\\$1'' \{ .nr #PAGINATE_TOC 1 \}
+. el \{ .nr #PAGINATE_TOC 0 \}
+.END
+\#
+\#
+\# TOC FAMILY
+\# ----------
+\# *Argument:
+\# <overall default family for toc pages>
+\# *Function:
+\# Creates string $TOC_FAM.
+\# *Notes:
+\# Default is same as document family.
+\#
+.MAC TOC_FAMILY END
+. ds $TOC_FAM \\$1
+.END
+\#
+\#
+\# TOC POINT SIZE
+\# --------------
+\# *Argument:
+\# <base point size for toc pages>
+\# *Function:
+\# Creates or modifies register #TOC_PS.
+\# *Notes:
+\# This size control macro differs from other size control macros
+\# in that it sets an absolute point size, not a relative one.
+\# See notes for ENDNOTE_PT_SIZE for explanation. No unit of
+\# measure required.
+\#
+\# No unit of measure required (points assumed). Default is 11.5
+\# for TYPEWRITE.
+\#
+.MAC TOC_PT_SIZE END
+. nr #TOC_PS (p;\\$1)
+.END
+\#
+\#
+\# TOC LEADING
+\# -----------
+\# *Argument:
+\# <leading for toc pages> [ADJUST]
+\# *Function:
+\# Creates or modifies register #TOC_LEAD. If optional ADJUST
+\# given, adjusts lead to fill page. If #OK_PROCESS_LEAD doesn't
+\# exist, stores arguments for when it's okay to run the macro.
+\# *Notes:
+\# No unit of measure required (points assumed).
+\#
+\# Default is same as DOC_LEAD.
+\#
+.MAC TOC_LEAD END
+. if !\\n[#OK_PROCESS_LEAD] \{\
+. ds $TOC_LEAD \\$1
+. if !'\\$2'' \{\
+. ds $ADJUST_TOC_LEAD \\$2
+. \}
+. return
+. \}
+. rr #ADJ_TOC_LEAD
+. nr #TOC_LEAD (p;\\$1)
+. if '\\$2'ADJUST' \{\
+. nr #ORIG_DOC_LEAD \\n[#DOC_LEAD]
+. nr #ADJ_DOC_LEAD 1
+. nr #ADJ_TOC_LEAD 1
+. nr #NO_TRAP_RESET 1
+. DOC_LEAD \\n[#TOC_LEAD]u ADJUST
+. nr #TOC_LEAD \\n[#DOC_LEAD]
+. DOC_LEAD \\n[#ORIG_DOC_LEAD]u
+. rr #NO_TRAP_RESET
+. rr #ADJ_DOC_LEAD
+. rr #ORIG_DOC_LEAD
+. \}
+.END
+\#
+\#
+\# TOC PAGES PAGE-NUMBERING STYLE
+\# ------------------------------
+\# *Argument:
+\# DIGIT | ROMAN | roman | ALPHA | alpha
+\# *Function:
+\# Creates or modifies string $TOC_PN_STYLE
+\# *Notes:
+\# Page numbering style for page numbers that appear in the
+\# headers/footers of toc pages. See notes for PAGENUM_STYLE.
+\#
+\# Default is roman.
+\#
+.MAC TOC_PAGENUM_STYLE END
+. ds $TOC_PN_STYLE \\$1
+.END
+\#
+\#
+\# TOC RECTO_VERSO SWITCH
+\# ----------------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Creates or removes register #TOC_RV_SWITCH
+\# *Notes:
+\# Allows switching of L/R margins if a doc is recto/verso and
+\# the first toc page happens to fall the wrong way
+\#
+.MAC TOC_RV_SWITCH END
+. ie '\\$1'' \{ .nr #TOC_RV_SWITCH 1 \}
+. el \{ .rr #TOC_RV_SWITCH \}
+.END
+\#
+\# - for TOC "doc" header (i.e. "Contents")
+\#
+\# TOC HEADER FAMILY
+\# -----------------
+\# *Argument:
+\# <family for toc header>
+\# *Function:
+\# Creates or modifies string $TOC_HEADER_FAM
+\# *Notes:
+\# Default is same as TOC_FAMILY.
+\#
+.MAC TOC_HEADER_FAMILY END
+. ds $TOC_HEADER_FAM \\$1
+.END
+\#
+\#
+\# TOC HEADER FONT
+\# ---------------
+\# *Argument:
+\# <font for toc header>
+\# *Function:
+\# Creates or modified string $TOC_HEADER_FT
+\# *Notes:
+\# Default is bold for TYPESET.
+\#
+.MAC TOC_HEADER_FONT END
+. ds $TOC_HEADER_FT \\$1
+.END
+\#
+\#
+\# TOC HEADER SIZE
+\# --------------
+\# *Argument:
+\# <+|- number of points by which to in/decrease toc header
+\# (relative to overall toc point size)>
+\# *Function:
+\# Creates or modifies string $TOC_HEADER_SIZE_CHANGE.
+\# *Notes:
+\# Default is +4
+\#
+.MAC TOC_HEADER_SIZE END
+. ds $TOC_HEADER_SIZE_CHANGE \\$1
+.END
+\#
+\#
+\# TOC HEADER QUAD
+\# ---------------
+\# *Argument:
+\# L | LEFT | C | CENTER | CENTRE | R | RIGHT
+\# *Function:
+\# Creates or modifies string $TOC_HEADER_QUAD.
+\# *Notes:
+\# Default is LEFT.
+\#
+.MAC TOC_HEADER_QUAD END
+. ds $TOC_HEADER_QUAD \\$1
+.END
+\#
+\#
+\# TOC HEADER STRING
+\# -----------------
+\# *Argument:
+\# <string for "doc" header of first toc page>
+\# *Function:
+\# Creates or modifies string $TOC_HEADER_STRING
+\# *Notes:
+\# Default is "Contents".
+\#
+.MAC TOC_HEADER_STRING END
+. ds $TOC_HEADER_STRING \\$1
+.END
+\#
+\# - for TOC entries page number numbers
+\#
+\# TOC ENTRIES PAGE NUMBER FAMILY
+\# ------------------------------
+\# *Argument:
+\# <family to use for toc entries page number>
+\# *Function:
+\# Creates or modifies string $TOC_PN_FAM.
+\# *Notes:
+\# Default is same as $TOC_FAM.
+\#
+.MAC TOC_PN_FAMILY END
+. ds $TOC_PN_FAM \\$1
+.END
+\#
+\#
+\# TOC ENTRIES PAGE NUMBER FONT
+\# ----------------------------
+\# *Argument:
+\# <font to use for toc entries page number>
+\# *Function:
+\# Creates or modifies string $TOC_PN_FT.
+\# *Notes:
+\# Default is roman.
+\#
+.MAC TOC_PN_FONT END
+. ds $TOC_PN_FT \\$1
+.END
+\#
+\#
+\# TOC ENTRIES PAGE NUMBER SIZE
+\# ----------------------------
+\# *Argument:
+\# <+|- number of points by which to in/decrease toc
+\# entries page numbers (relative to overall toc point size)>
+\# *Function:
+\# Creates or modifies string $TOC_PN_SIZE_CHANGE.
+\# *Notes:
+\# Default is +0.
+\#
+.MAC TOC_PN_SIZE END
+. ds $TOC_PN_SIZE_CHANGE \\$1
+.END
+\#
+\#
+\# Control macros for toc doc titles, heads, subheads and paraheads
+\# ----------------------------------------------------------------
+\#
+\# All these control macros behave the same way, setting the family,
+\# font, point size and indent from the left margin of the different
+\# kinds of entries what can appear in the toc. The way they
+\# operate is identical to all other _FAMILY, _FONT and _SIZE
+\# control macros. _INDENT takes an absolute value.
+\# TOC_APPENDS_AUTHORS is unique in this section.
+\#
+\# - for title entries
+\#
+.MAC TOC_TITLE_FAMILY END
+. ds $TOC_TITLE_FAM \\$1
+.END
+\#
+\#
+.MAC TOC_TITLE_FONT END
+. ds $TOC_TITLE_FT \\$1
+.END
+\#
+\#
+.MAC TOC_TITLE_SIZE END
+. ds $TOC_TITLE_SIZE_CHANGE \\$1
+.END
+\#
+\#
+.MAC TOC_TITLE_INDENT END
+. nr #TOC_TITLE_INDENT (\\$1)
+.END
+\#
+\#
+.MAC TOC_TITLE_ENTRY END
+. nr #USER_SET_TITLE_ITEM 1
+. ds $USER_SET_TITLE_ITEM \\$1
+.END
+\#
+\#
+\# APPEND AUTHOR(S) TO TOC DOC TITLE ENTRIES
+\# -----------------------------------------
+\# *Argument:
+\# <none> | <name(s) of author(s) as they should appear in toc doc title entries>
+\# *Function:
+\# Creates register #TOC_AUTHORS (to tell TOC to append authors
+\# to toc doc title entries). Optionally creates string
+\# $TOC_AUTHORS.
+\# *Notes:
+\# Normally, TOC does not append the author(s) to a toc doc title
+\# entry. This special macro instructs TOC to do so.
+\#
+\# If user has multiple authors for each doc when collating,
+\# TOC_APPENDS_AUTHOR "<string>" must be inserted somewhere between
+\# COLLATE and START in each doc. Otherwise, mom prints only the
+\# first author given to AUTHOR.
+\#
+.MAC TOC_APPENDS_AUTHOR END
+. nr #TOC_AUTHORS 1
+. if !'\\$1'' \{\
+. ds $TOC_AUTHORS \\$1
+. \}
+.END
+\#
+\# - for head entries
+\#
+.MAC TOC_HEAD_FAMILY END
+. ds $TOC_HEAD_FAM \\$1
+.END
+\#
+\#
+.MAC TOC_HEAD_FONT END
+. ds $TOC_HEAD_FT \\$1
+.END
+\#
+\#
+.MAC TOC_HEAD_SIZE END
+. ds $TOC_HEAD_SIZE_CHANGE \\$1
+.END
+\#
+\#
+.MAC TOC_HEAD_INDENT END
+. nr #TOC_HEAD_INDENT (\\$1)
+.END
+\#
+\# - for subhead entries
+\#
+.MAC TOC_SUBHEAD_FAMILY END
+. ds $TOC_SH_FAM \\$1
+.END
+\#
+\#
+.MAC TOC_SUBHEAD_FONT END
+. ds $TOC_SH_FT \\$1
+.END
+\#
+\#
+.MAC TOC_SUBHEAD_SIZE END
+. ds $TOC_SH_SIZE_CHANGE \\$1
+.END
+\#
+\#
+.MAC TOC_SUBHEAD_INDENT END
+. nr #TOC_SH_INDENT (\\$1)
+.END
+\#
+\# - for parahead entries
+\#
+.MAC TOC_PARAHEAD_FAMILY END
+. ds $TOC_PH_FAM \\$1
+.END
+\#
+\#
+.MAC TOC_PARAHEAD_FONT END
+. ds $TOC_PH_FT \\$1
+.END
+\#
+\#
+.MAC TOC_PARAHEAD_SIZE END
+. ds $TOC_PH_SIZE_CHANGE \\$1
+.END
+\#
+\#
+.MAC TOC_PARAHEAD_INDENT END
+. nr #TOC_PH_INDENT (\\$1)
+.END
+\#
+\#
+.MAC TOC END
+. if !r#PAGINATE_TOC \{ .PAGINATE_TOC \}
+. nr #TOC_FIRST_PAGE 1
+. if \\n[#FINIS] \{\
+. if \\n[#FOOTERS_WERE_ON] \{\
+. FOOTERS \" Have to turn FOOTERS on for next bit to work, so we can't skip this step
+. \}
+. \}
+. if \\n[#FOOTERS_ON]=1 \{\
+. if !'\\*[$HDRFTR_CENTER_OLD]'' \{ .ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_OLD] \}
+. ie \\n[#PAGINATE_TOC]=1 \{ .PAGINATE \}
+. el \{ .PAGINATION OFF \}
+. \}
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS OFF \} \" But have to turn FOOTERS off again so they don't print when FINIS was called
+. COLLATE
+. if \\n[#FINIS] \{\
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \} \" Finally, turn footers on if they were on
+. rr #FOOTERS_WERE_ON
+. if \\n[#PAGINATION_WAS_ON] \{\
+. nr #PAGINATE 1
+. rr #PAGINATION_WAS_ON
+. \}
+. rr #FINIS
+. \}
+. ie \\n[#PAGINATE_TOC]=1 \{ .PAGINATE \}
+. el \{ .PAGINATION OFF \}
+. if \\n[#FOOTERS_ON]=1 \{\
+. ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_NEW]
+. rm $HDRFTR_CENTER_OLD
+. rm $HDRFTR_CENTER_NEW
+. \}
+. rr #COLLATED_DOC
+. DOCHEADER OFF
+. PAGENUMBER 1
+. if \\n[#PRINT_STYLE]=1 \{\
+. rr #IGNORE
+. DOC_LEAD 24 ADJUST
+. nr #IGNORE 1
+. \}
+. START
+. PP
+. nr #COLUMNS 0
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie r#ADJ_TOC_LEAD \{\
+. nr #NO_TRAP_RESET 1
+. DOC_LEAD \\n[#TOC_LEAD]u ADJUST
+. rr #NO_TRAP_RESET
+. \}
+. el \{ .DOC_LEAD \\n[#TOC_LEAD]u \}
+. \}
+. sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u
+. if \\n[#SLANT_ON] \{\
+\*[SLANTX]\c
+. \}
+. DOC_LINE_LENGTH \\n[#DOC_L_LENGTH]u
+. QUAD \\*[$TOC_HEADER_QUAD]
+. PAGENUM_STYLE \\*[$TOC_PN_STYLE]
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$TOC_HEADER_FAM]
+. FT \\*[$TOC_HEADER_FT]
+. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_HEADER_SIZE_CHANGE]
+. \}
+. ie \\n[#PRINT_STYLE]=1 \{\
+. CAPS
+. UNDERLINE
+. PRINT "\\*[$TOC_HEADER_STRING]"
+. UNDERLINE OFF
+. CAPS OFF
+. \}
+. el \{\
+. PRINT "\\*[$TOC_HEADER_STRING]"
+. \}
+. LEFT
+. SP
+\# In collated docs, this bit inserts the first doc's title
+\# underneath the TOC header, before the TOC_ENTRIES diversion
+\# gets output.
+. nf
+. if d$FIRST_DOC_TITLE \{\
+. nr #RESTORE_TOC_PN_PADDING \\n[#TOC_PN_PADDING]
+. TOC_PADDING \\n[#FIRST_DOC_TOC_PN_PADDING]
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$TOC_TITLE_FAM]
+. FT \\*[$TOC_TITLE_FT]
+. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE]
+. \}
+. ie \\n[#PRINT_STYLE]=1 \{\
+. PAD "\\*[$FIRST_DOC_TITLE]\\*[$TOC_PN_TYPEWRITE]"
+. \}
+. el \{\
+. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$FIRST_DOC_TITLE]\\*[$TOC_PN]"
+. \}
+. EL
+. ST 100 L
+. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$TOC_PN_FAM]
+. FT \\*[$TOC_PN_FT]
+. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
+. \}
+. TAB 100
+. PRINT \\*[LEADER]
+. TN
+. PRINT \\n[#FIRST_DOC_TITLE_PN]
+. TQ
+. \}
+. TOC_PADDING \\n[#RESTORE_TOC_PN_PADDING]
+. nf
+. TOC_ENTRIES
+. br
+.END
+\# ====================================================================
+\#
\# +++COLUMNS+++
\#
\# COLUMNS
@@ -9178,6 +10461,43 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. IQ CLEAR
. TQ
+\# Collect first doc's title for TOC
+. if \\n[#COLLATED_DOC]=0 \{\
+. ie \\n[#USER_SET_TITLE_ITEM] \{\
+. ds $FIRST_DOC_TITLE \\*[$USER_SET_TITLE_ITEM]\\|
+. rr #USER_SET_TITLE_ITEM
+. rm $USER_SET_TITLE_ITEM
+. \}
+. el \{\
+. ie \\n[#DOC_TYPE]=2 \{\
+. ie '\\*[$CHAPTER_TITLE]'' \{\
+. ds $FIRST_DOC_TITLE \\*[$CHAPTER_STRING] \\*[$CHAPTER]\\|
+. \}
+. el \{\
+. ie '\\*[$CHAPTER]'' \{\
+. ds $FIRST_DOC_TITLE \\*[$CHAPTER_TITLE]\\|
+. \}
+. el \{\
+. ds $FIRST_DOC_TITLE \\*[$CHAPTER_STRING] \\*[$CHAPTER]: \\*[$CHAPTER_TITLE]\\|
+. \}
+. \}
+. \}
+. el \{\
+. ds $FIRST_DOC_TITLE \\*[$TITLE]\\|
+. \}
+. \}
+. if \\n[#TOC_AUTHORS]=1 \{\
+. ie '\\*[$TOC_AUTHORS]'' \{\
+. as $FIRST_DOC_TITLE /\\|\\*[$AUTHOR_1]\\|
+. \}
+. el \{\
+. as $FIRST_DOC_TITLE /\\|\\*[$TOC_AUTHORS]\\|
+. rm $TOC_AUTHORS
+. \}
+. \}
+. nr #COLLATED_DOC 1
+. \}
+\# End title collection for TOC
. LL \\n[#DOC_L_LENGTH]u
. QUAD $DOC_QUAD
. LS \\n[#DOC_LEAD]u
@@ -9185,11 +10505,63 @@ y\\R'#DESCENDER \\n[.cdp]'
\*[CONDX]
\*[EXTX]
' NEWPAGE
-. rr #PAGENUM_STYLE_SET
+. if \\n[#DEFER_PAGINATION] \{ .PAGINATE \}
+. if !'\\*[$RESTORE_PAGENUM_STYLE]'' \{\
+. PAGENUM_STYLE \\*[$RESTORE_PAGENUM_STYLE]
+. rm $RESTORE_PAGENUM_STYLE
+. \}
. rm $EN_TITLE
.END
\#
\#
+\# OUTPUT BLANK PAGES
+\# ------------------
+\# *Argument:
+\# <number of blank pages to output>
+\# *Function:
+\# Outputs blank pages.
+\# *Notes:
+\# If recto/verso, each page is recto/verso, even if there's
+\# nothing on it.
+\#
+.MAC BLANKPAGE END
+. nr #HOW_MANY \\$1
+. nr #PAGES 0 1
+. while \\n+[#PAGES]<=\\n[#HOW_MANY] \{\
+. if \\n[#HEADERS_ON]=1 \{\
+. nr #HEADERS_WERE_ON 1
+. HEADERS OFF
+. \}
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. if \\n[#PAGINATE]=1 \{ .nr #PAGINATE_WAS_ON 1 \}
+. PAGINATION OFF
+. \}
+. NEWPAGE
+. PRINT \&
+. if \\n[#FOOTERS_ON]=1 \{\
+. nr #FOOTERS_WERE_ON 1
+. FOOTERS OFF
+. \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. if \\n[#PAGINATE]=1 \{ .nr #PAGINATE_WAS_ON 1 \}
+. PAGINATION OFF
+. \}
+. if \\n[#HEADERS_WERE_ON] \{ .HEADERS \}
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
+. \}
+. \}
+. NEWPAGE
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
+. \}
+. rr #HEADERS_WERE_ON
+. rr #FOOTERS_WERE_ON
+. rr #PAGINATE_WAS_ON
+.END
+\#
+\#
\# SET TRAPS FOR HEADERS/FOOTERS/FOOTNOTES
\# ---------------------------------------
\# *Arguments:
@@ -9213,7 +10585,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. wh 0 HEADER
. \}
\# *Adjust lead so last line of text falls on B_MARGIN,...
-. ie \\n[#ADJ_DOC_LEAD] \{\
+. ie \\n[#ADJ_DOC_LEAD]=1 \{\
. nr #LINES_PER_PAGE 0 1
. nr #DOC_LEAD_ADJ 0 1
. nr #DEPTH_TO_B_MARGIN \\n[#PAGE_LENGTH]-\\n[#B_MARGIN]-1v
@@ -9240,6 +10612,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. wh -\\n[#B_MARGIN]u FN_OVERFLOW_TRAP
. ch FOOTER -\\n[#B_MARGIN]u
. \}
+. rr #ADJ_DOC_LEAD
.END
\#
\#
@@ -9278,7 +10651,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#BR_INDENT]=\\n[#BL_INDENT] \{\
. ll -\\n[#BR_INDENT]u
. ta \\n(.lu
-. \}
+. \}
. el \{\
. ll -(\\n[#BR_INDENT]u/2u)
. ta \\n(.lu
@@ -9343,6 +10716,8 @@ y\\R'#DESCENDER \\n[.cdp]'
.ALIAS DOC_LS DOC_LEAD
.ALIAS PAGENUM PAGENUMBER
.ALIAS PAGINATION PAGINATE
+.ALIAS TOC_FAM TOC_FAM
+.ALIAS TOC_PS TOC_PT_SIZE
\#
\# HEADER and FOOTER aliases for HDRFTR macros.
\#
@@ -9375,6 +10750,8 @@ y\\R'#DESCENDER \\n[.cdp]'
.ALIAS HEADER_CENTRE_SIZE HDRFTR_CENTER_SIZE
.ALIAS HEADER_CENTER_PS HDRFTR_CENTER_SIZE
.ALIAS HEADER_CENTRE_PS HDRFTR_CENTER_SIZE
+.ALIAS HEADER_CENTER_PAD HDRFTR_CENTER_PAD
+.ALIAS HEADER_CENTRE_PAD HDRFTR_CENTER_PAD
.ALIAS HEADER_CENTER_CAPS HDRFTR_CENTER_CAPS
.ALIAS HEADER_CENTRE_CAPS HDRFTR_CENTER_CAPS
.ALIAS HEADER_RIGHT HDRFTR_RIGHT
@@ -9414,6 +10791,8 @@ y\\R'#DESCENDER \\n[.cdp]'
.ALIAS FOOTER_CENTRE_FT HDRFTR_CENTER_FONT
.ALIAS FOOTER_CENTER_SIZE HDRFTR_CENTER_SIZE
.ALIAS FOOTER_CENTRE_SIZE HDRFTR_CENTER_SIZE
+.ALIAS FOOTER_CENTER_PAD HDRFTR_CENTER_PAD
+.ALIAS FOOTER_CENTRE_PAD HDRFTR_CENTER_PAD
.ALIAS FOOTER_CENTER_PS HDRFTR_CENTER_SIZE
.ALIAS FOOTER_CENTRE_PS HDRFTR_CENTER_SIZE
.ALIAS FOOTER_CENTER_CAPS HDRFTR_CENTER_CAPS