summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/mom/ChangeLog38
-rw-r--r--contrib/mom/NEWS27
-rw-r--r--contrib/mom/TODO5
-rw-r--r--contrib/mom/examples/elvis_syntax9
-rw-r--r--contrib/mom/momdoc/docelement.html609
-rw-r--r--contrib/mom/momdoc/docprocessing.html47
-rw-r--r--contrib/mom/momdoc/goodies.html5
-rw-r--r--contrib/mom/momdoc/inlines.html31
-rw-r--r--contrib/mom/momdoc/rectoverso.html5
-rw-r--r--contrib/mom/momdoc/reserved.html93
-rw-r--r--contrib/mom/momdoc/toc.html3
-rw-r--r--contrib/mom/om.tmac1251
12 files changed, 1850 insertions, 273 deletions
diff --git a/contrib/mom/ChangeLog b/contrib/mom/ChangeLog
index cb2199bf..6d71091e 100644
--- a/contrib/mom/ChangeLog
+++ b/contrib/mom/ChangeLog
@@ -1,7 +1,45 @@
+*Fri Jul 12 2002
+
+o More fixes to underlining.
+
+*Fri Jul 5 2002
+
+o Added capability of endnotes and pertinent control macros to om.tmac.
+
+o Added document entries pertaining to endnote macros.
+
+o Incorporated endnote macros into elvis_syntax.
+
+o Small doc fixes.
+
+o Tidied up indenting of om.tmac.
+
+o Fixed handling of underlining of italics in PRINTSTYLE TYPEWRITE
+ (there was a problem with footnotes getting underlined when they
+ shouldn't have been).
+
+o Removed ENDNOTES from TODO
+
+o Fixed the character translations for UNDERLINE so they work properly
+ with digraphs.
+
+*Mon Jul 1 2002
+
+o Expanded docprocessing.html entry "Special Note on Chapters". Tidied
+ up html a bit.
+
*Tue Jun 18 2002
o examples/macros.mom: Fix path to penguin.ps.
+*Sat Jun 15 2002
+
+o Small fix to PAD to make the use of inlines within the pad string
+ more intuitive.
+
+o Added \*[RULE] ( = \l'\n(.lu' ) so that full measure rules (either to
+ full line length or within tabs) are easier to set.
+
*Sat Jun 8 2002
o Macro .PS renamed to .PT_SIZE. Alias .TS removed.
diff --git a/contrib/mom/NEWS b/contrib/mom/NEWS
index e864babe..6a13d4ad 100644
--- a/contrib/mom/NEWS
+++ b/contrib/mom/NEWS
@@ -1,3 +1,30 @@
+Release 1.1.3
+-------------
+
+***SIGNIFICANT CHANGE -- PLEASE TAKE NOTE***
+As of 1.1.3, groff must be >= 1.18.
+
+***NEW***
+Added endnotes functionality to mom, along with a slew of macros to
+control how mom prints endnotes pages. See the html documentation.
+
+***NEW***
+Added inline \*[RULE], which draws a rule to the full measure of the
+current line length ( to be used in place of \h'\n(.lu' ). Weight of the
+rule is dependent on the point size of type when \#[RULE] is called.
+
+***FIXES***
+PAD -- works more intuitively now when the pad string contains inline
+escapes for font, point size, etc.
+
+UNDERLINE -- fixed character translations of digraphs so they get
+underlined properly. Also fixed a bug that was causing some footnotes
+to get underlined when UNDERLINE was on in the body of the document.
+
+***UPDATES***
+Html documentation
+elvis_syn
+
Release 1.1.2a
--------------
diff --git a/contrib/mom/TODO b/contrib/mom/TODO
index dc83f119..c5f15413 100644
--- a/contrib/mom/TODO
+++ b/contrib/mom/TODO
@@ -5,11 +5,6 @@ control macros, or, instead, let user be able to enter absolute
values with a unit of measure in addition to current behaviour,
which is relative.
-ENDNOTES
---------
-Not entirely sure of the most flexible way to set these up. And, to be
-honest, not sure how essential they are to mom's target users.
-
LISTS
-----
Possbility of indented, nested lists, html-style. Options for numbered,
diff --git a/contrib/mom/examples/elvis_syntax b/contrib/mom/examples/elvis_syntax
index 1b8c7088..79d4b8f3 100644
--- a/contrib/mom/examples/elvis_syntax
+++ b/contrib/mom/examples/elvis_syntax
@@ -22,6 +22,15 @@ keyword .DOCTYPE .DOCTYPE_FAMILY .DOCTYPE_FONT .DOCTYPE_SIZE
keyword .DRAFT .DRAFT_STRING .DRAFT_WITH_PAGENUMBER
keyword .DROPCAP .DROPCAP_ADJUST .DROPCAP_FAMILY .DROPCAP_FONT .DROPCAP_GUTTER .DROPCAP_OFF
keyword .EL
+keyword .ENDNOTE .ENDNOTES
+keyword .ENDNOTE_FAMILY .ENDNOTE_FONT .ENDNOTE_PT_SIZE .ENDNOTE_LEAD .ENDNOTE_QUAD
+keyword .ENDNOTE_STRING .ENDNOTE_STRING_FAMILY .ENDNOTE_STRING_FONT .ENDNOTE_STRING_SIZE
+keyword .ENDNOTE_STRING_QUAD .ENDNOTE_STRING_UNDERSCORE
+keyword .ENDNOTE_TITLE .ENDNOTE_TITLE_FAMILY .ENDNOTE_TITLE_FONT .ENDNOTE_TITLE_SIZE
+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
keyword .EPIGRAPH .EPIGRAPH_AUTOLEAD .EPIGRAPH_FAMILY .EPIGRAPH_FONT
keyword .EPIGRAPH_INDENT .EPIGRAPH_QUAD .EPIGRAPH_SIZE
keyword .EW .EXTEND
diff --git a/contrib/mom/momdoc/docelement.html b/contrib/mom/momdoc/docelement.html
index 5342af0e..a8bc1c07 100644
--- a/contrib/mom/momdoc/docelement.html
+++ b/contrib/mom/momdoc/docelement.html
@@ -221,6 +221,11 @@ arguments as
<li><a href="#FOOTNOTE">FOOTNOTE</a>
<li><a href="#FOOTNOTE_CONTROL">Footnote control</a>
</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>
<ul>
<li><a href="#FINIS">FINIS</a>
@@ -239,14 +244,16 @@ arguments as
</ul>
<p>
<a href="definitions.html#TERMS_EPIGRAPH">Epigraphs</a>
-color, flavour, or comment on the text they precede. Typically,
-they are centered on the page and set in a smaller point size
-than that of paragraph text.
+color, flavour, or comment on the document they precede. Typically,
+they are centered at the top of a document's first page (underneath the
+title) and set in a smaller point size than that of paragraph text.
<p>
By default, <strong>mom</strong> sets epigraphs centered and
<a href="definitions.html#TERMS_NOFILL">unfilled</a>;
this lets you input them on a line for line basis. This behaviour
-can be changed to accomodate filled epigraph &quot;blocks.&quot;
+can be changed to accomodate
+<a href="definitions.html#TERMS_FILLED">filled</a>
+epigraph &quot;blocks.&quot;
<br>
<!---EPIGRAPH--->
@@ -306,7 +313,10 @@ See
(The next two apply to &quot;block&quot; style epigraphs only)
.EPIGRAPH_QUAD default = same as paragraphs
-.EPIGRAPH_INDENT default = para indent x 3 (for typeset), x 2 (for typewrite)
+.EPIGRAPH_INDENT* default = para indent x 3 (for typeset), x 2 (for typewrite)
+
+*Indent here refers to the indent from both the left and right margins
+ that centres the block style epigraph on the page.
</pre>
<hr>
@@ -1073,7 +1083,8 @@ to characters that don't sit on the
minus sign, and must include a unit of measure.
<p>
If you enter <strong>LINEBREAK_CHAR</strong> with no arguments,
-sections of text will be separated by two blank lines.
+sections of text will be separated by two blank lines when you invoke
+<strong>LINEBREAK</strong>.
<p>
<strong>Mom</strong>'s default for <strong>LINEBREAK_CHAR</strong> is
<p>
@@ -1354,6 +1365,7 @@ spacing policy for
<a name="FOOTNOTE_INTRO"><h2><u>Footnotes</u></h2></a>
<ul>
+ <li><a href="#FOOTNOTE_BEHAVIOUR">Footnote behaviour</a>
<li><a href="#FOOTNOTE">Tag: FOOTNOTE</a>
<li><a href="#FOOTNOTE_CONTROL">FOOTNOTE control macros</a>
</ul>
@@ -1470,7 +1482,7 @@ direction and indent value. <strong>L, R,</strong> and
<strong>B</strong> may be used in place of <strong>LEFT,
RIGHT,</strong> and <strong>BOTH</strong>.
<strong>FOOTNOTE</strong> must be invoked with <strong>INDENT</strong>
-for every footnote you want indented; <strong>Mom</strong> does
+for every footnote you want indented; <strong>mom</strong> does
not save any footnote indent information from invocation to
invocation.
<p>
@@ -1598,6 +1610,589 @@ is required.
<!====================================================================>
+<a name="ENDNOTE_INTRO"><h2><u>Endnotes</u></h2></a>
+<ul>
+ <li><a href="#ENDNOTE_BEHAVIOUR">Endnote behaviour</a>
+ <ul>
+ <li><a href="#ENDNOTE_SPACING">A Note on Endnote Spacing</a>
+ <li><a href="#ENDNOTE_COLUMNS">Endnotes and columnar documents</a>
+ </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>
+</ul>
+
+<p>
+Embedding endnotes into <strong>mom</strong> documents is accomplished
+the same way as embedding
+<a href="#FOOTNOTE_INTRO">footnotes</a>. The example below is
+identical to the one shown in the
+<a href="#FOOTNOTE_EXAMPLE">introduction to footnotes</a>,
+except that <kbd>.FOOTNOTE</kbd> has been replaced with
+<kbd>.ENDNOTE</kbd>.
+<p>
+<a name="ENDNOTE_EXAMPLE"></a>
+<pre>
+ ...the doctrines of Identity as urged by Schelling\c
+ .ENDNOTE
+ &lt;endnote about who the hell is Schelling&gt;
+ .ENDNOTE OFF
+ were generally the points of discussion presenting the most
+ of beauty to the imaginative Morella.
+</pre>
+
+As with footnotes, note the obligatory use of the <strong>\c</strong>
+<a href="definitions.html#TERMS_INLINES">inline escape</a>.
+<p>
+Endnotes differ from footnotes in two ways (other than the fact that
+endnotes come at the end of a document whereas footnotes appear in the
+body of the document):
+<br>
+<ol>
+ <li>Endnotes are always numbered incrementally throughout a
+ document. In other words, you don't get a choice of marker styles,
+ as you do with footnotes.
+ <li>Endnotes MUST be output explicitly; <strong>mom</strong> does
+ not output them for you. In
+ <a href="rectoverso.html#COLLATE">collated</a>
+ documents, this allows you to choose whether you
+ want the endnotes to appear at the end of each chapter or
+ section, or grouped together at the very end of the document.
+</ol>
+<p>
+Within endnotes, you may use the document element tags
+<a href="#PP">PP</a>,
+<a href="#QUOTE">QUOTE</a>
+and
+<a href="#BLOCKQUOTE">BLOCKQUOTE</a>.
+This provides the flexibility to create endnotes that run to several
+paragraphs, as well as to embed cited text within endnotes.
+<p>
+Should you wish to change the appearance of quotes or blockquotes that
+appear within endnotes, you may do so with the
+<a href="#QUOTE_CONTROL">quote control macros</a>
+or
+<a href="#BLOCKQUOTE_CONTROL">blockquote control macros</a>.
+HOWEVER... you must make the changes <em>within</em> each endnote, prior
+to invoking <strong>QUOTE</strong> or <strong>BLOCKQUOTE</strong>, and
+undo them prior to terminating the endnote (i.e. before <strong>ENDNOTE
+OFF</strong>), otherwise the changes will affect subsequent quotes and
+blockquotes that appear in the document body as well.
+
+<a name="ENDNOTE_BEHAVIOUR"><h3><u>Endnote behaviour</u></h3></a>
+<p>
+When you output endnotes (with
+<a href="#ENDNOTES">ENDNOTES</a>),
+<strong>mom</strong> finishes processing the last page of your document,
+then breaks to a new page for printing the endnotes. If the document
+type is
+<a href="docprocessing.html#DOCTYPE">CHAPTER</a>,
+the centre part of the
+<a href="definitions.html#TERMS_HEADER">header</a>
+(or footer), which, by default, contains a chapter number or title, is
+removed.
+<p>
+By default, <strong>mom</strong> starts the endnotes page with a
+bold, centered, double-underscored head, &quot;ENDNOTES&quot;.
+Underneath--flush left, bold, and underscored--she prints the document
+title (or, in the case of chapters, the chapter number or title). She
+then prints the endnotes. Each endnote is identified by its appropriate
+number, in bold, right aligned to two placeholders. The text of the
+endnotes themselves is indented to the right of the numbers.
+<p>
+If the endnotes are grouped together at the end of a collated document,
+each section of the document that contains endnotes is identified by its
+own unique title (or chapter number or title), bold, flush left, and
+underscored.
+<p>
+Of course, all the defaults, as well as the overall style of the
+endnotes page, can be changed with the
+<a href="#ENDNOTE_CONTROL">endnote control macros</a>.
+The attentive will notice that endnotes have an awful lot of control
+macros. This is because endnotes are like a mini-document unto
+themselves, and therefore need not be bound by the style parameters of
+the body of the document.
+
+<a name="ENDNOTE_SPACING">
+ <h3><u>A Note on Endnote Spacing</u></h3>
+</a>
+<p>
+On the endnotes page(s), each new endnote is separated from the
+previous endnote by a full line space. This can result in a bottom
+margin that hangs, and is the one instance, other than the use of
+<a href="#PP_SPACE">PARA_SPACE</a>,
+where <strong>mom</strong> allows unequal bottom alignment of pages.
+Should you wish to correct this, by adding or subtracting small amounts
+of space between endnotes that appear together on an endnote page, make
+the adjustment (with
+<a href="typesetting.html#ALD">ALD</a>,
+<a href="typesetting.html#RLD">RLD</a>
+or
+<a href="typesetting.html#SPACE">SPACE</a>)
+<em>at the end of each endnote</em> (i.e. just before invoking
+<a href="#ENDNOTE">ENDNOTE OFF</a>)
+rather than at the top.
+
+<a name="ENDNOTE_COLUMNS">
+ <h3><u>Endnotes and columnar documents</u></h3>
+</a>
+<p>
+At present, there is 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.
+<br>
+<hr>
+
+<!---ENDNOTE--->
+
+<p>
+<a name="ENDNOTE">
+ Macro: <strong>ENDNOTE</strong> <var>&lt;toggle&gt;</var>
+ <br>
+ <em>*See <a href="#ENDNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!
+</a>
+
+<p>
+<strong>ENDNOTE</strong> is a toggle macro, therefore invoking it
+on a line by itself allows you to enter an endnote in the body of a
+document. Invoking it with any other argument
+(i.e. <strong>OFF, QUIT, END, X...</strong>) tells <strong>mom</strong>
+that you've finished the endnote.
+<p>
+<strong>NOTE:</strong> If an endnote runs to more than one paragraph,
+<strong>DO NOT</strong> begin the endnote with the
+<a href="#PP">PP</a>
+tag. Use <strong>PP</strong> only to introduce subsequent paragraphs.
+<p>
+<a name="ENDNOTE_NOTE"><strong>HYPER-IMPORTANT NOTE:</strong></a>
+The final word on the
+<a href="definitions.html#TERMS_INPUTLINE">input line</a>
+that comes immediately before <strong>ENDNOTE</strong> MUST terminate
+with a
+<a href="typesetting.html#JOIN">\c</a>
+inline escape. Otherwise, the endnote number for the word won't be attached to
+it (i.e. <strong>mom</strong> will insert a word space between the word
+and the number). See the
+<a href="#ENDNOTE_EXAMPLE">endnote example</a>
+above.
+<br>
+
+<!---ENDNOTES--->
+
+<hr width="66%" align="left">
+<p>
+<a name="ENDNOTES">Macro: <strong>ENDNOTES</strong></a>
+
+<p>
+Unlike footnotes, which <strong>mom</strong> automatically outputs at the
+bottom of pages, endnotes must be explicitly output by you, the user.
+<strong>ENDNOTES</strong>, by itself (i.e. without any argument), is
+the macro to do this.
+<p>
+Typically, you'll use <strong>ENDNOTES</strong> at the end of
+a document. If it's a single (i.e. not collated) document,
+<strong>mom</strong> will print the endnotes pertaining to it. If it's
+a collated document, <strong>mom</strong> will print all the endnotes
+contained within all sections of the document (typically chapters),
+appropriately identified and numbered.
+<p>
+Should you wish to output the endnotes for each section of a collated
+document at the ends of the sections (instead of at the very end of the
+document), simply invoke <strong>ENDNOTES</strong> immediately prior to
+<a href="rectoverso.html#COLLATE">COLLATE</a>.
+<strong>Mom</strong> will print the endnotes, identified and numbered
+appropriately, on a separate page prior to starting the next section of
+the document. Each subsequent invocation of <strong>ENDNOTES</strong>
+outputs only those endnotes that <strong>mom</strong> collected
+after the previous invocation.
+<br>
+<hr width="66%" align="left">
+
+<a name="ENDNOTE_CONTROL"><h3><u>Endnote control macros</u></h3></a>
+<p>
+Every time you embed an endnote in the body of a document,
+<strong>mom</strong> collects <em>and processes</em> the endnote for
+later outputting when you invoke
+<a href="#ENDNOTES">ENDNOTES</a>.
+For this reason, endnote control macros should always be invoked prior
+to the first instance of
+<a href="#ENDNOTE">ENDNOTE/ENDNOTE OFF</a>.
+<br>
+<ol>
+ <li><a href="#ENDNOTES_GENERAL"><strong>General endnotes-pages style control</strong></a>
+ <ul>
+ <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="#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>
+ </ul>
+ <li><a href="#ENDNOTES_MAIN_TITLE"><strong>Endnotes-page head 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>
+ </ul>
+ <li><a href="#ENDNOTES_DOC_TITLE"><strong>Endnote document-identification title</strong></a>
+ <ul>
+ <li><a href="#ENDNOTE_TITLE">Creating/modifying the endnote document-identification title</a>
+ <li><a href="#ENDNOTE_TITLE_CONTROL">Document-identification title control</a>
+ <li><a href="#ENDNOTE_TITLE_UNDERSCORE">Document-identification title underscoring</a>
+ </ul>
+ <li><a href="#ENDNOTES_NUMBERING"><strong>Endnotes-pages endnote numbering style</strong></a>
+ <ul>
+ <li><a href="#ENDNOTE_NUMBER_CONTROL">Endnotes-pages endnote numbering style control</a>
+ <li><a href="#ENDNOTE_NUMBER_ALIGNMENT">Endnote numbering alignment</a>
+ <ul>
+ <li><a href="#ENDNOTE_NUMBERS_ALIGN_RIGHT">ENDNOTE_NUMBERS_ALIGN_RIGHT</a>
+ <li><a href="#ENDNOTE_NUMBERS_ALIGN_LEFT">ENDNOTE_NUMBERS_ALIGN_LEFT</a>
+ </ul>
+ </ul>
+</ol>
+<hr>
+
+<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>
+<p>
+See
+<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
+<p>
+<pre>
+.ENDNOTE_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_FONT default = roman
+.ENDNOTE_QUAD default = justified
+</pre>
+
+<!---ENDNOTE_PT_SIZE--->
+
+<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>
+
+<p>
+Unlike most other control macros that deal with size of document
+elements, <strong>ENDNOTE_PT_SIZE</strong> takes as its argument an
+absolute value, relative to nothing. Therefore, the argument represents
+the size of endnote 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>
+ .ENDNOTE_PT_SIZE 12
+</pre>
+
+sets the base point size of type on the endnotes page to 12
+points, whereas
+<p>
+<pre>
+ .ENDNOTE_PT_SIZE .6i
+</pre>
+
+sets the base point size of type on the endnotes page to 1/6 of an
+inch.
+<p>
+The type size set with <strong>ENDNOTE_PT_SIZE</strong> is the size of
+type used for the text of the endnotes, and forms the basis from which
+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).
+
+<!---ENDNOTE_LEAD--->
+
+<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>
+
+<p>
+Unlike most other control macros that deal with leading of document
+elements, <strong>ENDNOTE_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 endnotes 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>
+ .ENDNOTE_LEAD 14
+</pre>
+
+sets the base leading of type on the endnotes page to 14
+points, whereas
+<p>
+<pre>
+ .ENDNOTE_LEAD .5i
+</pre>
+
+sets the base leading of type on the endnotes page to 1/2 inch.
+<p>
+The default for
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>
+is 14 points.
+
+<!---ENDNOTE_PARA_INDENT--->
+
+<a name="ENDNOTE_PARA_INDENT"><h3><u>Endnote paragraph indent</u></h3></a>
+<p>
+Macro: <strong>ENDNOTE_PARA_INDENT</strong> <var>&lt;amount to indent first line of paragraphs in endnotes&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>ENDNOTE_PARA_INDENT</strong> works exactly the same way as
+<a href="#PARA_INDENT">PARA_INDENT</a>,
+except that the indent given is the amount by which to indent the first
+lines of endnote paragraphs, not document body paragraphs.
+<p>
+The default is 1.5
+<a href="definitions.html#TERMS_EM">ems</a>
+for
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>;
+1/2 inch for
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>.
+
+<p>
+<strong>NOTE:</strong> The first line of the first paragraph of endnotes
+(the one attached immediately to the identifying endnote number) is
+never indented. Only subsequent paragraphs are affected by
+<strong>ENDNOTE_PARA_INDENT</strong>.
+
+<!---ENDNOTE_PARA_SPACE--->
+
+<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>
+
+<p>
+<strong>ENDNOTE_PARA_SPACE</strong> works exactly the same way as
+<a href="#PP_SPACE">PARA_SPACE</a>,
+except that it inserts a blank line between endnote paragraphs, not
+document body paragraphs.
+<p>
+The default is not to insert a blank line between paragraphs in
+endnotes.
+<p>
+<strong>NOTE:</strong> Each endnote itself is always separated from any
+previous endnote by a line space. <strong>ENDNOTE_PARA_SPACE</strong>
+refers only to paragraphs that appear within each discrete endnote.
+
+<a name="ENDNOTES_MAIN_TITLE"><h2><u>2. Endnotes page head control</u></h2>
+
+<!---ENDNOTE_STRING--->
+
+<a name="ENDNOTE_STRING"><h3><u>Endnotes-page head string</u></h3></a>
+<p>
+Macro: <strong>ENDNOTE_STRING</strong> <var>&quot;&lt;head to print at the top of endnotes&gt;&quot;</var>
+
+<p>
+By default, <strong>mom</strong> prints the word &quot;ENDNOTES&quot;
+as a head at the top of the first page of endnotes. If you want her
+to print something else, invoke <strong>ENDNOTE_STRING</strong> with
+the endnotes-page head you want, surrounded by double-quotes. If
+you don't want a head at the top of the first endnotes-page, invoke
+<strong>ENDNOTE_STRING</strong> with a blank argument (either two
+double-quotes side by side -- <kbd>&quot;&quot;</kbd> -- or no argument
+at all).
+
+<!---ENDNOTE_STRING_CONTROL--->
+
+<a name="ENDNOTE_STRING_CONTROL"><h3><u>Endnotes-page head control</u></h3></a>
+<p>
+See
+<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
+<p>
+<pre>
+.ENDNOTE_STRING_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_STRING_FONT* default = bold
+.ENDNOTE_STRING_SIZE default = +1
+.ENDNOTE_STRING_QUAD default = centered
+
+*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
+</pre>
+
+<!---ENDNOTE_STRING_UNDERSCORE--->
+
+<a name="ENDNOTE_STRING_UNDERSCORE"><h3><u>Endnotes-page head underscoring</h3></u></a>
+<p>
+Macro: <strong>ENDNOTE_STRING_UNDERSCORE</strong> <var>toggle | 2</var>
+
+<p>
+Invoked by itself, <strong>ENDNOTE_STRING_UNDERSCORE</strong> will
+underscore the endnotes-page head. Invoked with the argument 2
+(i.e. the digit 2), <strong>ENDNOTE_STRING_UNDERSCORE</strong> will
+double-underscore the head. Invoked with any other argument, the macro
+disables underscoring of the head.
+<p>
+<strong>Mom</strong>'s default is to double-underscore the
+head, therefore if you want no underscoring, you must insert
+<kbd>.ENDNOTE_STRING_UNDERSCORE OFF</kbd> (or <kbd>QUIT, X, NO,
+NONE,</kbd> etc.) into your document prior to outputting endnotes with
+<a href="#ENDNOTES">ENDNOTES</a>.
+
+<!---ENDNOTE_TITLE--->
+
+<a name="ENDNOTES_DOC_TITLE"><h2><u>3. Endnote document-identification title</u></h2>
+<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>
+
+<p>
+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).
+
+<!---ENDNOTE_TITLE_CONTROL--->
+
+<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>.
+<p>
+<pre>
+.ENDNOTE_TITLE_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_TITLE_FONT default = bold
+.ENDNOTE_TITLE_SIZE* default = 0
+.ENDNOTE_TITLE_QUAD default = left
+
+*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
+</pre>
+
+<!---ENDNOTE_TITLE_UNDERSCORE--->
+
+<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.
+<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>4. Endnotes-pages endnote numbering style</u></h2>
+
+<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>.
+<p>
+Please note that the control macros for endnote numbering affect only
+the numbers that appear on the endnotes pages themselves, not the
+endnote numbers that appear in the body of the document(s).
+<p>
+<pre>
+.ENDNOTE_NUMBER_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_NUMBER_FONT default = bold
+.ENDNOTE_NUMBER_SIZE* default = 0
+
+*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>
+<p>
+By default, <strong>mom</strong> hangs the numbers on endnotes pages,
+aligned right to two placeholders, producing this:
+<p>
+<a name="ENDNOTE_NUMBERING_ALIGNMENT_EXAMPLE"></a>
+<pre>
+ 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+
+ 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+</pre>
+
+The macros to alter this behaviour are
+<br>
+<ul>
+ <li><a href="#ENDNOTE_NUMBERS_ALIGN_RIGHT"><strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong></a>
+ <li><a href="#ENDNOTE_NUMBERS_ALIGN_LEFT"><strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong></a>
+</ul>
+<br>
+<hr width="66%" align="left">
+
+<!---ENDNOTE_NUMBERS_ALIGN_RIGHT--->
+
+<p>
+<a name="ENDNOTE_NUMBERS_ALIGN_RIGHT">
+ Macro: <strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> <var>&lt;number of placeholders&gt;</var>
+</a>
+<p>
+<strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> takes one (non-optional)
+argument: the number of placeholders to reserve for right alignment of
+endnote numbers.
+<p>
+For example, if you have fewer than ten endnotes, you might want to do
+<p>
+<pre>
+ .ENDNOTE_NUMBERS_ALIGN_RIGHT 1
+</pre>
+
+which would ensure that the endnote numbers hang, but are all flush
+with the page's left margin. If, god help you, you have over a hundred
+endnotes, you'd want to do
+<p>
+<pre>
+ .ENDNOTE_NUMBERS_ALIGN_RIGHT 3
+</pre>
+
+to ensure that the numbers hang and are properly right-aligned.
+<br>
+<hr width="66%" align="left">
+
+<!---ENDNOTE_NUMBERS_ALIGN_LEFT--->
+
+<p>
+<a name="ENDNOTE_NUMBERS_ALIGN_LEFT">
+ Macro: <strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong>
+</a>
+<p>
+If you don't want the endnote numbers to hang and right-align, invoke
+<strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong>, which doesn't require any
+argument. This disables hanging and right-alignment of endnote numbers,
+so that the example
+<a href="#ENDNOTE_NUMBERING_ALIGNMENT_EXAMPLE">above</a>
+comes out like this:
+<p>
+<pre>
+ 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+
+ 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+</pre>
+
+<br>
+<hr>
+
+<!====================================================================>
+
<a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a>
<ul>
<li><a href="#FINIS">Tag: FINIS</a>
diff --git a/contrib/mom/momdoc/docprocessing.html b/contrib/mom/momdoc/docprocessing.html
index 64be7ea5..059d9665 100644
--- a/contrib/mom/momdoc/docprocessing.html
+++ b/contrib/mom/momdoc/docprocessing.html
@@ -132,6 +132,11 @@
<li><a href="docelement.html#FOOTNOTE">FOOTNOTE</a>
<li><a href="docelement.html#FOOTNOTE_CONTROL">Footnote control</a>
</ul>
+ <li><a href="docelement.html#ENDNOTE_INTRO"><strong>Endnotes</strong></a>
+ <ul>
+ <li><a href="docelement.html#ENDNOTE">ENDNOTE</a>
+ <li><a href="docelement.html#ENDNOTE_CONTROL">Endnote control</a>
+ </ul>
<li><a href="docelement.html#FINIS_INTRO"><strong>Document termination</strong></a>
<ul>
<li><a href="docelement.html#FINIS">FINIS</a>
@@ -189,13 +194,9 @@
<li><a href="letters.html#TUTORIAL">Tutorial on writing letters</a>
<li><a href="letters.html#LETTERS_DEFAULTS">Default style for letters</a>
<li><a href="letters.html#LETTERS_MACROS">The letter macros</a>
-
-
-
</ul>
</ul>
</ul>
-<br>
<hr>
<h2><a name="INTRO_MACROS_DOCPROCESSING"><u>Introduction to document processing</u></a></h2>
@@ -803,18 +804,21 @@ for how <strong>mom</strong>'s outputs each part of the page header.)
<strong>CHAPTER</strong> prints &quot;Chapter #&quot; in place of a
<a href="definitions.html#TERMS_DOCHEADER">docheader</a>
(# is what you gave to
-<a href="#CHAPTER">CHAPTER</a>).
-Page headers contain the author, the title of the book (which
-you gave with
+<a href="#CHAPTER">CHAPTER</a>),
+or, if you omit the <strong>CHAPTER</strong> macro and give the chapter
+a title with
+<a href="#CHAPTER_STRING">CHAPTER_STRING</a>,
+<strong>mom</strong> prints the chapter title. Page headers contain the
+author, the title of the book (which you gave with
<a href="#TITLE">TITLE</a>),
-and &quot;Chapter #&quot;. (See
+and &quot;Chapter #&quot; (or the chapter title). See
<a href="headfootpage.html#HEADER_STYLE">Default Specs for Headers</a>
for <strong>mom</strong>'s default type parameters for each part of
-the page header.)
+the page header.
<p>
<em>*See the
<a href="#CHAPTER_NOTE">Special Note on CHAPTER</a>
-below for how you can make CHAPTER print something
+below for how you can make DOCTYPE CHAPTER print something
other than &quot;Chapter #&quot; as its docheader.</em>
<p>
<strong>NAMED</strong> takes an additional argument: a name
@@ -840,23 +844,28 @@ introduced by &quot;Chapter #&quot;. Other types of documents
(reports and so on) often require specific titles for chapters.
If your document is of this latter type, use <strong>DOCTYPE
CHAPTER</strong> in the following way:
-<p>
+<br>
<ol>
<li>Omit the
<a href="#REFERENCE_MACROS">reference macro</a>
<a href="#CHAPTER">CHAPTER</a>
<li>Invoke
- <a href="#CHAPTER_STRING"><code>.CHAPTER_STRING</code></a>
+ <a href="#CHAPTER_STRING">.CHAPTER_STRING</a>
with the title you'd like the chapter to have (enclosed
in double-quotes, of course).
- <li>Optionally, if you'd like the chapter title to appear
- in the the center part of
- <a href="definitions.html#TERMS_HEADER">page headers</a>
- (its default location), invoke
- <a href="headfootpage.html#HDRFTR_CENTER"><code>.HEADER_CENTER</code></a>
- with the same title you gave to <strong>CHAPTER_STRING</strong>.
-
</ol>
+<p>
+Here's a recipe for setting up a chapter entitled &quot;The DMCA
+Nazis&quot;.
+<pre>
+ .AUTHOR &quot;Outraged Hacker&quot;
+ .TITLE &quot;Limiting Copyright&quot;
+ \#
+ .DOCTYPE CHAPTER
+ .PRINTSTYLE TYPESET
+ \#
+ .CHAPTER_STRING &quot;The DMCA Nazis&quot;
+</pre>
<br>
<!---PRINTSTYLE--->
diff --git a/contrib/mom/momdoc/goodies.html b/contrib/mom/momdoc/goodies.html
index 44e0085c..c95e7334 100644
--- a/contrib/mom/momdoc/goodies.html
+++ b/contrib/mom/momdoc/goodies.html
@@ -599,7 +599,10 @@ Basically, what the example does is:
to advance a line at this point)
<br>
<li>Calls the first string tab and draws a rule to its full
- length
+ length (<kbd>\l'\n(.lu'</kbd>; for an easier way to draw a rule
+ that fills a tab, see
+ <a href="inlines.html#INLINE_RULE_MOM">Full measure
+ rules</a>).
<br>
<li>Calls the second tab with
<a href="#TN">TN</a>
diff --git a/contrib/mom/momdoc/inlines.html b/contrib/mom/momdoc/inlines.html
index 8a19d308..ffc3b4ca 100644
--- a/contrib/mom/momdoc/inlines.html
+++ b/contrib/mom/momdoc/inlines.html
@@ -88,6 +88,7 @@ that take
<li><a href="#INLINE_KERNING_MOM">Pairwise kerning</a>
<li><a href="#INLINE_HORIZONTAL_MOM">Horizontal movement</a>
<li><a href="#INLINE_VERTICAL_MOM">Vertical movement</a>
+ <li><a href="#INLINE_RULE_MOM">Full measure rules</a>
</ul>
<li><a name="INLINES_GROFF"><strong>Groff inline escapes</strong></a>
<ul>
@@ -282,6 +283,32 @@ more than 12.75 points, or wish to use a
other than points, use the groff inline
<a href="#INLINE_VERTICAL_GROFF">\v</a>.
<br>
+
+<!---INLINE_RULE_MOM--->
+
+<hr width="66%" align="left">
+<a name="INLINE_RULE_MOM"><h3><u>Full measure rules</u></h3></a>
+
+<p>
+I find I often need rules drawn to the full measure of the current line
+or tab length. The official way to do this is <kbd>\l'\n(.lu'</kbd>,
+which is annoying to type, and doesn't mean a whole heck of a lot if
+you're new to groff. The inline, <strong>\*[RULE]</strong>, is a simple
+replacement for <strong>\l'\n(.lu'</strong>. Use it whenever you need
+a rule drawn to the full measure of the current line or tab length, for
+example:
+<p>
+<pre>
+ .LL 6P
+ \*[RULE]
+</pre>
+
+The above draws a rule the full measure of the 6-pica line length.
+<p>
+See groff's
+<a href="#INLINE_LINEDRAWING_GROFF">Horizontal line drawing function</a>
+for more information on drawing horizontal rules.
+<br>
<hr>
<!---INLINE_FONT_GROFF--->
@@ -436,6 +463,10 @@ Therefore, to set a 3-pica rule into a line of text, you'd do
<strong>\l'3P'</strong> above not only draws the rule, but
advances 3 picas horizontally as well, just as you'd expect.
<p>
+For an easy way of drawing rules to the full measure of the current
+line or tab length, see
+<a href="#INLINE_RULE_MOM">Full measure rules</a>.
+<p>
The weight (thickness) of rules varies according to the point size
in effect when you invoke <strong>\l</strong>, but you can't fix
the weight with any real precision. A point size of 12 produces
diff --git a/contrib/mom/momdoc/rectoverso.html b/contrib/mom/momdoc/rectoverso.html
index 161e475f..88e661ea 100644
--- a/contrib/mom/momdoc/rectoverso.html
+++ b/contrib/mom/momdoc/rectoverso.html
@@ -203,11 +203,11 @@ files, chances are the <strong>PRINTSTYLE</strong>'s already there.
<a name="CAUTION"></a>
<strong><u>Two words of caution:</u></strong>
<ol>
- <li>do not collate documents of differing
+ <li>Do not collate documents of differing
<strong>PRINTSTYLES</strong> (i.e. don't try to
collate a TYPESET document and TYPEWRITE document --
why would you want to do that anyway?)
- <li>use <strong>DOC_FAMILY</strong> instead of
+ <li>Use <strong>DOC_FAMILY</strong> instead of
<strong>FAMILY</strong> if, for some reason, you want
to change the family of all the document elements after
<strong>COLLATE</strong>. <strong>FAMILY</strong>, by
@@ -240,7 +240,6 @@ that require their own titles, looks like this:
<pre>
.COLLATE
.CHAPTER_STRING "Geek Fatigue: Symptoms and Causes"
- .HEADER_CENTER "Geek Fatigue: Symptoms and Causes"
.START
</pre>
diff --git a/contrib/mom/momdoc/reserved.html b/contrib/mom/momdoc/reserved.html
index ab7b7a77..b8041f38 100644
--- a/contrib/mom/momdoc/reserved.html
+++ b/contrib/mom/momdoc/reserved.html
@@ -7,23 +7,7 @@
<!====================================================================>
-<a href="appendices.html#TOP">Prev</a>&nbsp;&nbsp;
-<a href="toc.html">Back to Table of Contents</a>
-
-<a name="TOP"></a>
-<a name="RESERVED">
- <h2 align="center"><u>LIST OF RESERVED WORDS</u></h2>
-</a>
-
-<p>
-The following is a list of &quot;reserved&quot; words used by
-<strong>mom</strong>. Before changing the name of any macro or
-document element tag with
-<a href="goodies.html#ALIAS">ALIAS</a>,
-I strongly recommend doing a search of this page for your proposed
-new name. If you find it in the left hand column, DON'T USE IT.
-Choose something else instead.
-<p>
+<a href="appendices.html#TOP">Prev</a>&nbsp;&nbsp; <a href="toc.html">Back to Table of Contents</a> <a name="TOP"></a> <a name="RESERVED"> <h2 align="center"><u>LIST OF RESERVED WORDS</u></h2> </a> <p> The following is a list of &quot;reserved&quot; words used by <strong>mom</strong>. Before changing the name of any macro or document element tag with <a href="goodies.html#ALIAS">ALIAS</a>, I strongly recommend doing a search of this page for your proposed new name. If you find it in the left hand column, DON'T USE IT. Choose something else instead. <p>
Anyone interested in playing around inside <strong>mom</strong>'s macro
file (om.tmac) will find this list useful as well since it lists all
(I hope) the macros, strings, and number registers <strong>mom</strong>
@@ -185,6 +169,9 @@ c column mark
#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)
+#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
#H_INDENT Value of left indent when IH
#HL_INDENT Value of the hang when IH
#HYPHENATE Hyphenation on? (toggle)
@@ -227,6 +214,9 @@ p Output line horiz position at end of $PAD_STRING
#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
#SLANT_ON Is SLANT on? (toggle)
#SMART_QUOTES Smartquotes on? (toggle)
#SPACE_TO_END Whitespace at end of string passed to PAD
@@ -255,6 +245,9 @@ $DC_FAM Drop cap family
$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
$FONT Font
$PAD_MARKER Character to mark off padding in PAD
$PAD_STRING Arg passed to PAD
@@ -324,6 +317,7 @@ EXTEXT Extended superscript
EXT Pseudo-extend type
EXTSUPX Extended superscript off
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
SLANT Slant (pseudo-italic on
SLANTX Slant off
ST&lt;#&gt; String tab end marker
@@ -366,6 +360,8 @@ 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_NEXT Moves to next column on page or 1st col of next page
+ENDNOTE Endnote
+ENDNOTES Output endnotes
EPIGRAPH Epigraph before 1st para
FINIS Prints --END--
FOOTNOTE Collects footnotes in text for printing at bottom of page
@@ -418,6 +414,30 @@ 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)
+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_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_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_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_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_NUMBERS_ALIGN_RIGHT Hang endnote numbers and align right
+ENDNOTE_NUMBERS_ALIGN_LEFT Dont' hang endnote numbers and align left
EPIGRAPH_AUTOLEAD Autolead value for epigraphs
EPIGRAPH_FAMILY Family to use in epigraphs
EPIGRAPH_FONT Font to use in epigraphs
@@ -602,7 +622,19 @@ dc "mark" register for document columns
#DRAFT The draft number
#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_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_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_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)
+#ENDNOTE Are we in an endnote? (toggle)
#EPI_ACTIVE Are we in an epigraph? (toggle)
#EPI_DEPTH Depth of epigraph from first baseline to last
#EPI_FITS Does epigraph fit on page/column? (toggle)
@@ -671,6 +703,7 @@ dc "mark" register for document columns
#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
+#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)
@@ -709,8 +742,13 @@ dc "mark" register for document columns
#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
+#RESET_EN_PP Holds value of register #EN_PP_INDENT
#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_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
#REVISION The revision number
#RIGHT_CAP_HEIGHT Cap height of right string in headers/footers
@@ -760,6 +798,22 @@ $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*
$DRAFT_STRING What to print whenever the word "draft" is required
+$EN_FAMILY Family for endnotes
+$EN_FT Font for endnotes
+$EN_QUAD Quad for endnotes
+$EN_STRING Endnotes page head
+$EN_STRING_FAM Endnotes page head family
+$EN_STRING_FT Endnotes page head font
+$EN_STRING_QUAD Endnotes page head quad direction
+$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_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_FAM Family to use in epigraphs
$EPI_FT Font to use in epigraphs
@@ -818,8 +872,9 @@ $TITLE_SIZE_CHANGE ps in/decrease of title in doc header*
$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 #DOC_PT_SIZE
+ **relative to overall ps of headers as set by HEADER_SIZE
+***relative to overall ps of endnotes
+++PREPROCESSOR KEYWORDS+++
diff --git a/contrib/mom/momdoc/toc.html b/contrib/mom/momdoc/toc.html
index 62404177..e3dccf17 100644
--- a/contrib/mom/momdoc/toc.html
+++ b/contrib/mom/momdoc/toc.html
@@ -154,7 +154,8 @@
<li><a href="docelement.html#QUOTE_INTRO">5.4.8 Quotes</a> -- line for line poetic quotes
<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#FINIS_INTRO">5.4.11 Document termination</a> -- FINIS
+ <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
</ul>
<li><a href="headfootpage.html#HEADFOOTPAGE"><strong>5.5 DOCUMENT HEADERS AND FOOTERS</strong></a>
<ul>
diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac
index bc041a51..4f9839f2 100644
--- a/contrib/mom/om.tmac
+++ b/contrib/mom/om.tmac
@@ -23,7 +23,11 @@
.\"
.
.
-\# Version 1.1.2a
+\# Version 1.1.3
+\# -------------
+\#
+.if (\n[.x]\n[.y] < 118) \
+. ab You need GNU troff version 1.18 or higher to run this version of mom!
\#
\# Inasmuch as possible, macros that turn a feature on or off follow
\# a similar style. Invoking the macro without an argument turns
@@ -73,8 +77,8 @@
\#
\# ====================================================================
\#
-\# END MACRO
-\# ---------
+\# END MACRO FOR LETTERS
+\# ---------------------
\# *Arguments:
\# none
\# *Function:
@@ -187,7 +191,7 @@
. nr #T_MARGIN_SET 1
. if !\\n[#DOCS] \{\
. PRINT \&
-. sp |\\n[#T_MARGIN]u-1v
+. sp |\\n[#T_MARGIN]u-1v
. \}
. wh 0i DO_T_MARGIN
.END
@@ -233,14 +237,14 @@
. el \{ .R_MARGIN \\$4 \}
. if !'\\$5'' \{ .T_MARGIN \\$5 \}
. if !'\\$6'' \{ .B_MARGIN \\$6 \}
-.END
+.END
\#
\# =====================================================================
\#
\# +++PAGE CONTROL+++
\#
\# Generic macros for breaking pages.
-\#
+\#
\# DO_T_MARGIN
\# -----------
\# *Argument:
@@ -414,7 +418,7 @@
. nr #AUTO_LEAD 1
. nr #AUTOLEAD_VALUE (p;\\$1)
. ie \\n[#NUM_ARGS]=2 \{\
-. if '\\$2'FACTOR' \{
+. if '\\$2'FACTOR' \{\
. nr #AUTOLEAD_FACTOR 1
. vs \\n[#PT_SIZE]u*\\n[#AUTOLEAD_VALUE]u/1000u
. \}
@@ -438,6 +442,11 @@
.ds PREV \EfP
.ds S \Es
\#
+\# ADDITIONAL STRINGS
+\# ------------------
+.ds RULE \El'\En(.lu'
+\#
+\#
\# =====================================================================
\#
\# +++KERNING+++
@@ -454,7 +463,7 @@
. kern
. nr #KERN 1
. \}
-. el \{
+. el \{\
. kern 0
. nr #KERN 0
. \}
@@ -474,15 +483,13 @@
\#
\# N.B.--the amount of inline kerning supplied by \*[BU#] or
\# \*[FU#] is added to or subtracted from any kerning that already
-\# takes place between two characters when automatice kerning is
+\# takes place between two characters when automatic kerning is
\# turned on.
\#
-\# Owing to some stupidities of groff, it is not possible
-\# pass arguments to macros that are executed with inline
-\# escapes, nor thence to evaluate conditional expressions.
-\# Consequently, each pseudo-escape \[BU#] must be defined
-\# separately with ".char". I'd have prefered something like
-\# this
+\# In groff v. 1.17.2, it is not possible to pass arguments to macros that
+\# are executed with inline escapes, nor thence to evaluate conditional
+\# expressions. Consequently, each pseudo-escape \[BU#] must be defined
+\# separately with ".char". I'd have prefered something like this
\#
\# .de BU
\# \c
@@ -1042,7 +1049,8 @@
\#
\# Sadly, EL is only a fake. It will work in all instances EXCEPT
\# when the line to be EL'd is the last line before a footer trap.
-\#
+\# Use TRAP OFF/TRAP to circumvent this.
+\#
.MAC EL END
. br
. sp -1v
@@ -1289,7 +1297,7 @@
\# TAB SET
\# -------
\# *Arguments:
-\# <#> ident(ipPcm) length(ipPcm) [L | R | C | J [QUAD]]
+\# <#> ident(ipPcm) length(ipPcm) [L | R | C | J [QUAD]]
\# *Function:
\# Creates macros TAB<#> and TAB <#>, where # is any arbitrary number.
\# TAB# is a typesetting tab (i.e. a tab defined as an indent
@@ -1340,7 +1348,7 @@
\#
\# Tabs themselves are user-invoked using the TAB macro with a numeric
\# argument, e.g. TAB 1.
-\#
+\#
\# Generally, in order not to get confused, it's a good idea
\# to make sure all indents are off before setting tabs.
\#
@@ -1403,7 +1411,7 @@
\# *Notes:
\# If the tabs being aligned fall too close to the footer
\# trap, the line entered after .TN will appear on the next page.
-\#
+\#
.MAC TN END
. br
. nr #NEXT_TAB \\n[#CURRENT_TAB]+1
@@ -1492,29 +1500,37 @@
. char X _X
. char Y _Y
. char Z _Z
-. char À _À
-. char  _Â
-. char Á _Á
-. char Ä _Ä
-. char Å _Å
-. char È _È
-. char Ê _Ê
-. char É _É
-. char Ë _Ë
-. char Ì _Ì
-. char Î _Î
-. char Í _Í
-. char Ï _Ï
-. char Ñ _Ñ
-. char Ò _Ò
-. char Ô _Ô
-. char Ó _Ó
-. char Ö _Ö
-. char Ø _Ø
-. char Ù _Ù
-. char Û _Û
-. char Ú _Ú
-. char Ü _Ü
+. char \[`A] _\[`A]
+. char \[^A] _\[^A]
+. char \['A] _\['A]
+. char \[:A] _\[:A]
+. char \[oA] _\[oA]
+. char \[~A] _\[~A]
+. char \[AE] _\[AE]
+. char \[`E] _\[`E]
+. char \[^E] _\[^E]
+. char \['E] _\['E]
+. char \[:E] _\[:E]
+. char \[`I] _\[`I]
+. char \[^I] _\[^I]
+. char \['I] _\['I]
+. char \[:I] _\[:I]
+. char \[`O] _\[`O]
+. char \[^O] _\[^O]
+. char \['O] _\['O]
+. char \[:O] _\[:O]
+. char \[~O] _\[~O]
+. char \[/O] _\[/O]
+. char \[`U] _\[`U]
+. char \[^U] _\[^U]
+. char \['U] _\['U]
+. char \[:U] _\[:U]
+. char \[,C] _\[,C]
+. char \[-D] _\[-D]
+. char \[~N] _\[~N]
+. char \[TP] _\[TP]
+. char \['Y] _\['Y]
+. char \[:Y] _\[:Y]
. char a _a
. char b _b
. char c _c
@@ -1541,30 +1557,38 @@
. char x _x
. char y _y
. char z _z
-. char à _à
-. char â _â
-. char á _á
-. char ä _ä
-. char å _å
-. char è _è
-. char ê _ê
-. char é _é
-. char ë _ë
-. char ì _ì
-. char î _î
-. char í _í
-. char ï _ï
-. char ñ _ñ
-. char ò _ò
-. char ô _ô
-. char ó _ó
-. char ö _ö
-. char ø _ø
-. char ß _ß
-. char ù _ù
-. char û _û
-. char ú _ú
-. char ü _ü
+. char \[`a] _\[`a]
+. char \[^a] _\[^a]
+. char \['a] _\['a]
+. char \[:a] _\[:a]
+. char \[oa] _\[oa]
+. char \[~a] _\[~a]
+. char \[ae] _\[ae]
+. char \[`e] _\[`e]
+. char \[^e] _\[^e]
+. char \['e] _\['e]
+. char \[:e] _\[:e]
+. char \[`i] _\[`i]
+. char \[^i] _\[^i]
+. char \['i] _\['i]
+. char \[:i] _\[:i]
+. char \[`o] _\[`o]
+. char \[^o] _\[^o]
+. char \['o] _\['o]
+. char \[:o] _\[:o]
+. char \[~o] _\[~o]
+. char \[/o] _\[/o]
+. char \[`u] _\[`u]
+. char \[^u] _\[^u]
+. char \['u] _\['u]
+. char \[:u] _\[:u]
+. char \[,c] _\[,c]
+. char \[Sd] _\[Sd]
+. char \[~n] _\[~n]
+. char \[Tp] _\[Tp]
+. char \['y] _\['y]
+. char \[:y] _\[:y]
+. char \[ss] _\[ss]
. char ' _'
. char 1 _1
. char 2 _2
@@ -1580,9 +1604,13 @@
. el \{\
. nr #UNDERLINE_ON 0
. rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
- À Â Á Ä Å È Ê É Ë Ì Î Í Ï Ñ Ò Ô Ó Ö Ø Ù Û Ú Ü \
a b c d e f g h i j k l m n o p q r s t u v w x y z \
- à â á ä å è ê é ë ì î í ï ñ ò ô ó ö ø ß ù û ú ü ' \
+ \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \
+ \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \
+ \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \
+ \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \
+ \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \
+ \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \
1 2 3 4 5 6 7 8 9 0
. \}
.END
@@ -1599,7 +1627,7 @@
\# Intended to be called with inline escapes \*[UL] (underline
\# on) and \*[ULX] (underline off). Only works when the font family
\# is COURIER, to simulate typewriter-style underlining of italic
-\# passages.
+\# passages.
\#
.MAC UL END
\c\R'#UNDERLINE_ON 1'
@@ -1629,29 +1657,37 @@
. char X _X
. char Y _Y
. char Z _Z
-. char À _À
-. char  _Â
-. char Á _Á
-. char Ä _Ä
-. char Å _Å
-. char È _È
-. char Ê _Ê
-. char É _É
-. char Ë _Ë
-. char Ì _Ì
-. char Î _Î
-. char Í _Í
-. char Ï _Ï
-. char Ñ _Ñ
-. char Ò _Ò
-. char Ô _Ô
-. char Ó _Ó
-. char Ö _Ö
-. char Ø _Ø
-. char Ù _Ù
-. char Û _Û
-. char Ú _Ú
-. char Ü _Ü
+. char \[`A] _\[`A]
+. char \[^A] _\[^A]
+. char \['A] _\['A]
+. char \[:A] _\[:A]
+. char \[oA] _\[oA]
+. char \[~A] _\[~A]
+. char \[AE] _\[AE]
+. char \[`E] _\[`E]
+. char \[^E] _\[^E]
+. char \['E] _\['E]
+. char \[:E] _\[:E]
+. char \[`I] _\[`I]
+. char \[^I] _\[^I]
+. char \['I] _\['I]
+. char \[:I] _\[:I]
+. char \[`O] _\[`O]
+. char \[^O] _\[^O]
+. char \['O] _\['O]
+. char \[:O] _\[:O]
+. char \[~O] _\[~O]
+. char \[/O] _\[/O]
+. char \[`U] _\[`U]
+. char \[^U] _\[^U]
+. char \['U] _\['U]
+. char \[:U] _\[:U]
+. char \[,C] _\[,C]
+. char \[-D] _\[-D]
+. char \[~N] _\[~N]
+. char \[TP] _\[TP]
+. char \['Y] _\['Y]
+. char \[:Y] _\[:Y]
. char a _a
. char b _b
. char c _c
@@ -1678,30 +1714,38 @@
. char x _x
. char y _y
. char z _z
-. char à _à
-. char â _â
-. char á _á
-. char ä _ä
-. char å _å
-. char è _è
-. char ê _ê
-. char é _é
-. char ë _ë
-. char ì _ì
-. char î _î
-. char í _í
-. char ï _ï
-. char ñ _ñ
-. char ò _ò
-. char ô _ô
-. char ó _ó
-. char ö _ö
-. char ø _ø
-. char ß _ß
-. char ù _ù
-. char û _û
-. char ú _ú
-. char ü _ü
+. char \[`a] _\[`a]
+. char \[^a] _\[^a]
+. char \['a] _\['a]
+. char \[:a] _\[:a]
+. char \[oa] _\[oa]
+. char \[~a] _\[~a]
+. char \[ae] _\[ae]
+. char \[`e] _\[`e]
+. char \[^e] _\[^e]
+. char \['e] _\['e]
+. char \[:e] _\[:e]
+. char \[`i] _\[`i]
+. char \[^i] _\[^i]
+. char \['i] _\['i]
+. char \[:i] _\[:i]
+. char \[`o] _\[`o]
+. char \[^o] _\[^o]
+. char \['o] _\['o]
+. char \[:o] _\[:o]
+. char \[~o] _\[~o]
+. char \[/o] _\[/o]
+. char \[`u] _\[`u]
+. char \[^u] _\[^u]
+. char \['u] _\['u]
+. char \[:u] _\[:u]
+. char \[,c] _\[,c]
+. char \[Sd] _\[Sd]
+. char \[~n] _\[~n]
+. char \[Tp] _\[Tp]
+. char \['y] _\['y]
+. char \[:y] _\[:y]
+. char \[ss] _\[ss]
. char ' _'
. char 1 _1
. char 2 _2
@@ -1719,9 +1763,13 @@
.MAC ULX END
\c\R'#UNDERLINE_ON 0'
. rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
- À Â Á Ä Å È Ê É Ë Ì Î Í Ï Ñ Ò Ô Ó Ö Ø Ù Û Ú Ü \
a b c d e f g h i j k l m n o p q r s t u v w x y z \
- à â á ä å è ê é ë ì î í ï ñ ò ô ó ö ø ß ù û ú ü ' \
+ \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \
+ \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \
+ \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \
+ \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \
+ \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \
+ \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \
1 2 3 4 5 6 7 8 9 0
.END
\#
@@ -1996,26 +2044,33 @@
.MAC PAD END
. if !d$PAD_MARKER \{ .ds $PAD_MARKER # \}
. char \\*[$PAD_MARKER] \R'#PAD_COUNT \En[#PAD_COUNT]+1'
+. ds $FAMILY_FOR_PAD \\n[.fam]
+. nr #FONT_FOR_PAD \\n(.f
+. nr #SIZE_FOR_PAD \\n[.ps]
. ds $PAD_STRING \\$1
. as $PAD_STRING \Ekp
. di PAD_STRING
-\\*[$PAD_STRING]
+. fam \\*[$FAMILY_FOR_PAD]
+\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING]
. br
. di
. char \\*[$PAD_MARKER] \R'#SPACE_TO_END \En(.l-\Enp'\R'#PAD_SPACE \En[#SPACE_TO_END]/\En[#PAD_COUNT]'
. di PAD_STRING
-\\*[$PAD_STRING]
+. fam \\*[$FAMILY_FOR_PAD]
+\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING]
. br
. di
. char \\*[$PAD_MARKER] \h'\En[#PAD_SPACE]u'
. ie \\n[#SILENT] \{\
. SILENT
-\\*[$PAD_STRING]
+. fam \\*[$FAMILY_FOR_PAD]
+\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING]
. br
. SILENT OFF
. \}
. el \{\
-\\*[$PAD_STRING]
+. fam \\*[$FAMILY_FOR_PAD]
+\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING]
. br
. \}
. rr #PAD_COUNT
@@ -2179,8 +2234,8 @@
. if '\\$3'EXT' \{ \E*[EXTX]\c \}
. rt \\nxu
. FAM \\*[$RESTORE_FAM]
-. FT \\n[#RESTORE_FT]
-. ps \\n[#RESTORE_PT_SIZE]u
+. FT \\n[#RESTORE_FT]
+. ps \\n[#RESTORE_PT_SIZE]u
. CONDENSE \\*[$RESTORE_COND]
. EXTEND \\*[$RESTORE_EXT]
. ie \\n(.u \{ .wh \\n(.du+\\n[#DC_HEIGHT]u-1v DROPCAP_OFF \}
@@ -2277,14 +2332,14 @@
\# and hanging. Each is set/invoked with a different macro.
\# Indent macros begin with the letter "I", hence .IL means "indent left,"
\# .IR means "indent right," and so on.
-\#
+\#
\# The first time any of the indent macros is used, it requires an
\# argument--the size of the indent in ipPcm. The size may also
\# be entered using the \w'#' function--very useful for numbered
\# lists using HI). The unit of measure is required. Subsequent
\# invocations don't require the argument; the indent measure remains the
\# same until it's changed by invoking the macro with an argument again.
-\#
+\#
\# If no indents are in effect, the arguments passed to indent macros are
\# measured from the left and right margins of the page. If a left indent
\# or a right indent is already in effect, the arguments passed to
@@ -2306,7 +2361,7 @@
\# ...some text...
\# .IL
\# ...some text...
-\#
+\#
\# The first .IL 2P indents text 2P from the left margin. The second
\# .IL 2P indents text by an additional 2P, i.e. 4P from the left margin.
\# .IX turns the indent off. The last .IL (which has no argument)
@@ -2315,7 +2370,7 @@
\# margin, i.e. 4P. If you wanted the last .IL to indent just 2P,
\# you'd either have to reset the .IL prior to .IX (.IL -2P), or pass
\# the last .IL the argument 2P.
-\#
+\#
\# To reverse the sense of an indent added to an indent, you may use
\# negative values.
\#
@@ -2335,7 +2390,7 @@
\# the user wishes to clear the values, the I<LRB>X macros should be
\# invoked with the single argument CLEAR. IX CLEAR clears out
\# the values stored for all indent styles.
-\#
+\#
\# Indents *must* be turned off before settting string tabs
\# inside PAD. Generally, in order not to get confused, it's a
\# good idea to turn all indents off before setting any tabs.
@@ -2484,7 +2539,7 @@
. br
. in 0
. rr #INDENT_LEFT_ACTIVE
-. if '\\$1'CLEAR' \{
+. if '\\$1'CLEAR' \{\
. rr #L_INDENT
. rr #INDENT_STYLE_LEFT
. \}
@@ -2610,7 +2665,7 @@
\# =====================================================================
\#
\# +++MULTIPLE COLUMNS+++
-\#
+\#
\# MULTIPLE COLUMNS ON
\# -------------------
\# *Arguments:
@@ -2760,6 +2815,7 @@
. tr ñ\[~N]
. tr þ\[TP]
. tr ý\['Y]
+. tr ÿ\[:Y]
. nr #CAPS_ON 1
. \}
. el \{\
@@ -2794,6 +2850,7 @@
. tr ñ\[~n]
. tr þ\[Tp]
. tr ý\['y]
+. tr ÿ\[:y]
. rr #CAPS_ON
. \}
.END
@@ -3100,7 +3157,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Sets registers that are used to determine what to put
\# in the default header, and how to number pages.
\# *Notes:
-\# DOCTYPE must come before COPYSTYLE.
+\# DOCTYPE must come before COPYSTYLE.
\#
.MAC COPYSTYLE END
. ds $COPY_STYLE \\$1
@@ -3147,19 +3204,34 @@ y\\R'#DESCENDER \\n[.cdp]'
. el \{ .PAGENUM_STYLE roman \}
. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
. ie \\n[#DRAFT_WITH_PAGENUM] \{\
-. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
+. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \}
. \}
. el \{\
. ie !\\n[#REVISION] \{\
-. ds $HDRFTR_CENTER \
- \\*[$CHAPTER_STRING] \\*[$CHAPTER], \
- \\*[$DRAFT_STRING] \\n[#DRAFT]
+. ie '\\*[$CHAPTER]'' \{\
+. ds $HDRFTR_CENTER \
+ \\*[$CHAPTER_STRING], \
+ \\*[$DRAFT_STRING] \\n[#DRAFT]
+. \}
+. el \{\
+. ds $HDRFTR_CENTER \
+ \\*[$CHAPTER_STRING] \\*[$CHAPTER], \
+ \\*[$DRAFT_STRING] \\n[#DRAFT]
+. \}
. \}
. el \{\
+. ie '\\*[$CHAPTER]'' \{\
+. el \{\
+ \\*[$CHAPTER_STRING], \
+ \\*[$DRAFT_STRING] \\n[#DRAFT], \
+ \\*[$REVISION_STRING] \\n[#REVISION]
+. \}
. ds $HDRFTR_CENTER \
- \\*[$CHAPTER_STRING] \\*[$CHAPTER], \
- \\*[$DRAFT_STRING] \\n[#DRAFT], \
- \\*[$REVISION_STRING] \\n[#REVISION]
+ \\*[$CHAPTER_STRING] \\*[$CHAPTER], \
+ \\*[$DRAFT_STRING] \\n[#DRAFT], \
+ \\*[$REVISION_STRING] \\n[#REVISION]
+. \}
. \}
. \}
. \}
@@ -3168,7 +3240,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
. el \{ .PAGENUM_STYLE DIGIT \}
-. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \}
+. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. \}
. \}
. \}
@@ -3197,7 +3270,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. el \{\
-. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{
+. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
. el \{ .PAGENUM_STYLE DIGIT \}
. ds $HDRFTR_CENTER \\*[$DOC_TYPE]
@@ -3270,7 +3343,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# DOCUMENT TYPE
\# -------------
\# *Argument:
-\# DEFAULT | CHAPTER | NAMED "<whatever> | LETTER
+\# DEFAULT | CHAPTER | NAMED "<whatever> | LETTER
\# *Function:
\# Creates strings and sets registers for document types.
\# *Notes:
@@ -3472,7 +3545,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. ds $PP_FT \\*[$FONT]
\# Counters
. nr #PP 0
-. nr #FN_NUMBER 0 1
+. nr #FN_NUMBER 0 1
+. nr #EN_NUMBER 0 1
. nr #FN_COUNT_FOR_COLS 0 1
. RESET_HEAD_NUMBER
. RESET_SUBHEAD_NUMBER
@@ -3505,6 +3579,27 @@ 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_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_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \}
+. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \}
+. if !d$EN_TITLE \{\
+. ie \\n[#DOC_TYPE]=2 \{\
+. ie '\\*[$CHAPTER]'' \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING]" \}
+. el \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]" \}
+. \}
+. 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 \}
+. \}
\# String defaults for both PRINTSTYLEs
. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \}
. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT \\*[$AUTHOR_1] \}
@@ -3526,7 +3621,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#UNDERLINE_SLANT]=1 \{ .UNDERLINE_SLANT \}
. el \{ .UNDERLINE_SLANT OFF \}
. \}
-. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \}
+. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \}
+. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT \\n[#PP_INDENT] \}
. \}
\# Defaults for printstyle TYPESET
. if \\n[#PRINT_STYLE]=2 \{\
@@ -3564,8 +3660,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -2 \}
. \}
. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -.5 \}
-. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P \}
-. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p \}
. if !d$HEAD_FAM \{ .HEAD_FAMILY \\*[$DOC_FAM] \}
. if !d$HEAD_FT \{ .HEAD_FONT B \}
. if !d$HEAD_SIZE_CHANGE \{ .HEAD_SIZE +1 \}
@@ -3592,8 +3686,19 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !d$EPI_QUAD \{ .EPIGRAPH_QUAD \\*[$DOC_QUAD] \}
. if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 3 \}
. if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 3p \}
+. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P \}
+. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p \}
. 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_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_NUMBER_FT \{ .ENDNOTE_NUMBER_FONT B \}
+. if !$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE 0 \}
+. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \}
. \}
. TRAPS
. if \\n[#PRINT_STYLE]=1 \{ .nr #IGNORE 1 \}
@@ -3616,7 +3721,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Notes:
\# The .PRINT \& (zero-width character) is required to get the
\# subsequent .sp request to work as advertised.
-\#
+\#
\# The overall document line length, family, and point-size
\# are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for
\# use in the HEADER and FOOTER macros.
@@ -3679,7 +3784,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
-. ps 12
+. ps 12
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. CAPS
@@ -3756,7 +3861,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \\n+[#DOCHEADER_LINES]
. \}
. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#AUTHOR_LINES]=1 \{
+. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
@@ -3788,10 +3893,14 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. CAPS
-. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
+. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \}
+. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. CAPS OFF
. \}
-. if \\n[#PRINT_STYLE]=2 \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \}
+. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
+. \}
. ev
. \}
\# Named
@@ -3806,7 +3915,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
-. ps 12
+. ps 12
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. CAPS
@@ -3883,7 +3992,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \\n+[#DOCHEADER_LINES]
. \}
. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#AUTHOR_LINES]=1 \{
+. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
@@ -3905,7 +4014,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
-. el \{
+. el \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
@@ -3997,7 +4106,7 @@ y\\R'#DESCENDER \\n[.cdp]'
.MAC DOCHEADER END
. ie '\\$1'' \{ .nr #DOC_HEADER 1 \}
. el \{\
-. if \\$2 \{ .nr #ADVANCE_FROM_TOP (\\$2) \}
+. if !'\\$2'' \{ .nr #ADVANCE_FROM_TOP (\\$2) \}
. nr #DOC_HEADER 0
. \}
.END
@@ -5681,7 +5790,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. DOC_LEFT_MARGIN \\n[#DOC_R_MARGIN]u
. DOC_RIGHT_MARGIN \\n[#DOC_LR_MARGIN_TMP]u
. \}
-. ev HEADER
+. ev HEADER
. if \\n[#PRINT_STYLE]=1 \{ .vs 0 \}
. if \\n[#PRINT_STYLE]=2 \{ .LS 0 \}
. sp |\\n[#HEADER_MARGIN]u-1v
@@ -5689,7 +5798,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ta \\n(.lu
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$HDRFTR_FAM]
-. FT R
+. FT R
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE]
. \}
. if \\n[#PRINT_STYLE]=1 \{\
@@ -5725,7 +5834,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. po \\n[#L_MARGIN]u
. if \\n[#RECTO_VERSO] \{\
. nr #L_MARGIN +\\n[#L_MARGIN_DIFF]
-. po \\n[#L_MARGIN]u
. \}
. if \\n[#CAPS_WAS_ON] \{\
. CAPS
@@ -5859,8 +5967,7 @@ y\\R'#DESCENDER \\n[.cdp]'
.MAC FOOTER END
. ev PAGE_BOTTOM
. nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN]
-. nr #RESTORE_OFFSET \\n(.o
-. if !\\n[#FN_DEFER] \{\ \"i.e. no defer (do not defer footnote processing to next page or column)
+. if !\\n[#FN_DEFER] \{\
. nr #DIVER_DEPTH 0
. if \\n[#FN_COUNT] \{\
. sp |\\n[#PAGE_LENGTH]u-(\\n[#B_MARGIN]u+\\n[#FN_DEPTH]u)
@@ -5929,7 +6036,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ll \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. FAMILY \\*[$HDRFTR_FAM]
-. FT R
+. FT R
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE]
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
@@ -6214,7 +6321,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #ARG_NUM 0 1
. nr #HEAD 1
. ev HEAD
-. ll \\n[#L_LENGTH]u
+. ll \\n[#L_LENGTH]u
. ta \\n(.lu
. if \\n[#COLUMNS] \{\
. ll \\n[#COL_L_LENGTH]u
@@ -6256,7 +6363,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#PP_SPACE] \{\
. ie \\n[#END_QUOTE] \{ . \}
. el \{\
-. if !\\n[#LINEBREAK] \{
+. if !\\n[#LINEBREAK] \{\
. if \\n[#HEAD_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. \}
@@ -6403,7 +6510,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#QUOTE \{ .rr #QUOTE \}
. if r#Q_AT_TOP \{ .rr #Q_AT_TOP \}
. ev SUBHEAD
-. ll \\n[#L_LENGTH]u
+. ll \\n[#L_LENGTH]u
. ta \\n(.lu
. if \\n[#COLUMNS] \{\
. ll \\n[#COL_L_LENGTH]u
@@ -6609,7 +6716,7 @@ y\\R'#DESCENDER \\n[.cdp]'
.MAC PARAHEAD END
. if \\n[#SLANT_ON] \{\
. nr #SLANT_WAS_ON 1
-. \\*[SLANTX]\c
+\E*[SLANTX]
. \}
. ie \\n[#PP]=1 \{\
. if \\n[#INDENT_FIRST_PARAS] \{\
@@ -6653,7 +6760,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#SLANT_WAS_ON] \{\
. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \}
. if \\n[#SLANT_MEANS_SLANT] \{\
-. \\*[SLANT]\c
+\E*[SLANT]\c
. \}
. rr #SLANT_WAS_ON
. \}
@@ -6690,7 +6797,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. PT_SIZE \\n[#DOC_PT_SIZE]u
. if \\n[#SLANT_WAS_ON] \{\
. rr #SLANT_WAS_ON 1
-. \\*[SLANT]\c
+\E*[SLANT]\c
. \}
. \}
. rr #NUMBERED
@@ -6794,7 +6901,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Notes:
\# Default for printstyle TYPEWRITE is 1/2-inch. Default for
\# printstyle TYPESET is 2 ems. The defaults are set in
-\# ydocs_printstyle, not in ydocs_defaults.
+\# PRINTSTYLE, not DEFAULTS.
\#
.MAC PARA_INDENT END
. nr #PP_INDENT (\\$1)
@@ -6886,10 +6993,15 @@ y\\R'#DESCENDER \\n[.cdp]'
. rr #PP_ACTIVE
. if r#Q_AT_TOP \{ .rr #Q_AT_TOP \}
. if \\n[#PP_STYLE]=1 \{\
+. if \\n[#ENDNOTE] \{\
+. nr #RESET_PARA_SPACE \\n[#PP_SPACE]
+. ie \\n[#EN_PP_SPACE] \{ .PARA_SPACE \}
+. el \{ .PARA_SPACE OFF \}
+. \}
. br
-. po \\n[#L_MARGIN]u
+. if !\\n[#ENDNOTE] \{ .po \\n[#L_MARGIN]u \}
. if \\n[#COLUMNS] \{\
-. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u
+. if !\\n[#ENDNOTE] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \}
. \}
. if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \}
. ie \\n[#PRINT_STYLE]=1 \{\
@@ -6904,22 +7016,37 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. el \{\
-. FAMILY \\*[$DOC_FAM]
-. FT \\*[$PP_FT]
-. PT_SIZE \\n[#DOC_PT_SIZE]u
-. LS \\n[#DOC_LEAD]u
-. QUAD \\*[$DOC_QUAD]
+. ie \\n[#ENDNOTE] \{\
+. FAMILY \\*[$EN_FAM]
+. FT \\*[$EN_FT]
+. PT_SIZE \\n[#EN_PS]u
+. LS \\n[#DOC_LEAD]u
+. QUAD \\*[$EN_QUAD]
+. \}
+. el \{\
+. FAMILY \\*[$DOC_FAM]
+. FT \\*[$PP_FT]
+. PT_SIZE \\n[#DOC_PT_SIZE]u
+. LS \\n[#DOC_LEAD]u
+. QUAD \\*[$DOC_QUAD]
+. \}
. \}
. ie \\n[#PP]=0 \{\
. if \\n[#INDENT_FIRST_PARAS] \{\
. ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \}
. el \{ .ti \\n[#PP_INDENT]u \}
+. if '\\n(.z'END_NOTES' \{\
+. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u
+. \}
. \}
. if r#END_QUOTE \{\
. if \\n[#END_QUOTE] \{\
. if !\\n[#LINEBREAK] \{\
. ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \}
. el \{ .ti \\n[#PP_INDENT]u \}
+. if '\\n(.z'END_NOTES' \{\
+. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u
+. \}
. \}
. \}
. \}
@@ -6936,6 +7063,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \}
. el \{ .ti \\n[#PP_INDENT]u \}
+. if '\\n(.z'END_NOTES' \{\
+. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u
+. \}
. \}
. if r#START \{ .rr #START \}
. if r#QUOTE \{ .rr #QUOTE \}
@@ -6944,6 +7074,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
. 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 \}
+. \}
. if \\n[#CONDENSE] \{\
\E*[COND]\c
. \}
@@ -6953,9 +7087,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #PP +1
. \}
. if \\n[#PP_STYLE]=2 \{\
-\!. br
+\!. br
. if \\n[#BROKEN_QUOTE] \{\
-. ie \\n(nl=\\n[#PAGE_TOP] \{ .nr #Q_PP 1\}
+. ie \\n(nl=\\n[#PAGE_TOP] \{ .nr #Q_PP 1 \}
. el \{ .nr #Q_PP 0 \}
. rr #BROKEN_QUOTE
. \}
@@ -6963,6 +7097,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#INDENT_FIRST_PARAS] \{\
. ti \\n[#PP_INDENT]u/2u
. \}
+. if \\n[#ENDNOTE] \{\
+. ie \\n[#INDENT_FIRSTS] \{ .ti \\n[#PP_INDENT]u/2u \}
+. el \{ .ti 0 \}
+. \}
. \}
. el \{\
. ti \\n[#PP_INDENT]u/2u
@@ -7085,7 +7223,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Notes:
\# Owing to the need to bottom align TYPESET pages, quoted text gets
\# diverted so its depth can be measured (in DO_QUOTE) for determining
-\# how much space to put before and after.
+\# how much space to put before and after.
\#
.MAC QUOTE END
. br
@@ -7118,7 +7256,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #Q_TOP \\n(nl
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_QUOTES] \{\
-\#. UNDERLINE
. FT I
. \}
. \}
@@ -7198,7 +7335,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# *Notes:
\# Owing to the need to bottom align TYPESET pages, quoted text gets
\# diverted so its depth can be measured (in DO_QUOTE) for determining
-\# how much space to put before and after.
+\# how much space to put before and after.
\#
\# .PP after blockquote is optional if there's only one para,
\# but REQUIRED if there's more than one.
@@ -7212,10 +7349,26 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #Q_PP 0
. di B_QUOTE
. ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. if \\n[#ENDNOTE] \{\
+. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. ll \\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. \}
+. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
+. ll \\n[#L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. \}
+. \}
. ta \\n(.lu
. CHECK_INDENT
. if \\n[#COLUMNS] \{\
. ll \\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. if \\n[#ENDNOTE] \{\
+. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. ll \\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. \}
+. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
+. ll \\n[#COL_L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u))
+. \}
+. \}
. ta \\n(.lu
. \}
. if \\n[#PRINT_STYLE]=1 \{\
@@ -7231,13 +7384,24 @@ y\\R'#DESCENDER \\n[.cdp]'
. FT \\*[$BQUOTE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$BQUOTE_SIZE_CHANGE]
. LS \\n[#DOC_LEAD]u
+. if \\n[#ENDNOTE] \{\
+. PT_SIZE \\n[#EN_PS]u\\*[$BQUOTE_SIZE_CHANGE]
+. \}
. QUAD \\*[$BQUOTE_QUAD]
. HY
. \}
. nr #Q_TOP \\n(nl
. if \\n[#INDENT_FIRST_PARAS] \{\
-. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#PP_INDENT]u/2u \}
-. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#PP_INDENT]u/2u \}
+. ie !\\n[#ENDNOTE] \{\
+. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#PP_INDENT]u/2u \}
+. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#PP_INDENT]u/2u \}
+. \}
+. el \{\
+. if \\n[#INDENT_FIRSTS]=1 \{\
+. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#EN_PP_INDENT]u/2u \}
+. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#EN_PP_INDENT]u/2u \}
+. \}
+. \}
. \}
. \}
. el \{ .DO_QUOTE \}
@@ -7262,6 +7426,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. REMOVE_INDENT
. ev
\# **Change *1 to *2 in next line to prevent orphans after quotes
+. if \\n[#ENDNOTE] \{\
+. nr #RESET_QUOTE_SPACING \\n[#FULLSPACE_QUOTES]
+. ALWAYS_FULLSPACE_QUOTES
+. \}
. nr #Q_DEPTH \\n[#DIVER_DEPTH]+(\\n[#LEAD]*1)
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#START]=1 \{ . \}
@@ -7277,9 +7445,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#HEAD]>0 \{ . \}
. el \{\
. ie \\n[#START] \{ . \}
-. el \{\
-. if !\\n[#LINEBREAK] \{ .ALD \\n[#DOC_LEAD]u \}
-. \}
+. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. \}
. el \{\
@@ -7289,7 +7455,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. el \{\
. ie \\n[#START] \{ . \}
. el \{\
-. ie \\n[#FULLSPACE_QUOTES] \{ .ALD \\n[#DOC_LEAD]u \}
+. ie \\n[#FULLSPACE_QUOTES] \{\
+. ALD \\n[#DOC_LEAD]u
+. \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
@@ -7299,13 +7467,18 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie r#HEAD \{\
. if \\n[#HEAD]=1 \{ . \}
. \}
-. el \{ .ALD \\n[#DOC_LEAD]u \}
+. el \{ .ALD \\n[#EN_LEAD]u \}
. \}
. \}
. \}
. nr #Q_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE])
-. if \\n[#COLUMNS] \{ .nr #Q_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE]) \}
-. po \\n[#Q_OFFSET]u
+. if \\n[#COLUMNS] \{\
+. nr #Q_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE])
+. \}
+. if !\\n[#ENDNOTE] \{ .po \\n[#Q_OFFSET]u \}
+. if \\n[#ENDNOTE] \{\
+. in +\\n[#EN_PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u
+. \}
. if \\n[#QUOTE]=1 \{\
. nf
. P_QUOTE
@@ -7343,19 +7516,37 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. \}
+. if \\n[#ENDNOTE] \{ .nr #FULLSPACE_QUOTES \\n[#RESET_QUOTE_SPACING] \}
. if r#HEAD \{ .rr #HEAD \}
. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
. rr #Q_PP
. rr #LINEBREAK
. nr #PP_STYLE 1
. nr #END_QUOTE 1
-. po \\n[#L_MARGIN]u
-. if \\n[#COLUMNS] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \}
-. nr #RESET_PP_INDENT \\n[#PP_INDENT]
-. PARA_INDENT 0
-. PP
-. PARA_INDENT \\n[#RESET_PP_INDENT]
-. QUAD \\*[$DOC_QUAD]
+. if !\\n[#ENDNOTE] \{ .po \\n[#L_MARGIN]u \}
+. if \\n[#ENDNOTE] \{\
+. in \\n[#EN_TEXT_INDENT]u
+. \}
+. if \\n[#COLUMNS] \{\
+. if !\\n[#ENDNOTE] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \}
+. if \\n[#ENDNOTE] \{\
+. in \\n[#EN_TEXT_INDENT]u
+. \}
+. \}
+. ie !\\n[#ENDNOTE] \{\
+. nr #RESET_PP_INDENT \\n[#PP_INDENT]
+. PARA_INDENT 0
+. PP
+. PARA_INDENT \\n[#RESET_PP_INDENT]u
+. QUAD \\*[$DOC_QUAD]
+. \}
+. el \{\
+. nr #RESET_EN_PP_INDENT \\n[#EN_PP_INDENT]
+. ENDNOTE_PARA_INDENT 0
+. PP
+. ENDNOTE_PARA_INDENT \\n[#RESET_EN_PP_INDENT]u
+. QUAD \\*[EN_QUAD]
+. \}
.END
\#
\# ====================================================================
@@ -7722,7 +7913,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #FN_MARKER_STYLE 1
. \}
. if '\\$1'NUMBER' \{\
-. nr #FN_MARKER_STYLE 2
+. nr #FN_MARKER_STYLE 2
. \}
.END
\#
@@ -7826,6 +8017,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#FN_MARKERS] \{\
. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
. if \\n[#EXTEND] \{ \*[EXTX]\c \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. if \\n[#UNDERLINE_ON] \{\
+. nr #UNDERLINE_WAS_ON 1
+. UNDERLINE OFF
+. \}
+. \}
. if !\\n[#NO_FN_MARKER] \{\
. if \\n[#FN_MARKER_STYLE]=1 \{\
. ie \\n[#FN_COUNT_FOR_COLS] \{\
@@ -7969,6 +8166,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. br
. di
. in 0 \"Turn off indent possibly set by FOOTNOTE INDENT...
+. if \\n[#PRINT_STYLE]=1 \{\
+. if \\n[#UNDERLINE_WAS_ON] \{\
+. UNDERLINE
+. rr #UNDERLINE_WAS_ON
+. \}
+. \}
. ev
. rr #FN_R_INDENT
. rr #FN_BR_INDENT
@@ -8002,11 +8205,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. nr #NO_FN_MARKER 0
-. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#SLANT_ON] \{\
-. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \}
-. \}
-. \}
.END
\#
\#
@@ -8058,6 +8256,616 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
\# ====================================================================
\#
+\# +++ENDNOTES+++
+\#
+\# When endnotes are output, the spacing between the notes is always 1
+\# extra linespace. This can have bottom margin consequences. If this
+\# doesn't bother you, don't worry about it. If it does bother you, and
+\# you want to adjust the spacing between any two endnotes (as they're
+\# output), make the spacing adjustments (.ALD/.RLD) at the *end* of
+\# endnotes (i.e. just before .ENDNOTE OFF), not at the top.
+\#
+\# Endnotes must be output manually with .ENDNOTES. This allows user
+\# the flexibility to output endnotes at the end of each collated
+\# document, or to output them at the end of the entire document.
+\#
+\# ENDNOTE FAMILY
+\# --------------
+\# *Argument:
+\# <family to use in endnotes>
+\# *Function:
+\# Creates or modifies string $EN_FAM.
+\# *Notes:
+\# Default is same as running text in body of document.
+\#
+.MAC ENDNOTE_FAMILY END
+. ds $EN_FAM \\$1
+.END
+\#
+\#
+\# ENDNOTE FONT
+\# ------------
+\# *Argument:
+\# <font to use in endnotes>
+\# *Function:
+\# Creates or modifies string $EN_FT.
+\# *Notes:
+\# Default is roman.
+\#
+.MAC ENDNOTE_FONT END
+. ds $EN_FT \\$1
+.END
+\#
+\#
+\# ENDNOTE POINT SIZE
+\# ------------------
+\# *Argument:
+\# <base point size for endnotes>
+\# *Function:
+\# Creates or modifies register #EN_PS.
+\# *Notes:
+\# Default is same as running text in body of document.
+\#
+\# This size control macro differs from other size control macros
+\# in that it sets an absolute point size, not a relative one. This
+\# is because a) endnotes always appear separate from the body of
+\# a document and therefore don't need to be relative to the body
+\# of the document, and b) there are quite a few elements of the
+\# endnotes page(s) that need to be relative to the base point size
+\# of that page. If the base endnote point size were relative to
+\# the body of the document (i.e. a _SIZE macro taking a +|- value)
+\# getting the rest of the endnote elements sized properly could
+\# become very confusing.
+\#
+.MAC ENDNOTE_PT_SIZE END
+. nr #EN_PS (p;\\$1)
+.END
+\#
+\#
+\# ENDNOTE LEAD
+\# ------------
+\# *Argument:
+\# <base leading to use in endnotes>
+\# *Function:
+\# Creates or modifies register #EN_LEAD.
+\# *Notes:
+\# Default is 13.5 points for TYPESET; 24 for TYPEWRITE.
+\#
+.MAC ENDNOTE_LEAD END
+. nr #EN_LEAD (p;\\$1)
+.END
+\#
+\#
+\# ENDNOTE QUAD
+\# ------------
+\# *Argument:
+\# LEFT | L | CENTER | C | RIGHT | R | JUSTIFY | J
+\# *Function:
+\# Creates or modifies string $EN_QUAD.
+\# *Notes:
+\# Default is justified for TYPESET, left for TYPEWRITE.
+\#
+.MAC ENDNOTE_QUAD END
+. ds $EN_QUAD \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING
+\# --------------
+\# *Argument:
+\# <title for endnotes page>
+\# *Function:
+\# Creates or modifies string $EN_STRING.
+\# *Notes:
+\# Default is "ENDNOTES"
+\#
+.MAC ENDNOTE_STRING END
+. ds $EN_STRING \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING FAMILY
+\# ---------------------
+\# *Argument:
+\# <family to use for endnote string>
+\# *Function:
+\# Creates or modifies string $EN_STRING_FAM.
+\# *Notes:
+\# Default is same as running text in body of document.
+\#
+.MAC ENDNOTE_STRING_FAMILY END
+. ds $EN_STRING_FAM \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING FONT
+\# -------------------
+\# *Argument:
+\# <font to use for endnote string>
+\# *Function:
+\# Creates or modifies string $EN_FT.
+\# *Notes:
+\# Default is BOLD for TYPEWRITE; roman for TYPESET
+\#
+.MAC ENDNOTE_STRING_FONT END
+. ds $EN_STRING_FT \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING SIZE
+\# -------------------
+\# *Argument:
+\# <+|- number of points by which to in/decrease endnote string
+\# (relative to base endnote size)>
+\# *Function:
+\# Creates or modifies string $EN_STRING_SIZE_CHANGE.
+\# *Notes:
+\# Default is +1 for TYPESET.
+\#
+.MAC ENDNOTE_STRING_SIZE END \"Default for TYPESET is +1
+. ds $EN_STRING_SIZE_CHANGE \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING QUAD
+\# -------------------
+\# *Argument:
+\# LEFT | L | CENTER | C | RIGHT | R
+\# *Function:
+\# Creates or modifies string $EN_STRING_QUAD.
+\# *Notes:
+\# Default is centered.
+\#
+.MAC ENDNOTE_STRING_QUAD END
+. ds $EN_STRING_QUAD \\$1
+.END
+\#
+\#
+\# ENDNOTE STRING UNDERSCORE
+\# -------------------------
+\# *Arguments:
+\# toggle | 2
+\# *Function:
+\# Turns underscoring of endnote main title on or off. If the argument
+\# is the digit "2", turns on double-underscoring.
+\# *Notes:
+\# Default is double-underscored.
+\#
+.MAC ENDNOTE_STRING_UNDERSCORE END
+. ie '\\$1'' \{ .nr #EN_STRING_UNDERSCORE 1 \}
+. el \{\
+. ie '\\$1'2' \{ .nr #EN_STRING_UNDERSCORE 2 \}
+. el \{ .rr #EN_STRING_UNDERSCORE \}
+. \}
+.END
+\#
+\#
+\# ENDNOTE TITLE
+\# -------------
+\# *Argument:
+\# <string that appears before the first endnote pertaining to any document>
+\# *Function:
+\# Creates string $EN_TITLE_STRING.
+\# *Notes:
+\# Default is the document title, or, if doc is a chapter, "Chapter #"
+\#
+.MAC ENDNOTE_TITLE END
+. ds $EN_TITLE \\$1
+.END
+\#
+\#
+\# ENDNOTE TITLE FAMILY
+\# --------------------
+\# *Argument:
+\# <family to use for endnote title>
+\# *Function:
+\# Creates string $EN_TITLE_FAM.
+\# *Notes:
+\# Default is same as running text of document.
+\#
+.MAC ENDNOTE_TITLE_FAMILY END
+. ds $EN_TITLE_FAM \\$1
+.END
+\#
+\#
+\# ENDNOTE TITLE FONT
+\# ------------------
+\# *Argument:
+\# <font to use for endnote title>
+\# *Function:
+\# Creates string $EN_TITLE_FT.
+\# *Notes:
+\# Default is bold for TYPESET; roman for TYPEWRITE.
+\#
+.MAC ENDNOTE_TITLE_FONT END
+. ds $EN_TITLE_FT \\$1
+.END
+\#
+\#
+\# ENDNOTE TITLE SIZE
+\# ------------------
+\# *Argument:
+\# <+|- number of points by which to in/decrease endnote title
+\# (relative to base endnote size)>
+\# *Function:
+\# Creates string $EN_TITLE_SIZE_CHANGE.
+\# *Notes:
+\# Default is 0 (i.e. title same size as text of endnotes).
+\#
+.MAC ENDNOTE_TITLE_SIZE END
+. ds $EN_TITLE_SIZE_CHANGE \\$1
+.END
+\#
+\#
+\# ENDNOTE TITLE QUAD
+\# ------------------
+\# *Argument:
+\# <quad direction of endnote title>
+\# *Function:
+\# Creates string $EN_TITLE_QUAD.
+\# *Notes:
+\# Default is left.
+\#
+.MAC ENDNOTE_TITLE_QUAD END
+. ds $EN_TITLE_QUAD \\$1
+.END
+\#
+\#
+\# ENDNOTE TITLE UNDERSCORE
+\# ------------------------
+\# *Argument:
+\# toggle
+\# *Function:
+\# Creates or removes register #EN_TITLE_UNDERSCORE.
+\# *Notes:
+\# Default is to underscore the endnote titles.
+\#
+.MAC ENDNOTE_TITLE_UNDERSCORE END
+. ie '\\$1'' \{ .nr #EN_TITLE_UNDERSCORE 1 \}
+. el \{ .rr #EN_TITLE_UNDERSCORE \}
+.END
+\#
+\#
+\# ENDNOTE NUMBER FAMILY
+\# ---------------------
+\# *Argument:
+\# <family to use for endnote numbers on endnotes page>
+\# *Function:
+\# Creates string $EN_NUMBER_FAM.
+\# *Notes:
+\# Default is same as running text of document.
+\#
+\# Family, font, and size of endnote numbers applies only to the
+\# numbers as they appear on the endnotes page(s). The superscript
+\# numbers that appear in running text are unaffected.
+\#
+.MAC ENDNOTE_NUMBER_FAMILY END
+. ds $EN_NUMBER_FAM \\$1
+.END
+\#
+\#
+\# ENDNOTE NUMBER FONT
+\# -------------------
+\# *Argument:
+\# <font to use for endnote numbers on endnotes page>
+\# *Function:
+\# Creates string $EN_NUMBER_FT.
+\# *Notes:
+\# Default is bold for TYPESET; roman for TYPEWRITE.
+\#
+\# Family, font, and size of endnote numbers applies only to the
+\# numbers as they appear on the endnotes page(s). The superscript
+\# numbers that appear in running text are unaffected.
+\#
+.MAC ENDNOTE_NUMBER_FONT END \"Default for TYPESET is bold
+. ds $EN_NUMBER_FT \\$1
+.END
+\#
+\#
+\# ENDNOTE NUMBER SIZE
+\# -------------------
+\# *Argument:
+\# <+|- number of points by which to in/decrease endnote numbers
+\# (relative to base endnote size)>
+\# *Function:
+\# Creates string $EN_NUMBER_SIZE_CHANGE.
+\# *Notes:
+\# Default is 0.
+\#
+\# Family, font, and size of endnote numbers applies only to the
+\# 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
+. ds $EN_NUMBER_SIZE_CHANGE \\$1
+.END
+\#
+\#
+\# ENDNOTE NUMBERS ALIGN RIGHT
+\# ---------------------------
+\# *Argument:
+\# <max. number of digit placeholders that will appear in endnotes>
+\# *Function:
+\# Toggles register #EN_NUMBERS_ALIGN_RIGHT on; creates register
+\# #EN_NUMBER_PLACEHOLDERS.
+\# *Notes:
+\# Default is for footnote numbers to be right aligned to 2 placeholders.
+\#
+.MAC ENDNOTE_NUMBERS_ALIGN_RIGHT END
+. rr #EN_NUMBERS_ALIGN_LEFT
+. nr #EN_NUMBERS_ALIGN_RIGHT 1
+. nr #EN_NUMBER_PLACEHOLDERS \\$1
+.END
+\#
+\#
+\# ENDNOTE NUMBERS ALIGN LEFT
+\# --------------------------
+\# *Argument:
+\# none
+\# *Function:
+\# Toggles register #EN_NUMBERS_ALIGN_LEFT on.
+\# *Notes:
+\# Default is for footnote numbers to be right aligned to 2 placeholders
+\# (i.e. not left aligned).
+\#
+.MAC ENDNOTE_NUMBERS_ALIGN_LEFT END
+. rr #EN_NUMBERS_ALIGN_RIGHT
+. nr #EN_NUMBERS_ALIGN_LEFT 1
+.END
+\#
+\#
+\# ENDNOTE PARAGRAPH INDENT
+\# ------------------------
+\# *Argument:
+\# <first line indent of paras subsequent to 1st in endnotes>
+\# *Function:
+\# Creates register #EN_PP_INDENT for use in .PP.
+\# *Notes:
+\# Requires a unit of measure.
+\#
+\# Default is 1.5m for TYPESET; same indent as PARA_INDENT for TYPEWRITE.
+\#
+.MAC ENDNOTE_PARA_INDENT END
+. nr #EN_PP_INDENT (\\$1)
+.END
+\#
+\#
+\# ENDNOTE PARAGRAPH SPACE
+\# -----------------------
+\# *Argument:
+\# toggle
+\# *Function:
+\# Creates toggle register #EN_PP_SPACE for use in .PP.
+\# *Notes:
+\# Like PARA_SPACE. Default is not to space endnote paras.
+\#
+.MAC ENDNOTE_PARA_SPACE END
+. ie '\\$1'' \{ .nr #EN_PP_SPACE 1 \}
+. el \{ .rr #EN_PP_SPACE \}
+.END
+\#
+\#
+\# ENDNOTE
+\# -------
+\# *Argument:
+\# toggle
+\# *Function:
+\# Places superscript endnote number in text, then collects and
+\# processes endnote in diversion END_NOTES.
+\# *Notes:
+\# \c must be appended to the word immediately preceding .ENDNOTE.
+\#
+.MAC ENDNOTE END
+. ie '\\$1'' \{\
+. nr #ENDNOTE 1
+. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
+. if \\n[#EXTEND] \{ \*[EXTX]\c \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. if \\n[#UNDERLINE_ON] \{\
+. nr #UNDERLINE_WAS_ON 1
+. UNDERLINE OFF
+. \}
+. if \\n[#SLANT_ON] \{\
+. nr #SLANT_WAS_ON 1
+\*[SLANTX]\c
+. \}
+. 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
+. ta \\n(.lu
+. \}
+. if \\n[#EN_NUMBER]=1 \{\
+\!. ne 3
+. if !'\\*[$EN_STRING]'' \{ .sp \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_TITLE_FAM]
+. FT \\*[$EN_TITLE_FT]
+. PT_SIZE \\n[#EN_PS]u\\*[$EN_TITLE_SIZE_CHANGE]
+. \}
+. if !'\\*[$EN_TITLE]'' \{\
+. if '\\*[$EN_TITLE_QUAD]'L' \{ .LEFT \}
+. if '\\*[$EN_TITLE_QUAD]'LEFT' \{ .LEFT \}
+. if '\\*[$EN_TITLE_QUAD]'C' \{ .CENTER \}
+. if '\\*[$EN_TITLE_QUAD]'CENTER' \{ .CENTER \}
+. if '\\*[$EN_TITLE_QUAD]'CENTRE' \{ .CENTER \}
+. if '\\*[$EN_TITLE_QUAD]'R' \{ .RIGHT \}
+. if '\\*[$EN_TITLE_QUAD]'RIGHT' \{ .RIGHT \}
+. ie \\n[#EN_TITLE_UNDERSCORE] \{\
+. UNDERSCORE "\\*[$EN_TITLE]
+. \}
+. el \{\
+. PRINT "\\*[$EN_TITLE]
+. \}
+. \}
+. \}
+. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. ie \\n[#EN_NUMBER]=1 \{\
+. if !'\\*[$EN_TITLE]'' \{ .sp \}
+. \}
+. el \{ .sp \}
+\!. TRAP OFF
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_NUMBER_FAM]
+. FT \\*[$EN_NUMBER_FT]
+. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE]
+. \}
+. nr #RESET_L_LENGTH \\n(.l
+. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]+\w'.'
+. ll \\n[#EN_NUMBER_L_LENGTH]u
+. RIGHT
+\En[#EN_NUMBER].
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_FAM]
+. FT \\*[$EN_FT]
+. PT_SIZE \\n[#EN_PS]u
+. \}
+. EL
+. ll \\n[#RESET_L_LENGTH]u
+. in \\n[#EN_NUMBER_L_LENGTH]u+\w'.\0'u
+. nr #EN_TEXT_INDENT \\n(.i
+. QUAD \\*[$EN_QUAD]
+\!. TRAP
+. \}
+. el \{\
+. ie \\n[#EN_NUMBER]=1 \{\
+. if !'\\*[$EN_TITLE]'' \{ .sp \}
+. \}
+. el \{ .sp \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_NUMBER_FAM]
+. FT \\*[$EN_NUMBER_FT]
+. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE]
+. \}
+. QUAD \\*[$EN_QUAD]
+\En[#EN_NUMBER].\0\c
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_FAM]
+. FT \\*[$EN_FT]
+. PT_SIZE \\n[#EN_PS]u
+. \}
+. \}
+. \}
+. el \{\
+. br
+. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. in 0
+. \}
+. di
+. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
+. 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
+. UNDERLINE
+. \}
+. \}
+. if \\n[#SLANT_WAS_ON] \{\
+. rr #SLANT_WAS_ON
+\*[SLANT]\c
+. \}
+. \}
+.END
+\#
+\#
+\# ENDNOTES
+\# --------
+\# *Arguments:
+\# none
+\# *Function:
+\# Sets new document leading from #EN_LEAD, breaks to a new page,
+\# sets up an endnotes page based on registers and strings associated
+\# with endnotes, then outputs diversion END_NOTES.
+\#
+.MAC ENDNOTES END
+. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
+. if \\n[#PRINT_STYLE]=2 \{ .DOC_LEAD \\n[#EN_LEAD]u ADJUST \}
+. if \\n[#DOC_TYPE]=2 \{ .HDRFTR_CENTER \}
+. NEWPAGE
+. if \\n[#SLANT_ON] \{\
+\*[SLANTX]\c
+. \}
+. if !'\\*[$EN_STRING]'' \{\
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. ft R
+. ps 12
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_STRING_FAM]
+. FT \\*[$EN_STRING_FT]
+. PT_SIZE \\n[#EN_PS]u\\*[$EN_STRING_SIZE_CHANGE]
+. \}
+. if '\\*[$EN_STRING_QUAD]'L' \{ .LEFT \}
+. if '\\*[$EN_STRING_QUAD]'LEFT' \{ .LEFT \}
+. if '\\*[$EN_STRING_QUAD]'C' \{ .CENTER \}
+. if '\\*[$EN_STRING_QUAD]'CENTER' \{ .CENTER \}
+. if '\\*[$EN_STRING_QUAD]'CENTRE' \{ .CENTER \}
+. if '\\*[$EN_STRING_QUAD]'R' \{ .RIGHT \}
+. if '\\*[$EN_STRING_QUAD]'RIGHT' \{ .RIGHT \}
+. EL
+. ie \\n[#EN_STRING_UNDERSCORE] \{\
+. ie \\n[#EN_STRING_UNDERSCORE]=2 \{\
+. UNDERSCORE2 "\\*[$EN_STRING]
+. \}
+. el \{\
+. UNDERSCORE "\\*[$EN_STRING]
+. \}
+. \}
+. el \{\
+. PRINT "\\*[$EN_STRING]
+. \}
+. \}
+. ev EN
+. nf
+. vs \\n[#DOC_LEAD]u
+. END_NOTES
+. br
+. ev
+. rm END_NOTES
+. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
+.END
+\#
+\# ====================================================================
+\#
\# +++COLUMNS+++
\#
\# COLUMNS
@@ -8130,7 +8938,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
\# N.B.--the START macro *must* be used after COLLATE (and any other
\# macros that alter mom's behaviour).
-\#
+\#
.MAC COLLATE END
. nr #COLLATE 1
. nr #HEADER_STATE \\n[#HEADERS_ON]
@@ -8144,13 +8952,17 @@ y\\R'#DESCENDER \\n[.cdp]'
. LL \\n[#DOC_L_LENGTH]u
. QUAD $DOC_QUAD
. LS \\n[#DOC_LEAD]u
+\*[SLANTX]
+\*[CONDX]
+\*[EXTX]
. NEWPAGE
. rr #PAGENUM_STYLE_SET
+. rm $EN_TITLE
.END
\#
\#
\# SET TRAPS FOR HEADERS/FOOTERS/FOOTNOTES
-\# ---------------------------------------
+\# ---------------------------------------
\# *Arguments:
\# <none>
\# *Function:
@@ -8163,12 +8975,14 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC TRAPS END
\# *Remove all header/footer traps
-. ch DO_T_MARGIN
-. ch DO_B_MARGIN
-. ch HEADER
-. ch FOOTER
+. if !\\n[#NO_TRAP_RESET] \{\
+. ch DO_T_MARGIN
+. ch DO_B_MARGIN
+. ch HEADER
+. ch FOOTER
\# *Plant header trap
-. wh 0 HEADER
+. wh 0 HEADER
+. \}
\# *Adjust lead so last line of text falls on B_MARGIN,...
. ie \\n[#ADJ_DOC_LEAD] \{\
. nr #LINES_PER_PAGE 0 1
@@ -8188,13 +9002,15 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #B_MARGIN \\n[#PAGE_LENGTH]-(\\n[#T_MARGIN]+(\\n[#DOC_LEAD]*\\n[#LINES_PER_PAGE]))
. \}
\# *Set footer and footnote overflow traps
-. nr #FN_COUNT 0 1
-. nr #SPACE_REMAINING 0
-. nr #FN_DEPTH 0
-. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u
-. wh 12i FOOTER
-. wh -\\n[#B_MARGIN]u FN_OVERFLOW_TRAP
-. ch FOOTER -\\n[#B_MARGIN]u
+. if !\\n[#NO_TRAP_RESET] \{\
+. nr #FN_COUNT 0 1
+. nr #SPACE_REMAINING 0
+. nr #FN_DEPTH 0
+. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u
+. wh 12i FOOTER
+. wh -\\n[#B_MARGIN]u FN_OVERFLOW_TRAP
+. ch FOOTER -\\n[#B_MARGIN]u
+. \}
.END
\#
\#
@@ -8264,7 +9080,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.MAC REMOVE_INDENT END
. in 0
-. ll \\n[#L_LENGTH]u
+. ll \\n[#L_LENGTH]u
. ta \\n(.lu
.END
\#
@@ -8388,4 +9204,3 @@ y\\R'#DESCENDER \\n[.cdp]'
\#
.ALIAS COL_BREAK COL_NEXT
.ALIAS PRINT_FOOTNOTE_RULE FOOTNOTE_RULE
-\#