summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/mom/BUGS2
-rw-r--r--contrib/mom/ChangeLog6
-rw-r--r--contrib/mom/NEWS11
-rw-r--r--contrib/mom/TODO5
-rw-r--r--contrib/mom/examples/letter.mom2
-rw-r--r--contrib/mom/examples/sample_docs.mom1
-rw-r--r--contrib/mom/groff_mom.man2
-rw-r--r--contrib/mom/momdoc/appendices.html15
-rw-r--r--contrib/mom/momdoc/definitions.html2
-rw-r--r--contrib/mom/momdoc/docelement.html679
-rw-r--r--contrib/mom/momdoc/docprocessing.html67
-rw-r--r--contrib/mom/momdoc/goodies.html213
-rw-r--r--contrib/mom/momdoc/headfootpage.html24
-rw-r--r--contrib/mom/momdoc/refer.html1325
-rw-r--r--contrib/mom/momdoc/reserved.html12
-rw-r--r--contrib/mom/momdoc/stylesheet.css19
-rw-r--r--contrib/mom/momdoc/tables-of-contents.html2
-rw-r--r--contrib/mom/momdoc/toc.html4
-rw-r--r--contrib/mom/momdoc/typesetting.html2
-rw-r--r--contrib/mom/momdoc/using.html13
-rw-r--r--contrib/mom/om.tmac2241
21 files changed, 2715 insertions, 1932 deletions
diff --git a/contrib/mom/BUGS b/contrib/mom/BUGS
index 2014ae90..2c0b728a 100644
--- a/contrib/mom/BUGS
+++ b/contrib/mom/BUGS
@@ -12,7 +12,7 @@ how things ought to be.
Post to the groff mailing list with bug reports, questions and
suggestions, or contact me directly at:
- pschaffter@acanac.net
+ peter@schaffter.ca
If writing me directly, please include the word "groff" or "mom" in
the Subject line or you risk my spam filters nuking your message.
diff --git a/contrib/mom/ChangeLog b/contrib/mom/ChangeLog
index e7af0f9c..844fce65 100644
--- a/contrib/mom/ChangeLog
+++ b/contrib/mom/ChangeLog
@@ -1,3 +1,9 @@
+* Sun Oct 3 2010
+
+o Complete overhaul of refer macros and documentation
+
+o Inclusion of Tadziu Hoffman's postscript code for underlining
+
* Wed Aug 18 2010
o Complete overhaul of documentation
diff --git a/contrib/mom/NEWS b/contrib/mom/NEWS
index 2e3afb89..dbbb6458 100644
--- a/contrib/mom/NEWS
+++ b/contrib/mom/NEWS
@@ -5,6 +5,17 @@
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
+Release 1.6
+-----------
+Complete overhaul of refer handling. If you've been using mom and
+refer, the changes may affect documents you've already created.
+Please read refer.html.
+
+Improved underlining thanks to Tadziu Hoffman.
+
+Increased flexibility of PRINTSTYLE TYPEWRITE, which now allows
+user to choose the monospace family and point size.
+
Release 1.5-e
-------------
Complete overhaul of documentation
diff --git a/contrib/mom/TODO b/contrib/mom/TODO
index dd004f55..41d06e56 100644
--- a/contrib/mom/TODO
+++ b/contrib/mom/TODO
@@ -16,11 +16,6 @@ TOC
Capability of generating a separate file for TOCs, for collating
and processing with gs/ps2pdf.
-UNDERLINING
------------
-Explore "the ultimative underline macro" for possible inclusion
-into mom.
-
NUMBERED HEADS, SUBHEADS and PARAHEADS
--------------------------------------
Macros to set numbering style (roman, arabic, alpha, etc)?
diff --git a/contrib/mom/examples/letter.mom b/contrib/mom/examples/letter.mom
index 636f66e2..d9146c25 100644
--- a/contrib/mom/examples/letter.mom
+++ b/contrib/mom/examples/letter.mom
@@ -10,7 +10,7 @@
.PRINTSTYLE TYPESET
.START
.DATE
-August 25, 2004
+August 25, 2010
.TO
GUILLAUME BARRIÈRES
Minidoux Corporation
diff --git a/contrib/mom/examples/sample_docs.mom b/contrib/mom/examples/sample_docs.mom
index 6cf70e73..fb3a1779 100644
--- a/contrib/mom/examples/sample_docs.mom
+++ b/contrib/mom/examples/sample_docs.mom
@@ -344,6 +344,7 @@ Impact of Serial vs. Aleatoric Music\*[RLD1]"
.NUMBER_HEADS OFF \" Because we turned them on in the first example
.NUMBER_SUBHEADS OFF \" Ibid
\#
+.COVER_MISC_QUAD L \" Because we set it to R earlier
.COVER TITLE AUTHOR COPYRIGHT MISC
\#
.START
diff --git a/contrib/mom/groff_mom.man b/contrib/mom/groff_mom.man
index 65e7b033..1ee84990 100644
--- a/contrib/mom/groff_mom.man
+++ b/contrib/mom/groff_mom.man
@@ -89,7 +89,7 @@ mom comes with her own (very) complete documentation in HTML format.
.
.B mom
was written by
-.MT pschaffter@ncf.ca
+.MT peter@schaffter.ca
Peter Schaffter
.ME .
Please send bug reports to the
diff --git a/contrib/mom/momdoc/appendices.html b/contrib/mom/momdoc/appendices.html
index a28c4247..7aa92408 100644
--- a/contrib/mom/momdoc/appendices.html
+++ b/contrib/mom/momdoc/appendices.html
@@ -92,21 +92,6 @@ wanted than html.
<h2 id="fonts" class="docs">Adding PostScript fonts to groff</h2>
-<div class="box-tip">
-<p class="tip">
-Robert Valiant has set up a web page containing information,
-instructions and strategies for adding PostScript and TrueType fonts
-to groff for use with mom. The page is directed at Debian GNU/Linux
-users, but knowledgable users of other GNU/Linux distributions
-should have no difficulty adapting it to their needs. The site is
-located at
-<br/>
-<span class="pre-in-pp" style="display:block; margin-bottom: -1em;">
- <a href="http://russia.shaps.hawaii.edu/software/software.html">http://russia.shaps.hawaii.edu/software/software.html</a>
-</span>
-</p>
-</div>
-
<div id="small-note" class="box-tip">
<p class="tip">
<span class="note">Note:</span>
diff --git a/contrib/mom/momdoc/definitions.html b/contrib/mom/momdoc/definitions.html
index c9b7e56e..0c26715d 100644
--- a/contrib/mom/momdoc/definitions.html
+++ b/contrib/mom/momdoc/definitions.html
@@ -35,7 +35,7 @@ FDL in the main directory of the groff source package.
<td><a href="toc.html">Back to Table of Contents</a></td>
<td style="text-align: right;"><a href="using.html#top">Next: Using mom</a></td>
</tr>
- </table>
+</table>
<h1 id="terms" class="docs">Definitions of terms used in this manual</h1>
diff --git a/contrib/mom/momdoc/docelement.html b/contrib/mom/momdoc/docelement.html
index 7d99277c..c7bea507 100644
--- a/contrib/mom/momdoc/docelement.html
+++ b/contrib/mom/momdoc/docelement.html
@@ -239,7 +239,7 @@ mightily.
The family, font, point size, colour and leading control macros have
no effect in
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
-which sets everyTHING in Courier roman, 12/24 (i.e. 12-point type on
+which sets everything in Courier roman, 12/24 (i.e. 12-point type on
a linespace of 24 points).
</p>
@@ -699,6 +699,14 @@ document family.
Mom&#8217;s default paragraph (and document) family is Times Roman.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Neither FAMILY nor DOC_FAMILY has any effect when the PRINTSTYLE is
+<kbd>TYPEWRITE</kbd>.
+</p>
+</div>
+
<h4 id="pp-font" class="docs" style="margin-top: -.25em;">2. Font control</h4>
<p>
@@ -722,6 +730,21 @@ them with the appropriate control macros.
Mom&#8217;s default paragraph font is medium roman.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+PP_FONT has no effect when the PRINTSTYLE is <kbd>TYPEWRITE</kbd>.
+If you wish to set whole typewritten paragraphs in italic, invoke
+invoke <kbd>.FT I</kbd> immediately after <kbd>.PP</kbd>. Depending
+on which of
+<a href="docprocessing.html#printstyle-italics">UNDERLINE_ITALIC</a>
+or
+<a href="docprocessing.html#printstyle-italics">ITALIC_MEANS_ITALIC</a>
+is currently enabled, the paragraph will be set underlined or in
+italic. Neither persists past the end of the paragraph.
+</p>
+</div>
+
<h4 id="pp-color" class="docs" style="margin-top: -.25em;">3. Paragraph colour</h4>
<p>
@@ -807,7 +830,7 @@ paragraph whose leading you wish to change.
<div class="box-tip">
<p class="tip">
<span class="note">Warning:</span>
-It is extremely unwise to change a paragraph's leading with LS as
+It is extremely unwise to change a paragraph&#8217;s leading with LS as
it will, in all cases, screw up mom&#8217;s ability to balance
the bottom margin of pages. Should you absolutely need to change
paragraph leading with LS, and subsequently want mom to get back on
@@ -1125,8 +1148,10 @@ HEAD_CAPS back on, simply invoke it without an argument.
<h4 id="head-space" class="docs" style="margin-top: -.25em;">3. Pre-head space</h4>
<p>
-By default, mom deposits 2 blank lines prior to every head. If
-you&#8217;d prefer just a single blank line, do
+By default, mom deposits 2 blank lines prior to every head when your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPESET</kbd>. If you&#8217;d prefer just a single blank
+line, do
<br/>
<span class="pre-in-pp">
.HEAD_SPACE OFF
@@ -1137,6 +1162,13 @@ To restore the space before heads to 2 blank lines, invoke
<kbd>.HEAD_SPACE</kbd> without an argument.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+HEAD_SPACE has no effect on PRINTSTYLE <kbd>TYPEWRITE</kbd>.
+</p>
+</div>
+
<h4 id="head-underline" class="docs" style="margin-top: -.25em;">4. Underscoring</h4>
<p>
@@ -2144,7 +2176,7 @@ QUOTE_INDENT if paragraph first lines are not being indented.
<p>
The default value for QUOTE_INDENT is 3 (for
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>)
-and 2 (for
+and 1 (for
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>).
</p>
@@ -2506,7 +2538,7 @@ it as well, invoke <kbd>.CODE</kbd> with the argument,
<kbd>SPREAD</kbd>. If, in addition to breaking the line before CODE
you want a break afterwards, you must supply it manually with
<a href="typesetting.html#br">BR</a>
-unless what follows immeidately is a macro that automatically causes
+unless what follows immediately is a macro that automatically causes
a break (e.g.
<a href="#pp">PP</a>).
</p>
@@ -3638,15 +3670,25 @@ Even if you&#8217;re using
mom knows what to do, and Does The Right Thing.
</p>
-<p>
-Footnotes can be sly little beasts, though. If you&#8217;re writing
-a document that&#8217;s footnote-heavy, you might want to read the
-following.
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+See
+<a href="refer.html">refer.html</a>
+for information on using footnotes with the <kbd>refer</kbd>
+bibliographic database.
</p>
+</div>
<h3 id="footnote-behaviour" class="docs">Footnote behaviour</h3>
<p>
+Footnotes can be sly little beasts. If you&#8217;re writing a
+document that&#8217;s footnote-heavy, you might want to read the
+following.
+</p>
+
+<p>
By default, mom marks footnotes with alternating stars (asterisks),
daggers, and double-daggers. The first footnote gets a star, the
second a dagger, the third a double-dagger, the fourth two stars,
@@ -4012,7 +4054,7 @@ explanation and examples
In
<a href="definitions.html#filled">no-fill</a>
modes, the optional argument <kbd>BREAK</kbd> or <kbd>BR</kbd> may
-be used after the<kbd>OFF</kbd> (or <kbd>QUIT, END, X,</kbd> etc.)
+be used after the <kbd>OFF</kbd> (or <kbd>QUIT, END, X,</kbd> etc.)
argument to instruct mom not to join the next input line to the
previous output. See
<a href="#fn-and-punct-nofill">here</a>
@@ -4035,7 +4077,10 @@ should be entered normally.
<ol style="margin-top: .5em; padding-bottom: .5em;">
<li><a href="#footnote-general">Family/font/size/colour/lead/quad</a></li>
<li><a href="#footnote-markers">Footnote markers</a> &ndash; on or off</li>
- <li><a href="#footnote-marker-style">Footnote marker style</a> &ndash; star+dagger or numbered</li>
+ <li><a href="#footnote-marker-style">Footnote marker style</a> &ndash; star+dagger or numbered
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#footnote-number-placeholders">Left padding of footnote numbers</a></li>
+ </ul></li>
<li><a href="#footnotes-by-linenumber">Footnotes by line number</a>
<ul style="margin-left: -.5em; list-style-type: disc;">
<li><a href="#footnote-linenumber-brackets">FOOTNOTE_LINENUMBER_BRACKETS</a></li>
@@ -4109,12 +4154,76 @@ can ask mom to start each page&#8217;s footnote numbers at 1 with
(<a href="#reset-footnote-number">see below</a>.)
</p>
-<h4 id="footnotes-by-linenumber" class="docs" style="margin-top: -.25em;">4. Footnotes by line number</h4>
+<p>
+If your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd> and you would prefer that the footnotes
+themselves not use superscript numbers, you may pass
+<kbd>.FOOTNOTE_MARKER_STYLE NUMBER</kbd> an additional argument:
+<kbd>NO_SUPERSCRIPT</kbd>. While the marker in the text will still
+be superscript, the footnotes themselves will be identified with
+normal-sized, base aligned numbers, surrounded by parentheses.
+</p>
+
+<h5 id="footnote-number-placeholders" class="docs">Left padding of footnote numbers</h5>
<p>
-<kbd>.FOOTNOTE_MARKER_STYLE LINE</kbd> lets you have footnotes which
-are identified by line number, rather than by a marker in the text.
-(Note that
+When footnote numbering is enabled, in order to ensure that the
+left margin of footnote text aligns regardless of the footnote
+number, you sometimes have to pad the footnote numbers. This will
+be the case any time the footnote numbers change from 9 to 10 on
+the same page, or from 99 to 100. Consider this scenario:
+<br/>
+<span class="pre-in-pp">
+ <sup>9</sup>&nbsp;Footnote text
+ <sup>10</sup>&nbsp;Footnote text
+ <sup>11</sup>&nbsp;Footnote text
+</span>
+As you can see, the left margins of the footnotes are not aligned.
+</p>
+
+<p>
+In order to correct this, use the macro
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd>, which takes a single
+argument: the number of placeholders in the longer digit. For
+example, placed at an appropriate point in your input file,
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS&nbsp;2</kbd> causes the above
+example to come out like this:
+<br/>
+<span class="pre-in-pp">
+ <sup> 9</sup> Footnote text
+ <sup>10</sup> Footnote text
+ <sup>11</sup> Footnote text
+</span>
+Given the impossibility of knowing in advance when the number of
+placeholders required for footnote numbers will change, you must
+study your <i>output</i> file to determine where to insert this
+macro into your <i>input</i> file.
+</p>
+
+<p>
+Obviously, mom does not provide a default for
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd> affects both superscript
+footnote numbers, and, in
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+the normal, base-aligned numbers surrounded by parentheses that you
+get with
+<kbd>.FOOTNOTE_MARKER_STYLE&nbsp;NUMBER&nbsp;NO_SUPERSCRIPT</kbd>.
+</p>
+</div>
+
+<h4 id="footnotes-by-linenumber" class="docs" style="margin-top: -.25em;">4. Footnotes by line number &ndash; FOOTNOTE_MARKER_STYLE LINE</h4>
+
+<p>
+FOOTNOTE_MARKER_STYLE with the argument, <kbd>LINE</kbd> lets you
+have footnotes which are identified by line number, rather than by a
+marker in the text. (Note that
<a href="#number-lines">NUMBER_LINES</a>
must be enabled in order to use this marker style.)
</p>
@@ -4123,57 +4232,88 @@ must be enabled in order to use this marker style.)
With FOOTNOTE_MARKER_STYLE <kbd>LINE</kbd>, mom will identify
footnotes either by single line numbers, or line ranges. If
what you want is a single line number, you need only invoke
-<kbd>.FOOTNOTE</kbd>, <i>without terminating the text line before it
-with</i> <kbd>\c</kbd>, at the appropriate place in running text.
+<kbd>.FOOTNOTE</kbd>, <i>without the terminating</i> <kbd>\c</kbd>,
+at the appropriate place in running text. Input lines after the
+footnote has been terminated (e.g. with <kbd>.FOOTNOTE OFF</kbd>)
+must begin at the left margin.
</p>
<p>
If you want a range of line numbers (e.g.&nbsp;[5-11]&nbsp;),
insert, directly into the first line of the range you want,
the <a href="definitions.html#inlines">inline escape</a>,
-<kbd>\*[FN-MARK]</kbd>. For the terminating line number of the
-range, you need only invoke <kbd>.FOOTNOTE</kbd>, (again, without
-attaching <kbd>\c</kbd> to the text line before it). Mom is smart
-enough to figure out that where <kbd>.FOOTNOTE</kbd> was invoked
-represents the terminating line number. Range-numbered footnotes
-are always output on the page where <kbd>.FOOTNOTE</kbd> was
-invoked, not the page where <kbd>\*[FN-MARK]</kbd> appears (subject,
-of course, to the rules for footnotes that fall too close to the
-bottom of a page, as outlined
+<kbd>\*[FN_MARK]</kbd>. For the terminating line number of the
+range, you need only invoke <kbd>.FOOTNOTE</kbd> (again, without the
+terminating <kbd>\c</kbd>); mom is smart enough to figure out that
+where <kbd>.FOOTNOTE</kbd> was invoked represents the terminating
+line number. Range-numbered footnotes are always output on the
+page where <kbd>.FOOTNOTE</kbd> was invoked, not the page where
+<kbd>\*[FN_MARK]</kbd> appears (subject, of course, to the rules for
+footnotes that fall too close to the bottom of a page, as outlined
<a href="#footnote-rules">here</a>).
</p>
-<h5 id="footnote-linenumber-brackets" class="docs" style="margin-top: -.25em;">Footnote line number brackets</h5>
-
<p>
-Mom, by default, puts footnote line numbers inside square
-brackets. The style of the brackets may be changed with the macro,
-FOOTNOTE_LINENUMBER_BRACKETS, which takes one of three possible
-arguments: <kbd>PARENS</kbd> (round brackets), <kbd>SQUARE</kbd>
-(the default) or <kbd>BRACES</kbd> (curly braces). If you prefer a
-shortform, the arguments, <kbd>(</kbd>, <kbd>[</kbd> or <kbd>{</kbd>
-may be used instead.
+The behaviour of line-numbered footnotes can be controlled with the
+macros:
+<br/>
+<span style="display: inline-block; margin-left: 2em; margin-top: .5em;"><a href="#footnote-linenumber-brackets">FOOTNOTE_LINENUMBER_BRACKETS</a></span>
+<br/>
+<span style="margin-left: 2em;"><a href="#footnote-linenumber-separator">FOOTNOTE_LINENUMBER_SEPARATOR</a></span>
+<br/>
+<span style="margin-left: 2em;"><a href="#footnotes-run-on">FOOTNOTES_RUN_ON</a></span>
</p>
-<h5 id="footnote-linenumber-separator" class="docs" style="margin-top: -.25em;">FOOTNOTE_LINENUMBER_SEPARATOR</h5>
+<div style="margin-left: 1.25em;">
+<h5 id="footnote-linenumber-brackets" class="docs" style="margin-top: -.25em;">&bull;&nbsp;FOOTNOTE_LINENUMBER_BRACKETS</h5>
-<p>
-If you don&#8217;t want the numbers enclosed in brackets, you may
-tell mom to use a "separator" instead. A common separator would be
-the colon, but it can be anything you like. The macro to do this is
-FOOTNOTE_LINENUMBER_SEPARATOR, which takes, as its single argument,
-the separator you want. For safety and consistency&#8217;s sake,
-always enclose the argument in double-quotes.
+<p style="margin-left: .5em;">
+Mom, by default, surrounds footnote line numbers with square
+brackets. The style of the brackets may be changed with the macro,
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS
+</span>
+which takes one of three possible arguments: <kbd>PARENS</kbd>
+(round brackets), <kbd>SQUARE</kbd> (the default) or
+<kbd>BRACES</kbd> (curly braces). If you prefer a shortform, the
+arguments, <kbd>(</kbd>, <kbd>[</kbd> or <kbd>{</kbd> may be used
+instead.
</p>
-<p>
-The separator can be composed of any valid groff character,
-or any combination of characters.
+<p style="margin-left: .5em;">Thus, for example, either
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS PARENS
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS (
+</span>
+will surround footnote line numbers with round brackets.
</p>
-<p>
+<h5 id="footnote-linenumber-separator" class="docs" style="margin-top: -.25em;">&bull;&nbsp;FOOTNOTE_LINENUMBER_SEPARATOR</h5>
+
+<p style="margin-left: .5em;">
+If you don&#8217;t want the numbers enclosed in brackets, you
+may tell mom to use a &#8220;separator&#8221; instead. A common
+separator would be the colon, but it can be anything you like.
+The macro to do this is
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_SEPARATOR
+</span>
+which takes, as its single argument, the separator you want. For
+safety and consistency&#8217;s sake, always enclose the argument in
+double-quotes. The separator can be composed of any valid groff
+character, or any combination of characters.
+</p>
+
+<p style="margin-left: .5em;">
<b>A word of caution:</b> when using a separator, mom doesn&#8217;t
-insert a space after the separator. Hence, if you want the space
+insert any space after the separator. Hence, if you want space
(you probably do), you must make the space part of the argument you
pass to FOOTNOTE_LINENUMBER_SEPARATOR. For example, to get a colon
separator with a space after it, you&#8217;d do
@@ -4183,32 +4323,33 @@ separator with a space after it, you&#8217;d do
</span>
</p>
-<h5 id="footnotes-run-on" class="docs" style="margin-top: -.25em;">RUN-ON FOOTNOTES</h5>
+<h5 id="footnotes-run-on" class="docs" style="margin-top: -1em;">&bull;&nbsp;FOOTNOTES_RUN_ON</h5>
-<p>
+<p style="margin-left: .5em;">
Finally, if your footnote marker style is <kbd>LINE</kbd>, you may
-instruct mom to do "run-on style" footnotes. Run-on footnotes
-do not treat footnotes as discrete entities, i.e. on a line by
-themselves. Rather, each footnote is separated from the footnote
-before it by a space, so that the footnotes on any given page
-form a continuous block, like lines in a paragraph. The macro
-to get mom to run footnotes on is <kbd>.FOOTNOTES_RUN_ON</kbd>.
-Invoked by itself, it turns the feature on. Invoked with any
-other argument (<kbd>OFF, NO</kbd>, etc.), it turns the feature off. It is
-generally not a good idea to turn the feature on and off during the
-course of a single document. If you do, mom will issue a warning
-if there&#8217;s going to be a problem. However, it is always
-perfectly safe to enable/disable the feature after
-<a href="rectoverso.html#collate">COLLATE</a>.
+instruct mom to do &#8220;run-on style&#8221; footnotes. Run-on
+footnotes do not treat footnotes as discrete entities, i.e. each
+beginning on a new line. Rather, each footnote is separated from
+the footnote before it by horizontal space in the running line, so
+that the footnotes on any given page form a continuous block, like
+lines in a paragraph.
</p>
-<p>
-The usual reason for wanting run-on footnotes is that you&#8217;re
-using them to hold many, short references. (See
-<a href="refer.html#top">here</a>
-for instructions on using the groff program, <kbd>refer</kbd>, to
-set up references.)
+<p style="margin-left: .5em;">
+The macro to get mom to run footnotes on is
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTES_RUN_ON
+</span>
+Invoked by itself, it turns the feature on. Invoked with any other
+argument (<kbd>OFF, NO</kbd>, etc.), it turns the feature off.
+It is generally not a good idea to turn the feature on and off
+during the course of a single document. If you do, mom will issue
+a warning if there&#8217;s going to be a problem. However, it is
+always perfectly safe to enable/disable the feature after
+<a href="rectoverso.html#collate">COLLATE</a>.
</p>
+</div>
<h4 id="reset-footnote-number" class="docs" style="margin-top: -.25em;">5. Reset footnote number &ndash; RESET_FOOTNOTE_NUMBER</h4>
@@ -4222,13 +4363,13 @@ numbering so that the next footnote you enter is numbered 1.
page&#8217;s footnote numbering at 1.
</p>
-<h4 id="footnote-space" class="docs" style="margin-top: -.25em;">6. Inter-footnote spacing &ndash; FOOTNOTE_SPACE</h4>
+<h4 id="footnote-space" class="docs" style="margin-top: -.25em;">6. Inter-footnote spacing &ndash; FOOTNOTE_SPACING</h4>
<p>
-If you&#8217;d like a little extra space between footnotes, you can
-have mom put it in for you by invoking <kbd>.FOOTNOTE_SPACE</kbd>
+If you&#8217;d like some space between footnotes, you can
+have mom put it in for you by invoking <kbd>.FOOTNOTE_SPACING</kbd>
with an argument representing the amount of extra space you&#8217;d
-like. The argument to FOOTNOTE_SPACE requires a
+like. The argument to FOOTNOTE_SPACING requires a
<a href="definitions.html#unitofmeasure">unit of measure</a>.
</p>
@@ -4238,10 +4379,21 @@ other by 3
<a href="definitions.html#picaspoints">points</a>.
<br/>
<span class="pre-in-pp">
- .FOOTNOTE_SPACE 3p
+ .FOOTNOTE_SPACING 3p
</span>
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you&#8217;re using footnotes for references generated from the
+refer database (see
+<a href="refer.html">refer.html</a>),
+correct MLA style requires a full linespace between footnotes, which
+you can accomplish with <kbd>.FOOTNOTE_SPACING&nbsp;1v</kbd>.
+</p>
+</div>
+
<h4 id="footnote-rule" class="docs" style="margin-top: -.25em;">7. Footnote rule &ndash; FOOTNOTE_RULE</h4>
<p>
@@ -4343,7 +4495,6 @@ wish.
<ul style="margin-left: -.5em;">
<li><a href="#endnote-behaviour">Endnotes behaviour</a>
<ul style="margin-left: -.5em;">
- <li><a href="#endnote-spacing">A note on endnotes spacing</a></li>
<li><a href="#endnote-columns">Endnotes and columnar documents</a></li>
</ul></li>
<li><a href="#endnote">Tag: ENDNOTE</a></li>
@@ -4377,8 +4528,9 @@ except that <kbd>.FOOTNOTE</kbd> has been replaced with
As with footnotes, note the obligatory use of the <kbd>\c</kbd>
<a href="definitions.html#inlines">inline escape</a>
when your
-<kbd><a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a></kbd>
-is <kbd>NUMBER</kbd> (which marks endnotes references in
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>NUMBER</kbd> or <kbd>SUPERSCRIPT</kbd> (both of which mark
+endnotes references in
<a href="definitions.html#running">running text</a>
with superscript numbers). When the marker style is
<kbd>LINE</kbd>, you must <i>not</i> use the <kbd>\c</kbd>
@@ -4392,8 +4544,9 @@ the body of the document):
</p>
<ol style="margin-top: -.5em;">
- <li>When your ENDNOTE_MARKER_STYLE is <kbd>NUMBER</kbd>,
- endnotes are always numbered incrementally, starting at "1".
+ <li>When your ENDNOTE_MARKER_STYLE is <kbd>NUMBER</kbd> or
+ <kbd>SUPERSCRIPT</kbd>, endnotes are always numbered
+ incrementally, starting at &#8220;1&#8221;.
</li>
<li>Endnotes must be output explicitly; mom does not output
them for you. In
@@ -4428,6 +4581,16 @@ subsequent quotes and blockquotes that appear in the document body
as well.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+See
+<a href="refer.html">refer.html</a>
+for information on using endnotes with the <kbd>refer</kbd>
+bibliographic database.
+</p>
+</div>
+
<h3 id="endnote-behaviour" class="docs">Endnotes behaviour</h3>
<p>
@@ -4446,11 +4609,10 @@ is removed.
By default, mom starts the endnotes page with a bold,
centred, double-underscored head, &#8220;ENDNOTES&#8221;.
Underneath&mdash;flush left, bold, and underscored&mdash;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.
+the document title (or, in the case of chapters, the chapter number
+or title). She then prints the endnotes. Endnotes are identified
+by superscript numbers. The text of the endnotes themselves is
+indented to the right of the numbers.
</p>
<p>
@@ -4462,7 +4624,7 @@ 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
+endnotes pages, 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
@@ -4470,25 +4632,6 @@ themselves, and therefore need not be bound by the style parameters
of the body of the document.
</p>
-<h3 id="endnote-spacing" class="docs">A note on endnotes spacing</h3>
-
-<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 mom 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 endnotes 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>)
-<i>at the end of each endnote</i> (i.e. just before invoking
-<a href="#endnote"><kbd>.ENDNOTE OFF</kbd></a>)
-rather than at the top.
-</p>
<h3 id="endnote-columns" class="docs">Endnotes and columnar documents</h3>
@@ -4516,7 +4659,7 @@ See <span style="font-style: normal"><a href="#endnote-note">HYPER-IMPORTANT NOT
<p>
ENDNOTE 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. <kbd>OFF, QUIT, END, X...</kbd>
+it with any other argument (i.e. <kbd>OFF, QUIT, END, X...</kbd>)
tells mom that you&#8217;ve finished the endnote.
</p>
@@ -4535,9 +4678,12 @@ tag. Use PP only to introduce subsequent paragraphs.
<span class="note">HYPER-IMPORTANT NOTE:</span>
If your
<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
-is <kbd>NUMBER</kbd> (mom&#8217;s default), the final word on the
+is <kbd>NUMBER</kbd> or <kbd>SUPERSCRIPT</kbd> (mom&#8217;s
+default is <kbd>NUMBER</kbd> unless you have
+<a href="refer.html#endnote-refs">ENDNOTE_REFS</a>
+enabled, in which case it&#8217;s <kbd>SUPERSCRIPT</kbd>), the final word on the
<a href="definitions.html#inputline">input line</a>
-that comes immediately before <kbd>.ENDNOTE</kbd> MUST terminate
+that comes immediately before <kbd>.ENDNOTE</kbd> must terminate
with a
<a href="typesetting.html#join"><kbd>\c</kbd></a>
inline escape. See the
@@ -4552,7 +4698,7 @@ modes
(<a href="typesetting.html#justify">JUSTIFY</a>
or
<a href="typesetting.html#quad">QUAD</a>,
-the line <i>after</i> <kbd>.ENDNOTE&nbsp;OFF</kbd> should be
+the line after <kbd>.ENDNOTE&nbsp;OFF</kbd> should be
entered as if there were no interruption in the input text, i.e.
the line should begin with a literal space or punctuation mark (see
explanation and examples for footnotes, which apply equally to
@@ -4564,7 +4710,7 @@ endnotes,
In
<a href="definitions.html#filled">no-fill</a>
modes, the optional argument <kbd>BREAK</kbd> or <kbd>BR</kbd> may
-be used after the <kbd>OFF</kbd> (or <b>QUIT, END, X,</b> etc.)
+be used after the <kbd>OFF</kbd> (or <kbd>QUIT, END, X,</kbd> etc.)
argument to instruct mom not to join the next input line to the
previous output. See
<a href="#fn-and-punct-nofill">here</a>
@@ -4574,7 +4720,8 @@ for a more complete explanation. The examples are for
<p class="tip-bottom">
If your ENDNOTE_MARKER_STYLE is LINE, do not use the <kbd>\c</kbd>
-escape, and enter the line after <kbd>.ENDNOTE OFF</kbd> normally.
+escape, and enter the line after <kbd>.ENDNOTE OFF</kbd> normally,
+i.e. at your text editor&#8217;s left margin.
</p>
</div>
@@ -4650,6 +4797,7 @@ appearance of endnotes pages, set them up prior to
<li><a href="#endnote-style">Base family/font/quad</a></li>
<li><a href="#endnote-pt-size">Base point size</a></li>
<li><a href="#endnote-lead">Leading</a></li>
+ <li><a href="#endnote-spacing">Spacing between endnotes</a></li>
<li><a href="#singlespace-endnotes">Singlespace endnotes (TYPEWRITE only)</a></li>
<li><a href="#endnote-para-indent">Paragraph indenting</a></li>
<li><a href="#endnote-para-space">Paragraph spacing</a></li>
@@ -4805,7 +4953,7 @@ for an explanation of leading adjustment.)
<p>
The default for
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
-is 14 points, adjusted.
+is the prevailing document leading (16 by default), adjusted.
</p>
<div class="box-tip">
@@ -4818,9 +4966,36 @@ enter <kbd>.ENDNOTE_LEAD&nbsp;&lt;lead&gt;</kbd> with no
</p>
</div>
+<!-- -ENDNOTE_SPACING- -->
+
+<h5 id="endnote-spacing" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Spacing between endnotes</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_SPACING</b> <kbd class="macro-args">&lt;space to insert between endnotes&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+If you'd like some whitespace between endnotes, just invoke
+ENDNOTE_SPACING with the amount of space you want, e.g.
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_SPACING 6p
+</span>
+which inserts 6 points of lead between endnotes. Be aware, though,
+that inserting space between endnotes means that the bottoms of
+endnotes pages will most likely not align.
+</p>
+
+<p>
+Mom&#8217;s default is not to insert any whitespace between endnotes.
+</p>
+
<!-- -SINGLESPACE_ENDNOTES- -->
-<h5 id="singlespace-endnotes" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Singlespace endnotes (TYPEWRITE only)</h5>
+<h5 id="singlespace-endnotes" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Singlespace endnotes (TYPEWRITE only)</h5>
<div class="box-macro-args">
Macro: <b>SINGLESPACE_ENDNOTES</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
@@ -4908,18 +5083,9 @@ The default is not to insert a blank line between paragraphs in
endnotes.
</p>
-<div class="box-tip">
-<p class="tip">
-<span class="note">Note:</span>
-Each endnote itself is always separated from any previous endnote
-by a line space. ENDNOTE_PARA_SPACE refers only to paragraphs that
-appear within each discrete endnote.
-</p>
-</div>
-
<!-- -ENDNOTES_NO_COLUMNS- -->
-<h5 id="endnotes-no-columns" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Turning off column mode during endnotes output</h5>
+<h5 id="endnotes-no-columns" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Turning off column mode during endnotes output</h5>
<div class="box-macro-args">
Macro: <b>ENDNOTES_NO_COLUMNS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
@@ -5438,10 +5604,11 @@ Mom&#8217;s default is to single-underscore the string with a
<h5 id="endnote-marker-style" class="docs" style="margin-top: 1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Endnote marker style</h5>
<div class="box-macro-args">
-Macro: <b>ENDNOTE_MARKER_STYLE</b> <kbd class="macro-args">LINE | NUMBER</kbd>
+Macro: <b>ENDNOTE_MARKER_STYLE</b> <kbd class="macro-args"><a href="#line">LINE</a> | <a href="#number">NUMBER</a> | <a href="#superscript">SUPERSCRIPT</a></kbd>
</div>
-<p>
+<p id="line">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>LINE</kbd></span>
By default, mom places superscript numbers in
<a href="definitions.html#running">running text</a>
to identify endnotes. However, if you have
@@ -5456,9 +5623,10 @@ The command to do this is
With ENDNOTE_MARKER_STYLE <kbd>LINE</kbd>, mom will identify
endnotes either by single line numbers or by line ranges. If
what you want is a single line number, you need only invoke
-<kbd>.ENDNOTE</kbd>, <i>without terminating the text line before
-it with</i> <kbd>\c</kbd>, at the appropriate place in running
-text.
+<kbd>.ENDNOTE</kbd> at the appropriate place in running
+text <i>without the terminating</i> <kbd>\c</kbd>. Input lines
+after the endnote has been terminated (e.g. with <kbd>.ENDNOTE
+OFF</kbd>) must begin at the left margin.
</p>
<p>
@@ -5472,16 +5640,96 @@ nothing to prevent you from doing so.)
<p id="en-mark">
If you want a range of line numbers (e.g.&nbsp;[5-11]&nbsp;),
-insert, directly into the first line of the range you want,
-the <a href="definitions.html#inlines">inline escape</a>,
+insert, directly into the first line of the range you want, the
+<a href="definitions.html#inlines">inline escape</a>,
<kbd>\*[EN-MARK]</kbd>. For the terminating line number of the
-range, you need only invoke <kbd>.ENDNOTE</kbd>, (again, without
-attaching <kbd>\c</kbd> to the text line before it). Mom is smart
-enough to figure out that where <kbd>.ENDNOTE</kbd> is invoked
-represents the terminating line number.
+range, you need only invoke <kbd>.ENDNOTE</kbd> (again, without the
+terminating <kbd>\c</kbd>). Mom is smart enough to figure out that
+where <kbd>.ENDNOTE</kbd> is invoked represents the terminating line
+number.
+</p>
+
+<div id="endnote-linenumbers-note" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+By default, mom reserves a fixed amount of space, equal to 8
+placeholders, for the linenumbers of linenumbered endnotes. Within
+that space, the numbers are flush right with each other. The
+reserved space is enough to print a range of linenumbers of the form
+<kbd>[nnnn-nnnn]</kbd>, but may be more than you need.
</p>
-<h5 id="endnote-linenumber-gap" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Spacing between line-numbered endnotes and the endnote text</h5>
+<p>
+The goal with linenumbered endnotes is to ensure that the longest
+linenumber or range of lines is flush with the left margin of the
+page. Adjusting the reserved space is done with the macro
+<a href="docelement.html#endnote-numbers-align">ENDNOTE_NUMBERS_ALIGN</a>,
+and the rules for getting it right are simple.
+</p>
+
+<p class="tip-bottom">
+If your document runs to less than 100 lines, invoke
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 0
+</span>
+If your document has between 100 and 999 lines
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
+</span>
+If your document has between 1000 and 9999 lines
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 2
+</span>
+etc.
+</p>
+</div>
+
+<p id="number" style="margin-top: -.5em;">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>NUMBER</kbd></span>
+With the argument <kbd>NUMBER</kbd>, mom places superscript numbers
+in running text, but identifies endnotes in the endnotes section
+of your document with normal-sized, base-aligned numbers.
+</p>
+
+<p id="superscript" style="margin-top: -.5em;">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>SUPERSCRIPT</kbd></span>
+With the argument <kbd>SUPERSCRIPT</kbd>, mom places superscript
+numbers in running text, and identifies endnotes in the endnotes
+section of your document with superscript numbers as well. This is
+mom&#8217;s default.
+</p>
+
+<div id="endnote-superscript-note" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+By default, mom reserves a fixed amount of space, equal to 2
+placeholders, for the superscript numbers identifying endnotes in
+the endnotes section of your document. Within that space, the
+numbers are flush right with each other.
+</p>
+
+<p class="tip-bottom">
+If you need less space (the total number of endnotes is less than 10) or
+more (the total number of endnotes is greater than 99), use the
+macro,
+<a href="docelement.html#endnote-numbers-align">ENDNOTE_NUMBERS_ALIGN</a>,
+to set the desired amount of reserved space, e.g.
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 3
+</span>
+</p>
+</div>
+
+<h5 id="endnote-linenumber-gap" class="docs" style="margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Spacing between line-numbered endnotes and the endnote text</h5>
<div class="box-macro-args">
Macro: <b>ENDNOTE_LINENUMBER_GAP</b> <kbd class="macro-args">&lt;size of gap&gt;</kbd>
@@ -5492,40 +5740,26 @@ Macro: <b>ENDNOTE_LINENUMBER_GAP</b> <kbd class="macro-args">&lt;size of gap&gt;
</p>
<p>
-Given the impossibility of knowing, in advance, the string length
-of all the line numbers or ranges of line numbers that will be used
-in endnotes (the string length of &#8220;12&#8221; is two; the string length of
-&#8220;12-15&#8221; is 5), mom cannot &#8220;hang&#8221; line
-numbers and guarantee that they, and the endnote text, will align in
-a visually pleasing manner. Consequently, mom sets the entirety of
-line-numbered endnotes completely flush left, including the line
-numbers themselves. The line numbers (by default, enclosed in
-square brackets) are separated from the beginning of each endnote
-by a gap, so that a line-numbered endnote looks approximately like
-this:
-<br/>
-<span class="pre-in-pp">
- [1-2] Notwithstanding, Frye later asserts that Christianity
- is "a ghost with the chains of a foul historical record of
- cruelty clanking behind it."
-</span>
-You can change the size of the gap with the macro,
-ENDNOTE_LINENUMBER_GAP, which takes as its single argument the size
+When your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>LINE</kbd>, mom, by default, inserts a space equal to
+1/2-<a href="definitions.html#em">en</a>
+between the linenumber and the text of an endnote. For aesthetic reasons, you may want
+to change the size of the gap, which is done with the macro,
+ENDNOTE_LINENUMBER_GAP.
+</p>
+
+<p>
+ENDNOTE_LINENUMBER_GAP takes as its single argument the size
of the gap. The argument requires a
-<a href="definitions.html#unitofmeasure">unit of measure</a>.
-So, for example, to change the gap to 2
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+so, for example, to change the gap to 2
<a href="definitions.html#picaspoints">picas</a>,
you&#8217;d do
<br/>
<span class="pre-in-pp">
.ENDNOTE_LINENUMBER_GAP 2P
</span>
-The default gap for both
-<a href="docprocessing.html#printstyle">PRINTSTYLE TYPESET</a>
-and
-<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>
-is 1.5
-<a href="definitions.html#em">ems</a>.
</p>
<h5 id="endnote-linenumber-brackets" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Brackets around endnote line numbers</h5>
@@ -5580,12 +5814,17 @@ See
<p class="defaults">
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).
+endnote numbers that appear in the body of a document.
</p>
<span class="pre defaults">
-.ENDNOTE_NUMBER_FAMILY default = prevailing document family; default is Times Roman
-.ENDNOTE_NUMBER_FONT default = bold
-.ENDNOTE_NUMBER_SIZE* default = 0
+Numbered endnotes
+.ENDNOTE_NUMBER_FAMILY default = prevailing document family; default Times Roman
+.ENDNOTE_NUMBER_FONT default = bold
+.ENDNOTE_NUMBER_SIZE* default = 0
+Linenumbered endnotes
+.ENDNOTE_LINENUMBER_FAMILY default = prevailing document family; default Times Roman
+.ENDNOTE_LINENUMBER_FONT default = bold
+.ENDNOTE_LINENUMBER_SIZE* default = 0
*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
</span>
@@ -5594,8 +5833,10 @@ endnote numbers that appear in the body of the document(s).
<h5 id="endnote-number-alignment" class="docs" style="margin-top: -1.25em; margin-bottom: -.5em; margin-left: .5em;">&bull;&nbsp;Endnote numbering alignment</h5>
<p style="margin-top: .75em;">
-By default, mom hangs the numbers on endnotes pages, aligned right
-to two placeholders, producing this:
+By default, when your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>NUMBER</kbd>, mom hangs the numbers on endnotes pages,
+aligned right to two placeholders, producing this:
<br/>
<span id="endnote-numbering-alignment-example" class="pre-in-pp">
9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
@@ -5606,66 +5847,82 @@ to two placeholders, producing this:
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
</span>
-The macros to alter this behaviour are
+If you wish to change either the alignment or the number of
+placeholders, the macro to use is ENDNOTE_NUMBERS_ALIGN.
</p>
-<ul style="margin-top: -.5em; margin-left: -.5em;">
- <li><a href="#endnote-numbers-align-right">ENDNOTE_NUMBERS_ALIGN_RIGHT</a></li>
- <li><a href="#endnote-numbers-align-left">ENDNOTE_NUMBERS_ALIGN_LEFT</a></li>
-</ul>
-<!-- -ENDNOTE_NUMBERS_ALIGN_RIGHT- -->
+<!-- -ENDNOTE_NUMBERS_ALIGN- -->
-<div id="endnote-numbers-align-right" class="box-macro-args">
-Macro: <b>ENDNOTE_NUMBERS_ALIGN_RIGHT</b> <kbd class="macro-args">&lt;number of placeholders&gt;</kbd>
+<div id="endnote-numbers-align" class="box-macro-args">
+Macro: <b>ENDNOTE_NUMBERS_ALIGN</b> <kbd class="macro-args">LEFT | RIGHT &lt;number of placeholders&gt;</kbd>
</div>
<p>
-ENDNOTE_NUMBERS_ALIGN_RIGHT takes one (non-optional) argument: the
-number of placeholders to reserve for right alignment of endnote
-numbers.
-</p>
-
-<p>
-For example, if you have fewer than ten endnotes, you might want to do
+ENDNOTE_NUMBERS_ALIGN determines how endnote numbers are aligned. If you invoke
<br/>
<span class="pre-in-pp">
- .ENDNOTE_NUMBERS_ALIGN_RIGHT 1
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 2
</span>
-which would ensure that the endnote numbers hang, but are all flush
-with the page&#8217;s left margin. If, god help you, you have over a hundred
-endnotes, you&#8217;d want to do
-<br/>
+the periods (dots) after the numbers will align, like this
<span class="pre-in-pp">
- .ENDNOTE_NUMBERS_ALIGN_RIGHT 3
-</span>
-to ensure that the numbers hang and are properly right-aligned.
-</p>
+ 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.
-<!-- -ENDNOTE_NUMBERS_ALIGN_LEFT- -->
+ 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.
+</span>
+If you invoke
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN LEFT 2
+</span>
+the first digits of the numbers will line up flush left, like this
+<span class="pre-in-pp">
+ 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.
-<div id="endnote-numbers-align-left" class="box-macro-args">
-Macro: <b>ENDNOTE_NUMBERS_ALIGN_LEFT</b>
-</div>
+ 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.
+</span>
+The argument <kbd>&lt;number of placeholders&gt;</kbd> represents
+the maximum size of the numbers, expressed as the number of
+digits in the largest number. Numbers in the range 0-9 require
+1 placeholder; in the range 10-99, 2 placeholders; in the range
+100-999 3 placeholders, and so on.
+</p>
<p>
-If you don&#8217;t want the endnote numbers to hang and right-align,
-invoke <kbd>.ENDNOTE_NUMBERS_ALIGN_LEFT</kbd>, which doesn&#8217;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:
+Therefore, if you have fewer than ten endnotes,
<br/>
<span class="pre-in-pp">
- 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.
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
</span>
+would ensure proper right alignment of endnote numbers.
+</p>
+
+<p>
+Mom&#8217;s default for endnote number alignment is to align the
+numbers right to two placeholders.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+ENDNOTE_NUMBERS_ALIGN can also be used to establish the alignment
+and number of placeholders when your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>SUPERSCRIPT</kbd>. Furthermore, it can be used to establish
+the number of placeholders to reserve when your ENDNOTE_MARKER_STYLE
+is <kbd>LINE</kbd>, even though, in such an instance, the numbers
+themselves are always aligned right. See
+<a href="#endnote-linenumbers-note">here</a>
+for examples.
+</p>
+</div>
+
<div class="rule-short"><hr/></div>
<!-- ==================================================================== -->
@@ -6015,7 +6272,7 @@ etc) exits the current margin note.
<p>
The use of FINIS is optional. If you invoke it (at the end of a
document before
-<kbd><a href="#toc">.TOC</a></kbd>
+<kbd><a href="tables-of-contents.html#toc">.TOC</a></kbd>
or
<kbd><a href="#endnotes">.ENDNOTES</a></kbd>),
mom deposits the word, <b>END</b>, centred after a blank line,
@@ -6049,7 +6306,7 @@ The use of FINIS is optional, but if you use it, it should be the
last macro you invoke in a document (before
<kbd><a href="#endnotes">.ENDNOTES</a></kbd>
or
-<kbd><a href="#toc">.TOC</a></kbd>).
+<kbd><a href="tables-of-contents.html#toc">.TOC</a></kbd>).
See
<a href="#finis-intro">above</a>
for a description of how FINIS behaves.
diff --git a/contrib/mom/momdoc/docprocessing.html b/contrib/mom/momdoc/docprocessing.html
index 6c52b5cc..5896d1cc 100644
--- a/contrib/mom/momdoc/docprocessing.html
+++ b/contrib/mom/momdoc/docprocessing.html
@@ -1417,15 +1417,20 @@ and revision information in the headers) or a final copy.
<h3 id="index-docstyle" class="macro-list">Docstyle macros</h3>
<ul class="macro-list">
<li><a href="#doctype">DOCTYPE</a>
- <ul class="sublist">
- <li><a href="#doctype-underline">DOCTYPE_UNDERLINE</a> &ndash; control DOCTYPE <kbd>NAMED</kbd> underlining</li>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#doctype-underline">DOCTYPE_UNDERLINE</a> &ndash; how to control DOCTYPE <kbd>NAMED</kbd> underlining</li>
</ul></li>
<li><a href="#printstyle">PRINTSTYLE</a> &ndash; non-optional macro required for document processing
- <ul class="sublist" style="line-height: 140%;">
+ <ul style="margin-left: -.5em; list-style-type: disc;">
<li><a href="#typeset-defaults">Defaults for PRINTSTYLE TYPESET</a></li>
<li><a href="#typewrite-defaults">Defaults for PRINTSTYLE TYPEWRITE</a>
- <ul class="sublist sub">
- <li><a href="#typewrite-control">PRINTSTYLE TYPEWRITE control macros</a> &ndash; underlining</li>
+ <ul style="margin-left: -.5em; list-style-type: circle;">
+ <li><a href="#typewrite-control">PRINTSTYLE TYPEWRITE control macros</a>
+ <ul style="margin-left: -1.5em; list-style-type: square;">
+ <li><a href="#typewriter-family">Family</a></li>
+ <li><a href="#typewriter-size">Point size</a></li>
+ <li><a href="#typewriter-underlining">Underlining of italics</a></li>
+ </ul></li>
</ul></li>
</ul></li>
<li><a href="#copystyle">COPYSTYLE</a></li>
@@ -1736,18 +1741,6 @@ If, for some reason, you would prefer the output of
<kbd>TYPEWRITE</kbd> the optional argument, <kbd>SINGLESPACE</kbd>.
</p>
-<div class="box-tip">
-<p class="tip">
-<span class="note">Note:</span>
-If you absolutely must have a leading other than typewriter double-
-or singlespaced, the only way to get it is with the
-<a href="#doc-lead">DOC_LEAD</a>
-macro, and then only if DOC_LEAD is set <i>before</i> you invoke the
-<a href="#start">START</a>
-macro.
-</p>
-</div>
-
<div class="defaults-container">
<h3 id="typeset-defaults" class="docs defaults" style="margin-top: 0;">PRINTSTYLE TYPESET defaults</h3>
<span class="pre defaults">
@@ -1786,7 +1779,39 @@ macro.
</div>
<div class="box-tip" style="margin-top: 1.5em;">
-<h3 id="typewrite-control" class="docs control">PRINTSTYLE TYPEWRITE control macros (underlining)</h3>
+<h3 id="typewrite-control" class="docs control">PRINTSTYLE TYPEWRITE control macros</h3>
+
+<h4 id="typewriter-family" class="docs">Family</h4>
+
+<p style="margin-top: .5em;">
+If you&#8217;d prefer a monospace
+<a href="definitions.html#family">family</a>
+for PRINTSTYLE <kbd>TYPEWRITE</kbd> other than than mom's default,
+Courier, you can change it with
+<kbd>.TYPEWRITER_FAMILY&nbsp;&lt;family&gt;</kbd> (or
+<kbd>.TYPEWRITER_FAM</kbd>). Since groff ships with only the
+Courier family, you will have to install any other monospace family
+yourself. See
+<a href="appendices.html#fonts">Adding PostScript fonts to
+groff</a>.
+</p>
+
+<h4 id="typewriter-size" class="docs">Point size</h4>
+
+<p style="margin-top: .5em;">
+If you&#8217;d like a smaller or larger point size for
+for PRINTSTYLE <kbd>TYPEWRITE</kbd> (mom&#8217;s default is 12-point),
+you can change it with
+<kbd>.TYPEWRITER_SIZE&nbsp;&lt;size&gt;</kbd>. There&#8217;s no need to
+add a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to the <kbd>&lt;size&gt;</kbd> argument; points is assumed. Be
+aware, however, that regardless of point size, mom&#8217;s
+leading/linespacing for <kbd>TYPEWRITE</kbd> is fixed at 24-point
+for double-spaced, and 12-point for single-spaced.
+</p>
+
+<h4 id="typewriter-underlining" class="docs">Underlining of italics</h4>
<p>
In PRINTSTYLE <kbd>TYPEWRITE</kbd>, mom, by default, underlines
@@ -1796,7 +1821,7 @@ anything that looks like italics. This includes the
for pseudo-italics.
</p>
-<p>
+<p id="printstyle-italics">
If you&#8217;d prefer that mom were less bloody-minded
about pretending to be a typewriter (i.e. you&#8217;d like italics and
pseudo-italics to come out as italics), use the control macros
@@ -2123,7 +2148,7 @@ below have the following meanings:
</p>
</div>
-<p>
+<p style="margin-top: -.75em;">
Other macros that deal with type style, or refinements thereof
(<b>KERN, LIGATURES, HY, WS, SS,</b> etc.), behave normally.
It is not recommended that you set up tabs or indents prior to
@@ -2158,7 +2183,7 @@ you must do so immediately after invoking the tag. Furthermore,
the change affects <i>only</i> the current invocation of the tag.
Subsequent invocations of the same tag for which you want the same
change require that you invoke <kbd>.LEFT</kbd>, <kbd>.RIGHT</kbd>
-or <kbd> CENTER</kbd> immediately after every invocation of the tag.
+or <kbd>.CENTER</kbd> immediately after every invocation of the tag.
</p>
<!-- -INCLUDE- -->
diff --git a/contrib/mom/momdoc/goodies.html b/contrib/mom/momdoc/goodies.html
index 69457a13..69d402c3 100644
--- a/contrib/mom/momdoc/goodies.html
+++ b/contrib/mom/momdoc/goodies.html
@@ -61,12 +61,11 @@ nearly indispensable) routines to simplify typesetting.
<ul class="sublist sub">
<li class="list-head-goodies text-color"><a href="#underscore-weight">Controlling the weight of underscores</a></li>
<li class="list-head-goodies text-color"><a href="#underscore-color">Colorizing underscores</a></li>
- <li class="list-head-goodies text-color"><a href="#underscore-notes">Notes on underscoring</a></li>
</ul></li>
<li class="list-head-goodies text-color"><a href="#underscore2">UNDERSCORE2</a> <span class="normal-smaller">&ndash; double underscore</span></li>
- <li class="list-head-goodies text-color"><a href="#underline">UNDERLINE</a> <span class="normal-smaller">&ndash; fixed-width fonts only</span>
+ <li class="list-head-goodies text-color"><a href="#underline">UNDERLINE</a>
<ul class="sublist sub">
- <li class="list-head-goodies text-color"><a href="#ul">\*[UL]</a> <span class="normal-sub-sub">&ndash; inline escape to underline; fixed-width fonts only</span></li>
+ <li class="list-head-goodies text-color"><a href="#ul">\*[UL]</a> <span class="normal-sub-sub">&ndash; inline escape to underline</span></li>
</ul></li>
</ul></li>
<li class="list-head-goodies no-anchor"><span style="font-size: 90%;">Padding</span>
@@ -137,9 +136,9 @@ to feel welcome. Consequently, she tries for easy-to-grasp,
self-explanatory macro names. However, mom knows that people have
their own ways of thinking, their own preferences, their own habits.
Some of her macro names may not suit you; they might be too long,
-or aren&#8217;t what you automatically think of when you want to do
-a particular thing, or might conflict with habits you've developed
-over the years.
+or aren&#8217;t what you automatically think of when you want to
+do a particular thing, or might conflict with habits you&#8217;ve
+developed over the years.
</p>
<p>
@@ -195,9 +194,9 @@ creating an aliases file of the form
Put the file someplace convenient and source it (include it) at the
beginning of your documents with the
<a href="docprocessing.html#include">INCLUDE</a>
-macro. Assuming that you've created an aliases file called
+macro. Assuming that you&#8217;ve created an aliases file called
<b>mom-aliases</b> in your home directory under a directory called
-<b>Mom</b>, you'd source it by placing
+<b>Mom</b>, you&#8217;d source it by placing
<br/>
<span class="pre-in-pp">
.INCLUDE /home/&lt;username&gt;/Mom/mom-aliases
@@ -278,8 +277,8 @@ The same applies to tabs
(<a href="typesetting.html#tab-set">typesetting</a>
or
<a href="typesetting.html#st">string</a>)
-to which you've passed the J or QUAD argument. You must insert
-<kbd>.BR</kbd> yourself, or risk a portion of your text
+to which you&#8217;ve passed the J or QUAD argument. You must
+insert <kbd>.BR</kbd> yourself, or risk a portion of your text
disappearing into a black hole.
</p>
</div>
@@ -523,7 +522,7 @@ Macro: <b>STRING</b> <kbd class="macro-args">&lt;name&gt; &lt;what you want in t
<p>
You may find sometimes that you have to type out portions of text
-repeatedly. If you'd like not to wear out your fingers, you can
+repeatedly. If you&#8217;d like not to wear out your fingers, you can
define a string that, whenever you call it by name, outputs whatever
you put into it.
</p>
@@ -677,7 +676,7 @@ The string must be enclosed in double-quotes, like this:
.UNDERSCORE "Unmonitored monopolies breed high prices and poor products."&nbsp;
</span>
If you wish to change the distance of the rule from the baseline,
-use the optional argumen
+use the optional argument
<kbd>&lt;distance&nbsp;below&nbsp;baseline&gt;</kbd>
(with a unit of measure).
<br/>
@@ -688,11 +687,22 @@ The above places upper edge of the underscore 3 points below the
<a href="definitions.html#baseline">baseline</a>.
</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+UNDERSCORE does not work across line breaks in output copy, which is
+to say that you can&#8217;t underscore a multi-line passage simply
+by putting the text of the whole thing in the string you pass to
+UNDERSCORE. If you need to several lines of type, use
+<a href="#underline">UNDERLINE</a>.
+</p>
+</div>
+
<h3 id="underscore-weight" class="docs">Controlling the weight of underscores</h3>
<p>
The weight (thickness) of underscores may be controlled with the
macro, UNDERSCORE_WEIGHT. Thus, if you want underscores with a
-weight of 1-1/2 points, you'd invoke:
+weight of 1-1/2 points, you&#8217;d invoke:
<br/>
<span class="pre-in-pp">
.UNDERSCORE_WEIGHT 1.5
@@ -744,56 +754,6 @@ text in red, underscore in blue, and prevailing type in black:
</span>
</p>
-<h3 id="underscore-notes" class="docs">Notes on underscoring</h3>
-<p>
-UNDERSCORE does not work across line breaks in output copy, which is
-to say that you can&#8217;t underscore a multi-line passage simply
-by putting the text of the whole thing in the string you pass to
-UNDERSCORE. Each
-<a href="definitions.html#outputline">output line</a>
-or portion of an output line you want underscored must be plugged
-separately into UNDERSCORE. Bear in mind, though, that underscoring
-should at best be an occasional effect in typeset copy. If you want
-to emphasize an entire passage, it&#8217;s much, much better to
-change fonts (e.g. to italic or bold).
-</p>
-
-<p>
-You can easily and successfully underline entire passages in
-simulated typewriter-style copy (i.e. if your font is a monospaced
-one, like Courier, or you&#8217;re using the document processing
-macro
-<a href="#printstyle">PRINTSTYLE TYPEWRITE</a>),
-with the
-<a href="#underline">UNDERLINE</a>
-macro. UNDERLINE is designed specifically for this purpose, but
-works only with the monspaced fonts.
-</p>
-
-<p>
-Mom doesn&#8217;t always get the position and length of the
-underscore precisely right in
-<a href="definitions.html#just">justified</a>
-copy, although she&#8217;s fine with all the other
-<a href="definitions.html#filled">fill modes</a>,
-as well as with the no-fill modes. The reason is that when text is
-justified, the word spacing may expand to fill the line, but that
-doesn&#8217;t happen until <i>after</i> the line has been processed
-in all other respects&mdash;including establishing how long to make
-an underscore. A workaround is to prepend the backslash character
-(<kbd>\</kbd>) to each word space in the string passed
-to UNDERSCORE. The word spacing of the underscored string may be
-slightly smaller than the word space of the remainder of the line,
-but in most cases, the difference isn&#8217;t visually noticeable.
-</p>
-
-<p>
-UNDERSCORE tends to confuse <b>gxditview</b>, even though the
-output, when printed, looks fine. Generally, I recommend using
-<b>gv</b> to preview files anyway. See the section on
-<a href="using.html#using-previewing">previewing</a>.
-</p>
-
<!-- -UNDERSCORE2- -->
<div class="macro-id-overline">
@@ -853,20 +813,9 @@ the macro
(q.v).
</p>
-<div class="box-tip">
-<p class="tip">
-<span class="note">Note:</span>
-The same restrictions and caveats apply to UNDERSCORE2 as to
-UNDERSCORE. See the
-<a href="#underscore-notes">NOTES</a>
-for UNDERSCORE.
-</p>
-</div>
-
-<!-- -UNDERLINE- -->
-
+<!-- -UNDERLINE- -->
<div class="macro-id-overline">
-<h3 id="underline" class="macro-id">Underline text &mdash; monospaced fonts only</h3>
+<h3 id="underline" class="macro-id">Underline</h3>
</div>
<div class="box-macro-args">
@@ -874,70 +823,73 @@ Macro: <b>UNDERLINE</b> <kbd class="macro-args">toggle</kbd>
</div>
<p>
-If your font is monospaced, like Courier, or you&#8217;re using the
-document processing macro
-<a href="#printstyle">PRINTSTYLE TYPEWRITE</a>,
-UNDERLINE allows you to underline words and passages that, in
-typeset copy, would be italicized. You invoke UNDERLINE as you do
-with all toggle macros &mdash; by itself (i.e. with no argument) to
-initiate underlining, and with any argument (OFF, QUIT, X, etc) to
-turn underlining off.
+The distinction between underscoring and underlining is that
+underscoring is suitable for occasional effects (a word here, a word
+there), whereas underlining underlines whole passages of type.
+Furthermore, you cannot colorize underlining, and there&#8217;s a
+special macro,
+<a href="#underline-specs">UNDERLINE_SPECS</a>,
+to control the weight and distance from the baseline of the
+underline.
</p>
<p>
-When on, UNDERLINE underlines letters, words and numbers, but not
-punctuation or spaces. This makes for more readable copy than a
-solid underline.
+UNDERLINE is a toggle macro, therefore you invoke it by itself (i.e.
+with no argument) to initiate underlining, and with any argument
+(<kbd>OFF, QUIT, X,</kbd> etc) to turn it off.
</p>
<div class="box-tip">
-<p class="tip">
+<p class="tip-top">
<span class="note">Note:</span>
Underlining may also be turned on and off
<a href="definitions.html#inlines">inline</a>
with the escapes
<kbd><a href="#ul">\*[UL]...\*[ULX]</a></kbd>.
</p>
-</div>
-
-<!-- -UL- -->
-<div class="macro-id-overline">
-<h3 id="ul" class="macro-id">Inline escape for underlining &mdash; monospaced fonts only</h3>
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+Neither <kbd>.UNDERLINE</kbd> nor <kbd>\*[UL]</kbd> persist past the
+current document element tag. For example, if you turn underlining
+on in a paragraph
+(<kbd><a href="docelement.html#pp">.PP</a></kbd>),
+your next paragraph will not be underlined (nor your next head,
+subhead, etc), regardless of whether you explicitly turn underlining
+off.
+</p>
</div>
-<div class="box-macro-args">
-Inline: <b>\*[UL]...\*[ULX]</b>
-</div>
+<h4 id="underline-specs" class="docs">UNDERLINE_SPECS</h4>
<p>
-If your font is a monospaced one, like Courier, or you&#8217;re
-using the document processing macro
-<a href="#printstyle">PRINTSTYLE TYPEWRITE</a>,
-<kbd>\*[UL]...\*[ULX]</kbd> underlines words and
-passages that, in typeset copy, would be italicized.
+The weight of underlining and the distance from the baseline is
+set with
+<br/>
+<span class="pre-in-pp">
+ .UNDERLINE_SPECS &lt;weight&gt; &lt;distance&gt;
+</span>
+The <kbd>&lt;weight&gt;</kbd> argument can be expressed in any
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+you like, but points is the most usual. Mom&#8217;s default is 1/2 point
+(.5p). The same holds for the <kbd>&lt;distance&gt;</kbd> argument;
+mom&#8217;s default is 1-1/4 points (1.25p).
</p>
-<p>
-<kbd>\*[UL]</kbd> underlines all letters, words and numbers
-following it, but not punctuation or spaces. This makes for more
-readable copy than a solid underline. When you no longer want
-underlining, <kbd>\*[ULX]</kbd> turns underlining off.
-</p>
+<!-- -UL- -->
+
+<h4 id="ul" class="docs">INLINE ESCAPE FOR UNDERLINING</h4>
<p>
-The macro
-<kbd><a href="#underline">UNDERLINE</a></kbd>
-and the inline escape <kbd>\*[UL]</kbd> are functionally
-identical, hence
+The macro pair,
+<kbd><a href="#underline">.UNDERLINE</a></kbd> /
+<kbd>.UNDERLINE&nbsp;OFF</kbd>, and the inline escapes,
+<kbd>\*[UL]</kbd> / <kbd>\*[ULX]</kbd>, are functionally identical,
+hence, in
+<a href="definitions.html#filled">fill</a>
+modes
<br/>
<span class="pre-in-pp">
- .FAM C
- .FT R
- .PT_SIZE 12
- .LS 24
- .SS 0
- .QUAD LEFT
Which should I heed?
.UNDERLINE
Just do it
@@ -950,12 +902,6 @@ identical, hence
produces the same result as
<br/>
<span class="pre-in-pp">
- .FAM C
- .FT R
- .PT_SIZE 12
- .LS 24
- .SS 0
- .QUAD LEFT
Which should I heed? \*[UL]Just do it\*[ULX] or \*[UL]just say no?\*[ULX]
</span>
</p>
@@ -1006,7 +952,7 @@ The
<a href="goodies.html#pad-marker">pad marker</a>
(see below) is <kbd>#</kbd> (the pound or number sign
on your keyboard) and can be used multiple times in a line. With
-that in mind, here&#8217;s how you'd input the Date/Signature line
+that in mind, here&#8217;s how you&#8217;d input the Date/Signature line
(assuming a length of 30 picas):
<br/>
<span class="pre">
@@ -1099,7 +1045,7 @@ marker with
<kbd><a href="#pad-marker">PAD_MARKER</a></kbd>.
Also, be aware that <kbd>#</kbd> as a pad marker
only applies within the PAD macro; at all other times it prints
-literally, just as you'd expect.
+literally, just as you&#8217;d expect.
</p>
<p class="tip-bottom">
@@ -1138,7 +1084,7 @@ changes the pad marker to <kbd>@</kbd>.
</p>
<p>
-Once you've changed the pad marker, the new marker remains in effect
+Once you&#8217;ve changed the pad marker, the new marker remains in effect
for every instance of
<a href="#pad">PAD</a>
until you change it again (say, back to the pound sign).
@@ -1393,9 +1339,9 @@ smaller.
<h3 id="dropcap-color" class="control-macro">&bull;&nbsp;DROPCAP_COLOR</h3>
<p style="margin-left: .66em;">
-If you'd like your drop cap colourized, simply invoke
-<kbd>.DROPCAP_COLOR&nbsp;&lt;color&gt;</kbd> with the name of a colour you've already
-created (&#8220;initialized&#8221;) with
+If you&#8217;d like your drop cap colourized, simply invoke
+<kbd>.DROPCAP_COLOR&nbsp;&lt;color&gt;</kbd> with the name of a
+colour you&#8217;ve already created (&#8220;initialized&#8221;) with
<a href="color.html#newcolor">NEWCOLOR</a>
or
<a href="color.html#xcolor">XCOLOR</a>.
@@ -1467,15 +1413,14 @@ blessings not only in this lifetime, but in all lifetimes to come.
<p>
By default, mom raises superscripts 1/3 of an
<a href="definitions.html#ems">em</a>
-above the baseline. If you&#8217;re not happy with this default, you can
-change it by invoking SUPERSCRIPT_RAISE_AMOUNT with
-the amount you want them raised. A
+above the baseline. If you&#8217;re not happy with this default,
+you can change it by invoking SUPERSCRIPT_RAISE_AMOUNT with the
+amount you want them raised. A
<a href="definitions.html#unitofmeasure">unit of measure</a>
must be appended directly to the amount. Thus, you want
superscripts raised by 3
<a href="definitions.html#picaspoints">points</a>
-instead of 1/3 em, you'd
-do
+instead of 1/3 em, you&#8217;d do
<br/>
<span class="pre-in-pp">
.SUPERSCRIPT_RAISE_AMOUNT 3p
diff --git a/contrib/mom/momdoc/headfootpage.html b/contrib/mom/momdoc/headfootpage.html
index 149bd1ad..d411874a 100644
--- a/contrib/mom/momdoc/headfootpage.html
+++ b/contrib/mom/momdoc/headfootpage.html
@@ -2129,21 +2129,18 @@ on, invoke the macro without an argument.
<h2 id="blank-pages" class="macro-group">Inserting blank pages into a document</h2>
<div class="box-macro-args">
-Macro: <b>BLANKPAGE</b> <kbd class="macro-args">&lt;# of blank pages to insert&gt; &lt;NULL&gt;</kbd>
+Macro: <b>BLANKPAGE</b> <kbd class="macro-args">&lt;# of blank pages to insert&gt; [DIVIDER [NULL]]</kbd>
</div>
<p>
This one does exactly what you&#8217;d expect&mdash;inserts a blank
-page into the document. Unless you give the optional argument,
+page (or pages) into a document. Unless you give the optional argument,
<kbd>NULL</kbd>, mom silently increments the page number of every
blank page and keeps track of
<a href="rectoverso.html#recto-verso">recto/verso</a>
-stuff, but otherwise does nothing. It&#8217;s up to you, the user,
-to figure out what to do with this feature. However, it&#8217;s
-worth noting that without it, inserting completely blank pages,
-to use a vernacular Québécois phrase, <i>c'est pas
-évident</i>. (Somewhere between <i>it isn&#8217;t easy, it
-isn&#8217;t obvious</i> and <i>it isn&#8217;t fun</i>).
+stuff, but otherwise does nothing. This is useful for forcing new
+sections of a document onto recto pages, but may have other
+applications as well.
</p>
<p>
@@ -2154,7 +2151,16 @@ one blank page, you have to tell mom:
<span class="pre-in-pp">
.BLANKPAGE 1
</span>
-The optional argument, <kbd>NULL</kbd>, allows you to output the
+The optional argument, <kbd>DIVIDER</kbd>, must be given if
+you&#8217;re inserting a blank page before the start of any new
+document section (i.e. a new chapter, or endnotes, a bibliography,
+or table of contents). Without the <kbd>DIVIDER</kbd> argument, mom
+simply inserts the blank pages and prepares the next page to receive
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+<kbd>NULL</kbd>, which is also optional, allows you to output the
specified number of pages without mom incrementing the page number
for each blank page. She will, however, continue to keep track
of which pages are recto/verso if recto/verso printing has been
diff --git a/contrib/mom/momdoc/refer.html b/contrib/mom/momdoc/refer.html
index 9fb53cf9..e356f4fc 100644
--- a/contrib/mom/momdoc/refer.html
+++ b/contrib/mom/momdoc/refer.html
@@ -39,19 +39,35 @@ FDL in the main directory of the groff source package.
<h1 class="docs">Bibliographies and references</h1>
-<div style="width: 53%; margin: auto;">
+<div style="width: 75%; margin: auto;">
<ul class="no-enumerator">
<li><a href="#intro-ref">Introduction to bibliographies and references</a></li>
- <li><a href="#tutorial-ref">Tutorial &ndash; using mom with <kbd>refer</kbd></a>
+ <li><a href="#tutorial-ref">Tutorial on <kbd>refer</kbd> usage with mom</a>
<ul style="margin-left: -.5em; list-style-type: disc;">
- <li><a href="#db-ref">Creating a <kbd>refer</kbd> database</a></li>
- <li><a href="#rcommands-ref">Required <kbd>refer</kbd> commands</a></li>
- <li><a href="#accessing-ref">Accessing references in your documents</a></li>
- <li><a href="#where-ref">Telling mom where to put references</a></li>
- <li><a href="#biblio-ref">Creating bibliography pages</a></li>
+ <li><a href="#db-ref">Create a <kbd>refer</kbd> database</a></li>
+ <li><a href="#rcommands-ref">Insert a <kbd>refer</kbd> block</a></li>
+ <li><a href="#placement-ref">Tell mom where you want your references (footnotes/endnotes or a bibliography)</a></li>
+ <li><a href="#accessing-ref">Accessing references in the database</a></li>
+ <li><a href="#fn-en-recipe">Entering footnote/endnote references</a></li>
+ <li><a href="#bibliography-recipe">Creating a bibliography</a></li>
<li><a href="#invoking-ref">Invoking groff with mom and <kbd>refer</kbd></a></li>
</ul></li>
- <li><a href="#index-ref">Bibliography and reference macros</a>
+ <li><a href="#mla">MLA (Modern Language Association) style</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#ref-styles">Types of references (endnote/footnote or bibliographic)</a></li>
+ <li><a href="#parenthetical">Inserting parenthetical references into the text</a></li>
+ </ul></li>
+ <li><a href="#database">The <kbd>refer</kbd> database</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#database-intro">Introduction</a></li>
+ <li><a href="#database-rules">Rules</a></li>
+ <li><a href="#fields-quick">Quick guide to field identifiers (%A for author, %T for title, etc)</a></li>
+ <li><a href="#fields-specifics">Field identifiers: specifics, usage and examples</a>
+ <ul style="margin-left: -.5em; list-style-type: square;">
+ <li><a href="#ibid">avoiding ibid, idem and their ilk</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#index-ref">The bibliography and reference macros</a>
<ul style="margin-left: -.5em; list-style-type: disc;">
<li><a href="#biblio-control">Bibliography control macros and defaults</a></li>
</ul></li>
@@ -63,38 +79,35 @@ FDL in the main directory of the groff source package.
<h2 id="intro-ref" class="docs">Introduction to bibliographies and references</h2>
<p>
-Mom provides the ability to automatically format and generate
-bibliography pages, as well as footnote or endnote references, or
-references embedded in the text. She accomplishes this by working
-in conjunction with a special groff program called
-<kbd>refer</kbd>.
+Mom provides the ability to format and generate bibliographies, as
+well as footnote or endnote references, in MLA (Modern Language
+Association) style. She accomplishes this by working in conjunction
+with a special groff program called <kbd>refer</kbd>.
</p>
<p>
-<kbd>refer</kbd> is, in groff-speak, a pre-processor, which is to
-say that it scans your files, looking for very specific control
-lines (i.e. lines that begin with a dot, the same way macros do).
-If <kbd>refer</kbd> doesn't find them, it can&#8217;t do it&#8217;s
-job and neither can mom. The scanning is done before any other
-document processing.
+<kbd>Refer</kbd> requires first that you create a database of works
+that will be cited in your documents. Once that&#8217;s done, special
+macros let you briefly key in references to entries in the database
+and have mom format them with respect to order, punctuation and
+italicization in footnotes, endnotes, or a full bibliography.
</p>
<p>
-<kbd>refer</kbd> is a program that&#8217;s been around for a
-long time. It&#8217;s powerful and has many, many features.
-Unfortunately, the manpage (<kbd>man&nbsp;refer</kbd>), while
-complete and accurate, is dense and not a good introduction.
-(It&#8217;s a classic manpage Catch-22: the manpage is useful, but
-only after you know how to use the program.)
+<kbd>Refer</kbd> has been around for a long time. It&#8217;s
+powerful and has many, many features. Unfortunately, the manpage
+(<kbd>man&nbsp;refer</kbd>), while complete and accurate, is
+dense and not a good introduction. (It&#8217;s a classic manpage
+Catch-22: the manpage is useful only after you know how to use the
+program.)
</p>
<p>
In order to get mom users up and running with <kbd>refer</kbd>,
this section of mom&#8217;s documentation focuses exclusively, in a
recipe-like manner, on what you need to know to use <kbd>refer</kbd>
-satisfactorily in conjunction with mom. The information and
-instructions are not to be taken as a manual or tutorial on full
-<kbd>refer</kbd> usage. Much has been left out, on purpose.
+satisfactorily in conjunction with mom. The instructions are not to
+be taken as a manual on full <kbd>refer</kbd> usage.
</p>
<p>
@@ -106,36 +119,9 @@ cases, may be all you need.
</p>
<p>
-(For the benefit of old groff-hands: <kbd>refer</kbd>
-support in mom is heavily based on the
-<kbd>refer</kbd> module of the &#8220;ms&#8221; macros. The
-choice was deliberate so that those wishing to play around with
-mom&#8217;s bibliography formatting style would be
-tinkering with the familiar.)
-</p>
-
-<p>
-<kbd>refer</kbd> requires first that you create a
-bibliographic database. From the information contained in the
-database, mom formats and generates bibliographies
-and references in MLA (Modern Language Association) style. MLA
-style is clean, contemporary and flexible, and is widely used in the
-humanities, where the range of material that has to be referenced
-can run from simple books to live interviews and film.
-</p>
-
-<p>
-Once you have created your database, you instruct <kbd>refer</kbd>
-(and mom) to access entries in it by supplying keywords associated
-with the entries. Depending on what you&#8217;ve instructed mom to
-do, she will put the entries&mdash;fully and properly formatted
-with respect to order, punctuation and italicization&mdash;in
-footnotes, endnotes, or a full bibliography.
-</p>
-
-<p>
-I encourage anyone interested in what MLA style looks like&mdash;and, by extension, how your bibliographies and references will look
-after mom formats them&mdash;to check out
+I encourage anyone interested in what MLA style looks
+like&mdash;and, by extension, how your bibliographies and references
+will look after mom formats them&mdash;to check out
<br/>
<span class="pre-in-pp">
http://www.aresearchguide.com/12biblio.html
@@ -143,41 +129,39 @@ after mom formats them&mdash;to check out
or any other website or reference book on MLA style.
</p>
-<div class="rule-short"><hr/></div>
+<div class="rule-short" style="margin-top: 1em;"><hr/></div>
<div class="examples-container" style="margin-top: 1.5em; margin-bottom: 1.5em;">
-<h3 id="tutorial-ref" class="docs">Tutorial &ndash; Using <kbd style="font-style: normal; text-transform: none;">refer</kbd> with mom</h3>
-<ol style="margin-top: 1em; margin-left: -1em; margin-bottom: -.5em;">
- <li><a href="#db-ref">Creating a <kbd>refer</kbd> database</a>
- <ul style="margin-left: -.5em">
- <li><a href="#example-refer-database">Example <kbd>refer</kbd> database</a></li>
- <li><a href="#field-identifiers">Meanings of the field identifiers (<kbd>%A</kbd>, <kbd>%T</kbd>, etc.)</a></li>
+<h3 id="tutorial-ref" class="docs">Tutorial on refer usage with mom</h3>
+<ol style="margin-top: 1em; margin-bottom: -.5em;">
+ <li><a href="#db-ref">Create a <kbd>refer</kbd> database</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#example-refer-database">example <kbd>refer</kbd> database</a></li>
</ul></li>
- <li><a href="#rcommands-ref">Required <kbd>refer</kbd> commands</a>
- <ul style="margin-left: -.5em">
- <li><a href="#refer-block1">Required <kbd>refer</kbd> block (embedded references)</a></li>
- <li><a href="#refer-block2">Required <kbd>refer</kbd> block (bibliographies)</a></li>
+ <li><a href="#rcommands-ref">Insert a <kbd>refer</kbd> block</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#fn-en-block">refer block for footnotes/endnotes</a></li>
+ <li><a href="#bibliography-block">refer block for bibliographies</a></li>
</ul></li>
- <li><a href="#accessing-ref">Accessing references in your documents</a></li>
- <li><a href="#where-ref">Telling mom where to put references</a></li>
- <li><a href="#biblio-ref">Creating bibliography pages</a></li>
+ <li><a href="#placement-ref">Tell mom where you want your references (footnotes/endnotes or a bibliography)</a></li>
+ <li><a href="#accessing-ref">Accessing references in the database</a></li>
+ <li><a href="#fn-en-recipe">Entering footnote/endnote references</a></li>
+ <li><a href="#bibliography-recipe">Creating a bibliography</a></li>
<li><a href="#invoking-ref">Invoking groff with mom and <kbd>refer</kbd></a></li>
</ol>
-<h4 id="db-ref" class="docs">1. Creating a refer database</h4>
+<h4 id="db-ref" class="docs">1. Create a refer database</h4>
<p>
-The first step in using <kbd>refer</kbd> with mom is setting
-up your bibliographic database. The database is a text file
-containing entries for each reference you want to access from your
-mom files. The file is <i>not</i> a &#8220;mom file&#8221;; it's an
-entirely separate database containing no mom macros. You may set
-up individual databases for individual documents, or create a large
-database that contains every reference you&#8217;ll ever use.
+The first step in using <kbd>refer</kbd> with mom is creating a
+database. The database is a text file containing entries for the
+works you will be citing. You may set up separate databases for
+individual documents, or create a large database that can be
+accessed by many documents.
</p>
<p>
-Entries (&#8220;records&#8221; in refer-speak) in the database file
+Entries (&#8220;records&#8221; in refer-speak) in the database
are separated from each other by a single, blank line. The records
themselves are composed of single lines (&#8220;fields&#8221;) with
no blank lines between them. Each field begins with a percent
@@ -186,13 +170,11 @@ e.g. <kbd>%A</kbd> or <kbd>%T</kbd>. The letter identifies
what part of a bibliographic entry the field refers to: Author,
Title, Publisher, Date, etc. After the field identifier comes
a single space, followed by the information appropriate to
-field. No punctuation should go at the ends of fields; mom adds
-what&#8217;s correct automatically. Do note, however, that
-author(s) (<kbd>%A</kbd>) requires that you enter the author
-information exactly as you wish it to come out (minus the period),
-including the comma after the first author&#8217;s last name.
+field.
</p>
+<!-- Add rules for punctuation and italics -->
+
<p>
Here&#8217;s an example database containing two records so you can
visualize what the above paragraph says.
@@ -201,574 +183,755 @@ visualize what the above paragraph says.
<div id="example-refer-database" class="examples" style="margin-top: -.5em;">Example <kbd>refer</kbd> database</div>
<div class="examples-container" style="padding-bottom: 1em;">
<span class="pre">
-%A Schweitzer, Albert
-%A C.M. Widor
-%T J.S. Bach
-%l Ernest Newman
-%V Vol 2
+%A Terry Pratchett
+%A Neil Gaiman
+%T Good Omens
%C London
-%I Adam and Charles Black
-%D 1923
-%O 2 vols
-%K bach vol 2
+%I Gollancz
+%D 1990
-%A Schaffter, Peter
+%A Peter Schaffter
%T The Schumann Proof
%C Toronto
%I RendezVous Press
%D 2004
-%K schumann schaffter
</span>
</div>
<p>
-The order in which you enter fields doesn&#8217;t matter. mom
-and <kbd>refer</kbd> will re-arrange them in the correct order
-for you. The meaning of the letters follows. There are, with
-<kbd>refer</kbd>, quite a few&mdash;all uppercase &mdash; which
-have, over time, come to be standard. Mom respects these. However,
-she adds to the list (mostly using lowercase letters).
+The order in which you enter fields doesn&#8217;t matter.
+<kbd>Refer</kbd> will re-arrange them for you.
</p>
-<div id="field-identifiers" class="examples" style="margin-top: -.5em;">Meanings of the field identifiers</div>
-<div class="examples-container" style="padding-bottom: 1em;">
-<span class="pre">
-%A Author &ndash; records may contain multiple Author fields,
- each beginning with %A, as in the first
- entry of the example database, above; mom
- and refer will figure out what to do when
- there are multiple authors
-%T Title &ndash; either the primary title (e.g. of a book),
- or the title of an article (e.g. within a
- book or journal or magazine)
-%B Book title &ndash; the title of a book when %T contains the
- title of an article; otherwise, use %T for
- book titles
-%R Report number &ndash; for technical reports
-%J Journal name &ndash; the name of a journal or magazine when %T
- contains the title of an article
-%E Editor &ndash; additional editors may be entered on
- separate %E lines (like authors); mom and
- refer will figure out what to do with them
- according to MLA rules
-%e Edition &ndash; the number or name of a specific edition
- (e.g. Second, 2nd, Collector&#8217;s, etc.)
-%V Volume &ndash; volume number of a journal or series of
- books
-%N Journal number &ndash; journal or magazine number
-%S Series &ndash; series name for books or journals that are
- part of a series
-%C City &ndash; the city of publication
-%I Publisher &ndash; the publisher; %I stands for "Issuer"
-%D Publication date
-%P Page number(s) &ndash; enter page ranges as, e.g., 22-25
-%G Gov&#8217;t.
- ordering number &ndash; for government publications
-%O Other &ndash; additional information or comments you want
- to appear at the end of the reference
-%K Keywords &ndash; any words that will clear up ambiguities
- resulting from database entries that
- contain, say, the same author or the same
- title
-%d original
- publication date &ndash; if different from the date of publication
-%a additions &ndash; for books, any additions to the original
- work, such as the preface to a new edition
- or a new introduction
-%t reprint title &ndash; if different from a work&#8217;s original title
-%l translator &ndash; if the translator is not the editor; if more
- than one translator, this field should
- contain all the names, with appropriate
- punctuation
-%r translator
- and editor &ndash; if tr. and ed. are one in the same;
-%s site name &ndash; for web sites, the site name
-%c content
- of site &ndash; for web sites, the content, if unclear
- (i.e. advertisement, cartoon, blog)
-%o organization &ndash; for web sites, the organization, group or
- sponsor of the site
-%a access date &ndash; for a website, the date you accessed it
-%u URL &ndash; for websites, the full URL of the site
-</span>
-</div>
-
-<div id="ref-disc-hy" class="box-tip">
-<p class="tip-top">
-<span class="tip">Tip:</span>
-If you have automatic hyphenation enabled in your document (you
-probably do), mom will hyphenate your references. This can be a
-problem because references typically contain several proper names,
-which shouldn&#8217;t be hyphenated. The solution is to prepend to
-any proper name in your <kbd>refer</kbd> database the groff
-<a href="definitions.html#discretionaryhyphen">discretionary hyphen</a>
-character, <kbd>\%</kbd>, like this:
-<br/>
-<span class="pre-in-pp">
- %A Hill, \%Reginald
-</span>
-</p>
-
-<p class="tip-bottom" style="margin-top: -1.5em;">
-Alternatively, you can turn hyphenation off entirely in references
-with the macro,
-<kbd><a href="#hyphenate-refs">HYPHENATE_REFS</a></kbd> <kbd>OFF</kbd>.
-</p>
-</div>
-
-<h4 id="rcommands-ref" class="docs">2. Required <kbd>refer</kbd> commands</h4>
+<h4 id="rcommands-ref" class="docs">2. Insert a refer block</h4>
<p>
Having set up your database, you now need to put some
-<kbd>refer</kbd>-specific commands at the top of your mom file. You
-cannot skip this step, nor can you source these commands with the
-groff
-<a href="definitions.html#primitives">primitive</a>,
-<kbd>.so</kbd> or the mom macro,
-<kbd><a href="docprocessing.html#include">.INCLUDE</a></kbd>.
-They <span style="font-weight: bold; font-style: italic;">must</span>
-appear, exactly as shown, at the top of every file containing
-references that need to be pre-processed with <kbd>refer</kbd>.
+<kbd>refer</kbd>-specific commands in your mom file.
</p>
<p>
-<kbd>refer</kbd> commands are introduced by a single
-line containing <kbd>.R1</kbd>, and concluded with a single line
-containing <kbd>.R2</kbd>. What you put between the <kbd>.R1</kbd>
-and <kbd>.R2</kbd> lines are the commands themselves. The commands
-should be entered one per line, in lowercase letters, <i>with
-no initial period (dot)</i>.
+<kbd>Refer</kbd> commands are introduced by a single line
+containing <kbd>.R1</kbd>, and concluded with a single line
+containing <kbd>.R2</kbd>. What goes between the <kbd>.R1</kbd>
+and <kbd>.R2</kbd> lines is called a &#8220;refer block&#8221;.
+<kbd>Refer</kbd> commands in a refer block should be entered one per
+line, in lowercase letters, <i>with no initial period</i> (dot).
+The specific commands, and the placement of the block, depend on
+whether you want your references in footnotes/endnotes or in a
+bibliography.
</p>
-<p>
-Here&#8217;s an example:
-<br/>
-<span class="pre-in-pp">
- .R1
- no-label-in-text
- no-label-in-reference
- .R2
-</span>
-There are an awful lot of <kbd>refer</kbd> commands. We will focus
-only on those required to get mom cooperating with <kbd>refer</kbd>.
-If you&#8217;re interested, study the <kbd>refer</kbd> manpage to
-discover what other commands are available and how to manipulate
-them.
-</p>
+<h5 id="fn-en-block" class="docs" style="font-size: 90%; margin-top: .25em;">Refer block for footnotes/endnotes</h5>
-<p>
-At a minimum, all mom files accessing a bibliographic database must
-contain the following <kbd>refer</kbd> commands, exactly as shown:
+<p style="margin-top: .5em;">
+If you want footnote or endnote references, place this block at
+the <i>top</i> of your mom file.
</p>
-<div id="refer-block1" class="examples" style="margin-top: -.5em;">Required <kbd>refer</kbd> block (embedded references)</div>
+<div id="refer-block1" class="examples" style="margin-top: -.5em;">
<div class="examples-container" style="padding-bottom: 1em;">
<span class="pre">
.R1
no-label-in-text
no-label-in-reference
-join-authors &quot;, and &quot; &quot;, &quot; &quot;, and &quot;
-database &lt;full path to the database&gt;
+join-authors " and " ", " ", and "
+database &lt;full path to database&gt;
.R2
</span>
</div>
-
-<p>
-The first two commands tell <kbd>refer</kbd> to let mom handle
-everything associated with footnote and endnote markers, both in the
-body of the document, and in the footnotes/endnotes themselves.
-</p>
-
-<p>
-The third command is required for mom to handle multiple authors in
-proper MLA style.
-</p>
-
-<p>
-The last command, <kbd>database</kbd>, assumes you have created
-your own database, and do not otherwise have a system-wide
-default database.
+</div>
+<p style="margin-top: .5em; font-size: 95%; line-height: 120%;">
<kbd>&lt;full&nbsp;path&nbsp;to&nbsp;the&nbsp;database&gt;</kbd>
-means the full path <i>including</i> the filename, e.g.
-<kbd>/home/user/refer/my-database.</kbd>
+means the full path including the filename, e.g.
+<kbd>/home/user/refer/my-database-file</kbd>.
</p>
-<p> If you&#8217;re already a <kbd>refer</kbd> user, feel free to
-enter whatever <kbd>refer</kbd> commands are necessary to
-access the database(s) you want.
-</p>
+<h5 id="bibliography-block" class="docs" style="font-size: 90%; margin-top: .25em;">Refer block for bibliographies</h5>
-<p>
-With the above <kbd>refer</kbd> block, you can embed references
-directly into the text of your document, or have them output as
-footnotes or endnotes. If, on the other hand, you want to collect
-references for output in a bibliography, the block must read:
+<p style="margin-top: .5em;">
+If you want a bibliography, place this block at the <i>bottom</i> of
+your mom file, prior to invoking
+<a href="#bibliography">BIBLIOGRAPHY</a>.
</p>
-<div id="refer-block2" class="examples" style="margin-top: -.5em;">Required <kbd>refer</kbd> block (bibliographies)</div>
+<div id="refer-block2" class="examples" style="margin-top: -.5em;">
<div class="examples-container" style="padding-bottom: 1em;">
<span class="pre">
.R1
no-label-in-text
no-label-in-reference
join-authors ", and " ", " ", and "
-database &lt;full path to the database&gt;
-sort
-accumulate
+sort A1Q1T1B1E1
+reverse A1
+database &lt;full path to database&gt;
.R2
</span>
</div>
+</div>
-<h4 id="accessing-ref" class="docs">3. Accessing references in your documents</h4>
+<p style="margin-top: .5em; font-size: 95%; line-height: 120%;">
+<kbd>&lt;full&nbsp;path&nbsp;to&nbsp;the&nbsp;database&gt;</kbd>
+means the full path including the filename, e.g.
+<kbd>/home/user/refer/my-database</kbd>.
+</p>
+
+<!-- Some sort of header saying "these blocks for these kinds of refs", followed
+ by en/fn block and bib block. Make embedded refs, and a discussion of why they're
+ not really a good idea, another section.
+-->
+
+<h4 id="placement-ref" class="docs">3. Tell mom where you want your references (footnotes/endnotes or a bibliography)</h4>
<p>
-References are accessed by putting keywords, all on one line,
-between the <kbd>refer</kbd> commands, <kbd>.[</kbd> (dot
-left-bracket) and <kbd>.]</kbd> (dot right-bracket). Both commands
-must appear on separate lines, by themselves, like this:
+If you want references in footnotes, issue the instruction
<br/>
<span class="pre-in-pp">
- .[
- keyword(s)
- .]
+ .FOOTNOTE_REFS
</span>
-Keywords are any word, or set of words, that identify a database
-record (i.e. a reference) unambiguously. (<kbd>refer</kbd>
-doesn&#8217;t like ambiguity.)
+anywhere before the first citation in your file.
</p>
<p>
-If, for example, you want to reference a book by Ray Bradbury,
-and the database contains only one book by Bradbury, a suitable
-keyword would be &#8220;Bradbury&#8221;. If your database contains
-several books by Bradbury, say, <i>Fahrenheit 451</i> and <i>The
-Martian Chronicles</i>, you could reference them with the keywords,
-&#8220;451&#8221; and &#8220;Martian&#8221;. If, in addition to
-the two books by Bradbury, you also had one whose title was <i>The
-Martian Mission</i>, suitable keywords to reference <i>The Martian
-Chronicles</i> might be:
+If you want references in endnotes, issue the instruction
<br/>
<span class="pre-in-pp">
- .[ or .[ or .[
- Bradbury Martian Bradbury Chronicles Martian Chronicles
- .] .] .]
+ .ENDNOTE_REFS
</span>
+anywhere before the first citation in your file.
</p>
<p>
-A special database field identifier, <kbd>%K</kbd>, lets you create
-unique keywords for references. This can be very handy if you need
-both a &#8220;short&#8221; and a &#8220;long&#8221; reference to the
-same work. The short reference might be used in footnotes, the long
-one in a bibliography. Consider the following:
+If you want your references in a bibliography, issue the instruction
<br/>
<span class="pre-in-pp">
- %A Isherwood, Christopher %A Isherwood
- %T Mr. Norris Changes Trains %T Mr. Norris Changes Trains
- %d 1935 %K Nor short
- %t The Last of Mr. \%Norris
- %a Intro. Tom Crawford
- %C New York
- %I New Directions
- %D 1945
- %K Norris
+ .BIBLIOGRAPHY
</span>
-To access the shorter reference, you&#8217;d do
+at the end of your file, before
+<a href="tables-of-contents.html#TOC">TOC</a>
+(Table of Contents).
+</p>
+
+<h4 id="accessing-ref" class="docs">4. Accessing references in the database</h4>
+
+<p>
+References are accessed by putting keywords from the desired database
+record between two special <kbd>refer</kbd> commands:
<br/>
<span class="pre-in-pp">
.[
- Nor short
+</span>
+and
+<br/>
+<span class="pre-in-pp">
.]
</span>
-To access the longer one, you&#8217;d do
+Keywords are any word, or set of words, that identify a database
+record unambiguously. Thus, if you have only one database record for
+the author Ray Bradbury,
<br/>
<span class="pre-in-pp">
.[
- Norris
+ bradbury
.]
</span>
+is sufficient. However, if your database contains several records
+for books by Bradbury, say, <i>Fahrenheit 451</i> and <i>The
+Martian Chronicles</i>,
+&#8220;<kbd>bradbury&nbsp;451</kbd>&#8221; and
+&#8220;<kbd>bradbury&nbsp;martian</kbd>&#8221; would identify the two records unambiguously.
</p>
-<h4 id="where-ref" class="docs">4. Telling mom where to put references</h4>
-
<p>
-Mom provides several mechanisms for outputting references where you
-want:
+A special database field identifier, <kbd>%K</kbd>, lets you create
+unique keywords for database records to help clear up any ambiguity.
</p>
-<ul style="margin-top: -.5em; margin-left: -.5em; margin-bottom: -.75em;">
- <li><a href="#embedded">embedded in the body of the document</a></li>
- <li><a href="#foot-end">in footnotes or endnotes</a>
- <ul style="margin-left: -.5em;">
- <li><a href="#footnotes-recipe">recipe for references in footnotes</a></li>
- <li><a href="#endnotes-recipe">recipe for references in endnotes</a></li>
- </ul></li>
- <li><a href="#bibliographies">collected in a bibliography</a></li>
-</ul>
-
-<h5 id="embedded" class="docs" style="text-transform: none; margin-bottom: -1em;">Embedding references in the document body</h5>
<p>
-References may be embedded in the document body, surrounded by
-parentheses, square brackets, or braces. Use whichever you prefer,
-following the recipes below.
-<br/>
-<span class="pre-in-pp">
- Parentheses | Square brackets | Braces
- =========== | =============== | ======
- .REF( | .REF[ | .REF{
- .[ | .[ | .[
- keyword(s) | keyword(s) | keyword(s)
- .] | .] | .]
- .REF) | .REF] | .REF}
-</span>
+Notice that you don&#8217;t have to worry about capitalization when
+entering keywords.
</p>
-<h5 id="foot-end" class="docs" style="text-transform: none; margin-top: -1em; margin-bottom: -1em;">Footnote or endnote references</h5>
+<h4 id="fn-en-recipe" class="docs">5. Entering footnote/endnote references</h4>
<p>
-Most times, you&#8217;ll probably want references in either
-footnotes or endnotes. Mom provides a simple mechanism whereby
-you can choose which, or even switch back and forth. It&#8217;s
-a two-step process. First, you instruct mom where you want the
-references to go with either
+Depending on which you have issued, a
<kbd><a href="#footnote-refs">.FOOTNOTE_REFS</a></kbd>
-or
-<kbd><a href="#endnote-refs">.ENDNOTE_REFS</a></kbd>.
-Afterwards, you enclose the <kbd>refer</kbd> commands, <kbd>.[</kbd>
-and <kbd>.]</kbd>, with the mom macro,
-<a href="#ref">REF</a>.
-Depending on which was the last invoked, <kbd>.FOOTNOTE_REFS</kbd> or
-<kbd>.ENDNOTE_REFS</kbd>, references will either go into footnotes or be
-collected for output as endnotes.
-</p>
-
-<p>
-The innate flexibility of this scheme allows you to have both
-footnote references and endnote references in the same document.
-This would be desirable if, say, you wanted truncated
-references in footnotes, and full references in endnotes.
-</p>
-
-<p id="footnotes-recipe">
-A recipe for footnoted references looks like this:<br/>
+or an
+<kbd><a href="#endnote-refs">.ENDNOTE_REFS</a></kbd>
+command, entering references is done like this:
+<br/>
<span class="pre-in-pp">
- .FOOTNOTE_REFS \"Can be placed anywhere in the file prior to .REF
.REF
.[
keyword(s)
.]
.REF
</span>
-The reference between the first and second <kbd>.REF</kbd> will be
-treated as a footnote, as will all subsequent <kbd>.REF</kbd> pairs
-unless you invoke the macro, <kbd>.ENDNOTE_REFS</kbd>.
-There&#8217;s no need to repeat <kbd>.FOOTNOTE_REFS</kbd> if all
-your references are going into footnotes.
+If FOOTNOTE_REFS is in effect, the reference between the first
+and second <kbd>.REF</kbd> will be treated as a footnote. If
+ENDNOTE_REFS, it will be treated as an endnote. Endnote references
+must be explictly output with
+<a href="docelement.html#ENDNOTES">ENDNOTES</a>
+at the end of your file, before
+<a href="tables-of-contents.html#TOC">TOC</a>.
</p>
<div class="box-important">
<p class="tip">
<span class="important">Important:</span>
-When FOOTNOTE_REFS are enabled, REF behaves identically to
+REF behaves identically to
<a href="docelement.html#footnote">FOOTNOTE</a>
+and
+<a href="docelement.html#endnote">ENDNOTE</a>
with respect to the use of the <kbd>\c</kbd> inline escape. Please
read the
<a href="docelement.html#footnote-note">HYPER IMPORTANT NOTE</a>
-found in the document entry for FOOTNOTE.
+found in the document entry for FOOTNOTE (which also applies to
+ENDNOTE).
</p>
</div>
-<p id="endnotes-recipe">
-A recipe for endnote references looks like this:
+<h4 id="bibliography-recipe" class="docs">6. Creating a bibliography</h4>
+
+<p>
+Bibliographic references come between
+<kbd><a href="#bibliography">.BIBLIOGRAPHY</a></kbd>
+and
+<kbd><a href="#bibliography">.BIBLIOGRAPHY&nbsp;OFF</a></kbd>.
+They require no <kbd>.REF</kbd>&#8217;s surrounding the
+&nbsp;&nbsp;<kbd>.[</kbd>&nbsp;&nbsp;and&nbsp;&nbsp;<kbd>.]</kbd>&nbsp;&nbsp;commands.
+Once you have input the desired references, issue the
+following, exactly as shown:
<br/>
<span class="pre-in-pp">
- .ENDNOTE_REFS \"Can be placed anywhere in the file prior to .REF
- .REF
.[
- keyword(s)
+ $LIST$
.]
- .REF
</span>
-The reference between the first and second <kbd>.REF</kbd> will
-be treated as an endnote, as will all subsequent <kbd>.REF</kbd>
-pairs unless you invoke the macro, <kbd>.FOOTNOTE_REFS</kbd>.
-There&#8217;s no need to repeat <kbd>.ENDNOTE_REFS</kbd> if all your
-references are going into endnotes.
+and follow it with <kbd>.BIBLIOGRAPHY&nbsp;OFF</kbd>.
+Study the example provided below if you&#8217;re having trouble
+visualizing this.
</p>
-<div class="box-important">
-<p class="tip">
-<span class="important">Important:</span>
-When ENDNOTE_REFS are enabled, REF behaves identically to
-<a href="docelement.html#footnote">ENDNOTE</a>
-with respect to the use of the <kbd>\c</kbd> inline escape. Please
-read the
-<a href="docelement.html#endnote-note">HYPER IMPORTANT NOTE</a>
-found in the document entry for ENDNOTE.
-</p>
+<div id="example-bibliography" class="examples" style="margin-top: -.5em;">Example bibliography</div>
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+.BIBLIOGRAPHY
+.R1
+no-label-in-text
+no-label-in-reference
+join-authors ", and " ", " ", and "
+sort A1Q1T1B1E1
+reverse A1
+database &lt;full path to database&gt;
+.R2
+.[
+bradbury
+.]
+.[
+pratchett
+.]
+.[
+$LIST$
+.]
+.BIBLIOGRAPHY OFF
+</span>
</div>
-<h5 id="bibliographies" class="docs" style="text-transform: none; margin-bottom: -1em;">Collected references (bibliographies)</h5>
-
<p>
-Sometimes, you may want to embed references in input text near the
-sections of text to which they pertain, but not have them output
-until later (typically, on a bibliography page). REF is used for
-this, too, but you have to make sure your <kbd>refer</kbd> commands
-block is set up properly at the top of your text file. The recipe
-for this is:
+Alternatively, if you wish to output your entire database as a
+bibliography, do the following at the end of your document, before
+<kbd><a href="tables-of-contest.html#TOC">.TOC</a></kbd>:
<br/>
-<span id="refer-block3" class="pre-in-pp">
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY
.R1
no-label-in-text
no-label-in-reference
- join-authors &quot;, and &quot; &quot;, &quot; &quot;, and &quot;
- database &lt;full path to the database&gt;
- sort
- accumulate
+ join-authors ", and " ", " ", and "
+ sort A1Q1T1B1E1
+ reverse A1
+ bibliography &lt;full path to database&gt;
.R2
+ .BIBLIOGRAPHY OFF
</span>
-After this set up, and provided you don&#8217;t issue a
-<kbd>.FOOTNOTE_REFS</kbd> or <kbd>.ENDNOTE_REFS</kbd> command, all
-reference between <kbd>.REF</kbd> pairs will be collected for later
-output in a bibliography.
</p>
+<h4 id="invoking-ref" class="docs">7. Invoking groff with mom and refer</h4>
+
<p>
-As a precaution, mom will issue a message the first time you call
-<kbd>.REF</kbd> if neither FOOTNOTE_REFS nor ENDNOTE_REFS is in
-effect. If collected references are what you want, and you have set
-up your <kbd>.R1/.R2</kbd> block as above, you may safely ignore
-the message.
+So, now you&#8217;ve got a document formatted properly to use
+references processed with <kbd>refer</kbd>, what do you do to output
+the document?
</p>
-<div id="limitation" class="box-important">
-<p class="tip">
-<span class="important">LIMITATION:</span> You cannot combine
-&#8220;collected&#8221; references (plain REF)
-with REFs that are instructed to go into
-footnotes (with FOOTNOTE_REFS) or endnotes (with
-ENDNOTE_REFS). This is a limitation imposed by
-<kbd>refer</kbd>, not mom.
+<p>
+It&#8217;s simple. Instead of invoking groff with just the
+<kbd>-mom</kbd> option, as explained
+<a href="using.html#using-saving">here</a>,
+invoke groff with the <kbd>-R</kbd> option as well, like this:
+<br/>
+<span class="pre-in-pp">
+ groff -R -mom &lt;filename&gt; ...
+</span>
</p>
</div>
-<h4 id="biblio-ref" class="docs">5. Creating bibliography pages</h4>
+<div class="rule-medium" style="margin-top: 1em;"><hr/></div>
+
+<h2 id="mla" class="docs">MLA (Modern Language Association) style</h2>
+
+<h3 id="ref-styles" class="docs">Types of references (endnote/footnote or bibliographic)</h3>
<p>
-Bibliographies are processed separately from the main document, like
-endnotes. And, like endnotes, just about every element on them can
-be designed to your specifications. (See
-<a href="#biblio-control">Bibliography control macros and defaults</a>.)
-A mom bibliography begins with the macro,
-<kbd><a href="#bibliography">BIBLIOGRAPHY</a></kbd>,
-like this:
-<br/>
+MLA allows for three types of references, or referencing styles:
+</p>
+<ul style="margin-top: -.5em;">
+ <li>short, parenthetical references in the text, linked to a list
+ of works cited (a bibliography) at the end of the document</li>
+ <li>footnote references</li>
+ <li>endnote references</li>
+</ul>
+
+<p style="margin-top: -.5em;">
+There are significant differences between the way footnote/endnote
+references should be formatted, and the formatting style of
+bibliographies. One example is that footnote/endnote references
+should have their first lines indented, whereas bibliographic
+references should have their second lines indented. Fortunately,
+with mom, there&#8217;s no need to concern yourself with the differences;
+they&#8217;re taken care of automatically.
+</p>
+
+<p>
+In terms of inserting references into your documents,
+footnote/endnote references are input in a manner similar to
+entering any other kind of
+<a href="docelement.html#footnote-into">footnote</a>
+or
+<a href="docelement.html#endnote-into">endnote</a>.
+Parenthetical references linked to a bibliography, however, need to
+be handled differently.
+</p>
+
+<h3 id="parenthetical" class="docs">Inserting parenthetical references into the text</h3>
+
+<p>
+MLA style prefers restricting the information in parenthetical
+references to the barest minimum needed to find the cited work in
+the bibliography. Human judgment is usually required, therefore
+it is generally best to enter the parenthetical references by hand
+rather than asking mom and <kbd>refer</kbd> to generate them. While
+the latter is possible with the macro pair,
+<kbd><a href="#bracket-refs-parens">.REF(</a> /<a href="#bracket-refs-parens">.REF)</a></kbd>,
+it requires more work to set up your
+<a href="#db-ref">database</a>
+and interrupts the flow of your input file. Consider these two
+examples, which accomplish exactly the same thing:
+</p>
+<div class="examples-container" style="padding-bottom: .25em;">
<span class="pre-in-pp">
- .BIBLIOGRAPHY
+ Ancient writers attributed the invention of the monochord
+ to Pythagoras, who lived in the sixth century BC (Marcuse,
+ \*[IT]Survey\*[ROM] 197). Marcone, however, discovered
+ precursors of the instrument dating at least two centuries
+ earlier (\*[IT]Plectrum\*[ROM] 98).
</span>
-Following <kbd>.BIBLIOGRAPHY</kbd>, you have three choices of how to
-proceed:
-</p>
-
-<ol style="margin-top: -.5em; margin-left: -.5em;">
- <li>
- If you have elected to have references collected from within the
- body of a document (see above,
- <a href="#bibliographies">Collected references [bibliographies]</a>,
- for instructions), which assumes you have a <kbd>refer</kbd>
- command block like the one
- <a href="#refer-block2">here</a>
- at the top of your document, you need only do
- <br/>
- <span class="pre-in-pp">
- .BIBLIOGRAPHY
+</div>
+<span style="display: inline-block; padding-top: .5em; padding-bottom: .5em;">versus</span>
+<div class="examples-container" style="padding-bottom: .25em;">
+<span class="pre-in-pp">
+ Ancient writers attributed the invention of the monochord
+ to Pythagoras, who lived in the sixth century BC
+ .REF(
.[
- $LIST$
+ survey
+ %P 197
.]
- </span></li>
- <li style="margin-top: -2em;">
- If you want to create the bibliography by hand (which may be the
- case if you&#8217;ve used footnote and/or endnote references throughout
- your document; see
- <a href="#limitation">LIMITATION</a>),
- follow this recipe. It assumes you already have a
- <kbd>refer</kbd> block like the one
- <a href="#refer-block1">here</a>
- at the top of your document.
- <br/>
- <span class="pre-in-pp">
- .BIBLIOGRAPHY
- .R1
- sort
- accumulate
- .R2
- .[ -+
- keyword(s) |
- .] | "keyword(s)" are keywords identifying the
- .[ | particular bibliographic reference you want
- keyword(s) | from your database. Order doesn't matter here;
- .] | the refer command, sort, takes care of that.
- .[ |
- keyword(s) |
- .] -+
+ .REF)
+ . Marcone, however, discovered precursors of the instrument
+ dating at least two centuries earlier
+ .REF(
.[
- $LIST$
+ plectrum
+ %P 98
.]
- </span></li>
- <li style="margin-top: -2em;">
- Your final choice is to output your whole database. Again,
- assuming you have a <kbd>refer</kbd> block like the one
- <a href="#refer-block1">here</a>
- at the top of your file, you need only do:
- <br/>
- <span class="pre-in-pp" style="margin-bottom: -2em;">
- .BIBLIOGRAPHY
- .R1
- bibliography &lt;full path to database&gt;
- .R2
- </span>
- If you haven&#8217;t put a <kbd>refer</kbd> block in your
- file already, you can, in this instance, put one after
- <kbd>.BIBLIOGRAPHY</kbd>, like this:
- <br/>
- <span class="pre-in-pp">
- .BIBLIOGRAPHY
- .R1
- join-authors &quot;, and &quot; &quot;, &quot; &quot;, and &quot;
- bibliography &lt;full path to database&gt;
- .R2
- </span></li>
-</ol>
+ .REF)
+ .
+</span>
+</div>
+
+<p>
+Clearly, the first example takes less work, and is much easier to read.
+</p>
+
+<div class="rule-medium" style="margin-top: 1em;"><hr/></div>
+
+<h2 id="database" class="docs">The refer database</h2>
+
+<h3 id="database-intro" class="docs">Introduction</h3>
+
+<p style="margin-top: .5em;">
+The heart and soul of <kbd>refer</kbd> is the bibliographic
+database. Knowing how to create records (ie. the entries for works
+cited in a document) is largely a question matching data (author,
+title, publisher, etc) with the correct field identifier. For
+example, if you&#8217;re citing from a scholarly journal, you need to know
+that <kbd>%J</kbd> is the field identifier for journal names and
+<kbd>%N</kbd> is the field identifier for the journal number. Use
+the
+<a href="#fields-quick">Quick list of field identifiers</a>
+as your guide.
+</p>
+
+<h3 id="database-rules" class="docs">The rules</h3>
+
+<p style="margin-top: .5em;">
+Entering the data correctly is also important. Fortunately, there
+are very few rules, and those there are make sense. In a nutshell:
+</p>
+<ul style="margin-top: -.5em;">
+ <li>enter the data in each field in natural order; author John Smith is
+ &#8220;John Smith&#8221;, editor Jane Doe is &#8220;Jane Doe&#8221;</li>
+ <li>capitalize all proper nouns and words in titles as you expect
+ to see them; otherwise, use lowercase</li>
+ <li>use no terminating punctuation unless required; typically,
+ required punctuation is the period after a shortform
+ (&#8220;ed.&#8221; or &#8220;eds.&#8221;, &#8220;Jr.&#8221;,
+ etc) or a question mark or exclamation mark at the end of a
+ title</li>
+ <li>if part of a field needs to be set off in single-quotes, use
+ <kbd>\[oq]</kbd> and <kbd>\[cq]</kbd> (openquote, closequote) rather than the
+ single-quote (or apostrophe) character on your keyboard</li>
+ <li>if part of a field needs to be forced into italics, use the
+ escapes <kbd>\*[IT]</kbd> and <kbd>\*[PREV]</kbd>; if the italicized
+ portion concludes the field, omit <kbd>\*[PREV]</kbd></li>
+ <li>if you require characters with accents, ligatures or special
+ symbols, use groff&#8217;s &#8220;named&#8221; glyphs (eg.
+ <kbd>\['e]</kbd> for <kbd>é</kbd>); a full list can be found in
+ <kbd>man groff_char</kbd></li>
+</ul>
-<p style="margin-top: -3em;">
-Whichever option you choose, mom will output a full bibliography
-page, complete with a title (&#8220;BIBLIOGRAPHY&#8221; by default,
-but that can be changed).
+<h3 id="fields-quick" class="docs" style="margin-top: 1.25em; margin-bottom: .5em;">Quick guide to field identifiers <span style="text-transform: none;">(click on any that are links for more information)</span></h3>
+
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+<a class="quick" href="#A">%A</a> author &ndash; records may contain multiple authors,
+ one per line
+<a class="quick" href="#Q">%Q</a> non-human author &ndash; corporate author, eg. National Geographic;
+ may also be used for exceptional reference types
+<a class="quick" href="#m">%m</a> multiple authors &ndash; whenever "et al." is desirable
+<a class="quick" href="#i">%i</a> idem &ndash; multiple works by the same author
+<a class="quick" href="#p">%p</a> post-author &ndash; post-author information (eg appendix,
+ foreword, letter)
+%T title &ndash; primary title (of a book) or the
+ title of an article (within a scholarly
+ journal or a magazine)
+%B book title &ndash; when %T contains the title of an article;
+<a class="quick" href="#q">%q</a> force quote &ndash; force a title into double-quotes
+%t reprint title &ndash; if different from a work's original title
+%b main author &ndash; when citing a preface, foreword,
+ introduction, or afterword, the author of
+ the complete original work
+<a class="quick" href="#E">%E</a> editor &ndash; records may contain multiple editors,
+ one per line
+<a class="quick" href="#l">%l</a> translator &ndash; if more than one translator, all the
+ names
+%r translator &ndash; if tr. and ed. are one in the same
+ and editor
+%M magazine or &ndash; when %T contains the title of an article
+ newspaper
+%J journal &ndash; when %T contains the title of an article
+%e edition &ndash; number or name of an edition
+ (e.g. Second, 2nd, Collector's, etc.)
+%S series &ndash; series name of books or journals
+%V volume &ndash; volume number (of books)
+%N journal number &ndash; journal or magazine number
+%R report number &ndash; technical report number
+%G gov&#8217;t. &ndash; government ordering number
+<a class="quick" href="#O">%O</a> other &ndash; information or which there is no appropriate
+ field letter
+<a class="quick" href="#C">%C</a> city &ndash; city of publication
+%I publisher &ndash; publisher
+%D date &ndash; publication date
+<a class="quick" href="#d">%d</a> original
+ publication date &ndash; if different from date of publication
+<a class="quick" href="#P">%P</a> page(s) &ndash; page number or range
+<a class="quick" href="#n">%n</a> annotation &ndash; annotation to the reference
+%s site name &ndash; for internet references, the website name
+%c content &ndash; for internet references, the source of
+ the material (eg. Web or Email); for websites,
+ the content, if unclear
+%o organization &ndash; for internet sites, the organization, group
+ or sponsor of the site
+%a access date &ndash; for internet sites, the date of access
+%u URL &ndash; for internet sites, the full URL
+<a class="quick" href="#K">%K</a> keywords &ndash; words that help clear up ambiguities in
+ the database
+</span>
+</div>
+
+<h3 id="fields-specifics" class="docs">Field identifiers: specifics, usage and examples</h3>
+
+<h4 id="A" class="docs fields">%A &ndash; author field</h4>
+
+<p>
+For multiple authors, enter each in a separate <kbd>%A</kbd>
+field in the order in which they should appear. If the author on
+the title page is the editor (say, a book of short stories edited by
+Ray Bradbury), add <kbd>, ed.</kbd> to the end of the
+<kbd>%A</kbd> field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Ray Bradbury, ed.
+</span>
+Do not use the <kbd>%E</kbd> field in these instances. If the work
+has several such editors, enter each in a separate <kbd>%A</kbd>
+field, as for multiple authors, and add <kbd>, eds.</kbd> to the
+last one, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Jane Dearborne
+ %A Bill Parsons, eds.
+</span>
</p>
-<h4 id="invoking-ref" class="docs">6. Invoking groff with mom and refer</h4>
+<h4 id="Q" class="docs fields">%Q &ndash; exceptional entries</h4>
<p>
-So, now you&#8217;ve got a document formatted properly to use
-references processed with <kbd>refer</kbd>, what do you do to output
-the document?
+Sometimes, a work has no author or title information, for example a
+book review in a newspaper. In such cases, use <kbd>%Q</kbd>, like
+this:
+<br/>
+<span class="pre-in-pp">
+ %Q Rev. of \*[IT]Mean Streets Omnibus\*[PREV], ed. Raymond Hammett
+ %M Times Literary Supplement
+ %D 7 July 1972
+</span>
</p>
+<h4 id="m" class="docs fields">%m &ndash; multiple authors (et al.)</h4>
+
<p>
-It&#8217;s simple. Instead of invoking groff with just the
-<kbd>-mom</kbd> option, as explained
-<a href="using.html#using-invoking">here</a>,
-invoke groff with the <kbd>-R</kbd> option as well, like this:
+Whenever it&#8217;s desirable to abbreviate a list of authors with
+&#8220;et al.&#8221; enter it in the <kbd>%m field</kbd>, like this:
<br/>
<span class="pre-in-pp">
- groff -R -mom filename
+ %A Paul Lauter
+ %A Doug Scofield
+ %m et al.
</span>
</p>
-</div>
+
+<h4 id="i" class="docs fields">%i &ndash; idem</h4>
+
+<p>
+Whenever there are several works by the same author, fill out the
+<kbd>%A</kbd> field with the author&#8217;s name and follow it with the
+<kbd>%i idem</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Jonathon Schmidt
+ %i idem
+</span>
+Per MLA style, the author&#8217;s name will be replaced by a long dash.
+</p>
+
+<p>
+If it&#8217;s necessary to state the role the author served (say,
+editor or translator), fill out the <kbd>%i</kbd> field with the
+information minus <kbd>idem</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Ray Bradbury
+ %i ed.
+ %T Timeless Stories for Today and Tomorrow
+</span>
+</p>
+
+<h4 id="p" class="docs fields">%p &ndash; post-author information</h4>
+
+<p>
+When citing from a preface, foreword, introduction, afterword or
+appendix, MLA requires that the information come between the
+author&#8217;s name and the work&#8217;s title, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Martin Packham, Jr.
+ %p appendix
+ %T Why the West was Won
+</span>
+Do not capitalize the first word in the <kbd>%p</kbd> field unless
+it is a proper noun.
+</p>
+
+<h4 id="q" class="docs fields">%q &ndash; force title into double-quotes</h4>
+
+<p>
+Occasionally, you may not be able to use <kbd>%T</kbd> for the
+title because doing so will cause it to come out in italics when
+double-quotes are called for. An example of this is when citing
+from a dissertation. Use <kbd>%q</kbd> to get around the problem,
+like this:
+<br/>
+<span class="pre-in-pp">
+ %A Carol Sakala
+ %q Maternity Care Policy in the United States
+ %O diss., Boston U, 1993
+</span>
+</p>
+
+<h4 id="E" class="docs fields">%E &ndash; editor</h4>
+
+<p>
+Use this only if the author and the editor are not one in the same,
+e.g.
+<br/>
+<span class="pre-in-pp">
+ %A Geoffrey Chaucer
+ %T The Works of Geoffrey Chaucer
+ %E F. W. Robinson
+</span>
+</p>
+
+<h4 id="l" class="docs fields">%l &ndash; translator</h4>
+
+<p>
+If there is more than one translator, enter all the names, with
+appropriate conjunctions and punctuation, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Feodor Dostoevsky
+ %T Crime and Punishment
+ %l Jessie Coulson, Marjorie Benton, and George Bigian
+</span>
+</p>
+
+<h4 id="O" class="docs fields">%O &ndash; other</h4>
+
+<p>
+Occasionally, MLA requires additional information after the title
+but before the publication data (city/publisher/date), for instance,
+the number of volumes in a series, or the fact that the work cited
+is a dissertation. Here are two examples:
+<br/>
+<span class="pre-in-pp">
+ %A Arthur M. Schlesinger
+ %T History of U.S. Political Parties
+ %O 4 vols.
+ %C New York
+ %I Chelsea
+ %D 1973
+
+ %A Carol Sakala
+ %q Maternity Care Policy in the United States
+ %O diss., Boston U, 1993
+</span>
+Do not capitalize the first word of the <kbd>%O</kbd> field unless
+it is a proper noun.
+</p>
+
+<p>
+Generally, consider <kbd>%O</kbd> a catch-all for information that
+does not match the criterion of any existing field identifier.
+</p>
+
+<h4 id="C" class="docs fields">%C &ndash; city</h4>
+
+<p>
+Normally, <kbd>%C</kbd> takes the name of the city of publication,
+and that&#8217;s all. In the case of a republished book, if new material
+has been added, put such information in the <kbd>%C</kbd>
+field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Theodore Dreiser
+ %T Sister Carrie
+ %d 1900
+ %C Introd. E. L. Doctorow, New York
+</span>
+</p>
+
+<h4 id="d" class="docs fields">%d &ndash; original date of publication</h4>
+
+<p>
+Normally, all that is required in the <kbd>%d</kbd> field is the
+original date of publication. However, if supplementary original
+publication data is desired, include it in the field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Kazuo Ishiguro
+ %T The Remains of the Day
+ %d London: Faber, 1989
+ %D New York
+ %I Knopf
+ %D 1990
+</span>
+</p>
+
+<h4 id="K" class="docs fields">%K &ndash; keywords</h4>
+
+<p>
+<kbd>Refer</kbd> hates ambiguity, and complains when encountering
+it. Ambiguities result from the duplication of any word in more
+than one database record when that word is used to identify a
+reference in your input file. Use <kbd>%K</kbd> to create unique
+keywords found nowhere else in the database.
+</p>
+
+<p>
+Imagine, for example, that your database contains records for
+Ray Bradbury&#8217;s <i>The Illustrated Man</i>, another record for
+<i>The Illustrated Bradbury</i> and a third for <i>Bradbury,
+Illustrated</i>. <kbd>%K</kbd> can be used to clear up any
+ambiguities by assigning a unique word to each record, for example
+<kbd>%K ill-man</kbd> for the first, <kbd>%K ill-brad</kbd> for the
+second, and <kbd>%K brad-ill</kbd> for the third.
+</p>
+
+<h4 id="P" class="docs fields">%P &ndash; pages</h4>
+
+<p>
+When citing page numbers, which is often the case with footnotes
+and endnotes, it is not necessary to put the numbers in the database
+records. The <kbd>%P</kbd> field can be added underneath the
+keyword(s) in the <kbd>.[</kbd> / <kbd>.]</kbd> entries in your
+input file, allowing you to recycle database records. For example,
+<br/>
+<span class="pre-in-pp">
+ %A Frye
+ %T Anatomy
+ %K frye-anat
+</span>
+could be your short record for Northrop Frye&#8217;s <i>The Anatomy of
+Criticism</i>. Any time you wanted to cite a particular page or
+range of pages from that work in a footnote or endnote, you can
+put
+<br/>
+<span class="pre-in-pp">
+ .REF
+ .[
+ frye-anat
+ %P 67-8
+ .]
+ .REF
+</span>
+in your input file, and have it show up with the correct page(s).
+</p>
+
+<h4 id="n" class="docs fields">%n &ndash; annotations</h4>
+
+<p>
+Annotations come at the very end of references. Capitalize all
+words that require it, including, for bibliographic references (but not
+for footnotes/endnotes) the first.
+</p>
+
+<div class="rule-short"><hr/></div>
<div class="macro-list-container">
-<h3 id="index-ref" class="macro-list">Bibliography and reference macros</h3>
+<h3 id="index-ref" class="macro-list">The bibliography and reference macros</h3>
<ul class="macro-list">
<li><a href="#ref">REF</a> &ndash; begin/end a <kbd>refer</kbd> reference</li>
<li><a href="#footnote-refs">FOOTNOTE_REFS</a> &ndash; instruct mom to put REFs in footnotes</li>
@@ -778,8 +941,10 @@ invoke groff with the <kbd>-R</kbd> option as well, like this:
<li><a href="#bracket-refs-parens">REF(</a> &ndash; embed a reference in the text between parentheses</li>
<li><a href="#bracket-refs-brackets">REF[</a> &ndash; embed a reference in the text between square brackets</li>
<li><a href="#bracket-refs-braces">REF{</a> &ndash; embed a reference in the text between braces</li>
+ <li><a href="#bracket-refs-angle">REF&lt;</a> &ndash; embed a reference in the text between angle brackets</li>
+ <li><a href="#refs-style">REF_STYLE</a> &ndash; bibliography or footnote/endnote</li>
</ul></li>
- <li><a href="#indent-refs">INDENT_REFS</a> &ndash; manage the 2nd line indent of references, per MLA standards</li>
+ <li><a href="#indent-refs">INDENT_REFS</a> &ndash; manage indenting of references, per MLA standards</li>
<li><a href="#hyphenate-refs">HYPHENATE_REFS</a> &ndash; enable/disable hyphenation of references</li>
<li><a href="#bibliography">BIBLIOGRAPHY</a> &ndash; begin a bibliography</li>
<li><a href="#bibliography-type">BIBLIOGRAPHY_TYPE</a> &ndash; plain, or numbered list bibliography</li>
@@ -884,7 +1049,7 @@ and/or
<div class="macro-id-overline">
-<h3 id="footnote-refs" class="macro-id">Instruct mom to put REFs in footnotes</h3>
+<h3 id="footnote-refs" class="macro-id">Instruct mom to put references in footnotes</h3>
</div>
<div class="box-macro-args">
@@ -912,6 +1077,14 @@ at any time.
</p>
<p>
+By default, FOOTNOTE_REFS sets the
+<a href="docelement.html#footnote-marker-style">FOOTNOTE_MARKER_STYLE</a>
+to <kbd>NUMBER</kbd> (i.e. superscript numbers). You may change
+change that if you wish by invoking FOOTNOTE_MARKER_STYLE, with the
+argument you want after FOOTNOTE_REFS.
+</p>
+
+<p>
If you have a lot of footnote references, and are identifying
footnotes by line number rather than by markers in the text, you may
want to enable
@@ -922,7 +1095,7 @@ in conjunctions with FOOTNOTE_REFS.
<!-- -ENDNOTE_REFS- -->
<div class="macro-id-overline">
-<h3 id="endnote-refs" class="macro-id">Instruct REF to put references in endnotes</h3>
+<h3 id="endnote-refs" class="macro-id">Instruct mom to put references in endnotes</h3>
</div>
<div class="box-macro-args">
@@ -966,19 +1139,31 @@ Macro pair: <b>REF[</b>&nbsp;&nbsp;...&nbsp;&nbsp;<b>REF]</b>
Macro pair: <b>REF{</b>&nbsp;&nbsp;...&nbsp;&nbsp;<b>REF}</b>
</div>
+<div id="bracket-refs-angle" class="box-macro-args" style="margin-top: 1em;">
+Macro pair: <b>REF&lt;</b>&nbsp;&nbsp;...&nbsp;&nbsp;<b>REF&gt;</b>
+</div>
+
+<p>
+You may sometimes want to embed fairly complete references directly
+into the body of your document, typically, but not always, inside
+parentheses. An instance where this might be desirable would be
+when there are one or two citations in a document where footnotes or
+endnotes are inappropriate, and a bibliography just plain silly (as
+it would be for just one or two citations).
+</p>
+
<p>
-You may sometimes want to embed references directly into the
-body of your document, typically, but not always, inside
-parentheses. Mom makes this possible through the use of the
-<b>REF&lt;bracket&nbsp;type&gt;</b> macros.
+Mom allows you to embed references from your database directly into
+documents through the use of the REF&lt;bracket&nbsp;type&gt;
+macros.
</p>
<p>
-All three macro pairs, above, are invoked the same way, namely
+All four macro pairs, above, are invoked the same way, namely
by introducing the reference with the first (&#8220;open&#8221;)
-macro of the <b>REF&lt;bracket&nbsp;type&gt;</b>
+macro of the REF&lt;bracket&nbsp;type&gt;
pair, and terminating it with the second (&#8220;close&#8221;)
-<b>REF&lt;bracket&nbsp;type&gt;</b> of the pair. For
+REF&lt;bracket&nbsp;type&gt; of the pair. For
example
<br/>
<span class="pre-in-pp">
@@ -989,16 +1174,33 @@ example
.REF)
</span>
will embed a reference in the body of your document, surrounded
-by parentheses. <b>.REF[</b>&nbsp;...&nbsp;<b>.REF]</b>
-will surround the reference with square brackets.
-<b>.REF{</b>&nbsp;...&nbsp;<b>.REF}</b> will surround it with curly
-braces.
+by parentheses. <kbd>.REF[</kbd>&nbsp;/&nbsp;<kbd>.REF]</kbd>
+will surround the reference with square brackets, etc.
+</p>
+
+<h3 id="ref-style" class="docs">REF_STYLE</h3>
+
+<p>
+When embedding references in the body of text, you&#8217;ll need to
+tell mom which formatting style to use: footnote/endnote or
+bibliography. Footnote/endnote referencing style uses no periods
+between fields, only proper nouns and titles are capitalized, and
+publication data is enclosed in parentheses. Bibliography
+referencing style separates each field with a period, every
+field begins with a capital letter, and publication data is not in
+parentheses.
+</p>
+
+<p>
+If you want footnote/endnote style, invoke
+<kbd>.REF_STYLE&nbsp;NOTE</kbd>. If you want bibliographic style,
+invoke <kbd>.REF_STYLE&nbsp;BIBLIO</kbd>.
</p>
<!-- -INDENT_REFS- -->
<div class="macro-id-overline">
-<h3 id="indent-refs" class="macro-id">Manage the second-line indent of references, per MLA standards</h3>
+<h3 id="indent-refs" class="macro-id">Manage indenting of references, per MLA standards</h3>
</div>
<div class="box-macro-args">
@@ -1010,26 +1212,34 @@ Macro: <b>INDENT_REFS</b> <kbd class="macro-args">FOOTNOTE | ENDNOTE | BIBLIO &l
</p>
<p>
-Proper MLA-style references should have their second, and subsequent
-lines, if any, indented. Since mom formats references in MLA style,
-she automatically indents second lines. By default, the indent for
-the second line of references, regardless of whether the references
-appear in footnotes, endnotes, or bibliographies, is 1.5
+MLA-style requires that footnote or endnote references should
+have their first lines indented, whereas bibliographic references
+should have their second and subsequent lines indented. Thus, if
+you invoke INDENT_REFS with a first argument of <kbd>FOOTNOTE</kbd>
+or <kbd>ENDNOTE</kbd>, the value you give to
+<kbd>&lt;indent&gt;</kbd> sets the indent of the first line for
+those types of references; if you invoke it with <kbd>BIBLIO</kbd>,
+the value you give <kbd>&lt;indent&gt;</kbd> sets the indent of
+second and subsequent lines in bibliographies.
+</p>
+
+<p>
+By default, the indent for all three types of references is 1/2-inch
+for
+<a href="docprocessing.html#printstyle">PRINSTYLE <kbd>TYPEWRITE</kbd></a>
+and 2
<a href="definitions.html#em">ems</a>
for
-<a href="docprocessing.html#printstyle">PRINSTYLE <kbd>TYPESET</kbd></a>
-and 2 ems for
-<a href="docprocessing.html#printstyle">PRINSTYLE <kbd>TYPEWRITE</kbd></a>.
+<a href="docprocessing.html#printstyle">PRINSTYLE <kbd>TYPESET</kbd></a>.
</p>
<p>
-If you&#8217;d like to change the 2nd-line indent for footnotes,
-endnotes or bibliographies, just invoke <kbd>.INDENT_REFS</kbd>
-with a first argument telling mom for which (footnote, endnote, or
-bibliography) you want the indent changed, and a second argument
-saying what you&#8217;d like the indent to be. For example, if you
-want the second-line indent of references on a bibliography page to
-be 3
+If you&#8217;d like to change the indent for footnote, endnote or
+bibliography references, just invoke <kbd>.INDENT_REFS</kbd> with
+a first argument saying which one you want the indent changed for, and
+a second argument saying what you&#8217;d like the indent to be.
+For example, if you want the second-line indent of references on a
+bibliography page to be 3
<a href="definitions.html#picas-points">picas</a>,
<br/>
<span class="pre-in-pp">
@@ -1147,17 +1357,22 @@ Alternatively, sprinkle your database fields liberally with
</div>
<div class="box-macro-args">
-Macro: <b>BIBLIOGRAPHY</b>
+Macro: <b>BIBLIOGRAPHY</b> <kbd class="marco-args">toggle</kbd>
</div>
<p>
If you want to append a bibliography to your document, all you need
-do is invoke <kbd>.BIBLIOGRAPHY</kbd> at the place you want it.
-<kbd>.BIBLIOGRAPHY</kbd> breaks to a new page, prints the title
-(BIBLIOGRAPHY by default, but that can be changed), and awaits
-<kbd>refer</kbd> instructions. How to create bibliographies is
-covered in the tutorial section,
-<a href="#biblio-ref">Creating bibliography pages</a>.
+do is invoke <kbd>.BIBLIOGRAPHY</kbd>. <kbd>.BIBLIOGRAPHY</kbd>
+breaks to a new page, prints the title (BIBLIOGRAPHY by default, but
+that can be changed), and awaits <kbd>refer</kbd> instructions. How
+to create bibliographies is covered in the tutorial section,
+<a href="#bibliography-recipe">Creating bibliography pages</a>.
+When all the required data has been entered, type
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY OFF
+</span>
+to complete the bibliography.
</p>
<p>
@@ -1201,8 +1416,7 @@ for instructions on how to output bibliographies.)
</p>
<p>
-Mom&#8217;s default BIBLIOGRAPHY_TYPE is LIST, with a period (dot)
-as the separator, and no prefix.
+Mom&#8217;s default BIBLIOGRAPHY_TYPE is PLAIN.
</p>
<!-- -BIBLIO_CONTROL- -->
@@ -1360,7 +1574,7 @@ for an explanation of leading adjustment.)
<p>
The default for
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
-is 14 points, adjusted.
+is the prevailing document lead (16 by default), adjusted.
</p>
<div class="box-tip">
@@ -1387,10 +1601,10 @@ Macro: <b>BIBLIOGRAPHY_SPACING</b> <kbd class="macro-args">&lt;amount of space&g
</p>
<p>
-By default, mom inserts a linespace between bibliography entries.
-If you&#8217;d prefer she add a different amount of space, instruct
-her to do so with BIBLIOGRAPHY_SPACING. Say, for example,
-you&#8217;d prefer only 1/2 linespace,
+By default, mom inserts no space between bibliography entries.
+If you&#8217;d prefer she add some, instruct her to do so with
+BIBLIOGRAPHY_SPACING. Say, for example, you want a half a linespace
+between entries,
<br/>
<span class="pre-in-pp">
.BIBLIOGRAPHY_SPACING .5v
@@ -1398,16 +1612,11 @@ you&#8217;d prefer only 1/2 linespace,
would do the trick.
</p>
-Note:
<div class="box-tip">
<p class="tip">
<span class="note">Note:</span>
-As with endnotes pages, owing to the space inserted between
-bibliography entries, bibliography pages may have hanging
-bottom margins. Unlike endnotes pages, mom
-is sad to report that there&#8217;s nothing you can do about
-this, except a) pray things work out, or b) set your
-BIBLIOGRAPHY_SPACING to zero.
+As with endnotes pages, inserting space between bibliography entries
+will most likely result in hanging bottom margins.
</p>
</div>
@@ -1496,13 +1705,13 @@ Macro: <b>BIBILOGRAPHY_FIRST_PAGENUMBER</b> <kbd class="macro-args">&lt;page # t
<p>
Use this macro with caution. If the bibliography for a
<a href="rectoverso.html#collate">collated</a>
-document is to be output at the document's end,
+document is to be output at the document&#8217;s end,
BIBLIOGRAPHY_FIRST_PAGENUMBER tells mom what page number to put on
the first page of the bibliography.
</p>
<p>
-However, if you're outputting a bibliography at the end of each
+However, if you&#8217;re outputting a bibliography at the end of each
section (chapter, article, etc) of a collated document,
you have to reset every section&#8217;s first page number after
<a href="rectoverso.html#collate">COLLATE</a>
@@ -1756,7 +1965,7 @@ must not have the
<p>
Invoked without an argument,
<kbd>.BIBLIOGRAPHY_STRING_UNDERSCORE</kbd> will place a single rule
-underneath the bibliography's first-page title. Invoked with the
+underneath the bibliography&#8217;s first-page title. Invoked with the
argument, <kbd>DOUBLE</kbd>, BIBLIOGRAPHY_STRING_UNDERSCORE will
double-underscore the thtile. Invoked with any other non-numeric
argument, (e.g. <kbd>OFF, NO, X</kbd>, etc.) the macro disables
diff --git a/contrib/mom/momdoc/reserved.html b/contrib/mom/momdoc/reserved.html
index 7dbc6db9..a2b08b45 100644
--- a/contrib/mom/momdoc/reserved.html
+++ b/contrib/mom/momdoc/reserved.html
@@ -740,6 +740,7 @@ mom uses, along with brief descriptions of their functions.
endnotes
ENDNOTE_PARA_SPACE Whether to space paras in multi-para endnotes
ENDNOTE_PT_SIZE Base point size for endnotes page
+ FOOTNOTE_SPACING Post endnotenote item spacing
ENDNOTE_STRING Endnotes page head
ENDNOTE_STRING_ADVANCE Distance of title string "ENDNOTES" from top
edge of page
@@ -1391,7 +1392,6 @@ mom uses, along with brief descriptions of their functions.
#FN_RULE_LENGTH Length of footnote separator rule
#FN_RULE_WEIGHT Weight of the footnote separator rule
#FN_RULE_WEIGHT_ADJ FN_RULE_WEIGHT/2
- #FN_SPACE Post footnote space
#FN_WAS_DEFERED Tells HEADER about a deferred footnote
#FOOTER_DIFF In TRAPS, the difference between the
original #B_MARGIN and #VISUAL_B_MARGIN
@@ -1835,13 +1835,16 @@ mom uses, along with brief descriptions of their functions.
#TOC_TITLE_SIZE_CHANGE ps in/decrease of toc doc title entries
#TOTAL_FIELDS Total number of letter header fields
#TRAP \n[.t]-1 (used in DO_QUOTE)
+ #UNADJUSTED_DOC_LEAD Argument passed to DOC_LEAD prior to
+ adjusting (set in TRAPS)
#UNDERLINE_ITALIC For TYPEWRITE. (boolean)
#UNDERLINE_ON Was UNDERLINE called? (boolean)
#UNDERLINE_QUOTES Was UNDERLINE_QUOTES called? (boolean)
#UNDERLINE_QUOTE Underline pquotes? (boolean)
#UNDERLINE_SLANT For TYPEWRITE. (boolean)
- #UNDERLINE_WAS_ON In HEADER to re-enable running text
- UNDERLINE (boolean)
+ #UNDERLINE_WAS_ON Was underlining on prior to the
+ invocation of current macro? (boolean)
+ #UNDERLINE_WAS_ON_FN As above, but for footnotes only
#USER_DEF_HDRFTR_CENTER Has user defined hdrftr center? (boolean)
#USER_DEF_HDRFTR_LEFT Has user defined hdrftr left? (boolean)
#USER_DEF_HDRFTR_RIGHT Has user defined hdrftr right? (boolean)
@@ -2151,6 +2154,7 @@ mom uses, along with brief descriptions of their functions.
footnotes
$FN_QUAD Quad used in footnotes
$FN_SIZE_CHANGE ps in/decrease of footnotes
+ $FN_SPACE Post footnote space
$FOOTNOTE_COLOR Footnote color
$FTR_RECTO_QUAD Quad direction of footer recto
$FTR_RECTO_STRING String for footer recto
@@ -2276,6 +2280,8 @@ mom uses, along with brief descriptions of their functions.
endnotes
$REF_FN_INDENT 2nd line indent value for references in
footnotes
+ $REF_STYLE MLA bibliography-style or footnote/endnote
+ style; used in ref*add-&lt;x&gt;
$RESTORE_SS_VAR Saves \*[$SS_VAR] for use with ref*build
#REVISION The revision number (string valued)
$REVISION_STRING What to print whenever the word
diff --git a/contrib/mom/momdoc/stylesheet.css b/contrib/mom/momdoc/stylesheet.css
index 23a2ee51..44c2fae9 100644
--- a/contrib/mom/momdoc/stylesheet.css
+++ b/contrib/mom/momdoc/stylesheet.css
@@ -7,6 +7,7 @@ a:visited:hover { color: purple; text-decoration: underline; }
a.header-link:visited { color: #6e70cc ; }
a.header-link:visited:hover { color: #6e70cc ; }
+a:link.quick { text-decoration: underline; }
.version /* version number for top of toc.html */
{
font-size: 90% ;
@@ -50,7 +51,7 @@ h2.macro-group /* ie "Page setup" or "Indents" or "Multi-columns" */
margin-top: 1em ;
font-size: 120% ;
color: #000056 ;
- background-color: #DFCCAD ;
+ background-color: #dfccad ;
padding: 6px ;
}
h3.docs
@@ -102,6 +103,10 @@ h4.arg-list
{
margin-top: -.5em ;
}
+h4.fields
+{
+ color: #302419 ;
+}
h5.docs
{
margin-bottom: -.5em ;
@@ -359,27 +364,27 @@ ul.mini-toc-centered
{
float: left ;
width: 32% ;
- height: 53em ;
+ height: 52em ;
padding-bottom: 9px;
- background-color: #e2deb5 ;
+ background-color: #ded4bd ;
margin-right: 2% ;
}
.col-2-definitions
{
float: left ;
width: 32% ;
- height: 53em ;
+ height: 52em ;
padding-bottom: 9px;
- background-color: #e2deb5 ;
+ background-color: #ded4bd ;
margin-right: 2% ;
}
.col-3-definitions
{
float: left ;
width: 32% ;
- height: 53em ;
+ height: 52em ;
padding-bottom: 9px;
- background-color: #e2deb5 ;
+ background-color: #ded4bd ;
margin-bottom: 24px ;
}
diff --git a/contrib/mom/momdoc/tables-of-contents.html b/contrib/mom/momdoc/tables-of-contents.html
index b27bc22c..82c744b9 100644
--- a/contrib/mom/momdoc/tables-of-contents.html
+++ b/contrib/mom/momdoc/tables-of-contents.html
@@ -62,7 +62,7 @@ FDL in the main directory of the groff source package.
Want a table of contents for your document? Easy. Just enter
<br/>
<span class="pre-in-pp">
- .TOC
+ .TOC
</span>
as the very last macro of your document file. Mom will have picked
up all document titles (in
diff --git a/contrib/mom/momdoc/toc.html b/contrib/mom/momdoc/toc.html
index a03f85f5..1cc1573e 100644
--- a/contrib/mom/momdoc/toc.html
+++ b/contrib/mom/momdoc/toc.html
@@ -19,7 +19,7 @@ FDL in the main directory of the groff source package.
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
- <title>Mom, version 1.5-e -- Table of Contents</title>
+ <title>Mom, version 1.6 -- Table of Contents</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
</head>
@@ -30,7 +30,7 @@ FDL in the main directory of the groff source package.
<div class="page">
<div class="version">
- mom, version 1.5-e
+ mom, version 1.6
</div>
<h1 class="toc" style="margin-top: 9px;">Table of Contents</h1>
diff --git a/contrib/mom/momdoc/typesetting.html b/contrib/mom/momdoc/typesetting.html
index 39acb714..272250ac 100644
--- a/contrib/mom/momdoc/typesetting.html
+++ b/contrib/mom/momdoc/typesetting.html
@@ -2114,7 +2114,7 @@ If you&#8217;re using the
<a href="docprocessing.html">document processing macros</a>
and your
<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
-is TYPEWRITE, <kbd>.SS&nbsp;DEFAULT</kbd> is the
+is <kbd>TYPEWRITE</kbd>, <kbd>.SS&nbsp;DEFAULT</kbd> is the
default, because you do want double spaces between sentences in copy
that imitates the look of a typewritten document.
</p>
diff --git a/contrib/mom/momdoc/using.html b/contrib/mom/momdoc/using.html
index 02a3bc1d..2d215df6 100644
--- a/contrib/mom/momdoc/using.html
+++ b/contrib/mom/momdoc/using.html
@@ -192,13 +192,12 @@ Groff itself comes with a quick and dirty previewer called
gxditview. Invoke it with:
<br/>
<span class="pre-in-pp">
- groff -X -mom filename
+ groff -X -mom &lt;filename&gt;
</span>
It&#8217;s not particularly pretty, doesn&#8217;t have many
navigation options, requires a lot of work if you want to use
-other than the &#8220;standard&#8220; groff PostScript fonts,
-and occasionally has difficulty accurately reproducing some of
-mom&#8217;s macro effects
+other than the standard groff PostScript fonts, and occasionally has
+difficulty accurately reproducing some of mom&#8217;s macro effects
(<a href="goodies.html#smartquotes">smartquotes</a>
and
<a href="goodies.html#leader">leaders</a>
@@ -212,7 +211,7 @@ involves processing documents with groff and directing the default
PostScript output to a file, like this:
<br/>
<span class="pre-in-pp">
- groff -mom filename &gt; filename.ps
+ groff -mom &lt;filename&gt; &gt; &lt;filename&gt;.ps
</span>
You can then then open the ps file in gv.
</p>
@@ -225,7 +224,7 @@ previewing. Whenever I&#8217;m working on a document that
needs previewing/checking, I fire up gv with the &#8220;Watch
File&#8220; option turned on. The first time I want to look at
the file, I tell vim (via a keymapping) to process it with groff
-and send it to a temporary file:
+and send it to a PostScript file:
<br/>
<span class="pre-in-pp">
groff -mom &lt;filename&gt; &gt; &lt;filename&gt;.ps
@@ -257,7 +256,7 @@ might prefer to save it as a pdf file, in which case you'd do:
</span>
</p>
-<h2 id="using-printing" class="docs">Printing documents</h2>
+<h2 id="using-printing" class="docs" style="margin-top: 1.5em;">Printing documents</h2>
<p>
You can process and print documents from the command line without
diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac
index 9624405b..0f2ec03d 100644
--- a/contrib/mom/om.tmac
+++ b/contrib/mom/om.tmac
@@ -21,8 +21,8 @@ for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-Version 1.5-e
--------------
+Version 1.6
+-----------
Antoine de St-Exupéry asserted that elegance in engineering is
achieved not when there is nothing left to add, but when there is
nothing left to take away.
@@ -89,7 +89,52 @@ to a macro means that any argument turns the feature off.
\# Instruct grops to use square linecaps and joins.
\# This instruction is also executed in DO_B_MARGIN, NEWPAGE, and HEADER
\#
+.if !n \{\
\X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+.\}
+\#
+\# The following PostScript, provided by Tadziu Hoffmann, permits
+\# no-fail underlining
+\#
+.de ul*ps
+ps: def
+grops begin
+/decornone { grops begin /X { } def /Y { } def /y2 -1 def end } def
+/decorline { grops begin u neg /uld exch def u /ulw exch def
+ /X { currentpoint /y0 exch def /x0 exch def } def
+ /Y { currentpoint /y1 exch def /x1 exch def
+ drawline /x2 x1 def /y2 y1 def } def end } def
+/drawline { gsave ulw setlinewidth 0 setlinecap x1 y1 uld sub moveto
+ y2 y0 eq { x2 y2 } { x0 y0 } ifelse uld sub lineto stroke
+ grestore } def
+decornone
+/uld 0 def
+/ulw 0 def
+/A { X show Y } def
+/B { 0 SC 3 -1 roll X widthshow Y } def
+/C { 0 exch X ashow Y } def
+/D { 0 exch 0 SC 5 2 roll X awidthshow Y } def
+/E { 0 rmoveto X show Y } def
+/F { 0 rmoveto 0 SC 3 -1 roll X widthshow Y } def
+/G { 0 rmoveto 0 exch X ashow Y } def
+/H { 0 rmoveto 0 exch 0 SC 5 2 roll X awidthshow Y } def
+/I { 0 exch rmoveto X show Y } def
+/J { 0 exch rmoveto 0 SC 3 -1 roll X widthshow Y } def
+/K { 0 exch rmoveto 0 exch X ashow Y } def
+/L { 0 exch rmoveto 0 exch 0 SC 5 2 roll X awidthshow Y } def
+/M { rmoveto X show Y } def
+/N { rmoveto 0 SC 3 -1 roll X widthshow Y } def
+/O { rmoveto 0 exch X ashow Y } def
+/P { rmoveto 0 exch 0 SC 5 2 roll X awidthshow Y } def
+/Q { moveto X show Y } def
+/R { moveto 0 SC 3 -1 roll X widthshow Y } def
+/S { moveto 0 exch X ashow Y } def
+/T { moveto 0 exch 0 SC 5 2 roll X awidthshow Y } def
+end
+..
+.if !n \{\
+\Y[ul*ps]
+.\}
\#
\# ====================================================================
\#
@@ -326,7 +371,7 @@ to a macro means that any argument turns the feature off.
. nr #T_MARGIN_LEAD_ADJ \\n[#LEAD]-12000
. ev B_MARGIN
. bp
-. nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+. if !n \{ .nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap' \}
. ev
.END
\#
@@ -354,7 +399,7 @@ to a macro means that any argument turns the feature off.
. ie !\\n[#DOCS]=1 \{\
. ev NP
. bp
-. nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+. if !n \{ .nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap' \}
. ev
. \}
. el \{\
@@ -451,11 +496,11 @@ to a macro means that any argument turns the feature off.
.MAC FAMILY END
. ds $FAMILY \\$1
. if \\n[#PRINT_STYLE]=1 \{\
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. return
. \}
. if \\n[#IGNORE] \{\
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. return
. \}
. if (\\n[.x]\\n[.y]\\n[.Y] >= 1192) \{\
@@ -499,7 +544,11 @@ to a macro means that any argument turns the feature off.
. return
. \}
. \}
-. el \{ .UNDERLINE OFF \}
+. el \{\
+. ev 1
+. UNDERLINE OFF
+. ev
+. \}
. return
. \}
. ft 0
@@ -1204,8 +1253,8 @@ to a macro means that any argument turns the feature off.
. if \\n[#RESTORE_SQ]=1 \{\
. rr #RESTORE_SQ
. ie '\\*[$RESTORE_SQ]'' \{\
-. ds $QUOTE0 \[dq]
-. ds $QUOTE1 \[dq]
+. ds $QUOTE0 \[lq]
+. ds $QUOTE1 \[rq]
. \}
. el \{\
. SMARTQUOTES \\*[$RESTORE_SQ]
@@ -1293,8 +1342,8 @@ to a macro means that any argument turns the feature off.
. \}
. \}
. if !r#ARGS_TO_SQ \{\
-. ds $QUOTE0 \\[dq]
-. ds $QUOTE1 \\[dq]
+. ds $QUOTE0 \\[lq]
+. ds $QUOTE1 \\[rq]
. nr #RESTORE_SQ 1
. \}
.END
@@ -1861,153 +1910,56 @@ to a macro means that any argument turns the feature off.
\# *Arguments:
\# <none> | <anything>
\# *Function:
-\# When on, underlines all letters, words, and digits in a passage,
-\# ignoring punctuation and spaces.
+\# Simulates typewriter-style underlining of italic passages.
\# *Notes:
-\# Only for use when the font family is COURIER, to simulate
-\# typewriter-style underlining of italic passages.
+\# Defaults for rule weight and distance from baseline are below.
+\# UNDERLINE_SPECS lets user change them
+\#
+.nr _w 500
+.nr _d 1250
+\#
+.MAC UNDERLINE_SPECS END
+. ie \B'\\$1' \{ .nr _w (u;\\$1) \}
+. el \{\
+. ie '\\$1'DEFAULT' \{ .nr _w 500 \}
+. el \{\
+. nr _w 500
+. tm1 "[mom]: The first argument to \\$0 must be a numeric
+. tm1 " argument with a unit of measure appended, or DEFAULT.
+. tm1 " Setting underline weight to DEFAULT.
+. \}
+. \}
+. shift
+. ie \B'\\$1' \{ .nr _d (u;\\$1) \}
+. el \{\
+. ie '\\$1'DEFAULT' \{ .nr _d 1250 \}
+. el \{\
+. nr _d 1250
+. tm1 "[mom]: The second argument to \\$0 must be a numeric
+. tm1 " argument with a unit of measure appended, or DEFAULT.
+. tm1 " Setting underline distance from baseline to DEFAULT.
+. \}
+. \}
+.END
\#
.MAC UNDERLINE END
+\c
+. ds $SAVED_SS_VAR \\*[$SS_VAR]
. ie '\\$1'' \{\
. nr #UNDERLINE_ON 1
-. char A _A
-. char B _B
-. char C _C
-. char D _D
-. char E _E
-. char F _F
-. char G _G
-. char H _H
-. char I _I
-. char J _J
-. char K _K
-. char L _L
-. char M _M
-. char N _N
-. char O _O
-. char P _P
-. char Q _Q
-. char R _R
-. char S _S
-. char T _T
-. char U _U
-. char V _V
-. char W _W
-. char X _X
-. char Y _Y
-. char Z _Z
-. 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
-. char d _d
-. char e _e
-. char f _f
-. char g _g
-. char h _h
-. char i _i
-. char j _j
-. char k _k
-. char l _l
-. char m _m
-. char n _n
-. char o _o
-. char p _p
-. char q _q
-. char r _r
-. char s _s
-. char t _t
-. char u _u
-. char v _v
-. char w _w
-. char x _x
-. char y _y
-. char z _z
-. 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
-. char 3 _3
-. char 4 _4
-. char 5 _5
-. char 6 _6
-. char 7 _7
-. char 8 _8
-. char 9 _9
-. char 0 _0
+. ss \\n[.ss] (\\n[.ss]-\\n[.ss])
+. ie !n \{\
+. nop \X'ps: exec \\n[_w] \\n[_d] decorline'\c
+. \}
+. el \{ .ul 1000 \}
. \}
. 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
+. SS \\*[$SAVED_SS_VAR]
+. ie !n \{\
+. nop \X'ps: exec decornone'\c
+. \}
+. el \{ .ul 0 \}
. \}
.END
\#
@@ -2017,156 +1969,64 @@ to a macro means that any argument turns the feature off.
\# *Arguments:
\# <none>
\# *Function:
-\# Underscores all letters, words, and digits in a passage,
-\# ignoring punctuation and spaces.
+\# Simulates typewriter-style underlining of italic passages.
\# *Notes:
\# Intended to be called with inline escapes \*[UL] (underline
-\# on) and \*[ULX] (underline off). Only works when the font family
-\# is fixed width, to simulate typewriter-style underlining of italic
-\# passages.
+\# on) and \*[ULX] (underline off).
\#
.MAC UL END
-\c\R'#UNDERLINE_ON 1'
-. char A _A
-. char B _B
-. char C _C
-. char D _D
-. char E _E
-. char F _F
-. char G _G
-. char H _H
-. char I _I
-. char J _J
-. char K _K
-. char L _L
-. char M _M
-. char N _N
-. char O _O
-. char P _P
-. char Q _Q
-. char R _R
-. char S _S
-. char T _T
-. char U _U
-. char V _V
-. char W _W
-. char X _X
-. char Y _Y
-. char Z _Z
-. 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
-. char d _d
-. char e _e
-. char f _f
-. char g _g
-. char h _h
-. char i _i
-. char j _j
-. char k _k
-. char l _l
-. char m _m
-. char n _n
-. char o _o
-. char p _p
-. char q _q
-. char r _r
-. char s _s
-. char t _t
-. char u _u
-. char v _v
-. char w _w
-. char x _x
-. char y _y
-. char z _z
-. 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
-. char 3 _3
-. char 4 _4
-. char 5 _5
-. char 6 _6
-. char 7 _7
-. char 8 _8
-. char 9 _9
-. char 0 _0
+\c
+. ds $SAVED_SS_VAR \\*[$SS_VAR]
+. ss \\n[.ss] (\\n[.ss]-\\n[.ss])
+. ie !'\\n[.z]''
+\c
+. ie !n \{\
+\?\h'-\w'\\n[.ss]'u'\?
+\?\R'#UNDERLINE_ON 1'\X'ps: exec \\n[_w] \\n[_d] decorline'\?\c
+. \}
+. el \{\
+\?\R'#UNDERLINE_ON 1'\?\c
+. ul 1000
+. \}
+. el \{\
+. ie !n \{\
+\h'-\w'\\n[.ss]'u'
+. nr #UNDERLINE_ON 1
+. nop \X'ps: exec \\n[_w] \\n[_d] decorline'\c
+. \}
+. el \{\
+\h'-\w'\\n[.ss]'u'
+. nr #UNDERLINE_ON 1
+. ul 1000
+. \}
+. \}
.END
\#
\#
.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
+\c
+. SS \\*[$SAVED_SS_VAR]
+. rm $SAVED_SS_VAR
+. ie !'\\n[.z]'' \{\
+\c
+. ie !n \{\
+\?\R'#UNDERLINE_ON 0'\X'ps: exec decornone'\?\c
+. \}
+. el \{\
+\?\R'#UNDERLINE_ON 0'\?\c
+. ul 0
+. \}
+. \}
+. el \{\
+. ie !n \{\
+. nr #UNDERLINE_ON 0
+. nop \X'ps: exec decornone'\c
+. \}
+. el \{\
+. nr #UNDERLINE_ON 0
+. ul 0
+. \}
+. \}
.END
\#
\#
@@ -2399,23 +2259,23 @@ to a macro means that any argument turns the feature off.
.ds SUP \
\R'#PT_SIZE_IN_UNITS \En[.ps]'\
\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\
-\s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]
+\s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]
\#
-.ds SUPX \s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_LOWER]
+.ds SUPX \s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_LOWER]
\#
.ds CONDSUP \
\R'#PT_SIZE_IN_UNITS \En[.ps]'\
\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\
-\s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]\E*[COND_FOR_SUP]
+\s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]\E*[COND_FOR_SUP]
\#
-.ds CONDSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_LOWER]\E*[COND]
+.ds CONDSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_LOWER]\E*[COND]
\#
.ds EXTSUP \
\R'#PT_SIZE_IN_UNITS \En[.ps]'\
\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\
-\s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]\E*[EXT_FOR_SUP]
+\s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_RAISE]\s[\En[#SUP_PT_SIZE]u]\E*[EXT_FOR_SUP]
\#
-.ds EXTSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\\*[$SUP_LOWER]\E*[EXT]
+.ds EXTSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\E*[$SUP_LOWER]\E*[EXT]
\#
\#
\# SLANT
@@ -2601,7 +2461,7 @@ to a macro means that any argument turns the feature off.
. if !d$PAD_MARKER .ds $PAD_MARKER #
. char \\*[$PAD_MARKER] \R'#PAD_COUNT \En[#PAD_COUNT]+1'
. ds $FAMILY_FOR_PAD \\n[.fam]
-. fp \\n[.fp] \\n[.sty]
+. if !n \{ .fp \\n[.fp] \\n[.sty] \}
. ds $FONT_FOR_PAD \\*[$FONT]
. nr #SIZE_FOR_PAD \\n[.ps]
. ds $PAD_STRING \\$1
@@ -3550,11 +3410,11 @@ to a macro means that any argument turns the feature off.
\# \n[.sss] holds the current sentence space value.
\#
.MAC SS END
+. ds $SS_VAR \\$1
. ie '\\$1'0' \{ .ss \\n[.ss] (\\n[.ss]-\\n[.ss]) \}
. el \{\
. ie '\\$1'DEFAULT' \{ .ss \\n[.ss] \}
. el \{\
-. ds $SS_VAR \\$1
. ss \\n[.ss] (0\\*[$SS_VAR])
. \}
. \}
@@ -4334,6 +4194,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #PRINT_STYLE 1
. if !\\n[#DOC_TYPE]=4 \{ .L_MARGIN 6P \}
. if !\\n[#DOC_TYPE]=4 \{ .R_MARGIN 6P \}
+. ds $TYPEWRITER_FAM C
+. ds $TYPEWRITER_PS 12
. TYPEWRITER
. color 0
. ie '\\$2'SINGLESPACE' \{\
@@ -4369,6 +4231,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #HEAD_UNDERLINE_WEIGHT 500
. char \(em --
. tr `'
+. tr \(lq"
+. tr \(rq"
. \}
. if '\\$1'TYPESET' \{\
. nr #PRINT_STYLE 2
@@ -4397,14 +4261,22 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
-\# Macros to control behaviour of PRINTSTYLE TYPEWRITE
+\# PRINTSTYLE TYPEWRITE control.
+\#
+.MAC TYPEWRITER_FAMILY END
+. ds $TYPEWRITER_FAM \\$1
+.END
\#
-\# First, a little utility macro.
+.ALIAS TYPEWRITER_FAM TYPEWRITER_FAMILY
+\#
+.MAC TYPEWRITER_SIZE END
+. ds $TYPEWRITER_PS \\$1
+.END
\#
.MAC TYPEWRITER END
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. ft R
-. ps 12
+. ps \\*[$TYPEWRITER_PS]
.END
\#
\#
@@ -4428,7 +4300,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. rm PREV
. ds ROM \EfR
. ds IT \EfI
-. ds PREV \EfR
+. ds PREV \Ef[]
. \}
.END
\#
@@ -5689,15 +5561,18 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#HDRFTR_RIGHT_CAPS]=0 \{\
. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE +0 \}
. \}
-. if !d$FN_FAM \{ .FOOTNOTE_FAMILY \\*[$DOC_FAM] \}
-. if !d$FN_FT \{ .FOOTNOTE_FONT R \}
-. if !d$FN_QUAD \{ .FOOTNOTE_QUAD \\*[$DOC_QUAD] \}
-. if !r#FN_RULE \{ .FOOTNOTE_RULE \}
-. if !r#FN_MARKERS \{ .FOOTNOTE_MARKERS \}
+. if !d$FN_FAM \{ .FOOTNOTE_FAMILY \\*[$DOC_FAM] \}
+. if !d$FN_FT \{ .FOOTNOTE_FONT R \}
+. if !d$FN_QUAD \{ .FOOTNOTE_QUAD \\*[$DOC_QUAD] \}
+. if !r#FN_RULE \{ .FOOTNOTE_RULE \}
+. if !r#FN_MARKERS \{ .FOOTNOTE_MARKERS \}
. if \\n[#FN_MARKERS]=1 \{\
-. if !\\n[#FN_MARKER_STYLE] \{ .FOOTNOTE_MARKER_STYLE STAR \}
+. if \\n[#FN_REF]=1 \{\
+. if !\\n[#FN_MARKER_STYLE] \{ .FOOTNOTE_MARKER_STYLE NUMBER \}
+. \}
+. if !\\n[#FN_MARKER_STYLE] \{ .FOOTNOTE_MARKER_STYLE STAR \}
. \}
-. if !\\n[#EN_MARKER_STYLE] \{ .ENDNOTE_MARKER_STYLE NUMBER \}
+. if !r#EN_MARKER_STYLE \{ .ENDNOTE_MARKER_STYLE SUPERSCRIPT \}
. if !d$EN_PN_STYLE \{ .ENDNOTES_PAGENUM_STYLE digit \}
. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \}
. if !d$EN_FT \{ .ENDNOTE_FONT R \}
@@ -5720,16 +5595,19 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. el \{ .ENDNOTE_TITLE "\\*[$TITLE]" \}
. \}
-. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM] \}
-. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \}
-. if !r#EN_TITLE_UNDERLINE \{ .nr #EN_TITLE_UNDERLINE 1 \}
-. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM] \}
-. if !d$EN_LN_FAM \{ .ENDNOTE_LINENUMBER_FAMILY \\*[$EN_FAM] \}
+. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM] \}
+. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \}
+. if !r#EN_TITLE_UNDERLINE \{ .nr #EN_TITLE_UNDERLINE 1 \}
+. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM] \}
+. if !d$EN_LN_FAM \{ .ENDNOTE_LINENUMBER_FAMILY \\*[$EN_FAM] \}
. if !r#EN_NUMBERS_ALIGN_LEFT \{\
-. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \}
+. if !r#EN_NUMBERS_ALIGN_RIGHT \{\
+. ie !\\n[#EN_MARKER_STYLE]=2 \{ .ENDNOTE_NUMBERS_ALIGN RIGHT 2 \}
+. el \{ .ENDNOTE_NUMBERS_ALIGN RIGHT 4 \}
+. \}
. \}
-. if !d$EN_LN_GAP \{ .ENDNOTE_LINENUMBER_GAP 1.5n \}
-. if !r#EN_ALLOWS_HEADERS \{ .ENDNOTES_ALLOWS_HEADERS \}
+. if !r#EN_LN_GAP \{ .ENDNOTE_LINENUMBER_GAP 1n \}
+. if !r#EN_ALLOWS_HEADERS \{ .ENDNOTES_ALLOWS_HEADERS \}
. if !d$BIB_PN_STYLE \{ .BIBLIOGRAPHY_PAGENUM_STYLE digit \}
. if !d$BIB_FAM \{ .BIBLIOGRAPHY_FAMILY \\*[$DOC_FAM] \}
. if !d$BIB_FT \{ .BIBLIOGRAPHY_FONT R \}
@@ -5775,11 +5653,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !r#COVER_UNDERLINE \{ .COVER_UNDERLINE \}
.\" Defaults for printstyle TYPEWRITE
. if \\n[#PRINT_STYLE]=1 \{\
+. SS DEFAULT
. if \\n[#UNDERLINE_QUOTES]=1 \{ .UNDERLINE_QUOTES \}
. if \\n[#UNDERLINE_QUOTES]=0 \{ .UNDERLINE_QUOTES OFF \}
.\" +Quotes and blockquotes
. if !r#Q_OFFSET_VALUE \{\
-. if '\\*[$Q_OFFSET_VALUE]'' \{ .QUOTE_INDENT 2 \}
+. if '\\*[$Q_OFFSET_VALUE]'' \{ .QUOTE_INDENT 1 \}
. \}
.\" +Epigraphs
. if !r#EPI_OFFSET_VALUE \{\
@@ -6006,15 +5885,17 @@ y\\R'#DESCENDER \\n[.cdp]'
. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE -2 \}
. if !r#FN_AUTOLEAD \{ .FOOTNOTE_AUTOLEAD 2 \}
.\" +Endnotes
-. if !r#EN_PS \{ .ENDNOTE_PT_SIZE (\\n[#DOC_PT_SIZE]u)\}
-. 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 !d$EN_LN_FT \{ .ENDNOTE_LINENUMBER_FONT R \}
-. if !d$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE +0 \}
-. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \}
+. if !r#EN_PS \{ .ENDNOTE_PT_SIZE (\\n[#DOC_PT_SIZE]u) \}
+. 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 !d$EN_LN_FT \{ .ENDNOTE_LINENUMBER_FONT R \}
+. if !d$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE +0 \}
+. if !d$EN_LN_SIZE_CHANGE \{ .ENDNOTE_LINENUMBER_SIZE +0 \}
+. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \}
+. if !d$EN_SPACE \{ .ENDNOTE_SPACING 0 \}
.\" +Bibliography
. if !r#BIB_LIST \{ .BIBLIOGRAPHY_TYPE LIST . \}
. if !r#BIB_PS \{ .BIBLIOGRAPHY_PT_SIZE (\\n[#DOC_PT_SIZE]u) \}
@@ -6023,7 +5904,7 @@ y\\R'#DESCENDER \\n[.cdp]'
.\" +Table of contents
. if !d$TOC_FAM \{ .TOC_FAMILY \\*[$DOC_FAM] \}
. if !r#TOC_PS \{ .TOC_PT_SIZE (\\n[#DOC_PT_SIZE]u) \}
-. if !r#TOC_LEAD \{ .TOC_LEAD \\n[#DOC_LEAD]u ADJUST \}
+. if !d$TOC_LEAD \{ .TOC_LEAD \\n[#DOC_LEAD]u ADJUST \}
. if !d$TOC_HEADER_FAM \{ .TOC_HEADER_FAMILY \\*[$TOC_FAM] \}
. if !d$TOC_HEADER_SIZE_CHANGE \{ .TOC_HEADER_SIZE +4 \}
. if !d$TOC_HEADER_FT \{ .TOC_HEADER_FONT B \}
@@ -6054,18 +5935,21 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
.\" +Refer support
. if !r#EN_REF \{ .nr #FN_REF 1 \}
-. if '\\*[$REF_FN_INDENT]'' \{\
-. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS FOOTNOTE 2m \}
-. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS FOOTNOTE 1.5m \}
+. if !d$REF_FN_INDENT \{\
+. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS FOOTNOTE .5i \}
+. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS FOOTNOTE 2m \}
. \}
-. if '\\*[$REF_EN_INDENT]'' \{\
-. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS ENDNOTE 2m \}
-. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS ENDNOTE 1.5m \}
+. if !d$REF_EN_INDENT \{\
+. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS ENDNOTE .5i \}
+. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS ENDNOTE 2m \}
. \}
-. if '\\*[$REF_BIB_INDENT]'' \{\
-. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS BIBLIO 2m \}
-. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS BIBLIO 1.5m :\}
+. if !d$REF_BIB_INDENT \{\
+. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS BIBLIO .5i \}
+. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS BIBLIO 2m \}
. \}
+.\" Define strings for idem entries
+. if \\n[#PRINT_STYLE]=1 .char \[idem] \[hy]\[hy]\[hy]
+. if \\n[#PRINT_STYLE]=2 .char \[idem] \v'-.3m'\l'3m'\v'.3m'
.\" Adjust doc leading for PRINTSTYLE TYPESET
. if \\n[#PRINT_STYLE]=2 \{\
. ie \\n[#ADJ_DOC_LEAD]=1 \{ .DOC_LEAD_ADJUST \}
@@ -6075,7 +5959,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. di NULL
. ev NULL
. if \\n[#PRINT_STYLE]=1 \{\
-. ps 12
+. ps \\*[$TYPEWRITER_PS]
. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#ORIGINAL_DOC_LEAD]u \}
. el \{ .vs \\n[#ORIGINAL_DOC_LEAD]u/2u \}
. \}
@@ -6100,24 +5984,21 @@ y\\R'#DESCENDER \\n[.cdp]'
. BIBLIOGRAPHY_LEAD 12 ADJUST
. \}
. el \{\
-. ie \\n[#EN_SINGLESPACE] \{ .ENDNOTE_LEAD 12 ADJUST \}
-. el \{ .ENDNOTE_LEAD 24 ADJUST \}
-. ie \\n[#BIB_SINGLESPACE] \{ .BIBLIOGRAPHY_LEAD 12 ADJUST \}
-. el \{ .BIBLIOGRAPHY_LEAD 24 ADJUST \}
+. ie \\n[#EN_SINGLESPACE] .ENDNOTE_LEAD 12 ADJUST
+. el .ENDNOTE_LEAD 24 ADJUST
+. ie \\n[#BIB_SINGLESPACE] .BIBLIOGRAPHY_LEAD 12 ADJUST
+. el .BIBLIOGRAPHY_LEAD 24 ADJUST
. \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
-. ie !d$EN_LEAD \{ .ENDNOTE_LEAD 14 ADJUST \}
-. el \{ .ENDNOTE_LEAD \\*[$EN_LEAD] \\*[$ADJUST_EN_LEAD] \}
-. ie !d$BIB_LEAD \{ .BIBLIOGRAPHY_LEAD 14 ADJUST \}
-. el \{ .BIBLIOGRAPHY_LEAD \\*[$BIB_LEAD] \\*[$ADJUST_BIB_LEAD] \}
-. ie !d$TOC_LEAD \{ .TOC_LEAD \\n[#RESTORE_DOC_LEAD]u \}
-. el \{ .TOC_LEAD \\*[$TOC_LEAD] \\*[$ADJUST_TOC_LEAD] \}
-. rm $ADJUST_EN_LEAD
-. rm $ADJUST_BIB_LEAD
-. rm $ADJUST_TOC_LEAD
-. \}
-. ie !d$BIB_SPACE \{ .BIBLIOGRAPHY_SPACING 1v \}
+. ie !d$EN_LEAD .ENDNOTE_LEAD \\n[#UNADJUSTED_DOC_LEAD]u ADJUST
+. el .ENDNOTE_LEAD \\*[$EN_LEAD] \\*[$ADJUST_EN_LEAD]
+. ie !d$BIB_LEAD .BIBLIOGRAPHY_LEAD \\n[#UNADJUSTED_DOC_LEAD]u ADJUST
+. el .BIBLIOGRAPHY_LEAD \\*[$BIB_LEAD] \\*[$ADJUST_BIB_LEAD]
+. ie !d$TOC_LEAD .TOC_LEAD \\n[#UNADJUSTED_DOC_LEAD]u \\*[$ADJUST_TOC_LEAD]
+. el .TOC_LEAD \\*[$TOC_LEAD] \\*[$ADJUST_TOC_LEAD]
+. \}
+. ie !d$BIB_SPACE \{ .BIBLIOGRAPHY_SPACING 0 \}
. el \{\
. if \\n[#DEFER_BIB_SPACING]=1 \{\
. BIBLIOGRAPHY_SPACING \\*[$BIB_SPACE]
@@ -7585,7 +7466,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Macro to begin document processing
\#
.MAC START END
-. nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+. if !n \{ .nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap' \}
. if !\\n[#PRINT_STYLE] \{\
. PRINTSTYLE TYPEWRITE
. PRINT \&
@@ -7689,9 +7570,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
-\!. fam C
+\!. fam \\*[$TYPEWRITER_FAM]
\!. ft R
-\!. ps 12
+\!. ps \\*[$TYPEWRITER_PS]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
\!. FAMILY \\*[$TOC_TITLE_FAM]
@@ -8326,9 +8207,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Default is "END".
\#
.MAC FINIS_STRING END
-\#. if \\n[#FINIS_STRING_CAPS]=1 \{ .CAPS \}
. ds $FINIS_STRING \\$1
-\#. if \\n[#FINIS_STRING_CAPS]=1 \{ .CAPS OFF \}
.END
\#
.MAC FINIS_STRING_CAPS END
@@ -8448,12 +8327,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. CENTER
. if \\n[#PRINT_STYLE]=1 \{\
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. ft R
. if '\\*[$EPI_FT]'I' \{\
. FT I
. \}
-. ps 12
+. ps \\*[$TYPEWRITER_PS]
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \}
. el \{ .vs \\n[#DOC_LEAD]u/2u \}
. nr #EPI_LEAD \\n[#LEAD]
@@ -8522,12 +8401,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. CHECK_INDENT
. \}
. if \\n[#PRINT_STYLE]=1 \{\
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. ft R
. if '\\*[$EPI_FT]'I' \{\
. FT I
. \}
-. ps 12
+. ps \\*[$TYPEWRITER_PS]
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \}
. el \{ .vs \\n[#DOC_LEAD]u/2u \}
. QUAD LEFT
@@ -9118,7 +8997,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. if '\\$0'HEADER_RULE' \{\
-. nr #HEADERS_ON 1
. ie '\\$1'' \{\
. nr #HEADER_RULE 1
. nr #HDRFTR_RULE 1
@@ -9129,7 +9007,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. if '\\$0'FOOTER_RULE' \{\
-. nr #FOOTERS_ON 1
. ie '\\$1'' \{\
. nr #FOOTER_RULE 1
. nr #HDRFTR_RULE 1
@@ -9703,9 +9580,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ll \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if \\n[#PRINT_STYLE]=1 \{\
-. fam C
+. fam \\*[$TYPEWRITER_FAM]
. ft R
-. ps 12\\*[$HDRFTR_SIZE_CHANGE]
+. ps \\*[$TYPEWRITER_PS]\\*[$HDRFTR_SIZE_CHANGE]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. fam \\*[$HDRFTR_FAM]
@@ -9718,10 +9595,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #CAPS_WAS_ON 1
. CAPS OFF
. \}
-. if \\n[#UNDERLINE_ON] \{\
-. nr #UNDERLINE_WAS_ON 1
-. UNDERLINE OFF
-. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#ENDNOTES]=1 \{\
.\" Single-spaced endotes have a different lead
@@ -9731,7 +9604,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. \}
-. nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap'
+. if !n \{ .nop \X'ps: exec 0 setlinejoin'\X'ps: exec 0 setlinecap' \}
. RLD 1v
. ie \\n[#HEADERS_ON] \{\
. PRINT_HDRFTR
@@ -9765,10 +9638,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. CAPS
. rr #CAPS_WAS_ON
. \}
-. if \\n[#UNDERLINE_WAS_ON] \{\
-. UNDERLINE
-. rr #UNDERLINE_WAS_ON
-. \}
. if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \}
. if \\n[#QUOTE] \{\
. ie \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \}
@@ -9849,14 +9718,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. rm FN_IN_DIVER
. if dRUNON_FN_IN_DIVER \{ .rm RUNON_FN_IN_DIVER \}
. \}
-. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#SLANT_ON] \{\
-. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \}
-. \}
-. if \\n[#UNDERLINE_ON]=1 \{\
-. if \\n[#UNDERLINE_ITALIC] \{ .UNDERLINE \}
-. \}
-. \}
. rr #FROM_HEADER
. rr #DEFER_SPACE_ADDED
. if !\\n[#FN_DEPTH] \{\
@@ -9881,6 +9742,21 @@ y\\R'#DESCENDER \\n[.cdp]'
. rr #MN_OVERFLOW_RIGHT
. rr #no-repeat-MN-right
. if \\n[#PRE_COLLATE]=1 \{ .rr #PRE_COLLATE \}
+. if \\n[#UNDERLINE_WAS_ON]=1 \{\
+. vs 0
+. ie !n \{\
+. nop \R'#UNDERLINE_ON 1'\X'ps: exec \\n[_w] \\n[_d] decorline' \}
+. \}
+. el \{\
+. ul 1000
+. \}
+. rr #UNDERLINE_WAS_ON
+. br
+. \}
+. if \\n[#RESTORE_PAGINATION] \{\
+. PAGINATE
+. rr #RESTORE_PAGINATION
+. \}
.END
\#
\# ====================================================================
@@ -9954,7 +9830,14 @@ y\\R'#DESCENDER \\n[.cdp]'
\# FINAL respects PAGENUMBER.
\#
.MAC FOOTER END
+. nr #SAVED_LEAD \\n(.v
. ev PAGE_TRANSITION
+. ie !n \{ .nop \X'ps: exec decornone' \}
+. el \{ .ul 0 \}
+. br
+. if \\n[#UNDERLINE_ON]=1 \{\
+. nr #UNDERLINE_WAS_ON 1
+. \}
. if \\n[MN-left]>0 \{\
. if !\\n[#no-repeat-MN-left]=1 \{\
. MNbottom-left
@@ -9979,7 +9862,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. ch MN_OVERFLOW_TRAP
-. nr #SAVED_LEAD \\n(.v
. nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN]
. if !\\n[#FN_DEFER] \{\
. nr #DIVER_DEPTH 0
@@ -9997,7 +9879,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. nf
. FOOTNOTES
. rm FOOTNOTES
-. if dRUNON_FOOTNOTES \{ .rm RUNON_FOOTNOTES \}
+. if d RUNON_FOOTNOTES \{ .rm RUNON_FOOTNOTES \}
. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#SAVED_LEAD]u \}
. if \\n[#PRINT_STYLE]=2 \{ .LS \\n[#SAVED_LEAD]u \}
. if '\\n(.z'FN_OVERFLOW' \{\
@@ -10095,7 +9977,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ns
. rr #DIVERTED
. \}
-. el \{ .DO_FOOTER \}
+. el \{\
+. DO_FOOTER
+. \}
.END
\#
\#
@@ -10108,21 +9992,37 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Resets CAPS and UNDERLINE if they were on.
\#
.MAC DO_FOOTER END
+.\" Part of workaround for refer spitting out a blank page if the
+.\" last reference falls on the bottom line.
+. if \\n[num*refs] \{\
+. if \\n[ref*num]=\\n[num*refs] \{\
+. PRINT_FOOTER
+. return
+. \}
+. \}
+. PRINT_FOOTER
+. bp
+.\" .bp springs the header trap; this pops the PAGE_TRANSITION ev
+. ev
+.END
+\#
+.MAC PRINT_FOOTER END
.\" Have to change position of FN_OVERFLOW_TRAP or it screws up the
.\" placement of page numbers (or footers). It's reset to its original
.\" position at the end of the macro.
. if r#SAVED_FOOTER_POS \{ .ch FOOTER \\n[#SAVED_FOOTER_POS]u \}
. rr #SAVED_FOOTER_POS
-. ie (\\n[#FOOTER_MARGIN]+\\n(.v)>\\n[#B_MARGIN] \{\
+. ie (\\n[#FOOTER_MARGIN]+\\n[.v]>\\n[#B_MARGIN] \{\
. nr #SKIP_FOOTER 1
. \}
. el \{\
+. ev FOOTER
. vpt 0
+. vs 12
. sp |\\n[#PAGE_LENGTH]u-\\n[#FOOTER_MARGIN]u-1v
. mk y
-. vpt 1
. \}
-. ev FOOTER
+. UNDERLINE OFF
. po \\n[#DOC_L_MARGIN]u
. ll \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
@@ -10134,16 +10034,11 @@ y\\R'#DESCENDER \\n[.cdp]'
. ft R
. ps \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE]
. \}
-. vs \\n[#SAVED_LEAD]u
. nr #HDRFTR_PT_SIZE \\n[#PT_SIZE]
. if \\n[#CAPS_ON] \{\
. nr #CAPS_WAS_ON 1
. CAPS OFF
. \}
-. if \\n[#UNDERLINE_ON] \{\
-. nr #UNDERLINE_WAS_ON 1
-. UNDERLINE OFF
-. \}
. ie \\n[#FOOTERS_ON] \{\
. if !\\n[#SKIP_FOOTER]=1 \{ .PRINT_HDRFTR \}
. \}
@@ -10159,16 +10054,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. CAPS
. rr #CAPS_WAS_ON
. \}
-. if \\n[#UNDERLINE_WAS_ON] \{\
-. UNDERLINE
-. rr #UNDERLINE_WAS_ON
-. \}
. ev
. rr #SAVED_LEAD
-. bp
-.\" This ev pops the PAGE_TRANSITION environment still active at the
-.\" end of HEADER
-. ev
+. vpt 1
.END
\#
\# ====================================================================
@@ -10498,6 +10386,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# each line of text.
\#
.MAC HEAD END
+. if \\n[#UNDERLINE_ON]=1 .UNDERLINE OFF
. br
. if \\n[#PRINT_STYLE]=1 \{ .ne \\n[#NUM_ARGS]+2 \}
. if \\n[#PRINT_STYLE]=2 \{\
@@ -10535,9 +10424,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
-\!. fam C
+\!. fam \\*[$TYPEWRITER_FAM]
\!. ft R
-\!. ps 12
+\!. ps \\*[$TYPEWRITER_PS]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
\!. FAMILY \\*[$TOC_HEAD_FAM]
@@ -10584,7 +10473,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
. vs \\n[#DOC_LEAD]u
-. UNDERLINE OFF
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$HEAD_FAM]
@@ -10730,6 +10618,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# each line of text.
\#
.MAC SUBHEAD END
+. if \\n[#UNDERLINE_ON]=1 .UNDERLINE OFF
. br
. ne \\n[#NUM_ARGS]+2
.\" Collect subhead for TOC.
@@ -10762,9 +10651,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
-\!. fam C
+\!. fam \\*[$TYPEWRITER_FAM]
\!. ft R
-\!. ps 12
+\!. ps \\*[$TYPEWRITER_PS]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
\!. FAMILY \\*[$TOC_SH_FAM]
@@ -10813,7 +10702,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. TYPEWRITER
. vs \\n[#DOC_LEAD]u
. QUAD \\*[$SH_QUAD]
-. UNDERLINE OFF
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$SH_FAM]
@@ -11009,6 +10897,7 @@ y\\R'#DESCENDER \\n[.cdp]'
\# PARAHEAD *must* come after PP.
\#
.MAC PARAHEAD END
+. if \\n[#UNDERLINE_ON]=1 .UNDERLINE OFF
.\" Collect parahead for TOC.
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. ie \\n[#NUMBER_PH] \{\
@@ -11021,9 +10910,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
-\!. fam C
+\!. fam \\*[$TYPEWRITER_FAM]
\!. ft R
-\!. ps 12
+\!. ps \\*[$TYPEWRITER_PS]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
\!. FAMILY \\*[$TOC_PH_FAM]
@@ -11063,10 +10952,18 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. ie \\n[#PP]=1 \{\
. if \\n[#INDENT_FIRST_PARAS] \{\
+. vpt 0
+. if \\n[#PRINT_STYLE]=1 \{ .sp -1v \}
. ti \\n[#PH_INDENT]u
+. vpt
. \}
. \}
-. el \{ .ti \\n[#PH_INDENT]u \}
+. el \{\
+. vpt 0
+. if \\n[#PRINT_STYLE]=1 \{ .sp -1v \}
+. ti \\n[#PH_INDENT]u
+. vpt
+. \}
. ie \\n[#PREFIX_CH_NUM]=1 \{\
. ds $CH_NUM \\n[#CH_NUM].
. \}
@@ -11075,7 +10972,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
-. UNDERLINE OFF
. ie \\n[#NUMBER_PH] \{\
. if \\n[#NUMBER_HEAD] \{\
. ie \\n[#NUMBER_SH] \{\
@@ -11243,11 +11139,10 @@ y\\R'#DESCENDER \\n[.cdp]'
\# Affects all paragraphs.
\#
.MAC PP_FONT END
-. if \n[#PRINT_STYLE]=1 \{\
-. ie \n[#ITALIC_MEANS_ITALIC] \{ .nop \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#ITALIC_MEANS_ITALIC] \{ .nop \}
. el \{ .return \}
. \}
-. br
. if \\n[#COLLATE]=1 \{\
. if !'\\*[$SAVED_PP_FT]'' \{ .rm $SAVED_PP_FT \}
. \}
@@ -11369,7 +11264,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#ENDNOTE] \{ .vs \\n[#EN_LEAD]u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. QUAD \\*[$DOC_QUAD]
-. UNDERLINE OFF
. if \\n[#SLANT_ON] \{\
. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \}
. \}
@@ -11491,13 +11385,14 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. nr #Q_PP +1
. \}
-\# This takes care of multi-paragraph dialogue, where each para
-\# is introduced by an open quote whereas the previous para has
-\# no close quote.
+.\" This takes care of multi-paragraph dialogue, where each para
+.\" is introduced by an open quote whereas the previous para has
+.\" no close quote.
. if \\n[#OPEN_CLOSE]=1 \{\
. nr #OPEN_CLOSE 0
. \}
. nr #PP_ACTIVE 1
+. UNDERLINE OFF
.END
\#
\# ====================================================================
@@ -12067,6 +11962,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. nf
. B_QUOTE
. \}
+. if \\n[#UNDERLINE_ON] \{\
+. vpt 0
+. sp -1v
+. UNDERLINE OFF
+. vpt
+. \}
. if \\n[#PRINT_STYLE]=1 \{\
. ALD \\n[#DOC_LEAD]u
. if !\\n[.v]=\\n[#DOC_LEAD] \{ .SHIM \}
@@ -12144,17 +12045,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
. \}
. 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]
. \}
. if r#DELAY_SHIM \{\
@@ -12317,7 +12210,9 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #END_QUOTE 1
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_QUOTES] \{\
+. ev 1
. UNDERLINE OFF
+. ev
. \}
. \}
. po \\n[#L_MARGIN]u
@@ -12642,6 +12537,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. return
. \}
. nr #FN_MARKER_STYLE 2
+. shift
+. if '\\$1'NO_SUPERSCRIPT' \{ .nr #NO_SUPERSCRIPT 1 \}
. if \\n[#NEWPAGE]=1 \{ .rr #NEWPAGE \}
. FOOTNOTE_MARKERS
. \}
@@ -12655,13 +12552,29 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.END
\#
\#
+\# FOOTNOTE NUMBER PLACEHOLDERS
+\# ----------------------------
+\# *Argument:
+\# <number of placeholders>
+\# *Function:
+\# Sets register #FN_NUMBER_PLACEHOLDERS, used to establish whether to
+\# right pad a footnote number (in the footnote itself, not body copy).
+\# *Notes:
+\# No default is set for this; user must determine if, and where, it's
+\# required
+\#
+.MAC FOOTNOTE_NUMBER_PLACEHOLDERS END
+. nr #FN_NUMBER_PLACEHOLDERS \\$1
+.END
+\#
+\#
\# FOOTNOTE LINENUMBER MARK
\# ------------------------
\# *Function:
\# This string, when called inline, stores the current output line
\# number in register #FN_MARK for use with FOOTNOTE.
\#
-.ds FN-MARK \R'#FN_MARK \En(ln'
+.ds FN_MARK \R'#FN_MARK \En(ln'
\#
\#
\# FOOTNOTE LINENUMBER SEPARATOR
@@ -12810,8 +12723,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Default is no space.
\#
.MAC FOOTNOTE_SPACING END
-. ie \B'\\$1' \{ .nr #FN_SPACE (\\$1) \}
-. el \{ .nr #FN_SPACE 0 \}
+. ie \B'\\$1' .ds $FN_SPACE \\$1
+. el \{ .rm $FN_SPACE \}
.END
\#
\#
@@ -12886,6 +12799,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\#
.MAC FOOTNOTE END
. ie '\\$1'' \{\
+. if \\n[#UNDERLINE_ON] \{\
+. UNDERLINE OFF
+. nr #UNDERLINE_WAS_ON_FN 1
+. \}
. if \\n[#FN_MARKER_STYLE]=3 \{\
. if !\\n[#LINENUMBERS] \{\
. tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
@@ -12999,12 +12916,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.\" Housekeeping
. 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
-. \}
-. \}
.\" Add footnote markers to running text...
. if !\\n[#NO_FN_MARKER] \{\
.\" ...but not if TERMINATE has not been called
@@ -13170,30 +13081,36 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if !\\n[#DONT_RULE_ME]=1 \{\
. if !\\n[#FN_DEPTH] \{\
. if \\n[#PRINT_STYLE]=1 \{\
-. if !\\n[#RUN_ON] \{ .ALD \\n[#DOC_LEAD]u \}
+. if !\\n[#RUN_ON] \{ .sp \\n[#DOC_LEAD]u \}
. \}
. ie \\n[#FN_RULE]=1 \{\
-. if !\\n[#RUN_ON] \{ .PRINT_FOOTNOTE_RULE \}
+. if !\\n[#RUN_ON] \{\
+. if \\n[#SINGLE_SPACE] \{ .sp \\n[#DOC_LEAD]u \}
+. PRINT_FOOTNOTE_RULE
+. if !'\\*[$FN_SPACE]'' \{ .sp -\\*[$FN_SPACE] \}
+. \}
. \}
-. el \{ .ALD 1v \}
+. el \{ .sp 1v \}
. nr #RULED 1
. \}
. \}
. \}
. rr #DONT_RULE_ME
+. ds $RESTORE_SS_VAR \\*[$SS_VAR]
+. SS 0
.\" Add footnote markers to footnote text...
. ie \\n[#FN_MARKERS] \{\
-. if \\n[#FN_SPACE]>0 \{\
+. if !'\\*[$FN_SPACE]'' \{\
. if \\n[#FN_COUNT]>0 \{\
-. ALD \\n[#FN_SPACE]u
+. ALD \\*[$FN_SPACE]
. \}
. \}
. if !\\n[#NO_FN_MARKER] \{\
.\" ...but not if TERMINATE has been called.
. if !r#TERMINATE \{\
. if \\n[#REF]=1 \{\
-\!. in +\\*[$REF_FN_INDENT]
-\!. ti -\\*[$REF_FN_INDENT]
+. nr #REF_FN_INDENT (u;\\*[$REF_FN_INDENT])
+. ti \\n[#REF_FN_INDENT]u
. \}
. if \\n[#FN_MARKER_STYLE]=1 \{\
. ie \\n[#COLUMNS]=1 \{\
@@ -13223,6 +13140,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. \}
. if \\n[#FN_MARKER_STYLE]=2 \{\
+. ds $FN_NUMBER \\n[#FN_NUMBER]
+. length #FN_NUMBER_LENGTH \\*[$FN_NUMBER]
. if \\n[#COLUMNS]=1 \{\
. \\n+[#FN_COUNT_FOR_COLS]
. \}
@@ -13230,8 +13149,32 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr #FN_NUMBER 1 1
. rr #NOT_YET_ADJUSTED
. \}
-. if \\n[#PRINT_STYLE]=1 \{ .PRINT "(\\n[#FN_NUMBER])\c" \}
-. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n[#FN_NUMBER]\*[SUPX]\*[FU 2]\c" \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#NO_SUPERSCRIPT] \{\
+. ie \\n[#FN_NUMBER_LENGTH]<\\n[#FN_NUMBER_PLACEHOLDERS] \{\
+. PRINT "\0(\\n[#FN_NUMBER])\|\c"
+. \}
+. el \{\
+. PRINT "(\\n[#FN_NUMBER])\|\c"
+. \}
+. \}
+. el \{\
+. ie \\n[#FN_NUMBER_LENGTH]<\\n[#FN_NUMBER_PLACEHOLDERS] \{\
+. PRINT "\s-2\v'-\\n[.v]u/5u'\0\\n[#FN_NUMBER]\|\v'+\\n[.v]u/5u'\s+2\|\c"
+. \}
+. el \{\
+. PRINT "\s-2\v'-\\n[.v]u/5u'\\n[#FN_NUMBER]\|\v'+\\n[.v]u/5u'\s+2\|\c"
+. \}
+. \}
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie \\n[#FN_NUMBER_LENGTH]<\\n[#FN_NUMBER_PLACEHOLDERS] \{\
+. PRINT "\*[SUP]\0\\n[#FN_NUMBER]\*[SUPX]\*[FU 3]\c"
+. \}
+. el \{\
+. PRINT "\*[SUP]\\n[#FN_NUMBER]\*[SUPX]\*[FU 3]\c"
+. \}
+. \}
. \}
. \}
. \}
@@ -13248,17 +13191,16 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. if \\n[#REF]=1 \{\
. if !\\n[#RUN_ON]=1 \{\
-\!. in +\\*[$REF_FN_INDENT]
-\!. ti -\\*[$REF_FN_INDENT]
+\!. ti +\\n[#REF_FN_INDENT]u
. \}
. \}
. ie \\n[#FN_LN_BRACKETS]=1 \{\
. ds $FN_LINENUMBER \v'-.085m'\\*[$FN_OPEN_BRACKET]\v'.085m'
. ie \\n[#FN_MARK_2]=\\n[#FN_MARK] \{\
-. as $FN_LINENUMBER \\n[#FN_MARK]\v'-.085m'\\*[$FN_CLOSE_BRACKET]\v'.085m' \"
+. as $FN_LINENUMBER \\n[#FN_MARK]\v'-.085m'\\*[$FN_CLOSE_BRACKET]\v'.085m'\h'.25m'
. \}
. el \{\
-. as $FN_LINENUMBER \\n[#FN_MARK]\v'-.1m'-\v'.1m'\\n[#FN_MARK_2]\v'-.085m'\\*[$FN_CLOSE_BRACKET]\v'.085m' \"
+. as $FN_LINENUMBER \\n[#FN_MARK]\v'-.1m'-\v'.1m'\\n[#FN_MARK_2]\v'-.085m'\\*[$FN_CLOSE_BRACKET]\v'.085m'\h'.25m'
. \}
. \}
. el \{\
@@ -13323,18 +13265,16 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.\" More housekeeping
.\" Turn off indent possibly set by FOOTNOTE INDENT
. in 0
+. ev
+. if \\n[#UNDERLINE_WAS_ON_FN] \{\
+. UNDERLINE
+. rr #UNDERLINE_WAS_ON_FN
+. \}
.\" Restore sentence spacing
. if \\n[#PRINT_STYLE]=2 \{\
-. if d$RESTORE_SS_VAR \{ .SS \\*[$RESTORE_SS_VAR] \}
+. if d $RESTORE_SS_VAR \{ .SS \\*[$RESTORE_SS_VAR] \}
. rm $RESTORE_SS_VAR
. \}
-. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#UNDERLINE_WAS_ON] \{\
-. UNDERLINE
-. rr #UNDERLINE_WAS_ON
-. \}
-. \}
-. ev
. rr #FN_R_INDENT
. rr #FN_BR_INDENT
. nr #PP_STYLE \\n[#PP_STYLE_PREV]
@@ -13527,7 +13467,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.\" current page position. Leaving it in anyway, commented out, in
.\" case the logic and the conditions under which it should
.\" apply reveal themselves.
-\#. nr #VARIABLE_FOOTER_POS -\\n[#VFP_DIFF]
. nr #FN_DEPTH \\n[#SAVED_FN_DEPTH_1]+\\n[#VFP_DIFF]
. \}
. el \{\
@@ -13911,35 +13850,37 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.END
\#
\#
-\# ENDNOTE LEAD
-\# ------------
+\# ENDNOTES, BIBLIOGRAPHY and TOC LEADING
+\# --------------------------------------
\# *Argument:
-\# <base leading to use in endnotes> [ ADJUST ]
+\# <leading> [ ADJUST ]
\# *Function:
-\# Creates or modifies register #EN_LEAD. Creates or removes
-\# register #ADJ_EN_LEAD. Stores arguments in strings if ENDNOTE_LEAD
-\# set before START.
+\# Depending on the name by which it's called, creates or modifies
+\# register #<type>_LEAD, where <type> is BIB, EN, or TOC. Creates or removes
+\# register #ADJ_<type>_LEAD. Stores arguments in strings if BIB,
+\# EN, or TOC leading are set before START.
\# *Notes:
-\# Default is 14 points for TYPESET, adjusted; 24 for TYPEWRITE.
-\#
-.MAC ENDNOTE_LEAD END
+\# Default is same as doc lead for TYPESET, adjusted; 24 for TYPEWRITE.
+\#
+.MAC _LEAD END
+. if '\\$0'BIBLIOGRAPHY_LEAD' .ds $SECTION BIB
+. if '\\$0'ENDNOTE_LEAD' .ds $SECTION EN
+. if '\\$0'TOC_LEAD' .ds $SECTION TOC
+. ds $\\*[$SECTION]_LEAD \\$1
+. ds $ADJUST_\\*[$SECTION]_LEAD \\$2
. if !\\n[#OK_PROCESS_LEAD] \{\
-. ds $EN_LEAD \\$1
-. if !'\\$2'' \{\
-. ds $ADJUST_EN_LEAD \\$2
-. \}
. return
. \}
-. rr #ADJ_EN_LEAD
-. nr #EN_LEAD (p;\\$1)
+. nr #\\*[$SECTION]_LEAD (p;\\$1)
+. rr #ADJ_\\*[$SECTION]_LEAD
. if '\\$2'ADJUST' \{\
. nr #ORIG_DOC_LEAD \\n[#DOC_LEAD]
. nr #RESTORE_ADJ_DOC_LEAD \\n[#ADJ_DOC_LEAD]
. nr #ADJ_DOC_LEAD 1
-. nr #ADJ_EN_LEAD 1
+. nr #ADJ_\\*[$SECTION]_LEAD 1
. nr #NO_TRAP_RESET 1
-. DOC_LEAD \\n[#EN_LEAD]u ADJUST
-. nr #EN_LEAD \\n[#DOC_LEAD]
+. DOC_LEAD \\n[#\\*[$SECTION]_LEAD]u ADJUST
+. nr #\\*[$SECTION]_LEAD \\n[#DOC_LEAD]
. DOC_LEAD \\n[#ORIG_DOC_LEAD]u
. rr #NO_TRAP_RESET
. nr #ADJ_DOC_LEAD \\n[#RESTORE_ADJ_DOC_LEAD]
@@ -13947,6 +13888,24 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
.END
\#
+.ALIAS BIBLIOGRAPHY_LEAD _LEAD
+.ALIAS ENDNOTE_LEAD _LEAD
+.ALIAS TOC_LEAD _LEAD
+\#
+\# ENDNOTE SPACING
+\# ----------------
+\# *Arguments:
+\# <per item endnote spacing> | <anything>
+\# *Function:
+\# Enables space between endnotes items.
+\# *Notes:
+\# Default is no space.
+\#
+.MAC ENDNOTE_SPACING END
+. ie \B'\\$1' .ds $EN_SPACE \\$1
+. el \{ .rm $EN_SPACE \}
+.END
+\#
\#
\# ENDNOTES_HDRFTR_CENTER
\# ----------------------
@@ -14023,7 +13982,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# ENDNOTE MARKER STYLE
\# --------------------
\# *Arguments:
-\# NUMBER | LINE
+\# NUMBER | LINE | SUPERSCRIPT
\# *Function:
\# Sets register #EN_MARKER_STYLE, used in ENDNOTE to determine
\# the style of endnote markers (labels).
@@ -14032,15 +13991,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Default is NUMBER.
\#
.MAC ENDNOTE_MARKER_STYLE END
-. if '\\$1'NUMBER' \{\
-. nr #EN_MARKER_STYLE 1
-. \}
+. if '\\$1'NUMBER' \{ .nr #EN_MARKER_STYLE 1 \}
. if '\\$1'LINE' \{\
. nr #EN_MARKER_STYLE 2
. if !\\n[#EN_LN_SEP] \{\
. if !\\n[#EN_LN_BRACKETS] \{ .ENDNOTE_LINENUMBER_BRACKETS SQUARE \}
. \}
. \}
+. if '\\$1'SUPERSCRIPT' \{ .nr #EN_MARKER_STYLE 3 \}
.END
\#
\#
@@ -14050,7 +14008,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# This string, when called inline, stores the current output line
\# number in register #EN_MARK for use with ENDNOTE.
\#
-.ds EN-MARK \R'#EN_MARK \En(ln'
+.ds EN_MARK \R'#EN_MARK \En(ln'
\#
\#
\# ENDNOTE LINENUMBER SEPARATOR
@@ -14118,40 +14076,30 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# labels in ENDNOTE.
\#
.MAC ENDNOTE_LINENUMBER_GAP END
-. ds $EN_LN_GAP \\$1
+. nr #EN_LN_GAP (u;\\$1)
.END
\#
\#
-\# ENDNOTE NUMBERS ALIGN RIGHT
-\# ---------------------------
+\# ENDNOTE NUMBERS ALIGNMENT
+\# -------------------------
\# *Argument:
-\# <max. number of digit placeholders that will appear in endnotes>
+\# LEFT | RIGHT <max. number of digit placeholders that will appear in endnotes>
\# *Function:
-\# Toggles register #EN_NUMBERS_ALIGN_RIGHT on; creates register
+\# Creates registers for _LEFT or _RIGHT; creates register
\# #EN_NUMBER_PLACEHOLDERS.
\# *Notes:
-\# Default is for footnote numbers to be right aligned to 2 placeholders.
+\# Default is for endnote 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
+.MAC ENDNOTE_NUMBERS_ALIGN END
+. if '\\$1'LEFT' \{\
+. rr #EN_NUMBERS_ALIGN_RIGHT
+. nr #EN_NUMBERS_ALIGN_LEFT 1
+. \}
+. if '\\$1'RIGHT' \{\
+. rr #EN_NUMBERS_ALIGN_LEFT
+. nr #EN_NUMBERS_ALIGN_RIGHT 1
+. \}
+. nr #EN_NUMBER_PLACEHOLDERS \\$2
.END
\#
\#
@@ -14338,27 +14286,29 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.MAC ENDNOTE END
. ie '\\$1'' \{\
. nr #ENDNOTE 1
-. if \\n[#EN_MARKER_STYLE]=1 \{\
-. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
-. if \\n[#EXTEND] \{ \*[EXTX]\c \}
-. if \\n[#PRINT_STYLE]=1 \{\
+. ie !\\n[#EN_MARKER_STYLE]=2 \{\
+. if \\n[#CONDENSE] \{ .nop \*[CONDX]\c \}
+. if \\n[#EXTEND] \{ .nop \*[EXTX]\c \}
. if \\n[#UNDERLINE_ON] \{\
. nr #UNDERLINE_WAS_ON 1
. UNDERLINE OFF
. \}
+. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#SLANT_ON] \{\
. nr #SLANT_WAS_ON 1
-\*[SLANTX]\c
+. nop \*[SLANTX]\c
. \}
+.\" Vertical raise amount here is more than when the same string is printed in
+.\" the endnotes so bottom of number aligns with top of bowl.
. PRINT "\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#EN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2\c"
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. PRINT \*[SUP]\\n+[#EN_NUMBER]\*[SUPX]\c
. \}
. \}
-. if \\n[#EN_MARKER_STYLE]=2 \{\
-. ie r#EN_NUMBER \{ \\n+[#EN_NUMBER] \}
-. el \{ .nr #EN_NUMBER 1 1 \}
+. el \{\
+. ie r#EN_NUMBER \{ .nr #EN_NUMBER \\n[#EN_NUMBER]+1 \}
+. el \{ .nr #EN_NUMBER 1 1 \}
. if !\\n[#LINENUMBERS] \{\
. tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
. tm1 " ENDNOTE_MARKER_STYLE is LINE.
@@ -14366,7 +14316,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. if \\n[#EN_MARK]=0 \{ .nr #EN_MARK \\n(ln \}
. nr #EN_MARK_2 \\n(ln
-. if '\\n(.z'P_QUOTE' \{\
+. if '\\n[.z]'P_QUOTE' \{\
. nr #EN_MARK -1
. nr #EN_MARK_2 -1
. \}
@@ -14384,9 +14334,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. el \{ .LL \\n[#COL_L_LENGTH]u \}
. ta \\n(.lu
. \}
+. ENDNOTE_LEAD \\*[$EN_LEAD] \\*[$ADJUST_EN_LEAD]
. vs \\n[#EN_LEAD]u
+.\" Print page header title
. if \\n[#EN_NUMBER]=1 \{\
-\!. ne 3
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
. \}
@@ -14414,11 +14365,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. \}
. \}
+.\" Get indent from endnotes point size; convert string to reg in
+.\" case indent string is, e.g., m or n
+. ps \\n[#EN_PS]u
+. nr #REF_EN_INDENT (u;\\*[$REF_EN_INDENT])
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
-. if \\n[#EN_NUMBER]=1 \{\
-. if \\n[#SINGLE_SPACE]=1 \{ .sp \}
-. \}
+. if \\n[#EN_NUMBER]=1 \{ .sp \}
+. if \\n[#EN_MARKER_STYLE]=3 \{ .PT_SIZE -2 \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. if \\n[#EN_NUMBER]=1 \{\
@@ -14434,16 +14388,21 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. FT \\*[$EN_LN_FT]
. PT_SIZE \\n[#EN_PS]u\\*[$EN_LN_SIZE_CHANGE]
. \}
+. if \\n[#EN_MARKER_STYLE]=3 \{\
+. FAMILY \\*[$EN_NUMBER_FAM]
+. FT \\*[$EN_NUMBER_FT]
+. PT_SIZE \\n[#PT_SIZE_IN_UNITS]u*6u/10u
+. \}
. \}
+.\" Build string for line-numbered endnotes
. if \\n[#EN_MARKER_STYLE]=2 \{\
-. ENDNOTE_NUMBERS_ALIGN_LEFT
. ie \\n[#EN_LN_BRACKETS]=1 \{\
. ds $EN_LINENUMBER \v'-.085m'\\*[$EN_OPEN_BRACKET]\v'.085m'
. ie \\n[#EN_MARK_2]=\\n[#EN_MARK] \{\
-. as $EN_LINENUMBER \\n[#EN_MARK]\v'-.085m'\\*[$EN_CLOSE_BRACKET]\v'.085m' \"
+. as $EN_LINENUMBER \\n[#EN_MARK]\v'-.085m'\\*[$EN_CLOSE_BRACKET]\v'.085m'\"
. \}
. el \{\
-. as $EN_LINENUMBER \\n[#EN_MARK]\v'-.1m'-\v'.1m'\\n[#EN_MARK_2]\v'-.085m'\\*[$EN_CLOSE_BRACKET]\v'.085m' \"
+. as $EN_LINENUMBER \\n[#EN_MARK]\v'-.1m'-\v'.1m'\\n[#EN_MARK_2]\v'-.085m'\\*[$EN_CLOSE_BRACKET]\v'.085m'\"
. \}
. \}
. el \{\
@@ -14457,37 +14416,56 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr #EN_MARK 0
. \}
\!. TRAP OFF
-. nr #RESET_L_LENGTH \\n(.l
-. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{ .RIGHT \}
+. el \{ .LEFT \}
+. if \\n[#EN_MARKER_STYLE]=1 \{\
. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]+\w'.'
+. \}
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+. ie \\n[#EN_LN_BRACKETS]=1 \{ .nr #EN_NUMBER_L_LENGTH (\w'\0'*(\\n[#EN_NUMBER_PLACEHOLDERS]*2))+\w'-[]' \}
+. el \{ .nr #EN_NUMBER_L_LENGTH (\w'\0'*(\\n[#EN_NUMBER_PLACEHOLDERS]*2))+\w'-\\*[$EN_LN_SEP]' \}
. RIGHT
. \}
-. el \{\
-. nr #EN_NUMBER_L_LENGTH \w'\En[#EN_NUMBER].\0'
-. LEFT
+. if \\n[#EN_MARKER_STYLE]=3 \{\
+. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]
+. RIGHT
. \}
-. if \\n[#EN_MARKER_STYLE]=2 \{\
-. if !\\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-. nr #EN_NUMBER_L_LENGTH \w'\\*[$EN_LINENUMBER]'+\\*[$EN_LN_GAP]
-. LEFT
-. \}
+. ie \\n[#REF]=1 \{\
+. ll \\n[#EN_NUMBER_L_LENGTH]u+\\n[#REF_EN_INDENT]u
. \}
-. ll \\n[#EN_NUMBER_L_LENGTH]u
+. el \{ .ll \\n[#EN_NUMBER_L_LENGTH]u \}
. if \\n[#EN_MARKER_STYLE]=1 \{\
-\En[#EN_NUMBER].
+. if \\n[#REF]=1 \{ .ti \\n[#REF_EN_INDENT]u \}
+. nop \En[#EN_NUMBER].
. \}
. if \\n[#EN_MARKER_STYLE]=2 \{\
-\\*[$EN_LINENUMBER]
+. nop \\*[$EN_LINENUMBER]
. rm $EN_LINENUMBER
. \}
+. if \\n[#EN_MARKER_STYLE]=3 \{\
+. PT_SIZE \" Reset ps changed to get width of s-script numbers
+. ie \\n[#PRINT_STYLE]=1 \{\
+.\" Vertical raise amount here is less than when the same string is printed in
+.\" the body of the text because number precedes a cap.
+. nop \s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|\v'+\\n[#DOC_LEAD]u/7u'\s+2
+. \}
+. el \{ .nop \E*[SUP]\\n[#EN_NUMBER]\E*[SUPX] \}
+. \}
. EOL
-. ll \\n[#RESET_L_LENGTH]u
-. nr #EN_FIGURE_SPACE \w'\0.'
-. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-. in \\n[#EN_NUMBER_L_LENGTH]u+\\n[#EN_FIGURE_SPACE]u
+\!. TRAP OFF
+. ll
+. nr #EN_FIGURE_SPACE \w'\0'
+. if \\n[#EN_MARKER_STYLE]=1 \{\
+. ie \\n[#REF]=1 \{ .ti \\n[#EN_NUMBER_L_LENGTH]u+\\n[#REF_EN_INDENT]u+\\n[#EN_FIGURE_SPACE]u \}
+. el \{ .in \\n[#EN_NUMBER_L_LENGTH]u+\\n[#EN_FIGURE_SPACE]u \}
. \}
-. el \{\
-. ti \\n[#EN_NUMBER_L_LENGTH]u
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+. ie \\n[#REF]=1 \{ .ti \\n[#EN_NUMBER_L_LENGTH]u+\\n[#REF_EN_INDENT]u+\\n[#EN_LN_GAP]u \}
+. el \{ .ti \\n[#EN_NUMBER_L_LENGTH]u+\\n[#EN_LN_GAP]u \}
+. \}
+. if \\n[#EN_MARKER_STYLE]=3 \{\
+. ie \\n[#REF]=1 \{ .ti \\n[#EN_NUMBER_L_LENGTH]u+\\n[#REF_EN_INDENT]u+\w'\|'u \}
+. el \{ .in \\n[#EN_NUMBER_L_LENGTH]u \}
. \}
. nr #EN_TEXT_INDENT \\n(.i
. QUAD \\*[$EN_QUAD]
@@ -14500,51 +14478,30 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. FT \\*[$EN_FT]
. PT_SIZE \\n[#EN_PS]u
. \}
-. if \\n[#REF]=1 \{\
-. ie !\\n[#EN_MARKER_STYLE]=2 \{\
-. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
-. in \\*[$REF_EN_INDENT]
-. ti -(\\*[$REF_EN_INDENT]-\\n[#EN_NUMBER_L_LENGTH]u)
-. \}
-. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-\#. in \\*[$REF_EN_INDENT]
-\#. ti -(\\*[$REF_EN_INDENT]-\\n[#EN_NUMBER_L_LENGTH]u-\\n[#EN_FIGURE_SPACE]u)
-\#. in \\*[$REF_EN_INDENT]+\\n[#EN_NUMBER_L_LENGTH]u
-\#. ti -(\\*[$REF_EN_INDENT]-\\n[#EN_NUMBER_L_LENGTH]u+\\n[#EN_FIGURE_SPACE]u)
-. in +\\*[$REF_EN_INDENT]
-. ti -\\*[$REF_EN_INDENT]
-. \}
-. \}
-. el \{\
-. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
-. in \\*[$REF_EN_INDENT]
-. ti -(\\*[$REF_EN_INDENT]-\\n[#EN_NUMBER_L_LENGTH]u)
-. \}
-. \}
-. \}
. \}
. el \{\
-. sp
+\!. ie \\n[#EN_NUMBER]=\\\\n[#LAST_EN] \{ .vpt 0 \}
+\!. el \{ .br \}
+. ALD \\*[$EN_SPACE]
. in 0
. if \\n[#EN_MARKER_STYLE]=2 \{\
\!. in 0
. \}
-. di
+. da
.\" Restore sentence spacing
. if \\n[#PRINT_STYLE]=2 \{\
. if d$RESTORE_SS_VAR \{ .SS \\*[$RESTORE_SS_VAR] \}
. rm $RESTORE_SS_VAR
. \}
. ev
+.\" Restore lead -- need
. nr #PP_STYLE \\n[#PP_STYLE_PREV]
. if !\\n[#INDENT_FIRSTS] \{ .INDENT_FIRST_PARAS OFF \}
. rr #INDENT_FIRSTS
. rr #ENDNOTE
-. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#UNDERLINE_WAS_ON] \{\
-. rr #UNDERLINE_WAS_ON
-. UNDERLINE
-. \}
+. if \\n[#UNDERLINE_WAS_ON] \{\
+. rr #UNDERLINE_WAS_ON
+. UNDERLINE
. \}
. if \\n[#SLANT_WAS_ON] \{\
. rr #SLANT_WAS_ON
@@ -14568,6 +14525,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# with endnotes, then outputs diversion END_NOTES.
\#
.MAC ENDNOTES END
+. nr #LAST_EN \\n[#EN_NUMBER]
. nr #ENDNOTES 1
. nr #EN_FIRST_PAGE 1
. nr #HEADER_STATE \\n[#HEADERS_ON]
@@ -14728,11 +14686,11 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. CAPS OFF
. if \\n[#PRINT_STYLE]=1 \{\
. ie \\n[#SINGLE_SPACE]=1 \{\
-. ALD \\n[#EN_LEAD]u*2u
+. sp
. \}
. el \{\
. ie \\n[#EN_SINGLESPACE]=1 \{\
-. ALD \\n[#EN_LEAD]u*2
+. sp
. \}
. el \{\
.
@@ -14741,9 +14699,9 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. if \\n[#PRINT_STYLE]=2 \{ .ALD \\n[#EN_LEAD]u \}
. QUAD \\*[$EN_QUAD]
+. chop END_NOTES
. nf
. END_NOTES
-. br
. ev
. rm END_NOTES
. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#DOC_LEAD]u \}
@@ -14760,6 +14718,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. NUMBER_LINES RESUME
. nr #LINENUMBERS 1
. \}
+. PRINT_FOOTER
. rr #ENDNOTES
.END
\#
@@ -14784,37 +14743,13 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Because the bibliography control macros all have endnotes
\# equivalents, refer to the appropriate, similar endnote macro for
\# Arguments, Function and Notes.
+\#
\# Bibliography control macros
\#
.MAC BIBLIOGRAPHY_PT_SIZE END
. nr #BIB_PS (p;\\$1)
.END
\#
-.MAC BIBLIOGRAPHY_LEAD END
-. if !\\n[#OK_PROCESS_LEAD] \{\
-. ds $BIB_LEAD \\$1
-. if !'\\$2'' \{\
-. ds $ADJUST_BIB_LEAD \\$2
-. \}
-. return
-. \}
-. rr #ADJ_BIB_LEAD
-. nr #BIB_LEAD (p;\\$1)
-. if '\\$2'ADJUST' \{\
-. nr #ORIG_DOC_LEAD \\n[#DOC_LEAD]
-. nr #RESTORE_ADJ_DOC_LEAD \\n[#ADJ_DOC_LEAD]
-. nr #ADJ_DOC_LEAD 1
-. nr #ADJ_BIB_LEAD 1
-. nr #NO_TRAP_RESET 1
-. DOC_LEAD \\n[#BIB_LEAD]u ADJUST
-. nr #BIB_LEAD \\n[#DOC_LEAD]
-. DOC_LEAD \\n[#ORIG_DOC_LEAD]u
-. rr #NO_TRAP_RESET
-. nr #ADJ_DOC_LEAD \\n[#RESTORE_ADJ_DOC_LEAD]
-. rr #ORIG_DOC_LEAD
-. \}
-.END
-\#
.MAC BIBLIOGRAPHY_HDRFTR_CENTER END
. ie '\\$1'' \{ .nr #BIB_HDRFTR_CENTER 1 \}
. el \{ .rr #BIB_HDRFTR_CENTER \}
@@ -14830,7 +14765,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\#
.MAC BIBLIOGRAPHY_STRING_CAPS END
. ie '\\$1'' \{ .nr #BIB_STRING_CAPS 1 \}
-. el \{ .rr #BIB_STRING_CAPS \}
+. el \{ .nr #BIB_STRING_CAPS 0 \}
.END
\#
.MAC BIBLIOGRAPHY_NO_COLUMNS END
@@ -14959,207 +14894,223 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Bibliography pages are set up almost identically to endnotes pages.
\#
.MAC BIBLIOGRAPHY END
-. nr #BIBLIOGRAPHY 1
-. nr #BIB_FIRST_PAGE 1
-. nr #HEADER_STATE \\n[#HEADERS_ON]
-. ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
-. if \\n[#LINENUMBERS]=1 \{\
-. NUMBER_LINES OFF
-. nr #LINENUMBERS 2
-. \}
-. if \\n[#HEADERS_ON]=1 \{\
-. if !\\n[#BIB_ALLOWS_HEADERS_ALL] \{ .HEADERS OFF \}
-. \}
-. if \\n[#HEADER_STATE]=1 \{\
-. ie \\n[#BIB_HDRFTR_CENTER]=1 \{ . \}
-. el \{ .rm $HDRFTR_CENTER \}
-. \}
-. ie !\\n[#SUSPEND_PAGINATION] \{\
-. if \\n[#PAGINATE]=1 \{\
-. if \\n[#PAGE_NUM_V_POS]=1 \{\
-. PAGENUM_STYLE \\*[$BIB_PN_STYLE]
-. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN]-1 \}
-. if r#BIB_NO_FIRST_PN \{ .nr #PAGINATE 0 \}
+. ie '\\$1'' \{\
+. rr #FN_REF
+. rr #EN_REF
+. REF_STYLE BIBLIO
+. nr #BIBLIOGRAPHY 1
+. nr #BIB_FIRST_PAGE 1
+. nr #HEADER_STATE \\n[#HEADERS_ON]
+. ds $RESTORE_PAGENUM_STYLE \\*[$PAGENUM_STYLE]
+. if \\n[#LINENUMBERS]=1 \{\
+. NUMBER_LINES OFF
+. nr #LINENUMBERS 2
+. \}
+. if \\n[#HEADERS_ON]=1 \{\
+. if !\\n[#BIB_ALLOWS_HEADERS_ALL] \{ .HEADERS OFF \}
+. \}
+. if \\n[#HEADER_STATE]=1 \{\
+. ie \\n[#BIB_HDRFTR_CENTER]=1 \{ . \}
+. el \{ .rm $HDRFTR_CENTER \}
+. \}
+. ie !\\n[#SUSPEND_PAGINATION] \{\
+. if \\n[#PAGINATE]=1 \{\
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. PAGENUM_STYLE \\*[$BIB_PN_STYLE]
+. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN]-1 \}
+. if r#BIB_NO_FIRST_PN \{ .nr #PAGINATE 0 \}
+. \}
. \}
. \}
-. \}
-. el \{\
-. ie \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 1 \}
-. el \{ .nr #PAGINATE 0 \}
-. \}
-. if \\n[#FOOTERS_ON]=1 \{\
-. if !'\\*[$HDRFTR_CENTER_OLD]'' .ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_OLD]
-. \}
-. NEWPAGE
-. if \\n[#FOOTERS_ON]=1 \{\
-. ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_NEW]
-. rm $HDRFTR_CENTER_OLD
-. rm $HDRFTR_CENTER_NEW
-. \}
-. ie !\\n[#SUSPEND_PAGINATION] \{\
-. if \\n[#PAGE_NUM_V_POS]=1 \{\
-. if r#BIB_NO_FIRST_PN \{\
-. if \\n[#PAGINATION_STATE]=1 \{\
-. nr #PAGINATE 1
+. el \{\
+. ie \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 1 \}
+. el \{ .nr #PAGINATE 0 \}
+. \}
+. if \\n[#FOOTERS_ON]=1 \{\
+. if !'\\*[$HDRFTR_CENTER_OLD]'' .ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_OLD]
+. \}
+. BIBLIOGRAPHY_LEAD \\*[$BIB_LEAD] \\*[$ADJUST_BIB_LEAD]
+. DOC_LEAD \\n[#BIB_LEAD]u
+. NEWPAGE
+. if \\n[#FOOTERS_ON]=1 \{\
+. ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_NEW]
+. rm $HDRFTR_CENTER_OLD
+. rm $HDRFTR_CENTER_NEW
+. \}
+. ie !\\n[#SUSPEND_PAGINATION] \{\
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. if r#BIB_NO_FIRST_PN \{\
+. if \\n[#PAGINATION_STATE]=1 \{\
+. nr #PAGINATE 1
+. \}
. \}
. \}
. \}
-. \}
-. el \{\
-. if \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 0 \}
-. \}
-. rr #PAGINATION_STATE
-. PAGENUM_STYLE \\*[$BIB_PN_STYLE]
-. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN] \}
-. if \\n[#HEADER_STATE]=1 \{\
-. if \\n[#BIB_ALLOWS_HEADERS] \{ .HEADERS \}
-. \}
-.\" Collect bibliography title string for TOC
-. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
-. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
-. ds $TOC_TITLE_ITEM \\*[$BIB_STRING]\\|
-. ev TOC_EV
-. da TOC_ENTRIES
-. if \\n[#PRINT_STYLE]=1 \{\
-. TYPEWRITER
-. \}
-. if \\n[#PRINT_STYLE]=2 \{\
-\!. FAMILY \\*[$TOC_TITLE_FAM]
-\!. FT \\*[$TOC_TITLE_FT]
-\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE]
-. \}
-\!. TRAP OFF
-\!. PAD_MARKER ^
-. ie \\n[#PRINT_STYLE]=1 \{\
-\!. PAD "\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN_TYPEWRITE]"
-. \}
-. el \{\
-\!. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN]"
-. \}
-\!. PAD_MARKER #
-\!. EOL
-\!. ST 100 L
-\!. ST 101 R
-. if \\n[#PRINT_STYLE]=2 \{\
-\!. FAMILY \\*[$TOC_PN_FAM]
-\!. FT \\*[$TOC_PN_FT]
-\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
-. \}
-\!. TAB 100
-\!. PRINT \\*[LEADER]
-\!. TN
-\!. TRAP
-\!. PRINT \\n[#TOC_ENTRY_PN]
-\!. TQ
-. di
-. ev
-.\" End collection of bibliography title string for TOC
-.\" Process bibliography
-. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#BIB_LEAD]u \}
-. if \\n[#PRINT_STYLE]=2 \{\
-. if \\n[#BIB_NO_COLS] \{\
-. if \\n[#COLUMNS] \{ .nr #COLUMNS_WERE_ON 1 \}
-. nr #COLUMNS 0
+. el \{\
+. if \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 0 \}
. \}
-. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
-. ie \\n[#ADJ_BIB_LEAD] \{\
-. nr #DOC_LEAD \\n[#BIB_LEAD]
+. rr #PAGINATION_STATE
+. PAGENUM_STYLE \\*[$BIB_PN_STYLE]
+. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN] \}
+. if \\n[#HEADER_STATE]=1 \{\
+. if \\n[#BIB_ALLOWS_HEADERS] \{ .HEADERS \}
. \}
-. el \{ .DOC_LEAD \\n[#BIB_LEAD]u \}
-. \}
-. PRINT \&
-. ie r#BIB_STRING_ADVANCE \{ .sp |\\n[#BIB_STRING_ADVANCE]u \}
-. el \{ .sp |\\n[#T_MARGIN]u \}
-. mk ec
-. if \\n[#SLANT_ON] \{\
-\*[SLANTX]\c
-. \}
-. if !'\\*[$BIB_STRING]'' \{\
+.\" Collect bibliography title string for TOC
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
+. ds $TOC_TITLE_ITEM \\*[$BIB_STRING]\\|
+. ev TOC_EV
+. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
-. vs \\n[#BIB_LEAD]u
. \}
. if \\n[#PRINT_STYLE]=2 \{\
-. LL \\n[#DOC_L_LENGTH]u
-. ta \\n(.lu
-. if \\n[#COLUMNS] \{\
-. ie \\n[#BIB_NO_COLS] \{ .LL \\n[#DOC_L_LENGTH]u \}
-. el \{ .LL \\n[#COL_L_LENGTH]u \}
-. ta \\n(.lu
-. \}
-. FAMILY \\*[$BIB_STRING_FAM]
-. FT \\*[$BIB_STRING_FT]
-. PT_SIZE \\n[#BIB_PS]u\\*[$BIB_STRING_SIZE_CHANGE]
-. vs \\n[#BIB_LEAD]u
-. \}
-. if '\\*[$BIB_STRING_QUAD]'L' \{ .LEFT \}
-. if '\\*[$BIB_STRING_QUAD]'LEFT' \{ .LEFT \}
-. if '\\*[$BIB_STRING_QUAD]'C' \{ .CENTER \}
-. if '\\*[$BIB_STRING_QUAD]'CENTER' \{ .CENTER \}
-. if '\\*[$BIB_STRING_QUAD]'CENTRE' \{ .CENTER \}
-. if '\\*[$BIB_STRING_QUAD]'R' \{ .RIGHT \}
-. if '\\*[$BIB_STRING_QUAD]'RIGHT' \{ .RIGHT \}
-. EOL
-. if \\n[#BIB_STRING_CAPS] \{ .CAPS \}
-. ie \\n[#BIB_STRING_UNDERLINE] \{\
-. nr #FROM_BIB_STRING 1
-. ie \\n[#BIB_STRING_UNDERLINE]=2 \{\
-. UNDERSCORE2 "\\*[$BIB_STRING]"
-. \}
-. el \{\
-. UNDERSCORE "\\*[$BIB_STRING]"
-. \}
-. rr #FROM_BIB_STRING
+\!. FAMILY \\*[$TOC_TITLE_FAM]
+\!. FT \\*[$TOC_TITLE_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE]
+. \}
+\!. TRAP OFF
+\!. PAD_MARKER ^
+. ie \\n[#PRINT_STYLE]=1 \{\
+\!. PAD "\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN_TYPEWRITE]"
. \}
. el \{\
-. PRINT "\\*[$BIB_STRING]"
+\!. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN]"
. \}
-. \}
-. CAPS OFF
-. FAMILY \\*[$BIB_FAMILY]
-. FT \\*[$BIB_FT]
-. PT_SIZE -\\*[$BIB_STRING_SIZE_CHANGE]
-. if \\n[#PRINT_STYLE]=1 \{\
-. ie \\n[#SINGLE_SPACE]=1 \{\
-. ALD \\n[#BIB_LEAD]*3u
+\!. PAD_MARKER #
+\!. EOL
+\!. ST 100 L
+\!. ST 101 R
+. if \\n[#PRINT_STYLE]=2 \{\
+\!. FAMILY \\*[$TOC_PN_FAM]
+\!. FT \\*[$TOC_PN_FT]
+\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE]
. \}
-. el \{\
-. ie \\n[#BIB_SINGLESPACE]=1 \{\
-. ALD \\n[#BIB_LEAD]u*3u
+\!. TAB 100
+\!. PRINT \\*[LEADER]
+\!. TN
+\!. TRAP
+\!. PRINT \\n[#TOC_ENTRY_PN]
+\!. TQ
+. di
+. ev
+.\" End collection of bibliography title string for TOC
+.\" Process bibliography
+. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#BIB_LEAD]u \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. if \\n[#BIB_NO_COLS] \{\
+. if \\n[#COLUMNS] \{ .nr #COLUMNS_WERE_ON 1 \}
+. nr #COLUMNS 0
. \}
-. el \{\
-. ALD \\n[#BIB_LEAD]u
+. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
+. ie \\n[#ADJ_BIB_LEAD] \{\
+. nr #DOC_LEAD \\n[#BIB_LEAD]
. \}
+. el \{ .DOC_LEAD \\n[#BIB_LEAD]u \}
. \}
-. \}
-. if \\n[#PRINT_STYLE]=2 \{ .ALD \\n[#BIB_LEAD]u*2u \}
-. QUAD \\*[$BIB_QUAD]
-. if \\n[#PRINT_STYLE]=1 \{\
-. ie \\n[#SINGLE_SPACE]=1 \{\
-. vs \\n[#BIB_LEAD]u
+. PRINT \&
+. ie r#BIB_STRING_ADVANCE \{ .sp |\\n[#BIB_STRING_ADVANCE]u \}
+. el \{ .sp |\\n[#T_MARGIN]u \}
+. mk ec
+. if \\n[#SLANT_ON] \{\
+\*[SLANTX]\c
. \}
-. el \{\
-. ie \\n[#BIB_SINGLESPACE]=1 \{\
+. if !'\\*[$BIB_STRING]'' \{\
+. if \\n[#PRINT_STYLE]=1 \{\
+. TYPEWRITER
. vs \\n[#BIB_LEAD]u
. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. LL \\n[#DOC_L_LENGTH]u
+. ta \\n(.lu
+. if \\n[#COLUMNS] \{\
+. ie \\n[#BIB_NO_COLS] \{ .LL \\n[#DOC_L_LENGTH]u \}
+. el \{ .LL \\n[#COL_L_LENGTH]u \}
+. ta \\n(.lu
+. \}
+. FAMILY \\*[$BIB_STRING_FAM]
+. FT \\*[$BIB_STRING_FT]
+. PT_SIZE \\n[#BIB_PS]u\\*[$BIB_STRING_SIZE_CHANGE]
+. vs \\n[#BIB_LEAD]u
+. \}
+. if '\\*[$BIB_STRING_QUAD]'L' \{ .LEFT \}
+. if '\\*[$BIB_STRING_QUAD]'LEFT' \{ .LEFT \}
+. if '\\*[$BIB_STRING_QUAD]'C' \{ .CENTER \}
+. if '\\*[$BIB_STRING_QUAD]'CENTER' \{ .CENTER \}
+. if '\\*[$BIB_STRING_QUAD]'CENTRE' \{ .CENTER \}
+. if '\\*[$BIB_STRING_QUAD]'R' \{ .RIGHT \}
+. if '\\*[$BIB_STRING_QUAD]'RIGHT' \{ .RIGHT \}
+. EOL
+. if \\n[#BIB_STRING_CAPS] \{ .CAPS \}
+. ie \\n[#BIB_STRING_UNDERLINE] \{\
+. nr #FROM_BIB_STRING 1
+. ie \\n[#BIB_STRING_UNDERLINE]=2 \{\
+. UNDERSCORE2 "\\*[$BIB_STRING]"
+. \}
+. el \{\
+. UNDERSCORE "\\*[$BIB_STRING]"
+. \}
+. rr #FROM_BIB_STRING
+. \}
+. el \{\
+. PRINT "\\*[$BIB_STRING]"
+. \}
+. \}
+. CAPS OFF
+. FAMILY \\*[$BIB_FAMILY]
+. FT \\*[$BIB_FT]
+. PT_SIZE -\\*[$BIB_STRING_SIZE_CHANGE]
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE]=1 \{\
+. ALD \\n[#BIB_LEAD]*3u
+. \}
. el \{\
+. ie \\n[#BIB_SINGLESPACE]=1 \{\
+. ALD \\n[#BIB_LEAD]u*3u
+. \}
+. el \{\
+. ALD \\n[#BIB_LEAD]u
+. \}
+. \}
+. \}
+. if \\n[#PRINT_STYLE]=2 \{ .ALD \\n[#BIB_LEAD]u*2u \}
+. QUAD \\*[$BIB_QUAD]
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE]=1 \{\
. vs \\n[#BIB_LEAD]u
. \}
+. el \{\
+. ie \\n[#BIB_SINGLESPACE]=1 \{\
+. vs \\n[#BIB_LEAD]u
+. \}
+. el \{\
+. vs \\n[#BIB_LEAD]u
+. \}
+. \}
. \}
-. \}
-. if \\n[#PRINT_STYLE]=2 \{\
-. ie \\n[#ADJ_BIB_LEAD] \{\
-. nr #DOC_LEAD \\n[#RESTORE_DOC_LEAD]
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie \\n[#ADJ_BIB_LEAD] \{\
+. nr #DOC_LEAD \\n[#RESTORE_DOC_LEAD]
+. \}
+. el \{ .DOC_LEAD \\n[#RESTORE_DOC_LEAD]u \}
+. rr #RESTORE_DOC_LEAD
. \}
-. el \{ .DOC_LEAD \\n[#RESTORE_DOC_LEAD]u \}
-. rr #RESTORE_DOC_LEAD
+. if \\n[#COLUMNS_WERE_ON] \{ .nr #COLUMNS 1 \}
+. if \\n[#HEADER_STATE]=1 \{ .HEADERS \}
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
+. di BIB
. \}
-. if \\n[#COLUMNS_WERE_ON] \{ .nr #COLUMNS 1 \}
-. if \\n[#HEADER_STATE]=1 \{ .HEADERS \}
-. rr #BIBLIOGRAPHY
-. if \\n[#LINENUMBERS]=2 \{\
-. NUMBER_LINES RESUME
-. nr #LINENUMBERS 1
+. el \{\
+. br
+. di
+.\" Part of workaround for refer spitting out a blank page if the
+.\" last ref falls on the bottom line.
+. nr num*refs \\n[ref*num*first-pass]
+. nf
+. BIB
. \}
.END
\#
@@ -15224,44 +15175,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.END
\#
\#
-\# TOC LEADING
-\# -----------
-\# *Argument:
-\# <leading for toc pages> [ADJUST]
-\# *Function:
-\# Creates or modifies register #TOC_LEAD. If optional ADJUST
-\# given, adjusts lead to fill page. If #OK_PROCESS_LEAD doesn't
-\# exist, stores arguments for when it's okay to run the macro.
-\# *Notes:
-\# No unit of measure required (points assumed).
-\#
-\# Default is same as DOC_LEAD.
-\#
-.MAC TOC_LEAD END
-. if !\\n[#OK_PROCESS_LEAD] \{\
-. ds $TOC_LEAD \\$1
-. if !'\\$2'' \{\
-. ds $ADJUST_TOC_LEAD \\$2
-. \}
-. return
-. \}
-. rr #ADJ_TOC_LEAD
-. nr #TOC_LEAD (p;\\$1)
-. if '\\$2'ADJUST' \{\
-. nr #ORIG_DOC_LEAD \\n[#DOC_LEAD]
-. nr #RESTORE_ADJ_DOC_LEAD \\n[#ADJ_DOC_LEAD]
-. nr #ADJ_DOC_LEAD 1
-. nr #ADJ_TOC_LEAD 1
-. nr #NO_TRAP_RESET 1
-. DOC_LEAD \\n[#TOC_LEAD]u ADJUST
-. nr #TOC_LEAD \\n[#DOC_LEAD]
-. DOC_LEAD \\n[#ORIG_DOC_LEAD]u
-. rr #NO_TRAP_RESET
-. nr #ADJ_DOC_LEAD \\n[#RESTORE_ADJ_DOC_LEAD]
-. rr #ORIG_DOC_LEAD
-. \}
-.END
-\#
\#
\# TOC PAGES PAGE-NUMBERING STYLE
\# ------------------------------
@@ -15397,6 +15310,19 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS OFF \} \" But have to turn FOOTERS off again so they don't print when FINIS was called
. COLLATE
+. if \\n[#PRINT_STYLE]=1 \{\
+. rr #IGNORE
+. DOC_LEAD 24 ADJUST
+. nr #IGNORE 1
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie r#ADJ_TOC_LEAD \{\
+. nr #NO_TRAP_RESET 1
+. DOC_LEAD \\n[#TOC_LEAD]u ADJUST
+. rr #NO_TRAP_RESET
+. \}
+. el \{ .DOC_LEAD \\n[#TOC_LEAD]u \}
+. \}
. if \\n[#FINIS] \{\
. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \} \" Finally, turn footers on if they were on
. rr #FOOTERS_WERE_ON
@@ -15416,23 +15342,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. rr #COLLATED_DOC
. DOCHEADER OFF
. PAGENUMBER 1
-. if \\n[#PRINT_STYLE]=1 \{\
-. rr #IGNORE
-. DOC_LEAD 24 ADJUST
-. nr #IGNORE 1
-. \}
. if \\n[#LINENUMBERS]=2 \{ .nr #LINENUMBERS 3 \}
. START
. PP
. nr #COLUMNS 0
-. if \\n[#PRINT_STYLE]=2 \{\
-. ie r#ADJ_TOC_LEAD \{\
-. nr #NO_TRAP_RESET 1
-. DOC_LEAD \\n[#TOC_LEAD]u ADJUST
-. rr #NO_TRAP_RESET
-. \}
-. el \{ .DOC_LEAD \\n[#TOC_LEAD]u \}
-. \}
. sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u
. if \\n[#SLANT_ON] \{\
\*[SLANTX]\c
@@ -15940,8 +15853,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. rr #SEP_TYPE
. EOL
. if \\n[#REF]=1 \{\
-. IL +\\*[$REF_BIB_INDENT]
-. ti \\n[#L_INDENT]u-\\*[$REF_BIB_INDENT]
+. IL +\\n[#REF_BIB_INDENT]u
+. ti \\n[#L_INDENT]u-\\n[#REF_BIB_INDENT]u
. \}
. TRAP
. if \\n[#KERN_WAS_ON]=1 \{\
@@ -16501,18 +16414,23 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# OUTPUT BLANK PAGES
\# ------------------
\# *Argument:
-\# <number of blank pages to output> [ NULL ]
+\# <number of blank pages to output> [ DIVIDER [ NULL ] ]
\# *Function:
\# Outputs blank pages.
\# *Notes:
\# If recto/verso, each page is recto/verso, even if there's
\# nothing on it.
\#
-\# The argument to BLANKPAGE is non-optional.
+\# The 1st argument to BLANKPAGE is non-optional. DIVIDER is for
+\# blank pages before endnotes, bibliographies, tocs, new chapters.
\#
.MAC BLANKPAGE END
. nr #HOW_MANY \\$1
. nr #PAGES 0 1
+. if \\n[#LINENUMBERS] \{\
+. nr #LINENUMBERS_WERE_ON 1
+. NUMBER_LINES OFF
+. \}
. while \\n+[#PAGES]<=\\n[#HOW_MANY] \{\
. if \\n[#HEADERS_ON]=1 \{\
. nr #HEADERS_WERE_ON 1
@@ -16537,14 +16455,37 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
. \}
.\}
-. NEWPAGE
-. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
-. if \\n[#PAGE_NUM_V_POS]=2 \{\
-. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
+. shift
+. ie '\\$1'DIVIDER' \{\
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. if \\n[#PAGINATE_WAS_ON] \{\
+. nr #RESTORE_PAGINATION 1
+. \}
+. \}
+. shift
+. if '\\$1'NULL' \{ .nr #PAGE_NUM_ADJ -\\n[#HOW_MANY] \}
+. \}
+. el \{\
+. if '\\$1'' \{\
+. NEWPAGE
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
+. \}
+. \}
+. if '\\$1'NULL' \{\
+. NEWPAGE
+. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
+. if \\n[#PAGE_NUM_V_POS]=2 \{\
+. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
+. \}
+. \}
. \}
. if \\n[#PAGINATE]=1 \{\
-. if '\\$2'NULL' \{ .nr #PAGE_NUM_ADJ -\\n[#HOW_MANY] \}
+. if '\\$1'NULL' \{ .nr #PAGE_NUM_ADJ -\\n[#HOW_MANY] \}
. \}
+. if \\n[#LINENUMBERS_WERE_ON] \{ .NUMBER_LINES RESUME \}
. rr #HOW_MANY
. rr #HEADERS_WERE_ON
. rr #FOOTERS_WERE_ON
@@ -16580,7 +16521,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. ie \\n[#ADJ_DOC_LEAD]=1 \{\
. nr #LINES_PER_PAGE 0 1
. nr #DOC_LEAD_ADJ 0 1
-. nr #DEPTH_TO_B_MARGIN \\n[#PAGE_LENGTH]-\\n[#ORIGINAL_B_MARGIN]-1v
+. nr #DEPTH_TO_B_MARGIN \\n[#PAGE_LENGTH]-\\n[#ORIGINAL_B_MARGIN]-\\n[.v]
.\" Get the number of unadjusted lines that fit on the page; always a
.\" bit short of the bottom margin
. while \\n[#T_MARGIN]+(\\n[#DOC_LEAD]*\\n+[#LINES_PER_PAGE])<\\n[#DEPTH_TO_B_MARGIN] \{\
@@ -16589,9 +16530,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr #LINES_PER_PAGE -1
.\" Add machine units, 1 at a time, increasing the leading until the
.\" new leading fills the page properly
-. while \\n[#T_MARGIN]+(\\n[#DOC_LEAD]+\\n+[#DOC_LEAD_ADJ]*\\n[#LINES_PER_PAGE])<\\n[#DEPTH_TO_B_MARGIN] \{\
+. while \\n[#T_MARGIN]+(\\n[#DOC_LEAD]+\\n+[#DOC_LEAD_ADJ]*\\n[#LINES_PER_PAGE])<=\\n[#DEPTH_TO_B_MARGIN] \{\
.
.\}
+. nr #UNADJUSTED_DOC_LEAD \\n[#DOC_LEAD]
. DOC_LEAD \\n[#DOC_LEAD]u+\\n[#DOC_LEAD_ADJ]u
.\" The "visual" bottom margin is what \n(nl would report on the
.\" last line before the FOOTER trap is sprung
@@ -16701,7 +16643,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.END
\#
\#
-\# This .em (for all DOC_TYPEs except 4 [LETTER]) ensures that
+\# This .em (for all DOC_TYPEs, except 4 [LETTER]) ensures that
\# deferred footnotes that happen on the 2nd to last page get
\# output.
\#
@@ -16741,7 +16683,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. FOOTERS OFF
. PAGINATION OFF
. if \\n[#DOC_TYPE]=4 \{\
-. if !'\\n(.z'' \{ .di \}
+. if !'\\n(.z'' \{\
+. br
+. di
+. \}
. IQ CLEAR
. TQ
. ie !'\\*[$CLOSE_INDENT]'' \{ .IL \\*[$CLOSE_INDENT] \}
@@ -16755,7 +16700,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. el \{ .SP 3v \}
. PRINT \\*[$AUTHOR_1]
. \}
-. DO_FOOTER
.END
\#
\# Set up a default papersize of US letter
@@ -17406,8 +17350,12 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Instruct REF to put references in footnotes.
\#
.MAC FOOTNOTE_REFS END
-. if r#EN_REF \{ .rr #EN_REF \}
-. nr #FN_REF 1
+. ie !'\\$1'' \{ .rr #FN_REF \}
+. el \{\
+. if r#EN_REF \{ .rr #EN_REF \}
+. nr #FN_REF 1
+. \}
+. REF_STYLE NOTE
.END
\#
\# Endnote references
@@ -17416,8 +17364,13 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# Instruct REF to collect references for endnotes output.
\#
.MAC ENDNOTE_REFS END
-. if r#FN_REF \{ .rr #FN_REF \}
-. nr #EN_REF 1
+. ie !'\\$1'' \{ .rr #EN_REF \}
+. el \{\
+. if r#FN_REF \{ .rr #FN_REF \}
+. nr #EN_REF 1
+. if !r#EN_MARKER_STYLE \{ .ENDNOTE_MARKER_STYLE SUPERSCRIPT \}
+. \}
+. REF_STYLE NOTE
.END
\#
\# Prepare mom for a reference
@@ -17463,6 +17416,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# -------------------------------------------
\#
.MAC REF_BRACKETS_START END
+. if \\n[#FN_REF]=1 \{ .nr #FN_REF 2 \}
+. if \\n[#EN_REF]=1 \{ .nr #EN_REF 2 \}
. ds $CURRENT_EV \\n[.ev]
. ev REFERENCE
. evc \\*[$CURRENT_EV]
@@ -17478,32 +17433,49 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if '\\$0'REF)' \{ .nop (\\*[REFERENCE]) \}
. if '\\$0'REF]' \{ .nop [\\*[REFERENCE]] \}
. if '\\$0'REF}' \{ .nop {\\*[REFERENCE]} \}
+. if '\\$0'REF>' \{ .nop <\\*[REFERENCE]> \}
+. if \\n[#FN_REF]=2 \{ .nr #FN_REF 1 \}
+. if \\n[#EN_REF]=2 \{ .nr #EN_REF 1 \}
.END
\#
-\# These three pairs of aliases allow users to embed references in
-\# text and have them surrounded by (), [] or {}.
+\# These four pairs of aliases allow users to embed references in
+\# text and have them surrounded by (), [], {} or <>.
\#
.ALIAS REF( REF_BRACKETS_START
.ALIAS REF) REF_BRACKETS_END
\#
.ALIAS REF[ REF_BRACKETS_START
-.ALIAS REF{ REF_BRACKETS_START
+.ALIAS REF] REF_BRACKETS_END
\#
+.ALIAS REF{ REF_BRACKETS_START
.ALIAS REF} REF_BRACKETS_END
-.ALIAS REF] REF_BRACKETS_END
\#
-\# Second-line indent for refs
-\# ---------------------------
+.ALIAS REF< REF_BRACKETS_START
+.ALIAS REF> REF_BRACKETS_END
+\#
+.MAC REF_STYLE END
+. if '\\$1'NOTE' \{\
+. ds $REF_STYLE NOTE
+. \}
+. if '\\$1'BIBLIO' \{\
+. ds $REF_STYLE BIBLIO
+. \}
+.END
+\#
+\# Refer indenting
+\# ---------------
\# *Argument:
\# FOOTNOTE | ENDNOTE | BIBLIO <indent for 2nd and subsequent lines of discrete reference entries>
\# *Function:
-\# Sets strings $REF_FN_INDENT, $REF_EN_INDENT or $REF_BIB_INDENT.
+\# Sets registers #REF_FN_INDENT, #REF_EN_INDENT or #REF_BIB_INDENT.
\# *Notes:
-\# Indent value requires a unit of measure.
+\# Indent value requires a unit of measure. If refs are going
+\# into footnotes or endnotes, first lines get indented; if going
+\# into a bibliography, second lines get indented
\#
.MAC INDENT_REFS END
-. if '\\$1'FOOTNOTE' .ds $REF_FN_INDENT \\$2
-. if '\\$1'ENDNOTE' .ds $REF_EN_INDENT \\$2
+. if '\\$1'FOOTNOTE' .ds $REF_FN_INDENT \\$2
+. if '\\$1'ENDNOTE' .ds $REF_EN_INDENT \\$2
. if '\\$1'BIBLIO' .ds $REF_BIB_INDENT \\$2
.END
\#
@@ -17524,40 +17496,57 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# The remainder of the definitions in this section are modified
\# versions of the definitions found in the refer module of s.tmac.
\#
-\# This one is directly from s.tmac.
-\#
.de @error
.tm \\n(.F:\\n(.c: macro error: \\$*
..
\#
+\# Underlining unavoidably turns off sentence spacing.
+\#
+.de ref*restore-ss
+\c
+.SS \\*[$SAVED_SS_VAR]
+.if '\\n[.z]'END_NOTES' \{\
+\c
+\E*[PREV]\c
+.\}
+..
\# The following strings define the order of entries for different
\# types of references. Each letter in the string refers to a database
\# field (A for author, T1/T2 for article and book titles, etc).
-\# Mom is set up for MLA-style bibliographies. Other styles can be
-\# implemented here by re-ordering the fields.
-\#
-\# Book - type 2
-.ds ref*spec!2 Q A T1 d t l r E S e V a C I D P O
-\# Article within book - type 3
-.ds ref*spec!3 Q A T2 B d t l r E S e V a C I D P O
-\# Journal article - type 1
-.ds ref*spec!1 Q A T2 J S N D P O
-\# Tech report - type 4
-.ds ref*spec!4 Q A T1 R G C I D P O
-\# Internet site - type 0
-.ds ref*spec!0 Q A T2 s E c d o a u O
+\#
+.de ref*specs
+.if \\n[#PRINT_STYLE]=1 \{\
+. char ' \[aq]
+. char \[oq] \[aq]
+.\}
+.\" Internet site - type 0
+.ds ref*spec!0 i Q A m p T2 s o D c a u n
+.\" Journal article - type 1
+.ds ref*spec!1 i Q A m p T2 q O J V S N D P n
+.\" Book - type 2
+.ds ref*spec!2 i Q A m p T1 q b d l r E S e V O C I D P t n
+.\" Article within book - type 3
+.ds ref*spec!3 i Q A m p T2 B b d l r E S e V O C I D P t n
+.\" Tech report - type 4
+.ds ref*spec!4 i Q A m p T1 R G O C I D P n
+.\" Magazine or newspaper article - type 5
+.ds ref*spec!5 i Q A m p T2 O M V S N D P n
+..
\#
\# Refer's "1st" macro. Since it is possible to define database
\# fields using any single letter, we remove all possible string
-\# definitions of the form [X and [x
+\# definitions of the form [X and [x. Also, reset ref*spec!<n>
+\# strings to their defaults.
\#
.de ]-
+.ref*specs
.rm [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 \
+ [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
-.rm ref*string
+.if r [e .rr [e \" [e persists if %e field is last
.rr ref*type
+.rm ref*string
..
\#
\# Refer's "2nd" macro; builds up a reference with ref*build, and
@@ -17565,14 +17554,24 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\#
.de ][
.nr ref*type \\$1
+.if \\n[ref*type]=0 \{\
+. ie d [C \{\
+. if !d [I \{\
+. nr pre-1900 1 \" If pre-1900, MLA allows excluding publisher
+. nr ref*type 2
+. \}
+. \}
+. el .nr ref*type 2
+. if d [q .nr ref*type 2
+.\}
.if \\n[ref*type]=3 \{\
. if !'\\*([R'' \{\
. nr ref*type 4
-. ds ref*spec!4 Q A T2 B R C I D P O
+. ds ref*spec!4 i Q A m p T2 B R O C I D P n
. \}
. if !'\\*([G'' \{\
. nr ref*type 4
-. ds ref*spec!4 Q A T2 B G C I D P O
+. ds ref*spec!4 i A m p T2 B G O C I D P O n
. \}
.\}
.if r [T \{\
@@ -17629,15 +17628,18 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.de ref*end-print
.\" 10 is abritrary
.nn 10
+.nr #REF_BIB_INDENT (u;\\*[$REF_BIB_INDENT])
.ie \\n[#BIB_LIST]=0 \{\
-.in +\\*[$REF_BIB_INDENT]
-.ti -\\*[$REF_BIB_INDENT]
+. in +\\n[#REF_BIB_INDENT]u
+. ti -\\n[#REF_BIB_INDENT]u
.\}
.el .ITEM
-\\*[ref*string]
+.\" Part of workaround for refer spitting out a blank page if the
+.\" last ref falls on the bottom line.
+\\*[ref*string]\R'ref*num*first-pass +1'\?\R'ref*num +1'\?
.sp \\n[#BIB_SPACE]u
.ie \\n[#BIB_LIST]=0 .in
-.el .IL -\\*[$REF_BIB_INDENT]u
+.el .IL -\\n[#REF_BIB_INDENT]u
.nn 0
..
\#
@@ -17655,11 +17657,9 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.de ref*build
.if \\n[#PRINT_STYLE]=2 \{\
. ds $RESTORE_SS_VAR \\*[$SS_VAR]
-. SS +4
+. SS +8
.\}
-\#.rm ref*string ref*post-punct
.rm ref*string
-.nr ref*suppress-period 1
.while \\n[.$] \{\
. if d [\\$1 \{\
. ie d ref*add-\\$1 .ref*add-\\$1
@@ -17691,23 +17691,112 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\#
\# %A Author(s)
.de ref*add-A
-.ref*field A ,
-.if r [A .nr ref*suppress-period \\n([A
+.ds eval*[A \\*([A
+.substring eval*[A -1
+.if '\\*[eval*[A]'.' \{\
+. if !'\\*[$REF_STYLE]'NOTE' .chop [A
+.\}
+.\" Per MLA, NOTE should not use idem, therefore if %i contains other than
+.\" idem (eg. ed., trans.), transpose it to after author's name
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie !'\\*[idem]'' .ref*field A "" "" ", \\*[idem]"
+. el .ref*field A
+. rm idem
+.el .ref*field A
+.\}
+.if \\n([A .nr ref*suppress-period 1
+..
+\# %i Idem. BIBLIO: In all instances, removes %A field and replaces
+\# it with a dash; if %i field contains other than the word, idem,
+\# appends it to the dash
+.de ref*add-i
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie '\\*([i'idem' .rm [i
+. el .ds idem \\*([i
+.\}
+.el \{\
+. ie '\\*([i'idem' \{\
+. rm [A
+. rm [i
+. ref*field i "" \[idem] "" " "
+. \}
+. el \{\
+. ds eval*[i \\*([i
+. substring eval*[i -1
+. if '\\*[eval*[i]'.' \{\
+. chop [i
+. ds idem \\*([i
+. \}
+. rm [i
+. rm [A
+. ref*field i "" \[idem] ", \\*[idem]" " "
+. \}
+.\}
+..
+\# %m Multiple authors (et al.)
+.de ref*add-m
+.if !'\\*[$REF_STYLE]'NOTE' \{\
+. ds eval*[m \\*([m
+. substring eval*[m -1
+. if '\\*[eval*[m]'.' .chop [m
+.\}
+.ref*field m ,
+..
+\# %p Post-author string (eg. Preface, Foreword, etc)
+.de ref*add-p
+.\" Convert first letter to uppercase, per MLA, if BIBLIO
+.if '\\*[$REF_STYLE]'BIBLIO' \{\
+. ds initial*cap \\*([p
+. substring initial*cap 0 0
+. ds [p*string \\*([p
+. substring [p*string 1
+. ds [p \E*[UC]\\*[initial*cap]\E*[LC]\\*[[p*string]
+.\}
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field p ,
+.el .ref*field p . " "
+..
+\# %Q Author(s) when author is not a person
+.de ref*add-Q
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field Q
+.el .ref*field Q
..
\# %T Title (generic)
.de ref*add-T1
-.ref*field T . " \E*[IT]" "" \E*[PREV]
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field T , \E*[IT] \E*[ref*restore-ss]
+.el \{\
+. ie !'\\*([A'' .ref*field T . " \E*[IT]" \E*[ref*restore-ss]
+. el \{\
+. ie !'\\*([Q'' .ref*field T . " \E*[IT]" \E*[ref*restore-ss]
+. el .ref*field T . \E*[IT] \E*[ref*restore-ss]
+. \}
+.\}
.if \\n([T .nr ref*suppress-period \\n([T
+.
..
\# %T Title of a chapter or article
.de ref*add-T2
-.ref*field T . " \(lq" "" "\(rq"
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ref*field T , \[lq] "" \[rq]
+.\}
+.el \{\
+. ie '\\*([A'' \{\
+. ref*field T . \[lq] "" \[rq]
+. if !'\\*([Q''.ref*field T . " \[lq]" "" \[rq]
+. \}
+. el .ref*field T . " \[lq]" "" \[rq]
+.\}
.if \\n([T .nr ref*suppress-period \\n([T
..
\# %B Book title (when citing an article from a book)
.de ref*add-B
-.ie \\n([T .ref*field B "" ".\E*[IT]" "" \E*[PREV]
-.el .ref*field B . " \E*[IT]" "" \E*[PREV]
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field B "" \E*[IT] \E*[ref*restore-ss]
+. el .ref*field B , \E*[IT] \E*[ref*restore-ss]
+.\}
+.el \{\
+. ie \\n([T .ref*field B "" ".\E*[IT]" \E*[ref*restore-ss]
+. el .ref*field B . " \E*[IT]" \E*[ref*restore-ss]
+.\}
\# refer doesn't set reg [T to 1 for these book titles, so we do it here
.ds eval*[B \\*([B
.substring eval*[B -1
@@ -17716,25 +17805,116 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
.if '\\*[eval*[B]'?' .nr [T 1
.rm eval*[B
..
+\# %q Titles that must go in quotes (e.g. an unpublished dissertation)
+.de ref*add-q
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field q , \[lq] "" \[rq]
+.el \{\
+. ie !'\\*([A'' .ref*field q . " \[lq]" "" \[rq]
+. el \{\
+. ie !'\\*([Q'' .ref*field q . " \[lq]" "" \[rq]
+. el .ref*field q . \[lq] "" \[rq]
+. \}
+.\}
+..
\# %R Report number for technical reports
.de ref*add-R
.ref*field R . " "
..
\# %J Journal name
.de ref*add-J
-.ie \\n([T .ref*field J "" " \E*[IT]" "" \E*[PREV]
-.el .ref*field J . " \E*[IT]" "" \E*[PREV]
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field J "" "\E*[IT]" \E*[ref*restore-ss]
+. el .ref*field J , "\E*[IT]" \E*[ref*restore-ss]
+.\}
+.el \{\
+. ie \\n([T .ref*field J "" " \E*[IT]" \E*[ref*restore-ss]
+. el .ref*field J . " \E*[IT]" \E*[ref*restore-ss]
+.\}
+..
+\# %M Magazine or newspaper name
+.de ref*add-M
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field M "" "\E*[IT]" \E*[ref*restore-ss]
+. el .ref*field M , "\E*[IT]" \E*[ref*restore-ss]
+.\}
+.el \{\
+. ie \\n([T .ref*field M "" " \E*[IT]" \E*[ref*restore-ss]
+. el .ref*field M . " \E*[IT]" \E*[ref*restore-ss]
+.\}
..
\# %E Editor(s)
.de ref*add-E
+.ds eval*[E \\*([E
+.substring eval*[E -1
+.if '\\*[eval*[E]'.' \{\
+. if !\\n[#FN_REF]+\\n[#EN_REF] .chop [E
+. rm eval*[E
+.\}
+.\" Workaround for join-authors also joining editors. MLA style
+.\" requires a comma after first editor only if there are more than
+.\" two, whereas join-authors always puts a comma after the first if
+.\" there's more than one.
+.rm eval*[E
+.nr position 1 1
+.nr counter 1 1
+.while !'\\*[eval*[E]',' \{\
+. ds eval*[E \\*([E
+. substring eval*[E \\n+[position] \\n[position]
+. if \\n+[counter]>30 .break \" 30 is abitrary
+.\}
+.\" Check for " and"
+.if '\\*[eval*[E]',' \{\
+. ds eval*[E \\*([E
+. nr and-check \\n[position]+4
+. substring eval*[E \\n+[position] \\n[and-check]
+.\}
+.if '\\*[eval*[E]' and' \{\
+. nr counter 1 1
+. nr start-range -1 1
+. nr end-range 3 1
+. while !'\\*[eval*[E]', and' \{\
+. ds eval*[E \\*([E
+. substring eval*[E \\n+[start-range] \\n+[end-range]
+. if \\n+[counter]>50 .break \" just in case; 50 is arbitrary
+. \}
+. if '\\*[eval*[E]', and' \{\
+. length len*[E \\*([E
+. nr rhs \\n[len*[E]-\\n[start-range]
+. ds lhs \\*([E
+. ds rhs \\*([E
+. substring lhs 0 \\n[start-range]-1
+. substring rhs -(\\n[rhs]-1)
+. ds [E \\*[lhs]\\*[rhs]
+. \}
+. rm lhs
+. rm rhs
+. rr and-check
+. rr counter
+. rr start-range
+. rr end-range
+. rr len*[E
+.\}
+.\" End workaround
.ie !\\n[ref*type]=0 \{\
. ie \\n([E>0 \{\
-. ie \\n([T .ref*field E "" " Eds. "
-. el .ref*field E . " Eds. "
+. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field E "" "ed. "
+. el .ref*field E , "ed. "
+. \}
+. el \{\
+. ie \\n([T .ref*field E "" " Eds. "
+. el .ref*field E . " Eds. "
+. \}
. \}
. el \{\
-. ie \\n([T .ref*field E "" " Ed. "
-. el .ref*field E . " Ed. "
+. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field E "" "ed. "
+. el .ref*field E , "ed. "
+. \}
+. el \{\
+. ie \\n([T .ref*field E "" " Ed. "
+. el .ref*field E . " Ed. "
+. \}
. \}
.\}
.el \{\
@@ -17742,21 +17922,30 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. el .ref*field E . " "
.\}
.rr [T
+.rr [E
..
\# %e Edition
.de ref*add-e
-.ie \\n([T .ref*field e "" " " " edition"
-.el .ref*field e . " " " edition"
+.ie \\n([T .ref*field e "" "" " ed."
+.el \{\
+. ie '\\*[$REF_STYLE]'NOTE' .ref*field e , "" " ed."
+. el .ref*field e . " " " ed."
+.\}
+.nr ref*suppress-period 1
+.nr [e 1
.rr [T
..
-\# %V Volume (of a journal, or series of books)
+\# %V Volume (of a journal, or series of books); for journals, %N may be preferable
.de ref*add-V
.if \\n[ref*type]=1 \{\
. ref*field V
.\}
.if \\n[ref*type]=2 \{\
-. ie \\n([T .ref*field V "" " "
-. el .ref*field V . " "
+. ie '\\*[$REF_STYLE]'NOTE' .ref*field V , "vol. "
+. el \{\
+. ie \\n([T .ref*field V "" " Vol. "
+. el .ref*field V . " Vol. "
+. \}
.\}
.if \\n[ref*type]=3 \{\
. ie \\n([T .ref*field V "" " "
@@ -17774,8 +17963,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. ref*field S
.\}
.if \\n[ref*type]=2 \{\
-. ie \\n([T .ref*field S "" " "
-. el .ref*field S . " "
+. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field S
+. el .ref*field S ,
+. \}
+. el \{\
+. ie \\n([T .ref*field S "" " "
+. el .ref*field S . " "
+. \}
.\}
.if \\n[ref*type]=3 \{\
. ie \\n([T .ref*field S "" " "
@@ -17791,49 +17986,139 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
..
\# %C City
.de ref*add-C
-.ie \\n([T .ref*field C "" " "
-.el .ref*field C . " "
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie r [d \{\
+. ref*field C
+. rr [d
+. \}
+. el \{\
+. ref*field C "" \*[FU 2](
+. \}
+. if \\n([T .nr ref*suppress-period \\n([T
+.\}
+.el \{\
+. ie \\n([T .ref*field C "" " " " "
+. el \{\
+. ie r [e .ref*field C "" " "
+. el .ref*field C . " "
+. \}
+.\}
.rr [T
+.rr [e
..
\# %I Publisher (I stands for Issuer)
.de ref*add-I
-.ie !'\\*([C'' .ref*field I :
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie !'\\*([C'' .ref*field I :
+. el .ref*field I "" (
+.\}
.el \{\
-. ie \\n([T .ref*field I "" " "
-. el .ref*field I . " "
+. ie !'\\*([C'' .ref*field I :
+. el \{\
+. ie \\n([T .ref*field I "" " "
+. el .ref*field I . " "
+. \}
.\}
.rr [T
..
\# %D Date of publication
.de ref*add-D
+.if \\n[ref*type]=0 \{\
+. ie '\\*[$REF_STYLE]'NOTE' .ref*field D ,
+. el .ref*field D . " "
+.\}
.if \\n[ref*type]=1 \{\
-. ie !'\\*([V''.ref*field D "" "(" ")"
-. el .ref*field D
+. ref*field D "" "(" ")"
+.\}
+.if \\n[ref*type]=2 \{\
+. ie '\\*[$REF_STYLE]'NOTE' .ref*field D , "" )
+. el .ref*field D ,
.\}
-.if \\n[ref*type]=2 .ref*field D ,
.if \\n[ref*type]=3 \{\
-. ie '\\*([C'' \{\
-. ie '\\*([I'' .ref*field D . " "
+. ie !'\\*([C'' \{\
+. ie '\\*[$REF_STYLE]'NOTE' .ref*field D , "" )
. el .ref*field D ,
. \}
-. el .ref*field D ,
+. el \{\
+. if '\\*([I'' \{\
+. ds eval*[D \\*([D
+. substring eval*[D 0 -4
+. ie '\\*[eval*[D]'1' .ds kern \*[BU3]
+. el .ds kern \*[BU2]
+. ie \\n[#PRINT_STYLE]=2 \{\
+. if '\\*[$REF_STYLE]'NOTE' .ref*field D "" (\\*[kern] )
+. \}
+. el .ref*field D
+. \}
+. rm eval*[D
+. rm kern
+. \}
.\}
.if \\n[ref*type]=4 .ref*field D ,
+.if \\n[ref*type]=5 .ref*field D
+.ds eval*[D \\*([D
+.substring eval*[D -1
+.if '\\*[eval*[D]'.' .nr ref*suppress-period 1
..
\# %P Page number(s)
.de ref*add-P
-.ie \\n[ref*type]=1 .ref*field P :
-.el .ref*field P . " "
+.if \\n[ref*type]=5 .nr ref*type 1
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n[ref*type]=1 .ref*field P : "" .
+. el .ref*field P "" "\|"
+. nr ref*suppress-period 1
+.\}
+.el \{\
+. ie \\n[ref*type]=1 .ref*field P \|:
+. el \{\
+. ie d [n .ref*field P . \| .
+. el .ref*field P . " "
+. \}
+.\}
..
\# %G Gov't. ordering number
.de ref*add-G
-.ref*field G . " "
+.ie '\\*[$REF_STYLE]'NOTE' ref*field G ,
+.el .ref*field G . " "
..
-\# %O Other (usually goes at end of ref)
+\# %O Other (info that goes after %T [or %B] but is hard to categorize; eg a dissertation)
.de ref*add-O
-.ref*field O . " "
-.ie r [O .nr ref*suppress-period \\n([O
-.el .nr ref*suppress-period 1
+.ds eval*[O \\*([O
+.substring eval*[O -1
+.if '\\*[eval*[O]'.' .nr [O 1
+.ds initial*cap \\*([O
+.substring initial*cap 0 0
+.ds [O*string \\*([O
+.substring [O*string 1
+.if '\\*[$REF_STYLE]'BIBLIO' \{\
+. ds [O \E*[UC]\\*[initial*cap]\E*[LC]\\*[[O*string]
+.\}
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field O ,
+.el \{\
+. if \\n([O=1 .chop [O
+. ie r [e .ref*field O "" " "
+. el \{\
+. ie !d [A .ref*field O
+. el .ref*field O . " "
+. \}
+.\}
+.rr [O
+.rr [e
+..
+\# %n Annotations (after ref)
+.de ref*add-n
+.ds eval*[n \\*([n
+.substring eval*[n -1
+.if '\\*[eval*[n]'.' .chop [n
+.if '\\*[eval*[n]'?' .nr [n 1
+.if '\\*[eval*[n]'!' .nr [n 1
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field n ,
+.el \{\
+. ie !'\\*([P'' .ref*field n "" " "
+. el .ref*field n . " "
+.\}
+.if r [n .nr ref*suppress-period 1
+.rr [n
..
\#
.de ref*add-dflt
@@ -17844,21 +18129,37 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# -------------
\# %d date of publication (the orignal date of publication)
.de ref*add-d
-.ie \\n([T .ref*field d "" " "
-.el .ref*field d . " "
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ref*field d "" ( ;
+. nr [d 1
+.\}
+.el \{\
+. ie \\n([T .ref*field d "" " "
+. el .ref*field d . " "
+.\}
.rr [T
..
-\# %a additions (such as a new intro to reprints)
-.de ref*add-a
-.ie \\n([T .ref*field a "" " "
-.el .ref*field a . " "
+\# %b main author when citing from a preface, introduction, foreword
+\# or afterword
+.de ref*add-b
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field b "" "by"
+. el .ref*field b , "by "
+.\}
+.el \{\
+. ie \\n([T .ref*field b "" " By "
+. el .ref*field b . " By "
+.\}
.rr [T
..
\# %t title, if different from original title (the T field, which s/b
\# the original title)
.de ref*add-t
-.ie \\n([T .ref*field t "" " Rpt. as \E*[IT]" "" \E*[PREV]
-.el .ref*field t . " Rpt. as \E*[IT]" "" \E*[PREV]
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field t , "rpt. of \E*[IT] " \E*[ref*restore-ss]
+.el \{\
+. ie \\n([T .ref*field t "" " Rpt. of \E*[IT] " \E*[ref*restore-ss]
+. el .ref*field t . " Rpt. of \E*[IT] " \E*[ref*restore-ss]
+.\}
.rr [T
..
\#
@@ -17866,14 +18167,23 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# ----------------
\# %l Trans(l)ator
.de ref*add-l
-.ie \\n([T .ref*field l "" " Trans. "
-.el .ref*field l . " Trans. "
+.ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n([T .ref*field l "" "trans. "
+. el .ref*field l , "trans. "
+.\}
+.el \{\
+. ie \\n([T .ref*field l "" " Trans. "
+. el .ref*field l . " Trans. "
+.\}
.rr [T
..
\# %r Translato(r) and edito(r)
.de ref*add-r
-.ie \\n([T .ref*field r "" " Trans. and Ed. "
-.el .ref*field r . " Trans. and Ed. "
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field r , "trans. and ed. "
+.el \{\
+. ie \\n([T .ref*field r "" " Trans. and ed. "
+. el .ref*field r . " Trans. and ed. "
+.\}
.rr [T
..
\#
@@ -17881,43 +18191,66 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# --------
\# %s Site name
.de ref*add-s
-.ie \\n([s .ref*field s "" ".\E*[IT]" "" \E*[PREV]
-.el .ref*field s . " \E*[IT]" "" \E*[PREV]
-.\" refer doesn't set reg [T to 1 for these book titles, so we do it here
-.ds eval*[s \\*([s
-.substring eval*[s -1
-.rr [T
-.if '\\*[eval*[s]'!' .nr [T 1
-.if '\\*[eval*[s]'?' .nr [T 1
-.rm eval*[s
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field s , \E*[IT] \E*[ref*restore-ss]
+.el \{\
+.ie \\n([s .ref*field s "" ".\E*[IT]" \E*[ref*restore-ss]
+.el .ref*field s . " \E*[IT]" \E*[ref*restore-ss]
+.\}
+.\" refer doesn't set reg [T to 1 for these titles, so we do it here
+.if !'\\*[$REF_STYLE]'NOTE' \{\
+. ds eval*[s \\*([s
+. substring eval*[s -1
+. rr [T
+. if '\\*[eval*[s]'.' .nr [T 1
+. if '\\*[eval*[s]'!' .nr [T 1
+. if '\\*[eval*[s]'?' .nr [T 1
+. rm eval*[s
+.\}
..
-\# %c content of site, if unclear (i.e. advertisement, cartoon,
-\# interview, etc.)
+\# %c content of site (ie. Web, Online posting, etc)
.de ref*add-c
-.ie \\n([T .ref*field c "" " "
-.el .ref*field c . " "
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field c ,
+.el \{\
+. ie \\n([T .ref*field c "" " "
+. el .ref*field c . " "
+.\}
.rr [T
..
\# %o organization, group or sponsor of site
.de ref*add-o
-.ie \\n([T .ref*field o "" " "
-.el .ref*field o . " "
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field o ,
+.el \{\
+. ie \\n([T .ref*field o "" " "
+. el .ref*field o . " "
+.\}
.rr [T
..
\# %a access date, i.e. the date you read it
.de ref*add-a
-.ie \\n([T .ref*field a "" " "
-.el .ref*field a . " "
+.ie '\\*[$REF_STYLE]'NOTE' .ref*field a ,
+.el \{\
+. ie \\n([T .ref*field a "" " "
+. el .ref*field a . " "
+.\}
.rr [T
..
\# %u URL
.de ref*add-u
-.ref*field u "" " <" ">"
+.ref*field u "" < >
.rr [T
..
+.de ref*add-z
+.ref*field z
+..
\#
\# Build up reference string from ref*add-<x> macros.
\#
+\# First, a string to ensure next field's font is reset to roman
+\# (TYPESET) or non-underlined (TYPEWRITE)
+\#
+.ie !n .ds ref*roman \f[R]\X'ps: exec decornone'\?\R'#UNDERLINE_ON 0'\?
+.el .ds ref*roman \f[R]\?\R'#UNDERLINE_ON 0'\?
+\#
.de ref*field
.if d ref*string \{\
. ie d ref*post-punct \{\
@@ -17926,8 +18259,8 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. el .as ref*string "\\$2 \"
.\}
-.as ref*string "\\$3\\*([\\$1\\$4
-.if \\n[.$]>4 .ds ref*post-punct "\\$5
+.as ref*string "\\$3\\*([\\$1\\$4\E*[ref*roman]
+.if \\n[.$]>4 .ds ref*post-punct "\\$5\E*[ref*roman]
.nr ref*suppress-period 0
..
\#
@@ -18063,7 +18396,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr MN-size \\n[.ps]
. ps
. if \\n[#PRINT_STYLE]=1 \{\
-. ps 12
+. ps \\*[$TYPEWRITER_PS]
. nr MN-size \\n[.ps]
. ps
. \}
@@ -18318,4 +18651,4 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if !\\n[#no-repeat-MN-right]=1 .vpt 1
..
\#
-\# vim: ft=groff:
+\# vim: ft=groff: encoding=latin1: fileencoding=latin1: nomodified: