[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Groff-commit] groff/contrib/mom BUGS ChangeLog NEWS copyright...
From: |
Werner LEMBERG |
Subject: |
[Groff-commit] groff/contrib/mom BUGS ChangeLog NEWS copyright... |
Date: |
Sat, 14 May 2005 03:07:14 -0400 |
CVSROOT: /cvsroot/groff
Module name: groff
Branch:
Changes by: Werner LEMBERG <address@hidden> 05/05/14 07:07:13
Modified files:
contrib/mom : BUGS ChangeLog NEWS copyright om.tmac
contrib/mom/examples: README.txt elvis_syntax elvis_syntax.new
sample_docs.mom
contrib/mom/momdoc: appendices.html color.html cover.html
docelement.html docprocessing.html
goodies.html headfootpage.html inlines.html
intro.html letters.html macrolist.html
reserved.html toc.html typemacdoc.html
typesetting.html using.html
Added files:
contrib/mom/momdoc: refer.html
Log message:
*Thu May 12 2005
o Added margin notes capability
o Added mom-specific refer support; refer calls can be embedded in
running text, sent to footnotes or endnotes, or collected for
output on a bibliography page; also added mom-specific refer
control macros
o Added bibliography page capability, with full suite of control
macros
o Added referencing of footnotes and endnotes by line number
o Added capability to have footnotes run on when footnotes are
being referenced by line number
o Added a post footnote space option, in case users want a little
space between their footnotes
o Added ENDNOTE_MARKER_STYLE, so user can choose between endnotes
identified by a numerical marker in the text, or by line number
o Added control macros to accommodate differing needs for endnotes
identified by line number
o Added ENDNOTE_TITLE_SPACE, so user can control starting position
of the endnotes page title
o Extended LIST so that it accepts lowercase alpha, uppercase roman
numeral and lowercase roman numeral enumerators; also added a
"prefix" argument (which comes *after* the separator argument)
o Changed RESET_LIST so that it can reset a list to any number,
letter, or roman numeral, instead of just 1, a, A, I and i
o Change to handling of footnote/endnote markers in text; input
lines before FOOTNOTE still require \c, but input line after
FOOTNOTE OFF must be entered as a literal continuation of the
line before FOOTNOTE, including any required word space or
punctuation (this so users can get the footnote marker in text
either before or after the punctuation without hassle)
o Added QUOTE_AUTOLEAD and BLOCKQUOTE_AUTOLEAD, so user can have
quotes and blockquotes leaded differently from running text
o Reworked QUOTE and BLOCKQUOTE to accommodate _AUTOLEAD control;
spacing above and below quotes is equalized *on a per quote
basis* (not completely happy with this, but at least it gives
users some flexibility in designing (block)quotes)
*Fri Mar 18 2005
o Added mom.vim to /examples
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/BUGS.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/ChangeLog.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/NEWS.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/copyright.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/om.tmac.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/examples/README.txt.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/examples/elvis_syntax.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/examples/elvis_syntax.new.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/examples/sample_docs.mom.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/refer.html?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/appendices.html.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/color.html.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/cover.html.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/docelement.html.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/docprocessing.html.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/goodies.html.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/headfootpage.html.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/inlines.html.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/intro.html.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/letters.html.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/macrolist.html.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/reserved.html.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/toc.html.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/typemacdoc.html.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/typesetting.html.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/groff/groff/contrib/mom/momdoc/using.html.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: groff/contrib/mom/BUGS
diff -u groff/contrib/mom/BUGS:1.18 groff/contrib/mom/BUGS:1.19
--- groff/contrib/mom/BUGS:1.18 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/BUGS Sat May 14 07:07:12 2005
@@ -5,6 +5,8 @@
Post to the groff mailing list with bug reports, questions and
suggestions, or contact me directly at:
+ address@hidden
+ or
address@hidden
If writing me directly, please include the word "groff" or "mom" in
@@ -15,6 +17,19 @@
========================================================================
+Version 1.2-f
+============
+
+Multiple line subheads near page bottom sometimes printing one line
+of subhead at page bottom, and subsequent lines on next page.
+---Fixed---
+
+Post-quote spacing still wonky when paragraph spacing is turned on.
+---Fixed--- (for good would be nice)
+
+RULE not always resetting quad and quad value.
+---Fixed---
+
Version 1.2-e
=============
Index: groff/contrib/mom/ChangeLog
diff -u groff/contrib/mom/ChangeLog:1.30 groff/contrib/mom/ChangeLog:1.31
--- groff/contrib/mom/ChangeLog:1.30 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/ChangeLog Sat May 14 07:07:12 2005
@@ -1,3 +1,58 @@
+*Thu May 12 2005
+
+o Added margin notes capability
+
+o Added mom-specific refer support; refer calls can be embedded in
+ running text, sent to footnotes or endnotes, or collected for
+ output on a bibliography page; also added mom-specific refer
+ control macros
+
+o Added bibliography page capability, with full suite of control
+ macros
+
+o Added referencing of footnotes and endnotes by line number
+
+o Added capability to have footnotes run on when footnotes are
+ being referenced by line number
+
+o Added a post footnote space option, in case users want a little
+ space between their footnotes
+
+o Added ENDNOTE_MARKER_STYLE, so user can choose between endnotes
+ identified by a numerical marker in the text, or by line number
+
+o Added control macros to accommodate differing needs for endnotes
+ identified by line number
+
+o Added ENDNOTE_TITLE_SPACE, so user can control starting position
+ of the endnotes page title
+
+o Extended LIST so that it accepts lowercase alpha, uppercase roman
+ numeral and lowercase roman numeral enumerators; also added a
+ "prefix" argument (which comes *after* the separator argument)
+
+o Changed RESET_LIST so that it can reset a list to any number,
+ letter, or roman numeral, instead of just 1, a, A, I and i
+
+o Change to handling of footnote/endnote markers in text; input
+ lines before FOOTNOTE still require \c, but input line after
+ FOOTNOTE OFF must be entered as a literal continuation of the
+ line before FOOTNOTE, including any required word space or
+ punctuation (this so users can get the footnote marker in text
+ either before or after the punctuation without hassle)
+
+o Added QUOTE_AUTOLEAD and BLOCKQUOTE_AUTOLEAD, so user can have
+ quotes and blockquotes leaded differently from running text
+
+o Reworked QUOTE and BLOCKQUOTE to accommodate _AUTOLEAD control;
+ spacing above and below quotes is equalized *on a per quote
+ basis* (not completely happy with this, but at least it gives
+ users some flexibility in designing (block)quotes)
+
+*Fri Mar 18 2005
+
+o Added mom.vim to /examples
+
*Thu Jan 20 2005
o Added \*[TB+] and \*[B] to give inline functionality of .TN and
@@ -11,6 +66,10 @@
*Wed Jan 19 2005
+o New macro, ADD_SPACE, so that extra space can be added at the
+ top of a new page in document processing; the .ns call in HEADER
+ was making additional space impossible
+
o Reworked handling of ALD/SPACE/SP and LS when they're used at
the tops of pages during pure (i.e. non-docprocessing)
typesetting. First lines were still wandering. Should also be
@@ -19,7 +78,6 @@
first baseline (i.e. merely sets the lead for the text that
follows).
-
*Tue Dec 14 2004
o Fixed a small problem with spacing under quotes when paragraph
Index: groff/contrib/mom/NEWS
diff -u groff/contrib/mom/NEWS:1.17 groff/contrib/mom/NEWS:1.18
--- groff/contrib/mom/NEWS:1.17 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/NEWS Sat May 14 07:07:12 2005
@@ -1,3 +1,35 @@
+Release 1.3
+-----------
+
+Added line numbering capabilities, with controls.
+
+Footnotes and endnotes can now be referenced by line number.
+
+Added ability to adjust vertical position of the title that appears
+on the first endnotes page.
+
+Footnotes can run on when being referenced by line number.
+
+Footnotes now have a post-footnote spacing option, for adding
+a little space between footnotes.
+
+Extended LIST so it accepts alpha, ROMAN and roman enumerators.
+
+Added margin notes capability.
+
+Added refer support.
+
+Added bibliography page support.
+
+Added QUOTE_AUTOLEAD and BLOCKQUOTE_AUTOLEAD, so user can have
+quotes and blockquotes leaded differently from running text.
+
+Change: the input line immediately after FOOTNOTE OFF must be
+entered as a literal continuation of the line prior to FOOTNOTE,
+including any initial spaces or punctuation marks. This allows
+for hassle-free placing of footnote markers in running text either
+before or after punctuation marks.
+
Release 1.2-f
-------------
Index: groff/contrib/mom/copyright
diff -u groff/contrib/mom/copyright:1.3 groff/contrib/mom/copyright:1.4
--- groff/contrib/mom/copyright:1.3 Tue Aug 31 20:17:20 2004
+++ groff/contrib/mom/copyright Sat May 14 07:07:12 2005
@@ -1,6 +1,6 @@
AUTHOR
------
-Peter Schaffter (address@hidden)
+Peter Schaffter (address@hidden) (address@hidden)
320 Gordon St.
Fergus, Ontario
CANADA
@@ -9,7 +9,7 @@
========================================================================
The groff macro file om.tmac and the html documentation pertaining
-to it are copyright (c) 2004 Peter Schaffter.
+to it are copyright (c) 2004, 2005 Peter Schaffter.
om.tmac is issued under the GNU General Public License, a full copy of
which can be had at
Index: groff/contrib/mom/examples/README.txt
diff -u groff/contrib/mom/examples/README.txt:1.2
groff/contrib/mom/examples/README.txt:1.3
--- groff/contrib/mom/examples/README.txt:1.2 Mon Aug 9 09:07:47 2004
+++ groff/contrib/mom/examples/README.txt Sat May 14 07:07:12 2005
@@ -90,4 +90,26 @@
higher, and to use elvis_syntax.new for mom highlighting.
I'll be very happy if someone decides to send me syntax highlighting
-rules for vim and emacs. :)
+rules for emacs. :)
+
+***mom.vim***
+
+Christian V. J. Brüssow has kindly contributed a set of mom syntax
+highlighting rules for use with vim. Copy the file to your
+~/.vim/syntax directory, then, if your vim isn't already set up to
+do so, enable mom syntax highlighting with
+
+ :syntax enable
+
+or
+
+ :syntax on
+
+Please note: I don't use vim, so I won't be making changes to this
+file myself. Christian Brüssow is the maintainer of the ruleset,
+which is available on the Web at
+
+ http://www.cvjb.de/comp/vim/mom.vim
+
+Contact Christian (address@hidden) if you have any suggestions or
+requests.
Index: groff/contrib/mom/examples/elvis_syntax
diff -u groff/contrib/mom/examples/elvis_syntax:1.9
groff/contrib/mom/examples/elvis_syntax:1.10
--- groff/contrib/mom/examples/elvis_syntax:1.9 Wed Dec 8 07:57:47 2004
+++ groff/contrib/mom/examples/elvis_syntax Sat May 14 07:07:12 2005
@@ -47,6 +47,7 @@
font args UP DOWN BCK FWD BU BP FU FP
font args ROM IT BD BDI PREV
font args ST
+font args SUSPEND RESUME
prefix { \{ \{\
font braces { \{ \{\
Index: groff/contrib/mom/examples/elvis_syntax.new
diff -u groff/contrib/mom/examples/elvis_syntax.new:1.7
groff/contrib/mom/examples/elvis_syntax.new:1.8
--- groff/contrib/mom/examples/elvis_syntax.new:1.7 Wed Dec 8 07:57:47 2004
+++ groff/contrib/mom/examples/elvis_syntax.new Sat May 14 07:07:12 2005
@@ -50,21 +50,22 @@
font args BLOCK QUAD
font args LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM L R C J
font args OFF QUIT END EXIT DONE NO ALL
-font args PAGE NUMBER STAR
+font args PAGE NUMBER STAR LINE
font args LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO
font args 10x14 A3 A4 A5 B4 B5
font args SINGLESPACE
font args FACTOR
-font args DASH BULLET ALPHA DIGIT USER
+font args DASH BULLET ALPHA DIGIT USER ROMAN roman alpha
+font args SUSPEND RESUME
font args RGB CYM CMYK GRAY GREY
font args COND CONDX EXT EXTX SUP SUPX CONDSUP CONDSUPX EXTSUP EXTSUPX
font args BOLDER BOLDERX SLANT SLANTX
-font args UP DOWN BCK FWD BU BP FU FP
+font args UP DOWN BCK FWD BU BP FU FP FN_MARK EN_MARK
font args ROM IT BD BDI PREV
font args ST
-prefix { \{ \} \{\
-font braces { \{ \} \{\
+prefix { \{ \} \{\ }
+font braces { \{ \} \{\ }
prefix [ ]
font brackets [ ]
prefix \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc
\(sq \(lq \(rq
Index: groff/contrib/mom/examples/sample_docs.mom
diff -u groff/contrib/mom/examples/sample_docs.mom:1.2
groff/contrib/mom/examples/sample_docs.mom:1.3
--- groff/contrib/mom/examples/sample_docs.mom:1.2 Mon Aug 9 09:07:47 2004
+++ groff/contrib/mom/examples/sample_docs.mom Sat May 14 07:07:12 2005
@@ -378,7 +378,7 @@
Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna
ali\%quyam erat, sed diam voluptua.
.FOOTNOTE OFF
-elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re
+ elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re
magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et
justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea.
\#
@@ -408,7 +408,7 @@
Takimata sadipscing elitr, sed diam nonumy eirmod tempor invidunt
ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua.
.FOOTNOTE OFF
-sanctus est lorem. Ipsum dolor sit amet, consetetur
+ sanctus est lorem. Ipsum dolor sit amet, consetetur
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et
accusam et justo duo do\%lo\%res et ea rebum amet. Consetetur sadipscing
@@ -446,7 +446,7 @@
magna ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et
justo.
.FOOTNOTE OFF
-Et do\%lo\%re et magna ali\%quyam erat, sed diam voluptua, at vero.
+ Et do\%lo\%re et magna ali\%quyam erat, sed diam voluptua, at vero.
Eos et accusam et justo duo.
.BLOCKQUOTE OFF
\#
@@ -495,7 +495,7 @@
.FOOTNOTE
Aliquyam nonumy eirmod tempor invidunt ut labore.
.FOOTNOTE OFF
-erat, sed diam
+ erat, sed diam
voluptua at vero eos et accusam. Et justo duo do\%lo\%res et ea rebum,
stet clita kasd gubergren, no sea takimata.
.PP
@@ -555,7 +555,7 @@
Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna
ali\%quyam erat, sed diam voluptua.
.FOOTNOTE OFF
-elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re
+ elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re
magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et
justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea
takimata lorem. Ipsum dolor sit amet, consetetur sadipscing elitr.
Index: groff/contrib/mom/momdoc/appendices.html
diff -u groff/contrib/mom/momdoc/appendices.html:1.6
groff/contrib/mom/momdoc/appendices.html:1.7
--- groff/contrib/mom/momdoc/appendices.html:1.6 Tue Aug 31 20:17:20 2004
+++ groff/contrib/mom/momdoc/appendices.html Sat May 14 07:07:12 2005
@@ -597,8 +597,10 @@
I've ever owned have been hand-me-downs -- several generations
out-of-date and "resource challenged". Disk space has
always been an issue, as has processor speed and available RAM.
-One of the reasons I run Linux is that it has helped enormously to
-get the most out of my poor little boxes.
+One of the reasons I run GNU/Linux is that it has helped enormously
+to get the most out of my poor little boxes. (It has been pointed
+out to me that NetBSD might be an even better choice of operating
+systems for computers with limited resources.)
<p>
In Linux-land, the choice of typesetting systems basically comes down
to groff or TeX. Both are wonderful -- monumental achievements if you
@@ -616,7 +618,7 @@
Owing to its very long history, it -- and its "power users"
-- have remained stuck in a time warp. Most common macro packages
still look as they did in those decades when memory was exorbitantly
-expensive, and every byte mattered. Documentation -- not always
+expensive and every byte mattered. Documentation -- not always
easy to find -- is written as if all readers are computer whizzes,
or at least have a university degree in one of the higher sciences.
<p>
@@ -668,7 +670,10 @@
(subscription information available
<a href="http://ffii.org/mailman/listinfo/groff/">here</a>)
or contact me, Peter Schaffter, directly at
+<i>peter@faustus.dyn.ca</i>
+or
<i>ptpi@golden.net</i>.
+
<p>
Please include the word "mom" or "groff" in the
Subject: line of any message sent to my personal address, or you
@@ -676,7 +681,7 @@
<p>
If you want to visit <strong>mom</strong>'s homepage, you'll find
it
-<a href="http://www.ncf.ca/~df191/mom.html">here</a>.
+<a href="http://faustus.dyn.ca/mom/mom.html">here</a>.
<p>
<hr>
<a href="reserved.html#TOP">Next</a>
Index: groff/contrib/mom/momdoc/color.html
diff -u groff/contrib/mom/momdoc/color.html:1.2
groff/contrib/mom/momdoc/color.html:1.3
--- groff/contrib/mom/momdoc/color.html:1.2 Fri Jun 4 06:43:08 2004
+++ groff/contrib/mom/momdoc/color.html Sat May 14 07:07:13 2005
@@ -104,7 +104,7 @@
<li><a href="#NEWCOLOR">NEWCOLOR</a>
<li><a href="#XCOLOR">XCOLOR</a>
<li><a href="#COLOR">COLOR</a>
- <li><a href="#COLOR_INLINE">\*[<colorname></a> inline escape
+ <li><a href="#COLOR_INLINE">\*[<colorname>]</a> inline escape
</ul>
<p>
@@ -113,7 +113,7 @@
<hr width="66%" align="left">
<a name="NEWCOLOR"><h3><u>Creating (initializing) a colour with
NEWCOLOR</u></h3></a>
<br>
-Macro: <strong>NEWCOLOR</strong> <var><colour name> [<colour
scheme>] <colour components></var>
+<nobr>Macro: <strong>NEWCOLOR</strong> <colour name> [<colour
scheme>] <colour components><wbr>
<p>
<strong>NEWCOLOR</strong> lets you create a colour, rather like an
@@ -194,7 +194,7 @@
<hr width="33%" align="left">
<a name="XCOLOR"><h3><u>Initializing a colour with XCOLOR</u></h3>
<br>
-Macro: <strong>XCOLOR</strong> <var><X color name> [<alias>]</var>
+<nobr>Macro: <strong>XCOLOR</strong> <X color name> [<alias>]<wbr>
<br>
<em>*<X color name> must be all one word, all lower case.
<br>
@@ -290,7 +290,7 @@
<hr width="33%" align="left">
<a name="COLOR"><h3><u>Invoking a color</u></h3>
<br>
-Macro: <strong>COLOR</strong> <var><colorname></var>
+<nobr>Macro: <strong>COLOR</strong> <colorname><wbr>
<br>
<a name="COLOR_INLINE">Inline: <strong>\*[<colorname>]</strong></a>
<p>
Index: groff/contrib/mom/momdoc/cover.html
diff -u groff/contrib/mom/momdoc/cover.html:1.4
groff/contrib/mom/momdoc/cover.html:1.5
--- groff/contrib/mom/momdoc/cover.html:1.4 Mon Aug 9 09:07:48 2004
+++ groff/contrib/mom/momdoc/cover.html Sat May 14 07:07:13 2005
@@ -8,12 +8,12 @@
<!====================================================================>
-<a href="letters.html#TOP">Next</a>
+<a href="refer.html#TOP">Next</a>
<a href="rectoverso.html#TOP">Prev</a>
<a href="toc.html">Back to Table of Contents</a>
<p>
-<a name="COVER_TOP">
+<a name="TOP">
<h1 align="center"><u>CREATING A COVER PAGE</u></h1>
</a>
@@ -183,9 +183,9 @@
<br>
Macro: <strong>DOC_COVER</strong>
<br>
- Required argument: <var>TITLE | DOCTITLE | COVERTITLE | CHAPTER |
CHAPTER_TITLE | CHAPTER+TITLE</var>
+ Required argument: <nobr>TITLE | DOCTITLE | COVERTITLE | CHAPTER |
CHAPTER_TITLE | CHAPTER+TITLE<wbr>
<br>
- Optional arguments: <var>[ SUBTITLE AUTHOR DOCTYPE COPYRIGHT MISC
]</var>
+ Optional arguments: <nobr>[ SUBTITLE AUTHOR DOCTYPE COPYRIGHT MISC
]<wbr>
<p>
<em>*Note: these macros should be placed in the
"style-sheet" section of your document setup (see the
@@ -361,9 +361,9 @@
<hr width="66%" align="left">
<p>
<a name="ON_OFF"></a>
- Macro: <strong>COVERS</strong> <var><toggle></var>
+ <nobr>Macro: <strong>COVERS</strong> <toggle><wbr>
<br>
- Macro: <strong>DOC_COVERS</strong> <var><toggle></var>
+ <nobr>Macro: <strong>DOC_COVERS</strong> <toggle><wbr>
</a>
<p>
By default, if you give <strong>mom</strong> a
@@ -504,7 +504,7 @@
<p>
<hr>
-<a href="letters.html#TOP">Next</a>
+<a href="refer.html#TOP">Next</a>
<a href="rectoverso.html#TOP">Prev</a>
<a href="#TOP">Top</a>
<a href="toc.html">Back to Table of Contents</a>
Index: groff/contrib/mom/momdoc/docelement.html
diff -u groff/contrib/mom/momdoc/docelement.html:1.14
groff/contrib/mom/momdoc/docelement.html:1.15
--- groff/contrib/mom/momdoc/docelement.html:1.14 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/docelement.html Sat May 14 07:07:13 2005
@@ -62,10 +62,10 @@
<p>
The control macros for document processing tags let you
"design" the look of all the parts of your documents --
-should you wish. At a bare minimum, all tags have macros to
-change <strong>mom</strong>'s defaults for family, font
-and point size. Where appropriate, there are macros to control
-leading, indents and quad as well.
+should you wish. At a bare minimum, all tags have macros to change
+<strong>mom</strong>'s defaults for family, font, point size and
+colour. Where appropriate, there are macros to control leading,
+indents and quad as well.
<p>
In addition, many tags have special macros to control features that
are pertinent to those tags alone. Have a look at the section dealing
@@ -221,7 +221,7 @@
<li><a href="#PARAHEAD">PARAHEAD</a>
<li><a href="#PARAHEAD_CONTROL">Parahead control</a>
</ul>
- <li><a href="#LINEBREAK_INTRO">Linebreaks (author linebreaks)</a>
+ <li><a href="#LINEBREAK_INTRO">Linebreaks (author linebreaks, section
breaks)</a>
<ul>
<li><a href="#LINEBREAK">LINEBREAK</a>
<li><a href="#LINEBREAK_CHAR">Linebreak character</a>
@@ -245,30 +245,49 @@
</ul>
<li><a href="#LIST_CONTROL">List control</a>
</ul>
+ <li><a href="#NUMBER_LINES_INTRO">Line numbering</a>
+ <ul>
+ <li><a href="#NUMBER_LINES">NUMBER_LINES</a>
+ <li><a href="#NUMBER_LINES_CONTROL">Control macros</a> (for
QUOTE and BLOCKQUOTE)
+ </ul>
<li><a href="#FOOTNOTE_INTRO">Footnotes</a>
<ul>
<li><a href="#FOOTNOTE">FOOTNOTE</a>
<li><a href="#FOOTNOTE_CONTROL">Footnote control</a>
</ul>
- <li><a href="#FINIS_INTRO">Document termination</a>
- <ul>
- <li><a href="#FINIS">FINIS</a>
- <ul>
- <li><a href="#FINIS_STRING">Changing the FINIS
string</a>
- <li><a href="#FINIS_COLOR">Changing the FINIS colour</a>
- </ul>
- </ul>
<li><a href="#ENDNOTE_INTRO">Endnotes</a>
<ul>
<li><a href="#ENDNOTE">ENDNOTE</a>
<li><a href="#ENDNOTE_CONTROL">Endnote control</a>
</ul>
+ <li><a href="#MARGIN_NOTES_INTRO">Margin notes</a>
+ <ul>
+ <li><a href="#MN_INIT">MN_INIT</a> -- initialize margin notes
+ <li><a href="#MN">MN</a> -- start and end a margin note
+ </ul>
+ <li><a href="refer.html#TOP">Bibliographies and references</a>
+ <ul>
+ <li><a href="refer.html#REF">REF</a>
+ <li><a href="refer.html#ENDNOTE_REFS">ENDNOTE_REFS</a>
+ <li><a href="refer.html#FOOTNOTE_REFS">FOOTNOTE_REFS</a>
+ <li><a href="refer.html#BRACKET_REFS">Embedded references</a>
+ <li><a href="refer.html#BIBLIOGRAPHY">BIBLIOGRAPHY</a>
+ <li><a href="refer.html#BIBLIOGRAPHY_TYPE">BIBLIOGRAPHY_TYPE</a>
+ </ul>
+ <li><a href="#BLANK_PAGE_TITLE">Blank pages</a>
<li><a href="#TOC_INTRO">Table of contents</a>
<ul>
<li><a href="#TOC">TOC</a>
<li><a href="#TOC_CONTROL">Table of contents control</a>
</ul>
- <li><a href="#BLANK_PAGE_TITLE">Blank page</a>
+ <li><a href="#FINIS_INTRO">Document termination</a>
+ <ul>
+ <li><a href="#FINIS">FINIS (Document termination)</a>
+ </ul>
+ <ul>
+ <li><a href="#FINIS_STRING">Changing the FINIS string</a>
+ <li><a href="#FINIS_COLOR">Changing the FINIS colour</a>
+ </ul>
</ul>
<hr>
@@ -299,7 +318,7 @@
<hr width="66%" align="left">
<p>
<a name="EPIGRAPH">
- Macro: <strong>EPIGRAPH</strong> <var><toggle> | [ BLOCK
]</var></a>
+ <nobr>Macro: <strong>EPIGRAPH</strong> <toggle> | [ BLOCK
]</a><wbr>
</a>
<p>
@@ -759,7 +778,7 @@
<hr width="66%" align="left">
<p>
<a name="HEAD">
- Macro: <strong>HEAD</strong> <var>"<text of head>" [
"<2nd line>" [ "<3rd line>" ... ] ]</var>
+ <nobr>Macro: <strong>HEAD</strong> "<text of head>" [
"<2nd line>" [ "<3rd line>" ... ] ]<wbr>
</a>
<p>
@@ -984,7 +1003,7 @@
<hr width="66%" align="left">
<p>
<a name="SUBHEAD">
- Macro: <strong>SUBHEAD</strong> <var>"<text of
subhead>" [ "<2nd line>" [ "<3rd line>"
... ] ]</var>
+ <nobr>Macro: <strong>SUBHEAD</strong> "<text of
subhead>" [ "<2nd line>" [ "<3rd line>"
... ] ]<wbr>
</a>
<p>
The argument to <strong>SUBHEAD</strong> is the text of the subhead,
@@ -1092,7 +1111,7 @@
<hr width="66%" align="left">
<p>
<a name="PARAHEAD">
- Macro: <strong>PARAHEAD</strong> <var>"<text of
parahead>"</var>
+ <nobr>Macro: <strong>PARAHEAD</strong> "<text of
parahead>"<wbr>
</a>
<p>
<strong>PARAHEAD</strong> must come AFTER
@@ -1241,7 +1260,7 @@
<h3><u>Linebreak character control macro</u></h3>
<p>
<a name="LINEBREAK_CHAR">
- Macro: <strong>LINEBREAK_CHAR</strong> <var>[ <character> ] [
<iterations> [ <vertical adjustment> ] ]</var>
+ <nobr>Macro: <strong>LINEBREAK_CHAR</strong> [ <character> ] [
<iterations> [ <vertical adjustment> ] ]<wbr>
</a>
<br>
Alias: <strong>SECTION_CHAR</strong>
@@ -1291,7 +1310,7 @@
<h3><u>Linebreak colour control macro</u></h3>
<p>
<a name="LINEBREAK_COLOR">
- Macro: <strong>LINEBREAK_COLOR</strong> <var><color name></var>
+ <nobr>Macro: <strong>LINEBREAK_COLOR</strong> <color name><wbr>
</a>
<p>
To change the colour of the linebreak character(s), simply invoke
@@ -1359,6 +1378,34 @@
as does the control macro
<a href="#QUOTE_INDENT">QUOTE_INDENT</a>.
<p>
+<strong>Version 1.3: mom</strong>'s handling of the vertical
+whitespace around quotes has changed slightly. In versions prior
+to 1.3, it was not possible to alter the
+<a href="definitions.html#TERMS_LEADING">leading</a>
+of quotes and blockquotes (which was the same as the document
+leading), ensuring that the vertical whitespace remained consistent,
+as described above. In 1.3 and later, it is possible to change the
+leading of quotes and blockquote via
+the <strong>QUOTE_AUTOLEAD</strong> and
+<strong>BLOCKQUOTE_AUTOLEAD</strong>macro. Now, if your quote
+(or blockquote) leading differs from the document leading,
+<strong>mom</strong> attempts to observe the same rules for vertical
+whitespace outlined above; however, she will also insert a small,
+flexible amount of extra whitespace around the quotes to make sure
+the whitespace is equal, top and bottom. Since she does this on a
+quote by quote basis, rather than by figuring out how much extra
+whitespace is needed to adjust <em>all</em> quotes on a page,
+the spacing around multiple quotes on the same page will differ
+slightly, although each will be balanced between lines of normal
+<a href="definitions.html#TERMS_RUNNING">running text</a>,
+top and bottom. (The inability to scan an entire page and insert
+equalized whitespace at marked places is a limitation of groff,
+which, by and large, works in a linear, line by line fashion.)
+If you don't provide <strong>mom</strong> with a
+<strong>QUOTE_AUTOLEAD</strong>, quotes are leaded at the default
+for normal running text, meaning that multiple quotes on the same
+page are all spaced identically.
+<p>
<a name="QUOTE_TIP"><strong>TIP:</strong></a>
If you want to include snippets of programming code in
<strong>mom</strong> documents, you may come acropper of the fact
@@ -1407,7 +1454,7 @@
<hr width="66%" align="left">
<p>
<a name="QUOTE">
- Macro: <strong>QUOTE</strong> <var>toggle</var>
+ <nobr>Macro: <strong>QUOTE</strong> toggle<wbr>
</a>
<p>
@@ -1428,7 +1475,7 @@
<a name="QUOTE_CONTROL"><h3><u>Quote control macros</u></h3></a>
<ol>
- <li><a href="#QUOTE_GENERAL">Family/font/size/colour/indent</a>
+ <li><a href="#QUOTE_GENERAL">Family/font/size/leading/colour/indent</a>
<li><a href="#ALWAYS_FULLSPACE_QUOTES">Spacing above and below (typeset
only)</a>
<li><a href="#UNDERLINE_QUOTES">Underline quotes (typewrite only)</a>
<li><a href="#BREAK_QUOTE">Manually break a footnoted quote that
crosses pages/columns</a>
@@ -1440,13 +1487,14 @@
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
<p>
<pre>
-.QUOTE_FAMILY default = prevailing document family; default is Times Roman
-.QUOTE_FONT default = italic
-.QUOTE_SIZE default = +0 (i.e. same size as paragraph text)
-.QUOTE_COLOR default = black
-<a name="QUOTE_INDENT">.QUOTE_INDENT default = paragraph indent x 3 (typeset);
x 2 (typewrite)</a>
- (note that this macro also sets the indents (left and right)
- for blockquotes)
+.QUOTE_FAMILY default = prevailing document family; default is Times Roman
+.QUOTE_FONT default = italic; underlined in TYPEWRITE
+.QUOTE_SIZE default = +0 (i.e. same size as paragraph text)
+.QUOTE_AUTOLEAD default = none; leading of quotes is the same as paragraphs
+.QUOTE_COLOR default = black
+<a name="QUOTE_INDENT">.QUOTE_INDENT default = paragraph indent x 3
(typeset); x 2 (typewrite)</a>
+ (note that this macro also sets the indents (left and right)
+ for blockquotes)
</pre>
<a name="ALWAYS_FULLSPACE_QUOTES"><h3><u>2. Spacing above and below --
ALWAYS_FULLSPACE_QUOTES (typeset only)</u></h3></a>
@@ -1539,19 +1587,8 @@
off from running text with a small amount of vertical whitespace top
and bottom. (See
<a href="#QUOTE_SPACING">above</a>
-for a complete explanation of how this is managed, and how to control it.)
-<p>
-You may notice that <strong>BLOCKQUOTE</strong> has no macro to
-control
-<a href="definitions.html#TERMS_LEADING">leading</a>,
-although you can change the point size. There are Very Good
-Reasons for this. If you can't live with the limitation, change
-the leading of blockquotes (after invoking the tag) with
-<a href="typesetting.html#LS">LS</a>,
-but know that there will be Bottom Margin Consequences unless you
-use the
-<a href="docprocessing.html#SHIM">SHIM</a>
-macro after you turn the blockquote off.
+for a complete explanation of how this is managed, and how to control it.
+Be sure to read the section <strong>Version 1.3</strong>.)
<p>
<!---BLOCKQUOTE--->
@@ -1559,7 +1596,7 @@
<hr width="66%" align="left">
<p>
<a name="BLOCKQUOTE">
- Macro: <strong>BLOCKQUOTE</strong> <var>toggle</var>
+ <nobr>Macro: <strong>BLOCKQUOTE</strong> toggle<wbr>
<br>
Aliases: <strong>CITE, CITATION</strong>
</a>
@@ -1593,7 +1630,7 @@
<a name="BLOCKQUOTE_CONTROL"><h3><u>Blockquote control macros</u></h3></a>
<ol>
- <li><a
href="#BLOCKQUOTE_GENERAL">Family/font/size/colour/quad/indent</a>
+ <li><a
href="#BLOCKQUOTE_GENERAL">Family/font/size/leading/colour/quad/indent</a>
<li><a href="#ALWAYS_FULLSPACE_QUOTES">Spacing above and below (typeset
only)</a>
<li><a href="#BREAK_QUOTE">Manually break a footnoted blockquote that
crosses pages/columns</a>
</ol>
@@ -1604,13 +1641,14 @@
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
<p>
<pre>
-.BLOCKQUOTE_FAMILY default = prevailing document family; default is Times Roman
-.BLOCKQUOTE_FONT default = italic
-.BLOCKQUOTE_SIZE default = -1 (point)
-.BLOCKQUOTE_COLOR default = black
-.BLOCKQUOTE_QUAD default = left
-.QUOTE_INDENT default = paragraph indent x 3 (typeset); x 2
(typewrite)</a>
- (note that this macro also sets the left indent for quotes)
+.BLOCKQUOTE_FAMILY default = prevailing document family; default is Times
Roman
+.BLOCKQUOTE_FONT default = roman
+.BLOCKQUOTE_SIZE default = -1 (point)
+.BLOCKQUOTE_AUTOLEAD default = none; leading of blockquotes is the same as
paragraphs
+.BLOCKQUOTE_COLOR default = black
+.BLOCKQUOTE_QUAD default = left
+.BLOCKQUOTE_INDENT default = paragraph indent x 3 (typeset); x 2
(typewrite)</a>
+ (note that this macro also sets the left indent for quotes)
</pre>
<a name="ALWAYS_FULLSPACE_QUOTES"><h3><u>2. Spacing above and below --
ALWAYS_FULLSPACE_QUOTES (typeset only)</u></h3></a>
@@ -1651,7 +1689,7 @@
every item in the list, you invoke the macro, <strong>ITEM</strong>,
followed by the text of the item. When a list is finished, you
exit the list with <strong>LIST OFF</strong> (or
-<strong>QUIT</strong>, <strong>END</strong>, <strong>X</strong>,
+<strong>QUIT</strong>, <strong>END</strong>, <strong>BACK</strong>,
etc.)
<p>
By default <strong>mom</strong> starts each list with the enumerator
@@ -1674,7 +1712,7 @@
In other words, <strong>mom</strong> does not, by default, indent
entire lists. Indenting a list is controlled by the macro,
-<a href="#"SHIFT_LIST>SHIFT_LIST</a>.
+<a href="#SHIFT_LIST">SHIFT_LIST</a>.
(This is a design decision; there are too many instances where a
default indent is not desirable.) Equally, <strong>mom</strong>
does not add any extra space above or below lists.
@@ -1682,7 +1720,8 @@
Lists can be nested (as in the example above). In other words, you
can set lists within lists, each with an enumerator (and possibly,
indent) of your choosing. In nested lists, each invocation of
-<strong>LIST OFF</strong> takes you back to the previous depth (or
+<strong>LIST OFF</strong> (you may prefer to use <strong>LIST
+BACK</strong>) takes you back to the previous depth (or
level) of list, with that list's enumerator and indent intact. The
final <strong>LIST OFF</strong> exits lists completely and returns
you to the left margin of running text.
@@ -1696,8 +1735,7 @@
<hr width="66%" align="left">
<p>
<a name="LIST">
- Macro: <strong>LIST</strong> <var>[ BULLET | DASH | DIGIT | ALPHA |
USER ] [ <separator> | <user-defined enumerator> ] [ <off>
]</var></a>
-
+ <nobr>Macro: <strong>LIST</strong> [ BULLET | DASH | DIGIT | ALPHA |
alpha | ROMAN<n> | roman<n> | USER <string>] [
<separator> | <user-defined enumerator> ] [ <prefix> ] [
<off> ]</a><wbr>
<p>
Invoked by itself (i.e. with no argument), <strong>LIST</strong>
initializes a list (with bullets as the default enumerator).
@@ -1705,77 +1743,184 @@
<a href="#ITEM">.ITEM</a>,
on a line by itself, is treated as a list item.
<p>
+<strong>NOTE:</strong> Every time you invoke <strong>LIST</strong>
+to start a list (as opposed to
+<a href="#LIST_EXIT">exiting one</a>),
+you must supply an enumerator (and optionally, a separator) for the
+list, unless you want <strong>mom</strong>'s default enumerator,
+which is a bullet. Within nested lists, <strong>mom</strong>
+stores the enumerator, separator and indent for any list you return
+<em>backwards</em> to (i.e. with <strong>LIST OFF</strong>), but
+does not store any information for lists you move <em>forward</em>
+to.
+<br>
+
+<h3><u>The first argument--enumerator style</u></h3>
+<p>
The optional arguments <strong>BULLET</strong>,
-<strong>DASH</strong>, <strong>DIGIT</strong> (for Arabic
-numerals), <strong>ALPHA</strong> (for lowercase letters) and
-<strong>USER</strong> allow you to say what kind of enumerator you
-want for a given list.
-<p>
-If you choose <strong>DIGIT</strong> or <strong>ALPHA</strong>, you
-may enter the optional argument <strong>separator</strong> to say
-what kind of separator you want after the enumerator. The separator
-can be anything you like. The default for <strong>DIGIT</strong> is
-a period (dot), like this:
+<strong>DASH</strong>, <strong>DIGIT</strong> (for
+Arabic numerals), <strong>ALPHA</strong> (for uppercase
+letters), <strong>alpha</strong> (for lowercase letters),
+<strong>ROMAN<n></strong> (for uppercase roman numerals),
+<strong>roman<n></strong> (for lowercase roman numerals) tell
+<strong>mom</strong> what kind of enumerator to use for a given
+list.
+<p>
+The arguments, <strong>ROMAN<n></strong> and
+<strong>roman<n></strong>, are special. You must append to
+them a digit (arabic, e.g. "1" or "9" or "17") saying how many items
+a particular roman-numeralled <strong>LIST</strong> is going to
+have. <strong>Mom</strong> requires this information in order to
+align roman numerals sensibly, and will abort--with a message--if
+you don't provide it.
+<p>
+A roman-numeralled list containing, say, five items, would be set
+up like this:
+<p>
+<pre>
+ .LIST roman5 producing i) Item 1.
+ .ITEM ii) Item 2.
+ Item 1. iii) Item 3.
+ .ITEM iv) Item 4.
+ Item 2. v) Item 5.
+ .ITEM
+ Item 3
+ .ITEM
+ Item 4
+ .ITEM
+ Item 5
+</pre>
+
+<p>
+The argument, <strong>USER</strong>, lets you make up your own
+enumerator, and must be followed by a second argument: what you'd
+like the enumerator to look like. For example, if you want a list
+enumerated with
+<strong>=></strong>,
+<p>
+<pre>
+ .LIST USER =>
+ .ITEM
+ A list item
+</pre>
+
+will produce
+<p>
+<pre>
+ => A list item
+</pre>
+
+<strong>Please note:</strong> if the argument to
+<strong>USER</strong> contains spaces, you must enclose the argument
+in double quotes.
+
+<br>
+
+<h3><u>The second argument--separator style</u></h3>
+<p>
+If you choose <strong>DIGIT</strong>, <strong>ALPHA</strong>,
+<strong>alpha</strong>, <strong>ROMAN<n></strong>, or
+<strong>roman<n></strong>, you may enter the optional
+argument, <strong>separator</strong>, to say what kind of separator
+you want after the enumerator. The separator can be anything you
+like. The default for <strong>DIGIT</strong> is a period (dot),
+like this:
<p>
<pre>
1. A list item
</pre>
-The default separator for <strong>ALPHA</strong> is a right
-parenthesis, like this:
+The default separator for <strong>ALPHA</strong>,
+<strong>alpha</strong>, <strong>ROMAN<n></strong> and
+<strong>roman<n></strong> is a right parenthesis, like this:
<p>
<pre>
- a) A list item
+ a) An alpha-ed list item
+ b) A second alpha-ed list item
+
+ or
+
+ i) A roman-ed list item
+ ii) A second roman-ed item
</pre>
-If you want digits with a right-parenthesis separator, you'd do
+If you'd prefer, say, digits with right-parenthesis separators
+instead of the default period, you'd do
<p>
<pre>
.LIST DIGIT )
.ITEM
- A list item
+ A numberd list item
</pre>
which would produce
<p>
<pre>
- 1) A list item
+ 1) A numbered list item
</pre>
-<strong>BULLET</strong>, <strong>DASH</strong> and
+<strong>Please note: BULLET</strong>, <strong>DASH</strong> and
<strong>USER</strong> do not take a separator.
+<br>
+
+<h3><u>The third argument--prefix style</u></h3>
<p>
-<strong>USER</strong> lets you make up your own enumerator. For
-example, if you want a list enumerated with <strong>=></strong>,
+Additionally, you may give a prefix (i.e. a character that comes
+<em>before</em> the enumerator) when your enumerator style for a
+particular list is <strong>DIGIT</strong>, <strong>ALPHA</strong>,
+<strong>alpha</strong>, <strong>ROMAN<n></strong>
+or <strong>roman<n></strong>. In the arguments to
+<strong>LIST</strong>, the prefix comes <em>after</em> the
+separator, which may seem counter-intuitive, so please be careful.
+<p>
+A prefix can be anything you like. Most likely, you'll want some
+kind of open-bracket, such as a left parenthesis. If, for example,
+you want a <strong>DIGIT</strong> list with the numbers enclosed in
+parentheses, you'd enter
<p>
<pre>
- .LIST USER =>
+ .LIST DIGIT ) (
.ITEM
- A list item
+ The first item on the list.
+ .ITEM
+ The second item on the list.
</pre>
-will produce
+which would produce
<p>
<pre>
- => A list item
+ (1) The first item on the list.
+ (2) The second item on the list.
</pre>
-If the argument to <strong>USER</strong> contains spaces, you must
-enclose the argument in double quotes.
+<strong>Please note: BULLET</strong>, <strong>DASH</strong> and
+<strong>USER</strong> do not take a prefix.
+<br>
+
+<a name="LIST_EXIT"></a>
+<h3><u>Exiting lists--.LIST OFF/BACK or .QUIT_LISTS</u></h3>
+<p>
+Any single argument to <strong>LIST</strong> other
+than <strong>BULLET</strong>, <strong>DASH</strong>,
+<strong>DIGIT</strong>, <strong>ALPHA</strong>,
+<strong>alpha</strong>, <strong>ROMAN<n></strong>,
+<strong>roman<n></strong> or <strong>USER</strong> (e.g.
+<strong>LIST</strong> <kbd>OFF</kbd> or <strong>LIST</strong>
+<kbd>BACK</kbd>) takes you out of the current list.
<p>
-Any single argument other than <strong>BULLET</strong>,
-<strong>DASH</strong>, <strong>DIGIT</strong>,
-<strong>ALPHA</strong> or <strong>USER</strong> takes you out of the
-current list. If you are at the first list-level (or -depth),
+If you are at the first list-level (or "list-depth"),
<strong>mom</strong> returns you to the left margin of running text.
Any indents that were in effect prior to setting the list are fully
-restored. If you are in a nested list, <strong>mom</strong> moves
-you back one list-level and restores the enumerator, separator and
-indent appropriate to that level.
-<p>
-Each invocation of <strong>LIST</strong> must be matched by a
-corresponding <strong>LIST OFF</strong> in order to fully exit
-lists. For example,
+restored.
+<p>
+If you are in a nested list, <strong>mom</strong> moves you
+<em>back one list-level</em> (i.e. does not take you out of the
+list structure) and restores the enumerator, separator and indent
+appropriate to that level.
+<p>
+Each invocation of <strong>LIST</strong> should be be matched by
+a corresponding <strong>LIST OFF</strong> in order to fully exit
+lists. For example,
<p>
<pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
@@ -1809,14 +1954,10 @@
sed diam nonumy eirmod tempor invidunt ut labore.
</pre>
-<strong>NOTE:</strong> Every time you invoke <strong>LIST</strong>
-to start a list (as opposed to exiting one), you must supply an
-enumerator (and optionally, a separator) for the list, unless you
-want <strong>mom</strong>'s default enumerator, which is a bullet.
-Within nested lists, <strong>mom</strong> stores the enumerator,
-separator and indent for any list you return <em>backwards</em> to
-(i.e. with <strong>LIST OFF</strong>), but does not store any
-information for lists you move <em>forward</em> to.
+Alternatively, you may use the single-purpose macro,
+<strong>QUIT_LISTS</strong>, to get yourself out of a list
+structure. In the example above, the two <kbd>.LIST OFF</kbd>
+lines could be replaced with a single <kbd>.QUIT_LISTS</kbd>.
<p>
<hr width="33%" align="left">
@@ -1924,11 +2065,11 @@
<a name="RESET_LIST"><h3><u>2. Resetting an initialized list's enumerator --
RESET_LIST</u></h3></a>
<p>
-In nested lists, if your choice of list enumerator for a given level
-of list is either <strong>DIGIT</strong> or <strong>ALPHA</strong>,
-you may sometimes want to reset the list's enumerator back to
-"1" or "a" when you return, within the nest, to
-that list. Consider the following:
+In nested lists, if your choice of list enumerator for a given
+level of list is <strong>DIGIT</strong>, <strong>ALPHA</strong>,
+<strong>alpha</strong>, <strong>ROMAN</strong> or
+<strong>roman</strong>, you may sometimes want to reset the list's
+enumerator when you return to that list. Consider the following:
<p>
<pre>
Things to do religiously each and every day:
@@ -1943,19 +2084,25 @@
c) canned tuna on Sunday
</pre>
-Normally, within a nested list, when you return to an alpha- or
-digit-enumerated list, the enumerator continues incrementing from
-where it left off. That means, in the example above, the normal
-state of affairs for the alpha'ed list under "2. Feed the
-cat" would be c), d) and e). The solution, in such a case, is
-simply to reset the enumerator --before <strong>ITEM</strong>!--
+Normally, within a nested list, when you return to an
+incrementally-enumerated list, the enumerator continues incrementing
+from where it left off. That means, in the example above, the
+normal state of affairs for the alpha'ed list under "2. Feed
+the cat" would be c), d) and e). The solution, in such a case,
+is simply to reset the enumerator --before <strong>ITEM</strong>!--
with the macro, <strong>RESET_LIST</strong>.
<p>
-<strong>RESET_LIST</strong> does exactly what it says -- resets the
-list -- and doesn't take any arguments.
+By default, with no argument, <strong>RESET_LIST</strong> resets the
+enumerator to 1, A, a, I or i depending on the style of enumerator.
+You may, if you wish, pass <strong>RESET_LISTS</strong> a numeric
+argument representing the starting enumerator for the reset (if
+different from "1"), although I can't at present think of a use for
+this feature.
<p>
<a name="PAD_LIST_DIGITS"><h3><u>3. Padding digit enumerators
(PAD_LIST_DIGITS)</a></u></h3></a>
<p>
+<strong><u>Arabic digits</u></strong>
+<p>
When your choice of enumerators is <strong>DIGIT</strong> AND the
number of items in the list exceeds nine (9), you have to make a
design decision: should <strong>mom</strong> leave room for the
@@ -1986,6 +2133,411 @@
Of course, if the number of items in the list is less than ten
(10), there's no need for <strong>PAD_LIST_DIGITS</strong>.
<p>
+<strong><u>Roman numerals</u></strong>
+<p>
+By default, <strong>mom</strong> sets roman numerals in lists flush
+left. The <strong><n></strong> argument appended to
+<strong>ROMAN<n></strong> or <strong>roman<n></strong>
+allows her to calculate how much space to put after each numeral in
+order to ensure that the text of items lines up properly.
+<p>
+If you'd like the roman numerals to line up flush right (i.e. be
+padded "left"), simply invoke <strong>PAD_LIST_DIGITS</strong>
+<kbd>LEFT</kbd> after <strong>LIST</strong> <kbd>ROMAN<n></kbd>
+or <strong>LIST</strong> <kbd>roman<n></kbd> amd before
+<strong>ITEM</strong>.
+<p>
+<hr>
+
+<!---LINE NUMBERING--->
+
+<a name="NUMBER_LINES_INTRO"><h2><u>Line numbering</u></h2></a>
+<ul>
+ <li><a href="#NUMBER_LINES">Macro: NUMBER_LINES</a>
+ <li><a href="#NUMBER_LINES_CONTROL">Control macros</a> (for quotes and
blockquotes)
+</ul>
+
+<p>
+<strong>Mom</strong>'s line-numbering capabilities are not as flexible
+as most of her other document processing macros. The reason is
+that groff's underlying line-numbering
+<a href="definitions.html#TERMS_PRIMITIVEX">primitive</a>,
+<kbd>.nm</kbd>, is, well...primtive. It is not possible, for
+example, to select a particular family or font for use exclusively
+with line numbers. Nor is it possible to set the
+<a href="definitions.html#TERMS_GUTTER">gutter</a>
+using any
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
+other than the
+<a href="definitions.html#TERMS_FIGURESPACE">figure space</a>.
+<p>
+That said, when you turn line-numbering on, <strong>mom</strong>,
+by default
+<br>
+<a name="NUMBER_LINES_DEFAULTS"></a>
+<ul>
+ <li>numbers every line of paragraph text; line-numbering is
+ suspended for all other document processing tags (like
+ docheaders, epigraphs, heads, subheads, etc.) and special
+ pages (covers, endotes, bibliographies, etc.); be aware,
+ though, that if you turn
+ <a href="definitions.html#TERMS_DOCHEADER">docheaders</a>
+ off (with
+ <a href="docprocessing.html#DOCHEADER">DOCHEADER</a>
<strong>OFF</strong>)
+ and create your own docheader, <strong>mom</strong>
+ <em>will</em> line-number your custom docheader
+ <li>doesn't touch your line length; line numbers are hung
+ outside your current left margin (as set with
+ <a href="typesetting.html#L_MARGIN">L_MARGIN</a>,
+ <a href="typesetting.html#PAGE">PAGE</a>
+ or
+ <a href="docprocessing.html#DOC_LEFT_MARGIN">DOC_LEFT_MARGIN</a>),
+ regardless of any indents that may be active
+ <li>separates line numbers from running text by two
+ <a href="definitions.html#TERMS_FIGURESPACE">figure spaces</a>.
+</ul>
+<p>
+Line numbering may be enabled and disabled for
+<a href="#QUOTE">QUOTE</a>
+and/or
+<a href="#BLOCKQUOTE">BLOCKQUOTE</a>
+in one of three styles. See
+<a href="#NUMBER_LINES_CONTROL">Line numbering control macros for quotes and
blockquotes</a>.
+<p>
+The first time you invoke
+<a href="#NUMBER_LINES">NUMBER_LINES</a>
+you must, at a minimum, tell it what line number you want the
+<em>next</em>
+<a href="definitions.html#TERMS_OUTPUTLINE">output line</a>
+to have. Optional arguments allow you to state which lines should
+be numbered (e.g. every five or every ten lines), and the gutter to
+place between line numbers and
+<a href="definitions.html#TERMS_RUNNING">running text</a>.
+<p>
+Subsequently, you can turn line-numbering off, either permanently,
+or resume it later at a place of your choosing. When you
+resume line-numbering, the line numbers pick up where you left off.
+<p>
+
+<!---NUMBER_LINES--->
+
+<hr width="66%" align="left">
+<p>
+<nobr>
+<a name="NUMBER_LINES">
+ <nobr>Macro: <strong>NUMBER_LINES</strong> <start number> [
<which lines to number> [ <gutter> ] ]<wbr>
+ <br>
+ <nobr>Macro: <strong>NUMBER_LINES</strong> <anything> |
RESUME<wbr>
+ <br>
+</a>
+<wbr>
+
+<p>
+<strong>NUMBER_LINES</strong> does what it says: prints line
+numbers, to the left of
+<a href="definitions.html#TERMS_OUTPUTLINE">output lines</a>
+of paragraph text. One of the chief reasons for wanting numbered
+lines is in order to identify footnotes or endnotes by line number
+instead of by a marker in the text. (See
+<a href="#FOOTNOTE_LINENUMBERS">.FOOTNOTE_MARKER_STYLE LINE</a>
+for instructions on line-numbered footnotes, and
+<a href="#ENDNOTE_MARKER_STYLE">.ENDNOTE_MARKER_STYLE</a>
+for instructions on line-numbered endnotes.)
+<p>
+Every time you invoke <strong>NUMBER_LINES</strong>, unless you are
+using the arguments <strong>OFF</strong> (<strong>QUIT</strong>,
+<strong>END</strong>, <strong>X</strong>, etc.) or
+<strong>RESUME</strong> you must, at a minimum, pass it one
+argument, namely the number (digit) you want the <em>next</em>
+<a href="definitions.html#TERMS_OUTPUTLINE">output line</a>
+to have. For example,
+<pre>
+ .NUMBER_LINES 3
+</pre>
+
+will prepend the number, 3, to the next output line.
+<p>
+Normally, of course, you will number lines of text starting at 1.
+All you have to do in that case is ensure that
+<pre>
+ .NUMBER_LINES 1
+</pre>
+
+precedes your first line of input text, which will also be the
+first line of output text.
+<p>
+You can alter <strong>mom</strong>'s default line numbering
+behaviour (see
+<a href="#NUMBER_LINES_DEFAULT">above</a>)
+with the optional arguments <strong><which lines to
+number></strong> and <strong><gutter></strong>.
+<p>
+<strong><which lines to number></strong> instructs
+<strong>NUMBER_LINES</strong> to number only certain lines, e.g.
+every two lines or every five lines. If you want, say, only every
+five lines to have a prepended number, you'd do
+<pre>
+ .NUMBER_LINES 1 5
+</pre>
+
+<strong>GOTCHA!</strong> The argument to <strong><which
+lines to number></strong> only numbers those lines that are
+multiples of the argument. Hence, in the above example, line
+number "1" will <em>not</em> be numbered, since "1" is not a
+multiple of "5".
+<p>
+If you wanted line number "1" to be numbered, you'd have to invoke
+<kbd>.NUMBER_LINES 1 1</kbd> before the first output line, then
+study your <em>output</em> copy and determine where best to insert
+the following in your <em>input</em> copy:
+<pre>
+ .NUMBER_LINES \n(ln 5
+</pre>
+
+(The escape, <kbd>\n(ln</kbd>, ensures that
+<strong>NUMBER_LINES</strong> automatically supplies the correct
+value for the first argument, <strong><start
+number></strong>.)
+<p>
+Following this recipe, line number 1 will be numbered; subsequently,
+only line numbers that are multiples of 5 will be numbered. A
+little experimentation may be required to determine the best place
+for it.
+<p>
+The optional argument, <strong><gutter></strong>, tells
+<strong>mom</strong> how much space to put between the line numbers
+and the running text.
+<p>
+<strong>Note</strong>: when giving a value for
+<strong><gutter></strong>, you cannot skip the
+<strong><which lines to number></strong> argument. Either
+fill in the desired value, or use two double-quotes
+(<strong>""</strong>) to have <strong>mom</strong> use the value
+formerly in effect.
+<p>
+<strong><gutter></strong> does not require (or even accept) a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+The argument you pass to it is the number of
+<a href="definitions.html#TERMS_FIGURESPACE">figure spaces</a>
+you want between line numbers and running text.
+<strong>Mom</strong>'s default gutter is two figure spaces. If
+you'd like a wider gutter, say, four figures spaces, you'd do
+<pre>
+ .NUMBER_LINES 1 1 4
+ |
+ +-- Notice you *must* supply a value
+ for the 2nd argument in order to supply
+ a value for the 3rd.
+</pre>
+
+<p>
+After you've set up line-numbering, <strong>NUMBER_LINES</strong>
+can be used to control line numbering.
+<br>
+<h3><u>Line-numbering control</u></h3>
+<p>
+<strong>NUMBER_LINES OFF</strong> (or <strong>END, QUIT, X,</strong> etc.)
+turns line-numbering off.
+<p>
+Sometimes, you merely want to suspend line-numbering. In that case,
+turn line numbering off with <strong>NUMBER_LINES OFF</strong>.
+Later, when you want it to resume, enter
+<pre>
+ .NUMBER_LINES RESUME
+</pre>
+
+Line numbering will resume exactly where it left off. If this is
+not what you want--say you want to reset the line number to "1"--simply
+invoke <strong>NUMBER_LINES</strong> with whatever arguments
+are needed for the desired result.
+<p>
+<strong>Extra Notes:</strong>
+<br>
+<ol>
+ <li>In document processing, you may invoke <strong>NUMBER_LINES</strong>
+ either before or after <strong>START</strong>.
+ <strong>Mom</strong> doesn't care.
+ <li>If you're collating documents with
+ <a href="rectoverso.html#COLLATE">COLLATE</a>,
+ you should re-invoke, at a minimum, <kbd>.NUMBER_LINES
+ 1</kbd> for each collated document, in order to ensure that
+ each begins with the number "1" prepended to the first line
+ (unless, of course, that is not what you want).
+ <li>Occasionally, you may want to change the current gutter
+ between line numbers and running text without knowing
+ what the next output line number should be. Since
+ <strong>NUMBER_LINES</strong> requires this number
+ as its first argument, in such instances, pass
+ <strong>NUMBER_LINES</strong> as its first argument the
+ escape <kbd>\n(ln</kbd>.
+ <p>
+ For example, if you were numbering every 5 lines with a
+ gutter of 2 (figure spaces) and you needed to change the
+ gutter to 4 (figures spaces),
+ <p>
+ <kbd> .NUMBER_LINES \n(ln 5 4</kbd>
+ <p>
+ would do the trick.
+ <li>If you're using margin notes in a document, be sure to set
+ the gutter for margin notes wide enough to allow room for
+ the line numbers.
+ <li><strong>Mom</strong> (groff, actually), only numbers lines
+ <em>to the left of text</em>. For aesthetic reason,
+ therefore, the use of line numbering when setting a document
+ in columns is discouraged. However, should you wish to
+ number lines when setting in columns, make sure the
+ <a href="definitions.html#TERMS_GUTTER">gutter(s)</a>
+ between columns is wide enough to leave room for the
+ numbers.
+</ol>
+<hr width="33%" align="left">
+
+<a name="NUMBER_LINES_CONTROL"><h3><u>Line numbering control macros for QUOTE
and BLOCKQUOTE</u></h3></a>
+<ol>
+ <li><a href="#NUMBER_QUOTE_LINES">NUMBER_QUOTE_LINES</a>
+ <li><a href="#NUMBER_BLOCKQUOTE_LINES">NUMBER_BLOCKQUOTE_LINES</a>
+ <li><a href="#NUMBER_LINES_QUOTES">Setting up line numbering in quotes
and blockquotes on a case by case basis</a>
+</ol>
+
+<a name="NUMBER_QUOTE_LINES"><h3><u>1. NUMBER_QUOTE_LINES</u></h3></a>
+<p>
+If you'd like <strong>mom</strong> to number lines of output text
+in a
+<a href="#QUOTE">QUOTE</a>
+as part of the same order and sequence as paragraph text, simply
+invoke <strong>NUMBER_QUOTE_LINES</strong> by itself.
+<p>
+There is a catch with numbering quotes, though. Owing to groff's
+restriction of accepting only the figure space as the line number
+gutter's unit of measure, it is not possible for line numbers
+in quotes to hang outside a document's overall left margin and
+be reliably flush with the line numbers of paragraph text.
+Conseqently, line numbers in quotes hang to the left of the quote,
+separated from the quote by the <strong><gutter></strong>
+argument.
+<p>
+If you'd like to change the gutter for quotes line-numbered in
+this way, invoke <strong>NUMBER_QUOTE_LINES</strong> with a digit
+representing the number of
+<a href="definitions.html#TERMS_FIGURESPACE">figure spaces</a>
+you'd like between the line numbers and the quoted text, like this:
+<pre>
+ .NUMBER_QUOTE_LINES 1
+</pre>
+
+With the above, line numbers in quotes (and only quotes) will have
+a gutter of 1 figure space.
+<p>
+If you are using "line numbering style" for footnotes
+(<a href="#FOOTNOTE_MARKER_STYLE">FOOTNOTE_MARKER_STYLE</a>
<strong>LINE</strong>),
+you may not wish to have quotes <em>visibly</em> line-numbered, but
+still want to embed footnotes inside quotes. In order to do that,
+<strong>mom</strong> allows you to say <strong>NUMBER_QUOTE_LINES
+SILENT</strong>.
+<p>
+When you invoke <strong>NUMBER_QUOTE_LINES</strong>
+<kbd>SILENT</kbd>, <strong>mom</strong> continues to increment line
+numbers while quotes are being output, but they won't appear in the
+output copy. (Compare this with <strong>mom</strong>'s default
+behaviour of <em>suspending</em> incrementing of line numbers
+during the output of quotes.) This allows you to embed
+line-numbered footnotes inside quotes and have the line number
+"label" in the footnote come out sensibly.
+<p>
+Once having turned <strong>NUMBER_QUOTE_LINES</strong> on, you
+may disable it with <strong>NUMBER_QUOTE_LINES OFF</strong> (or
+<strong>QUIT</strong>, <strong>END</strong>, <strong>X</strong>,
+etc).
+<p>
+
+<a name="NUMBER_BLOCKQUOTE_LINES"><h3><u>2.
NUMBER_BLOCKQUOTE_LINES</u></h3></a>
+<p>
+If you'd like <strong>mom</strong> to number lines of output text
+in a
+<a href="#QUOTE">BLOCKQUOTE</a>
+as part of the same order and sequence as paragraph text, simply
+invoke <strong>NUMBER_BLOCKQUOTE_LINES</strong> by itself.
+<p>
+There is a catch with numbering blockquotes, though. Owing to
+groff's restriction of accepting only the figure space as the
+line number gutter's unit of measure, it is not possible for line
+numbers in blockquotes to hang outside a document's overall left
+margin and be reliably flush with the line numbers of paragraph
+text. Conseqently, line numbers in blockquotes hang to the
+left of the blockquote, separated from the blockquote by the
+<strong><gutter></strong> argument.
+<p>
+If you'd like to change the gutter for blockquotes line-numbered in
+this way, invoke <strong>NUMBER_BLOCKQUOTE_LINES</strong> with a digit
+representing the number of
+<a href="definitions.html#TERMS_FIGURESPACE">figure spaces</a>
+you'd like between the line numbers and the blockquoted text, like
+this:
+<pre>
+ .NUMBER_BLOCKQUOTE_LINES 1
+</pre>
+
+With the above, line numbers in blockquotes (and only blockquotes)
+will have a gutter of 1 figure space.
+<p>
+If you are using "line numbering style" for footnotes
+(<a href="#FOOTNOTE_MARKER_STYLE">FOOTNOTE_MARKER_STYLE</a>
<strong>LINE</strong>),
+you may not wish to have blockquotes <em>visibly</em> line-numbered,
+but still want to embed footnotes inside blockquotes. In
+order to do that, <strong>mom</strong> allows you to say
+<strong>NUMBER_BLOCKQUOTE_LINES SILENT</strong>.
+<p>
+When you invoke <strong>NUMBER_BLOCKQUOTE_LINES</strong>
+<kbd>SILENT</kbd>, <strong>mom</strong> continues to increment line
+numbers while blockquotes are being output, but they won't appear in
+the output copy. (Compare this with <strong>mom</strong>'s default
+behaviour of <em>suspending</em> incrementing of line numbers during
+the output of blockquotes.) This allows you to embed line-numbered
+footnotes inside blockquotes and have the line number "label" in the
+footnote come out sensibly.
+<p>
+Once having turned <strong>NUMBER_BLOCKQUOTE_LINES</strong> on, you
+may disable it with <strong>NUMBER_BLOCKQUOTE_LINES OFF</strong> (or
+<strong>QUIT</strong>, <strong>END</strong>, <strong>X</strong>,
+etc).
+<p>
+
+<a name="NUMBER_LINES_QUOTES"><h3><u>3. Setting up line numbering in quotes
and blockquotes on a case by case basis</u></h3></a>
+<p>
+Sometimes, you may want quotes or blockquotes to have a different
+line numbering scheme from the one used in the rest of the
+document. Or, you may want line numbering enabled only inside a
+particular quote or blockquote. A common reason for this would be
+if you were using the
+<a href="#QUOTE">QUOTE</a>
+macro to insert lines of programming code into a document. (See
+<a href="#QUOTE_TIP">here</a>
+for suggestions about including programming code snippets in
+documents.)
+<p>
+To enable line numbering within quotes or blockquotes on a case by
+case basis, simply invoke <strong>NUMBER_LINES</strong>, with the
+arguments you need, immediately after entering <strong>QUOTE</strong>
+or <strong>BLOCKQUOTE</strong>. (<strong>NUMBER_QUOTE_LINES</strong>
+and/or <strong>NUMBER_BLOCKQUOTE_LINES</strong> should be turned
+off if you're doing this.) The quote or blockquote will then be
+line-numbered according to your specifications: the starting line
+number of the quote or blockquote will be the one you give as a
+first argument to <strong>NUMBER_LINES</strong>; which lines to
+number will be the value you pass to <strong><which lines to
+number></strong> (defaults to "1"); line numbers will hang
+to the left of the quote or blockquote, separated from the quote or
+blockquote by <strong><gutter></strong> (defaults to "2").
+<p>
+As soon as <strong>QUOTE</strong> or <strong>BLOCKQUOTE</strong> is
+turned off, line numbering ceases, not only with respect to
+subsequent paragraph text (if they are not being line-numbered),
+but also for any subsequent invocation of <strong>QUOTE</strong> or
+<strong>BLOCKQUOTE</strong>. In other words, you must re-enable
+quote or blockquote line-numbering inside every instance of
+<strong>QUOTE</strong> or <strong>BLOCKQUOTE</strong> when
+line-numbering either of them on a case by case basis.
+<p>
<hr>
<!====================================================================>
@@ -1993,6 +2545,9 @@
<a name="FOOTNOTE_INTRO"><h2><u>Footnotes</u></h2></a>
<ul>
<li><a href="#FOOTNOTE_BEHAVIOUR">Footnote behaviour</a>
+ <ul>
+ <li><a href="#FN_AND_PUNCT">Footnote markers and punctuation in
the running text</a>
+ </ul>
<li><a href="#FOOTNOTE">Tag: FOOTNOTE</a>
<li><a href="#FOOTNOTE_CONTROL">FOOTNOTE control macros</a>
</ul>
@@ -2007,19 +2562,63 @@
.FOOTNOTE
<footnote about who the hell is Schelling>
.FOOTNOTE OFF
- were generally the points of discussion presenting the most
+ were generally the points of discussion presenting the most
of beauty to the imaginative Morella.
</pre>
-and be done with it. (Note the obligatory use of the
-<strong>\c</strong>
-<a href="definitions.html#TERMS_INLINES">inline escape</a>.)
-<strong>Mom</strong> takes care of everything:
-putting footnote markers in the body of the document, keeping track
-of how many footnotes are on the page, identifying the footnotes
-themselves appropriately, balancing them properly with the bottom
-margin, deferring footnotes that don't fit on the page... Even if
-you're using
+and be done with it.
+<p>
+(Note the obligatory use of the <strong>\c</strong>
+<a href="definitions.html#TERMS_INLINES">inline escape</a>.
+It is required when your
+<a href="#FOOTNOTE_MARKER_STYLE">FOOTNOTE_MARKER_STYLE</a>
+is either <strong>STAR</strong> [star/dagger footnotes] or
+<strong>NUMBER</strong> [superscript numbers]; it is NOT to be used
+when the <strong>FOOTNOTE_MARKER_STYLE</strong> is
+<strong>LINE</strong>, or when footnote markers have been disabled
+with
+<a href="#FOOTNOTE_MARKERS">.FOOTNOTE_MARKERS</a>
+<strong>OFF</strong>.)
+<p>
+<strong>***Version 1.3 change***</strong>
+<p>
+As of version 1.3, the manner of entering the line
+<em>after</em> <strong>.FOOTNOTE OFF</strong> has changed
+to accommodate users' differing wishes with respect to
+the order of punctuation and footnote markers. The
+correct way to enter the line after <strong>.FOOTNOTE
+OFF</strong>--<strong><em><u>ONLY</u></em></strong> if your
+<a href="#FOOTNOTE_MARKER_STYLE">FOOTNOTE_MARKER_STYLE</a> is
+<strong>STAR</strong> or <strong>NUMBER</strong>--is to input
+it as if it's literally a continuation of the line before
+<strong>.FOOTNOTE</strong>, and therefore begins with either a space
+or a punctuation mark, as in the two following examples.
+<p>
+<pre>
+ Example 1 Example 2
+ --------- ---------
+
+ A line of text,\c A line of text\c
+ .FOOTNOTE .FOOTNOTE
+ A footnote line. A footnote line.
+ .FOOTNOTE OFF .FOOTNOTE OFF
+ broken up with a comma. , broken up with a comma.
+
+ (last line begins with (last line begins with
+ a literal space) the comma and a space)
+</pre>
+
+If your <strong>FOOTNOTE_MARKER_STYLE</strong> is line, none of
+this is a concern.
+<p>
+<strong>***End of version 1.3 change***</strong>
+<p>
+After you invoke <strong>FOOTNOTE</strong>, <strong>mom</strong>
+takes care of everything: putting footnote markers in the body of
+the document, keeping track of how many footnotes are on the page,
+identifying the footnotes themselves appropriately, balancing them
+properly with the bottom margin, deferring footnotes that don't fit
+on the page... Even if you're using
<a href="columns.html#COLUMNS">COLUMNS</a>,
<strong>mom</strong> knows what to do, and Does The Right Thing.
<p>
@@ -2043,6 +2642,7 @@
between too little whitespace and too much, but when push comes to
shove, she'll usually opt for ample over cramped. The last lines of
footnotes are always flush with the document's bottom margin.
+<a name="FOOTNOTE_RULES"></a>
<p>
If <strong>mom</strong> sees that a portion of a footnote cannot
be fit on its page, she carries that portion over to the next
@@ -2084,7 +2684,7 @@
add a blank after the second deferred footnote. If you'd like a
blank line separating both deferred footnotes from any footnotes
proper to the page the deferred ones were moved to, add the space
-manually with by putting a
+manually by putting a
<a href="typesetting.html#SPACE">.SPACE</a>
command at the end of the footnote text, before
<strong>FOOTNOTE OFF</strong> (or <strong>FOOTNOTE X, QUIT,
@@ -2117,12 +2717,53 @@
for a solution.
<p>
+<h3><u><a name="FN_AND_PUNCT">Footnote markers and punctuation in the running
text</a></u></h3>
+
+<p>
+As of version 1.3, the manner of entering the line <em>after</em>
+<strong>.FOOTNOTE OFF</strong> has changed. The correct way to
+enter the line after <strong>.FOOTNOTE OFF</strong> now is to
+input it as if it's literally a continuation of the line before
+<strong>.FOOTNOTE</strong>, and therefore begins with either a space
+or a punctuation mark, as in the two following examples.
+<p>
+<pre>
+ Example 1 Example 2
+ --------- ---------
+
+ A line of text,\c A line of text\c
+ .FOOTNOTE .FOOTNOTE
+ A footnote line. A footnote line.
+ .FOOTNOTE OFF .FOOTNOTE OFF
+ broken up with a comma. , broken up with a comma.
+
+ (last line begins with (last line begins with
+ a literal space) the comma and a space)
+</pre>
+
+Care must be taken, though, if the punctuation mark that begins the
+line after <strong>FOOTNOTE OFF</strong> is a period (dot). You
+<strong><em><u>must</u></em></strong> begin such lines with
+<strong>\&.</strong>, like this:
+<p>
+<pre>
+ end of a sentence\c
+ .FOOTNOTE
+ A footnote line.
+ .FOOTNOTE OFF
+ \&. A new sentence...
+</pre>
+
+If you omit the <strong>\&.</strong>, the line will vanish!
+<p>
+
+
<!---FOOTNOTE--->
<hr width="66%" align="left">
<p>
<a name="FOOTNOTE">
- Macro: <strong>FOOTNOTE</strong> <var><toggle> | INDENT LEFT |
RIGHT | BOTH <indent value></var>
+ <nobr>Tag: <strong>FOOTNOTE</strong> <toggle> | INDENT LEFT |
RIGHT | BOTH <indent value><wbr>
<br>
<em>*See <a href="#FOOTNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!</em>
<br>
@@ -2164,19 +2805,39 @@
that comes immediately before <strong>FOOTNOTE</strong> MUST terminate
with a
<a href="typesetting.html#JOIN">\c</a>
-inline escape. Otherwise, the footnote marker for the word won't be attached
to
-it (i.e. <strong>mom</strong> will insert a word space between the word
-and the marker). See the
+inline escape if your
+<a href="#FOOTNOTE_MARKER_STYLE">FOOTNOTE_MARKER_STYLE</a>
+is either <strong>STAR</strong> or <strong>NUMBER</strong>.
+See the
<a href="#FOOTNOTE_EXAMPLE">footnote example</a>
above.
+<p>
+Additionally, the line <em>after</em> a <strong>FOOTNOTE
+OFF</strong> 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
+<a href="#FN_AND_PUNCT">above</a>.
+<p>
+Do NOT use the <strong>\c</strong> inline escape if your
+<strong>FOOTNOTE_MARKER_STYLE</strong> is <strong>LINE</strong>, or
+if you have disabled footnote markers with
+<a href="#FOOTNOTE_MARKERS">.FOOTNOTE_MARKERS</a>
+<strong>OFF</strong>. As well, the line after
+<strong>FOOTNOTE OFF</strong> should be entered normally.
<p>
<a name="FOOTNOTE_CONTROL"><h3><u>Footnote control macros</u></h3></a>
<ol>
<li><a href="#FOOTNOTE_GENERAL">Family/font/size/colour/lead/quad</a>
<li><a href="#FOOTNOTE_MARKERS">Footnote markers</a> -- on or off
- <li><a href="#FOOTNOTE_MARKER_STYLE">Footnote marker style</a> --
star+dagger or numbered
+ <li><a href="#FOOTNOTE_MARKER_STYLE">Footnote marker style</a> --
star+dagger, numbered or by line number
+ <ul>
+ <li><a
href="#FOOTNOTE_LINENUMBER_BRACKETS">FOOTNOTE_LINENUMBER_BRACKETS</a>
+ <li><a
href="#FOOTNOTE_LINENUMBER_SEPARATOR">FOOTNOTE_LINENUMBER_SEPARATOR</a>
+ <li><a
href="#FOOTNOTES_RUN_ON">FOOTNOTES_RUN_ON</a>--line-numbered footnotes only
+ </ul>
<li><a href="#RESET_FOOTNOTE_NUMBER">Reset footnote number</a> -- set
footnote marker number to 1
+ <li><a href="#FOOTNOTE_SPACE">Inter-footnote spacing</a>
<li><a href="#FOOTNOTE_RULE">Footnote rule</a> -- on or off
<li><a href="#FOOTNOTE_RULE_LENGTH">Footnote rule length</a> -- length
of footnote separator rule
<li><a href="#FOOTNOTE_RULE_ADJ">Adjust vertical position of footnote
separator rule</a>
@@ -2206,6 +2867,10 @@
<strong>.FOOTNOTE_MARKERS</strong> with no argument. Footnote markers
are on by default.
<p>
+If <strong>FOOTNOTE_MARKERS</strong> are disabled, do NOT use the
+<strong>\c</strong> inline escape to terminate the line before
+<strong>.FOOTNOTE</strong>.
+<p>
<a name="FOOTNOTE_MARKER_STYLE"><h3><u>3. Footnote marker style --
FOOTNOTE_MARKER_STYLE</u></h3></a>
<p>
@@ -2223,10 +2888,98 @@
themselves. By default, footnote numbers increase incrementally
(prev. footnote number + 1) throughout the whole document. You can
ask <strong>mom</strong> to start each page's footnote numbers at 1
-with <strong>.RESET_FOOTNOTE_NUMBER</strong> (see below).
+with <strong>.RESET_FOOTNOTE_NUMBER</strong>
+(<a href="#RESET_FOOTNOTE_NUMBER">see below</a>.)
+<a name="FOOTNOTE_LINENUMBERS"><p></a>
+<p>
+<strong>.FOOTNOTE_MARKER_STYLE LINE</strong> 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>
+With <strong>FOOTNOTE_MARKER_STYLE LINE</strong>, <strong>mom</strong>
+will identify footnotes either by single line numbers, or line
+ranges. If what you want is a single line number, you need only
+invoke <strong>.FOOTNOTE</strong>, <em>without terminating the text
+line before it with</em> <strong>\c</strong>, at the appropriate
+place in running text.
+<p>
+If you want a range of line numbers (e.g. [5-11] ),
+insert, directly into the first line of the range you want, the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>,
+<strong>\*[FN-MARK]</strong>. For the terminating line number of
+the range, you need only invoke <strong>.FOOTNOTE</strong>, (again,
+without attaching <strong>\c</strong> to the text line before it).
+<strong>Mom</strong> is smart enough to figure out that where
+<strong>FOOTNOTE</strong> was invoked represents the terminating
+line number. Range-numbered footnotes are always output on the page
+where <strong>FOOTNOTE</strong> was invoked, not the page where
+<strong>\*[FN-MARK]</strong> 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>).
+<a name="FOOTNOTE_LINENUMBER_BRACKETS"></a>
+<p>
+<strong>Mom</strong>, by default, puts footnote line numbers inside
+square brackets. The style of the brackets may be changed with
+the macro, <strong>FOOTNOTE_LINENUMBER_BRACKETS</strong>, which
+takes one of three possible arguments: <strong>PARENS</strong>
+("round" brackets), <strong>SQUARE</strong> (the default) or
+<strong>BRACES</strong> (curly braces). If you prefer a
+shortform, the arguments, <strong>(</strong>, <strong>[</strong> or
+<strong>{</strong> may be used instead.
+<a name="FOOTNOTE_LINENUMBER_SEPARATOR"></a>
+<p>
+If you don't want the numbers enclosed in brackets, you may tell
+<strong>mom</strong> 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 <strong>FOOTNOTE_LINENUMBER_SEPARATOR</strong>,
+which takes, as its single argument, the separator you want. For
+safety and consistency's sake, ALWAYS enclose the argument in
+double-quotes.
+<p>
+The separator can be composed of any legal groff character, or any
+combination of characters. <strong>A word of caution:</strong> when
+using a separator, <strong>mom</strong> doesn't insert a space
+after the separator. Hence, if you want the space (you probably
+do), you must make the space part of the argument you pass to
+<strong>FOOTNOTE_LINENUMBER_SEPARATOR</strong>. For example,
+to get a colon separator with a space after it, you'd do
+<p>
+<pre>
+ .FOOTNOTE_LINENUMBER_SEPARATOR ": "
+</pre>
+
+<a name="FOOTNOTES_RUN_ON"><strong><u>RUN-ON FOOTNOTES</u></strong></a>
+<p>
+Finally, if your footnote marker style is <strong>LINE</strong>, you
+may instruct <strong>mom</strong> 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
+<strong>mom</strong> to run footnotes on is
+<strong>.FOOTNOTES_RUN_ON</strong>. Invoked by itself, it turns
+the feature on. Invoked with any other argument
+(<strong>OFF</strong>, <strong>NO</strong>, 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,
+<strong>mom</strong> will issue a warning if there'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>
+The usual reason for wanting run-on footnotes is that you're
+using them to hold many, short references. (See
+<a href="refer.html#TOP">here</a>
+for instructions on using the <strong>groff</strong> program,
+<strong>refer</strong>, to set up references.)
-<a name="RESET_FOOTNOTE_NUMBER"><h3><u>4. Reset footnote number -- RESET
FOOTNOTE NUMBER</u></h3></a>
+<p>
+
+<a name="RESET_FOOTNOTE_NUMBER"><h3><u>4. Reset footnote number --
RESET_FOOTNOTE_NUMBER</u></h3></a>
<p>
<strong>.RESET_FOOTNOTE_NUMBER</strong>, by itself, resets
footnote numbering so that the next footnote you enter is
@@ -2236,7 +2989,23 @@
<strong>mom</strong> to start every page's footnote numbering at 1.
<p>
-<a name="FOOTNOTE_RULE"><h3><u>5. Footnote rule -- FOOTNOTE_RULE</u></h3></a>
+<a name="FOOTNOTE_SPACE"><h3><u>5. Inter-footnote spacing --
FOOTNOTE_SPACE</u></h3></a>
+<p>
+If you'd like a little extra space between footnotes, you can have
+<strong>mom</strong> put it in for you by invoking
+<strong>.FOOTNOTE_SPACE</strong> with an argument representing the
+amount of extra space you'd like. The argument to
+<strong>FOOTNOTE_SPACE</strong> requires a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+<p>
+In the following example, footnotes will be separated from each
+other by 3
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>.
+<pre>
+ .FOOTNOTE_SPACE 3p
+</pre>
+
+<a name="FOOTNOTE_RULE"><h3><u>6. Footnote rule -- FOOTNOTE_RULE</u></h3></a>
<p>
If you don't want a footnote separator rule, toggle it off with
<strong>.FOOTNOTE_RULE OFF</strong> (or <strong>END,
@@ -2245,12 +3014,11 @@
print the rule.
<p>
-<a name="FOOTNOTE_RULE_LENGTH"><h3><u>6. Footnote rule length --
FOOTNOTE_RULE_LENGTH</u></h3></a>
+<a name="FOOTNOTE_RULE_LENGTH"><h3><u>7. Footnote rule length --
FOOTNOTE_RULE_LENGTH</u></h3></a>
<p>
If you want to change the length of the footnote separator rule,
invoke <strong>.FOOTNOTE_RULE_LENGTH</strong> with a length, like
this,
-<p>
<pre>
.FOOTNOTE_RULE_LENGTH 1i
</pre>
@@ -2263,7 +3031,7 @@
<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLES</a>.
<p>
-<a name="FOOTNOTE_RULE_ADJ"><h3><u>7. Adjust vertical position of footnote
separator rule -- FOOTNOTE_RULE_ADJ</u></h3></a>
+<a name="FOOTNOTE_RULE_ADJ"><h3><u>8. Adjust vertical position of footnote
separator rule -- FOOTNOTE_RULE_ADJ</u></h3></a>
<p>
The footnote separator rule is actually a baseline rule that falls
on the
@@ -2285,180 +3053,111 @@
<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
is required.
<p>
-<strong>Tip:</strong> If your
+<strong>Tip:</strong> If your document
<a href="definitions.html#TERMS_LEADING">leading</a>
is 2
<a href="definitions.html#TERMS_PICASPOINTS">points</a>
or less (e.g your
<a href="definitions.html#TERMS_PS">point size</a>
is 10 and your linespacing is 10, 11, or 12, lowering
-<strong>mom</strong>'s default footnote rule adjustment will almost
-certainly give you nicer looking results than leaving the
-adjustment at the default. Furthermore, you can invoke
-<strong>FOOTNOTE_RULE_ADJ</strong> on any page (or in any column)
-in which footnotes appear, so that the placement of the footnote
-rule can be changed on-the-fly, should you wish to do so.
+<strong>mom</strong>'s default footnote rule adjustment will
+almost certainly give you nicer looking results than leaving
+the adjustment at the default. Furthermore, you can invoke
+<strong>FOOTNOTE_RULE_ADJ</strong> on any page in which footnotes
+appear, or in any column, so that the placement of the footnote rule
+can be changed on-the-fly, should you wish to do so.
<p>
<hr>
<!====================================================================>
-<a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a>
+<a name="ENDNOTE_INTRO"><h2><u>Endnotes</u></h2></a>
<ul>
- <li><a href="#FINIS">Tag: FINIS</a>
- <li><a href="#FINIS_STRING">Changing the FINIS string</a>
+ <li><a href="#ENDNOTE_BEHAVIOUR">Endnote behaviour</a>
+ <ul>
+ <li><a href="#ENDNOTE_SPACING">A Note on Endnote Spacing</a>
+ <li><a href="#ENDNOTE_COLUMNS">Endnotes and columnar
documents</a>
+ </ul>
+ <li><a href="#ENDNOTE">Tag: ENDNOTE</a>
+ <li><a href="#ENDNOTES">Macro: ENDNOTES</a> -- tell
<strong>mom</strong> to output endnotes
+ <li><a href="#ENDNOTE_CONTROL">ENDNOTES control macros</a>
</ul>
<p>
-The use of <strong>FINIS</strong> is optional. If you invoke it
-(at the end of a document before
-<a href="#TOC">TOC</a>
-or
-<a href="#ENDNOTES">ENDNOTES</a>),
-<strong>mom</strong>
-deposits the word END, centred after a blank line, beneath the last
-line of the document. END is enclosed between
-<a href="definitions.html#TERMS_EM">em-dashes</a>.
-<p>
-<strong>Please note</strong> that in versions of
-<strong>mom</strong> prior to 1.1.9, <strong>FINIS</strong> used to
-turn off
-<a href="definitions.html#TERMS_FOOTER">footers</a>
-(if they were on) and page numbering (if page numbers were at the
-bottom of the page). Damned if I can recall why I thought anyone
-would want this behaviour, but it has been removed.
-<p>
-If you're writing in a language other than English, you can
-change what <strong>mom</strong> prints for END with
-the control macro <strong>FINIS_STRING</strong>.
+Embedding endnotes into <strong>mom</strong> documents is accomplished
+the same way as embedding
+<a href="#FOOTNOTE_INTRO">footnotes</a>. The example below is
+identical to the one shown in the
+<a href="#FOOTNOTE_EXAMPLE">introduction to footnotes</a>,
+except that <kbd>.FOOTNOTE</kbd> has been replaced with
+<kbd>.ENDNOTE</kbd>.
<p>
+<a name="ENDNOTE_EXAMPLE"></a>
+<pre>
+ ...the doctrines of Identity as urged by Schelling\c
+ .ENDNOTE
+ <endnote about who the hell is Schelling>
+ .ENDNOTE OFF
+ were generally the points of discussion presenting the most
+ of beauty to the imaginative Morella.
+</pre>
-<!---FINIS--->
+As with footnotes, note the obligatory use of the <strong>\c</strong>
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+when your
+<a href="#ENDNOTE_MARKER_STYLE">ENDNOTE_MARKER_STYLE</a>
+is <strong>NUMBER</strong> (which marks endnotes references in
+<a href="definitions.html#TERMS_RUNNING">running text</a>
+with superscript numbers). When the marker style is
+<strong>LINE</strong>, you must <em>not</em> use the
+<strong>\c</strong> escape.
+<p>
+<strong>***Version 1.3 change***</strong>
+<p>
+As of version 1.3, the manner of entering the line <em>after</em>
+<strong>.ENDNOTE OFF</strong> has changed to accommodate users'
+differing wishes with respect to the order of punctuation and
+endnote markers. The correct way to enter the line after
+<strong>.ENDNOTE OFF</strong>--but <strong><em><u>NOT</u></em></strong>
+if your
+<a href="#ENDNOTE_MARKER_STYLE">ENDNOTE_MARKER_STYLE</a>
+is <strong>LINE</strong>--is to input it as if it's literally
+a continuation of the line before <strong>.ENDNOTE</strong>, and
+therefore begins with either a space or a punctuation mark, as in
+the two following examples.
+<p>
+<a name="EN_PUNCT"></a>
+<pre>
+ Example 1 Example 2
+ --------- ---------
+
+ A line of text,\c A line of text\c
+ .ENDNOTE .ENDNOTE
+ A footnote line. A footnote line.
+ .ENDNOTE OFF .ENDNOTE OFF
+ broken up with a comma. , broken up with a comma.
-<hr width="66%" align="left">
-<p>
-<a name="FINIS">
- Macro: <strong>FINIS</strong>
-</a>
+ (last line begins with (last line begins with
+ a literal space) the comma and a space)
+</pre>
-<p>
-The use of <strong>FINIS</strong> is optional, but if you use
-it, it should be the last macro you invoke in a document (before
-<a href="#ENDNOTES">ENDNOTES</a>
-or
-<a href="#TOC">TOC</a>).
-See
-<a href="#FINIS_INTRO">above</a>
-for a description of how <strong>FINIS</strong> behaves.
-<p>
-<strong>NOTE:</strong> If you don't use <strong>FINIS</strong>,
-and you don't want
-<a href="definitions.html#TERMS_FOOTER">footers</a>
-(if they're on) or a page number at the bottom of the last page of
-a document, you have to turn them off manually, as the last two
-lines of your document file, like this:
-<p>
-<pre>
- .FOOTERS OFF
- .PAGINATE OFF
-</pre>
-
-<a name="FINIS_STRING"><h3><u>Changing the FINIS string</u></h3></a>
-
-<p>
-By default, <strong>FINIS</strong> prints the word
-END between
-<a href="definitions.html#TERMS_EM">em-dashes</a>.
-If you'd like <strong>mom</strong> to print something else
-between the dashes, use the <strong>FINIS_STRING</strong> macro
-(anywhere in the document prior to <strong>FINIS</strong>).
-<p>
-For example, if your document's in French, you'd do
-<p>
-<pre>
- .FINIS_STRING "FIN"
-</pre>
-
-Double-quotes must enclose the macro's argument.
-<p>
-<strong>NOTE:</strong> If you pass <strong>FINIS_STRING</strong>
-a blank string, i.e.
-<p>
-<pre>
- .FINIS_STRING ""
-</pre>
-
-<strong>mom</strong> will still print the em-dashes if you
-invoke <strong>FINIS</strong>. This, in effect, produces a
-short, centred horizontal rule that terminates the document.
-(In
-<a href="docprocessing.html.#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
-it's a short, dashed line composed of four hyphens.)
-
-<a name="FINIS_COLOR"><h3><u>Changing the FINIS colour</u></h3></a>
-<p>
-Invoking <strong>FINIS_COLOR</strong> with a pre-defined (or
-"initalized") color changes the colour of both the FINIS
-string and the em-dashes that surround it. If you use the
-<a href="definitions.html#TERMS_INLINE">inline escape</a>,
-<a href="color.html#COLOR_INLINE">\*[<colorname>]</a>,
-in the argument passed to <strong>FINIS</strong>, only the text
-will be in the new colour; the em-dashes will be in the default
-document colour (usually black).
-
-<p>
-<hr>
-
-<!====================================================================>
-
-<a name="ENDNOTE_INTRO"><h2><u>Endnotes</u></h2></a>
-<ul>
- <li><a href="#ENDNOTE_BEHAVIOUR">Endnote behaviour</a>
- <ul>
- <li><a href="#ENDNOTE_SPACING">A Note on Endnote Spacing</a>
- <li><a href="#ENDNOTE_COLUMNS">Endnotes and columnar
documents</a>
- </ul>
- <li><a href="#ENDNOTE">Tag: ENDNOTE</a>
- <li><a href="#ENDNOTES">Macro: ENDNOTES</a> -- tell
<strong>mom</strong> to output endnotes
- <li><a href="#ENDNOTE_CONTROL">ENDNOTES control macros</a>
-</ul>
-
-<p>
-Embedding endnotes into <strong>mom</strong> documents is accomplished
-the same way as embedding
-<a href="#FOOTNOTE_INTRO">footnotes</a>. The example below is
-identical to the one shown in the
-<a href="#FOOTNOTE_EXAMPLE">introduction to footnotes</a>,
-except that <kbd>.FOOTNOTE</kbd> has been replaced with
-<kbd>.ENDNOTE</kbd>.
-<p>
-<a name="ENDNOTE_EXAMPLE"></a>
-<pre>
- ...the doctrines of Identity as urged by Schelling\c
- .ENDNOTE
- <endnote about who the hell is Schelling>
- .ENDNOTE OFF
- were generally the points of discussion presenting the most
- of beauty to the imaginative Morella.
-</pre>
-
-As with footnotes, note the obligatory use of the <strong>\c</strong>
-<a href="definitions.html#TERMS_INLINES">inline escape</a>.
+<strong>***End version 1.3 change***</strong>
<p>
Endnotes differ from footnotes in two ways (other than the fact that
endnotes come at the end of a document whereas footnotes appear in the
body of the document):
<br>
<ol>
- <li>Endnotes are always numbered incrementally throughout a
- document. In other words, you don't get a choice of marker styles,
- as you do with footnotes.
+ <li>When your <strong>ENDNOTE_MARKER_STYLE</strong> is
+ <strong>NUMBER</strong>, endnotes are always numbered
+ incrementally, starting at "1".
<li>Endnotes MUST be output explicitly; <strong>mom</strong> does
not output them for you. In
<a href="rectoverso.html#COLLATE">collated</a>
documents, this allows you to choose whether you
want the endnotes to appear at the end of each chapter or
- section, or grouped together at the very end of the document.
+ article in a document, or grouped together at the very end
+ of the document.
</ol>
<p>
Within endnotes, you may use the document element tags
@@ -2482,7 +3181,7 @@
<p>
<a name="ENDNOTE_BEHAVIOUR"><h3><u>Endnote behaviour</u></h3></a>
-<p>
+<br>
When you output endnotes (with
<a href="#ENDNOTES">ENDNOTES</a>),
<strong>mom</strong> finishes processing the last page of your document,
@@ -2519,13 +3218,14 @@
<a name="ENDNOTE_SPACING">
<h3><u>A Note on Endnote Spacing</u></h3>
</a>
+<br>
On the endnotes page(s), each new endnote is separated from the
previous endnote by a full line space. This can result in a bottom
margin that hangs, and is the one instance, other than the use of
<a href="#PP_SPACE">PARA_SPACE</a>,
where <strong>mom</strong> allows unequal bottom alignment of pages.
Should you wish to correct this, by adding or subtracting small amounts
-of space between endnotes that appear together on an endnote page, make
+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>
@@ -2539,6 +3239,7 @@
<a name="ENDNOTE_COLUMNS">
<h3><u>Endnotes and columnar documents</u></h3>
</a>
+<br>
Formerly (pre 1.1.6), there was no way to set a document in columns
(see
<a href="docprocessing.html#COLUMNS">COLUMNS</a>)
@@ -2552,7 +3253,7 @@
<p>
<a name="ENDNOTE">
- Macro: <strong>ENDNOTE</strong> <var><toggle></var>
+ <nobr>Macro: <strong>ENDNOTE</strong> <toggle><wbr>
<br>
<em>*See <a href="#ENDNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!!</em>
</a>
@@ -2570,23 +3271,36 @@
tag. Use <strong>PP</strong> only to introduce subsequent paragraphs.
<p>
<a name="ENDNOTE_NOTE"><strong>HYPER-IMPORTANT NOTE:</strong></a>
-The final word on the
+If your
+<a href="#ENDNOTE_MARKER_STYLE">ENDNOTE_MARKER_STYLE</a>
+is <strong>NUMBER</strong> (<strong>mom</strong>'s default), the
+final word on the
<a href="definitions.html#TERMS_INPUTLINE">input line</a>
that comes immediately before <strong>ENDNOTE</strong> MUST terminate
with a
<a href="typesetting.html#JOIN">\c</a>
-inline escape. Otherwise, the endnote number for the word won't be attached to
-it (i.e. <strong>mom</strong> will insert a word space between the word
-and the number). See the
+inline escape. See the
<a href="#ENDNOTE_EXAMPLE">endnote example</a>
above.
<p>
+Additionally, the line <em>after</em>
+<strong>.ENDNOTE OFF</strong> 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 the two
+<a href="#EN_PUNCT">examples</a>,
+above.
+<p>
+If your <strong>ENDNOTE_MARKER_STYLE</strong> is
+<strong>LINE</strong>, do NOT use the <strong>\c</strong> escape,
+and enter the line after <strong>.ENDNOTE OFF</strong>
+normally.
+<p>
<!---ENDNOTES--->
<hr width="66%" align="left">
<p>
-<a name="ENDNOTES">Macro: <strong>ENDNOTES</strong></a>
+<a name="ENDNOTES">Tag: <strong>ENDNOTES</strong></a>
<p>
Unlike footnotes, which <strong>mom</strong> automatically outputs at the
@@ -2635,7 +3349,7 @@
<ol>
<li><a href="#ENDNOTES_GENERAL"><strong>General endnotes-pages style
control</strong></a>
<ul>
- <li><a href="#ENDNOTE_GENERAL">Base family/font/quad
for endnotes-pages</a>
+ <li><a href="#ENDNOTE_STYLE">Base family/font/quad for
endnotes-pages</a>
<li><a href="#ENDNOTE_PT_SIZE">Base point size for the
endnotes-pages</a>
<li><a href="#ENDNOTE_LEAD">Leading of
endnotes-pages</a>
<li><a href="#SINGLESPACE_ENDNOTES">Singlespace
endnotes (for TYPEWRITE only)</a>
@@ -2671,6 +3385,12 @@
</ul>
<li><a href="#ENDNOTES_NUMBERING"><strong>Endnotes-pages endnote
numbering style</strong></a>
<ul>
+ <li><a href="#ENDNOTE_MARKER_STYLE">Endnote marker
style</a>--by numbers in the text, or by line number
+ <ul>
+ <li><a
href="#ENDNOTE_LINENUMBER_GAP">ENDNOTE_LINENUMBER_GAP</a>
+ <li><a
href="#ENDNOTE_LINENUMBER_BRACKETS">ENDNOTE_LINENUMBER_BRACKETS</a>
+ <li><a
href="#ENDNOTE_LINENUMBER_SEPARATOR">ENDNOTE_LINENUMBER_SEPARATOR</a>
+ </ul>
<li><a href="#ENDNOTE_NUMBER_CONTROL">Endnotes-pages
endnote numbering style control</a>
<li><a href="#ENDNOTE_NUMBER_ALIGNMENT">Endnote
numbering alignment</a>
<ul>
@@ -2683,7 +3403,7 @@
<a name="ENDNOTES_GENERAL"><h2><u>1. General endnotes page style
control</u></h2>
-<a name="ENDNOTE_GENERAL"><h3><u>*Endnote family/font/quad</u></h3></a>
+<a name="ENDNOTE_STYLE"><h3><u>*Endnote family/font/quad</u></h3></a>
<p>
See
<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
@@ -2691,14 +3411,16 @@
<pre>
.ENDNOTE_FAMILY default = prevailing document family; default is Times Roman
.ENDNOTE_FONT default = roman
-.ENDNOTE_QUAD default = justified
+.ENDNOTE_QUAD* default = justified
+
+*Note: ENDNOTE_QUAD must be set to either L or J
</pre>
<!---ENDNOTE_PT_SIZE--->
<a name="ENDNOTE_PT_SIZE"><h3><u>*Endnote point size</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_PT_SIZE</strong> <var><base type size of
endnotes></var>
+<nobr>Macro: <strong>ENDNOTE_PT_SIZE</strong> <base type size of
endnotes><wbr>
<p>
Unlike most other control macros that deal with size of document
@@ -2737,7 +3459,7 @@
<a name="ENDNOTE_LEAD"><h3><u>*Endnote lead</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_LEAD</strong> <var><base leading of endnotes> [
ADJUST ] </var>
+<nobr>Macro: <strong>ENDNOTE_LEAD</strong> <base leading of endnotes> [
ADJUST ] <wbr>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a>; points is assumed</em>
@@ -2787,7 +3509,7 @@
<a name="SINGLESPACE_ENDNOTES"><h3><u>*Singlespace endnotes (TYPEWRITE
only)</u></h3></a>
<p>
-Macro: <strong>SINGLESPACE_ENDNOTES</strong> <var><toggle></var>
+<nobr>Macro: <strong>SINGLESPACE_ENDNOTES</strong> <toggle><wbr>
<p>
If your
@@ -2811,7 +3533,7 @@
<a name="ENDNOTE_PARA_INDENT"><h3><u>*Endnote paragraph indenting</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_PARA_INDENT</strong> <var><amount to indent first
line of paragraphs in endnotes></var>
+<nobr>Macro: <strong>ENDNOTE_PARA_INDENT</strong> <amount to indent first
line of paragraphs in endnotes><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -2839,7 +3561,7 @@
<a name="ENDNOTE_PARA_SPACE"><h3><u>*Endnote paragraph spacing</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_PARA_SPACE</strong> <var><toggle></var>
+<nobr>Macro: <strong>ENDNOTE_PARA_SPACE</strong> <toggle><wbr>
<p>
<strong>ENDNOTE_PARA_SPACE</strong> works exactly the same way as
@@ -2859,7 +3581,7 @@
<a name="ENDNOTES_NO_COLUMNS"><h3><u>*Turning off column mode during endnotes
output</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_NO_COLUMNS</strong> <var><toggle></var>
+<nobr>Macro: <strong>ENDNOTES_NO_COLUMNS</strong> <toggle><wbr>
<p>
By default, if your document is
@@ -2881,7 +3603,7 @@
<a name="ENDNOTES_PAGENUM_STYLE"><h3><u>*Endnotes-pages page numbering
style</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_PAGENUM_STYLE</strong> <var>DIGIT | ROMAN | roman |
ALPHA | alpha</var>
+<nobr>Macro: <strong>ENDNOTES_PAGENUM_STYLE</strong> DIGIT | ROMAN | roman |
ALPHA | alpha<wbr>
<p>
Use this macro to set the page numbering style of endnotes pages.
@@ -2898,7 +3620,7 @@
<a name="ENDNOTES_FIRST_PAGENUMBER"><h3><u>*Setting the first page number of
endnotes pages</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_FIRST_PAGENUMBER</strong> <var><page # that appears
on page 1 of endnotes></var>
+<nobr>Macro: <strong>ENDNOTES_FIRST_PAGENUMBER</strong> <page # that
appears on page 1 of endnotes><wbr>
<p>
Use this macro with caution. If all endnotes for several
@@ -2920,7 +3642,7 @@
<a name="ENDNOTES_NO_FIRST_PAGENUM"><h3><u>*Omitting a page number on the
first page of endnotes</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_NO_FIRST_PAGENUM</strong> <var><toggle></var>
+<nobr>Macro: <strong>ENDNOTES_NO_FIRST_PAGENUM</strong> <toggle><wbr>
<p>
This macro is for use only if <strong>FOOTERS</strong> are on. It
@@ -2948,7 +3670,6 @@
To restore normal document pagination after endnotes, invoke
<strong>RESTORE_PAGINATION</strong> (again, with no argument)
immediately after <strong>ENDNOTES</strong>.
-<p>
<a name="ENDNOTES_HEADER_CONTROL"><h2><u>2. Endnotes-page header/footer
control</u></h2></a>
<p>
@@ -2989,7 +3710,7 @@
<a name="ENDNOTES_HDRFTR_CENTER"><h3><u>*Endnotes page(s) header/footer centre
string</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_HEADER_CENTER</strong> <var>toggle</var>
+<nobr>Macro: <strong>ENDNOTES_HEADER_CENTER</strong> toggle<wbr>
<p>
If your
@@ -3005,9 +3726,9 @@
with any argument (<strong>OFF, QUIT, Q, X</strong>...).
<p>
-<a name="ENDNOTES_ALLOWS_HEADERS"><h3><u>*Allow headers on
endnotes_pages</u></h3></a>
+<a name="ENDNOTES_ALLOWS_HEADERS"><h3><u>*Allow headers on
endnotes-pages</u></h3></a>
<p>
-Macro: <strong>ENDNOTES_ALLOWS_HEADERS</strong> <var><none> | ALL</var>
+<nobr>Macro: <strong>ENDNOTES_ALLOWS_HEADERS</strong> <none> | ALL<wbr>
<p>
By default, if <strong>HEADERS</strong> are on, <strong>mom</strong>
@@ -3036,7 +3757,7 @@
<a name="ENDNOTE_STRING"><h3><u>*Endnotes-page first page head (title)
string</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_STRING</strong> <var>"<head to print at the top
of endnotes>"</var>
+<nobr>Macro: <strong>ENDNOTE_STRING</strong> "<head to print at the
top of endnotes>"<wbr>
<p>
By default, <strong>mom</strong> prints the word "ENDNOTES"
@@ -3069,7 +3790,7 @@
<a name="ENDNOTE_STRING_UNDERSCORE"><h3><u>*Endnotes-page head (title)
underscoring</h3></u></a>
<p>
-Macro: <strong>ENDNOTE_STRING_UNDERSCORE</strong> <var>toggle | 2</var>
+<nobr>Macro: <strong>ENDNOTE_STRING_UNDERSCORE</strong> toggle | 2<wbr>
<p>
Invoked by itself, <strong>ENDNOTE_STRING_UNDERSCORE</strong> will
@@ -3088,7 +3809,7 @@
<a name="ENDNOTE_STRING_CAPS"><h3><u>*Endnotes-page head (title) automatic
capitalization</h3></u></a>
<p>
-Macro: <strong>ENDNOTE_STRING_CAPS</strong> <var>toggle</var>
+<nobr>Macro: <strong>ENDNOTE_STRING_CAPS</strong> toggle<wbr>
<p>
Invoked by itself, <strong>ENDNOTE_STRING_CAPS</strong> will
@@ -3112,7 +3833,7 @@
<a name="ENDNOTES_DOC_TITLE"><h2><u>4. Endnote document-identification
title</u></h2>
<a name="ENDNOTE_TITLE"><h3><u>*Endnote document-identification title
string</u></h3></a>
<p>
-Macro: <strong>ENDNOTE_TITLE</strong> <var>"<title to identify a
document in endnotes>"</var>
+<nobr>Macro: <strong>ENDNOTE_TITLE</strong> "<title to identify a
document in endnotes>"<wbr>
<p>
By default, <strong>mom</strong> identifies the document(s) to which
@@ -3150,7 +3871,7 @@
<a name="ENDNOTE_TITLE_UNDERSCORE"><h3><u>*Endnote document-identification
title underscoring</h3></u></a>
<p>
-Macro: <strong>ENDNOTE_TITLE_UNDERSCORE</strong> <var>toggle</var>
+<nobr>Macro: <strong>ENDNOTE_TITLE_UNDERSCORE</strong> toggle<wbr>
<p>
Invoked by itself, <strong>ENDNOTE_TITLE_UNDERSCORE</strong> will
@@ -3167,6 +3888,106 @@
<a name="ENDNOTES_NUMBERING"><h2><u>5. Endnotes-pages endnote numbering
style</u></h2>
+<a name="ENDNOTE_MARKER_STYLE"><h3><u>*Endnote marker style</u></h3></a>
+<p>
+The macro to control how endnotes are referenced is
+<strong>ENDNOTE_MARKER_STYLE</strong>.
+<p>
+By default, <strong>mom</strong> places superscript numbers in
+<a href="definitions.html#RUNNING">running text</a>
+to identify endnotes. However, if you have
+<a href="#NUMBER_LINES">line-numbering</a>
+turned on, you may instruct <strong>mom</strong> not to put
+superscript numbers in the running text, but rather to reference
+endnotes by line number. The command to do this is
+<p>
+<pre>
+ .ENDNOTE_MARKER_STYLE LINE
+</pre>
+
+With <strong>ENDNOTE_MARKER_STYLE LINE</strong>, <strong>mom</strong>
+will identify endnotes either by single line numbers, or line
+ranges. If what you want is a single line number, you need only
+invoke <strong>.ENDNOTE</strong>, <em>without terminating the text
+line before it with</em> <strong>\c</strong>, at the appropriate
+place in running text. (Should you wish to revert to
+<strong>mom</strong>'s default behaviour of placing a superscript
+number in the text to identify an endnote, you can invoke
+<strong>ENDNOTE_MARKER_STYLE</strong> with the argument,
+<strong>NUMBER</strong>. It is not advisable to switch marker
+styles within a single document, for aesthetic reasons, but there
+is nothing to prevent you from doing so.)
+<p>
+If you want a range of line numbers (e.g. [5-11] ),
+insert, directly into the first line of the range you want, the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>,
+<strong>\*[EN-MARK]</strong>. For the terminating line number of
+the range, you need only invoke <strong>.ENDNOTE</strong>, (again,
+without attaching <strong>\c</strong> to the text line before it).
+<strong>Mom</strong> is smart enough to figure out that where
+<strong>ENDNOTE</strong> was invoked represents the terminating
+line number.
+<a name="ENDNOTE_LINENUMBER_GAP"></a>
+<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 12 is two; the string length
+of 12-15 is 5), <strong>mom</strong> cannot "hang" line numbers
+and guarantee that they, and the endnote text, will align in a
+visually pleasing manner. Consequently, <strong>mom</strong> sets
+the entirety of line-numbered endnotes completely flush left,
+<strong>including the line numbers themselves</strong>. 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:
+<p>
+<pre>
+ [1-2] Notwithstanding, Frye later asserts that Christianity
+ is "a ghost with the chains of a foul historical record of
+ cruelty clanking behind it."
+</pre>
+
+The default gap for <strong>PRINTSTYLE TYPESET</strong> and
+<strong>PRINSTYLE TYPEWRITE</strong> is 1.5
+<a href="definitions.html#TERMS_EM">ems</a>.
+You can change the size of the gap with the macro,
+<strong>ENDNOTE_LINENUMBER_GAP</strong>, which takes, as its single
+argument, the size of the gap. The argument requires a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>,
+so, for example, to change the gap to 2
+<a href="definitions.html#TERMS_PICASPOINTS">picas</a>,
+you'd do
+<p>
+<pre>
+ .ENDNOTE_LINENUMBER_GAP 2P
+</pre>
+
+<a name="ENDNOTE_LINENUMBER_BRACKETS"></a>
+By default, <strong>mom</strong> puts endnote line numbers inside
+square brackets. The style of the brackets may be changed with
+the macro, <strong>ENDNOTE_LINENUMBER_BRACKETS</strong>, which
+takes one of three possible arguments: <strong>PARENS</strong>
+("round" brackets), <strong>SQUARE</strong> (the default) or
+<strong>BRACES</strong> (curly braces). If you prefer a
+shortform, the arguments, <strong>(</strong>, <strong>[</strong> or
+<strong>{</strong> may be used instead.
+<a name="ENDNOTE_LINENUMBER_SEPARATOR"></a>
+<p>
+If you don't want the numbers enclosed in brackets, you may tell
+<strong>mom</strong> 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 <strong>ENDNOTE_LINENUMBER_SEPARATOR</strong>,
+which takes, as its single argument, the separator you want.
+(If the argument contains spaces, don't forget to enclose the
+argument in double-quotes.) The separator can be composed of
+any legal groff character, or any combination of characters.
+For example, to get a colon separator after the line number in
+line-numbered endnotes, you'd do
+<p>
+<pre>
+ .ENDNOTE_LINENUMBER_SEPARATOR :
+</pre>
+
<a name="ENDNOTE_NUMBER_CONTROL"><h3><u>*Endnote numbering style
control</u></h3></a>
<p>
See
@@ -3213,7 +4034,7 @@
<p>
<a name="ENDNOTE_NUMBERS_ALIGN_RIGHT">
- Macro: <strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> <var><number of
placeholders></var>
+ <nobr>Macro: <strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> <number of
placeholders><wbr>
</a>
<p>
<strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> takes one (non-optional)
@@ -3236,6 +4057,7 @@
to ensure that the numbers hang and are properly right-aligned.
<p>
+
<hr width="66%" align="left">
<!---ENDNOTE_NUMBERS_ALIGN_LEFT--->
@@ -3265,6 +4087,321 @@
<!====================================================================>
+<a name="MARGIN_NOTES_INTRO"><h2><u>Margin notes</u></h2></a>
+<ul>
+ <li><a href="#MARGIN_NOTES_BEHAVIOUR">Margin notes behaviour
+ <ul>
+ <li><a href="#MARGIN_NOTES_VERTICAL">Adjusting the vertical
position of margin notes</a>
+ </ul>
+ <li><a href="#MN_INIT">Macro: MN_INIT</a> -- initialize margin notes
+ <li><a href="#MN">Tag: MN</a>
+</ul>
+
+<p>
+Margin notes are short annotations that appear in either the left
+or right margin of a document. Sometimes they comment on the text.
+Sometimes they assist in following the "flow" of a document by
+summarizing the subject of a portion of text. Sometimes they're
+comments to yourself in a draft copy.
+<p>
+The margin notes macros and routines in om.tmac
+(<strong>mom</strong>) are "mommified" versions of the margin notes
+macros and routines written by Werner Lemberg and patched by Gaius
+Mulley.
+<p>
+
+<a name="MARGIN_NOTES_BEHAVIOUR"<h3><u>Margin notes behaviour</u></h3>
+<p>
+First things first: before you enter your first margin note, you
+must "initialize" margin notes with
+<a href="#MN_INIT">MN_INIT</a>.
+<strong>MN_INIT</strong> sets up the style parameters for margin
+notes, including things like
+<a href="definitions.html#TERMS_FONT">font</a>,
+<a href="definitions.html#TERMS_FAMILY">family</a>
+and
+<a href="definitions.html#TERMS_LEADING">leading</a>.
+<p>
+After initializing margin notes, you create margin notes with the
+<a href="#MN">MN</a>
+macro. Based on the argument you pass <strong>MN</strong>, your
+margin note will go in either the left or the right margin.
+<p>
+Margin notes are tricky from a typographic standpoint with respect
+to vertical placement. Since the leading of margin notes may
+differ from that of
+<a href="definitions.html#TERMS_RUNNING">running text</a>,
+it's impossible for <strong>mom</strong> to guess whether to align
+the first lines of margin notes with a document
+<a href="definitions.html#TERMS_BASELINE">baseline</a>,
+whether to align the last lines of margin notes with a document
+baseline, or whether to center them, vertically, so that neither
+first nor last line aligns with anything!
+<p>
+Given this difficulty, <strong>mom</strong> always aligns the first
+line of any margin note with a document baseline. If you want a
+different behaviour, you must adjust the position(s) of margin
+notes yourself, on a note by note basis. (See
+<a href="#MARGIN_NOTES_VERTICAL">Adjusting the vertical position of margin
notes</a>.)
+<p>
+Generally speaking, <strong>mom</strong> tries to place margin
+notes at the point where you invoke the tag,
+<a href="#MN">MN</a>.
+However, in the event that a margin note runs deep, she may not
+be able to place a subsequent margin note exactly where you want.
+In such an instance, <strong>mom</strong> will "shift" the margin
+note down on the page, placing it one (margin note)
+linespace beneath the previous margin note (plus whatever vertical
+space is required to get the first line to line up with a baseline
+of running text). A warning will be issued, letting you know this
+has happened, and where.
+<p>
+Sometimes, if a margin note has to be shifted down, there simply
+isn't enough room to start the margin note on the page on which
+<strong>MN</strong> is invoked. In that case, <strong>mom</strong>
+ignores the margin note entirely and issues a warning, letting you
+know what she's done, and where.
+<p>
+In the event that a margin note, sucessfully begun on a page,
+runs past your bottom margin (or the last line before footnotes
+begin), the margin note will "flow" onto the next page. If it is a
+"left" margin note, it will continue in the left margin. If it is a
+"right" margin note, it will continue in the right margin.
+<p>
+If your document is being set in two columns, <strong>mom</strong>
+will sensibly and automatically set all margin notes pertaining
+to the left column in the left margin, and all margin notes
+pertaining to the right column in the right margin, regardless of
+the "direction" argument you give the <strong>MN</strong> tag. If
+you try to use <strong>MN</strong> in documents of more than two
+columns, <strong>mom</strong> will ignore all margin notes, and
+issue warning for each.
+<p>
+<h3><u><a name="MARGIN_NOTES_VERTICAL">Adjusting the vertical position of
margin notes</a></u></h3>
+<p>
+When the
+<a href="definitions.html#TERM_LEADING">leading</a>
+of margin notes differs from the leading used throughout a document,
+you may want to adjust the vertical position of individual margin
+notes. This is most often going to be the case with margin notes
+that end near the bottom of the page, where you want the last line of
+the margin note to line up with the last line of text on the page.
+<p>
+Adjustments to the vertical position of margin notes must be done
+inside the margin note (i.e. after <strong>MN</strong>), at the
+top, before entering text. The commands to use are
+\!<a href="typesetting.html#ALD">.ALD</a>
+(to lower the margin note), and
+\!<a href="typesetting.html#RLD">.RLD</a>
+(to raise it). The <strong>\!</strong> <em>must</em> precede the
+macros, or they won't have any effect.
+
+<p>
+<hr width="66%" align="left">
+
+<!---MN_INIT--->
+
+<p>
+<a name="MN_INIT">
+ <nobr>Macro: <strong>MN_INIT</strong> [ ragged | symmetric ] <
left-width right-width gutter family+font point-size lead colour
hyphenation-flags ><wbr>
+</a>
+<p>
+Before you enter your first margin note, you must initialize
+all the parameters associated with margin notes with
+<strong>MN_INIT</strong>. If you forget to do so,
+<strong>mom</strong> will issue a warning and abort.
+<p>
+The argument list is quite long; an
+explanation of each argument follows. Any argument whose value you
+want to be the default must be entered as "" (i.e. two
+double-quotes with no space between them). Defaults for each
+argument are given in the explanation below.
+<p>
+<strong>[ ragged | symmetric ]</strong>
+<br>
+If the first argument is "ragged", both left and right margin notes
+will be flush left. If the first argument is "symmetric", left
+margin notes will be set flush <em>right</em>, and right margin
+notes will be set flush <em>left</em>. The effect is something
+like this:
+<p>
+<pre>
+ A left This is a meaningless batch A right
+ margin note of text whose sole purpose is margin note
+ with just to demonstrate how the sym- with just
+ a few words metric argument to MN sets left a few words
+ in it. and right margin notes. in it.
+</pre>
+
+
+If the argument is omitted,
+or given as "", both left and right margin notes will be set
+justified. (Justified is usually not a good idea, since the narrow
+measure of margin notes makes pleasing justification a near
+impossibility.)
+<p>
+<strong>left-width</strong>
+<br>
+The width of left margin notes. A
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
+must be appended directly onto the argument. The default is to set
+left margin notes right out to the edge of the page, which is
+almost certainly not what you want, so you should give a value for
+this argument if using left margin notes.
+<p>
+<strong>right-width</strong>
+<br>
+The width of right margin notes. A
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
+must be appended directly onto the argument. The default is to set
+right margin notes right out to the edge of the page, which is
+almost certainly not what you want, so you should give a value for
+this argument if using right margin notes.
+<p>
+<strong>gutter</strong>
+<br>
+The
+<a href="definitions.html#TERMS_GUTTER">gutter</a>
+between margin notes and
+<a href="definitions.html#TERMS_RUNNING">running text</a>.
+A
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
+must be appended directly onto the argument. The gutter applies to
+both left and right margin notes. The default is 1
+<a href="definitions.html#TERMS_EM">em</a>.
+<p>
+<strong>font</strong>
+<br>
+The family+font for margin notes. Yes, that's right: the family
+PLUS font combo. For example, if you want Times Roman Medium,
+the argument must be TR. If you want Palatino Medium Italic, the
+argument must be PI. The default is the same family+font combo used
+for a document's paragraph text.
+<p>
+<strong>lead</strong>
+<br>
+The
+<a href="definitions.html#TERMS_LEADING">leading</a>
+of margin notes. <strong>lead</strong> uses
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>
+as its unit of measure, so don't tack a unit of measure onto the
+end of the argument. The default lead is the same leading as
+is used for paragraph text (i.e. the document's base leading).
+For convenience and clarity, you may also give the word,
+<strong>DOC</strong>, to this argument, which indicates that the
+leading should be the same as the document's base leading.
+<p>
+<strong>colour</strong>
+<br>
+The colour of margin notes. The colour must be pre-initialized
+with
+<a href="color.html#NEWCOLOR">NEWCOLOR</a>
+or
+<a href="color.html#XCOLOR">XCOLOR</a>.
+The default is black.
+<p>
+<strong>hyphenation-flags</strong>
+<br>
+A number telling <strong>groff</strong> how you want margin notes
+hyphenated.
+<p>
+<pre>
+ 1 = hyphenate without restrictions
+ 2 = do not hyphenate the last word on the page
+ 4 = do not hyphenate the last two characters of a word
+ 8 = do not hyphenate the first two characters of a word
+</pre>
+
+The values can be added together, so, for example, if you want
+neither the first two nor the last two characters of words
+hyphenated, the hyphenation-flag would be 12. The default value is
+14 (i.e. 2+4+8).
+
+<p>
+<hr width="66%" align="left">
+
+<!---MN_INIT--->
+
+<p>
+<a name="MN">
+ <nobr>Macro: <strong>MN</strong> LEFT|RIGHT | <anything><wbr>
+</a>
+<p>
+Once you've initialized margin notes with
+<a href="#MN_INIT">MN_INIT</a>,
+you can enter margin notes any time you like with
+<strong>MN</strong>. An argument of <strong>LEFT</strong> will set
+a left margin note. An argument of <strong>RIGHT</strong> will set
+a right margin note.
+<p>
+Any argument, such as <strong>OFF</strong> (or
+<strong>QUIT</strong>, <strong>END</strong>, <strong>X</strong>,
+etc) exits the current margin note.
+
+<p>
+<hr>
+
+<!====================================================================>
+
+<a name="BLANK_PAGE_TITLE"><h2><u>Inserting a blank page into the
document</u></h2></a>
+<p>
+<a name="BLANK_PAGE">
+ <nobr>Macro: <strong>BLANKPAGE</strong> <# of blank pages to
insert><wbr>
+</a>
+
+<p>
+This one does exactly what you'd expect -- inserts a blank page into
+the document. <strong>Mom</strong> silently increments the page
+number of every blank page and keeps track of
+<a href="rectoverso.html#RECTO_VERSO">recto/verso</a>
+stuff, but otherwise, does nothing. It's up to you, the user, to
+figure out what to do with this feature. However, it's worth
+noting that without it, inserting completely blank pages, to use
+a vernacular Québécois phrase, "c'est pas évident"
+(somewhere between "isn't easy", "isn't
+obvious" and "isn't fun").
+<p>
+The argument to <strong>BLANK_PAGE</strong> is the number of blank
+pages to insert. The argument is not optional, hence even if you
+only want one blank page, you have to tell <strong>mom</strong>:
+<p>
+<pre>
+ .BLANKPAGE 1
+</pre>
+
+<a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a>
+<ul>
+ <li><a href="#FINIS">Tag: FINIS</a>
+ <li><a href="#FINIS_STRING">Changing the FINIS string</a>
+</ul>
+
+<p>
+The use of <strong>FINIS</strong> is optional. If you invoke it
+(at the end of a document before
+<a href="#TOC">TOC</a>
+or
+<a href="#ENDNOTES">ENDNOTES</a>),
+<strong>mom</strong>
+deposits the word END, centred after a blank line, beneath the last
+line of the document. END is enclosed between
+<a href="definitions.html#TERMS_EM">em-dashes</a>.
+<p>
+<strong>Please note</strong> that in versions of
+<strong>mom</strong> prior to 1.1.9, <strong>FINIS</strong> used to
+turn off
+<a href="definitions.html#TERMS_FOOTER">footers</a>
+(if they were on) and page numbering (if page numbers were at the
+bottom of the page). Damned if I can recall why I thought anyone
+would want this behaviour, but it has been removed.
+<p>
+If you're writing in a language other than English, you can
+change what <strong>mom</strong> prints for END with
+the control macro <strong>FINIS_STRING</strong>.
+<p>
+<hr>
+
+<!====================================================================>
+
<a name="TOC_INTRO"><h2><u>Table of contents</u></h2></a>
<ul>
<li><a href="#TOC_BEHAVIOUR">TOC behaviour</a>
@@ -3426,7 +4563,7 @@
<a name="TOC_PT_SIZE"><h3><u>*Toc point size</u></h3></a>
<p>
-Macro: <strong>TOC_PT_SIZE</strong> <var><base type size of the
toc></var>
+<nobr>Macro: <strong>TOC_PT_SIZE</strong> <base type size of the
toc><wbr>
<p>
Unlike most other control macros that deal with size of document
@@ -3463,7 +4600,7 @@
<a name="TOC_LEAD"><h3><u>*Toc lead</u></h3></a>
<p>
-Macro: <strong>TOC_LEAD</strong> <var><leading of the toc> [ ADJUST
]</var>
+<nobr>Macro: <strong>TOC_LEAD</strong> <leading of the toc> [ ADJUST
]<wbr>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a>; points is assumed</em>
@@ -3511,7 +4648,6 @@
<strong>ADDITIONAL NOTE:</strong> Tocs are always double-spaced in
<strong>PRINTSTYLE TYPEWRITE</strong>, regardless of whether the
body of the document is single-spaced.
-<p>
<a name="TOC_PAGENUMBERING"><h2><u>2. Toc page numbering</u></h2></a>
<p>
@@ -3538,7 +4674,7 @@
<p>
<a name="PAGINATE_TOC">
- Macro: <strong>PAGINATE_TOC</strong> <var><toggle></var>
+ <nobr>Macro: <strong>PAGINATE_TOC</strong> <toggle><wbr>
</a>
<p>
By default, <strong>mom</strong> paginates the toc. If you'd like
@@ -3561,7 +4697,7 @@
<!---TOC_PAGENUM_STYLE--->
<a name="TOC_PAGENUM_STYLE">
- Macro: <strong>TOC_PAGENUM_STYLE</strong> <var><DIGIT | ROMAN |
roman | ALPHA | alpha></var>
+ <nobr>Macro: <strong>TOC_PAGENUM_STYLE</strong> <DIGIT | ROMAN |
roman | ALPHA | alpha><wbr>
</a>
<p>
By default, <strong>mom</strong> uses roman numerals to number
@@ -3574,7 +4710,6 @@
</pre>
<hr width="33%" align="left">
-<p>
<a name="TOC_HEADER"><h2><u>3. Changing the toc header (title) string and
style</u></h2></a>
<p>
@@ -3734,7 +4869,7 @@
<p>
<a name="TOC_TITLE_ENTRY">
- Macro: <strong>TOC_TITLE_ENTRY</strong> <var><"alternate
wording for a title entry in the toc"></var>
+ <nobr>Macro: <strong>TOC_TITLE_ENTRY</strong> <"alternate
wording for a title entry in the toc"><wbr>
</a>
<p>
In
@@ -3779,7 +4914,7 @@
<p>
<a name="TOC_APPENDS_AUTHOR">
- Macro: <strong>TOC_APPENDS_AUTHOR</strong> <var><none> |
<"name(s) of authors"></var>
+ <nobr>Macro: <strong>TOC_APPENDS_AUTHOR</strong> <none> |
<"name(s) of authors"><wbr>
</a>
<p>
In certain kinds of collated documents, different authors are
@@ -3812,7 +4947,7 @@
<p>
<a name="TOC_PADDING">
- Macro: <strong>TOC_PADDING</strong> <var><# of placeholders to allow
for page number listings></var>
+ <nobr>Macro: <strong>TOC_PADDING</strong> <# of placeholders to
allow for page number listings><wbr>
</a>
<p>
By default, <strong>mom</strong> allows room for 3 digits in the
@@ -3823,37 +4958,81 @@
.TOC_PADDING 2
</pre>
-<hr>
-
-<!====================================================================>
+<!---FINIS--->
-<a name="BLANK_PAGE_TITLE"><h2><u>Inserting a blank page into the
document</u></h2></a>
+<hr width="66%" align="left">
<p>
-<a name="BLANK_PAGE">
- Macro: <strong>BLANKPAGE</strong> <var><# of blank pages to
insert></var>
+<a name="FINIS">
+ Macro: <strong>FINIS</strong>
</a>
<p>
-This one does exactly what you'd expect -- inserts a blank page into
-the document. <strong>Mom</strong> silently increments the page
-number of every blank page and keeps track of
-<a href="rectoverso.html#RECTO_VERSO">recto/verso</a>
-stuff, but otherwise, does nothing. It's up to you, the user, to
-figure out what to do with this feature. However, it's worth
-noting that without it, inserting completely blank pages, to use
-a vernacular Québécois phrase, "c'est pas évident"
-(somewhere between "isn't easy", "isn't
-obvious" and "isn't fun").
+The use of <strong>FINIS</strong> is optional, but if you use
+it, it should be the last macro you invoke in a document (before
+<a href="#ENDNOTES">ENDNOTES</a>
+or
+<a href="#TOC">TOC</a>).
+See
+<a href="#FINIS_INTRO">above</a>
+for a description of how <strong>FINIS</strong> behaves.
<p>
-The argument to <strong>BLANK_PAGE</strong> is the number of blank
-pages to insert. The argument is not optional, hence even if you
-only want one blank page, you have to tell <strong>mom</strong>:
+<strong>NOTE:</strong> If you don't use <strong>FINIS</strong>,
+and you don't want
+<a href="definitions.html#TERMS_FOOTER">footers</a>
+(if they're on) or a page number at the bottom of the last page of
+a document, you have to turn them off manually, as the last two
+lines of your document file, like this:
<p>
<pre>
- .BLANKPAGE 1
+ .FOOTERS OFF
+ .PAGINATE OFF
</pre>
-<hr>
+<a name="FINIS_STRING"><h3><u>Changing the FINIS string</u></h3></a>
+
+<p>
+By default, <strong>FINIS</strong> prints the word
+END between
+<a href="definitions.html#TERMS_EM">em-dashes</a>.
+If you'd like <strong>mom</strong> to print something else
+between the dashes, use the <strong>FINIS_STRING</strong> macro
+(anywhere in the document prior to <strong>FINIS</strong>).
+<p>
+For example, if your document's in French, you'd do
+<p>
+<pre>
+ .FINIS_STRING "FIN"
+</pre>
+
+Double-quotes must enclose the macro's argument.
+<p>
+<strong>NOTE:</strong> If you pass <strong>FINIS_STRING</strong>
+a blank string, i.e.
+<p>
+<pre>
+ .FINIS_STRING ""
+</pre>
+
+<strong>mom</strong> will still print the em-dashes if you
+invoke <strong>FINIS</strong>. This, in effect, produces a
+short, centred horizontal rule that terminates the document.
+(In
+<a href="docprocessing.html.#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+it's a short, dashed line composed of four hyphens.)
+
+<a name="FINIS_COLOR"><h3><u>Changing the FINIS colour</u></h3></a>
+<p>
+Invoking <strong>FINIS_COLOR</strong> with a pre-defined (or
+"initalized") color changes the colour of both the FINIS
+string and the em-dashes that surround it. If you use the
+<a href="definitions.html#TERMS_INLINE">inline escape</a>,
+<a href="color.html#COLOR_INLINE">\*[<colorname>]</a>,
+in the argument passed to <strong>FINIS</strong>, only the text
+will be in the new colour; the em-dashes will be in the default
+document colour (usually black).
+
+<p>
+<hr>
<a href="headfootpage.html#TOP">Next</a>
<a href="docprocessing.html#TOP">Prev</a>
<a href="#TOP">Top</a>
Index: groff/contrib/mom/momdoc/docprocessing.html
diff -u groff/contrib/mom/momdoc/docprocessing.html:1.20
groff/contrib/mom/momdoc/docprocessing.html:1.21
--- groff/contrib/mom/momdoc/docprocessing.html:1.20 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/docprocessing.html Sat May 14 07:07:13 2005
@@ -8,7 +8,7 @@
<!====================================================================>
-<a href="docelement.html#TOP">Next</a>
+<a href="typemacdoc.html#TOP">Next</a>
<a href="color.html#TOP">Prev</a>
<a href="toc.html">Back to Table of Contents</a>
<p>
@@ -199,7 +199,7 @@
</ul>
</ul>
- <li><a href="cover.html#COVER"><strong>CREATING A COVER
PAGE</strong></a>
+ <li><a href="cover.html#TOP"><strong>CREATING A COVER
PAGE</strong></a>
<br>
<li><a href="letters.html#LETTERS"><strong>WRITING
LETTERS</strong></a>
<ul>
@@ -674,7 +674,7 @@
<hr width="66%" align="left">
<p>
<a name="TITLE"></a>
-Macro: <strong>TITLE</strong> <var>"<title>"</var>
+<nobr>Macro: <strong>TITLE</strong> "<title>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -703,7 +703,7 @@
<hr width="66%" align="left">
<p>
<a name="DOCTITLE"></a>
-Macro: <strong>DOCTITLE</strong> <var>"<overall document
title>"</var>
+<nobr>Macro: <strong>DOCTITLE</strong> "<overall document
title>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -750,7 +750,7 @@
<hr width="66%" align="left">
<p>
<a name="SUBTITLE"></a>
-Macro: <strong>SUBTITLE</strong> <var>"<subtitle>"</var>
+<nobr>Macro: <strong>SUBTITLE</strong> "<subtitle>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -766,7 +766,7 @@
<hr width="66%" align="left">
<p>
<a name="AUTHOR"></a>
-Macro: <strong>AUTHOR</strong> <var>"<author string>" [
"<author2 string>" "<author3 string>" ...
]</var>
+<nobr>Macro: <strong>AUTHOR</strong> "<author string>" [
"<author2 string>" "<author3 string>" ... ]<wbr>
<br>
<em>*Multiple arguments must all be enclosed in double-quotes</em>
@@ -798,7 +798,7 @@
<hr width="66%" align="left">
<p>
<a name="CHAPTER"></a>
-Macro: <strong>CHAPTER</strong> <var><chapter number></var>
+<nobr>Macro: <strong>CHAPTER</strong> <chapter number><wbr>
<p>
The chapter number can be in any form you like -- a digit, a roman
@@ -839,7 +839,7 @@
<hr width="66%" align="left">
<p>
<a name="CHAPTER_TITLE"></a>
-Macro: <strong>CHAPTER_TITLE</strong> <var>"<chapter
title>"</var>
+<nobr>Macro: <strong>CHAPTER_TITLE</strong> "<chapter
title>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -885,7 +885,7 @@
<hr width="66%" align="left">
<p>
<a name="DRAFT"></a>
-Macro: <strong>DRAFT</strong> <var><draft #></var>
+<nobr>Macro: <strong>DRAFT</strong> <draft #><wbr>
<p>
<strong>DRAFT</strong> only gets used with
@@ -952,7 +952,7 @@
<hr width="66%" align="left">
<p>
<a name="REVISION"></a>
-Macro: <strong>REVISION</strong> <var><revision #></var>
+<nobr>Macro: <strong>REVISION</strong> <revision #><wbr>
<p>
<strong>REVISION</strong> only gets used with
@@ -1029,7 +1029,7 @@
<hr width="66%" align="left">
<p>
<a name="COPYRIGHT"></a>
-Macro: <strong>COPYRIGHT</strong> <var>"<copyright info>"</var>
+<nobr>Macro: <strong>COPYRIGHT</strong> "<copyright info>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -1050,7 +1050,7 @@
<hr width="66%" align="left">
<p>
<a name="MISC"></a>
-Macro: <strong>MISC</strong> <var>"<argument 1>"
["<argument 2>" "<argument 3>" ...]</var>
+<nobr>Macro: <strong>MISC</strong> "<argument 1>"
["<argument 2>" "<argument 3>" ...]<wbr>
<br>
<em>*Multliple arguments must all be enclosed in double-quotes</em>
@@ -1081,9 +1081,9 @@
<hr width="66%" align="left">
<p>
<a name="COVERTITLE"></a>
-Macro: <strong>COVERTITLE</strong> <var>"<user defined cover page
title>"</var>
+<nobr>Macro: <strong>COVERTITLE</strong> "<user defined cover page
title>"<wbr>
<br>
-Macro: <strong>DOC_COVERTITLE</strong> <var>"<user defined document
cover page title>"</var>
+<nobr>Macro: <strong>DOC_COVERTITLE</strong> "<user defined document
cover page title>"<wbr>
<br>
<em>*Argument must be enclosed in double-quotes</em>
@@ -1137,7 +1137,7 @@
<hr width="66%" align="left">
<p>
<a name="DOCTYPE"></a>
-Macro: <strong>DOCTYPE</strong> <var>DEFAULT | CHAPTER | NAMED
"<name>" | LETTER</var>
+<nobr>Macro: <strong>DOCTYPE</strong> DEFAULT | CHAPTER | NAMED
"<name>" | LETTER<wbr>
<p>
The arguments <strong>DEFAULT, CHAPTER</strong> and
<strong>NAMED</strong> tell <strong>mom</strong> what to put
@@ -1228,7 +1228,7 @@
<hr width="66%" align="left">
<p>
<a name="PRINTSTYLE"></a>
-Macro: <strong>PRINTSTYLE</strong> <var>TYPESET | TYPEWRITE [ SINGLESPACE
]</var>
+<nobr>Macro: <strong>PRINTSTYLE</strong> TYPESET | TYPEWRITE [ SINGLESPACE
]<wbr>
<br>
<em>*Required for document processing.</em>
<br>
@@ -1412,7 +1412,7 @@
<hr width="66%" align="left">
<p>
<a name="COPYSTYLE"></a>
-Macro: <strong>COPYSTYLE</strong> <var>DRAFT | FINAL</var>
+<nobr>Macro: <strong>COPYSTYLE</strong> DRAFT | FINAL<wbr>
<p>
<strong>Mom</strong>'s default <strong>COPYSTYLE</strong> is
@@ -1672,7 +1672,7 @@
<hr width="66%" align="left">
<a name="DOC_LEAD_ADJUST"><h3><u>Adjusting document leading to fill
pages</u></h3></a>
<br>
-Macro: <strong>DOC_LEAD_ADJUST</strong> <var>toggle</var>
+<nobr>Macro: <strong>DOC_LEAD_ADJUST</strong> toggle<wbr>
<br>
<em>*Must come after LS or AUTOLEAD and before START</em>
@@ -1747,7 +1747,7 @@
<hr width="66%" align="left">
<a name="DOCHEADER"><h3><u>Managing the docheader</u></h3></a>
<br>
-Macro: <strong>DOCHEADER</strong> <var><toggle> [ distance to advance
from top of page ]</var>
+<nobr>Macro: <strong>DOCHEADER</strong> <toggle> [ distance to advance
from top of page ]<wbr>
<br>
<em>*Must come before START; distance requires a <a
href="#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -1962,11 +1962,11 @@
of each docheader element separately:
<p>
<ul>
-<li><strong>TITLE_FAMILY</strong> <var><family></var>
-<li><strong>CHAPTER_TITLE_FAMILY</strong> <var><family></var>
-<li><strong>SUBTITLE_FAMILY</strong> <var><family></var>
-<li><strong>AUTHOR_FAMILY</strong> <var><family></var>
-<li><strong>DOCTYPE_FAMILY</strong> <var><family></var> (if
+<li><strong>TITLE_FAMILY</strong> <nobr><family><wbr>
+<li><strong>CHAPTER_TITLE_FAMILY</strong> <nobr><family><wbr>
+<li><strong>SUBTITLE_FAMILY</strong> <nobr><family><wbr>
+<li><strong>AUTHOR_FAMILY</strong> <nobr><family><wbr>
+<li><strong>DOCTYPE_FAMILY</strong> <nobr><family> (if<wbr>
<a href="#DOCTYPE">DOCTYPE</a> is NAMED)
</ul>
<p>
@@ -1982,11 +1982,11 @@
of each docheader element separately:
<p>
<ul>
-<li><strong>TITLE_FONT</strong> <var>R | B | I | BI</var>
-<li><strong>CHAPTER_TITLE_FONT</strong> <var>R | B | I | BI</var>
-<li><strong>SUBTITLE_FONT</strong> <var>R | B | I | BI</var>
-<li><strong>AUTHOR_FONT</strong> <var>R | B | I | BI</var>
-<li><strong>DOCTYPE_FONT</strong> <var>R | B | I | BI</var> (if
+<li><strong>TITLE_FONT</strong> <nobr>R | B | I | BI<wbr>
+<li><strong>CHAPTER_TITLE_FONT</strong> <nobr>R | B | I | BI<wbr>
+<li><strong>SUBTITLE_FONT</strong> <nobr>R | B | I | BI<wbr>
+<li><strong>AUTHOR_FONT</strong> <nobr>R | B | I | BI<wbr>
+<li><strong>DOCTYPE_FONT</strong> <nobr>R | B | I | BI (if<wbr>
<a href="#DOCTYPE">DOCTYPE</a> is NAMED)
</ul>
<p>
@@ -2006,8 +2006,8 @@
<a href="color.html#XCOLOR">XCOLOR</a>.
<p>
<ul>
- <li><strong>TITLE_COLOR</strong> <var><colorname></var>
- <li><strong>CHAPTER_TITLE_COLOR</strong> <var><colorname></var>
+ <li><strong>TITLE_COLOR</strong> <nobr><colorname><wbr>
+ <li><strong>CHAPTER_TITLE_COLOR</strong> <nobr><colorname><wbr>
<ul>
<li><strong>Note: CHAPTER_TITLE_COLOR</strong> is needed
only if you enter both a <strong>CHAPTER</strong>
@@ -2016,11 +2016,11 @@
<strong>TITLE_COLOR</strong> takes care of colorizing
the chapter header.
</ul>
- <li><strong>SUBTITLE_COLOR</strong> <var><colorname></var>
- <li><strong>ATTRIBUTE_COLOR</strong> <var><colorname></var>
+ <li><strong>SUBTITLE_COLOR</strong> <nobr><colorname><wbr>
+ <li><strong>ATTRIBUTE_COLOR</strong> <nobr><colorname><wbr>
(the "by" string that precedes the author[s] name[s])
- <li><strong>AUTHOR_COLOR</strong> <var><colorname></var>
- <li><strong>DOCTYPE_COLOR</strong> <var><colorname></var> (if
+ <li><strong>AUTHOR_COLOR</strong> <nobr><colorname><wbr>
+ <li><strong>DOCTYPE_COLOR</strong> <nobr><colorname> (if<wbr>
<a href="#DOCTYPE">DOCTYPE</a> is NAMED)
</ul>
<p>
@@ -2043,7 +2043,7 @@
If you want to colourize the entire docheader, use the macro
<p>
<ul>
-<li><strong>DOCHEADER_COLOR</strong> <var><color name></var>.
+<li><strong>DOCHEADER_COLOR</strong> <nobr><color name>.<wbr>
</ul>
<a name="CHANGE_SIZE"><h3><u>7. Adjust the size of docheader
elements</u></h3></a>
@@ -2060,19 +2060,19 @@
sizes are allowed.
<p>
<ul>
-<li><strong>TITLE_SIZE</strong> <var><+/-points></var>
+<li><strong>TITLE_SIZE</strong> <nobr><+/-points><wbr>
<br>
default = +3.5 (+4 if docheader title is "Chapter #")
-<li><strong>CHAPTER_TITLE_SIZE</strong> <var><+/-points></var>
+<li><strong>CHAPTER_TITLE_SIZE</strong> <nobr><+/-points><wbr>
<br>
default = +4
-<li><strong>SUBTITLE_SIZE</strong> <var><+/-points></var>
+<li><strong>SUBTITLE_SIZE</strong> <nobr><+/-points><wbr>
<br>
default = +0
-<li><strong>AUTHOR_SIZE</strong> <var><+/-points></var>
+<li><strong>AUTHOR_SIZE</strong> <nobr><+/-points><wbr>
<br>
default = +0
-<li><strong>DOCTYPE_SIZE</strong> <var><+/-points></var> (if
+<li><strong>DOCTYPE_SIZE</strong> <nobr><+/-points> (if<wbr>
<a href="#DOCTYPE">DOCTYPE</a> is NAMED)
<br>
default = +3
@@ -2161,7 +2161,7 @@
<hr width="66%" align="left">
<a name="COLUMNS"><h3><u>COLUMNS</u></h3></a>
<br>
-Macro: <strong>COLUMNS</strong> <var><number of columns> <width of
gutters></var>
+<nobr>Macro: <strong>COLUMNS</strong> <number of columns> <width of
gutters><wbr>
<br>
<em>*Should be the last macro before START
<br>
@@ -2311,7 +2311,7 @@
<hr width="66%" align="left">
<p>
<a name="DOC_LEFT_MARGIN">
- Macro: <strong>DOC_LEFT_MARGIN</strong> <var><left margin></var>
+ <nobr>Macro: <strong>DOC_LEFT_MARGIN</strong> <left margin><wbr>
</a>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -2328,7 +2328,7 @@
<hr width="66%" align="left">
<p>
<a name="DOC_RIGHT_MARGIN">
- Macro: <strong>DOC_RIGHT_MARGIN</strong> <var><right margin></var>
+ <nobr>Macro: <strong>DOC_RIGHT_MARGIN</strong> <right margin><wbr>
</a>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -2336,7 +2336,17 @@
<ul>
<li>the argument is the same as for
<a href="typesetting.html#R_MARGIN">R_MARGIN</a>
- <li>changes all right margins to the new value
+ <li>changes all right margins, including
+ <a href="definitions.html#TERMS_DOCHEADER">docheaders</a>,
+ headers (or footers) and page numbering to the new value;
+ for changing the right margin of
+ <a href="definitions.html#TERMS_RUNNING">running text</a>
+ only, use
+ <a href="typesetting.html#R_MARGIN">R_MARGIN</a>
+ (see
+ <a href="typemacdoc.html#TOP">Using typesetting macros during
+ document processing</a>,
+ entry for <strong>R_MARGIN</strong>)
<li>all mom commands that include a right indent calculate
the indent from the new value
</ul>
@@ -2345,22 +2355,32 @@
<hr width="66%" align="left">
<p>
<a name="DOC_LINE_LENGTH">
- Macro: <strong>DOC_LINE_LENGTH</strong> <var><length></var>
+ <nobr>Macro: <strong>DOC_LINE_LENGTH</strong> <length><wbr>
</a>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
<p>
<ul>
<li>the argument is the same as for
- <a href="typesetting.html#LL">LL</a>
- <li>equivalent to changing the right margin with DOC_RIGHT_MARGIN
+ <a href="typesetting.html#LINELENGTH">LL</a>
+ <li>exactly equivalent to changing the right margin with
+ DOC_RIGHT_MARGIN (see
+ <a href="#DOC_RIGHT_MARGIN">above</a>);
+ for changing the line length of
+ <a href="definitions.html#TERMS_RUNNING">running text</a>
+ only, use
+ <a href="typesetting.html#LINELENGTH">LL</a>
+ (see
+ <a href="typemacdoc.html#TOP">Using typesetting macros during
+ document processing</a>,
+ entry for <strong>LL</strong>)
</ul>
<br>
<hr width="66%" align="left">
<p>
<a name="DOC_FAMILY">
- Macro: <strong>DOC_FAMILY</strong> <var><family></var>
+ <nobr>Macro: <strong>DOC_FAMILY</strong> <family><wbr>
</a>
<p>
<ul>
@@ -2378,7 +2398,7 @@
<hr width="66%" align="left">
<p>
<a name="DOC_PT_SIZE">
- Macro: <strong>DOC_PT_SIZE</strong> <var><point size></var>
+ <nobr>Macro: <strong>DOC_PT_SIZE</strong> <point size><wbr>
</a>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a>; points is assumed</em>
@@ -2399,7 +2419,7 @@
<hr width="66%" align="left">
<p>
<a name="DOC_LEAD">
- Macro: <strong>DOC_LEAD</strong> <var><points> [ ADJUST ]</var>
+ <nobr>Macro: <strong>DOC_LEAD</strong> <points> [ ADJUST ]<wbr>
</a>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a>; points is assumed</em>
@@ -2444,7 +2464,7 @@
<hr width="66%" align="left">
<p>
<a name="DOC_QUAD">
- Macro: <strong>DOC_QUAD</strong> <var>L | R | C | J</var>
+ <nobr>Macro: <strong>DOC_QUAD</strong> L | R | C | J<wbr>
</a>
<p>
<ul>
@@ -2456,7 +2476,7 @@
<br>
<hr>
-<a href="docelement.html#TOP">Next</a>
+<a href="typemacdoc.html#TOP">Next</a>
<a href="color.html#TOP">Prev</a>
<a href="#TOP">Top</a>
<a href="toc.html">Back to Table of Contents</a>
Index: groff/contrib/mom/momdoc/goodies.html
diff -u groff/contrib/mom/momdoc/goodies.html:1.13
groff/contrib/mom/momdoc/goodies.html:1.14
--- groff/contrib/mom/momdoc/goodies.html:1.13 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/goodies.html Sat May 14 07:07:13 2005
@@ -84,7 +84,7 @@
<hr width="66%" align="left">
<a name="ALIAS"><h3><u>Rename macros</u></h3></a>
<br>
-Macro: <strong>ALIAS</strong> <var><new name> <old name></var>
+<nobr>Macro: <strong>ALIAS</strong> <new name> <old name><wbr>
<p>
The <strong>ALIAS</strong> macro may well be your best friend. With it,
@@ -161,7 +161,7 @@
<hr width="66%" align="left">
<a name="SILENT"><h3><u>Hide input lines from output</u></h3></a>
<br>
-Macro: <strong>SILENT</strong> <var>toggle</var>
+<nobr>Macro: <strong>SILENT</strong> toggle<wbr>
<br>
Alias: <strong>COMMENT</strong>
@@ -214,7 +214,7 @@
<hr width="66%" align="left">
<a name="TRAP"><h3><u>Suspend/re-invoke traps</u></h3></a>
<br>
-Macro: <strong>TRAP</strong> <var>toggle</var>
+<nobr>Macro: <strong>TRAP</strong> toggle<wbr>
<p>
Traps are vertical positions on the output page at which you or
@@ -242,11 +242,11 @@
<hr width="66%" align="left">
<a name="SMARTQUOTES"><h3><u>Convert typewriter doublequotes to proper
doublequotes</u></h3></a>
<br>
-Macro: <strong>SMARTQUOTES</strong> <var>[<off>] [ ,, | >> |
<< ]</var>
+<nobr>Macro: <strong>SMARTQUOTES</strong> [<off>] [ ,, | >> |
<< ]<wbr>
<br>
or
<br>
-Macro: <strong>SMARTQUOTES</strong> <var>DA | DE | ES | FR | IT | NL | NO | PT
| SV</var>
+<nobr>Macro: <strong>SMARTQUOTES</strong> DA | DE | ES | FR | IT | NL | NO |
PT | SV<wbr>
<p>
If you invoke <strong>SMARTQUOTES</strong> without an argument,
@@ -371,7 +371,7 @@
<hr width="66%" align="left">
<a name="CAPS"><h3><u>Convert to upper case</u></h3></a>
<br>
-Macro: <strong>CAPS</strong> <var>toggle</var>
+<nobr>Macro: <strong>CAPS</strong> toggle<wbr>
<p>
<strong>CAPS</strong> converts all lower case letters to upper
@@ -398,7 +398,7 @@
<hr width="66%" align="left">
<a name="STRING"><h3><u>User-defined strings</u></h3></a>
<br>
-Macro: <strong>STRING</strong> <var><name> <what you want in the
string></var>
+<nobr>Macro: <strong>STRING</strong> <name> <what you want in the
string><wbr>
<p>
You may find sometimes that you have to type out portions of text
@@ -443,7 +443,7 @@
<hr width="66%" align="left">
<a name="UNDERSCORE"><h3><u>Single underscore</u></h3></a>
<br>
-Macro: <strong>UNDERSCORE</strong> <var>[ <distance below baseline> ]
"<string>"</var>
+<nobr>Macro: <strong>UNDERSCORE</strong> [ <distance below baseline> ]
"<string>"<wbr>
<br>
<em>*Optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -510,7 +510,7 @@
<hr width="66%" align="left">
<a name="UNDERSCORE2"><h3><u>Double underscore</u></h3></a>
<br>
-Macro: <strong>UNDERSCORE2</strong> <var>[ <distance below baseline> [
<distance between rules> ] ] "<string>"</var>
+<nobr>Macro: <strong>UNDERSCORE2</strong> [ <distance below baseline> [
<distance between rules> ] ] "<string>"<wbr>
<br>
<em>*Optional arguments require a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -554,7 +554,7 @@
<hr width="66%" align="left">
<a name="UNDERLINE"><h3><u>Underline text -- Courier font only!</u></h3></a>
<br>
-Macro: <strong>UNDERLINE</strong> <var>toggle</var>
+<nobr>Macro: <strong>UNDERLINE</strong> toggle<wbr>
<p>
If your font is Courier, or you're using the document processing macro
@@ -632,7 +632,7 @@
<hr width="66%" align="left">
<a name="PAD"><h3><u>Insert space into lines</u></h3></a>
<br>
-Macro: <strong>PAD</strong> <var>"<string with pad markers
inserted>" [NOBREAK]</var>
+<nobr>Macro: <strong>PAD</strong> "<string with pad markers
inserted>" [NOBREAK]<wbr>
<p>
With <strong>PAD</strong>, you can insert unspecified amounts of
@@ -756,7 +756,7 @@
<hr width="66%" align="left">
<a name="PAD_MARKER"><h3><u>Change/set the marker used with PAD</u></h3></a>
<br>
-Macro: <strong>PAD_MARKER</strong> <var><character to use as the pad
marker></var>
+<nobr>Macro: <strong>PAD_MARKER</strong> <character to use as the pad
marker><wbr>
<p>
If you need to change <strong>mom</strong>'s default pad marker
@@ -831,7 +831,7 @@
<hr width="66%" align="left">
<a name="LEADER_CHARACTER"><h3><u>Change/set the leader character</u></h3></a>
<br>
-Macro: <strong>LEADER_CHARACTER</strong> <var><character></var>
+<nobr>Macro: <strong>LEADER_CHARACTER</strong> <character><wbr>
<p>
<strong>LEADER_CHARACTER</strong> takes one argument: a single
@@ -853,7 +853,7 @@
<hr width="66%" align="left">
<a name="DROPCAP"><h3><u>Drop caps</u></h3></a>
<br>
-Macro: <strong>DROPCAP</strong> <var><dropcap letter> <number of
lines to drop> [ COND <percentage> | EXT <percentage> ]</var>
+<nobr>Macro: <strong>DROPCAP</strong> <dropcap letter> <number of
lines to drop> [ COND <percentage> | EXT <percentage> ]<wbr>
<p>
The first two arguments to <strong>DROPCAP</strong> are the letter you
Index: groff/contrib/mom/momdoc/headfootpage.html
diff -u groff/contrib/mom/momdoc/headfootpage.html:1.8
groff/contrib/mom/momdoc/headfootpage.html:1.9
--- groff/contrib/mom/momdoc/headfootpage.html:1.8 Fri Jun 4 06:43:08 2004
+++ groff/contrib/mom/momdoc/headfootpage.html Sat May 14 07:07:13 2005
@@ -293,7 +293,7 @@
<hr width="66%" align="left">
<p>
<a name="HEADERS"></a>
-Macro: <strong>HEADERS</strong> <var>toggle</var>
+<nobr>Macro: <strong>HEADERS</strong> toggle<wbr>
<p>
<a href="definitions.html#TERMS_HEADER">Page headers</a>
@@ -332,7 +332,7 @@
<hr width="66%" align="left">
<p>
<a name="FOOTERS"></a>
-Macro: <strong>FOOTERS</strong> <var>toggle</var>
+<nobr>Macro: <strong>FOOTERS</strong> toggle<wbr>
<p>
<a href="definitions.html#TERMS_FOOTER">Page footers</a>
@@ -363,7 +363,7 @@
<hr width="66%" align="left">
<p>
<a name="FOOTER_ON_FIRST_PAGE"></a>
-Macro: <strong>FOOTER_ON_FIRST_PAGE</strong> <var>toggle</var>
+<nobr>Macro: <strong>FOOTER_ON_FIRST_PAGE</strong> toggle<wbr>
<p>
If you invoke
@@ -445,9 +445,9 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_RECTOVERSO"></a>
-Macro: <strong>HEADER_RECTO</strong> <var>LEFT | CENTER | RIGHT
"<header recto string>"</var>
+<nobr>Macro: <strong>HEADER_RECTO</strong> LEFT | CENTER | RIGHT
"<header recto string>"<wbr>
<br>
-Macro: <strong>HEADER_VERSO</strong> <var>LEFT | CENTER | RIGHT
"<header verso string>"</var>
+<nobr>Macro: <strong>HEADER_VERSO</strong> LEFT | CENTER | RIGHT
"<header verso string>"<wbr>
<br>
<p>
@@ -620,15 +620,15 @@
<a name="HDRFTR_STRINGS"><h3><u>Header/footer strings</u></h3></a>
<p>
<a name="HDRFTR_LEFT">
- Macro: <strong>HEADER_LEFT</strong> <var>"<text of header
left>" | #</var>
+ <nobr>Macro: <strong>HEADER_LEFT</strong> "<text of header
left>" | #<wbr>
</a>
<br>
<a name="HDRFTR_CENTER">
- Macro: <strong>HEADER_CENTER</strong> <var>"<text of header
centre>" | #</var>
+ <nobr>Macro: <strong>HEADER_CENTER</strong> "<text of header
centre>" | #<wbr>
</a>
<br>
<a name="HDRFTR_RIGHT">
- Macro: <strong>HEADER_RIGHT</strong> <var>"<text of header
right>" | #</var>
+ <nobr>Macro: <strong>HEADER_RIGHT</strong> "<text of header
right>" | #<wbr>
</a>
<p>
@@ -653,7 +653,7 @@
<a name="HDRFTR_CENTER_PAD"><h3><u>*Padding the header/footer centre
string</u></h3></a>
<p>
-Macro: <strong>HEADER_CENTER_PAD</strong> <var>LEFT | RIGHT <amount of
space by which to pad centre string left or right></var>
+<nobr>Macro: <strong>HEADER_CENTER_PAD</strong> LEFT | RIGHT <amount of
space by which to pad centre string left or right><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
<p>
@@ -862,7 +862,7 @@
<hr width="33%" align="left">
<p>
<a name="HDRFTR_GLOBAL_FAMILY">
- Macro: <strong>HEADER_FAMILY</strong> <var><family></var>
+ <nobr>Macro: <strong>HEADER_FAMILY</strong> <family><wbr>
</a>
<p>
@@ -881,7 +881,7 @@
<hr width="33%" align="left">
<p>
<a name="HDRFTR_GLOBAL_SIZE">
- Macro: <strong>HEADER_SIZE</strong> <var><+|-number of
points></var>
+ <nobr>Macro: <strong>HEADER_SIZE</strong> <+|-number of
points><wbr>
<br>
<em>*Argument is relative to the point size of type in paragraphs</em>
</a>
@@ -950,7 +950,7 @@
<hr width="33%" align="left">
<p>
<a name="HDRFTR_COLOR">
- Macro: <strong>HEADER_COLOR</strong> <var><colorname></var>
+ <nobr>Macro: <strong>HEADER_COLOR</strong> <colorname><wbr>
</a>
<p>
@@ -992,7 +992,7 @@
<hr width="33%" align="left">
<p>
<a name="_FAMILY">
- Macro: <strong>HEADER_<POSITION>_FAMILY</strong>
<var><family></var>
+ <nobr>Macro: <strong>HEADER_<POSITION>_FAMILY</strong>
<family><wbr>
</a>
<p>
Use <strong>HEADER_<POSITION>_FAMILY</strong> to change the
@@ -1009,7 +1009,7 @@
<hr width="33%" align="left">
<p>
<a name="_FONT">
- Macro: <strong>HEADER_<POSITION>_FONT</strong>
<var><font></var>
+ <nobr>Macro: <strong>HEADER_<POSITION>_FONT</strong>
<font><wbr>
</a>
<p>
Use <strong>HEADER_<POSITION>_FONT</strong> to change the
@@ -1026,7 +1026,7 @@
<hr width="33%" align="left">
<p>
<a name="_SIZE">
- Macro: <strong>HEADER_<POSITION>_SIZE</strong> <var><+|-number
of points></var>
+ <nobr>Macro: <strong>HEADER_<POSITION>_SIZE</strong>
<+|-number of points><wbr>
</a>
<p>
Use <strong>HEADER_<POSITION>_SIZE</strong> to change the size of any
@@ -1043,7 +1043,7 @@
<hr width="33%" align="left">
<p>
<a name="_CAPS">
- Macro: <strong>HEADER_<POSITION>_CAPS</strong> <var>toggle</var>
+ <nobr>Macro: <strong>HEADER_<POSITION>_CAPS</strong> toggle<wbr>
</a>
<p>
<strong>HEADER_<POSITION>_CAPS</strong> is a
@@ -1068,7 +1068,7 @@
<hr width="33%" align="left">
<p>
<a name="_COLOR">
- Macro: <strong>HEADER_<POSITION>_COLOR</strong>
<var><colorname></var>
+ <nobr>Macro: <strong>HEADER_<POSITION>_COLOR</strong>
<colorname><wbr>
</a>
<p>
<strong>HEADER_<POSITION>_COLOR</strong> allows you to set a
@@ -1127,7 +1127,7 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_MARGIN"></a>
-Macro: <strong>HEADER_MARGIN</strong> <var><distance to baseline of
header></var>
+<nobr>Macro: <strong>HEADER_MARGIN</strong> <distance to baseline of
header><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -1227,7 +1227,7 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_GAP"></a>
-Macro: <strong>HEADER_GAP</strong> <var><distance from header to start of
running text></var>
+<nobr>Macro: <strong>HEADER_GAP</strong> <distance from header to start of
running text><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -1319,7 +1319,7 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_RULE"></a>
-Macro: <strong>HEADER_RULE</strong> <var>toggle</var>
+<nobr>Macro: <strong>HEADER_RULE</strong> toggle<wbr>
<p>
By default, <strong>mom</strong> prints a header separator rule
@@ -1345,7 +1345,7 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_RULE_GAP"></a>
-Macro: <strong>HEADER_RULE_GAP</strong> <var>distance of rule beneath
header</var>
+<nobr>Macro: <strong>HEADER_RULE_GAP</strong> distance of rule beneath
header<wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -1396,7 +1396,7 @@
<hr width="66%" align="left">
<p>
<a name="HDRFTR_RULE_COLOR"></a>
-Macro: <strong>HEADER_RULE_COLOR</strong> <var><colorname></var>
+<nobr>Macro: <strong>HEADER_RULE_COLOR</strong> <colorname><wbr>
<p>
If you wish to change the colour of the header rule, invoke
@@ -1450,7 +1450,7 @@
<hr width="66%" align="left">
<p>
<a name="PAGINATE"></a>
-Macro: <strong>PAGINATE</strong> <var>toggle</var>
+<nobr>Macro: <strong>PAGINATE</strong> toggle<wbr>
<br>
Alias: <strong>PAGINATION</strong>
@@ -1473,7 +1473,7 @@
<hr width="66%" align="left">
<p>
<a name="PAGENUMBER"></a>
-Macro: <strong>PAGENUMBER</strong> <var><number></var>
+<nobr>Macro: <strong>PAGENUMBER</strong> <number><wbr>
<p>
As is to be expected, pagination of documents begins at page 1.
@@ -1493,7 +1493,7 @@
<hr width="66%" align="left">
<p>
<a name="PAGENUM_STYLE"></a>
-Macro: <strong>PAGENUM_STYLE</strong> <var>DIGIT | ROMAN | roman | ALPHA |
alpha</var>
+<nobr>Macro: <strong>PAGENUM_STYLE</strong> DIGIT | ROMAN | roman | ALPHA |
alpha<wbr>
<p>
<strong>PAGENUM_STYLE</strong> lets you tell
@@ -1513,7 +1513,7 @@
<hr width="66%" align="left">
<p>
<a name="PAGENUM_ON_FIRST_PAGE"></a>
-Macro: <strong>PAGENUM_ON_FIRST_PAGE</strong> <var>toggle</var>
+<nobr>Macro: <strong>PAGENUM_ON_FIRST_PAGE</strong> toggle<wbr>
<p>
This macro applies only if you've enabled
@@ -1592,7 +1592,7 @@
<a name="PAGENUM_POS"><h3><u>2. Page number position</u></h3></a>
<p>
-Macro: <strong>PAGENUM_POS</strong> <var>TOP | BOTTOM LEFT | CENTER
| RIGHT</var>
+<nobr>Macro: <strong>PAGENUM_POS</strong> TOP | BOTTOM LEFT |
CENTER | RIGHT<wbr>
<p>
Use <strong>PAGENUM_POS</strong> to change the default position of
Index: groff/contrib/mom/momdoc/inlines.html
diff -u groff/contrib/mom/momdoc/inlines.html:1.13
groff/contrib/mom/momdoc/inlines.html:1.14
--- groff/contrib/mom/momdoc/inlines.html:1.13 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/inlines.html Sat May 14 07:07:13 2005
@@ -409,7 +409,7 @@
by using the inline escape, <strong>\*[B]</strong>. Simply
attach the escape to the end of any line. Using the example
given in the document entry for <strong>EL</strong>, you'd use
-<strong>\*[B}</strong> like this:
+<strong>\*[B]</strong> like this:
<p>
<pre>
@@ -476,7 +476,7 @@
The above draws a rule the full measure of the 6-pica line length.
<p>
-<strong>\*[$RULE]</strong> should appear on a line by itself. In
+<strong>\*[RULE]</strong> should appear on a line by itself. In
<a href="definitions.html#TERMS_FILLED">fill modes</a>,
(i.e.
<a href="typesetting.html#QUAD">QUAD</a>
@@ -494,7 +494,7 @@
<a href="typesetting.html#LRC">CENTER</a>),
the <strong>.BR</strong> is not required.
<p>
-Please note that <strong>\*[$RULE]</strong> draws the rule to the
+Please note that <strong>\*[RULE]</strong> draws the rule to the
full measure, hence it <em>cannot</em> be used to fill the remainder
of a partial line with a rule in this way:
<p>
Index: groff/contrib/mom/momdoc/intro.html
diff -u groff/contrib/mom/momdoc/intro.html:1.9
groff/contrib/mom/momdoc/intro.html:1.10
--- groff/contrib/mom/momdoc/intro.html:1.9 Mon Sep 13 15:57:39 2004
+++ groff/contrib/mom/momdoc/intro.html Sat May 14 07:07:13 2005
@@ -298,9 +298,9 @@
The concise descriptions of macros in this documentation typically
look like this:
<blockquote>
-Macro: <strong>NAME</strong> <var>arguments</var>
+Macro: <strong>NAME</strong> <nobr>arguments<wbr>
</blockquote>
-<var>arguments</var> lists the macro's arguments using conventions that
+<nobr>arguments<wbr> lists the macro's arguments using conventions that
should be familiar to anyone who has ever read a manpage. Briefly:
<p>
<ol>
@@ -329,14 +329,14 @@
Since these macros toggle things on and off, the argument list
simply reads
<blockquote>
-<var>toggle</var>
+<nobr>toggle<wbr>
</blockquote>
<br>
<hr>
<h3>Example 1: an argument requiring double-quotes</h3>
<blockquote>
-Macro: <strong>TITLE</strong> <var>"<title of document>"</var>
+Macro: <strong>TITLE</strong> <nobr>"<title of document>"<wbr>
</blockquote>
<p>
The required argument to <strong>TITLE</strong> is the title of your
@@ -349,7 +349,7 @@
<h3>Example 2: a macro with required and optional arguments</h3>
<blockquote>
-Macro: <strong>TAB_SET</strong> <var><tab #> <indent>
<length> [ L | R | C | J [ QUAD ] ]</var>
+Macro: <strong>TAB_SET</strong> <nobr><tab #> <indent>
<length> [ L | R | C | J [ QUAD ] ]<wbr>
</blockquote>
<p>
The first required argument is a number that identifies the tab (say,
@@ -377,7 +377,7 @@
<a name="TOGGLE_EXAMPLE"></a>
<h3>Example 3: a sample toggle macro:</h3>
<blockquote>
-Macro: <strong>QUOTE</strong> <var>toggle</var>
+Macro: <strong>QUOTE</strong> <nobr>toggle<wbr>
</blockquote>
<p>
<strong>QUOTE</strong> begins a section of quoted text in a document
Index: groff/contrib/mom/momdoc/letters.html
diff -u groff/contrib/mom/momdoc/letters.html:1.6
groff/contrib/mom/momdoc/letters.html:1.7
--- groff/contrib/mom/momdoc/letters.html:1.6 Mon Aug 9 09:07:48 2004
+++ groff/contrib/mom/momdoc/letters.html Sat May 14 07:07:13 2005
@@ -8,8 +8,8 @@
<!====================================================================>
-<a href="typemacdoc.html#TOP">Next</a>
-<a href="cover.html#TOP">Prev</a>
+<a href="macrolist.html#TOP">Next</a>
+<a href="refer.html#TOP">Prev</a>
<a href="toc.html">Back to Table of Contents</a>
<p>
@@ -455,8 +455,8 @@
<p>
<hr>
-<a href="typemacdoc.html#TOP">Next</a>
-<a href="cover.html#TOP">Prev</a>
+<a href="macrolist.html#TOP">Next</a>
+<a href="refer.html#TOP">Prev</a>
<a href="#TOP">Top</a>
<a href="toc.html">Back to Table of Contents</a>
</body>
Index: groff/contrib/mom/momdoc/macrolist.html
diff -u groff/contrib/mom/momdoc/macrolist.html:1.3
groff/contrib/mom/momdoc/macrolist.html:1.4
--- groff/contrib/mom/momdoc/macrolist.html:1.3 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/macrolist.html Sat May 14 07:07:13 2005
@@ -114,6 +114,26 @@
</tr>
<tr>
<td> </td>
+ <td><a href="#18">Lists</a></td>
+</tr>
+<tr>
+ <td> </td>
+ <td><a href="#51">Margin notes</a></td>
+</tr>
+<tr>
+ <td> </td>
+ <td><a href="#52">Line numbering</a></td>
+</tr>
+<tr>
+ <td> </td>
+ <td><a href="#54">References</a></td>
+</tr>
+<tr>
+ <td> </td>
+ <td><a href="#55">Bibliographies</a></td>
+</tr>
+<tr>
+ <td> </td>
<td><a href="#41">Table of contents</a></td>
</tr>
<tr>
@@ -1099,9 +1119,14 @@
</tr>
<tr>
<td> </td>
- <td><a href="docelement.html#QUOTE_GENERAL">QUOTE_COLOR</a></td>
+ <td><a href="docelement.html#QUOTE_GENERAL">QUOTE_AUTOLEAD</a></td>
<td><a
href="docprocessing.html#UNDERLINE_QUOTES">UNDERLINE_QUOTES</a></td>
</tr>
+<tr>
+ <td> </td>
+ <td><a href="docelement.html#QUOTE_GENERAL">QUOTE_COLOR</a></td>
+ <td> </td>
+</tr>
</table>
<p align="center">
*Note that the use of QUOTE_INDENT sets the indent for both QUOTE
@@ -1135,9 +1160,13 @@
</tr>
<tr>
<td> </td>
- <td><a
href="docelement.html#BLOCKQUOTE_GENERAL">BLOCKQUOTE_COLOR</a></td>
+ <td><a
href="docelement.html#BLOCKQUOTE_GENERAL">BLOCKQUOTE_AUTOLEAD</a></td>
<td> </td>
</tr>
+<tr>
+ <td> </td>
+ <td><a
href="docelement.html#BLOCKQUOTE_GENERAL">BLOCKQUOTE_COLOR</a></td>
+ <td> </td>
</tr>
</table>
<p align="center">
@@ -1146,7 +1175,7 @@
<a name="37"><h3 align="center">Author linebreaks</a>
<br>
-(also called "scene breaks")
+(also called "scene" or "section" breaks)
</h3>
<table align="center" valign="center" border=1 cellpadding="10">
@@ -1210,6 +1239,11 @@
<td> </td>
<td><a
href="docelement.html#FOOTNOTE_RULE_LENGTH">FOOTNOTE_RULE_LENGTH</a></td>
</tr>
+<tr>
+ <td> </td>
+ <td> </td>
+ <td><a href="docelement.html#FOOTNOTES_RUN_ON">FOOTNOTES_RUN_ON</a></td>
+</tr>
</table>
<p align="center">
*Indenting of footnotes is handled by arguments passed to FOOTNOTE.
@@ -1337,6 +1371,82 @@
<br>
**Applies to PRINTSTYLE TYPEWRITE only
+<a name="51"><h3 align="center">Margin notes</h3></a>
+
+<table align="center" valign="center" border=1 cellpadding="10">
+<tr>
+ <th>Initialize</th>
+ <th>Start</th>
+</tr>
+<tr>
+ <td align="center"><a href="docelement.html#MN_INIT">MN_INIT</a></td>
+ <td align="center"><a href="docelement.html#MN">MN</a></td>
+</tr>
+</table>
+
+<a name="52"><h3 align="center">Line numbering</h3></a>
+
+<table align="center" valign="center" border=1 cellpadding="10">
+<tr>
+ <th>Text</th>
+ <th>Quotes</th>
+ <th>Blockquotes</th>
+</tr>
+<tr>
+ <td align="center"><a
href="docelement.html#NUMBER_LINES">NUMBER_LINES</a></td>
+ <td align="center"><a
href="docelement.html#NUMBER_QUOTE_LINES">NUMBER_QUOTE_LINES</a></td>
+ <td align="center"><a
href="docelement.html#NUMBER_BLOCKQUOTE_LINES">NUMBER_BLOCKQUOTE_LINES</a></td>
+</tr>
+</table>
+
+<a name="54"><h3 align="center">References</h3></a>
+
+<table align="center" valign="center" border=1 cellpadding="10">
+<tr>
+ <th>Begin/end refs</th>
+ <th>Footnote refs</th>
+ <th>Endnote refs</th>
+ <th>Embedded refs</th>
+</tr>
+<tr>
+ <td align="center"><a href="refer.html#REF">REF</a></td>
+ <td align="center"><a
href="refer.html#FOOTNOTE_REFS">FOOTNOTE_REFS</a></td>
+ <td align="center"><a
href="refer.html#ENDNOTE_REFS">ENDNOTE_REFS</a></td>
+ <td align="center"><a href="refer.html#BRACKET_REFS">REF( /
REF)</a></td>
+</tr>
+<tr>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"><a href="refer.html#BRACKET_REFS">REF( /
REF)</a></td>
+</tr>
+<tr>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"><a href="refer.html#BRACKET_REFS">REF[ /
REF]</a></td>
+</tr>
+<tr>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"> </td>
+ <td align="center"><a href="refer.html#BRACKET_REFS">REF{ /
REF}</a></td>
+</tr>
+</table>
+
+<a name="55"><h3 align="center">Bibliographies</h3></a>
+
+<table align="center" valign="center" border=1 cellpadding="10">
+<tr>
+ <th>Start bibliography page</th>
+ <th>Bibliography type</th>
+</tr>
+<tr>
+ <td align="center"><a
href="refer.html#BIBLIOGRAPHY">BIBLIOGRAPHY</a></td>
+ <td align="center"><a
href="refer.html#BIBLIOGRAPHY_TYPE">BIBLIOGRAPHY_TYPE</a></td>
+</tr>
+</table>
+
<a name="41"><h3 align="center">Table of contents</h3></a>
<table align="center" valign="center" border=1 cellpadding="10">
@@ -1661,8 +1771,10 @@
<table align="center" valign="center" border=1 cellpadding="10">
<tr>
<th>Output a blank page</th>
- <th>Collate multiple documents</th>
- <th>Get leading back on track</th>
+ <th>Collate multiple
+ <br>documents</th>
+ <th>Get leading back
+ <br>on track</th>
</tr>
<tr align="center">
<td><a href="docelement.html#BLANK_PAGE">BLANKPAGE</a></td>
Index: groff/contrib/mom/momdoc/reserved.html
diff -u groff/contrib/mom/momdoc/reserved.html:1.18
groff/contrib/mom/momdoc/reserved.html:1.19
--- groff/contrib/mom/momdoc/reserved.html:1.18 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/reserved.html Sat May 14 07:07:13 2005
@@ -272,6 +272,8 @@
#REMOVE Used in LIST OFF cleanup
#RESTORE_LEAD Lead value in effect prior to AUTOLEAD
#RESTORE_LINE_LENGTH Restores actual line length in RULE
+#RESTORE_LN_NUMBER Start linenumbering again with stored
+ #NEXT_LN? (toggle)
#RESTORE_PT_SIZE Stores current point size (in units) prior
to underscore
#R_INDENT Value of right indent
@@ -491,42 +493,65 @@
Document style
--------------
-COPYSTYLE Output style (DRAFT or FINAL)
-DEFAULTS In START, sets defaults
-DOCTYPE Kind of doc (DEFAULT, CHAPTER, NAMED, LETTER)
-PAGENUMBER Page number that appears on 1st page of doc
-PAPER Paper size (LETTER, LEGAL, A4)
-PRINTSTYLE Print style (TYPEWRITE or TYPESET)
-
-Document tags
--------------
-ADD_SPACE Special macro to add space to the top of a pages after
- page 1; must be preceded by NEWPAGE
-BLOCKQUOTE Block-indented, quoted text
-COL_BREAK Breaks and spreads line before invocation; moves to
- next column on page or 1st col of next page. An alias
- of COL_NEXT.
-COL_NEXT Moves to next column on page or 1st col of next page
-ENDNOTE Endnote
-ENDNOTES Output endnotes
-EPIGRAPH Epigraph before 1st para
-FINIS Prints --END--
-FOOTNOTE Collects footnotes in text for printing at bottom of page
-HEAD Section title (main heads)
-ITEM Begin a list item
-LINEBREAK Break between narrative sections
-LIST Initialize a list
-PAD_LIST_DIGITS Leave space for two-numeral digit enumerators in a list
-PARAHEAD Paragraph head
-PP Paragraph
-QUOTE Poetic or line for line quotes
-RESET_LIST Reset digit or alpha list enumerator
-SHIFT_LIST Move a list over to the right
-START Prints info collected with doc info macros
-SUBHEAD Subheads
+COPYSTYLE Output style (DRAFT or FINAL)
+DEFAULTS In START, sets defaults
+DOCTYPE Kind of doc (DEFAULT, CHAPTER, NAMED, LETTER)
+PAGENUMBER Page number that appears on 1st page of doc
+PAPER Paper size (LETTER, LEGAL, A4)
+PRINTSTYLE Print style (TYPEWRITE or TYPESET)
+NUMBER_LINES Number output lines in the left margin
+
+Document tags and macros
+------------------------
+ADD_SPACE Special macro to add space to the top of a pages after
+ page 1; must be preceded by NEWPAGE
+BIBLIOGRAPHY Begin a bibliography page
+BIBLIOGRAPHY_TYPE LIST or PLAIN
+BLOCKQUOTE Block-indented, quoted text
+COL_BREAK Breaks and spreads line before invocation; moves to
+ next column on page or 1st col of next page. An alias
+ of COL_NEXT.
+COL_NEXT Moves to next column on page or 1st col of next page
+ENDNOTE Endnote
+ENDNOTE_REFS Send REFs to endnotes
+ENDNOTES Output endnotes
+EPIGRAPH Epigraph before 1st para
+FINIS Prints --END--
+FOOTNOTE Collects footnotes in text for printing at bottom of
page
+FOOTNOTE_REFS Send REFs to footnotes
+HEAD Section title (main heads)
+HYPHENATE_REFS Turn on/off hyphenation of REF references
+ITEM Begin a list item
+LINEBREAK Break between narrative sections
+LIST Initialize a list
+MN Margin note
+MN_INIT Initialize parameters for margin notes
+NUMBER_LINES Number text lines
+NUMBER_BLOCKQUOTE_LINES Number blockquote lines
+NUMBER_QUOTE_LINES Number quote lines
+PAD_LIST_DIGITS Leave space for two-numeral digit enumerators
+ in a list
+PARAHEAD Paragraph head
+PP Paragraph
+QUOTE Poetic or line for line quotes
+REF Wrapper around FOOTNOTE or ENDNOTE, depending
+ on FOOTNOTE_REFS or ENDNOTE_REFS
+REF( Begin embedded reference, parens
+REF) End embedded reference, parens
+REF[ Begin embedded reference, square brackets
+REF] End embedded reference, square brackets
+REF{ Begin embedded reference, braces
+REF} End embedded reference, braces
+REF_INDENT Amount of 2nd line indent of references for
+ footnote, endnote or bibliography refs
+RESET_LIST Reset digit or alpha list enumerator
+SHIFT_LIST Move a list over to the right
+START Sets doc defaults and prints info collected
+ with doc info macros
+SUBHEAD Subheads
Headers/footers
---------------
+---------------
BREAK_QUOTE Manually break a footnoted quote that crosses
a page/column
DO_FOOTER Prints footer (after footnote processing, if any)
@@ -580,34 +605,6 @@
doc cover material
DOC_COVER_LEAD Lead in/decrease for doc cover pages
-***Endnotes***
-
-ENDNOTE_LEAD Leading for endnotes page
-ENDNOTE_PARA_INDENT First line indent of paras in multi-para
- endnotes
-ENDNOTE_PARA_SPACE Whether to space paras in multi-para endnotes
-ENDNOTE_PT_SIZE Base point size for endnotes page
-ENDNOTE_STRING Endnotes page head
-ENDNOTE_STRING_CAPS Capitalize the endnotes string
-ENDNOTE_STRING_UNDERSCORE Underscoring of endnotes page head
-ENDNOTE_TITLE Endnotes identifying title
-ENDNOTE_TITLE_UNDERSCORE Underscoring of endnotes identifying title
-ENDNOTE_NUMBERS_ALIGN_RIGHT Hang endnote numbers and align right
-ENDNOTE_NUMBERS_ALIGN_LEFT Don't hang endnote numbers and align left
-ENDNOTES_ALLOWS_HEADERS Page headers on endnotes pages? (toggle)
-ENDNOTES_FIRST_PAGENUMBER Page number to appear on page 1 of endnotes
- pages
-ENDNOTES_HDRFTR_CENTER Print header/footer centre string on endnotes
- pages?
-ENDNOTES_HEADER_CENTER Print header centre string on endnotes pages?
-ENDNOTES_FOOTER_CENTER Print footer centre string on endnotes pages?
-ENDNOTES_NO_COLUMNS Turn columnar mode off for endnotes pages
-ENDNOTES_NO_FIRST_PAGENUM Don't print a pagenumber on page 1 of
- endnotes.
-ENDNOTES_PAGENUM_STYLE Set numbering style for endnotes pages page
- numbers
-SINGLESPACE_ENDNOTES Single space TYPEWRITE endnotes
-
***Epigraphs and finis***
EPIGRAPH_AUTOLEAD Autolead value for epigraphs
@@ -617,16 +614,75 @@
***Footnotes***
-FOOTNOTE_AUTOLEAD Autolead to use in footnotes
-FOOTNOTE_MARKERS Turns footnote markers on or off
-FOOTNOTE_MARKER_STYLE STAR or NUMBER; default=STAR
-FOOTNOTE_RULE_ADJ # of points to raise footnote rule from its
- baseline
-FOOTNOTE_RULE_LENGTH Length of footnote separator rule
-FOOTNOTE_RULE Turns printing of fn separator rule on or off;
- default is on
-RESET_FOOTNOTE_NUMBER Reset fn# to 1, or, if arg PAGE, reset
- automatically to 1 on every page
+FOOTNOTE_AUTOLEAD Autolead to use in footnotes
+FOOTNOTE_LINENUMBER_BRACKETS Brackets for footnote linenumbers
+FOOTNOTE_LINENUMBER_SEPARATOR Separator for footnote linenumbers
+FOOTNOTE_MARKERS Turns footnote markers on or off
+FOOTNOTE_MARKER_STYLE STAR or NUMBER; default=STAR
+FOOTNOTE_RULE_ADJ # of points to raise footnote rule from its
+ baseline
+FOOTNOTE_RULE_LENGTH Length of footnote separator rule
+FOOTNOTE_RULE Turns printing of fn separator rule on or off;
+ default is on
+FOOTNOTE_SPACING Post footnote item spacing
+FOOTNOTES_RUN_ON Run footnotes on (line numbering mode only)
+RESET_FOOTNOTE_NUMBER Reset fn# to 1, or, if arg PAGE, reset
+ automatically to 1 on every page
+RUNON_WARNING Utility macro; warns if FOOTNOTES_RUN_ON
+ was called when fn marker style is STAR or NUMBER
+
+***Endnotes***
+
+ENDNOTE_LEAD Leading for endnotes page
+ENDNOTE_LINENUMBER_BRACKETS Brackets around line numbers identifying
+ endnotes and text
+ENDNOTE_LINENUMBER_GAP Amount of space to leave between line
+ENDNOTE_LINENUMBER_SEPARATOR Separator between line numbers identifying
+ endnotes and the endnote item text
+ endnotes and text
+ENDNOTE_MARKER_STYLE NUMBER or LINE
+ENDNOTE_NUMBERS_ALIGN_RIGHT Hang endnote numbers and align right
+ENDNOTE_NUMBERS_ALIGN_LEFT Don't hang endnote numbers and align left
+ENDNOTE_PARA_INDENT First line indent of paras in multi-para
+ endnotes
+ENDNOTE_PARA_SPACE Whether to space paras in multi-para endnotes
+ENDNOTE_PT_SIZE Base point size for endnotes page
+ENDNOTE_STRING Endnotes page head
+ENDNOTE_STRING_CAPS Capitalize the endnotes string
+ENDNOTE_STRING_UNDERSCORE Underscoring of endnotes page head
+ENDNOTE_TITLE Endnotes identifying title
+ENDNOTE_TITLE_SPACE Distance from top of page to endnotest title
+ENDNOTE_TITLE_UNDERSCORE Underscoring of endnotes identifying title
+ENDNOTES_ALLOWS_HEADERS Page headers on endnotes pages? (toggle)
+ENDNOTES_FIRST_PAGENUMBER Page number to appear on page 1 of endnotes
+ pages
+ENDNOTES_HDRFTR_CENTER Print header/footer centre string on endnotes
+ pages?
+ENDNOTES_HEADER_CENTER Print header centre string on endnotes pages?
+ENDNOTES_FOOTER_CENTER Print footer centre string on endnotes pages?
+ENDNOTES_NO_COLUMNS Turn columnar mode off for endnotes pages
+ENDNOTES_NO_FIRST_PAGENUM Don't print a pagenumber on page 1 of
+ endnotes.
+ENDNOTES_PAGENUM_STYLE Set numbering style for endnotes pages page
+ numbers
+SINGLESPACE_ENDNOTES Single space TYPEWRITE endnotes
+
+***Bibliographies***
+
+BIBLIOGRAPHY_ALLOWS_HEADERS Allow headers on bib pages
+BIBLIOGRAPHY_FIRST_PAGENUMBER Starting page number for bibliographies
+BIBLIOGRAPHY_HDRFTR_CENTER Header/footer center string for bib pages
+BIBLIOGRAPHY_LEAD Base lead of bib pages
+BIBLIOGRAPHY_NO_COLUMNS De-columnize bibliographies
+BIBLIOGRAPHY_NO_FIRST_PAGENUM Don't print a page number on the first
+ page of bibliographies
+BIBLIOGRAPHY_PAGENUM_STYLE Format for bib pages page numbering
+BIBLIOGRAPHY_PT_SIZE Base point size for bib pages
+BIBLIOGRAPHY_SPACING Post bib entry space
+BIBLIOGRAPHY_STRING String for bib title
+BIBLIOGRAPHY_STRING_CAPS Capitalize bib title string
+BIBLIOGRAPHY_STRING_UNDERSCORE Underscore bib title string
+SINGLESPACE_BIBLIOGRAPHY Singlespace bibs if PRINTSTYLE TYPEWRITE
***Headers and footers***
@@ -705,6 +761,12 @@
PARA_SPACE Put a line space before paras
PP_FONT Overall doc font
+***Quotes***
+
+Q_FITS Utility macro for DO_QUOTE
+Q_NOFIT Utility macro for DO_QUOTE
+QUOTE_AUTOLEAD Leading of (block)quotes
+
***Line/section breaks***
LINEBREAK_CHAR Linebreak character, iterations and positioning
@@ -825,7 +887,11 @@
and after
FN_OVERFLOW_TRAP Fixed at B_MARGIN; if footnotes run longer than
B_MARGIN, diverts excess into FN_OVERFLOW
+GET_ROMAN_INDENT Figures out amount of space to reserve
+ for roman numerals in lists
HDRFTR_RULE Prints rule under header or over footer
+MN_OVERFLOW_TRAP Trap-invoked macro to collect margin note
+ overflows
PRINT_FOOTNOTE_RULE An alias of PRINT_FOOTNOTE; prints footnote
separator rule
PRINT_HDRFTR Prints header/footer (trap invoked)
@@ -837,6 +903,9 @@
PROCESS_FN_IN_DIVER Processes footnotes gathered in a diversion (called
at page/column breaks)
REMOVE_INDENT Removes indents set with CHECK_INDENT
+Q_FITS Handles spacing of quotes when quote fits on the page
+Q_NOFIT Handles spacing of quotes when quote does not fit on
+ the page
QUIT_LISTS Exit lists cleanly and completely
SET_LIST_INDENT Restore indent of a prev. level of list
SHIM Advance to next "legal" baseline
@@ -855,18 +924,21 @@
+++DIVERSIONS+++
-B_QUOTE Block (indented) quote text
-CLOSING Closing (i.e. Yours truly,)
-EPI_TEXT Epigraph text
-END_NOTES Endnotes text
-FN_IN_DIVER Footnotes gathered from inside a diversion
-FN_OVERFLOW Excess footnotes when B_MARGIN is reached
-FOOTNOTES Text of footnotes
-GREETING Full salutation (e.g. Dear John Smith,)
-LETTERHEAD<n> Date, addresser, addressee or greeting;
- <n> is from 1 to 4, supplied by #FIELD
-P_QUOTE Line for line (poetic) quote text
-TOC_ENTRIES TOC entries
+B_QUOTE Block (indented) quote text
+CLOSING Closing (i.e. Yours truly,)
+EPI_TEXT Epigraph text
+END_NOTES Endnotes text
+FN_IN_DIVER Footnotes gathered from inside a diversion
+FN_OVERFLOW Excess footnotes when B_MARGIN is reached
+FOOTNOTES Text of footnotes
+GREETING Full salutation (e.g. Dear John Smith,)
+LETTERHEAD<n> Date, addresser, addressee or greeting;
+ <n> is from 1 to 4, supplied by #FIELD
+P_QUOTE Line for line (poetic) quote text
+RUNON_FOOTNOTES Special diversion for run-on footnotes
+RUNON_FN_IN_DIVER Special diversion for run-on footnotes inside
+ (block)quotes
+TOC_ENTRIES TOC entries
+++NUMBER REGISTERS+++
@@ -874,10 +946,15 @@
doesn't fall below what should be the
correct last printed line of running
text
+#ADD_BREAK Instructs FOOTNOTEs and ENDNOTEs to add
+ a break afer processing a footnote if
+ we're not in fill mode
+#ADJ_BIB_LEAD Adjust BIB_LEAD? (toggle)
#ADJ_DOC_LEAD Adjust DOC_LEAD? (toggle)
#ADJ_TOC_LEAD Adjust TOC_LEAD? (toggle)
#ARG_NUM Keeps track of number of args passed to a
macro
+#ARGS_TO_LIST Was LIST passed some args? (toggle)
#AUTHOR_[n] Strings passed to AUTHOR
#AUTHOR_LINES # of lines of authors in doc header; odd=0
even=1
@@ -892,7 +969,29 @@
#BMARG Position of unvarying bottom margin
during doc processing; required for
collecting footnotes inside diversions
+#BIB_ALLOWS_HEADERS Put headers on bib pages? (toggle)
+#BIB_ALLOWS_HEADERS_ALL Put headers on all bib pages? (toggle)
+#BIB_FIRST_PAGE Tells PRINT_PAGE_NUMBER about bibliography
+ first page number
+#BIB_FIRST_PN Starting pagenumber for bibliographies
+#BIB_HDRFTR_CENTER Put a center string in bib page headers?
+ (toggle)
+#BIB_LEAD Bibliography lead, expressed in points
+#BIB_LIST Output bibs in list style? (toggle)
+#BIB_NO_COLS De-columnize bibliographies? (toggle)
+#BIB_NO_FIRST_PN Put a page number on the first page of
+ bibliographies? (toggle)
+#BIB_SINGLESPACE Single-space TYPEWRITE bibliographies? (toggle)
+#BIB_SPACE Post item space for bibliography pages
+#BIB_STRING_CAPS Capitalize bib title? (toggle)
+#BIB_STRING_UNDERSCORE Underscore bib title? 0=no; 1=yes; 2=double
+#BIB_PS Base point size for bibliography pages expressed
+ in points
+#BIBLIOGRAPHY Are we doing a bib page? (toggle)
+#BQ_AUTOLEAD Register created by BLOCKQUOTE_AUTOLEAD
+#BQ_LEAD Leading of blockquotes
#BQUOTE_COLOR Colored blockquotes? (toggle)
+#BQUOTE_LN Number blockquotes? (toggle)
#BROKEN_QUOTE Did we invoke BREAK_QUOTE? (toggle)
#CAP_HEIGHT_ADJUST Tallest cap height of strings LEFT, CENTER,
and RIGHT in footers; used to place rule
@@ -936,8 +1035,12 @@
#DIVER_FN Register that tells FOOTNOTE whether to
"move" or "defer" a footnote collected
inside a diversion
+#DEFER_BIB_SPACING Tells DEFAULTS to do BIBLIOGRAPHY_SPACING
+ if it was called before START
#DEFER_PAGINATION Tells COLLATE to restore pagination (from
RESTORE_PAGINATION
+#DELAY_SHIM Instructs DO_QUOTE to delay SHIM when quote
+ falls at the top of a page
#DEPTH_1 Doc header depth with lead adjustment
(#DOCHEADER_LINES * #DOCHEADER_LEAD)
#DEPTH_2 Doc header depth without lead adjustment
@@ -987,17 +1090,31 @@
#DONE_ONCE Keeps track of how many times footnotes
have been collected inside the same diversion
#DONT_RULE_ME Rule this (apparent) first footnote? (toggle)
+#DIVER_LN_OFF Turn linenumbering off in (block)quotes?
+ (toggle)
#DRAFT_WITH_PAGENUM Are we attaching draft/revision info to page
number? (toggle)
#EM_ADJUST Amount to raise \(em at END
#EN_ALLOWS_HEADERS Put page headers on endnotes pages? (toggle)
#EN_ALLOWS_HEADERS_ALL Put page headers on all endnotes pages?
(toggle)
+#EN_BQ_AUTOLEAD Register created by EN_BLOCKQUOTE_AUTOLEAD
+#EN_BQ_LEAD Leading of blockquotes on endnotes pages
+#EN_FIGURE_SPACE Width of \0, for use with formatting endnotes
#EN_FIRST_PAGE Tells PRINT_PAGE_NUMBER about endnotes
first page number
#EN_FIRST_PN Page number that appears on page 1 of
endnotes pages.
+#EN_HDRFTR_CENTER Should we print centre string of
+ headers/footers on endnotes pages? (toggle)
#EN_LEAD Lead of endnotes
+#EN_LN_BRACKETS Are we using brackets for line-numbered
+ endnotes (toggle)
+#EN_LN_SEP Are we using a separator for line-numbered
+ endnotes (toggle)
+#EN_MARK \n(ln when \*[EN-MARK] is called
+#EN_MARK_2 \n(ln when ENDNOTE is called
+#EN_MARKER_STYLE 1=NUMBER; 2=LINE
#EN_NO_COLS Do not set endnotes in columns? (toggle)
#EN_NO_FIRST_PN Put pagenumber on 1st page of endnotes?
(toggle)
@@ -1013,6 +1130,9 @@
endnotes
#EN_PP_SPACE Space multi-paras in endnotes? (toggle)
#EN_PS ps of endnotes
+#EN_Q_AUTOLEAD Register created by EN_QUOTE_AUTOLEAD
+#EN_Q_LEAD Leading of quotes on endnotes pages
+#EN_REF Put REFs in endnotes? (toggle)
#EN_SINGLESPACE Single space endnotes pages? (toggle)
#EN_STRING_CAPS Should ENDNOTES capitalize the endnotes
string? (toggle)
@@ -1024,9 +1144,8 @@
#END_QUOTE For PP=0 indenting; did we just end a quote?
(toggle)
#ENDNOTE Are we in an endnote? (toggle)
+#ENDNOTE_REFS Are REFs going to endnotes? (toggle)
#ENDNOTES Are we in an endnote (for FOOTERs; toggle)
-#EN_HDRFTR_CENTER Should we print centre string of
- headers/footers on endnotes pages? (toggle)
#EPI_ACTIVE Are we in an epigraph? (toggle)
#EPI_COLOR Colored epigraphs? (toggle)
#EPI_DEPTH Depth of epigraph from first baseline to
@@ -1078,6 +1197,12 @@
#FN_L_INDENT Left indent of INDENT LEFT in footnotes
#FN_LINES Number of lines in fn; used to calculate
fn depth
+#FN_LN_BRACKETS Are footnote linenumber brackets being used?
+ (toggle)
+#FN_LN_SEP Is a footnote linenumber separator being used?
+ (toggle)
+#FN_MARK \n(ln when \*[FN-MARK] is called
+#FN_MARK_2 \n(nl when FOOTNOTE is called
#FN_MARKERS Print footnote markers? (toggle)
#FN_MARKER_STYLE 1=STAR; 2=NUMBER
#FN_NUMBER The footnote number attached to running text
@@ -1087,10 +1212,12 @@
#FN_OVERFLOW_TRAP_POS The register that sets the position of
trap FN_OVERFLOW_TRAP.
#FN_R_INDENT Right indent of INDENT RIGHT in footnotes
+#FN_REF Put REFs in footnotes? (toggle)
#FN_RULE_ADJ # of points to raise footnote separator from
its baseline
#FN_RULE_LENGTH Length of footnote separator rule
#FN_RULE Print fn rule? (toggle)
+#FN_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
@@ -1155,25 +1282,32 @@
#HOW_MANY Number of blank pages to output
#IGNORE Should we ignore this macro? Set to 1 in
TYPEWRITE.
+#IN_BIB_LIST Tells ITEM we're doing a bibliography in
+ list style
#INDENT_FIRST_PARAS Indent first paras? (toggle)
#INDENT_FIRSTS Tells footnotes to leave INDENT_FIRST_PARAS
alone if it's on for running text.
#ITALIC_MEANS_ITALIC For TYPEWRITE. 1=yes; 0=no
+#L_LENGTH_FOR_EPI Stores line length at top of doc for use
+ with EPIGRAPH when columns are on
+#L_MARGIN_DIFF Difference between DOC_L_MARGIN and
+ L_MARGIN
#LEFT_CAP_HEIGHT Cap height of left string in headers/footers
-#LEGAL_BASELINE Calculates vet. position of next legal
+#LEGAL_BASELINE Calculates vert. position of next legal
baseline in SHIM
#LETTER_STYLE 1=BUSINESS 2=PERSONAL
#LINEBREAK Did we have a linebreak? (toggle)
#LINEBREAK_COLOR Colored linebreak? (toggle)
+#LINENUMBERS Holds various states of line-numbering when
+ line numbering is enabled
#LINES_PER_PAGE # of lines (at DOC_LEAD) that fit on
page after #B_MARGIN is set
-#L_LENGTH_FOR_EPI Stores line length at top of doc for use
- with EPIGRAPH when columns are on
-#L_MARGIN_DIFF Difference between DOC_L_MARGIN and
- L_MARGIN
+#LN Are line numbers on? (toggle)
#MISC_<n> Used to print "next" misc lines in DO_COVER
#MISC_NUM Number of MISC lines
#MISCS =#MISC_NUM in DO_COVER
+#MN_OVERFLOW_LEFT If 1, left margin note text overflows
+#MN_OVERFLOW_RIGHT If 1, right margin note text overflows
#n%_AT_PAGENUM_SET Page # from n% when PAGENUMBER invoked
#NEEDS_SPACE Instruct FOOTNOTE, when called by
PROCESS_FN_IN_DIVER, that if the footnote
@@ -1181,6 +1315,8 @@
raised by 1v (set in DIVER_FN_2_PRE)
#NEXT_AUTHOR Supplies correct digit to AUTHOR_<#>
when printing authors in doc header
+#NEXT_LN Next linenumber when \n(ln has to be stored
+ because linenumbering suspended
#NEXT_MISC Incrementing counter for misc lines in
DO_COVER
#NO_BACK_UP Instructs FN_OVERFLOW_TRAP not to
@@ -1249,20 +1385,34 @@
#PRINT_STYLE Typewrite=1, typeset=2
#PT_SIZE_IN_UNITS Stored value of \n[.ps] from last time
PT_SIZE was called
+#Q_AUTOLEAD Register created by QUOTE_AUTOLEAD
#Q_DEPTH Depth of quote
#Q_FITS Does this quote fit on one page/column?
(toggle)
+#Q_LEAD Leading of quotes
+#Q_LEAD_DIFF Difference between leading of running text
+ and the leading used in quotes/blockquotes
+#Q_LEAD_REAL Leading of quotes and blockquotes saved at the
+ ends of their respective diversions
#Q_L_LENGTH Line length of quotes
#Q_OFFSET Page offset for quotes
#Q_OFFSET_VALUE Factor by which to multiply PP_INDENT to
offset quotes
+#Q_PARTIAL_DEPTH The amount of a quote/blockquote that fits at
+ the bottom of a page when a quote/blockquote
+ spans pages
#Q_PP In PP, stores para # in QUOTE. Removed in
ENDQUOTE.
+#Q_SPACE_ADJ The flexible amount of whitespace to add before
+ and after a quote/blockquote
#Q_TOP Vertical place on page that a quote starts
#QUOTE 1=PQUOTE, 2=BQUOTE
#QUOTE_COLOR Color quotes (poetic)? (toggle)
+#QUOTE_LN Linenumber quotes? (toggle)
#RECTO_VERSO Switch HEADER_LEFT and HEADER_RIGHT on
alternate pages? (toggle); default=0
+#REF_HYPHENATE Hyphenate REFs? (toggle)
+#REF_WARNING Have we issued a ref warning? (toggle)
#REPEAT Number of times to repeat linebreak
character
#RESERVED_SPACE Just enough room to put 1 more line of
@@ -1280,6 +1430,7 @@
#FULLSPACE_QUOTES (used in endnotes)
#RESTORE_DOC_LEAD Holds value of current doc lead (used in
endnotes)
+#RESTORE_HY Restore hyphenation after .][? (toggle)
#RESTORE_OFFSET Page offset at moment footer trap is sprung;
not currently used
#RESTORE_TOC_PN_PADDING Saves #TOC_PN_PADDING in TOC prior to
@@ -1288,6 +1439,11 @@
headers/footers
#RULED Tells FOOTNOTE if a rule (or space has been
put above the first footnote on the page
+#RUNON_FN_IN_DIVER If #LN=1, if we're in a (block)quote, instructs
+ FOOTNOTE to unformat diversion RUNON_FN_IN_DIVER
+#RUNON_FOOTNOTES If #LN=1, instructs FOOTNOTE to unformat
+ diversion RUNON_FOOTNOTES
+#RUN_ON Are we using run-on footnotes? (toggle)
#SAVED_DIVER_FN_COUNT In the case of a footnote inside a
diversion that should be treated as a
"normal" footnote, FOOTNOTE needs to
@@ -1311,6 +1467,7 @@
#SAVED_FN_DEPTH_2 Footnote depth after to adding footnote
diversion depth to FN_DEPTH; used when
footnote text will overflow
+#SAVED_FOOTER_POS Position of FOOTER in DO_QUOTE (hack)
#SAVED_LEAD In FOOTER and DO_FOOTER, stores the
lead in effect prior to outputting
FOOTNOTES or performing either
@@ -1322,11 +1479,14 @@
performed with the #SAVED_LEAD in
order to remove register #AUTO_LEAD or
#AUTO_LEAD_FACTOR.
+#SEP_TYPE Set to 1 if LIST separator is ( or [ or {
#SH_LEAD_ADJUST #DOC_LEAD/8 (TYPESET) or /2 (TYPEWRITE)
(used for subhead spacing)
#SH_NUM Subhead number
#SHIM Amount of lead required to advance to
next legal baseline
+#SILENT_BQUOTE_LN "Silently" linenumber blockquotes? (toggle)
+#SILENT_QUOTE_LN "Silently" linenumber quotes? (toggle)
#SINGLE_SPACE Is TYPEWRITE in single space mode? (toggle)
#SKIP_FOOTER If 1, instructs DO_FOOTER to do nothing
if B_MARGIN falls below FOOTER_MARGIN
@@ -1345,6 +1505,7 @@
PRINT_HDRFTR that START has been invoked,
allowing PRINT_HDRFTR to decide whether or
not to print a footer on page 1
+#START_FOR_MNinit If 1, defer processing MN_INIT until #START
#STORED_PP_INDENT Temporarily holds value of #PP_INDENT
#SUITE Current page number (for letters)
#SUP_PT_SIZE Point size of superscript
@@ -1408,12 +1569,31 @@
+++STRINGS+++
+$1ST_LETTER First letter of first arg to LIST
+$ADJUST_BIB_LEAD 2nd arg to BIBLIOGRAPHY_LEAD; if not blank
+ adjust bib leading
$ATTRIBUTE_STRING "by" line in doc header
$AUTHOR_1...9 Document author(s)
$AUTHOR_FAM Family to use for author in doc header
$AUTHOR_FT Font to use for author in doc header
$AUTHOR_SIZE_CHANGE ps in/decrease of author in doc header*
$AUTHOR_PT_SIZE Absolute ps of authors
+$BIB_FAM Bibliography page family
+$BIB_FT Bibliography page font
+$BIB_LEAD Base leading for bibliographies
+$BIB_LIST_SEPARATOR Separator between enumerator and text
+ when outputting bibliographies in LIST style
+$BIB_LIST_PREFIX Prefix before enumerator when outputting
+ bibliographies in LIST style
+$BIB_PN_STYLE Format of bibliography page numbers
+$BIB_SPACE Post entry space for bibliographies
+$BIB_STRING Bibliography title string
+$BIB_STRING_FAM Bib title family
+$BIB_STRING_FT Bib title font
+$BIB_STRING_QUAD Bib title quad
+$BIB_STRING_SIZE_CHANGE Bib title size (+ or -)
+$BQ_LN_GUTTER Gutter between line numbers and bquotes in
+ bquotes
$BQUOTE_COLOR Blockquote color
$BQUOTE_FAM Family to use for blockquotes
$BQUOTE_FT Font to use for blockquotes
@@ -1464,6 +1644,7 @@
$COVER_MISC_FT Cover misc font
$COVER_MISC_SIZE_CHANGE Cover misc size*
$COVER_MISC_COLOR Cover misc color
+$CURRENT_EV \n[.ev] at REF_BRACKETS_START
$DOC_COVER_FAM Overall doc cover family
$DOC_COVER_COLOR Overall doc cover color
$DOC_COVER_TITLE User-defined doc cover title string
@@ -1516,8 +1697,23 @@
$DRAFT The draft number (string valued)
$DRAFT_STRING What to print whenever the word "draft"
is required
+EN_MARK Inline, gets #EN_MARK (\(ln)
+$EN_CLOSE_BRACKET Close bracket for line-number enumerated
+ endnotes
$EN_FAMILY Family for endnotes
$EN_FT Font for endnotes
+$EN_LINENUMBER String to print for line-number enumerators
+ in line-numbered endnotes
+$EN_LN_FAM Family for line-numbers in line-number
+ identified endnotes
+$EN_LN_FT Font for line-numbers in line-number
+ identified endnotes
+$EN_LN_GAP Gap to leave in initial endnote lines
+ between line-number identifies and text
+$EN_OPEN_BRACKET Open bracket for line-number enumerated
+ endnotes
+$EN_LN_SIZE_CHANGE Size change (+ or -) for line-numbers in
+ line-number identified endnotes
$EN_PN_STYLE Pagenumbering style for endnotes pages
$EN_QUAD Quad for endnotes
$EN_STRING Endnotes page head
@@ -1542,12 +1738,23 @@
$EPI_QUAD Quad in block-style epigraphs
(justified or left)
$EPI_SIZE_CHANGE ps in/decrease of epigraphs*
+$EVAL_BIB_SPACE Temporary string to find out if the
+ arg to BIBLIOGRAPHY_SPACING ended in "v"
$FINIS_COLOR Color of FINIS string
$FINIS_STRING What to print when FINIS macro is
invoked
$FIRST_DOC_TITLE 1st doc's title captured in COLLATE
+FN_MARK Inline, gets #FN_MARK (\n(ln)
+$FN_CLOSE_BRACKET Close bracket for line-number identified
+ footnotes
$FN_FAM Family used in footnotes
$FN_FT Font used in footnotes
+$FN_LINENUMBER String to print before footnotes when
+ line-numbering enabled for footnotes
+$FN_LN_SEP Separator after line-number identified
+ footnotes
+$FN_OPEN_BRACKET Open bracket for line-number identified
+ footnotes
$FN_QUAD Quad used in footnotes
$FN_SIZE_CHANGE ps in/decrease of footnotes*
$FOOTNOTE_COLOR Footnote color
@@ -1592,7 +1799,16 @@
$LINEBREAK_CHAR Character that marks line breaks
$LINEBREAK_CHAR_V_ADJ +|- amount by which to raise/lower
linebreak character
+$LAST_CHAR Temporary string used to discover whether
+ user has remembered to put a digit after
+ ROMAN or roman in arg to LIST
$LINEBREAK_COLOR Linebreak color
+$LIST_ARG_1 The first arg to LIST (minus digits if
+ ROMAN or roman
+$LN_GUTTER Gutter to leave between line numbers
+ and text
+$LN_INC 2nd arg to NUMBER_LINES as a string
+$LN_NUM 1st arg to NUMBER_LINES as a string
$MISC_COLOR Misc line color
$MISC_QUAD Misc line quad
PAGE# For use in hdrftr strings where page #
@@ -1606,10 +1822,21 @@
default=LETTER
$PH_COLOR Parahead color
$PP_FT Font used in paragraphs
+$ROMAN_WIDTH The digit(s) appended to ROMAN or
+ roman LIST args
+$Q_LN_GUTTER Gutter between linenumbers and quotes
+ in quotes
$QUOTE_COLOR Quote (poetic) color
$QUOTE_FAM Family to use for pquotes
$QUOTE_FT Font to use for pquotes
$QUOTE_SIZE_CHANGE ps in/decrease of pquotes*
+$REF_BIB_INDENT 2nd line indent value for references in
+ bibliographies
+$REF_EN_INDENT 2nd line indent value for references in
+ endnotes
+$REF_FN_INDENT 2nd line indent value for references in
+ footnotes
+$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
"revision" is required
@@ -1774,168 +2001,195 @@
+++The following are used for docelement type-style control+++
-AUTHOR_FAMILY _FAMILY
-AUTHOR_FONT _FONT
-AUTHOR_SIZE _SIZE
-BLOCKQUOTE_COLOR _COLOR
-BLOCKQUOTE_FAMILY _FAMILY
-BLOCKQUOTE_FONT _FONT
-BLOCKQUOTE_QUAD _QUAD
-BLOCKQUOTE_SIZE _SIZE
-CHAPTER_TITLE_COLOR _COLOR
-CHAPTER_TITLE_FAMILY _FAMILY
-CHAPTER_TITLE_FONT _FONT
-CHAPTER_TITLE_SIZE _SIZE
-COVER_COPYRIGHT_COLOR _COLOR
-COVER_COPYRIGHT_FAMILY _FAMILY
-COVER_COPYRIGHT_FONT _FONT
-COVER_COPYRIGHT_QUAD _QUAD
-COVER_COPYRIGHT_SIZE _SIZE
-COVER_ATTRIBUTE_COLOR _COLOR
-COVER_AUTHOR_COLOR _COLOR
-COVER_AUTHOR_FAMILY _FAMILY
-COVER_AUTHOR_FONT _FONT
-COVER_AUTHOR_SIZE _SIZE
-COVER_COLOR _COLOR
-COVER_DOCTYPE_COLOR _COLOR
-COVER_DOCTYPE_FAMILY _FAMILY
-COVER_DOCTYPE_FONT _FONT
-COVER_DOCTYPE_SIZE _SIZE
-COVER_FAMILY _FAMILY
-COVER_MISC_COLOR _COLOR
-COVER_MISC_QUAD _QUAD
-COVER_SUBTITLE_COLOR _COLOR
-COVER_SUBTITLE_FAMILY _FAMILY
-COVER_SUBTITLE_FONT _FONT
-COVER_SUBTITLE_SIZE _SIZE
-COVER_TITLE_COLOR _COLOR
-COVER_TITLE_FAMILY _FAMILY
-COVER_TITLE_FONT _FONT
-COVER_TITLE_SIZE _SIZE
-DOC_COVER_COPYRIGHT_COLOR _COLOR
-DOC_COVER_COPYRIGHT_FAMILY _FAMILY
-DOC_COVER_COPYRIGHT_FONT _FONT
-DOC_COVER_COPYRIGHT_QUAD _QUAD
-DOC_COVER_COPYRIGHT_SIZE _SIZE
-DOC_COVER_ATTRIBUTE_COLOR _COLOR
-DOC_COVER_AUTHOR_COLOR _COLOR
-DOC_COVER_AUTHOR_FAMILY _FAMILY
-DOC_COVER_AUTHOR_FONT _FONT
-DOC_COVER_AUTHOR_SIZE _SIZE
-DOC_COVER_COLOR _COLOR
-DOC_COVER_DOCTYPE_COLOR _COLOR
-DOC_COVER_DOCTYPE_FAMILY _FAMILY
-DOC_COVER_DOCTYPE_FONT _FONT
-DOC_COVER_DOCTYPE_SIZE _SIZE
-DOC_COVER_FAMILY _FAMILY
-DOC_COVER_MISC_COLOR _COLOR
-DOC_COVER_MISC_QUAD _QUAD
-DOC_COVER_SUBTITLE_COLOR _COLOR
-DOC_COVER_SUBTITLE_FAMILY _FAMILY
-DOC_COVER_SUBTITLE_FONT _FONT
-DOC_COVER_SUBTITLE_SIZE _SIZE
-DOC_COVER_TITLE_COLOR _COLOR
-DOC_COVER_TITLE_FAMILY _FAMILY
-DOC_COVER_TITLE_FONT _FONT
-DOC_COVER_TITLE_SIZE _SIZE
-DOC_QUAD _QUAD
-DOCHEADER_COLOR _COLOR
-DOCHEADER_FAMILY _FAMILY
-DOCTYPE_FAMILY _FAMILY
-DOCTYPE_FONT _FONT
-DOCTYPE_SIZE _SIZE
-ENDNOTE_FAMILY _FAMILY
-ENDNOTE_FONT _FONT
-ENDNOTE_NUMBER_FAMILY _FAMILY
-ENDNOTE_NUMBER_FONT _FONT
-ENDNOTE_NUMBER_SIZE _SIZE
-ENDNOTE_QUAD _QUAD
-ENDNOTE_STRING_FAMILY _FAMILY
-ENDNOTE_STRING_FONT _FONT
-ENDNOTE_STRING_QUAD _QUAD
-ENDNOTE_STRING_SIZE _SIZE
-ENDNOTE_TITLE_FAMILY _FAMILY
-ENDNOTE_TITLE_FONT _FONT
-ENDNOTE_TITLE_QUAD _QUAD
-ENDNOTE_TITLE_SIZE _SIZE
-EPIGRAPH_COLOR _COLOR
-EPIGRAPH_FAMILY _FAMILY
-EPIGRAPH_FONT _FONT
-EPIGRAPH_QUAD _QUAD
-EPIGRAPH_SIZE _SIZE
-FINIS_COLOR _COLOR
-FOOTNOTE_COLOR _COLOR
-FOOTNOTE_FAMILY _FAMILY
-FOOTNOTE_FONT _FONT
-FOOTNOTE_QUAD _QUAD
-FOOTNOTE_SIZE _SIZE
-HDRFTR_CENTER_FAMILY _FAMILY
-HDRFTR_CENTER_FONT _FONT
-HDRFTR_CENTER_SIZE _SIZE
-HDRFTR_COLOR _COLOR
-HDRFTR_FAMILY _FAMILY
-HDRFTR_LEFT_FAMILY _FAMILY
-HDRFTR_LEFT_FONT _FONT
-HDRFTR_LEFT_SIZE _SIZE
-HDRFTR_RIGHT_FAMILY _FAMILY
-HDRFTR_RIGHT_FONT _FONT
-HDRFTR_RIGHT_SIZE _SIZE
-HDRFTR_RULE_COLOR _COLOR
-HDRFTR_SIZE _SIZE
-HEAD_COLOR _COLOR
-HEAD_FAMILY _FAMILY
-HEAD_FONT _FONT
-HEAD_QUAD _QUAD
-HEAD_SIZE _SIZE
-LINEBREAK_COLOR _COLOR
-MISC_COLOR _COLOR
-MISC_QUAD _QUAD
-PAGENUM_COLOR _COLOR
-PAGENUM_FAMILY _FAMILY
-PAGENUM_FONT _FONT
-PARAHEAD_COLOR _COLOR
-PARAHEAD_FAMILY _FAMILY
-PARAHEAD_FONT _FONT
-PARAHEAD_SIZE _SIZE
-QUOTE_COLOR _COLOR
-QUOTE_FAMILY _FAMILY
-QUOTE_FONT _FONT
-QUOTE_INDENT _INDENT
-QUOTE_SIZE _SIZE
-SUBHEAD_COLOR _COLOR
-SUBHEAD_FAMILY _FAMILY
-SUBHEAD_FONT _FONT
-SUBHEAD_SIZE _SIZE
-SUBTITLE_COLOR _COLOR
-SUBTITLE_FAMILY _FAMILY
-SUBTITLE_FONT _FONT
-SUBTITLE_SIZE _SIZE
-TITLE_COLOR _COLOR
-TITLE_FAMILY _FAMILY
-TITLE_FONT _FONT
-TITLE_SIZE _SIZE
-TOC_FAM _FAMILY
-TOC_FAMILY _FAMILY
-TOC_HEADER_FAMILY _FAMILY
-TOC_HEADER_FONT _FONT
-TOC_HEADER_QUAD _QUAD
-TOC_HEADER_SIZE _SIZE
-TOC_HEAD_FAMILY _FAMILY
-TOC_HEAD_FONT _FONT
-TOC_HEAD_SIZE _SIZE
-TOC_PARAHEAD_FAMILY _FAMILY
-TOC_PARAHEAD_FONT _FONT
-TOC_PARAHEAD_SIZE _SIZE
-TOC_PN_FAMILY _FAMILY
-TOC_PN_FONT _FONT
-TOC_PN_SIZE _SIZE
-TOC_PT_SIZE _SIZE
-TOC_SUBHEAD_FAMILY _FAMILY
-TOC_SUBHEAD_FONT _FONT
-TOC_SUBHEAD_SIZE _SIZE
-TOC_TITLE_FAMILY _FAMILY
-TOC_TITLE_FONT _FONT
-TOC_TITLE_SIZE _SIZE
+AUTHOR_FAMILY _FAMILY
+AUTHOR_FONT _FONT
+AUTHOR_SIZE _SIZE
+BIBLIOGRAPHY_FAMILY _FAMILY
+BIBLIOGRAPHY_FONT _FONT
+BIBLIOGRAPHY_FOOTER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+BIBLIOGRAPHY_FOOTER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTRE
+BIBLIOGRAPHY_HEADER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+BIBLIOGRAPHY_HEADER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTRE
+BIBLIOGRAPHY_QUAD _QUAD
+BIBLIOGRAPHY_STRING_FAMILY _FAMILY
+BIBLIOGRAPHY_STRING_FONT _FONT
+BIBLIOGRAPHY_STRING_QUAD _QUAD
+BIBLIOGRAPHY_STRING_SIZE _SIZE
+BLOCKQUOTE_AUTOLEAD Q_AUTOLEAD
+BLOCKQUOTE_AUTOLEAD QUOTE_AUTOLEAD
+BLOCKQUOTE_COLOR _COLOR
+BLOCKQUOTE_FAMILY _FAMILY
+BLOCKQUOTE_FONT _FONT
+BLOCKQUOTE_QUAD _QUAD
+BLOCKQUOTE_SIZE _SIZE
+CHAPTER_TITLE_COLOR _COLOR
+CHAPTER_TITLE_FAMILY _FAMILY
+CHAPTER_TITLE_FONT _FONT
+CHAPTER_TITLE_SIZE _SIZE
+COVER_ATTRIBUTE_COLOR _COLOR
+COVER_AUTHOR_COLOR _COLOR
+COVER_AUTHOR_FAMILY _FAMILY
+COVER_AUTHOR_FONT _FONT
+COVER_AUTHOR_SIZE _SIZE
+COVER_COLOR _COLOR
+COVER_COPYRIGHT_COLOR _COLOR
+COVER_COPYRIGHT_FAMILY _FAMILY
+COVER_COPYRIGHT_FONT _FONT
+COVER_COPYRIGHT_QUAD _QUAD
+COVER_COPYRIGHT_SIZE _SIZE
+COVER_DOCTYPE_COLOR _COLOR
+COVER_DOCTYPE_FAMILY _FAMILY
+COVER_DOCTYPE_FONT _FONT
+COVER_DOCTYPE_SIZE _SIZE
+COVER_FAMILY _FAMILY
+COVER_MISC_COLOR _COLOR
+COVER_MISC_QUAD _QUAD
+COVER_SUBTITLE_COLOR _COLOR
+COVER_SUBTITLE_FAMILY _FAMILY
+COVER_SUBTITLE_FONT _FONT
+COVER_SUBTITLE_SIZE _SIZE
+COVER_TITLE_COLOR _COLOR
+COVER_TITLE_FAMILY _FAMILY
+COVER_TITLE_FONT _FONT
+COVER_TITLE_SIZE _SIZE
+DOC_COVER_ATTRIBUTE_COLOR _COLOR
+DOC_COVER_AUTHOR_COLOR _COLOR
+DOC_COVER_AUTHOR_FAMILY _FAMILY
+DOC_COVER_AUTHOR_FONT _FONT
+DOC_COVER_AUTHOR_SIZE _SIZE
+DOC_COVER_COLOR _COLOR
+DOC_COVER_COPYRIGHT_COLOR _COLOR
+DOC_COVER_COPYRIGHT_FAMILY _FAMILY
+DOC_COVER_COPYRIGHT_FONT _FONT
+DOC_COVER_COPYRIGHT_QUAD _QUAD
+DOC_COVER_COPYRIGHT_SIZE _SIZE
+DOC_COVER_DOCTYPE_COLOR _COLOR
+DOC_COVER_DOCTYPE_FAMILY _FAMILY
+DOC_COVER_DOCTYPE_FONT _FONT
+DOC_COVER_DOCTYPE_SIZE _SIZE
+DOC_COVER_FAMILY _FAMILY
+DOC_COVER_MISC_COLOR _COLOR
+DOC_COVER_MISC_QUAD _QUAD
+DOC_COVER_SUBTITLE_COLOR _COLOR
+DOC_COVER_SUBTITLE_FAMILY _FAMILY
+DOC_COVER_SUBTITLE_FONT _FONT
+DOC_COVER_SUBTITLE_SIZE _SIZE
+DOC_COVER_TITLE_COLOR _COLOR
+DOC_COVER_TITLE_FAMILY _FAMILY
+DOC_COVER_TITLE_FONT _FONT
+DOC_COVER_TITLE_SIZE _SIZE
+DOCHEADER_COLOR _COLOR
+DOCHEADER_FAMILY _FAMILY
+DOC_QUAD _QUAD
+DOCTYPE_FAMILY _FAMILY
+DOCTYPE_FONT _FONT
+DOCTYPE_SIZE _SIZE
+ENDNOTE_BLOCKQUOTE_AUTOLEAD Q_AUTOLEAD
+ENDNOTE_BLOCKQUOTE_AUTOLEAD QUOTE_AUTOLEAD
+ENDNOTE_FAMILY _FAMILY
+ENDNOTE_FONT _FONT
+ENDNOTE_LINENUMBER_FAMILY _FAMILY
+ENDNOTE_LINENUMBER_FONT _FONT
+ENDNOTE_LINENUMBER_SIZE _SIZE
+ENDNOTE_NUMBER_FAMILY _FAMILY
+ENDNOTE_NUMBER_FONT _FONT
+ENDNOTE_NUMBER_SIZE _SIZE
+ENDNOTE_QUAD _QUAD
+ENDNOTE_QUOTE_AUTLOEAD Q_AUTOLEAD
+ENDNOTE_QUOTE_AUTOLEAD QUOTE_AUTOLEAD
+ENDNOTE_STRING_FAMILY _FAMILY
+ENDNOTE_STRING_FONT _FONT
+ENDNOTE_STRING_QUAD _QUAD
+ENDNOTE_STRING_SIZE _SIZE
+ENDNOTE_TITLE_FAMILY _FAMILY
+ENDNOTE_TITLE_FONT _FONT
+ENDNOTE_TITLE_QUAD _QUAD
+ENDNOTE_TITLE_SIZE _SIZE
+EPIGRAPH_COLOR _COLOR
+EPIGRAPH_FAMILY _FAMILY
+EPIGRAPH_FONT _FONT
+EPIGRAPH_QUAD _QUAD
+EPIGRAPH_SIZE _SIZE
+FINIS_COLOR _COLOR
+FOOTNOTE_COLOR _COLOR
+FOOTNOTE_FAMILY _FAMILY
+FOOTNOTE_FONT _FONT
+FOOTNOTE_QUAD _QUAD
+FOOTNOTE_SIZE _SIZE
+HDRFTR_CENTER_FAMILY _FAMILY
+HDRFTR_CENTER_FONT _FONT
+HDRFTR_CENTER_SIZE _SIZE
+HDRFTR_COLOR _COLOR
+HDRFTR_FAMILY _FAMILY
+HDRFTR_LEFT_FAMILY _FAMILY
+HDRFTR_LEFT_FONT _FONT
+HDRFTR_LEFT_SIZE _SIZE
+HDRFTR_RIGHT_FAMILY _FAMILY
+HDRFTR_RIGHT_FONT _FONT
+HDRFTR_RIGHT_SIZE _SIZE
+HDRFTR_RULE_COLOR _COLOR
+HDRFTR_SIZE _SIZE
+HEAD_COLOR _COLOR
+HEAD_FAMILY _FAMILY
+HEAD_FONT _FONT
+HEAD_QUAD _QUAD
+HEAD_SIZE _SIZE
+LINEBREAK_COLOR _COLOR
+MISC_COLOR _COLOR
+MISC_QUAD _QUAD
+PAGENUM_COLOR _COLOR
+PAGENUM_FAMILY _FAMILY
+PAGENUM_FONT _FONT
+PARAHEAD_COLOR _COLOR
+PARAHEAD_FAMILY _FAMILY
+PARAHEAD_FONT _FONT
+PARAHEAD_SIZE _SIZE
+QUOTE_COLOR _COLOR
+QUOTE_FAMILY _FAMILY
+QUOTE_FONT _FONT
+QUOTE_INDENT _INDENT
+QUOTE_SIZE _SIZE
+REF_INDENT INDENT_REFS
+REF) REF_BRACKETS_END
+REF] REF_BRACKETS_END
+REF} REF_BRACKETS_END
+REF( REF_BRACKETS_START
+REF[ REF_BRACKETS_START
+REF{ REF_BRACKETS_START
+SUBHEAD_COLOR _COLOR
+SUBHEAD_FAMILY _FAMILY
+SUBHEAD_FONT _FONT
+SUBHEAD_SIZE _SIZE
+SUBTITLE_COLOR _COLOR
+SUBTITLE_FAMILY _FAMILY
+SUBTITLE_FONT _FONT
+SUBTITLE_SIZE _SIZE
+TITLE_COLOR _COLOR
+TITLE_FAMILY _FAMILY
+TITLE_FONT _FONT
+TITLE_SIZE _SIZE
+TOC_FAM _FAMILY
+TOC_FAMILY _FAMILY
+TOC_HEADER_FAMILY _FAMILY
+TOC_HEADER_FONT _FONT
+TOC_HEADER_QUAD _QUAD
+TOC_HEADER_SIZE _SIZE
+TOC_HEAD_FAMILY _FAMILY
+TOC_HEAD_FONT _FONT
+TOC_HEAD_SIZE _SIZE
+TOC_PARAHEAD_FAMILY _FAMILY
+TOC_PARAHEAD_FONT _FONT
+TOC_PARAHEAD_SIZE _SIZE
+TOC_PN_FAMILY _FAMILY
+TOC_PN_FONT _FONT
+TOC_PN_SIZE _SIZE
+TOC_PT_SIZE _SIZE
+TOC_SUBHEAD_FAMILY _FAMILY
+TOC_SUBHEAD_FONT _FONT
+TOC_SUBHEAD_SIZE _SIZE
+TOC_TITLE_FAMILY _FAMILY
+TOC_TITLE_FONT _FONT
+TOC_TITLE_SIZE _SIZE
</pre>
<hr>
Index: groff/contrib/mom/momdoc/toc.html
diff -u groff/contrib/mom/momdoc/toc.html:1.15
groff/contrib/mom/momdoc/toc.html:1.16
--- groff/contrib/mom/momdoc/toc.html:1.15 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/toc.html Sat May 14 07:07:13 2005
@@ -2,13 +2,13 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
-<title>Mom, version 1.2-f -- Table of Contents</title>
+<title>Mom, version 1.3 -- Table of Contents</title>
</head>
<body bgcolor="#dfdfdf">
<!====================================================================>
-<h1 align="center"><u>Table of Contents for mom, version 1.2-f</u></h1>
+<h1 align="center"><u>Table of Contents for mom, version 1.3</u></h1>
The table of contents has grown quite large. If you've been using
<strong>mom</strong> for a while, you might prefer the
@@ -58,6 +58,7 @@
<li><a href="#PAGINATE">Pagination</a>
<li><a href="#RV">Recto/verso printing and collating</a>
<li><a href="#COVER">Cover pages</a>
+ <li><a href="#REF">Bibliographies and references</a>
<li><a href="#LETTER">Writing letters</a>
<li><a href="#TYPEMACDOC">Using typesetting macros during document
processing</a>
<li><a href="#QUICK">Quick reference guide to mom</a>
@@ -217,7 +218,7 @@
</ul>
<li><a
href="docprocessing.html#STYLE_BEFORE_START"><strong>5.3.4 Changing Type and
Style Parameters <em>before</em> START</strong></a>
<ul>
- <li><a
href="docprocessing.html#TYPE_BEFORE_START">5.3.4.1 Typesetting macros</a> --
usage
+ <li><a
href="docprocessing.html#TYPE_BEFORE_START">5.3.4.1 Typesetting macros before
START</a> -- usage
<ul>
<li><a
href="docprocessing.html#COLOR">Colour</a>
</ul>
@@ -234,6 +235,8 @@
<ul>
<li><a
href="docprocessing.html#INDEX_DOC_PARAM">5.3.6.1 Macro list</a>
</ul>
+<a name="TYPEMACDOC"></a>
+ <li><a href="typemacdoc.html#TYPESETTING"><strong>5.3.7 Using
typesetting macros during document processing</strong></A>
</ul>
<a name="TAGS"></a>
<li><a href="docelement.html#DOCELEMENT"><strong>5.4 THE
DOCUMENT ELEMENT TAGS</strong></a>
@@ -248,15 +251,17 @@
<li><a href="docelement.html#HEAD_INTRO">5.4.4 Main
heads</a>
<li><a href="docelement.html#SUBHEAD_INTRO">5.4.5
Subheads</a>
<li><a href="docelement.html#PARAHEAD_INTRO">5.4.6
Paragraph heads</a>
- <li><a href="docelement.html#LINEBREAK_INTRO">5.4.7
Linebreaks</a> -- author linebreaks
- <li><a href="docelement.html#QUOTE_INTRO">5.4.8
Quotes</a> -- line for line poetic quotes or unformatted, verbatim text
+ <li><a href="docelement.html#LINEBREAK_INTRO">5.4.7
Linebreaks</a> -- author linebreaks (section breaks)
+ <li><a href="docelement.html#QUOTE_INTRO">5.4.8
Quotes</a> -- line for line poetic quotes or unformatted, verbatim text (e.g.
code snippets)
<li><a href="docelement.html#BLOCKQUOTE_INTRO">5.4.9
Blockquotes</a> -- cited material
<li><a href="docelement.html#LIST_INTRO">5.4.10
Lists</a> -- (nested) lists
- <li><a href="docelement.html#FOOTNOTE_INTRO">5.4.11
Footnotes</a>
- <li><a href="docelement.html#ENDNOTE_INTRO">5.4.12
Endnotes</a>
- <li><a href="docelement.html#BLANK_PAGE_TITLE">5.4.13
Blank page</a>
- <li><a href="docelement.html#TOC_INTRO">5.4.14 Table of
contents</a>
- <li><a href="docelement.html#FINIS_INTRO">5.4.15
Document termination</a> -- FINIS
+ <li><a href="docelement.html#NUMBER_LINES_INTRO">5.4.11
Line numbering</a>
+ <li><a href="docelement.html#FOOTNOTE_INTRO">5.4.12
Footnotes</a>
+ <li><a href="docelement.html#ENDNOTE_INTRO">5.4.13
Endnotes</a>
+ <li><a href="docelement.html#MARGIN_NOTES_INTRO">5.4.14
Margin notes</a>
+ <li><a href="docelement.html#BLANK_PAGE_TITLE">5.4.15
Blank pages</a>
+ <li><a href="docelement.html#TOC_INTRO">5.4.16 Table of
contents</a>
+ <li><a href="docelement.html#FINIS_INTRO">5.4.17
Document termination</a> -- FINIS
</ul>
<a name="HDRFTR"></a>
<li><a href="headfootpage.html#HEADFOOTPAGE"><strong>5.5
DOCUMENT HEADERS AND FOOTERS</strong></a>
@@ -292,16 +297,17 @@
<a name="COVER"></a>
<li><a href="cover.html#COVER_TOP"><strong>5.8 CREATING COVER
PAGES</strong></a>
<br>
+<a name="REF"></a>
+ <li><a href="refer.html#REF_TOP"><strong>5.9 BIBLIOGRAPHIES AND
REFERENCES</strong></a>
+ <br>
<a name="LETTER"></a>
- <li><a href="letters.html#LETTERS"><strong>5.9 WRITING
LETTERS</strong></a>
+ <li><a href="letters.html#LETTERS"><strong>5.10 WRITING
LETTERS</strong></a>
<ul>
- <li><a href="letters.html#LETTERS_INTRO">5.9.1
Introduction to writing letters</a>
- <li><a href="letters.html#TUTORIAL">5.9.2 Tutorial on
writing letters</a>
- <li><a href="letters.html#LETTERS_DEFAULTS">5.9.3
Default style for letters</a>
- <li><a href="letters.html#LETTERS_MACROS">5.9.4 The
letter macros</a>
+ <li><a href="letters.html#LETTERS_INTRO">5.10.1
Introduction to writing letters</a>
+ <li><a href="letters.html#TUTORIAL">5.10.2 Tutorial on
writing letters</a>
+ <li><a href="letters.html#LETTERS_DEFAULTS">5.10.3
Default style for letters</a>
+ <li><a href="letters.html#LETTERS_MACROS">5.10.4 The
letter macros</a>
</ul>
-<a name="TYPEMACDOC"></a>
- <li><a href="typemacdoc.html#TYPESETTING"><strong>5.10 USING
TYPESETTING MACROS DURING DOCUMENT PROCESSING</strong></a>
</ul>
<a name="QUICK"></a>
<li><a href="macrolist.html#QUICK"><strong>6. QUICK REFERENCE GUIDE TO
MOM</strong></a>
Index: groff/contrib/mom/momdoc/typemacdoc.html
diff -u groff/contrib/mom/momdoc/typemacdoc.html:1.8
groff/contrib/mom/momdoc/typemacdoc.html:1.9
--- groff/contrib/mom/momdoc/typemacdoc.html:1.8 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/typemacdoc.html Sat May 14 07:07:13 2005
@@ -8,8 +8,8 @@
<!====================================================================>
-<a href="macrolist.html#TOP">Next</a>
-<a href="letters.html#TOP">Prev</a>
+<a href="docelement.html#TOP">Next</a>
+<a href="docprocessing.html#TOP">Prev</a>
<a href="toc.html">Back to Table of Contents</a>
<p>
@@ -74,8 +74,6 @@
if you encounter the problem of trying to get <strong>mom</strong>
to put space at the tops of pages after the first.)
-
-<p>
<pre>
MACRO EFFECT DURING DOCUMENT PROCESSING
----- ---------------------------------
@@ -229,8 +227,8 @@
macro immediately after <strong>ADD_SPACE</strong>.
<p>
<hr>
-<a href="macrolist.html#TOP">Next</a>
-<a href="letters.html#TOP">Prev</a>
+<a href="docelement.html#TOP">Next</a>
+<a href="docprocessing.html#TOP">Prev</a>
<a href="#TOP">Top</a>
<a href="toc.html">Back to Table of Contents</a>
</body>
Index: groff/contrib/mom/momdoc/typesetting.html
diff -u groff/contrib/mom/momdoc/typesetting.html:1.14
groff/contrib/mom/momdoc/typesetting.html:1.15
--- groff/contrib/mom/momdoc/typesetting.html:1.14 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/momdoc/typesetting.html Sat May 14 07:07:13 2005
@@ -164,7 +164,7 @@
<hr width="66%" align="left">
<a name="PAGEWIDTH"><h3><u>Page width</u></h3></a>
<br>
-Macro: <strong>PAGEWIDTH</strong> <var><width of printer sheet></var>
+<nobr>Macro: <strong>PAGEWIDTH</strong> <width of printer sheet><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -183,7 +183,7 @@
<hr width="66%" align="left">
<a name="PAGELENGTH"><h3><u>Page length</u></h3></a>
<br>
-Macro: <strong>PAGELENGTH</strong> <var><length of printer sheet></var>
+<nobr>Macro: <strong>PAGELENGTH</strong> <length of printer sheet><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -203,12 +203,12 @@
<hr width="66%" align="left">
<a name="PAPER"><h3><u>Paper</u></h3></a>
<br>
-Macro: <strong>PAPER</strong> <var><paper type></var>
+<nobr>Macro: <strong>PAPER</strong> <paper type><wbr>
<p>
<strong>PAPER</strong> provides a convenient way to set the page
-dimensions for some common printer sheet sizes. <var><paper
-type></var> can be one of:
+dimensions for some common printer sheet sizes. <nobr><paper
+type> can be one of:<wbr>
<p>
<pre>
LETTER
@@ -246,7 +246,7 @@
<hr width="66%" align="left">
<a name="L_MARGIN"><h3><u>Left margin</u></h3></a>
<br>
-Macro: <strong>L_MARGIN</strong> <var><left margin></var>
+<nobr>Macro: <strong>L_MARGIN</strong> <left margin><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -292,7 +292,7 @@
<hr width="66%" align="left">
<a name="R_MARGIN"><h3><u>Right margin</u></h3></a>
<br>
-Macro: <strong>R_MARGIN</strong> <var><right margin></var>
+<nobr>Macro: <strong>R_MARGIN</strong> <right margin><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -366,7 +366,7 @@
<hr width="66%" align="left">
<a name="T_MARGIN"><h3><u>Top margin</u></h3></a>
<br>
-Macro: <strong>T_MARGIN</strong> <var><top margin></var>
+<nobr>Macro: <strong>T_MARGIN</strong> <top margin><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -418,7 +418,7 @@
<hr width="66%" align="left">
<a name="B_MARGIN"><h3><u>Bottom margin</u></h3></a>
<br>
-Macro: <strong>B_MARGIN</strong> <var><bottom margin></var>
+<nobr>Macro: <strong>B_MARGIN</strong> <bottom margin><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -460,7 +460,7 @@
<a name="PAGE"><h3><u>Page</u></h3></a>
<br>
Macro: <strong>PAGE</strong>
-<var><width> [ <length> [ <lm> [ <rm> [
<tm> [ <bm> ] ] ] ] ]</var>
+<nobr><width> [ <length> [ <lm> [ <rm> [
<tm> [ <bm> ] ] ] ] ]<wbr>
<br>
<em>*All arguments require a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -468,8 +468,8 @@
<strong>PAGE</strong> lets you establish paper dimensions and page
margins with a single macro. The only required argument is page width.
The rest are optional, <strong>but they must appear in order and you can't
-skip over any.</strong> <var><lm>, <rm>, <tm></var>
-and <var><bm></var> refer to the left, right, top and bottom
+skip over any.</strong> <nobr><lm>, <rm>, <tm><wbr>
+and <nobr><bm> refer to the left, right, top and bottom<wbr>
margins respectively.
<p>
Assuming your page dimensions are 11 inches by 17 inches, and that's
@@ -487,7 +487,7 @@
</pre>
Now suppose you also want to set the top margin, say, at 1-1/2
-inches. <var><tm></var> comes after <var><rm></var>
+inches. <nobr><tm> comes after <nobr><rm><wbr><wbr>
in the optional arguments, but you can't skip over any arguments,
therefore to set the top margin, you must also give a right margin.
The <strong>PAGE</strong> macro would look like this:
@@ -593,7 +593,7 @@
<hr width="66%" align="left">
<a name="FAMILY"><h3><u>Type family</u></h3></a>
<br>
-Macro: <strong>FAMILY</strong> <var><family></var>
+<nobr>Macro: <strong>FAMILY</strong> <family><wbr>
<br>
Alias: <strong>FAM</strong>
@@ -707,7 +707,7 @@
<hr width="66%" align="left">
<a name="FONT"><h3><u>Font</u></h3></a>
<br>
-Macro: <strong>FT</strong> <var>R | I | B | BI | <any other valid font
style></var>
+<nobr>Macro: <strong>FT</strong> R | I | B | BI | <any other valid font
style><wbr>
<p>
By default, groff permits <strong>FT</strong> to take one of four
@@ -793,7 +793,7 @@
<hr width="66%" align="left">
<a name="FALLBACK_FONT"><h3><u>Fallback font</u></h3></a>
<br>
-Macro: <strong>FALLBACK_FONT</strong> <var><fallback font> [ ABORT |
WARN ] | ABORT | WARN</var>
+<nobr>Macro: <strong>FALLBACK_FONT</strong> <fallback font> [ ABORT |
WARN ] | ABORT | WARN<wbr>
<p>
In the event that you pass an invalid argument to
@@ -867,7 +867,7 @@
<hr width="66%" align="left">
<a name="PS"><h3><u>Point size of type</u></h3></a>
<br>
-Macro: <strong>PT_SIZE</strong> <var><size of type in points></var>
+<nobr>Macro: <strong>PT_SIZE</strong> <size of type in points><wbr>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -922,7 +922,7 @@
<hr width="66%" align="left">
<a name="LEADING"><h3><u>Line spacing/leading</u></h3></a>
<br>
-Macro: <strong>LS</strong> <var><distance between lines></var>
+<nobr>Macro: <strong>LS</strong> <distance between lines><wbr>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -975,7 +975,7 @@
<hr width="66%" align="left">
<a name="AUTOLEAD"><h3><u>Automatic line spacing</u></h3></a>
<br>
-Macro: <strong>AUTOLEAD</strong> <var><amount of automatic leading>
[FACTOR]</var>
+<nobr>Macro: <strong>AUTOLEAD</strong> <amount of automatic leading>
[FACTOR]<wbr>
<br>
<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -1030,7 +1030,7 @@
<hr width="66%" align="left">
<a name="LINELENGTH"><h3><u>Line length</u></h3></a>
<br>
-Macro: <strong>LL</strong> <var><line length></var>
+<nobr>Macro: <strong>LL</strong> <line length><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -1175,7 +1175,7 @@
<hr width="66%" align="left">
<a name="QUAD"><h3><u>Quad lines left, right, or centre</u></h3></a>
<br>
-Macro: <strong>QUAD</strong> <var>L | LEFT | R | RIGHT | C | CENTER | J |
JUSTIFY</var>
+<nobr>Macro: <strong>QUAD</strong> L | LEFT | R | RIGHT | C | CENTER | J |
JUSTIFY<wbr>
<br>
Alias: <strong>FILL</strong>
<br>
@@ -1433,7 +1433,7 @@
<hr width="66%" align="left">
<a name="SPACE"><h3><u>Break lines and add space between</u></h3></a>
<br>
-Macro: <strong>SPACE</strong> <var><space to add between lines></var>
+<nobr>Macro: <strong>SPACE</strong> <space to add between lines><wbr>
<br>
Alias: <strong>SP</strong>
@@ -1622,7 +1622,7 @@
<hr width="66%" align="left">
<a name="WS"><h3><u>Word spacing</u></h3></a>
<br>
-Macro: <strong>WS</strong> <var><+|-wordspace> | DEFAULT</var>
+<nobr>Macro: <strong>WS</strong> <+|-wordspace> | DEFAULT<wbr>
<p>
<strong>WS</strong> (Word Space) increases or decreases the amount
@@ -1693,7 +1693,7 @@
<hr width="66%" align="left">
<a name="SS"><h3><u>Sentence space</u></h3></a>
<br>
-Macro: <strong>SS</strong> <var><+sentence space> | 0 | DEFAULT</var>
+<nobr>Macro: <strong>SS</strong> <+sentence space> | 0 | DEFAULT<wbr>
<p>
<strong>SS</strong> (Sentence Space) tells groff how to treat double
@@ -1767,15 +1767,15 @@
<hr width="66%" align="left">
<a name="HY"><h3><u>Automatic hyphenation control</u></h3></a>
<br>
-Macro: <strong>HY</strong> <var>toggle</var>
+<nobr>Macro: <strong>HY</strong> toggle<wbr>
<br>
-Macro: <strong>HY</strong> <var>LINES <max. number of consecutive
hyphenated lines></var>
+<nobr>Macro: <strong>HY</strong> LINES <max. number of consecutive
hyphenated lines><wbr>
<br>
-Macro: <strong>HY</strong> <var>MARGIN <size of hyphenation margin></var>
+<nobr>Macro: <strong>HY</strong> MARGIN <size of hyphenation margin><wbr>
<br>
-Macro: <strong>HY</strong> <var>SPACE <extra interword spacing to prevent
hyphenation></var>
+<nobr>Macro: <strong>HY</strong> SPACE <extra interword spacing to prevent
hyphenation><wbr>
<br>
-Macro: <strong>HY</strong> <var>DEFAULT</var>
+<nobr>Macro: <strong>HY</strong> DEFAULT<wbr>
<br>
Aliases: <strong>HYPHENATE, HYPHENATION</strong>
@@ -1898,7 +1898,7 @@
<hr width="66%" align="left">
<a name="HY_SET"><h3><u>Set hyphenation parameters all at once</u></h3></a>
<br>
-Macro: <strong>HY_SET</strong> <var><lines> [ <margin> [
<space> ] ]</var>
+<nobr>Macro: <strong>HY_SET</strong> <lines> [ <margin> [
<space> ] ]<wbr>
<br>
Alias: <strong>HYSET</strong>
@@ -1947,7 +1947,7 @@
<hr width="66%" align="left">
<a name="RW"><h3><u>Reduce whitespace</u></h3></a>
<br>
-Macro: <strong>RW</strong> <var><amount of whitespace reduction between
letters></var>
+<nobr>Macro: <strong>RW</strong> <amount of whitespace reduction between
letters><wbr>
<br>
<p>
@@ -2011,7 +2011,7 @@
<hr width="66%" align="left">
<a name="EW"><h3><u>Expand whitespace</u></h3></a>
<br>
-Macro: <strong>EW</strong> <var><amount of whitespace expansion between
letters></var>
+<nobr>Macro: <strong>EW</strong> <amount of whitespace expansion between
letters><wbr>
<br>
<p>
@@ -2068,7 +2068,7 @@
<hr width="66%" align="left">
<a name="BR_AT_LINE_KERN"><h3><u>Break before line kerning</u></h3></a>
<br>
-Macro: <strong>BR_AT_LINE_KERN</strong> <var>toggle</var>
+<nobr>Macro: <strong>BR_AT_LINE_KERN</strong> toggle<wbr>
<br>
<p>
@@ -2106,7 +2106,7 @@
<hr width="66%" align="left">
<a name="KERN"><h3><u>Automatic kerning</u></h3></a>
<br>
-Macro: <strong>KERN</strong> <var>toggle</var>
+<nobr>Macro: <strong>KERN</strong> toggle<wbr>
<br>
<p>
@@ -2127,7 +2127,7 @@
<hr width="66%" align="left">
<a name="LIGATURES"><h3><u>Automatic ligature generation</u></h3></a>
<br>
-Macro: <strong>LIGATURES</strong> <var>toggle</var>
+<nobr>Macro: <strong>LIGATURES</strong> toggle<wbr>
<br>
Alias: <strong>LIG</strong>
@@ -2202,7 +2202,7 @@
<hr width="66%" align="left">
<a name="SETSLANT"><h3><u>Set degree of slant for
pseudo-italicizing</u></h3></a>
<br>
-Macro: <strong>SETSLANT</strong> <var><degrees to slant type> |
RESET</var>
+<nobr>Macro: <strong>SETSLANT</strong> <degrees to slant type> |
RESET<wbr>
<p>
Pseudo-italicizing of type is accomplished by slanting a roman font
@@ -2276,7 +2276,7 @@
<hr width="66%" align="left">
<a name="SETBOLDER"><h3><u>Set amount of emboldening</u></h3></a>
<br>
-Macro: <strong>SETBOLDER</strong> <var><amount of emboldening, in machine
units> | RESET</var>
+<nobr>Macro: <strong>SETBOLDER</strong> <amount of emboldening, in machine
units> | RESET<wbr>
<p>
Emboldening of type is accomplished by printing characters
@@ -2351,7 +2351,7 @@
<hr width="66%" align="left">
<a name="CONDENSE"><h3><u>Set percentage for pseudo-condensed type</u></h3></a>
<br>
-Macro: <strong>CONDENSE</strong> <var><pseudo-condense percentage></var>
+<nobr>Macro: <strong>CONDENSE</strong> <pseudo-condense percentage><wbr>
<p>
Pseudo-condensing of type is accomplished by reducing the width of
@@ -2435,7 +2435,7 @@
<hr width="66%" align="left">
<a name="EXTEND"><h3><u>Set percentage for pseudo-extended type</u></h3></a>
<br>
-Macro: <strong>EXTEND</strong> <var><pseudo-extend percentage></var>
+<nobr>Macro: <strong>EXTEND</strong> <pseudo-extend percentage><wbr>
<p>
Pseudo-extending of type is accomplished by increasing the width of
@@ -2541,7 +2541,7 @@
<hr width="66%" align="left">
<a name="ALD"><h3><u>Advance Lead (move downward)</u></h3></a>
<br>
-Macro: <strong>ALD</strong> <var><distance to move downward></var>
+<nobr>Macro: <strong>ALD</strong> <distance to move downward><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -2599,7 +2599,7 @@
<hr width="66%" align="left">
<a name="RLD"><h3><u>Reverse Lead (move upward)</u></h3></a>
<br>
-Macro: <strong>RLD</strong> <var><distance to move upward></var>
+<nobr>Macro: <strong>RLD</strong> <distance to move upward><wbr>
<br>
<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of
measure</a></em>
@@ -3056,7 +3056,7 @@
<hr width="66%" align="left">
<a name="TAB_SET"><h3><u>Set up typesetting tabs</u></h3></a>
<br>
-Macro: <strong>TAB_SET</strong> <var><tab number> <indent>
<length> L | R | C | J [ QUAD ]</var>
+<nobr>Macro: <strong>TAB_SET</strong> <tab number> <indent>
<length> L | R | C | J [ QUAD ]<wbr>
<br>
<em>*<indent> and <length> require a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -3220,7 +3220,7 @@
<a href="goodies.html#PAD">PAD</a>
to set up string tabs in centered or flush right lines. Say, for
example, you want to use a string tab to underscore the text of a
-centered line with a thick rule. Rather than this,
+centered line with a rule. Rather than this,
<p>
<pre>
.CENTER
@@ -3257,7 +3257,7 @@
<hr width="66%" align="left">
<a name="ST"><h3><u>Set string tabs</u></h3></a>
<br>
-Macro: <strong>ST</strong> <var><tab number> L | R | C | J [ QUAD
]</var>
+<nobr>Macro: <strong>ST</strong> <tab number> L | R | C | J [ QUAD
]<wbr>
<p>
After string tabs have been marked off on an input line (see
@@ -3298,7 +3298,7 @@
<hr width="66%" align="left">
<a name="TAB"><h3><u>Call tabs</u></h3></a>
<br>
-Macro: <strong>TAB</strong> <var><tab number></var>
+<nobr>Macro: <strong>TAB</strong> <tab number><wbr>
<br>
Alias: <strong>TB</strong>
<p>
@@ -3612,7 +3612,7 @@
<hr width="66%" align="left">
<a name="MCX"><h3><u>Exit multi-columns</u></h3></a>
<br>
-Macro: <strong>MCX</strong> <var>[ <distance to advance below longest
column> ]</var>
+<nobr>Macro: <strong>MCX</strong> [ <distance to advance below longest
column> ]<wbr>
<br>
<em>*Optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -3628,7 +3628,7 @@
in effect <em>at the moment <strong>MCX</strong> is
invoked.</em>
<p>
-If you pass the <var><distance></var> argument to
+If you pass the <nobr><distance> argument to<wbr>
<strong>MCX</strong>, it advances 1 linespace below the longest
column (see above) PLUS the distance specified by the argument.
The argument requires a unit of measure; therefore, to advance
@@ -3844,7 +3844,7 @@
<hr width="66%" align="left">
<a name="IL"><h3><u>Indent left</u></h3></a>
<br>
-Macro: <strong>IL</strong> <var>[ <measure> ]</var>
+<nobr>Macro: <strong>IL</strong> [ <measure> ]<wbr>
<br>
<em>*The optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -3887,7 +3887,7 @@
<hr width="66%" align="left">
<a name="IR"><h3><u>Indent right</u></h3></a>
<br>
-Macro: <strong>IR</strong> <var>[ <measure> ]</var>
+<nobr>Macro: <strong>IR</strong> [ <measure> ]<wbr>
<br>
<em>*The optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -3928,7 +3928,7 @@
<hr width="66%" align="left">
<a name="IB"><h3><u>Indent both</u></h3></a>
<br>
-Macro: <strong>IB</strong> <var>[ <left measure> <right measure>
]</var>
+<nobr>Macro: <strong>IB</strong> [ <left measure> <right measure>
]<wbr>
<br>
<em>*The optional arguments require a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -3981,7 +3981,7 @@
<hr width="66%" align="left">
<a name="TI"><h3><u>Temporary (left) indent</u></h3></a>
<br>
-Macro: <strong>TI</strong> <var>[ <measure> ]</var>
+<nobr>Macro: <strong>TI</strong> [ <measure> ]<wbr>
<br>
<em>*The optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -4026,7 +4026,7 @@
<hr width="66%" align="left">
<a name="HI"><h3><u>Hanging indent</u></h3></a>
<br>
-Macro: <strong>HI</strong> <var>[ <measure> ]</var>
+<nobr>Macro: <strong>HI</strong> [ <measure> ]<wbr>
<br>
<em>*The optional argument requires a <a
href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
@@ -4141,13 +4141,13 @@
<hr width="66%" align="left">
<a name="IQ"><h3><u>Quitting indents</u></h3></a>
<br>
-Macro: <strong>IQ</strong> <var>[ CLEAR ] </var>(quit
any/all indents -- see <strong>*IMPORTANT NOTE</strong>)
+<nobr>Macro: <strong>IQ</strong> [ CLEAR ] (quit any/all
indents -- see <strong>*IMPORTANT NOTE</strong>)<wbr>
<br>
-Macro: <strong>ILX</strong> <var>[ CLEAR ] </var>(exit
<strong>I</strong>ndent <strong>L</strong>eft)
+<nobr>Macro: <strong>ILX</strong> [ CLEAR ] (exit
<strong>I</strong>ndent <strong>L</strong>eft)<wbr>
<br>
-Macro: <strong>IRX</strong> <var>[ CLEAR ] </var>(exit
<strong>I</strong>ndent <strong>R</strong>ight)
+<nobr>Macro: <strong>IRX</strong> [ CLEAR ] (exit
<strong>I</strong>ndent <strong>R</strong>ight)<wbr>
<br>
-Macro: <strong>IBX</strong> <var>[ CLEAR ] </var>(exit
<strong>I</strong>ndent <strong>B</strong>oth)
+<nobr>Macro: <strong>IBX</strong> [ CLEAR ] (exit
<strong>I</strong>ndent <strong>B</strong>oth)<wbr>
<p>
<strong>*IMPORTANT NOTE:</strong>
Index: groff/contrib/mom/momdoc/using.html
diff -u groff/contrib/mom/momdoc/using.html:1.6
groff/contrib/mom/momdoc/using.html:1.7
--- groff/contrib/mom/momdoc/using.html:1.6 Mon Aug 9 09:07:48 2004
+++ groff/contrib/mom/momdoc/using.html Sat May 14 07:07:13 2005
@@ -185,7 +185,7 @@
gxditview. Invoke it with
<p>
<pre>
- groff -X -mom <filename>
+ groff -X -mom filename
</pre>
It's not particularly pretty, doesn't have many navigation
@@ -201,18 +201,24 @@
<p>
A surer way to preview documents is with <strong>gv</strong>
(ghostview). This involves processing documents with groff,
-directing the output to a temporary (PostScript) file, then opening
-the temporary file in <strong>gv</strong>. While that may sound
-like a lot of work, I've set up my editor (elvis) to do it for me.
-Whenever I'm working on a document that needs previewing/checking,
-I fire up <strong>gv</strong> with the "Watch File"
-option turned on. To look at the file, I tell elvis to process
-it (with groff) and send it to a temporary file (<kbd>groff
--mom filename > filename.ps</kbd>), then open the file inside
-<strong>gv</strong>. Ever after, when I want to look at any changes
-I make, I simply tell elvis to work his magic again. The Watch File
-option in <strong>gv</strong> registers that the file has changed,
-and automatically loads the new version. Voilà! -- instant previewing.
+and directing the output to a PostScript file, like this,
+<p>
+<pre>
+ groff -mom filename > filename.ps
+</pre>
+then opening .ps file in <strong>gv</strong>.
+<p>
+While that may sound like a lot of work, I've set up my editor
+(elvis) to do it for me. Whenever I'm working on a document that
+needs previewing/checking, I fire up <strong>gv</strong> with the
+"Watch File" option turned on. To look at the file, I
+tell elvis to process it (with groff) and send it to a temporary
+file (<kbd>groff -mom filename > filename.ps</kbd>), then open
+the file inside <strong>gv</strong>. Ever after, when I want to
+look at any changes I make, I simply tell elvis to work his magic
+again. The Watch File option in <strong>gv</strong> registers that
+the file has changed, and automatically loads the new version.
+Voilà! --instant previewing.
<p>
<hr>
Index: groff/contrib/mom/om.tmac
diff -u groff/contrib/mom/om.tmac:1.26 groff/contrib/mom/om.tmac:1.27
--- groff/contrib/mom/om.tmac:1.26 Mon Jan 24 08:23:21 2005
+++ groff/contrib/mom/om.tmac Sat May 14 07:07:12 2005
@@ -1,49 +1,47 @@
.\" om.tmac
-.\"
-.\" Mom -- a typesetting/document-processing macro set for groff.
-.\"
-.\" Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-.\" Written by Peter Schaffter (address@hidden)
-.\"
-.\" This file is part of groff.
-.\"
-.\" groff is free software; you can redistribute it and/or modify it under
-.\" the terms of the GNU General Public License as published by the Free
-.\" Software Foundation; either version 2, or (at your option) any later
-.\" version.
-.\"
-.\" groff is distributed in the hope that it will be useful, but WITHOUT ANY
-.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or
-.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-.\" for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License along
-.\" with groff; see the file COPYING. If not, write to the Free Software
-.\" Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-.\"
-.\"
-.\"
-\# Version 1.2-f
-\# -------------
-\#
-\# 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.
-\#
-\# By those standards, mom is a Rube Goldberg contraption. She was
-\# created over the years while groff, and my understanding of it,
-\# changed and evolved. However, I'm a firm believer in "if it
-\# ain't broke, don't fix it," so I'm leaving any major clean-up
-\# of redundancies and whatnot for a rainy day.
-\#
-\# Inasmuch as possible, macros that turn a feature on or off follow
-\# a similar style. Invoking the macro without an argument turns
-\# the feature on. Invoking it with any other argument turns it off.
-\# Use of the argument OFF is recommended, but not required; users
-\# may find other conventions preferable (e.g. NO, X, END, QUIT, etc.).
-\#
-\# "<anything>" in the description of arguments that can be passed
-\# to a macro means that any argument turns the feature off.
+.ig
+Mom -- a typesetting/document-processing macro set for groff.
+
+Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Written by Peter Schaffter (address@hidden)
+
+This file is part of groff.
+
+groff is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with groff; see the file COPYING. If not, write to the Free Software
+Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Version 1.3
+-----------
+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.
+
+By those standards, mom is a Rube Goldberg contraption. She was
+created over the years while groff, and my understanding of it,
+changed and evolved. However, I'm a firm believer in "if it
+ain't broke, don't fix it," so I'm leaving any major clean-up
+of redundancies and whatnot for a rainy day.
+
+Inasmuch as possible, macros that turn a feature on or off follow
+a similar style. Invoking the macro without an argument turns
+the feature on. Invoking it with any other argument turns it off.
+Use of the argument OFF is recommended, but not required; users
+may find other conventions preferable (e.g. NO, X, END, QUIT, etc.).
+
+"<anything>" in the description of arguments that can be passed
+to a macro means that any argument turns the feature off.
+..
\#
\# ====================================================================
\#
@@ -53,6 +51,8 @@
\# Check that GNU troff is being run
.if !\n[.g]=1 \
. ab The mom macros require that you be running GNU troff.
+.if \n(.C \
+. ab The groff mom macros do not work in compatibility mode.
\# Add supplementary styles
.sty \n[.fp] L \" Light Roman
.sty \n[.fp] LI \" Light Italic
@@ -129,28 +129,30 @@
.cflags 4 /\(en \" So slash and en-dashes get broken
.warn 8192
\#
-\# About the warn level
-\# --------------------
-\#
-\# There's a lot of testing for the presence of number registers and
-\# strings in this macro file. Many of the registers and strings
-\# pop into and out of existence on the fly. For convenience, I
-\# often use
-\#
-\# .if \\n[whatever] and .if !\\n[whatever]
-\#
-\# to test "if the register exists and is not empty." groff,
-\# encountering such tests when called with the -ww options, emits
-\#
-\# warning: number register whatever not defined.
-\#
-\# Groff also warns about strings similarly tested for
-\#
-\# The warn level, above, is high in order to shut off those
-\# warnings. If you're futzing in this file and need more verbose
-\# warnings, either comment out ".warn 8192" or set the warnlevel
-\# to the one you need (but be ready for lots of what I've just
-\# described).
+.ig
+About the warn level
+--------------------
+
+There's a lot of testing for the presence of number registers and
+strings in this macro file. Many of the registers and strings
+pop into and out of existence on the fly. For convenience, I
+often use
+
+ .if \\n[whatever] and .if !\\n[whatever]
+
+to test "if the register exists and is (not) empty." Groff,
+encountering such tests when called with the -ww options, emits
+
+ warning: number register whatever not defined.
+
+Groff also warns about strings similarly tested for.
+
+The warn level, above, is high in order to shut off those
+warnings. If you're futzing in this file and need more verbose
+warnings, either comment out ".warn 8192" or set the warnlevel
+to the one you need (but be ready for lots of what I've just
+described).
+..
\#
\# ====================================================================
\#
@@ -335,6 +337,7 @@
\#
.MAC NEWPAGE END
. br
+. nr #NEWPAGE 1
. ie \\n[#B_MARGIN_SET]=1 \{\
. ie !\\n[#DOCS]=1 \{\
. ev NP
@@ -433,8 +436,14 @@
\# to $FAMILY.
\#
.MAC FAMILY END
-. if \\n[#PRINT_STYLE]=1 \{ .return \}
-. if \\n[#IGNORE] \{ .return \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. fam C
+. return
+. \}
+. if \\n[#IGNORE] \{\
+. fam C
+. return
+. \}
. if (\\n[.x]\\n[.y]\\n[.Y] >= 1192) \{\
. ds $SAVED_STYLE \\n[.sty]
. \}
@@ -553,6 +562,7 @@
\# Does not require unit of measure. LS automatically turns off AUTOLEAD.
\#
.MAC LS END
+. br
. nr #OLD_LEAD \\n(.v
. if \\n[#PRINT_STYLE]=1 \{ .return \}
. if \\n[#IGNORE] \{ .return \}
@@ -645,33 +655,35 @@
.END
\#
\#
-\# INLINE KERNING AND HORIZONTAL MOVEMENT
-\# --------------------------------------
-\# *Kerning
-\# Inline kerning provides a simple method for users to adjust the
-\# amount of space between any two letters. It's predicated on a
-\# unit of measure "U", which is 1/36 of the current point size as
-\# returned by \n[.ps]. E.g., if the current point size is 18,
-\# \n[.ps] returns 18000u, therefore U=500u. Since U remains
-\# proportional relative to the current point size, the amount
-\# of kerning between two letters as expressed in Us remains
-\# visually similar regardless of changes in point size.
-\#
-\# N.B.--the amount of inline kerning supplied by \*[BU<n>] or
-\# \*[FU<n>] is added to or subtracted from any kerning that already
-\# takes place between two characters when automatic kerning is
-\# turned on.
-\#
-\# In groff v. 1.17.2, it was not possible to pass arguments to macros that
-\# were called with inline escapes, nor thence to evaluate conditional
-\# expressions. Consequently, each pseudo-escape \[BU<n>] had to be defined
-\# separately with ".char".
-\#
-\# As of v. 1.18, one can pass arguments to inline strings/macros,
-\# hence it is now possible to do \*[BU n] where n, inline, is the desired
-\# number of kern units. The original .char definitions have been left in
-\# for backward compatibility with documents created prior to mom-1.1.3c.
-\#
+.ig
+INLINE KERNING AND HORIZONTAL MOVEMENT
+--------------------------------------
+Kerning
+
+Inline kerning provides a simple method for users to adjust the
+amount of space between any two letters. It's predicated on a
+unit of measure "U", which is 1/36 of the current point size as
+returned by \n[.ps]. E.g., if the current point size is 18,
+\n[.ps] returns 18000u, therefore U=500u. Since U remains
+proportional relative to the current point size, the amount
+of kerning between two letters as expressed in Us remains
+visually similar regardless of changes in point size.
+
+N.B.--the amount of inline kerning supplied by \*[BU<n>] or
+\*[FU<n>] is added to or subtracted from any kerning that already
+takes place between two characters when automatic kerning is
+turned on.
+
+In groff v. 1.17.2, it was not possible to pass arguments to macros that
+were called with inline escapes, nor thence to evaluate conditional
+expressions. Consequently, each pseudo-escape \[BU<n>] had to be defined
+separately with ".char".
+
+As of v. 1.18, one can pass arguments to inline strings/macros,
+hence it is now possible to do \*[BU n] where n, inline, is the desired
+number of kern units. The original .char definitions have been left in
+for backward compatibility with documents created prior to mom-1.1.3c.
+..
\#
.nr #KERN_UNIT 36
.ds BU \h'-(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\\$1u)'
@@ -690,13 +702,15 @@
.\}
.rr #LOOP
\#
-\#
-\# *Horizontal movements
-\# BP1...12.75 and FP1...12.75 move backwards or forwards inline by the
-\# specified number of points.
-\# Left in for backward compatibility with mom-1.1.3c, the
-\# preferred methods for inline horizontal movements are now
-\# \*[BCK <n><unit>] and \*[FWD <n><unit>].
+.ig
+Horizontal movements
+
+BP1...12.75 and FP1...12.75 move backwards or forwards inline by the
+specified number of points.
+Left in for backward compatibility with mom-1.1.3c, the
+preferred methods for inline horizontal movements are now
+\*[BCK <n><unit>] and \*[FWD <n><unit>].
+..
\#
.ds BCK \h'-\\$1'
.ds FWD \h'\\$1'
@@ -808,10 +822,13 @@
\#
\# WHOLE LINE KERNING (RW and EW)
\# -----------------------------
-\# The line kerning macros are special instances of track kerning,
-\# used where a complete line needs to be tightened (or relaxed) in
-\# order to accomodate or remove one or two more characters
-\# than the default justification permits.
+\#
+.ig
+The line kerning macros are special instances of track kerning,
+used where a complete line needs to be tightened (or relaxed) in
+order to accomodate or remove one or two more characters
+than the default justification permits.
+..
\#
\# *Argument:
\# <amount of overall "kerning" (letter spacing) to apply to the line>
@@ -825,22 +842,24 @@
\# *Notes:
\# Decimal values are acceptable.
\#
-\# The groff documentation is a tad confusing about what unit of
-\# measure is used in track kerning, only that the width of each
-\# character is increased or decreased by the amount(s) passed as
-\# arguments to .tkf, and something about linear function of point
-\# size. In fact, with the way I've put this macro together, it
-\# doesn't matter. All the user needs to know is that a value
-\# of one will produce an unacceptably tight or loose line at most
-\# text point sizes; therefore, effective use of RW and EW is in
-\# the fractional range below 1 (e.g. .25, .5). Given that RW
-\# and EW are for massaging type, a certain amount of
-\# experimentation and previewing is expected and necessary.
-\#
-\# \n(.f holds the current font number, which is acceptable to .tkf.
-\#
-\# RW and EW must be reset to 0 to cancel their effect on
-\# subsequent output lines.
+.ig
+The groff documentation is a tad confusing about what unit of
+measure is used in track kerning, only that the width of each
+character is increased or decreased by the amount(s) passed as
+arguments to .tkf, and something about linear function of point
+size. In fact, with the way I've put this macro together, it
+doesn't matter. All the user needs to know is that a value of
+one will produce an unacceptably tight or loose line at most text
+point sizes; therefore, effective use of RW and EW is in the
+fractional range below 1 (e.g. .25, .5). Given that RW and EW
+are for massaging type, a certain amount of experimentation and
+previewing is expected and necessary.
+
+\n(.f holds the current font number, which is acceptable to .tkf.
+
+RW and EW must be reset to 0 to cancel their effect on subsequent
+output lines.
+..
\#
.MAC RW END
. if \\n[#BR_AT_LINE_KERN] \{\
@@ -1008,11 +1027,13 @@
\#
\# ALD/RLD STRINGS
\# ---------------
-\# The strings \*[ALD.25]...\*[ALD12.75] and their corresponding
-\# \*[RLD] forms have been left in for backward compatibility with
-\# documents created using mom-1.1.3c or earlier. The prefered
-\# methods of advancing and reversing on the page inline are
-\# \*[UP <n><unit>] and \*[DOWN <n><unit>].
+.ig
+The strings \*[ALD.25]...\*[ALD12.75] and their corresponding
+\*[RLD] forms have been left in for backward compatibility with
+documents created using mom-1.1.3c or earlier. The prefered methods
+of advancing and reversing on the page inline are \*[UP <n><unit>]
+and \*[DOWN <n><unit>].
+..
\#
.ds DOWN \v'\\$1'
.ds UP \v'-\\$1'
@@ -1367,13 +1388,16 @@
\#
\# LEFT, RIGHT, AND CENTER
\# -----------------------
-\# The purpose of these macros is to allow the user to enter lines
-\# of text that will be quadded LRC *without* the user having to
-\# enter .BR or .br between lines. For the sake of consistency,
-\# all three appear to behave similarly (from the point of view of the user),
-\# although the underlying primitives don't. For this reason, LEFT,
-\# RIGHT, and CENTER must be followed by .QUAD [L R C J] or .JUSTIFY
-\# to restore text to groff fill mode.
+\#
+.ig
+The purpose of these macros is to allow the user to enter lines of
+text that will be quadded LRC *without* the user having to enter .BR
+or .br between lines. For the sake of consistency, all three appear
+to behave similarly (from the point of view of the user), although
+the underlying primitives don't. For this reason, LEFT, RIGHT, and
+CENTER must be followed by .QUAD [L R C J] or .JUSTIFY to restore
+text to groff fill mode.
+..
\#
\# LEFT
\# ----
@@ -1396,7 +1420,7 @@
. ce 0
. nf
. nr #PSEUDO_FILL 1
-\# Fix for a little conflict with DOCTYPE LETTER
+.\" Fix for a little conflict with DOCTYPE LETTER
. if '\\n(.z'LETTERHEAD1' \{ .rr #DATE_FIRST \}
.END
\#
@@ -1448,33 +1472,35 @@
\#
\# +++TABS+++
\#
-\# There are two different kinds of tabs available: typesetting tabs
-\# and string tabs.
-\#
-\# Typesetting tabs are set with TAB_SET, which requires a tab number,
-\# an indent (offset) from the left margin and a length (optionally
-\# with a quad direction and an instruction to fill lines). After tabs
-\# are set with TAB_SET, they are called with .TAB n, where "n"
-\# corresponds to the number passed to TAB_SET as a valid tab number.
-\#
-\# String tabs allow the user to mark off tab positions inline. Tab
-\# indents and lengths are calculated from the beginning and end
-\# positions of the marks. Up to 19 string tabs may be created,
-\# numbered 1-19. Once created, they are called with .TAB n,
-\# just like typesetting tabs.
-\#
-\# Setting up string tabs is a two-step procedure. First, the user
-\# enters an input line in which s/he wants to mark off string tabs.
-\# The beginning of a tab is marked with \*[STn], where "n" is
-\# the desired number of the tab. The end of the the tab is marked
-\# with \*[STnX]. All ST's must have a matching STX. String tabs
-\# may be nested.
-\#
-\# Next, the user invokes .ST n for every string tab defined, and
-\# optionally passes quad information to it. That done, string tabs
-\# can be called just like typesetting tabs.
-\#
-\# String tabs don't preview properly with gxditview. Use gv instead.
+.ig
+There are two different kinds of tabs available: typesetting tabs
+and string tabs.
+
+Typesetting tabs are set with TAB_SET, which requires a tab number,
+an indent (offset) from the left margin and a length (optionally
+with a quad direction and an instruction to fill lines). After tabs
+are set with TAB_SET, they are called with .TAB n, where "n"
+corresponds to the number passed to TAB_SET as a valid tab number.
+
+String tabs allow the user to mark off tab positions inline. Tab
+indents and lengths are calculated from the beginning and end
+positions of the marks. Up to 19 string tabs may be created,
+numbered 1-19. Once created, they are called with .TAB n,
+just like typesetting tabs.
+
+Setting up string tabs is a two-step procedure. First, the user
+enters an input line in which s/he wants to mark off string tabs.
+The beginning of a tab is marked with \*[STn], where "n" is
+the desired number of the tab. The end of the the tab is marked
+with \*[STnX]. All ST's must have a matching STX. String tabs
+may be nested.
+
+Next, the user invokes .ST n for every string tab defined, and
+optionally passes quad information to it. That done, string tabs
+can be called just like typesetting tabs.
+
+String tabs don't preview properly with gxditview. Use gv instead.
+..
\#
\# Strings for string tab inlines
\# ------------------------------
@@ -1551,40 +1577,43 @@
\#
\# N.B. -- indents *must* be turned off before setting tabs
\#
-\# Examples:
-\#
-\# .TAB_SET 1 2P+6p 12P C
-\#
-\# means "create a tab numbered 1 that starts 2 picas and 6 points from
-\# the left margin, is 12 picas long, and centre each input line."
-\#
-\# .TAB_SET 1 2P+6P 12P C QUAD
-\#
-\# means exactly the same thing, except that input lines are joined and
-\# the area delimted by the tab filled with centered text.
-\#
-\# TAB n can be called at any time after being set.
-\#
-\# Tabs are NOT columnar in behaviour. If the text inside a
-\# tab runs to several lines, when you call the next tab a break
-\# occurs, meaning that the new tab starts one line below the last
-\# line in the previous tab. For columnar behaviour, you must
-\# use the multi-column macros in addition to tabs.
-\#
-\# If you want tabs to line up bottom-line to bottom-line (most likely
-\# single line tabs), use .TN (provided the tabs are numbered sequentially).
-\# Otherwise, you must use .EL then .TAB <n> if you want them to align.
-\#
-\# If you want to reset tabs, you must use .TQ before .TAB_SET.
-\#
-\# Note that indents are turned off automatically whenever a new
-\# tab is called with TAB <n>.
-\#
-\# Tabs themselves are user-invoked using the TAB macro with a numeric
-\# argument, e.g. TAB 1.
-\#
-\# Generally, in order not to get confused, it's a good idea
-\# to make sure all indents are off before setting tabs.
+.ig
+Examples:
+--------
+
+.TAB_SET 1 2P+6p 12P C
+
+means "create a tab numbered 1 that starts 2 picas and 6 points from
+the left margin, is 12 picas long, and centre each input line."
+
+.TAB_SET 1 2P+6P 12P C QUAD
+
+means exactly the same thing, except that input lines are joined and
+the area delimted by the tab filled with centered text.
+
+TAB n can be called at any time after being set.
+
+Tabs are NOT columnar in behaviour. If the text inside a
+tab runs to several lines, when you call the next tab a break
+occurs, meaning that the new tab starts one line below the last
+line in the previous tab. For columnar behaviour, you must
+use the multi-column macros in addition to tabs.
+
+If you want tabs to line up bottom-line to bottom-line (most likely
+single line tabs), use .TN (provided the tabs are numbered sequentially).
+Otherwise, you must use .EL then .TAB <n> if you want them to align.
+
+If you want to reset tabs, you must use .TQ before .TAB_SET.
+
+Note that indents are turned off automatically whenever a new
+tab is called with TAB <n>.
+
+Tabs themselves are user-invoked using the TAB macro with a numeric
+argument, e.g. TAB 1.
+
+Generally, in order not to get confused, it's a good idea
+to make sure all indents are off before setting tabs.
+..
\#
.MAC TAB_SET END
. br
@@ -1776,7 +1805,6 @@
. if \\n[#NUM_ARGS]=2 .ds \\$2 \m[\\$1]
.END
\#
-\#
\# Pre-define xcolors black and white
\#
.ds black \m[black]
@@ -2376,7 +2404,8 @@
. 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] \\*[$FONT]
+\#. fp \\n[.fp] \\*[$FONT]
+. fp \\n[.fp] \\n[.sty]
. ds $FONT_FOR_PAD \\*[$FONT]
. nr #SIZE_FOR_PAD \\n[.ps]
. ds $PAD_STRING \\$1
@@ -2425,14 +2454,15 @@
\#
\# +++LEADERS+++
\#
-\# The leader mechanism is primitive, but it works. Basically,
-\# every macro in this set that includes a line length also sets
-\# a single groff tab stop at the right hand end of the line.
-\# That way, whenever Ctrl-A is invoked (always at the end of
-\# an input line), leader of the correct length gets deposited.
-\# Ctrl-A is accessed by the string LEADER (i.e. inline, as
-\# \*[LEADER]). Leaders within tabs get their length from the
-\# tab line length.
+.ig
+The leader mechanism is primitive, but it works. Basically, every
+macro in this set that includes a line length also sets a single
+groff tab stop at the right hand end of the line. That way,
+whenever Ctrl-A is invoked (always at the end of an input line),
+leader of the correct length gets deposited. Ctrl-A is accessed by
+the string LEADER (i.e. inline, as \*[LEADER]). Leaders within tabs
+get their length from the tab line length.
+..
\#
\# SET LEADER CHARACTER
\# --------------------
@@ -2586,7 +2616,7 @@
. ps \\n[#PT_SIZE]u+100u
. SIZESPECS
. nr #GET_DC_HEIGHT \\n[#CAP_HEIGHT]
-. \}
+.\}
. if d$DC_ADJUST \{ .ps \\*[$DC_ADJUST]p \}
. mk x
. sp \\n[#DC_LINES]v
@@ -2750,86 +2780,88 @@
\#
\# +++INDENTS+++
\#
-\# There are five styles of indents: left, right, both, temporary,
-\# and hanging. Each is set/invoked with a different macro.
-\# Indent macros begin with the letter "I", hence .IL means "indent left,"
-\# .IR means "indent right," and so on.
-\#
-\# The first time any of the indent macros is used, it requires an
-\# argument--the size of the indent (with a unit of measure). The
-\# size may also be entered using the \w escape--very useful
-\# for numbered lists using HI. The unit of measure is required.
-\# Subsequent invocations don't require the argument; the indent
-\# measure remains the same until it's changed by invoking the macro
-\# with an argument again.
-\#
-\# If no indents are in effect, the arguments passed to indent macros are
-\# measured from the left and right margins of the page. If a left indent
-\# or a right indent is already in effect, the arguments passed to
-\# the indent macros are calculated from the current values; in other words,
-\# the arguments are additive. If you quit an indent and later return
-\# to it, its value will be the value last in effect, unless you pass
-\# it an argument. If you do pass an argument, it is added to the last
-\# value in effect, unless you cleared the indent with one of
-\# .I<LRB>X/Q macros.
-\#
-\# Example
-\# -------
-\#
-\# .IL 2P
-\# ...some text...
-\# .IL 2P
-\# ...some text...
-\# .IQ
-\# ...some text...
-\# .IL
-\# ...some text...
-\#
-\# The first .IL 2P indents text 2P from the left margin. The second
-\# .IL 2P indents text by an additional 2P, i.e. 4P from the left margin.
-\# .IQ turns the indent off. The last .IL (which has no argument)
-\# takes its value from the total of all arguments passed to .IL (in
-\# this case, 2P and 2P), therefore it indents 2P+2P from the left
-\# margin, i.e. 4P. If you wanted the last .IL to indent just 2P,
-\# you'd either have to reset the .IL prior to .IQ (.IL -2P), or pass
-\# the last .IL the argument 2P.
-\#
-\# To reverse the sense of an indent added to an indent, you may use
-\# negative values.
-\#
-\# Indents can be turned off individually with ILX, IRX, and IBX.
-\# LEFT and RIGHT indents may be combined and manipulated
-\# separately, (e.g. you can have an IL of 2P and an IR of 4P
-\# operative at the same time, and then change, say, the IL to
-\# 4P--thereby left indenting 6P--while the IR remains at 4P.
-\#
-\# IB automatically turns off IL and IR. They have to be reinvoked
-\# again when needed. IL and IR automatically turn IB off; it, too,
-\# has to be reinvoked with needed.
-\#
-\# All indents can be turned off at once with IQ. The ILX, IRX, IBX,
-\# and IQ macros simply turn the indents off; the values stored in
-\# the respective indent macros (IL, IR, IB) remain in effect. If
-\# the user wishes to clear the values, the I<LRB>X macros should be
-\# invoked with the single argument CLEAR. IQ CLEAR clears out
-\# the values stored for all indent styles.
-\#
-\# Indents *must* be turned off before settting string tabs
-\# inside PAD. Generally, in order not to get confused, it's a
-\# good idea to turn all indents off before setting any tabs.
-\#
-\# TI and HI are special cases. There's no need to turn them off,
-\# since they affect only one line--the first after their
-\# invocation. Like the other indent styles, the first time
-\# they're invoked, they require a value in iPpcm; each subsequent
-\# invocation without an argument will use the same value. To
-\# change the value, simply pass a new value. Values for TI and HI
-\# are *not* additive.
-\#
-\# HI presupposes that you already have a left or both indent on.
-\# HI will never hang a line outside the left margin of a document
-\# or column. In other words, you must have IL or IB on before you
-\# can use HI.
+.ig
+There are five styles of indents: left, right, both, temporary,
+and hanging. Each is set/invoked with a different macro.
+Indent macros begin with the letter "I", hence .IL means "indent left,"
+.IR means "indent right," and so on.
+
+The first time any of the indent macros is used, it requires an
+argument--the size of the indent (with a unit of measure). The
+size may also be entered using the \w escape--very useful
+for numbered lists using HI. The unit of measure is required.
+Subsequent invocations don't require the argument; the indent
+measure remains the same until it's changed by invoking the macro
+with an argument again.
+
+If no indents are in effect, the arguments passed to indent macros are
+measured from the left and right margins of the page. If a left indent
+or a right indent is already in effect, the arguments passed to
+the indent macros are calculated from the current values; in other words,
+the arguments are additive. If you quit an indent and later return
+to it, its value will be the value last in effect, unless you pass
+it an argument. If you do pass an argument, it is added to the last
+value in effect, unless you cleared the indent with one of
+.I<LRB>X/Q macros.
+
+Example
+-------
+
+.IL 2P
+...some text...
+.IL 2P
+...some text...
+.IQ
+...some text...
+.IL
+...some text...
+
+The first .IL 2P indents text 2P from the left margin. The second
+.IL 2P indents text by an additional 2P, i.e. 4P from the left margin.
+.IQ turns the indent off. The last .IL (which has no argument)
+takes its value from the total of all arguments passed to .IL (in
+this case, 2P and 2P), therefore it indents 2P+2P from the left
+margin, i.e. 4P. If you wanted the last .IL to indent just 2P,
+you'd either have to reset the .IL prior to .IQ (.IL -2P), or pass
+the last .IL the argument 2P.
+
+To reverse the sense of an indent added to an indent, you may use
+negative values.
+
+Indents can be turned off individually with ILX, IRX, and IBX.
+LEFT and RIGHT indents may be combined and manipulated
+separately, (e.g. you can have an IL of 2P and an IR of 4P
+operative at the same time, and then change, say, the IL to
+4P--thereby left indenting 6P--while the IR remains at 4P.
+
+IB automatically turns off IL and IR. They have to be reinvoked
+again when needed. IL and IR automatically turn IB off; it, too,
+has to be reinvoked with needed.
+
+All indents can be turned off at once with IQ. The ILX, IRX, IBX,
+and IQ macros simply turn the indents off; the values stored in
+the respective indent macros (IL, IR, IB) remain in effect. If
+the user wishes to clear the values, the I<LRB>X macros should be
+invoked with the single argument CLEAR. IQ CLEAR clears out
+the values stored for all indent styles.
+
+Indents *must* be turned off before settting string tabs
+inside PAD. Generally, in order not to get confused, it's a
+good idea to turn all indents off before setting any tabs.
+
+TI and HI are special cases. There's no need to turn them off,
+since they affect only one line--the first after their
+invocation. Like the other indent styles, the first time
+they're invoked, they require a value in iPpcm; each subsequent
+invocation without an argument will use the same value. To
+change the value, simply pass a new value. Values for TI and HI
+are *not* additive.
+
+HI presupposes that you already have a left or both indent on.
+HI will never hang a line outside the left margin of a document
+or column. In other words, you must have IL or IB on before you
+can use HI.
+..
\#
\# INDENT LEFT
\# -----------
@@ -3625,7 +3657,7 @@
. if !d$CHAPTER_STRING \{ .CHAPTER_STRING "Chapter" \}
. if !d$DRAFT_STRING \{ .DRAFT_STRING "Draft" \}
. if !d$REVISION_STRING \{ .REVISION_STRING "Rev." \}
-\# Default
+.\" Default
. if \\n[#DOC_TYPE]=1 \{\
. ie \\n[#COPY_STYLE]=1 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
@@ -3657,9 +3689,9 @@
. \}
. \}
. \}
-\# Chapter
+.\" Chapter
. if \\n[#DOC_TYPE]=2 \{\
-\# Copystyle DRAFT
+.\" Copystyle DRAFT
. ie \\n[#COPY_STYLE]=1 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
. el \{ .PAGENUM_STYLE roman \}
@@ -3669,13 +3701,13 @@
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE]
. \}
-. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING]\}
+. el .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING]
. \}
. el \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE]
. \}
-. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING]
\\*[$CHAPTER]\}
+. el .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER]
. \}
. \}
. el \{\
@@ -3788,7 +3820,7 @@
. \}
. \}
. \}
-\# Copystyle FINAL
+.\" Copystyle FINAL
. el \{\
. if r#DRAFT_WITH_PAGENUM \{ .rr #DRAFT_WITH_PAGENUM \}
. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
@@ -3813,7 +3845,7 @@
. \}
. \}
. \}
-\# Named
+.\" Named
. if \\n[#DOC_TYPE]=3 \{\
. ie \\n[#COPY_STYLE]=1 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
@@ -3895,8 +3927,8 @@
\#
\#
.MAC DRAFT END \"Draft number
-. ie '\\$1'' \{ .ds $DRAFT \}
-. el \{ .ds $DRAFT " \\$1\}
+. ie '\\$1'' .ds $DRAFT
+. el .ds $DRAFT " \\$1
.END
\#
\#
@@ -3914,7 +3946,7 @@
. nr #AUTHOR_NUM -1 1
. while \\n[#NUM_ARGS]>\\n[#AUTHOR_NUM] \{\
. ds $AUTHOR_\\n+[#AUTHOR_NUM] \\$\\n[#AUTHOR_NUM]
-. \}
+.\}
. nr #NUM_AUTHORS \\n[#NUM_ARGS]%2 \"Use mod 2 to test if odd or even # of
authors
. ie \\n[#NUM_AUTHORS]=1 \{ .nr #AUTHOR_LINES 0 \}
. el \{ .nr #AUTHOR_LINES 1 \}
@@ -3930,7 +3962,7 @@
. nr #MISC_NUM -1 1
. while \\n[#NUM_ARGS]>\\n[#MISC_NUM] \{\
. ds $MISC_\\n+[#MISC_NUM] \\$\\n[#MISC_NUM]
-. \}
+.\}
. nr #NUM_MISCS \\n[#NUM_ARGS]
.END
\#
@@ -4097,15 +4129,19 @@
\# TYPE-STYLE CONTROL MACROS
\# -------------------------
\#
-\# The control macros for family, font, size, quad and color are here
-\# grouped together. Each (e.g. _FAMILY or _FONT) tests for a calling
-\# alias before performing the action(s) appropriate to the calling
-\# macro. Defaults for all these guys are set in DEFAULTS, and
-\# listed in the "Control Macros" section of the documentation
-\# pertinent to the macro whose style is to be changed.
+.ig
+The control macros for family, font, size, quad and color are here
+grouped together. Each (e.g. _FAMILY or _FONT) tests for a calling
+alias before performing the action(s) appropriate to the calling
+macro. Defaults for all these guys are set in DEFAULTS, and listed
+in the "Control Macros" section of the documentation pertinent to
+the macro whose style is to be changed.
+..
\#
.MAC _FAMILY END
. if '\\$0'AUTHOR_FAMILY' .ds $AUTHOR_FAM \\$1
+. if '\\$0'BIBLIOGRAPHY_FAMILY' .ds $BIB_FAM \\$1
+. if '\\$0'BIBLIOGRAPHY_STRING_FAMILY' .ds $BIB_STRING_FAM \\$1
. if '\\$0'BLOCKQUOTE_FAMILY' .ds $BQUOTE_FAM \\$1
. if '\\$0'CITATION_FAMILY' .ds $BQUOTE_FAM \\$1
. if '\\$0'CITE_FAMILY' .ds $BQUOTE_FAM \\$1
@@ -4128,6 +4164,7 @@
. if '\\$0'DOCTYPE_FAMILY' .ds $DOCTYPE_FAM \\$1
. if '\\$0'ENDNOTE_FAMILY' .ds $EN_FAM \\$1
. if '\\$0'ENDNOTE_NUMBER_FAMILY' .ds $EN_NUMBER_FAM \\$1
+. if '\\$0'ENDNOTE_LINENUMBER_FAMILY' .ds $EN_LN_FAM \\$1
. if '\\$0'ENDNOTE_STRING_FAMILY' .ds $EN_STRING_FAM \\$1
. if '\\$0'ENDNOTE_TITLE_FAMILY' .ds $EN_TITLE_FAM \\$1
. if '\\$0'EPIGRAPH_FAMILY' .ds $EPI_FAM \\$1
@@ -4161,6 +4198,8 @@
\#
.MAC _FONT END
. if '\\$0'AUTHOR_FONT' .ds $AUTHOR_FT \\$1
+. if '\\$0'BIBLIOGRAPHY_FONT' .ds $BIB_FT \\$1
+. if '\\$0'BIBLIOGRAPHY_STRING_FONT' .ds $BIB_STRING_FT \\$1
. if '\\$0'BLOCKQUOTE_FONT' .ds $BQUOTE_FT \\$1
. if '\\$0'CITATION_FONT' .ds $BQUOTE_FT \\$1
. if '\\$0'CITE_FONT' .ds $BQUOTE_FT \\$1
@@ -4180,6 +4219,7 @@
. if '\\$0'DOCTYPE_FONT' .ds $DOCTYPE_FT \\$1
. if '\\$0'ENDNOTE_FONT' .ds $EN_FT \\$1
. if '\\$0'ENDNOTE_NUMBER_FONT' .ds $EN_NUMBER_FT \\$1
+. if '\\$0'ENDNOTE_LINENUMBER_FONT' .ds $EN_LN_FT \\$1
. if '\\$0'ENDNOTE_STRING_FONT' .ds $EN_STRING_FT \\$1
. if '\\$0'ENDNOTE_TITLE_FONT' .ds $EN_TITLE_FT \\$1
. if '\\$0'EPIGRAPH_FONT' .ds $EPI_FT \\$1
@@ -4205,6 +4245,7 @@
\#
.MAC _SIZE END
. if '\\$0'AUTHOR_SIZE' .ds $AUTHOR_SIZE_CHANGE \\$1
+. if '\\$0'BIBLIOGRAPHY_STRING_SIZE' .ds $BIB_STRING_SIZE_CHANGE \\$1
. if '\\$0'BLOCKQUOTE_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1
. if '\\$0'CITATION_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1
. if '\\$0'CITE_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1
@@ -4223,6 +4264,7 @@
. if '\\$0'DOC_COVER_TITLE_SIZE' .ds $DOC_COVER_TITLE_SIZE_CHANGE
\\$1
. if '\\$0'DOCTYPE_SIZE' .ds $DOCTYPE_SIZE_CHANGE \\$1
. if '\\$0'ENDNOTE_NUMBER_SIZE' .ds $EN_NUMBER_SIZE_CHANGE \\$1
+. if '\\$0'ENDNOTE_LINENUMBER_SIZE' .ds $EN_LN_SIZE_CHANGE \\$1
. if '\\$0'ENDNOTE_STRING_SIZE' .ds $EN_STRING_SIZE_CHANGE \\$1
. if '\\$0'ENDNOTE_TITLE_SIZE' .ds $EN_TITLE_SIZE_CHANGE \\$1
. if '\\$0'EPIGRAPH_SIZE' .ds $EPI_SIZE_CHANGE \\$1
@@ -4421,6 +4463,12 @@
\#
\#
.MAC _QUAD END
+. if '\\$0'BIBLIOGRAPHY_QUAD' \{\
+. ds $BIB_QUAD \\$1
+. if '\\*[$BIB_QUAD]'R' .ab Fatal error: \\$0 must be set to either L or
J
+. if '\\*[$BIB_QUAD]'C' .ab Fatal error: \\$0 must be set to either L or
J
+. \}
+. if '\\$0'BIBLIOGRAPHY_STRING_QUAD' .ds $BIB_STRING_QUAD \\$1
. if '\\$0'BLOCKQUOTE_QUAD' .ds $BQUOTE_QUAD \\$1
. if '\\$0'CITATION_QUAD' .ds $BQUOTE_QUAD \\$1
. if '\\$0'CITE_QUAD' .ds $BQUOTE_QUAD \\$1
@@ -4432,7 +4480,11 @@
. ds $DOC_QUAD \\$1
. QUAD \\*[$DOC_QUAD]
. \}
-. if '\\$0'ENDNOTE_QUAD' .ds $EN_QUAD \\$1
+. if '\\$0'ENDNOTE_QUAD' \{\
+. ds $EN_QUAD \\$1
+. if '\\*[$EN_QUAD]'R' .ab Fatal error: \\$0 must be set to either L or J
+. if '\\*[$EN_QUAD]'C' .ab Fatal error: \\$0 must be set to either L or J
+. \}
. if '\\$0'ENDNOTE_STRING_QUAD' .ds $EN_STRING_QUAD \\$1
. if '\\$0'ENDNOTE_TITLE_QUAD' .ds $EN_TITLE_QUAD \\$1
. if '\\$0'EPIGRAPH_QUAD' .ds $EPI_QUAD \\$1
@@ -4510,14 +4562,14 @@
. \}
. if !r#HDRFTR_RULE \{ .HDRFTR_RULE \}
. if !r#PAGE_NUM_SET \{ .PAGENUMBER 1 \}
-\# Read in number registers and strings for type parameters
+.\" Read in number registers and strings for type parameters
. nr #DOC_L_MARGIN \\n[#L_MARGIN]
. nr #DOC_L_LENGTH \\n[#L_LENGTH]
. nr #DOC_R_MARGIN \\n[#PAGE_WIDTH]-(\\n[#DOC_L_MARGIN]+\\n[#L_LENGTH])
. ds $DOC_FAM \\*[$FAMILY]
. nr #DOC_PT_SIZE \\n[#PT_SIZE]
. nr #DOC_LEAD \\n[#LEAD]
-\# #SAVED_DOC_LEAD is set in COLLATE
+.\" #SAVED_DOC_LEAD is set in COLLATE
. if r#SAVED_DOC_LEAD \{\
. if !\\n[#DOC_LEAD]=\\n[#SAVED_DOC_LEAD] \{ .nr #RERUN_TRAPS 1 \}
. \}
@@ -4529,7 +4581,7 @@
. \}
. ds $DOC_QUAD \\*[$QUAD_VALUE]
. ds $PP_FT \\*[$FONT]
-\# Counters
+.\" Counters
. nr #PP 0
. nr #FN_NUMBER 0 1
. nr #EN_NUMBER 0 1
@@ -4538,7 +4590,7 @@
. RESET_HEAD_NUMBER
. RESET_SUBHEAD_NUMBER
. RESET_PARAHEAD_NUMBER
-\# General style defaults for both PRINTSTYLEs
+.\" General style defaults for both PRINTSTYLEs
. nr #PP_STYLE 1
. PARA_INDENT \\n[#PP_INDENT]u
. if !d$HDRFTR_FAM \{ .HDRFTR_FAMILY \\*[$DOC_FAM] \}
@@ -4560,21 +4612,22 @@
. 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 !r#FN_MARKER_STYLE \{ .FOOTNOTE_MARKER_STYLE STAR \}
-. if !d$EN_PN_STYLE \{ .ENDNOTES_PAGENUM_STYLE digit \}
-. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \}
-. if !d$EN_FN \{ .ENDNOTE_FONT R \}
-. if !d$EN_QUAD \{ .ENDNOTE_QUAD \\*[$DOC_QUAD] \}
-. if !d$EN_STRING \{ .ENDNOTE_STRING "Endnotes" \}
-. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$EN_FAM] \}
-. if !d$EN_STRING_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \}
-. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \}
-. if !r#EN_STRING_CAPS \{ .ENDNOTE_STRING_CAPS \}
+. if !d$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_MARKER_STYLE] \{ .FOOTNOTE_MARKER_STYLE STAR \}
+. if !\\n[#EN_MARKER_STYLE] \{ .ENDNOTE_MARKER_STYLE NUMBER \}
+. if !d$EN_PN_STYLE \{ .ENDNOTES_PAGENUM_STYLE digit \}
+. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \}
+. if !d$EN_FT \{ .ENDNOTE_FONT R \}
+. if !d$EN_QUAD \{ .ENDNOTE_QUAD \\*[$DOC_QUAD] \}
+. if !d$EN_STRING \{ .ENDNOTE_STRING "Endnotes" \}
+. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$EN_FAM] \}
+. if !d$EN_STRING_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \}
+. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \}
+. if !r#EN_STRING_CAPS \{ .ENDNOTE_STRING_CAPS \}
. if !d$EN_TITLE \{\
. ie \\n[#DOC_TYPE]=2 \{\
. ie '\\*[$CHAPTER]'' \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING]" \}
@@ -4589,73 +4642,83 @@
. if !r#EN_NUMBERS_ALIGN_LEFT \{\
. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \}
. \}
-. if !d$TOC_HEADER_STRING \{ .TOC_HEADER_STRING "Contents" \}
-. if !d$TOC_HEADER_QUAD \{ .TOC_HEADER_QUAD LEFT \}
-. if !d$TOC_PN_STYLE \{ .TOC_PAGENUM_STYLE roman \}
-. if !r#TOC_PN_PADDING \{ .TOC_PADDING 3 \}
-. if !r#TOC_TITLE_INDENT \{ .TOC_TITLE_INDENT 0 \}
-. if !r#TOC_HEAD_INDENT \{ .TOC_HEAD_INDENT 18p \}
-. if !r#TOC_SH_INDENT \{ .TOC_SUBHEAD_INDENT 30p \}
-. if !r#TOC_PH_INDENT \{ .TOC_PARAHEAD_INDENT 42p \}
-\# String defaults for both PRINTSTYLEs
+. if !d$EN_LN_GAP \{ .ENDNOTE_LINENUMBER_GAP 1.5n
\}
+. if !d$BIB_PN_STYLE \{ .BIBLIOGRAPHY_PAGENUM_STYLE digit
\}
+. if !d$BIB_FAM \{ .BIBLIOGRAPHY_FAMILY \\*[$DOC_FAM]
\}
+. if !d$BIB_FT \{ .BIBLIOGRAPHY_FONT R
\}
+. if !d$BIB_QUAD \{ .BIBLIOGRAPHY_QUAD \\*[$DOC_QUAD]
\}
+. if !d$BIB_STRING \{ .BIBLIOGRAPHY_STRING "Bibliography"
\}
+. if !d$BIB_STRING_FAM \{ .BIBLIOGRAPHY_STRING_FAMILY \\*[$BIB_FAM]
\}
+. if !d$BIB_STRING_QUAD \{ .BIBLIOGRAPHY_STRING_QUAD CENTER
\}
+. if !r#BIB_STRING_UNDERSCORE \{ .BIBLIOGRAPHY_STRING_UNDERSCORE 2
\}
+. if !r#BIB_STRING_CAPS \{ .BIBLIOGRAPHY_STRING_CAPS
\}
+. if !d$TOC_HEADER_STRING \{ .TOC_HEADER_STRING "Contents" \}
+. if !d$TOC_HEADER_QUAD \{ .TOC_HEADER_QUAD LEFT \}
+. if !d$TOC_PN_STYLE \{ .TOC_PAGENUM_STYLE roman \}
+. if !r#TOC_PN_PADDING \{ .TOC_PADDING 3 \}
+. if !r#TOC_TITLE_INDENT \{ .TOC_TITLE_INDENT 0 \}
+. if !r#TOC_HEAD_INDENT \{ .TOC_HEAD_INDENT 18p \}
+. if !r#TOC_SH_INDENT \{ .TOC_SUBHEAD_INDENT 30p \}
+. if !r#TOC_PH_INDENT \{ .TOC_PARAHEAD_INDENT 42p \}
+.\" String defaults for both PRINTSTYLEs
. ie \\n[#DOC_TYPE]=1 \{\
. ie '\\*[$DOC_TITLE]'' \{\
-. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT
\\*[$AUTHOR_1]\}
+. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
. rr #USER_DEF_HDRFTR_LEFT
-. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 \{ .ds $HDRFTR_RIGHT \\*[$TITLE]\}
+. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE]
. rr #USER_DEF_HDRFTR_RIGHT
. \}
. el \{\
. if \\n[#COPY_STYLE]=1 \{ .DRAFT_WITH_PAGENUMBER \}
-. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT
\\*[$AUTHOR_1]\}
+. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
. rr #USER_DEF_HDRFTR_LEFT
-. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{ .ds $HDRFTR_CENTER
\\*[$TITLE]\}
+. if \\n[#USER_DEF_HDRFTR_CENTER]=0 .ds $HDRFTR_CENTER \\*[$TITLE]
. rr #USER_DEF_HDRFTR_CENTER
-. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 \{ .ds $HDRFTR_RIGHT
\\*[$DOC_TITLE]\}
+. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$DOC_TITLE]
. rr #USER_DEF_HDRFTR_RIGHT
. \}
. \}
. el \{\
-. if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT \\*[$AUTHOR_1]\}
+. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1]
. rr #USER_DEF_HDRFTR_LEFT
-. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 \{ .ds $HDRFTR_RIGHT \\*[$TITLE]\}
+. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE]
. rr #USER_DEF_HDRFTR_RIGHT
. \}
-. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \}
-. if !d$FINIS_STRING \{ .FINIS_STRING "END" \}
-\# Covers
+. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \}
+. if !d$FINIS_STRING \{ .FINIS_STRING "END" \}
+.\" Covers
. if !r#DOC_COVERS_OFF \{ .nr #DOC_COVERS 1 \}
. if !r#COVERS_OFF \{ .nr #COVERS 1 \}
. if !d$COVER_COPYRIGHT_QUAD \{ .COVER_COPYRIGHT_QUAD R \}
. if !d$COVER_MISC_QUAD \{ .COVER_MISC_QUAD L \}
. if !d$DOC_COVER_COPYRIGHT_QUAD \{ .DOC_COVER_COPYRIGHT_QUAD R \}
. if !d$DOC_COVER_MISC_QUAD \{ .DOC_COVER_MISC_QUAD L \}
-\# Defaults for printstyle TYPEWRITE
+.\" Defaults for printstyle TYPEWRITE
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_QUOTES]=1 \{ .UNDERLINE_QUOTES \}
. if \\n[#UNDERLINE_QUOTES]=0 \{ .UNDERLINE_QUOTES OFF \}
-\# +Quotes and blockquotes
+.\" +Quotes and blockquotes
. if !r#Q_OFFSET_VALUE \{ .QUOTE_INDENT 2 \}
-\# +Epigraphs
+.\" +Epigraphs
. if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 2 \}
-\# +Linebreaks
+.\" +Linebreaks
. if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 2p \}
-\# +Footnotes
+.\" +Footnotes
. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE +0 \}
. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 2i \}
-\# +Paragraph heads
+.\" +Paragraph heads
. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \}
-\# +Endnotes
+.\" +Endnotes
. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT \\n[#PP_INDENT] \}
-\# +Footnotes
+.\" +Footnotes
. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 6p \}
-\# +Slant stuff
+.\" +Slant stuff
. if !r#SLANT_MEANS_SLANT \{\
. ie \\n[#UNDERLINE_SLANT]=1 \{ .UNDERLINE_SLANT \}
. el \{ .UNDERLINE_SLANT OFF \}
. \}
. \}
-\# Defaults for printstyle TYPESET
+.\" Defaults for printstyle TYPESET
. if \\n[#PRINT_STYLE]=2 \{\
. if !d$DOCHEADER_LEAD_ADJ \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
@@ -4666,97 +4729,97 @@
. \}
. el \{ .DOCHEADER_LEAD +0 \}
. \}
-\# +Cover
+.\" +Cover
. if !d$COVER_LEAD_ADJ \{ .COVER_LEAD +0 \}
. if !d$COVER_FAM \{ .COVER_FAMILY \\*[$DOC_FAM] \}
-\# (title)
+.\" (title)
. if !d$COVER_TITLE_FAM \{\
. ie !d$COVER_FAM \{ .COVER_TITLE_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_TITLE_FAMILY \\*[$COVER_FAM] \}
. \}
. if !d$COVER_TITLE_FT \{ .COVER_TITLE_FONT B \}
. if !d$COVER_TITLE_SIZE_CHANGE \{ .COVER_TITLE_SIZE +3.5 \}
-\# (chapter title)
+.\" (chapter title)
. if !d$COVER_CHAPTER_TITLE_FAM \{\
. ie !d$COVER_FAM \{ .COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_CHAPTER_TITLE_FAMILY \\*[$COVER_FAM] \}
. \}
-. if !d$COVER_CHAPTER_TITLE_FT \{ .COVER_CHAPTER_TITLE_FONT BI
\}
+. if !d$COVER_CHAPTER_TITLE_FT \{ .COVER_CHAPTER_TITLE_FONT BI
\}
. if !d$COVER_CHAPTER_TITLE_SIZE_CHANGE \{ .COVER_CHAPTER_TITLE_SIZE +4
\}
-\# (subtitle)
+.\" (subtitle)
. if !d$COVER_SUBTITLE_FAM \{\
. ie !d$COVER_FAM \{ .COVER_SUBTITLE_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_SUBTITLE_FAMILY \\*[$COVER_FAM] \}
. \}
. if !d$COVER_SUBTITLE_FT \{ .COVER_SUBTITLE_FONT R \}
. if !d$COVER_SUBTITLE_SIZE_CHANGE \{ .COVER_SUBTITLE_SIZE +0 \}
-\# (attribution and author[s])
+.\" (attribution and author[s])
. if !d$COVER_AUTHOR_FAM \{\
. ie !d$COVER_FAM \{ .COVER_AUTHOR_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_AUTHOR_FAMILY \\*[$COVER_FAM] \}
. \}
. if !d$COVER_AUTHOR_FT \{ .COVER_AUTHOR_FONT I \}
. if !d$COVER_AUTHOR_SIZE_CHANGE \{ .COVER_AUTHOR_SIZE +0 \}
-\# (doctype if "named")
+.\" (doctype if "named")
. if !d$COVER_DOCTYPE_FAM \{\
. ie !d$COVER_FAM \{ .COVER_DOCTYPE_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_DOCTYPE_FAMILY \\*[$COVER_FAM] \}
. \}
. if !d$COVER_DOCTYPE_FT \{ .COVER_DOCTYPE_FONT BI \}
. if !d$COVER_DOCTYPE_SIZE_CHANGE \{ .COVER_DOCTYPE_SIZE +3 \}
-\# (copyright)
+.\" (copyright)
. if !d$COVER_COPYRIGHT_FAM \{\
. ie !d$COVER_FAM \{ .COVER_COPYRIGHT_FAMILY \\*[$DOC_FAM] \}
. el \{ .COVER_COPYRIGHT_FAMILY \\*[$COVER_FAM] \}
. \}
. if !d$COVER_COPYRIGHT_FT \{ .COVER_COPYRIGHT_FONT R \}
. if !d$COVER_COPYRIGHT_SIZE_CHANGE \{ .COVER_COPYRIGHT_SIZE -2 \}
-\# +Doc cover
+.\" +Doc cover
. if !d$DOC_COVER_LEAD_ADJ \{ .DOC_COVER_LEAD +0 \}
. if !d$DOC_COVER_FAM \{ .DOC_COVER_FAMILY \\*[$DOC_FAM] \}
-\# (title)
+.\" (title)
. if !d$DOC_COVER_TITLE_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_TITLE_FAMILY \\*[$DOC_FAM] \}
. el \{ .DOC_COVER_TITLE_FAMILY \\*[$DOC_COVER_FAM] \}
. \}
. if !d$DOC_COVER_TITLE_FT \{ .DOC_COVER_TITLE_FONT B \}
. if !d$DOC_COVER_TITLE_SIZE_CHANGE \{ .DOC_COVER_TITLE_SIZE +3.5 \}
-\# (chapter title)
+.\" (chapter title)
. if !d$DOC_COVER_CHAPTER_TITLE_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_CHAPTER_TITLE_FAMILY
\\*[$DOC_FAM] \}
. el \{ .DOC_COVER_CHAPTER_TITLE_FAMILY
\\*[$DOC_COVER_FAM] \}
. \}
-. if !d$DOC_COVER_CHAPTER_TITLE_FT \{
.DOC_COVER_CHAPTER_TITLE_FONT BI \}
+. if !d$DOC_COVER_CHAPTER_TITLE_FT \{
.DOC_COVER_CHAPTER_TITLE_FONT BI \}
. if !d$DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE \{
.DOC_COVER_CHAPTER_TITLE_SIZE +4 \}
-\# (subtitle)
+.\" (subtitle)
. if !d$DOC_COVER_SUBTITLE_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_SUBTITLE_FAMILY \\*[$DOC_FAM] \}
. el \{ .DOC_COVER_SUBTITLE_FAMILY \\*[$DOC_COVER_FAM] \}
. \}
. if !d$DOC_COVER_SUBTITLE_FT \{ .DOC_COVER_SUBTITLE_FONT R \}
. if !d$DOC_COVER_SUBTITLE_SIZE_CHANGE \{ .DOC_COVER_SUBTITLE_SIZE +0 \}
-\# (attribution and author[s])
+.\" (attribution and author[s])
. if !d$DOC_COVER_AUTHOR_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_FAM] \}
-. el \{ .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_COVER_FAM] \}
+. el \{ .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_COVER_FAM] \}
. \}
. if !d$DOC_COVER_AUTHOR_FT \{ .DOC_COVER_AUTHOR_FONT I \}
. if !d$DOC_COVER_AUTHOR_SIZE_CHANGE \{ .DOC_COVER_AUTHOR_SIZE +0 \}
-\# (doctype if "named")
+.\" (doctype if "named")
. if !d$DOC_COVER_DOCTYPE_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_DOCTYPE_FAMILY \\*[$DOC_FAM] \}
. el \{ .DOC_COVER_DOCTYPE_FAMILY \\*[$DOC_COVER_FAM] \}
. \}
. if !d$DOC_COVER_DOCTYPE_FT \{ .DOC_COVER_DOCTYPE_FONT BI \}
. if !d$DOC_COVER_DOCTYPE_SIZE_CHANGE \{ .DOC_COVER_DOCTYPE_SIZE +3 \}
-\# (copyright)
+.\" (copyright)
. if !d$DOC_COVER_COPYRIGHT_FAM \{\
. ie !d$DOC_COVER_FAM \{ .DOC_COVER_COPYRIGHT_FAMILY \\*[$DOC_FAM] \}
. el \{ .DOC_COVER_COPYRIGHT_FAMILY \\*[$DOC_COVER_FAM] \}
. \}
. if !d$DOC_COVER_COPYRIGHT_FT \{ .DOC_COVER_COPYRIGHT_FONT R
\}
. if !d$DOC_COVER_COPYRIGHT_SIZE_CHANGE \{ .DOC_COVER_COPYRIGHT_SIZE -2
\}
-\# +Docheader
+.\" +Docheader
. if !d$DOCHEADER_FAM \{ .DOCHEADER_FAMILY \\*[$DOC_FAM] \}
. if !d$TITLE_FAM \{\
. ie !d$DOCHEADER_FAM \{ .TITLE_FAMILY \\*[$DOC_FAM] \}
@@ -4778,22 +4841,22 @@
. el \{ .SUBTITLE_FAMILY \\*[$DOCHEADER_FAM] \}
. \}
. if !d$SUBTITLE_FT \{ .SUBTITLE_FONT R \}
-. if !d$SUBTITLE_SIZE_CHANGE \{ .SUBTITLE_SIZE +0 \}
+. if !d$SUBTITLE_SIZE_CHANGE \{ .SUBTITLE_SIZE +0 \}
. if !d$AUTHOR_FAM \{\
. ie !d$DOCHEADER_FAM \{ .AUTHOR_FAMILY \\*[$DOC_FAM] \}
. el \{ .AUTHOR_FAMILY \\*[$DOCHEADER_FAM] \}
. \}
-. if !d$AUTHOR_FT \{ .AUTHOR_FONT I \}
+. if !d$AUTHOR_FT \{ .AUTHOR_FONT I \}
. if !d$AUTHOR_SIZE_CHANGE \{ .AUTHOR_SIZE +0 \}
. if !d$DOCTYPE_FAM \{\
. ie !d$DOCHEADER_FAM \{ .DOCTYPE_FAMILY \\*[$DOC_FAM] \}
. el \{ .DOCTYPE_FAMILY \\*[$DOCHEADER_FAM] \}
. \}
-. if !d$DOCTYPE_FT \{ .DOCTYPE_FONT BI \}
-. if !d$DOCTYPE_SIZE_CHANGE \{ .DOCTYPE_SIZE +3 \}
-\# +Headers and footers
+. if !d$DOCTYPE_FT \{ .DOCTYPE_FONT BI \}
+. if !d$DOCTYPE_SIZE_CHANGE \{ .DOCTYPE_SIZE +3 \}
+.\" +Headers and footers
. if !d$HDRFTR_LEFT_FAM \{ .HDRFTR_LEFT_FAMILY \\*[$DOC_FAM] \}
-. if !d$HDRFTR_LEFT_FT \{ .HDRFTR_LEFT_FONT R \}
+. if !d$HDRFTR_LEFT_FT \{ .HDRFTR_LEFT_FONT R \}
. if \\n[#HDRFTR_LEFT_CAPS] \{\
. if !d$HDRFTR_LEFT_SIZE_CHANGE \{ .HDRFTR_LEFT_SIZE -2 \}
. \}
@@ -4810,47 +4873,47 @@
. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -2 \}
. \}
. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -.5
\}
-\# +Heads
+.\" +Heads
. if !d$HEAD_FAM \{ .HEAD_FAMILY \\*[$DOC_FAM]
\}
. if !d$HEAD_FT \{ .HEAD_FONT B
\}
. if !d$HEAD_SIZE_CHANGE \{ .HEAD_SIZE +1
\}
. if !r#HEAD_SPACE \{ .HEAD_SPACE
\}
-\# +Subheads
+.\" +Subheads
. if !d$SH_FAM \{ .SUBHEAD_FAMILY \\*[$DOC_FAM]
\}
. if !d$SH_FT \{ .SUBHEAD_FONT B
\}
. if !d$SH_SIZE_CHANGE \{ .SUBHEAD_SIZE +.5
\}
-\# +Paragraph heads
+.\" +Paragraph heads
. if !d$PH_FAM \{ .PARAHEAD_FAMILY \\*[$DOC_FAM]
\}
. if !d$PH_FT \{ .PARAHEAD_FONT BI
\}
. if !d$PH_SIZE_CHANGE \{ .PARAHEAD_SIZE -.25
\}
. if !r#PH_INDENT \{ .PARAHEAD_INDENT
\\n[#PP_INDENT]u/2u \}
-\# +Quotes
+.\" +Quotes
. if !d$QUOTE_FAM \{ .QUOTE_FAMILY \\*[$DOC_FAM]
\}
. if !d$QUOTE_FT \{ .QUOTE_FONT I
\}
. if !d$QUOTE_SIZE_CHANGE \{ .QUOTE_SIZE +0
\}
. if !r#Q_OFFSET_VALUE \{ .QUOTE_INDENT 3
\}
-\# +Blockquotes
+.\" +Blockquotes
+.\" Note: the leading for quotes and blockquotes is set after .DEFAULTS in
START
. if !d$BQUOTE_FAM \{ .BLOCKQUOTE_FAMILY \\*[$DOC_FAM]
\}
. if !d$BQUOTE_FT \{ .BLOCKQUOTE_FONT R
\}
. if !d$BQUOTE_SIZE_CHANGE \{ .BLOCKQUOTE_SIZE -1
\}
. if !d$BQUOTE_QUAD \{ .BLOCKQUOTE_QUAD LEFT
\}
-\# +Epigraphs
+.\" +Epigraphs
. if !d$EPI_FAM \{ .EPIGRAPH_FAMILY \\*[$DOC_FAM]
\}
. if !d$EPI_FT \{ .EPIGRAPH_FONT R
\}
. if !d$EPI_SIZE_CHANGE \{ .EPIGRAPH_SIZE -1.5
\}
. if !r#EPI_AUTOLEAD \{ .EPIGRAPH_AUTOLEAD 2
\}
. if !d$EPI_QUAD \{ .EPIGRAPH_QUAD \\*[$DOC_QUAD]
\}
. if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 3
\}
-\# +Linebreaks
+.\" +Linebreaks
. if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 3p
\}
-\# +Footnotes
+.\" +Footnotes
. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P
\}
. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p
\}
. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE -2
\}
. if !r#FN_AUTOLEAD \{ .FOOTNOTE_AUTOLEAD 2
\}
-\# +Endnotes
+.\" +Endnotes
. if !r#EN_PS \{ .ENDNOTE_PT_SIZE \\n[#DOC_PT_SIZE]u
\}
-. if !d$EN_LEAD \{ .ENDNOTE_LEAD 14 ADJUST
\}
. if !d$EN_STRING_FT \{ .ENDNOTE_STRING_FONT B
\}
. if !d$EN_STRING_SIZE_CHANGE \{ .ENDNOTE_STRING_SIZE +1
\}
. if !d$EN_TITLE_FT \{ .ENDNOTE_TITLE_FONT B
\}
@@ -4858,34 +4921,54 @@
. if !d$EN_NUMBER_FT \{ .ENDNOTE_NUMBER_FONT B
\}
. if !d$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE +0
\}
. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m
\}
-\# +Table of contents
+.\" +Bibliography
+. if !r#BIB_LIST \{ .BIBLIOGRAPHY_TYPE LIST .
\}
+. if !r#BIB_PS \{ .BIBLIOGRAPHY_PT_SIZE
\\n[#DOC_PT_SIZE]u \}
+. if !d$BIB_STRING_FT \{ .BIBLIOGRAPHY_STRING_FONT B
\}
+. if !d$BIB_STRING_SIZE_CHANGE \{ .BIBLIOGRAPHY_STRING_SIZE +1
\}
+.\" +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_HEADER_FAM \{ .TOC_HEADER_FAMILY \\*[$TOC_FAM]
\}
-. if !d$TOC_HEADER_SIZE_CHANGE \{ .TOC_HEADER_SIZE +4
\}
-. if !d$TOC_HEADER_FT \{ .TOC_HEADER_FONT B
\}
+. if !d$TOC_HEADER_SIZE_CHANGE \{ .TOC_HEADER_SIZE +4
\}
+. if !d$TOC_HEADER_FT \{ .TOC_HEADER_FONT B
\}
. if !d$TOC_TITLE_FAM \{ .TOC_TITLE_FAMILY \\*[$TOC_FAM]
\}
-. if !d$TOC_PN_FAM \{ .TOC_PN_FAMILY \\*[$TOC_FAM]
\}
-. if !d$TOC_HEAD_FAM \{ .TOC_HEAD_FAMILY \\*[$TOC_FAM]
\}
-. if !d$TOC_SH_FAM \{ .TOC_SUBHEAD_FAMILY \\*[$TOC_FAM]
\}
+. if !d$TOC_PN_FAM \{ .TOC_PN_FAMILY \\*[$TOC_FAM]
\}
+. if !d$TOC_HEAD_FAM \{ .TOC_HEAD_FAMILY \\*[$TOC_FAM]
\}
+. if !d$TOC_SH_FAM \{ .TOC_SUBHEAD_FAMILY \\*[$TOC_FAM]
\}
. if !d$TOC_PH_FAM \{ .TOC_PARAHEAD_FAMILY \\*[$TOC_FAM]
\}
-. if !d$TOC_TITLE_FT \{ .TOC_TITLE_FONT BI
\}
-. if !d$TOC_PN_FT \{ .TOC_PN_FONT R
\}
-. if !d$TOC_HEAD_FT \{ .TOC_HEAD_FONT B
\}
-. if !d$TOC_SH_FT \{ .TOC_SUBHEAD_FONT R
\}
-. if !d$TOC_PH_FT \{ .TOC_PARAHEAD_FONT I
\}
-. if !d$TOC_TITLE_SIZE_CHANGE \{ .TOC_TITLE_SIZE +.5
\}
-. if !d$TOC_PN_SIZE_CHANGE \{ .TOC_PN_SIZE +0
\}
-. if !d$TOC_HEAD_SIZE_CHANGE \{ .TOC_HEAD_SIZE +.5
\}
+. if !d$TOC_TITLE_FT \{ .TOC_TITLE_FONT BI
\}
+. if !d$TOC_PN_FT \{ .TOC_PN_FONT R
\}
+. if !d$TOC_HEAD_FT \{ .TOC_HEAD_FONT B
\}
+. if !d$TOC_SH_FT \{ .TOC_SUBHEAD_FONT R
\}
+. if !d$TOC_PH_FT \{ .TOC_PARAHEAD_FONT I
\}
+. if !d$TOC_TITLE_SIZE_CHANGE \{ .TOC_TITLE_SIZE +.5
\}
+. if !d$TOC_PN_SIZE_CHANGE \{ .TOC_PN_SIZE +0
\}
+. if !d$TOC_HEAD_SIZE_CHANGE \{ .TOC_HEAD_SIZE +.5
\}
. if !d$TOC_SH_SIZE_CHANGE \{ .TOC_SUBHEAD_SIZE +0
\}
-. if !d$TOC_PH_SIZE_CHANGE \{ .TOC_PARAHEAD_SIZE +0
\}
+. if !d$TOC_PH_SIZE_CHANGE \{ .TOC_PARAHEAD_SIZE +0
\}
. \}
+.\" +Refer support
+. if !r#ENDNOTE_REFS \{ .nr #FN_REFS 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 '\\*[$REF_EN_INDENT]'' \{\
+. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS ENDNOTE 2m \}
+. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS ENDNOTE 1.5m \}
+. \}
+. if '\\*[$REF_BIB_INDENT]'' \{\
+. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS BIBLIO 2m \}
+. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS BIBLIO 1.5m :\}
+. \}
+.\" Adjust doc leading for PRINTSTYLE TYPESET
. if \\n[#PRINT_STYLE]=2 \{\
. ie \\n[#ADJ_DOC_LEAD]=1 \{ .DOC_LEAD_ADJUST \}
. el \{ . \}
. \}
-\# This diversion is to get a value for #FN_AUTOLEAD
+.\" This diversion is to get a value for #FN_AUTOLEAD
. di NULL
. ev NULL
. if \\n[#PRINT_STYLE]=1 \{\
@@ -4902,29 +4985,43 @@
. ev
. di
. ie !\\n[#COLLATE] \{\
+.\" DOC_LEAD adjusted (or not) here
. TRAPS
. rr #DOC_LEAD_ADJUST_OFF
-\# Endnote and toc leading
+.\" Endnote, bibliography and toc leading
. nr #OK_PROCESS_LEAD 1
. nr #RESTORE_DOC_LEAD \\n(.v
. nr #RESTORE_B_MARGIN \\n[#B_MARGIN]
. if \\n[#PRINT_STYLE]=1 \{\
. ie \\n[#SINGLE_SPACE] \{\
. ENDNOTE_LEAD 12 ADJUST
+. 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 \}
. \}
. \}
. 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 \}
+. el \{\
+. if \\n[#DEFER_BIB_SPACING]=1 \{\
+. BIBLIOGRAPHY_SPACING \\*[$BIB_SPACE]
+. rr #DEFER_BIB_SPACING
+. \}
+. \}
. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u
. nr #B_MARGIN \\n[#RESTORE_B_MARGIN]
. \}
@@ -4996,7 +5093,7 @@
. PRINT
\m[\\*[$COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
. \}
. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \}
-. \}
+.\}
. \}
. if \\n[#DOC_COVER]=1 \{\
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
@@ -5004,7 +5101,7 @@
. PRINT
\m[\\*[$DOC_COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
. \}
. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \}
-. \}
+.\}
. \}
. \}
. el \{\
@@ -5013,7 +5110,7 @@
. PRINT \m[\\*[$AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[]
. \}
. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \}
-. \}
+.\}
. \}
.END
\#
@@ -5057,7 +5154,7 @@
. FT \\*[$TITLE_FT]
. PT_SIZE \\*[$TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
-\# Chapter title only
+.\" Chapter title only
. ie '\\*[$CHAPTER]'' \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. if \\n[#PRINT_STYLE]=2 \{\
@@ -5078,7 +5175,7 @@
. el \{ .PRINT \\*[$CHAPTER_STRING] \}
. \}
. \}
-\# Chapter string, possibly with a chapter title
+.\" Chapter string, possibly with a chapter title
. el \{\
. ie \\n[#TITLE_COLOR]=1 \{\
. PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[]
@@ -5216,8 +5313,8 @@
\#
\#
.MAC COVERTITLE END
-. ie '\\$0'DOC_COVERTITLE' \{ .ds $DOC_COVER_TITLE \\$1\}
-. el \{ .ds $COVER_TITLE \\$1\}
+. ie '\\$0'DOC_COVERTITLE' .ds $DOC_COVER_TITLE \\$1
+. el .ds $COVER_TITLE \\$1
.END
\#
\#
@@ -5320,7 +5417,7 @@
. nr #COLUMNS_WERE_ON 1
. rr #COLUMNS
. \}
-\# Doc cover
+.\" Doc cover
. ie '\\$0'DO_DOC_COVER' \{\
. if !r#DOC_COVER_START_POS \{\
. nr #DOC_COVER_START_POS \\n[#PAGE_LENGTH]/3
@@ -5519,10 +5616,10 @@
. PRINT \\*[$MISC_\\n+[#NEXT_MISC]]
. br
. \}
-. \}
+.\}
. \}
. \}
-\# Cover
+.\" Cover
. el \{\
. if !r#COVER_START_POS \{\
. nr #COVER_START_POS \\n[#PAGE_LENGTH]/3
@@ -5721,7 +5818,7 @@
. PRINT \\*[$MISC_\\n+[#NEXT_MISC]]
. br
. \}
-. \}
+.\}
. \}
. \}
. EOL
@@ -5763,6 +5860,10 @@
. ab PRINTSTYLE missing
. \}
. nr #DOCS 1
+. if \\n[#LINENUMBERS]=1 \{\
+. NUMBER_LINES OFF
+. nr #LINENUMBERS 2
+. \}
. if \\n[#COLLATE] \{\
. COPYSTYLE \\*[$COPY_STYLE]
. nr #HEADERS_ON \\n[#HEADER_STATE]
@@ -5775,7 +5876,13 @@
. \}
. \}
. DEFAULTS
-\# Covers and doc covers
+.\" Quote and blockquote default leads are the same as #DOC_LEAD, so
+.\" they have to be set after DEFAULTS (where DOC_LEAD is finalized)
+. if !r#Q_AUTOLEAD \{ .nr #Q_LEAD \\n[#DOC_LEAD] \}
+. if !r#BQ_AUTOLEAD \{ .nr #BQ_LEAD \\n[#DOC_LEAD] \}
+. if !r#EN_Q_AUTOLEAD \{ .nr #EN_Q_LEAD \\n[#EN_LEAD] \}
+. if !r#EN_BQ_AUTOLEAD \{ .nr #EN_BQ_LEAD \\n[#EN_LEAD] \}
+.\" Covers and doc covers
. if \\n[#DOC_COVERS]=1 \{\
. if \\n[#DOC_COVER]=1 \{\
. DO_DOC_COVER
@@ -5800,9 +5907,9 @@
. rr #COVER_MISC
. \}
. \}
-\# Collate related stuff
+.\" Collate related stuff
. ie \\n[#COLLATED_DOC]=1 \{\
-\# Collect TITLE for TOC.
+.\" Collect TITLE for TOC.
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
. ie \\n[#USER_SET_TITLE_ITEM] \{\
@@ -5837,9 +5944,9 @@
. rm $TOC_AUTHORS
. \}
. \}
-\# Note the use of \!, which transparently embeds the macros used
-\# in the TOC_ENTRIES diversion. The elements they control must be
-\# processed literally when the diversion is output.
+.\" Note the use of \!, which transparently embeds the macros used
+.\" in the TOC_ENTRIES diversion. The elements they control must be
+.\" processed literally when the diversion is output.
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
@@ -5881,14 +5988,14 @@
. af #FIRST_DOC_TITLE_PN \\g[#PAGENUMBER]
. nr #FIRST_DOC_TOC_PN_PADDING \\n[#TOC_PN_PADDING]
. \}
-\# End TITLE collection
+.\" End TITLE collection
. if \\n[#PRINT_PAGENUM_ON_PAGE_1] \{\
. sp |\\n[#HEADER_MARGIN]u
. PRINT_PAGE_NUMBER
. \}
. rr #COLLATE
. rr #PAGINATION_STATE
-\# End collate stuff
+.\" End collate stuff
. ie \\n[#DOC_HEADER]=0 \{\
. PRINT \&
. if \\n[#DOC_TYPE]=4 \{\
@@ -5918,7 +6025,7 @@
. el \{\
. if \\n[#PRINT_STYLE]=2 \{ .LS \\n[#DOC_LEAD]u\\*[$DOCHEADER_LEAD_ADJ]
\}
. nr #DOCHEADER_LEAD \\n[#LEAD]
-\# Default
+.\" Default
. if \\n[#DOC_TYPE]=1 \{\
. PRINT \&
. sp |\\n[#DOCHEADER_ADVANCE]u-1v
@@ -5959,7 +6066,7 @@
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-. \}
+.\}
. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
@@ -5989,7 +6096,7 @@
. \}
. ev
. \}
-\# Chapter
+.\" Chapter
. if \\n[#DOC_TYPE]=2 \{\
. PRINT \&
. sp |\\n[#DOCHEADER_ADVANCE]u-1v
@@ -6041,7 +6148,7 @@
. \}
. ev
. \}
-\# Named
+.\" Named
. if \\n[#DOC_TYPE]=3 \{\
. PRINT \&
. sp |\\n[#DOCHEADER_ADVANCE]u-1v
@@ -6082,7 +6189,7 @@
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
-. \}
+.\}
. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
@@ -6139,18 +6246,37 @@
. QUAD \\*[$DOC_QUAD]
. CLEANUP_DEFAULTS
. nr #START_FOR_FOOTERS 1
+. if \\n[#COLLATED_DOC]=1 \{\
+. if !\\n[MNinit_DEFERRED]=1 \{\
+. MN_INIT rerun
+. \}
+. \}
+. if \\n[#MNinit_DEFERRED]=1 \{\
+. rr #MNinit_DEFERRED
+. nr #START_FOR_MNinit 1
+. MN_INIT \\*[$MN-arg1] \\*[$MN-arg2] \\*[$MN-arg3] \\*[$MN-arg4]
\\*[$MN-arg5] \\*[$MN-arg6] \\*[$MN-arg7] \\*[$MN-arg8] \\*[$MN-arg9]
+. \}
+. nr #START_FOR_MNinit 2
. if !\\n[#DOC_TYPE]=4 \{ .em TERMINATE \}
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
+. if \\n[#RUN_ON]=1 \{\
+. if \\n[#FN_MARKER_STYLE]=1 \{ .RUNON_WARNING \}
+. if \\n[#FN_MARKER_STYLE]=2 \{ .RUNON_WARNING \}
+. \}
.END
\#
.MAC CLEANUP_DEFAULTS END
. nr #START 1
-\# "Family" strings for docheader
+.\" Family strings for docheader
. rm $AUTHOR_FAM
. rm $CHAPTER_TITLE_FAM
. rm $DOCTYPE_FAM
. rm $SUBTITLE_FAM
. rm $TITLE_FAM
-\# "Family" strings for cover
+.\" Family strings for cover
. rm $COVER_AUTHOR_FAM
. rm $COVER_CHAPTER_TITLE_FAM
. rm $COVER_COPYRIGHT_FAM
@@ -6158,7 +6284,7 @@
. rm $COVER_LEAD_ADJ
. rm $COVER_SUBTITLE_FAM
. rm $COVER_TITLE_FAM
-\# "Family" strings for doc cover
+.\" Family strings for doc cover
. rm $DOC_COVER_AUTHOR_FAM
. rm $DOC_COVER_CHAPTER_TITLE_FAM
. rm $DOC_COVER_COPYRIGHT_FAM
@@ -6166,15 +6292,15 @@
. rm $DOC_COVER_LEAD_ADJ
. rm $DOC_COVER_SUBTITLE_FAM
. rm $DOC_COVER_TITLE_FAM
-\# "Quad" args to copyright and misc
+.\" Quad args to copyright and misc
. rm $COVER_COPYRIGHT_QUAD
. rm $COVER_MISC_QUAD
. rm $DOC_COVER_COPYRIGHT_QUAD
. rm $DOC_COVER_MISC_QUAD
-\# Miscellaneous strings
+.\" Miscellaneous strings
. rm $TOC_TITLE_ITEM
. rm $DOCHEADER_LEAD_ADJ
-\# Various registers
+.\" Various registers
. rr #ADJ_DOC_LEAD
. rr #ADVANCE_FROM_TOP
. rr #AUTHOR_NUM
@@ -6408,18 +6534,19 @@
.MAC PROCESS_SHIM END
. while \\n+[#LEGAL_BASELINE]<\\n[#CURRENT_V_POS] \{\
.
-. \}
+.\}
. nr #SHIM \\n[#LEGAL_BASELINE]-\\n[#CURRENT_V_POS]
.END
\#
+\#
.MAC SHIM END
-. nr #CURRENT_V_POS \\n(.d
. nr #LEGAL_BASELINE \\n[#T_MARGIN]-1v \\n[#DOC_LEAD]
+. if !r#CURRENT_V_POS \{ .nr #CURRENT_V_POS \\n(.d \}
. ie r#ADVANCE_FROM_TOP \{\
. ie \\n[#CURRENT_V_POS]<(\\n[#T_MARGIN]-1v) \{\
. while \\n-[#LEGAL_BASELINE]>\\n[#CURRENT_V_POS] \{\
.
-. \}
+.\}
. nr #LEGAL_BASELINE +\\n[#DOC_LEAD]
. nr #SHIM \\n[#LEGAL_BASELINE]-\\n[#CURRENT_V_POS]
. \}
@@ -6431,6 +6558,7 @@
. PROCESS_SHIM
. \}
. ALD \\n[#SHIM]u
+. rr #CURRENT_V_POS
.END
\#
\#
@@ -6587,6 +6715,10 @@
.MAC EPIGRAPH END
. nr #PP_STYLE 2
. nr #Q_PP 0
+. if \\n[#LINENUMBERS]=1 \{\
+. NUMBER_LINES OFF
+. nr #LINENUMBERS 2
+. \}
. if \\n[#START] \{\
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#AUTHOR_LINES]=1 \{ .ALD \\n[#DOC_LEAD]u \}
@@ -6743,7 +6875,7 @@
. nr #EPI_WHITESPACE (\\n[#DOC_LEAD]*\\n[#EPI_LINES])-\\n[#EPI_DEPTH]
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. nr #EPI_WHITESPACE -\\n[#DOC_LEAD]
-. \}
+.\}
. if \\n[#PRINT_STYLE]=2 \{\
. RLD \\n[#DOC_LEAD]u
. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\
@@ -6760,7 +6892,7 @@
. nr #EPI_WHITESPACE (\\n[#DOC_LEAD]*\\n[#EPI_LINES])-\\n[#EPI_DEPTH]
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. nr #EPI_WHITESPACE -\\n[#DOC_LEAD]
-. \}
+.\}
. ie \\n[#PRINT_STYLE]=1 \{\
. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD
\\n[#EPI_WHITESPACE]u/2u \}
. \}
@@ -6778,12 +6910,12 @@
. nr #EPI_LINES_TO_TRAP 0 1
. while \\n[#EPI_LEAD]*\\n+[#EPI_LINES_TO_TRAP]<\\n[#TRAP_DISTANCE]
\{\
. nr #LOOP 1
-. \}
+.\}
. nr #EPI_LINES_TO_TRAP -1
. nr #EPI_WHITESPACE
(\\n[#EPI_LINES_TO_TRAP]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_TRAP]*\\n[#EPI_LEAD])
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. nr #EPI_WHITESPACE -\\n[#DOC_LEAD]
-. \}
+.\}
. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{ .ALD
\\n[#EPI_WHITESPACE]u \}
. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{ .ALD
\\n[#EPI_WHITESPACE]u-\\n[#DOC_LEAD]u \}
. \}
@@ -6832,7 +6964,7 @@
. nr #EPI_WHITESPACE
(\\n[#EPI_LINES_TO_END]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_END]*\\n[#EPI_LEAD])
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. nr #EPI_WHITESPACE -\\n[#DOC_LEAD]
-. \}
+.\}
. ALD \\n[#EPI_WHITESPACE]u-(\\n[#DOC_LEAD]u-\\n[#EPI_LEAD]u)
. \}
. el \{\
@@ -6856,7 +6988,7 @@
. nr #EPI_WHITESPACE
(\\n[#EPI_LINES_TO_END]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_END]*\\n[#EPI_LEAD])
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. nr #EPI_WHITESPACE -\\n[#DOC_LEAD]
-. \}
+.\}
. ALD \\n[#EPI_WHITESPACE]u-(\\n[#DOC_LEAD]u-\\n[#EPI_LEAD]u)
. if \\n[#PRINT_STYLE]=1 \{\
. if !\\n[#SINGLE_SPACE] \{\
@@ -6884,6 +7016,10 @@
. mk dc
. \}
. \}
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
.END
\#
\# ====================================================================
@@ -7249,21 +7385,23 @@
\# Creates or modifies register #SWITCH_HDRFTR, used to switch
\# default location of HDRFTR_LEFT and HDRFTR_RIGHT.
\# *Notes:
-\# Typically, the author string appears at the left of header/footers,
-\# and the title string appears at the right. This switches the
-\# location of the two. Useful in conjuction with RECTO_VERSO to
-\# tweak switches on alternate pages to come out as the user wishes.
-\# The assumption of RECTO_VERSO is that the first page of the document
-\# (recto) is odd, and even though it has no header/footer, if it did have
one,
-\# it would print as AUTHOR...CENTER...TITLE (or whatever strings
-\# the user has supplied for HDRFTR_LEFT/RIGHT), meaning that the
-\# next page, which does have a header/footer, will come out as
-\# TITLE...CENTER...AUTHOR (or whatever strings the user has
-\# supplied for HDRFTR_LEFT/RIGHT). SWITCH_HDRFTRS allows the user
-\# to get the desired string in the desired place on the desired
-\# recto/verso page.
\#
-\# Default is OFF.
+.ig
+Typically, the author string appears at the left of header/footers,
+and the title string appears at the right. This switches the
+location of the two. Useful in conjuction with RECTO_VERSO to tweak
+switches on alternate pages to come out as the user wishes. The
+assumption of RECTO_VERSO is that the first page of the document
+(recto) is odd, and even though it has no header/footer, if it did
+have one, it would print as AUTHOR...CENTER...TITLE (or whatever
+strings the user has supplied for HDRFTR_LEFT/RIGHT), meaning that
+the next page, which does have a header/footer, will come out as
+TITLE...CENTER...AUTHOR (or whatever strings the user has supplied
+for HDRFTR_LEFT/RIGHT). SWITCH_HDRFTRS allows the user to get the
+desired string in the desired place on the desired recto/verso page.
+
+Default is OFF.
+..
\#
.MAC SWITCH_HDRFTR END
. ie '\\$1'' \{ .nr #SWITCH_HDRFTR 1 \}
@@ -7715,6 +7853,7 @@
\# comprehensible.
\#
.MAC HEADER END
+. MNtop
. rr #FROM_FOOTER
. nr #FROM_HEADER 1
. nr #LAST_FN_COUNT_FOR_COLS \\n[#FN_COUNT_FOR_COLS]
@@ -7759,7 +7898,7 @@
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#ENDNOTES]=1 \{\
-\# Single-spaced endotes have a different lead
+.\" Single-spaced endotes have a different lead
. if \\n[#EN_SINGLESPACE] \{\
. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD]
. nr #DOC_LEAD \\n[#EN_LEAD]u
@@ -7809,6 +7948,7 @@
. nr #Q_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE])
. po \\n[#Q_OFFSET]u
. \}
+. ALD \\n[#Q_LEAD_DIFF]u
. \}
. if \\n[#EPIGRAPH] \{\
. ie \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \}
@@ -7859,6 +7999,7 @@
. ie \\n[#RESET_FN_NUMBER]=1 \{ .nr #FN_NUMBER \\n[#SAVED_FN_NUMBER] 1 \}
. el \{ .nr #FN_NUMBER \\n[#FN_NUMBER] 1 \}
. rm FN_IN_DIVER
+. if dRUNON_FN_IN_DIVER \{ .rm RUNON_FN_IN_DIVER \}
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#SLANT_ON] \{\
@@ -7870,6 +8011,24 @@
. if !\\n[#FN_DEPTH] \{\
. if r#DIVERTED \{ .rr #DIVERTED \}
. \}
+. if \\n[#MN_OVERFLOW_LEFT]=1 \{\
+. MN LEFT
+. nf
+. MN_OVERFLOW_LEFT
+. MN
+. \}
+. if \\n[#MN_OVERFLOW_RIGHT]=1 \{\
+. MN RIGHT
+. nf
+. MN_OVERFLOW_RIGHT
+. MN
+. \}
+. rm MN_OVERFLOW_LEFT
+. rr #MN_OVERFLOW_LEFT
+. rr #no-repeat-MN-left
+. rm MN_OVERFLOW_RIGHT
+. rr #MN_OVERFLOW_RIGHT
+. rr #no-repeat-MN-right
.END
\#
\# ====================================================================
@@ -7942,29 +8101,40 @@
\# FINAL respects PAGENUMBER.
\#
.MAC FOOTER END
-. ev PAGE_BOTTOM
+. ev PAGE_TRANSITION
+. if \\n[MN-left]>0 \{\
+. if !\\n[#no-repeat-MN-left]=1 \{\
+. MNbottom-left
+. nr #no-repeat-MN-left 1
+. \}
+. if '\\n(.z'MN_OVERFLOW_LEFT' \{\
+. di
+. nr #MN_OVERFLOW_LEFT 1
+. rr #OVERFLOW_LEFT
+. \}
+. \}
+. if \\n[MN-right]>0 \{\
+. if (\\n[MN-right] > 0) \{\
+. if !\\n[#no-repeat-MN-right]=1 \{\
+. MNbottom-right
+. \}
+. \}
+. if '\\n(.z'MN_OVERFLOW_RIGHT' \{\
+. di
+. nr #MN_OVERFLOW_RIGHT 1
+. rr #OVERFLOW_RIGHT
+. \}
+. \}
+. ch MN_OVERFLOW_TRAP
. nr #SAVED_LEAD \\n(.v
-\# I can't figure out why I thought I needed this next bit, but I'm
-\# leaving it in, commented out, in case I (re)discover what it was
-\# there for.
-\#
-\#.if \\n[#START]=1 \{\
-\#.bp
-\#.ev
-\#.rr #START
-\#.return
-\#.\}
. nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN]
. if !\\n[#FN_DEFER] \{\
. nr #DIVER_DEPTH 0
. if \\n[#FN_DEPTH] \{\
-\# #DIVERTED=2 doesn't seem to have a use anymore, but I'm leaving
-\# this in, commented out, in case I discover why I thought I needed
-\# it.
-\#
-\#.if \\n[#DIVERTED]=2 \{ .nr #FN_DEPTH -\\n[#VFP_DIFF] \}
. if \\n[#DIVERTED]=3 \{ .nr #FN_DEPTH +\\n[#VFP_DIFF] \}
+. vpt 0
. sp
|\\n[#PAGE_LENGTH]u-(\\n[#B_MARGIN]u+\\n[#FN_DEPTH]u-\\n[#DOC_LEAD]u)
+. vpt 1
. po \\n[#DOC_L_MARGIN]u
. if \\n[#COLUMNS] \{\
. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u
@@ -7974,6 +8144,7 @@
. nf
. FOOTNOTES
. rm FOOTNOTES
+. if dRUNON_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' \{\
@@ -7996,13 +8167,6 @@
. el \{ .sp |\\n(dcu \}
. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u
. nr #L_MARGIN \\n(.o
-\# #DIVERTED=2 doesn't seem to have a use anymore, but I'm leaving
-\# this in, commented out, in case I discover why I thought I needed
-\# it.
-\#
-\# Reverse the sense of #DIVERTED=2 (from above) if moving col to col
-\#.if \\n[#DIVERTED]=2 \{ .nr #FN_DEPTH +\\n[#VFP_DIFF] \}
-\#
. if \\n[#FN_DEPTH] \{ .PROCESS_FN_LEFTOVER \}
. LS \\n[#SAVED_LEAD]u
. if \\n[#PREV_FN_DEFERRED] \{\
@@ -8018,6 +8182,7 @@
. nr #FN_COUNT \\n[#FN_COUNT] 1
. nr #FN_COUNT_FOR_COLS \\n[#FN_COUNT_FOR_COLS] 1
. rm FN_IN_DIVER
+. if dRUNON_FN_IN_DIVER \{ .rm RUNON_FN_IN_DIVER \}
. \}
. rr #DEFER_SPACE_ADDED
. if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \}
@@ -8066,16 +8231,19 @@
\# Resets CAPS and UNDERLINE if they were on.
\#
.MAC DO_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.
-. ch FN_OVERFLOW_TRAP 20i
+.\" 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] \{\
. nr #SKIP_FOOTER 1
. \}
. el \{\
+. vpt 0
. sp |\\n[#PAGE_LENGTH]u-\\n[#FOOTER_MARGIN]u-1v
. mk y
+. vpt 1
. \}
. ev FOOTER
. po \\n[#DOC_L_MARGIN]u
@@ -8117,9 +8285,10 @@
. rr #UNDERLINE_WAS_ON
. \}
. ev
-. ch FN_OVERFLOW_TRAP -(\\n[#FN_OVERFLOW_TRAP_POS]u)
. rr #SAVED_LEAD
. bp
+.\" This ev pops the PAGE_TRANSITION environment still active at the
+.\" end of HEADER
. ev
.END
\#
@@ -8309,7 +8478,7 @@
\#
.MAC HEAD END
. br
-\# Collect head for TOC.
+.\" Collect head for TOC.
. nr #ARG_NUM 0 1
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
@@ -8318,8 +8487,8 @@
. as $TOC_HEAD_ITEM \\$[\\n+[#ARG_NUM]]\\|
. \}
. el \{\
-\# Note that in the .as lines, below, \ at the end has a literal
-\# space after it.
+.\" Note that in the .as lines, below, \ at the end has a literal
+.\" space after it.
. ie \\n[#NUMBER_HEAD] \{\
. ie \\n[#ARG_NUM]=0 \{\
. as $TOC_HEAD_ITEM \\n+[#HEAD_NUM].\0\\$[\\n+[#ARG_NUM]]\
@@ -8333,10 +8502,10 @@
. as $TOC_HEAD_ITEM \\$[\\n+[#ARG_NUM]]\
. \}
. \}
-. \}
-\# Note the use of \!, which transparently embeds the macros used
-\# in the TOC_ENTRIES diversion. The elements they control must be
-\# processed literally when the diversion is output.
+.\}
+.\" Note the use of \!, which transparently embeds the macros used
+.\" in the TOC_ENTRIES diversion. The elements they control must be
+.\" processed literally when the diversion is output.
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
@@ -8372,8 +8541,8 @@
\!. TQ
. di
. ev
-\# End collection of head for TOC
-\# Process head
+.\" End collection of head for TOC
+.\" Process head
. nr #HEAD 1
. ev HEAD
. ll \\n[#L_LENGTH]u
@@ -8397,10 +8566,10 @@
. \}
. if r#QUOTE \{ .rr #QUOTE \}
. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
-. if \\n[#PRINT_STYLE]=1 \{ .ne 3 \}
+. if \\n[#PRINT_STYLE]=1 \{ .ne \\n[#NUM_ARGS]+2 \}
. if \\n[#PRINT_STYLE]=2 \{\
-. ie \\n[#HEAD_SPACE] \{ .ne 4 \}
-. el \{ .ne 3 \}
+. ie \\n[#HEAD_SPACE] \{ .ne \\n[#NUM_ARGS]+3 \}
+. el \{ .ne \\n[#NUM_ARGS]+2 \}
. \}
. ie \\n[#START] \{\
. if \\n[#DOC_HEADER]=0 \{ .RLD 1v \}
@@ -8440,7 +8609,7 @@
. \}
. \}
. \}
-\# Print head
+.\" Print head
. nr #ARG_NUM 0 1
. if \\n[#HEAD_CAPS] \{ .CAPS \}
. if \\n[#PRINT_STYLE]=2 \{\
@@ -8472,7 +8641,7 @@
. el \{ .UNDERSCORE "\\$[\\n+[#ARG_NUM]]\}
. br
. \}
-. \}
+.\}
. REMOVE_INDENT
. CAPS OFF
. ev
@@ -8511,7 +8680,7 @@
\#
.MAC SUBHEAD END
. br
-\# Collect subhead for TOC.
+.\" Collect subhead for TOC.
. nr #ARG_NUM 0 1
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
@@ -8519,8 +8688,8 @@
. as $TOC_SH_ITEM \\$[\\n+[#ARG_NUM]]\\|
. \}
. el \{\
-\# Note that in the .as lines, below, \ at the end has a literal
-\# space after it.
+.\" Note that in the .as lines, below, \ at the end has a literal
+.\" space after it.
. ie \\n[#NUMBER_SH] \{\
. ie \\n[#ARG_NUM]=0 \{\
. as $TOC_SH_ITEM \\n+[#SH_NUM].\0\\$[\\n+[#ARG_NUM]]\
@@ -8534,10 +8703,10 @@
. as $TOC_SH_ITEM \\$[\\n+[#ARG_NUM]]\
. \}
. \}
-. \}
-\# Note the use of \!, which transparently embeds the macros used
-\# in the TOC_ENTRIES diversion. The elements they control must be
-\# processed literally when the diversion is output.
+.\}
+.\" Note the use of \!, which transparently embeds the macros used
+.\" in the TOC_ENTRIES diversion. The elements they control must be
+.\" processed literally when the diversion is output.
. ev TOC_EV
. da TOC_ENTRIES
. if \\n[#PRINT_STYLE]=1 \{\
@@ -8573,8 +8742,8 @@
\!. TQ
. di
. ev
-\# End collection of head for TOC
-\# Process subhead
+.\" End collection of head for TOC
+.\" Process subhead
. nr #ARG_NUM 0 1
. if r#QUOTE \{ .rr #QUOTE \}
. if r#Q_AT_TOP \{ .rr #Q_AT_TOP \}
@@ -8603,7 +8772,7 @@
. if \\n[#PRINT_STYLE]=2 \{ .nr #SH_LEAD_ADJUST \\n[#LEAD]/8 \}
. ie \\n[#START] \{ .RLD 1v \}
. el \{\
-. ie ( \\n[#TRAP_DISTANCE] < \\n[#DOC_LEAD]*2 ) \{\
+. ie ( \\n[#TRAP_DISTANCE] < (\\n[#DOC_LEAD]*(\\n[#NUM_ARGS]+1)) ) \{\
. ie \\n[#COLUMNS] \{ .COL_NEXT \}
. el \{ .bp \}
. \}
@@ -8625,7 +8794,7 @@
. \}
. \}
. \}
-\# Print subhead
+.\" Print subhead
. if \\n[#PRINT_STYLE]=1 \{\
. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
. ie \\n[#NUMBER_SH] \{\
@@ -8653,7 +8822,7 @@
. UNDERSCORE "\v'-\\n[#SH_LEAD_ADJUST]u'\\$[\\n+[#ARG_NUM]]
. br
. \}
-. \}
+.\}
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
@@ -8686,7 +8855,7 @@
. PRINT "\\v'-\\n[#SH_LEAD_ADJUST]u'\\$[\\n+[#ARG_NUM]]
. br
. \}
-. \}
+.\}
. \}
. el \{\
. ALD \\n[#DOC_LEAD]u
@@ -8695,7 +8864,7 @@
. if \\n[#EPIGRAPH] \{ .RLD \\n[#DOC_LEAD]u \}
. while \\n[#ARG_NUM]<\\n[#NUM_ARGS] \{\
. PRINT "\\$[\\n+[#ARG_NUM]]
-. \}
+.\}
. ALD \\n[#DOC_LEAD]u
. \}
. \}
@@ -8739,7 +8908,7 @@
\# PARAHEAD *must* come after PP.
\#
.MAC PARAHEAD END
-\# Collect parahead for TOC.
+.\" Collect parahead for TOC.
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. ie \\n[#NUMBER_PH] \{\
. ds $TOC_PH_ITEM \\n+[#PH_NUM].\0\\$1\\|
@@ -8783,8 +8952,8 @@
\!. TQ
. di
. ev
-\# End collection of parahead for TOC
-\# Process parahead
+.\" End collection of parahead for TOC
+.\" Process parahead
. if \\n[#SLANT_ON] \{\
. nr #SLANT_WAS_ON 1
\E*[SLANTX]
@@ -8903,7 +9072,7 @@
. while \\$2>\\n[#REPEAT] \{\
. as $LINEBREAK_CHAR "\\ \\$1
. nr #REPEAT \\n[#REPEAT]+1
-. \}
+.\}
. rr #REPEAT
.END
\#
@@ -9051,7 +9220,7 @@
. if \\n[#DATE_FIRST]=1 \{ .ALD \\n[#DOC_LEAD]u \}
. rr #DATE_FIRST
. rm LETTERHEAD\\n[#FIELD]
-. \}
+.\}
. rr #FIELD
. rr #NUM_FIELDS
. rr #TOTAL_FIELDS
@@ -9233,6 +9402,24 @@
.END
\#
\#
+\# QUOTE_AUTOLEAD
+\# --------------
+\# *Arguments:
+\# <autolead value>
+\# *Function:
+\# Sets autolead for quotes and/or blockquotes.
+\#
+.MAC QUOTE_AUTOLEAD END
+. if '\\$0'QUOTE_AUTOLEAD' \{ .nr #Q_AUTOLEAD \\$1 \}
+. if '\\$0'BLOCKQUOTE_AUTOLEAD' \{ .nr #BQ_AUTOLEAD \\$1 \}
+. if '\\$0'ENDNOTE_QUOTE_AUTOLEAD' \{ .nr #EN_Q_AUTOLEAD \\$1 \}
+. if '\\$0'ENDNOTE_BLOCKQUOTE_AUTOLEAD' \{ .nr #EN_BQ_AUTOLEAD \\$1 \}
+.END
+\#
+.ALIAS BLOCKQUOTE_AUTOLEAD QUOTE_AUTOLEAD
+.ALIAS ENDNOTE_QUOTE_AUTOLEAD QUOTE_AUTOLEAD
+.ALIAS ENDNOTE_BLOCKQUOTE_AUTOLEAD QUOTE_AUTOLEAD
+\#
\# ALWAYS FULLSPACE QUOTES
\# -----------------------
\# *Arguments:
@@ -9262,12 +9449,25 @@
\#
.MAC QUOTE END
. br
+. if \\n[#LINENUMBERS]=1 \{\
+. nr #LINENUMBERS 2
+. nr #NEXT_LN \\n(ln
+. nm
+. \}
. ie '\\$1'' \{\
. ev QUOTE
+. if \\n[#LINENUMBERS]=2 \{\
+. if \\n[#SILENT_QUOTE_LN]=1 \{ .nm \\n[#NEXT_LN] 1000 -4 \}
+. \}
. nr #IN_DIVER 1
. nr #QUOTE 1
. di P_QUOTE
. ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u)
+. if \\n[#LINENUMBERS]=2 \{\
+. if \\n[#QUOTE_LN]=1 \{\
+. nm \\n(ln "" \\*[$Q_LN_GUTTER] -3-\\*[$Q_LN_GUTTER]
+. \}
+. \}
. ta \\n(.lu
. if \\n[#COLUMNS] \{\
. ll \\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u)
@@ -9282,7 +9482,20 @@
. FAMILY \\*[$QUOTE_FAM]
. FT \\*[$QUOTE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$QUOTE_SIZE_CHANGE]
-. LS \\n[#DOC_LEAD]u
+. ie !r#Q_AUTOLEAD \{ .LS \\n[#Q_LEAD]u \}
+. el \{\
+. AUTOLEAD \\n[#Q_AUTOLEAD]
+. nr #Q_LEAD \\n(.v
+. \}
+. if \\n[#ENDNOTE] \{\
+. PT_SIZE \\n[#EN_PS]u\\*[$QUOTE_SIZE_CHANGE]
+. ie !r#EN_Q_AUTOLEAD \{ .LS \\n[#EN_Q_LEAD]u \}
+. el \{\
+. AUTOLEAD \\n[#EN_Q_AUTOLEAD]
+. nr #EN_Q_LEAD \\n(.v
+. \}
+. \}
+. nr #Q_LEAD_REAL \\n(.v
. LEFT
. if \\n[#QUOTE_COLOR]=1 \{\
. nf
@@ -9290,6 +9503,15 @@
. EOL
. \}
. \}
+. if \\n[#LINENUMBERS]=2 \{\
+. ie \\n[#QUOTE_LN]=1 \{\
+. if '\\*[$Q_LN_GUTTER]'' .ds $Q_LN_GUTTER \\*[$LN_GUTTER]
+. nm \\n(ln "" \\*[$Q_LN_GUTTER] -3-\\*[$Q_LN_GUTTER]
+. \}
+. el \{\
+. if !\\n[#SILENT_QUOTE_LN] \{ .NUMBER_LINES OFF \}
+. \}
+. \}
. nr #Q_TOP \\n(nl
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_QUOTES] \{\
@@ -9308,7 +9530,7 @@
\# <none> | <anything>
\# *Function:
\# Indents quoted text in fill mode and shortens line length
-\# accordingly, or turns BLOCKQUOTE off.
+\# equivalently, or turns BLOCKQUOTE off.
\# *Notes:
\# Owing to the need to bottom align TYPESET pages, quoted text gets
\# diverted so its depth can be measured (in DO_QUOTE) for determining
@@ -9319,8 +9541,16 @@
\#
.MAC BLOCKQUOTE END
. br
+. if \\n[#LINENUMBERS]=1 \{\
+. nr #LINENUMBERS 2
+. nr #NEXT_LN \\n(ln
+. nm
+. \}
. ie '\\$1'' \{\
. ev BLOCKQUOTE
+. if \\n[#LINENUMBERS]=2 \{\
+. if \\n[#SILENT_BQUOTE_LN]=1 \{ .nm \\n[#NEXT_LN] 1000 -4 \}
+. \}
. nr #IN_DIVER 1
. nr #QUOTE 2
. nr #PP_STYLE 2
@@ -9351,7 +9581,7 @@
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. TYPEWRITER
-. vs \\n[#DOC_LEAD]u
+. vs \\n[#DOC_LEAD]u
. QUAD LEFT
. HY OFF
. \}
@@ -9359,10 +9589,20 @@
. FAMILY \\*[$BQUOTE_FAM]
. FT \\*[$BQUOTE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$BQUOTE_SIZE_CHANGE]
-. LS \\n[#DOC_LEAD]u
+. ie !\\n[#BQ_AUTOLEAD] \{ .LS \\n[#BQ_LEAD]u \}
+. el \{\
+. AUTOLEAD \\n[#BQ_AUTOLEAD]
+. nr #BQ_LEAD \\n(.v
+. \}
. if \\n[#ENDNOTE] \{\
. PT_SIZE \\n[#EN_PS]u\\*[$BQUOTE_SIZE_CHANGE]
+. ie !r#EN_BQ_AUTOLEAD \{ .LS \\n[#EN_BQ_LEAD]u \}
+. el \{\
+. AUTOLEAD \\n[#EN_BQ_AUTOLEAD]
+. nr #EN_BQ_LEAD \\n(.v
+. \}
. \}
+. nr #Q_LEAD_REAL \\n(.v
. if \\n[#BQUOTE_COLOR]=1 \{\
. nf
\m[\\*[$BQUOTE_COLOR]]
@@ -9373,6 +9613,15 @@
. HY_SET 1 \\n[#DIVERSIONS_HY_MARGIN]u (\\n[#PT_SIZE]u/1000u/8u)p
. hy 14
. \}
+. if \\n[#LINENUMBERS]=2 \{\
+. ie \\n[#BQUOTE_LN]=1 \{\
+. if '\\*[$BQ_LN_GUTTER]'' .ds $BQ_LN_GUTTER \\*[$LN_GUTTER]
+. nm \\n(ln "" \\*[$BQ_LN_GUTTER] -3-\\*[$BQ_LN_GUTTER]
+. \}
+. el \{\
+. if !\\n[#SILENT_BQUOTE_LN] \{ .NUMBER_LINES OFF \}
+. \}
+. \}
. nr #Q_TOP \\n(nl
. if \\n[#INDENT_FIRST_PARAS] \{\
. ie !\\n[#ENDNOTE] \{\
@@ -9406,6 +9655,10 @@
\#
.MAC DO_QUOTE END
. br
+. if \\n[#DIVER_LN_OFF] \{\
+\!. NUMBER_LINES OFF
+. rr #DIVER_LN_OFF
+. \}
. di
. rr #IN_DIVER
. if \\n[#RESET_FN_COUNTERS]=2 \{\
@@ -9420,11 +9673,20 @@
. nr #DONE_ONCE 0 1
. REMOVE_INDENT
. ev
+. nr #Q_DEPTH (\\n[#DIVER_DEPTH]-\\n[#Q_LEAD_REAL])+\\n[#LEAD]
+. nr #Q_LEAD_DIFF \\n[#LEAD]-\\n[#Q_LEAD_REAL]
+. SILENT
+. br
+. nf
+. nr #CURRENT_V_POS
\\n(nl+\\n[#Q_LEAD_DIFF]+(\\n[#DIVER_DEPTH]-\\n[#Q_DEPTH_REAL])
+. SHIM
+. SILENT OFF
+. nr #Q_SPACE_ADJ \\n[#SHIM]/2
+. nr #TRAP \\n(.t-1
. if \\n[#ENDNOTE] \{\
. nr #RESET_QUOTE_SPACING \\n[#FULLSPACE_QUOTES]
. ALWAYS_FULLSPACE_QUOTES
. \}
-. nr #Q_DEPTH \\n[#DIVER_DEPTH]+(\\n[#LEAD]*1)
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#START]=1 \{ . \}
. if \\n[#START]=0 \{\
@@ -9443,37 +9705,16 @@
. \}
. \}
. el \{\
-. ie \\n[#Q_DEPTH]<\\n[#TRAP_DISTANCE] \{\
-. nr #Q_FITS 1
-. ie \\n[#HEAD]=1 \{ . \}
+. ie \\n[#Q_DEPTH]<(\\n[#TRAP_DISTANCE]-1) \{\
+. ie (\\n[#TRAP_DISTANCE]-1)-\\n[#Q_DEPTH]<\\n[#DOC_LEAD] \{\
+. Q_NOFIT
+. \}
. el \{\
-. ie \\n[#START] \{ . \}
-. el \{\
-. ie \\n[#FULLSPACE_QUOTES] \{\
-. ie \\n[#ENDNOTE] \{\
-. ALD \\n[#EN_LEAD]u
-. \}
-. el \{ .ALD \\n[#DOC_LEAD]u \}
-. \}
-. el \{\
-. ie \\n[#ENDNOTE] \{\
-. ALD \\n[#EN_LEAD]u/2u
-. \}
-. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
-. \}
-. \}
+. Q_FITS
. \}
-. if \\n[#DIVER_FN]=2 \{ .rr #DIVER_FN \}
. \}
. el \{\
-. rr #Q_FITS
-. ie r#HEAD \{\
-. if \\n[#HEAD]=1 \{ . \}
-. \}
-. el \{\
-. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u \}
-. el \{ .ALD \\n[#DOC_LEAD]u \}
-. \}
+. Q_NOFIT
. \}
. \}
. \}
@@ -9485,6 +9726,13 @@
. if \\n[#ENDNOTE] \{\
. in +\\n[#EN_PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u
. \}
+. ie \\n[#START]=1 \{\
+. ie !\\n[#Q_LEAD_DIFF]<0 \{ .ALD \\n[#Q_SPACE_ADJ]u \}
+. el \{ .RLD 0-\\n[#Q_LEAD_DIFF]u \}
+. \}
+. el \{\
+. ALD \\n[#Q_SPACE_ADJ]u
+. \}
. if \\n[#QUOTE]=1 \{\
. nf
. P_QUOTE
@@ -9499,32 +9747,57 @@
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. ie \\n[#START] \{\
-. ie \\n[#PP_SPACE] \{ . \}
-. el \{ .ALD \\n[#DOC_LEAD]u \}
+. ie \\n[#PP_SPACE] \{\
+.
+. \}
+. el \{\
+. ALD \\n[#DOC_LEAD]u
+. SHIM
+. \}
. \}
. el \{\
. ie \\n[#PP_SPACE] \{ . \}
. el \{\
-. ie \\n[#HEAD]=1 \{ .ALD \\n[#DOC_LEAD]u \}
+. ie \\n[#HEAD]=1 \{\
+. ALD \\n[#DOC_LEAD]u
+. SHIM
+. \}
. el \{\
+. ie \\n[#FULLSPACE_QUOTES] \{\
+. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u \}
+. el \{ .ALD \\n[#DOC_LEAD]u \}
+. \}
+. el \{ .ALD (\\n[#DOC_LEAD]u/2u) \}
. ie \\n[#Q_FITS] \{\
. ie \\n[#Q_TOP]=\\n[#PAGE_TOP] \{\
. nr #Q_AT_TOP 1
-. ALD \\n[#DOC_LEAD]u
+. nr #DELAY_SHIM 1
. \}
-. el \{\
-. ie \\n[#FULLSPACE_QUOTES] \{ .ALD \\n[#DOC_LEAD]u \}
-. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
+. el \{ .SHIM \}
+. \}
+. el \{\
+. SHIM
+.\" Make sure that Q_LEAD_DIFF is not added to the first line of
+.\" normal text at the top of any page following output of a quote
+.\" whose last line falls on B_MARGIN of the previous page.
+. if
\\n(nl=(\\n[#T_MARGIN]-\\n[#DOC_LEAD]+\\n[#Q_LEAD_DIFF]) \{\
+. PRINT \&
+. br
+. sp -1v-\\n[#Q_LEAD_DIFF]u
. \}
. \}
-. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. \}
. \}
. \}
+. if \\n[#LINENUMBERS]=2 \{\
+. nr #LINENUMBERS 1
+. ie \\n[#RESTORE_LN_NUM]=1 \{ .nm \\n[#NEXT_LN] \}
+. el \{ .nm +0 \}
+. \}
. if \\n[#ENDNOTE] \{ .nr #FULLSPACE_QUOTES \\n[#RESET_QUOTE_SPACING] \}
-. if r#HEAD \{ .rr #HEAD \}
-. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
+. if r#HEAD \{ .rr #HEAD \}
+. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
. rr #Q_PP
. rr #LINEBREAK
. nr #PP_STYLE 1
@@ -9556,6 +9829,88 @@
. ENDNOTE_PARA_INDENT \\n[#RESET_EN_PP_INDENT]u
. QUAD \\*[EN_QUAD]
. \}
+. if r#DELAY_SHIM \{\
+. SHIM
+. rr #DELAY_SHIM
+. \}
+.END
+\#
+\#
+\# Utility macros for DO_QUOTE
+\# ---------------------------
+\#
+.MAC Q_FITS END
+. nr #Q_FITS 1
+. ie \\n[#HEAD]=1 \{\
+. ALD \\n[#Q_LEAD_DIFF]u
+. \}
+. el \{\
+. ie \\n[#START] \{ . \}
+. el \{\
+. ie \\n[#FULLSPACE_QUOTES] \{\
+. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u+\\n[#Q_LEAD_DIFF]u \}
+. el \{ .ALD \\n[#DOC_LEAD]u+\\n[#Q_LEAD_DIFF]u \}
+. \}
+. el \{\
+.\" This seems to be the only way to get the baseline of quotes that start
+.\" at the top of the page to fall on the first line of the "grid" (i.e on
+.\" the first legal baseline of the page).
+. ie \\n[#Q_TOP]=\\n[#PAGE_TOP] \{\
+. if \\n[#QUOTE]=1 \{\
+. rn P_QUOTE Q_TEMP
+. di P_QUOTE
+. vs \\n[#Q_LEAD]u
+. PRINT \&
+. sp -1v+\\n[#Q_LEAD_DIFF]u
+. Q_TEMP
+. di
+. \}
+. if \\n[#QUOTE]=2 \{\
+. rn B_QUOTE Q_TEMP
+. di B_QUOTE
+. vs \\n[#BQ_LEAD]u
+. PRINT \&
+. sp -1v+\\n[#Q_LEAD_DIFF]u
+. Q_TEMP
+. di
+. \}
+. rm Q_TEMP
+. \}
+. el \{\
+. ALD (\\n[#DOC_LEAD]u/2u)+\\n[#Q_LEAD_DIFF]u
+. \}
+. \}
+. \}
+. if \\n[#DIVER_FN]=2 \{ .rr #DIVER_FN \}
+. \}
+.END
+\#
+.MAC Q_NOFIT END
+. rr #Q_FITS
+. ie r#HEAD \{\
+. if \\n[#HEAD]=1 \{ . \}
+. \}
+. el \{\
+. ie \\n[#FULLSPACE_QUOTES] \{\
+. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u+\\n[#Q_LEAD_DIFF]u \}
+. el \{ .ALD \\n[#DOC_LEAD]u+\\n[#Q_LEAD_DIFF]u \}
+. \}
+. el \{ .ALD (\\n[#DOC_LEAD]u/2u)+\\n[#Q_LEAD_DIFF]u \}
+. nr #Q_PARTIAL_DEPTH 0 \\n[#Q_LEAD_REAL]
+. while \\n+[#Q_PARTIAL_DEPTH]<(\\n[#TRAP_DISTANCE]-1) \{\
+.
+.\}
+. nr #Q_PARTIAL_DEPTH -\\n[#Q_LEAD_REAL]
+. nr #Q_SPACE_ADJ
(\\n[#TRAP_DISTANCE]-1)-\\n[#Q_PARTIAL_DEPTH]+\\n[#Q_LEAD_DIFF]u
+.\" Hack to deal with the fact that even though the above routine
+.\" makes the bottom line of the quote fall exactly on the bottom
+.\" margin when traps are disabled, it refuses to do so when traps
+.\" are on. The difference by which it's off is #Q_LEAD_DIFF
+.\" (the +\\n[#Q_LEAD_DIFF] at the end of the line, above). Hack
+.\" solution: temporarily lower the FOOTER trap position.
+. nr #SAVED_FOOTER_POS \\n[#VARIABLE_FOOTER_POS]
+. ch FOOTER \\n[#VARIABLE_FOOTER_POS]u+.25v
+. \}
.END
\#
\# ====================================================================
@@ -9609,7 +9964,6 @@
. if \\n[#QUOTE]=1 \{\
. nf
. P_QUOTE
-. if !\\n[#START] \{ .rr #QUOTE \}
. \}
. if \\n[#QUOTE]=2 \{\
. nf
@@ -9803,6 +10157,10 @@
. if \\n[#EN_FIRST_PN] \{ .PAGENUMBER \\n[#EN_FIRST_PN] \}
. rr #EN_FIRST_PAGE
. \}
+. if \\n[#BIB_FIRST_PAGE] \{\
+. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN] \}
+. rr #BIB_FIRST_PAGE
+. \}
. if \\n[#TOC_FIRST_PAGE] \{\
. PAGENUMBER 1
. rr #TOC_FIRST_PAGE
@@ -9856,13 +10214,14 @@
\#
\# +++FOOTNOTES+++
\#
-\# Mom's footnote handling is baroque, to say the least. There are
-\# redundancies in a number of the macros involved, as well as some
-\# registers that probably don't get used anymore. The baggage is
-\# left in in case some new footnote oddity/challenge gets thrown
-\# my way.
-\#
-\# The macros are heavily commented.
+.ig
+Mom's footnote handling is baroque, to say the least. There are
+redundancies in a number of the macros involved, as well as some
+registers that probably don't get used anymore. The baggage is left
+in in case some new footnote oddity/challenge gets thrown my way.
+
+The macros are heavily commented.
+..
\#
\# FOOTNOTE AUTOLEAD
\# -----------------
@@ -9896,34 +10255,140 @@
\# FOOTNOTE MARKER STYLE
\# ---------------------
\# *Arguments:
-\# STAR | NUMBER
+\# STAR | NUMBER | LINE
\# *Function:
\# Sets register #FN_MARKER_STYLE, used in FOOTNOTE to determine
\# the style of footnote markers.
\# *Notes:
-\# 1=STAR; 2=NUMBER. Default is STAR.
+\# 1=STAR; 2=NUMBER; 3=LINE. LINE means "use output line numbers".
+\# Default is STAR.
\#
.MAC FOOTNOTE_MARKER_STYLE END
. if '\\$1'STAR' \{\
+. if \\n[#FN_MARKER_STYLE]=3 \{\
+. if !\\n[#NEWPAGE]=1 \{\
+. tm1 "[mom]: Your current FOOTNOTE_MARKER STYLE is LINE.
+. tm1 " You cannot change footnote marker style without
+. tm1 " first breaking to a new page with NEWPAGE.
+. tm1 " Ignoring request FOOTNOTE_MARKER_STYLE STAR at line
\\n(.c.
+. return
+. \}
+. \}
+. if \\n[#RUN_ON]=1 \{\
+. tm1 "[mom]: FOOTNOTE_MARKER_STYLE STAR at line \\n(.c is
incompatible
+. tm1 " with RUN_ON footnotes. Ignoring request.
+. return
+. \}
. nr #FN_MARKER_STYLE 1
+. if \\n[#NEWPAGE]=1 \{ .rr #NEWPAGE \}
+. FOOTNOTE_MARKERS
. \}
. if '\\$1'NUMBER' \{\
+. if \\n[#FN_MARKER_STYLE]=3 \{\
+. if !\\n[#NEWPAGE]=1 \{\
+. tm1 "[mom]: Your current FOOTNOTE_MARKER STYLE is NUMBER.
+. tm1 " You cannot change footnote marker style without
+. tm1 " first breaking to a new page with NEWPAGE.
+. tm1 " Ignoring request FOOTNOTE_MARKER_STYLE NUMBER at
line \\n(.c.
+. return
+. \}
+. \}
+. if \\n[#RUN_ON]=1 \{\
+. tm1 "[mom]: FOOTNOTE_MARKER_STYLE NUMBER at line \\n(.c is
incompatible
+. tm1 " with RUN_ON footnotes. Ignoring request.
+. return
+. \}
. nr #FN_MARKER_STYLE 2
+. if \\n[#NEWPAGE]=1 \{ .rr #NEWPAGE \}
+. FOOTNOTE_MARKERS
+. \}
+. if '\\$1'LINE' \{\
+. nr #FN_MARKER_STYLE 3
+. FOOTNOTE_MARKERS OFF
+. if !\\n[#FN_LN_SEP] \{\
+. if !\\n[#FN_LN_BRACKETS] \{ .FOOTNOTE_LINENUMBER_BRACKETS SQUARE \}
+. \}
. \}
.END
\#
\#
-\# RESET FOOTNOTE NUMBER
-\# ---------------------
-\# *Arguments:
-\# <none> | PAGE
+\# FOOTNOTE LINENUMBER MARK
+\# ------------------------
\# *Function:
-\# Resets register #FN_NUMBER to 1. If argument is PAGE, creates
-\# toggle #RESET_FN_NUMBER which is checked in HEADER. If 1,
-\# numbered footnotes on every page start at 1.
+\# This string, when called inline, stores the current output line
+\# number in register #FN_MARK for use with FOOTNOTE.
\#
-.MAC RESET_FOOTNOTE_NUMBER END
-. ie '\\$1'' \{ .nr #FN_NUMBER 0 1 \}
+.ds FN-MARK \R'#FN_MARK \En(ln'
+\#
+\#
+\# FOOTNOTE LINENUMBER SEPARATOR
+\# -----------------------------
+\# *Argument:
+\# <user-defined separator>
+\# *Function:
+\# Stores user-defined separator (for use then
+\# FOOTNOTE_MARKER_STYLE is LINE) in string $FN_LN_SEP. The
+\# separator is intended to be used when the user wishes a
+\# separator, rather than the choice of brackets offered by
+\# FOOTNOTE_LINENUMBER_BRACKETS.
+\#
+.MAC FOOTNOTE_LINENUMBER_SEPARATOR END
+. rr #FN_LN_BRACKETS
+. nr #FN_LN_SEP 1
+. ds $FN_LN_SEP "\\$1
+.END
+\#
+\#
+\# FOOTNOTE LINENUMBER BRACKETS
+\# ----------------------------
+\# *Argument:
+\# PARENS | SQUARE | BRACES or ( | [ | {
+\# *Function:
+\# Sets register #FN_LN_BRACKETS to 1, and creates strings
+\# $FN_OPEN_BRACKET and $FN_CLOSE_BRACKET according to the given
+\# argument.
+\#
+.MAC FOOTNOTE_LINENUMBER_BRACKETS END
+. rr #FN_LN_SEP
+. nr #FN_LN_BRACKETS 1
+. if '\\$1'PARENS' \{\
+. ds $FN_OPEN_BRACKET (
+. ds $FN_CLOSE_BRACKET )
+. \}
+. if '\\$1'(' \{\
+. ds $FN_OPEN_BRACKET (
+. ds $FN_CLOSE_BRACKET )
+. \}
+. if '\\$1'SQUARE' \{\
+. ds $FN_OPEN_BRACKET [
+. ds $FN_CLOSE_BRACKET ]
+. \}
+. if '\\$1'[' \{\
+. ds $FN_OPEN_BRACKET [
+. ds $FN_CLOSE_BRACKET ]
+. \}
+. if '\\$1'BRACES' \{\
+. ds $FN_OPEN_BRACKET {
+. ds $FN_CLOSE_BRACKET }
+. \}
+. if '\\$1'{' \{\
+. ds $FN_OPEN_BRACKET {
+. ds $FN_CLOSE_BRACKET }
+. \}
+.END
+\#
+\#
+\# RESET FOOTNOTE NUMBER
+\# ---------------------
+\# *Arguments:
+\# <none> | PAGE
+\# *Function:
+\# Resets register #FN_NUMBER to 1. If argument is PAGE, creates
+\# toggle #RESET_FN_NUMBER which is checked in HEADER. If 1,
+\# numbered footnotes on every page start at 1.
+\#
+.MAC RESET_FOOTNOTE_NUMBER END
+. ie '\\$1'' \{ .nr #FN_NUMBER 0 1 \}
. el \{ .nr #RESET_FN_NUMBER 1 \}
.END
\#
@@ -9978,7 +10443,7 @@
\!. PT_SIZE 12
. RLD 1v
. LEFT
-. PRINT
\\v'-\\n[#FN_RULE_ADJ]u'\\l'\\n[#FN_RULE_LENGTH]u'\\v'+\\n[#FN_RULE_ADJ]u'
+. PRINT
\v'-\\n[#FN_RULE_ADJ]u'\l'\\n[#FN_RULE_LENGTH]u'\v'+\\n[#FN_RULE_ADJ]u'
\!. PT_SIZE \\n[#DOC_PT_SIZE]u\\*$[FN_SIZE_CHANGE]
. QUAD \\*[$FN_QUAD]
. \}
@@ -9989,10 +10454,76 @@
.END
\#
\#
+\# FOOTNOTE SPACING
+\# ----------------
+\# *Arguments:
+\# <per item post footnote spacing> | <anything>
+\# *Function:
+\# Enables printing of post footnote spacing.
+\# *Notes:
+\# Default is no space.
+\#
+.MAC FOOTNOTE_SPACING END
+. ie \B'\\$1' \{ .nr #FN_SPACE (\\$1) \}
+. el \{ .nr #FN_SPACE 0 \}
+.END
+\#
+\#
+\# RUN ON FOOTNOTES
+\# ----------------
+\# *Arguments:
+\# <none> | <anything>
+\# *Function:
+\# Toggles run-on footnotes on or off.
+\#
+.MAC FOOTNOTES_RUN_ON END
+. ie '\\$1'' \{\
+. if \\n[#FN_COUNT]>0 \{\
+. tm1 "[mom]: Switching to run-on footnotes at line \\n(.c will cause
+. tm1 " you to loose footnotes already formatted for this page.
+. tm1 " Ignoring request FOOTNOTES_RUN_ON.
+. rr #RUN_ON
+. return
+. \}
+. nr #RUN_ON 1
+. if \\n[#FN_MARKER_STYLE]=1 \{ .RUNON_WARNING \}
+. if \\n[#FN_MARKER_STYLE]=2 \{ .RUNON_WARNING \}
+. \}
+. el \{\
+. if \\n[#FN_COUNT]>0 \{\
+. if \\n[#RUN_ON]=1 \{\
+. tm1 "[mom]: Switching off run-on footnotes at line \\n(.c will
cause
+. tm1 " you to loose footnotes already formatted for this
page.
+. tm1 " Ignoring request FOOTNOTES_RUN_ON \\$1.
+. return
+. \}
+. \}
+. rr #RUN_ON
+. \}
+.END
+\#
+\#
+.MAC RUNON_WARNING END
+. if \\n[#FN_MARKER_STYLE]=1 \{\
+. tm1 "[mom]: The footnote marker style active at line \\n(.c is STAR,
+. tm1 " which is incompatible with run-on footnotes. Please change
+. tm1 " the footnote marker style to LINE. Continuing to process,
+. tm1 " but ignoring request FOOTNOTES_RUN_ON.
+. rr #RUN_ON
+. \}
+. if \\n[#FN_MARKER_STYLE]=2 \{\
+. tm1 "[mom]: The footnote marker style active at line \\n(.c is NUMBER,
+. tm1 " which is incompatible with run-on footnotes. Please change
+. tm1 " the footnote marker style to LINE. Continuing to process,
+. tm1 " but ignoring request FOOTNOTES_RUN_ON.
+. rr #RUN_ON
+. \}
+.END
+\#
\# FOOTNOTE
\# --------
\# *Arguments:
-\# <none> | INDENT L|LEFT|R|RIGHT|B|BOTH <indent value> > | <anything>
+\# <none> | INDENT L|LEFT|R|RIGHT|B|BOTH <indent value> | <anything>
\# *Function:
\# Begins collecting and diverting footnote text if no argument
\# given. Otherwise, ends diversion FOOTNOTES, measures footnote
@@ -10008,14 +10539,52 @@
\# for each footnote the user wants indented.
\#
.MAC FOOTNOTE END
+. if !\\n(.u \{ .nr #ADD_BREAK 1 \}
. ie '\\$1'' \{\
-\# Begin processing footnotes that occur inside QUOTE, BLOCKQUOTE
-\# or EPIGRAPH.
+. if \\n[#FN_MARKER_STYLE]=3 \{\
+. if !\\n[#LINENUMBERS] \{\
+. tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
+. tm1 " FOOTNOTE_MARKER_STYLE is LINE.
+. ab Aborting on FOOTNOTE at line \\n(.c.
+. \}
+. if \\n[#FN_MARK]=0 \{ .nr #FN_MARK \\n(ln \}
+. nr #FN_MARK_2 \\n(ln
+. if '\\n(.z'P_QUOTE' \{\
+. nr #FN_MARK -1
+. nr #FN_MARK_2 -1
+. \}
+. if \\n[#IN_DIVER]=1 \{\
+. if '\\n(.z'P_QUOTE' \{\
+. if !\\n[#QUOTE_LN]=1 \{\
+. if !\\n[#SILENT_QUOTE_LN]=1 \{\
+. tm1 "[mom]: You have requested a line-numbered footnote
inside a
+. tm1 " QUOTE at line \\n(.c, but line-numbering
has not been enabled
+. tm1 " for QUOTES. Printing footnote with label
"0".
+. rr #FN_MARK
+. rr #FN_MARK_2
+. \}
+. \}
+. \}
+. if '\\n(.z'B_QUOTE' \{\
+. if !\\n[#BQUOTE_LN]=1 \{\
+. if !\\n[#SILENT_BQUOTE_LN]=1 \{\
+. tm1 "[mom]: You have requested a line-numbered footnote
inside a
+. tm1 " BLOCKQUOTE at line \\n(.c, but
line-numbering has not been enabled
+. tm1 " for BLOCKQUOTES. Printing footnote with
label "0".
+. rr #FN_MARK
+. rr #FN_MARK_2
+. \}
+. \}
+. \}
+. \}
+. \}
+.\" Begin processing footnotes that occur inside QUOTE, BLOCKQUOTE
+.\" or EPIGRAPH.
. if \\n[#IN_DIVER]=1 \{\
. nr #PAGE_POS \\n(nl+\\n(.d+\\n[#DOC_LEAD]
. nr #FOOTER_POS \\n[#PAGE_LENGTH]+(\\n[#VARIABLE_FOOTER_POS]-1)
. nr #SPACE_TO_FOOTER \\n[#FOOTER_POS]-\\n[#PAGE_POS]
-\# Are we on a "defer" line? If so, defer the text of the footnote.
+.\" Are we on a "defer" line? If so, defer the text of the footnote.
. ie \\n[#SPACE_TO_FOOTER]=\\n[#DOC_LEAD]:\\n[#SPACE_TO_FOOTER]=0 \{\
. nr #DIVER_FN 2 \" treat like a normal deferred footnote
. \}
@@ -10025,34 +10594,34 @@
. if \\n[#PAGE_POS]>\\n[#FOOTER_POS] \{\
. nr #DIVER_FN 1 \" move this footnote
. \}
-\# Test for situation where, because a final line of QUOTE,
-\# BLOCKQUOTE or EPIGRAPH isn't yet adjusted at this point, the last
-\# word on the line may *seem* to belong to the final line of the
-\# page, but will, in fact, become the first word of the subsequent
-\# page. In such circumstances, we want the the footnote to be
-\# treated as a "moved" diversion footnote.
+.\" Test for situation where, because a final line of QUOTE, BLOCKQUOTE
+.\" or EPIGRAPH isn't yet adjusted at this point, the last word on the
+.\" line may *seem* to belong to the final line of the page, but will,
+.\" in fact, become the first word of the subsequent page. In such
+.\" circumstances, we want the the footnote to be treated as a "moved"
+.\" diversion footnote.
. if \\n(.k>\\n(.l \{ .nr #DIVER_FN 1 \}
. if r#DIVER_FN \{\
. if !\\n[#DIVER_FN]=2 \{ .\\n+[#DONE_ONCE] \}
-\# A footnote inside a diversion will become the 1st footnote on the
-\# following page/column.
+.\" A footnote inside a diversion will become the 1st footnote on the
+.\" following page/column.
. if \\n[#DIVER_FN]=1 \{ .DIVER_FN_1_PRE \}
-\# A footnote inside a diversion that should be treated like a
-\# normal footnote (including defers.)
+.\" A footnote inside a diversion that should be treated like a
+.\" normal footnote (including defers.)
. if \\n[#DIVER_FN]=2 \{ .DIVER_FN_2_PRE \}
. \}
. nr #SAVED_FN_COUNT \\n[#FN_COUNT]+1
. nr #SAVED_FN_COUNT_FOR_COLS \\n[#FN_COUNT_FOR_COLS]+1
. \}
-\# End processing footnotes that occur inside QUOTE, BLOCKQUOTE or
-\# EPIGRAPH.
-\#
-\# Test for situation where, because a final line of running text
-\# isn't yet adjusted at this point, the last word on the line may
-\# *seem* to belong to the final line of the page, but will, in
-\# fact, become the first word of the subsequent page. In such
-\# circumstances, we want the the footnote marker in running text to
-\# be the correct one for the 1st footnote on a page.
+.\" End processing footnotes that occur inside QUOTE, BLOCKQUOTE or
+.\" EPIGRAPH.
+.\"
+.\" Test for situation where, because a final line of running text
+.\" isn't yet adjusted at this point, the last word on the line may
+.\" *seem* to belong to the final line of the page, but will, in
+.\" fact, become the first word of the subsequent page. In such
+.\" circumstances, we want the the footnote marker in running text to
+.\" be the correct one for the 1st footnote on the page.
. if \\n(.k>\\n(.l \{\
. if
(\\n(nl+\\n[#DOC_LEAD])>(\\n[#PAGE_LENGTH]+\\n[#VARIABLE_FOOTER_POS]) \{\
. ie \\n[#COLUMNS]=1 \{\
@@ -10081,8 +10650,8 @@
. \}
. \}
. \}
-\# Housekeeping
. if \\n[#FN_MARKERS] \{\
+.\" Housekeeping
. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
. if \\n[#EXTEND] \{ \*[EXTX]\c \}
. if \\n[#PRINT_STYLE]=1 \{\
@@ -10091,56 +10660,56 @@
. UNDERLINE OFF
. \}
. \}
-\# Add footnote markers to running text...
+.\" Add footnote markers to running text...
. if !\\n[#NO_FN_MARKER] \{\
-\# ...but not if TERMINATE has not been called
+.\" ...but not if TERMINATE has not been called
. if !r#TERMINATE \{\
-\# Marker style star/dagger/double-dagger
+.\" Marker style star/dagger/double-dagger
. if \\n[#FN_MARKER_STYLE]=1 \{\
-\# Columnar docs either move col to col, or last col to next page.
-\# They require their own special FN_COUNT because regular FN_COUNT
-\# is used to figure out things like whether or not to put a rule
-\# above footnotes (in addition to keeping track of the footnote
-\# count in non-columnar docs).
+.\" Columnar docs either move col to col, or last col to next page.
+.\" They require their own special FN_COUNT because regular FN_COUNT
+.\" is used to figure out things like whether or not to put a rule
+.\" above footnotes (in addition to keeping track of the footnote
+.\" count in non-columnar docs).
. ie \\n[#COLUMNS]=1 \{\
-. if \\n[#FN_COUNT_FOR_COLS]=0 \{ .PRINT \*[BU2]*
\}
-. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT \*[BU1]\(dg
\}
-. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \(dd
\}
-. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT \*[BU2]**
\}
-. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT \*[BU1]\(dg\(dg
\}
-. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT \(dd\(dd
\}
-. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \*[BU2]***
\}
-. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT
\*[BU1]\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \(dd\(dd\(dd
\}
-. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT \*[BU2]****
\}
+. if \\n[#FN_COUNT_FOR_COLS]=0 \{ .PRINT \*[BU2]*\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=1 \{ .PRINT \*[BU1]\(dg\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=2 \{ .PRINT \(dd\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=3 \{ .PRINT \*[BU2]**\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=4 \{ .PRINT
\*[BU1]\(dg\(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=5 \{ .PRINT \(dd\(dd\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=6 \{ .PRINT \*[BU2]***\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=7 \{ .PRINT
\*[BU1]\(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT_FOR_COLS]=8 \{ .PRINT \(dd\(dd\(dd\c
\}
+. if \\n[#FN_COUNT_FOR_COLS]=9 \{ .PRINT \*[BU2]****\c
\}
. \}
. el \{\
-. if \\n[#FN_COUNT]=0 \{ .PRINT \*[BU2]* \}
-. if \\n[#FN_COUNT]=1 \{ .PRINT \*[BU1]\(dg \}
-. if \\n[#FN_COUNT]=2 \{ .PRINT \(dd \}
-. if \\n[#FN_COUNT]=3 \{ .PRINT \*[BU2]** \}
-. if \\n[#FN_COUNT]=4 \{ .PRINT \*[BU1]\(dg\(dg \}
-. if \\n[#FN_COUNT]=5 \{ .PRINT \(dd\(dd \}
-. if \\n[#FN_COUNT]=6 \{ .PRINT \*[BU2]*** \}
-. if \\n[#FN_COUNT]=7 \{ .PRINT \*[BU1]\(dg\(dg\(dg \}
-. if \\n[#FN_COUNT]=8 \{ .PRINT \(dd\(dd\(dd \}
-. if \\n[#FN_COUNT]=9 \{ .PRINT \*[BU2]**** \}
+. if \\n[#FN_COUNT]=0 \{ .PRINT \*[BU2]*\c \}
+. if \\n[#FN_COUNT]=1 \{ .PRINT \*[BU1]\(dg\c \}
+. if \\n[#FN_COUNT]=2 \{ .PRINT \(dd\c \}
+. if \\n[#FN_COUNT]=3 \{ .PRINT \*[BU2]**\c \}
+. if \\n[#FN_COUNT]=4 \{ .PRINT \*[BU1]\(dg\(dg\c \}
+. if \\n[#FN_COUNT]=5 \{ .PRINT \(dd\(dd\c \}
+. if \\n[#FN_COUNT]=6 \{ .PRINT \*[BU2]***\c \}
+. if \\n[#FN_COUNT]=7 \{ .PRINT \*[BU1]\(dg\(dg\(dg\c \}
+. if \\n[#FN_COUNT]=8 \{ .PRINT \(dd\(dd\(dd\c \}
+. if \\n[#FN_COUNT]=9 \{ .PRINT \*[BU2]****\c \}
. \}
. \}
-\# Marker style superscript numbers
+.\" Marker style superscript numbers
. if \\n[#FN_MARKER_STYLE]=2 \{\
-. if \\n[#PRINT_STYLE]=1 \{ .PRINT
"\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#FN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2" \}
-. if \\n[#PRINT_STYLE]=2 \{ .PRINT
"\*[SUP]\\n+[#FN_NUMBER]\*[SUPX]" \}
+. if \\n[#PRINT_STYLE]=1 \{ .PRINT
"\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#FN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2\c" \}
+. if \\n[#PRINT_STYLE]=2 \{ .PRINT
"\*[SUP]\\n+[#FN_NUMBER]\*[SUPX]\c" \}
. \}
. \}
. \}
. \}
-\# More housekeeping
-\#
-\# #SPACE_REMAINING is the space left between where we are
-\# on the page and the bottom margin. It's used to determine whether
-\# or not the footnote will overflow, and how many lines of
-\# footnotes will fit on the page if some have to overflow.
+.\" More housekeeping
+.\"
+.\" #SPACE_REMAINING is the space left between where we are
+.\" on the page and the bottom margin. It's used to determine whether
+.\" or not the footnote will overflow, and how many lines of
+.\" footnotes will fit on the page if some have to overflow.
. ie \\n[#DIVER_FN]=2 \{\
. nr #SPACE_REMAINING
(\\n[#PAGE_LENGTH]-\\n[#B_MARGIN])-(\\n[#PAGE_POS])
. \}
@@ -10155,7 +10724,7 @@
. nr #PP_STYLE 2
. if \\n[#INDENT_FIRST_PARAS] \{ .nr #INDENT_FIRSTS 1 \}
. INDENT_FIRST_PARAS
-\# Prepare FOOTNOTE to receive footnote text.
+.\" Prepare FOOTNOTE to receive footnote text.
. ev FOOTNOTES
. ll \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
@@ -10184,39 +10753,53 @@
. HY OFF
. \}
. nr #FN_LEAD \\n[#LEAD]
-\# Begin diversion FOOTNOTES or FN_IN_DIVER
+.\" Begin diversion FOOTNOTES or FN_IN_DIVER
. ie r#COUNTERS_RESET \{\
. ie \\n[#DONE_ONCE]=1 \{\
-. di FN_IN_DIVER
+. ie \\n[#RUN_ON] \{\
+. di RUNON_FN_IN_DIVER
+. nr #RUNON_FN_IN_DIVER 1
+. \}
+. el \{ .di FN_IN_DIVER \}
. \}
. el \{\
-. da FN_IN_DIVER
+. ie \\n[#RUN_ON] \{\
+. da RUNON_FN_IN_DIVER
+. nr #RUNON_FN_IN_DIVER 1
+. \}
+. el \{ .da FN_IN_DIVER \}
. \}
-. \\n+[#DONE_ONCE]
+. \\n+[#DONE_ONCE]
. \}
-. el \{ .da FOOTNOTES \}
-. if \\n[#FOOTNOTE_COLOR]=1 \{\
-. TRAP OFF
-. nf
-\m[\\*[$FOOTNOTE_COLOR]]
-. EOL
-. fi
-. TRAP
+. el \{\
+. ie \\n[#RUN_ON] \{\
+. da RUNON_FOOTNOTES
+. nr #RUNON_FOOTNOTES 1
. \}
+. el \{ .da FOOTNOTES \}
+. \}
+. if \\n[#FOOTNOTE_COLOR]=1 \{\
+. TRAP OFF
+. nf
+\m[\\*[$FOOTNOTE_COLOR]]
+. EOL
+. fi
+. TRAP
+. \}
. if \\n[#EPIGRAPH] \{ .nr #FN_FOR_EPI 1 \}
-\# When a deferred footnote is also the 1st footnote on the page,
-\# and when the page it's output on also has footnotes, some
-\# whitespace is needed between the deferred footnote and the
-\# first footnote belonging to the output page so that there's
-\# no confusion when two stars (or two number 1s) appear in
-\# footnotes...
+.\" When a deferred footnote is also the 1st footnote on the page,
+.\" and when the page it's output on also has footnotes, some
+.\" whitespace is needed between the deferred footnote and the
+.\" first footnote belonging to the output page so that there's
+.\" no confusion when two stars (or two number 1s) appear in
+.\" footnotes...
. if \\n[#FN_DEFER_SPACE] \{\
-\# ...but only add the extra space if TERMINATE has not been called
+.\" ...but only add the extra space if TERMINATE has not been called
. if !r#TERMINATE \{\
-\# ...and not if defer space has already been added
+.\" ...and not if defer space has already been added
. if !\\n[#DEFER_SPACE_ADDED] \{\
-\# ...and not if the footnote count the last time we checked for
-\# a defer situation inside a diversion is greater than 1.
+.\" ...and not if the footnote count the last time we checked for
+.\" a defer situation inside a diversion is greater than 1.
. if !\\n[#SAVED_DIVER_FN_COUNT]>1 \{\
. if \\n[#FN_MARKER_STYLE]=1 \{ .ALD 1v \}
. if \\n[#RESET_FN_NUMBER] \{ .ALD 1v \}
@@ -10229,31 +10812,44 @@
. \}
. if \\n[#DIVERTED]=3 \{\
. if \\n[#FN_COUNT]>0 \{\
-\!.RLD 1v
+\!. RLD 1v
. \}
. \}
-\# Add footnote rule (or, if no rule, some whitespace).
-\# N.B.- this line increments #FN_COUNT each and every time FOOTNOTE
-\# is run.
+.\" Add footnote rule (or, if no rule, some whitespace).
+.\" N.B.- this line increments #FN_COUNT each and every time FOOTNOTE
+.\" is run.
. if \\n+[#FN_COUNT]=1 \{\
-\# If a footnote is called in a diversion, and the footnote has to
-\# be moved, don't put in the rule now (it's taken care of when
-\# FN_IN_DIVER is output into FOOTNOTE in PROCESS_FN_IN_DIVER).
+.\" If a footnote is called in a diversion, and the footnote has to
+.\" be moved, don't put in the rule now (it's taken care of when
+.\" FN_IN_DIVER is output into FOOTNOTE in PROCESS_FN_IN_DIVER).
. if !\\n[#DONT_RULE_ME]=1 \{\
. if !\\n[#FN_DEPTH] \{\
-. if \\n[#PRINT_STYLE]=1 \{ .ALD \\n[#DOC_LEAD]u \}
-. ie \\n[#FN_RULE]=1 \{ .PRINT_FOOTNOTE_RULE \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. if !\\n[#RUN_ON] \{ .ALD \\n[#DOC_LEAD]u \}
+. \}
+. ie \\n[#FN_RULE]=1 \{\
+. if !\\n[#RUN_ON] \{ .PRINT_FOOTNOTE_RULE \}
+. \}
. el \{ .ALD 1v \}
. nr #RULED 1
. \}
. \}
. \}
. rr #DONT_RULE_ME
-\# Add footnote markers to footnote text...
-. if \\n[#FN_MARKERS] \{\
+.\" Add footnote markers to footnote text...
+. ie \\n[#FN_MARKERS] \{\
+. if \\n[#FN_SPACE]>0 \{\
+. if \\n[#FN_COUNT]>0 \{\
+. ALD \\n[#FN_SPACE]u
+. \}
+. \}
. if !\\n[#NO_FN_MARKER] \{\
-\# ...but not if TERMINATE has been called.
+.\" ...but not if TERMINATE has been called.
. if !r#TERMINATE \{\
+. if \\n[#REF]=1 \{\
+\!. in +\\*[$REF_FN_INDENT]
+\!. ti -\\*[$REF_FN_INDENT]
+. \}
. if \\n[#FN_MARKER_STYLE]=1 \{\
. ie \\n[#COLUMNS]=1 \{\
. \\n+[#FN_COUNT_FOR_COLS]
@@ -10295,9 +10891,49 @@
. \}
. \}
. \}
+. el \{\
+.\" Line-numbered footnotes handling
+. if \\n[#FN_MARKER_STYLE]=3 \{\
+. if \\n[#FN_SPACE]>0 \{\
+. if !\\n[#RUN_ON]=1 \{\
+. if \\n[#FN_COUNT]>0 \{\
+. ALD \\n[#FN_SPACE]u
+. \}
+. \}
+. \}
+. if \\n[#REF]=1 \{\
+. if !\\n[#RUN_ON]=1 \{\
+\!. in +\\*[$REF_FN_INDENT]
+\!. ti -\\*[$REF_FN_INDENT]
+. \}
+. \}
+. 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' \"
+. \}
+. el \{\
+. as $FN_LINENUMBER
\\n[#FN_MARK]\v'-.1m'-\v'.1m'\\n[#FN_MARK_2]\v'-.085m'\\*[$FN_CLOSE_BRACKET]\v'.085m'
\"
+. \}
+. \}
+. el \{\
+. ie \\n[#FN_MARK_2]=\\n[#FN_MARK] \{\
+. ds $FN_LINENUMBER \\n[#FN_MARK]\\*[$FN_LN_SEP]
+. \}
+. el \{\
+. ds $FN_LINENUMBER
\\n[#FN_MARK]\v'-.1m'-\v'.1m'\\n[#FN_MARK_2]\\*[$FN_LN_SEP]
+. \}
+. \}
+. if !\\n[#NO_FN_MARKER] \{\
+. PRINT \\*[$FN_LINENUMBER]\c
+. \}
+. rm $FN_LINENUMBER
+. nr #FN_MARK 0
+. \}
+. \}
. \}
+.\" If INDENT arg is passed to FOOTNOTE, calculate the indent...
. el \{\
-\# If INDENT arg passed to footnotes, calculate the indent...
. ie '\\$1'INDENT' \{\
. ev FOOTNOTES
. if '\\$2'L' \{ .in (\\$3) \}
@@ -10317,14 +10953,14 @@
. in \\n[#FN_BL_INDENT]u
. \}
. ev
-\# ...then re-run FOOTNOTE without an argument.
+.\" ...then re-run FOOTNOTE without an argument.
. FOOTNOTE
. \}
. el \{\
. br
-\# Add "defer space" if the previously diverted footnote was the
-\# 1st footnote proper to its page (i.e. it looks like a deferred
-\# footnote but its really an overflow).
+.\" Add "defer space" if the previously diverted footnote was the
+.\" 1st footnote proper to its page (i.e. it looks like a deferred
+.\" footnote but it's really an overflow).
. if \\n[#DIVERTED] \{\
. if \\n[#PREV_FN_DEFERRED]=1 \{\
. if \\n[#FN_MARKER_STYLE]=1 \{ .ALD \\n[#FN_LEAD]u \}
@@ -10332,13 +10968,21 @@
. nr #PREV_FN_DEFERRED 2
. \}
. \}
-\# Terminate FOOTNOTES or FN_IN_DIVER diversion
+. if \\n[#REF]=1 \{\
+\!. in
+. \}
+.\" Terminate FOOTNOTES or FN_IN_DIVER diversion
. di
. HY_SET 1 \\n[#DIVERSIONS_HY_MARGIN]u (\\n[#PT_SIZE]u/1000u/8u)p
. hy 14
-\# More housekeeping
-\# Turn off indent possibly set by FOOTNOTE INDENT
+.\" More housekeeping
+.\" Turn off indent possibly set by FOOTNOTE INDENT
. in 0
+.\" Restore sentence spacing
+. if \\n[#PRINT_STYLE]=2 \{\
+. if d$RESTORE_SS_VAR \{ .SS \\*[$RESTORE_SS_VAR] \}
+. rm $RESTORE_SS_VAR
+. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#UNDERLINE_WAS_ON] \{\
. UNDERLINE
@@ -10351,44 +10995,76 @@
. nr #PP_STYLE \\n[#PP_STYLE_PREV]
. if !\\n[#INDENT_FIRSTS] \{ .INDENT_FIRST_PARAS OFF \}
. rr #INDENT_FIRSTS
-\# Calculate footnote depth, but not if #COUNTERS_RESET (created in
-\# DIVER_FN_1_PRE) to instruct FOOTNOTES to skip this step for now
-\# (it's taken care of when FN_IN_DIVER is output into FOOTNOTES in
-\# PROCESS_FN_IN_DIVER).
+.\" Calculate footnote depth, but not if #COUNTERS_RESET (created in
+.\" DIVER_FN_1_PRE) to instruct FOOTNOTES to skip this step for now
+.\" (it's taken care of when FN_IN_DIVER is output into FOOTNOTES in
+.\" PROCESS_FN_IN_DIVER).
. ie r#COUNTERS_RESET \{\
. rr #COUNTERS_RESET
. \}
. el \{\
. nr #GET_DEPTH 1
-\# If the footnote is the 1st on the page and it falls too close
-\# to the bottom margin, defer the footnote text to the next page...
+.\" If the footnote is the 1st on the page and it falls too close
+.\" to the bottom margin, defer the footnote text to the next page...
. if (\\n[#SPACE_REMAINING]-1)<=(\\n[#DOC_LEAD]) \{\
-\# ...but not if PROCESS_FN_LEFTOVER has set #PREV_FN_DEFERRED to 1
+.\" ...but not if PROCESS_FN_LEFTOVER has set #PREV_FN_DEFERRED to 1
. if !\\n[#PREV_FN_DEFERRED]=1 \{\
. nr #FN_DEFER 1
. nr #FN_DEPTH +\\n[#DIVER_DEPTH]
. rr #GET_DEPTH
-\# This is required so that the defer space clause can distinguish
-\# a real #FN_COUNT=1 from one generated if footnotes is run inside
-\# QUOTE, BLOCKQUOTE or EPIGRAPH
+.\" This is required so that the defer space clause can distinguish
+.\" a real #FN_COUNT=1 from one generated if FOOTNOTE is run inside
+.\" QUOTE, BLOCKQUOTE or EPIGRAPH
. if \\n[#DIVER_FN]=2 \{\
. nr #SAVED_DIVER_FN_COUNT \\n[#FN_COUNT]
. rr #DIVER_FN
. \}
. \}
. \}
-\# Calculate the footnote depth.
+.\" Calculate the footnote depth.
. if \\n[#GET_DEPTH]=1 \{\
-\# Save the previous footnote depth (for use when there will be
-\# some overflowed footnote text).
+.\" Save the previous footnote depth (for use when there will be
+.\" some overflowed footnote text).
. nr #SAVED_FN_DEPTH_1 \\n[#FN_DEPTH]
-\# Add the depth of the current footnote to any already existent
-\# footnotes.
+.\" Add the depth of the current footnote to any already existent
+.\" footnotes.
. nr #FN_DEPTH +\\n[#DIVER_DEPTH]
-\# Save the new depth
+.\" Special handling for run-on footnotes
+. if \\n[#RUN_ON]=1 \{\
+. if \\n[#RUNON_FOOTNOTES] \{\
+. unformat RUNON_FOOTNOTES
+. \}
+. if \\n[#RUNON_FN_IN_DIVER] \{\
+. unformat RUNON_FN_IN_DIVER
+. \}
+. ev FOOTNOTES
+.\" Recreate FOOTNOTES with rule followed by text of unformatted
+.\" run-on footnotes.
+. di FOOTNOTES
+. ie \\n[#FN_RULE]=0 \{ .RLD 1v \}
+. el \{\
+. PRINT
\v'-\\n[#FN_RULE_ADJ]u'\l'\\n[#FN_RULE_LENGTH]u'\v'+\\n[#FN_RULE_ADJ]u'
+. \}
+. br
+. if \\n[#RUNON_FOOTNOTES] \{\
+. RUNON_FOOTNOTES
+. rr #RUNON_FOOTNOTES
+. \}
+. if \\n[#RUNON_FN_IN_DIVER] \{\
+. RUNON_FN_IN_DIVER
+. rr #RUNON_FN_IN_DIVER
+. \}
+. br
+. di
+. ev
+. nr #FN_DEPTH \\n[#DIVER_DEPTH]
+. nr #SAVED_VFP 0+\\n[#VARIABLE_FOOTER_POS]
+. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u
+. \}
+.\" Save the new depth
. nr #SAVED_FN_DEPTH_2 \\n[#FN_DEPTH]
-\# Signal that defer space should be added when PROCESS_FN_LEFTOVER
-\# processes deferred footnotes.
+.\" Signal that defer space should be added when PROCESS_FN_LEFTOVER
+.\" processes deferred footnotes.
. if \\n[#FN_DEFER] \{\
. if \\n[#FN_COUNT]=2 \{\
. ie \\n[#COLUMNS] \{\
@@ -10404,22 +11080,22 @@
. \}
. rr #FN_DEFER
. \}
-\# If the depth of the whole footnote won't fit in the space
-\# between where we are on the page and the bottom margin, calculate
-\# how much of it will fit.
+.\" If the depth of the whole footnote won't fit in the space
+.\" between where we are on the page and the bottom margin, calculate
+.\" how much of it will fit.
. if \\n[#FN_DEPTH]>\\n[#SPACE_REMAINING] \{\
. nr #FN_LINES 0 1
-. while
(\\n+[#FN_LINES]*\\n[#FN_LEAD])<(\\n[#SPACE_REMAINING] \{\
+. while
(\\n+[#FN_LINES]*\\n[#FN_LEAD])<\\n[#SPACE_REMAINING] \{\
. nr #FN_DEPTH (\\n[#FN_LINES]*\\n[#FN_LEAD])
-. \}
+.\}
. nr #VFP_DIFF \\n[#FN_DEPTH]-\\n[#SAVED_FN_DEPTH_1]
. nr #OVERFLOW 1
-\# Very occasionally, #VFP_DIFF, on a 1st footnote that isn't to
-\# be deferred, comes up with a depth equal to exactly 1 line
-\# of footnotes, i.e. enough room to print the rule and nothing
-\# else. The following tests for such a condition, and rather than
-\# attempting to treat the footnote as an overflow, it tells mom to
-\# treat it as a special kind of deferred footnote (#FN_DEFER 2).
+.\" Very occasionally, #VFP_DIFF, on a 1st footnote that isn't to
+.\" be deferred, comes up with a depth equal to exactly 1 line
+.\" of footnotes, i.e. enough room to print the rule and nothing
+.\" else. The following tests for such a condition, and rather than
+.\" attempting to treat the footnote as an overflow, it tells mom to
+.\" treat it as a special kind of deferred footnote (#FN_DEFER 2).
. if \\n[#SAVED_FN_DEPTH_1]=0 \{\
. if \\n[#FN_DEPTH]=\\n[#FN_LEAD] \{\
. nr #FN_DEFER 2
@@ -10428,9 +11104,13 @@
. \}
. \}
. \}
-\# Calculate VFP based on whether the footnote overflows, or is to
-\# be treated normally.
+.\" Calculate VFP based on whether the footnote overflows, or is to
+.\" be treated normally.
. ie \\n[#OVERFLOW]=1 \{\
+. if \\n[#RUN_ON] \{\
+. rr #VARIABLE_FOOTER_POS
+. nr #VARIABLE_FOOTER_POS \\n[#SAVED_VFP]
+. \}
. ie \\n[#FN_COUNT]=1 \{\
. ie \\n[#RULED]=1 \{\
. ie \\n[#COLUMNS]=1 \{\
@@ -10478,12 +11158,12 @@
. if !\\n[#VFP_DIFF] \{\
. if \\n[#FN_MARKER_STYLE]=1 \{\
. da FOOTNOTES
-\!.ALD \\n[#FN_LEAD]u
+\!. ALD \\n[#FN_LEAD]u
. di
. \}
. if \\n[#RESET_FN_NUMBER] \{\
. da FOOTNOTES
-\!.ALD \\n[#FN_LEAD]u
+\!. ALD \\n[#FN_LEAD]u
. di
. \}
. \}
@@ -10492,6 +11172,8 @@
. \}
. \}
. \}
+. nr #VARIABLE_FOOTER_POS -\\n[#VFP_DIFF]
+. nr #FN_DEPTH \\n[#SAVED_FN_DEPTH_1]+\\n[#VFP_DIFF]
. \}
. el \{\
. nr #VARIABLE_FOOTER_POS -\\n[#VFP_DIFF]
@@ -10513,13 +11195,6 @@
. \}
. if \\n[#FN_COUNT]>1 \{\
. nr #NO_BACK_UP 1
-\# DIVERTED=2 doesn't seem to serve a purpose anymore, but I'm
-\# leaving it in, commented out, in case I discover why it was there in
-\# the first place. The rr #DIVERTED line seems to solve whatever
-\# problem DIVERTED=2 was designed to correct.
-\#
-\#.if \\n[#DIVERTED]=1 \{ .nr #DIVERTED 2 \}
-\#
. rr #DIVERTED
. rr #RULED
. \}
@@ -10527,15 +11202,15 @@
. \}
. \}
. ch FOOTER \\n[#VARIABLE_FOOTER_POS]u
-\# See VFP_CHECK for an explanation of the next lines.
-\# The trap has to be removed, prior to setting it, each time
-\# FOOTNOTE is run.
+.\" See VFP_CHECK for an explanation of the next lines.
+.\" The trap has to be removed, prior to setting it, each time
+.\" FOOTNOTE is run.
. if \\n[#PRINT_STYLE]=2 \{\
. ch VFP_CHECK
. wh \\n[#VARIABLE_FOOTER_POS]u-\\n[#DOC_LEAD]u VFP_CHECK
. \}
-\# If we have a footnote whose text has to be deferred to the next
-\# page, reset the FOOTER trap to its original location.
+.\" If we have a footnote whose text has to be deferred to the next
+.\" page, reset the FOOTER trap to its original location.
. if \\n[#FN_DEFER] \{\
. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u
. ch FOOTER \\n[#VARIABLE_FOOTER_POS]u
@@ -10543,14 +11218,20 @@
. \}
. nr #NO_FN_MARKER 0
. \}
+. if \\n[#ADD_BREAK] \{\
+. br
+. rr #ADD_BREAK
+. \}
.END
\#
\# Utility macros to manage footnotes that occur inside diversions
\# ---------------------------------------------------------------
\#
-\# There are some redundancies here; they're left in in case
-\# unforeseen footnote situations crop up in the future that might
-\# require manipulation of them.
+.ig
+There are some redundancies here; they're left in in case unforeseen
+footnote situations crop up in the future that might require
+manipulation of them.
+..
\#
\# 1. Pre-footnote processing for footnotes in diversions
\#
@@ -10601,7 +11282,9 @@
\# 2. Post-footnote processing for footnotes in diversions
\#
\# Even when a footnote inside a diversion is treated as
-\# "normal," some manipulation of registers is required.
+\# "normal," some manipulation of registers is required. The
+\# macro is called in DO_QUOTE (i.e. at the termination of
+\# quotes and blockquotes) and in DO_EPIGRAPH.
\#
.MAC DIVER_FN_2_POST END
. if \\n[#DONE_ONCE]=1 \{\
@@ -10640,22 +11323,24 @@
\# The main macros that handle footnote processing.
\# -----------------------------------------------
\#
-\# Sometimes, #VARIABLE_FOOTER_POS sets FOOTER at a location that
-\# gives the impression another line of running text could fit on
-\# the page. VFP_CHECK is always set to the line just above the
-\# one where FOOTER will be sprung, and checks for this condition.
-\# If it exists, FOOTER is set one line lower on the page, thus
-\# squeezing in an extra line of running text. This is a judgment
-\# call on my part, but seems to work well. If there are problems
-\# (e.g. footnotes really do look jammed), the user should probably
-\# adjust FOOTNOTE_AUTOLEAD and/or FOOTNOTE_RULE_ADJ.
-\#
-\# The macro has to be run in its own environment, otherwise the
-\# first word of the last line before the footnotes gets chopped.
+.ig
+Sometimes, #VARIABLE_FOOTER_POS sets FOOTER at a location that gives
+the impression another line of running text could fit on the page.
+VFP_CHECK is always set to the line just above the one where FOOTER
+will be sprung, and checks for this condition. If it exists, FOOTER
+is set one line lower on the page, thus squeezing in an extra line
+of running text. This is a judgment call on my part, but seems to
+work well. If there are problems (e.g. footnotes really do look
+jammed), the user should probably adjust FOOTNOTE_AUTOLEAD and/or
+FOOTNOTE_RULE_ADJ.
+
+The macro has to be run in its own environment, otherwise the first
+word of the last line before the footnotes gets chopped.
+..
\#
.MAC VFP_CHECK END
. ev VFP_CHECK
-\# The trap also has to be removed each time VFP_CHECK is run
+.\" The trap also has to be removed each time VFP_CHECK is run
. if \\n[#PRINT_STYLE]=2 \{\
. ch VFP_CHECK
. SIZESPECS
@@ -10684,13 +11369,14 @@
. ev
.END
\#
-\# FN_OVERFLOW_TRAP starts off "underneath" FOOTER, but is revealed as
-\# #VARIABLE_FOOTER_POSITION changes the position of FOOTER.
-\# FN_OVERFLOW_TRAP simply starts diversion FN_OVERFLOW
-\# to "catch" the overflow. The diversion is ended in FOOTER,
-\# immediately after FOOTER outputs the diversion, FOOTNOTES,
-\# before PROCESS_FN_LEFTOVER is run (either in HEADER, or in
-\# FOOTER if moving col to col).
+.ig
+FN_OVERFLOW_TRAP starts off "underneath" FOOTER, but is revealed
+as #VARIABLE_FOOTER_POSITION changes the position of FOOTER.
+FN_OVERFLOW_TRAP simply starts diversion FN_OVERFLOW to "catch"
+the overflow. The diversion is ended in FOOTER, immediately after
+FOOTER outputs the diversion, FOOTNOTES, before PROCESS_FN_LEFTOVER
+is run (either in HEADER, or in FOOTER if moving col to col).
+..
\#
.MAC FN_OVERFLOW_TRAP END
. if \\n[#FN_COUNT] \{\
@@ -10701,11 +11387,6 @@
. if \\n[#FROM_FOOTER] \{\
. if \\n[#PREV_FN_DEFERRED] \{\
. if !\\n[#COL_NUM]=\\n[#NUM_COLS] \{\
-\# The following line used to serve some purpose, but as things
-\# stand now, it screws things up. I'm leaving it in, commented out,
-\# in case I \# discover why I thought it was needed.
-\#
-\#\!.RLD \\n[#FN_LEAD]u
. rr #PREV_FN_DEFERRED
. \}
. \}
@@ -10713,13 +11394,13 @@
. if !\\n[#FROM_FOOTER] \{\
. if !\\n[#COL_NUM]=\\n[#NUM_COLS] \{\
. if !\\n[#LAST_FN_COUNT_FOR_COLS]>1 \{\
-\!.RLD \\n[#FN_LEAD]u
+\!. RLD \\n[#FN_LEAD]u
. \}
. \}
. \}
. \}
. el \{\
-\!.RLD \\n[#FN_LEAD]u
+\!. RLD \\n[#FN_LEAD]u
. \}
. \}
. \}
@@ -10728,26 +11409,23 @@
. rr #PREV_FN_DEFERRED
. \}
. \}
-\# When #FROM_DIVERT_FN is 1, it signals to FOOTNOTE, when run from
-\# within DIVERT_FN_LEFTOVER, to set #SPACE_REMAINING to the total
-\# area allowable for running text.
+.\" When #FROM_DIVERT_FN is 1, it signals to FOOTNOTE, when run from
+.\" within DIVERT_FN_LEFTOVER, to set #SPACE_REMAINING to the total
+.\" area allowable for running text.
. nr #FROM_DIVERT_FN 1
.END
\#
-\# PROCESS_FN_LEFTOVER is called at the top of HEADER, and in
-\# FOOTER if we're moving from one column to the next (i.e. after
-\# outputting FOOTNOTES). It checks for whether we have a "deferred
-\# footnote" situation, and resets counters and number registers
-\# accordingly. Lastly, if we have some footnote overflow, it calls
-\# DIVERT_FN_OVERFLOW.
+.ig
+PROCESS_FN_LEFTOVER is called at the top of HEADER, and in
+FOOTER if we're moving from one column to the next (i.e. after
+outputting FOOTNOTES). It checks for whether we have a "deferred
+footnote" situation, and resets counters and number registers
+accordingly. Lastly, if we have some footnote overflow, it calls
+DIVERT_FN_OVERFLOW.
+..
\#
.MAC PROCESS_FN_LEFTOVER END
. if \\n[#PREV_FN_DEFERRED]=2 \{\
-\# #FN_COUNT_FOR_COLS_AT_FOOTER used to have a purpose. I'm
-\# leaving it in, commented out, as a safeguard against
-\# (re)discovering why it was needed.
-\#
-\#.if \\n[#FN_COUNT_FOR_COLS_AT_FOOTER]=0 \{ .rr #PREV_FN_DEFERRED \}
. if \\n[#FN_COUNT_AT_FOOTER]>1 \{ .rr #PREV_FN_DEFERRED \}
. \}
. if !\\n[#FN_DEFER] \{\
@@ -10795,9 +11473,11 @@
. rr #FROM_DIVERT_FN
.END
\#
-\# DIVERT_FN_LEFTOVER is called in PROCESS_FN_LEFTOVER (at
-\# the top of HEADER, and in FOOTER if we're moving from one column
-\# to the next).
+.ig
+DIVERT_FN_LEFTOVER is called in PROCESS_FN_LEFTOVER (at
+the top of HEADER, and in FOOTER if we're moving from one column
+to the next).
+..
\#
.MAC DIVERT_FN_LEFTOVER END
. nr #NO_FN_MARKER 1
@@ -10818,10 +11498,12 @@
. rr #FN_OVERFLOW_DEPTH
.END
\#
-\# This is a special macro to deal with footnotes that are set
-\# inside diversions (QUOTE, BLOCKQUOTE and EPIGRAPH). It's called
-\# in HEADER (and in FOOTER, if we're moving from column to column),
-\# and comes after PROCESS_FOOTNOTE_LEFTOVER in those two macros.
+.ig
+This is a special macro to deal with footnotes that are set inside
+diversions (QUOTE, BLOCKQUOTE and EPIGRAPH). It's called in HEADER
+(and in FOOTER, if we're moving from column to column), and comes
+after PROCESS_FOOTNOTE_LEFTOVER in those two macros.
+..
\#
.MAC PROCESS_FN_IN_DIVER END
. nr #SPACE_REMAINING 0
@@ -10831,8 +11513,15 @@
. rr #RESET_FN_COUNTERS
. \}
. FOOTNOTE
-. nf
-. FN_IN_DIVER
+. if \\n[#FN_OVERFLOW_DEPTH] \{ .nf \}
+. ie dRUNON_FN_IN_DIVER \{\
+. RUNON_FN_IN_DIVER
+. rm RUNON_FN_IN_DIVER
+. \}
+. el \{\
+. nf
+. FN_IN_DIVER
+. \}
. FOOTNOTE OFF
. rr #DIVER_FN
.END
@@ -10841,16 +11530,20 @@
\#
\# +++ENDNOTES+++
\#
-\# When endnotes are output, the spacing between the notes is always 1
-\# extra linespace. This can have bottom margin consequences. If this
-\# doesn't bother you, don't worry about it. If it does bother you, and
-\# you want to adjust the spacing between any two endnotes (as they're
-\# output), make the spacing adjustments (.ALD/.RLD) at the *end* of
-\# endnotes (i.e. just before .ENDNOTE OFF), not at the top.
-\#
-\# Endnotes must be output manually with .ENDNOTES. This allows user
-\# the flexibility to output endnotes at the end of each collated
-\# document, or to output them at the end of the entire document.
+.ig
+When endnotes are output, the spacing between the notes is always
+1 extra linespace. This can have bottom margin consequences. If
+this doesn't bother you, don't worry about it. If it does bother
+you, and you want to adjust the spacing between any two endnotes (as
+they're output), make the spacing adjustments (.ALD/.RLD) at the
+*end* of endnotes (i.e. just before .ENDNOTE OFF), not at the top.
+
+Endnotes must be output manually with .ENDNOTES. This allows user
+the flexibility to output endnotes at the end of each collated
+document, or to output them at the end of the entire document.
+..
+\#
+\# Control macros
\#
\# ENDNOTE POINT SIZE
\# ------------------
@@ -11000,6 +11693,11 @@
.END
\#
\#
+.MAC ENDNOTE_TITLE_SPACE END
+. nr #EN_TITLE_SPACE (\\$1)
+.END
+\#
+\#
\# ENDNOTE TITLE UNDERSCORE
\# ------------------------
\# *Argument:
@@ -11015,6 +11713,108 @@
.END
\#
\#
+\# ENDNOTE MARKER STYLE
+\# --------------------
+\# *Arguments:
+\# NUMBER | LINE
+\# *Function:
+\# Sets register #EN_MARKER_STYLE, used in ENDNOTE to determine
+\# the style of endnote markers (labels).
+\# *Notes:
+\# 1=NUMBER; 2=LINE. LINE means "use output line numbers".
+\# Default is NUMBER.
+\#
+.MAC ENDNOTE_MARKER_STYLE END
+. 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 \}
+. \}
+. \}
+.END
+\#
+\#
+\# ENDNOTE LINENUMBER MARK
+\# -----------------------
+\# *Function:
+\# 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'
+\#
+\#
+\# ENDNOTE LINENUMBER SEPARATOR
+\# ----------------------------
+\# *Argument:
+\# <user-defined separator>
+\# *Function:
+\# Stores user-defined separator (for use then
+\# ENDNOTE_MARKER_STYLE is LINE) in string $EN_LN_SEP. The
+\# separator is intended to be used when the user wishes a
+\# separator, rather than the choice of brackets offered by
+\# ENDNOTE_LINENUMBER_BRACKETS.
+\#
+.MAC ENDNOTE_LINENUMBER_SEPARATOR END
+. rr #EN_LN_BRACKETS
+. nr #EN_LN_SEP 1
+. ds $EN_LN_SEP "\\$1
+.END
+\#
+\#
+\# ENDNOTE LINENUMBER BRACKETS
+\# ---------------------------
+\# *Argument:
+\# PARENS | SQUARE | BRACES or ( | [ | {
+\# *Function:
+\# Sets register #EN_LN_BRACKETS to 1, and creates strings
+\# $EN_OPEN_BRACKET and $EN_CLOSE_BRACKET according to the given argument.
+\#
+.MAC ENDNOTE_LINENUMBER_BRACKETS END
+. rr #EN_LN_SEP
+. nr #EN_LN_BRACKETS 1
+. if '\\$1'PARENS' \{\
+. ds $EN_OPEN_BRACKET (
+. ds $EN_CLOSE_BRACKET )
+. \}
+. if '\\$1'(' \{\
+. ds $EN_OPEN_BRACKET (
+. ds $EN_CLOSE_BRACKET )
+. \}
+. if '\\$1'SQUARE' \{\
+. ds $EN_OPEN_BRACKET [
+. ds $EN_CLOSE_BRACKET ]
+. \}
+. if '\\$1'[' \{\
+. ds $EN_OPEN_BRACKET [
+. ds $EN_CLOSE_BRACKET ]
+. \}
+. if '\\$1'BRACES' \{\
+. ds $EN_OPEN_BRACKET {
+. ds $EN_CLOSE_BRACKET }
+. \}
+. if '\\$1'{' \{\
+. ds $EN_OPEN_BRACKET {
+. ds $EN_CLOSE_BRACKET }
+. \}
+.END
+\#
+\#
+\# ENDNOTE LINENUMBER GAP
+\# ----------------------
+\# *Argument:
+\# <space between line-number labels and endnotes text>
+\# *Function:
+\# Defines string $EN_LN_GAP, used during printing of line-number
+\# labels in ENDNOTE.
+\#
+.MAC ENDNOTE_LINENUMBER_GAP END
+. ds $EN_LN_GAP \\$1
+.END
+\#
+\#
\# ENDNOTE NUMBERS ALIGN RIGHT
\# ---------------------------
\# *Argument:
@@ -11225,25 +12025,42 @@
\# Places superscript endnote number in text, then collects and
\# processes endnote in diversion END_NOTES.
\# *Notes:
-\# \c must be appended to the word immediately preceding .ENDNOTE.
+\# \c must be appended to the word immediately preceding .ENDNOTE
+\# when ENDNOTE_MARKER_STYLE is NUMBER.
\#
.MAC ENDNOTE END
+. if !\\n(.u \{ .nr #ADD_BREAK 1 \}
. ie '\\$1'' \{\
. nr #ENDNOTE 1
-. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
-. if \\n[#EXTEND] \{ \*[EXTX]\c \}
-. if \\n[#PRINT_STYLE]=1 \{\
-. if \\n[#UNDERLINE_ON] \{\
-. nr #UNDERLINE_WAS_ON 1
-. UNDERLINE OFF
-. \}
-. if \\n[#SLANT_ON] \{\
-. nr #SLANT_WAS_ON 1
+. if \\n[#EN_MARKER_STYLE]=1 \{\
+. if \\n[#CONDENSE] \{ \*[CONDX]\c \}
+. if \\n[#EXTEND] \{ \*[EXTX]\c \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. if \\n[#UNDERLINE_ON] \{\
+. nr #UNDERLINE_WAS_ON 1
+. UNDERLINE OFF
+. \}
+. if \\n[#SLANT_ON] \{\
+. nr #SLANT_WAS_ON 1
\*[SLANTX]\c
+. \}
+. PRINT
"\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#EN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2\c"
+. \}
+. if \\n[#PRINT_STYLE]=2 \{ .PRINT
"\*[SUP]\\n+[#EN_NUMBER]\*[SUPX]\c" \}
+. \}
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+. if !\\n[#LINENUMBERS] \{\
+. tm1 "[mom]: Line numbering must be enabled with NUMBER_LINES when
+. tm1 " ENDNOTE_MARKER_STYLE is LINE.
+. ab Aborting on ENDNOTE at line \\n(.c.
+. \}
+. if \\n[#EN_MARK]=0 \{ .nr #EN_MARK \\n(ln \}
+. nr #EN_MARK_2 \\n(ln
+. if '\\n(.z'P_QUOTE' \{\
+. nr #EN_MARK -1
+. nr #EN_MARK_2 -1
. \}
-. PRINT
"\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#EN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2"
. \}
-. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n+[#EN_NUMBER]\*[SUPX]" \}
. nr #PP_STYLE_PREV \\n[#PP_STYLE]
. nr #PP_STYLE 1
. if \\n[#INDENT_FIRST_PARAS] \{ .nr #INDENT_FIRSTS 1 \}
@@ -11285,73 +12102,126 @@
. \}
. \}
. \}
-. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-. ie \\n[#EN_NUMBER]=1 \{\
-. if !'\\*[$EN_TITLE]'' \{ .sp \}
-. \}
-. el \{ .sp \}
-\!. TRAP OFF
-. if \\n[#PRINT_STYLE]=1 \{\
-. TYPEWRITER
-. \}
-. if \\n[#PRINT_STYLE]=2 \{\
+. ie \\n[#EN_NUMBER]=1 \{\
+. if !'\\*[$EN_TITLE]'' \{ .sp \}
+. \}
+. el \{ .sp \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. TYPEWRITER
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. if \\n[#EN_MARKER_STYLE]=1 \{\
. FAMILY \\*[$EN_NUMBER_FAM]
. FT \\*[$EN_NUMBER_FT]
. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE]
. \}
-. nr #RESET_L_LENGTH \\n(.l
-. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]+\w'.'
-. ll \\n[#EN_NUMBER_L_LENGTH]u
-. RIGHT
-\En[#EN_NUMBER].
-. if \\n[#PRINT_STYLE]=1 \{\
-. TYPEWRITER
-. \}
-. if \\n[#PRINT_STYLE]=2 \{\
-. FAMILY \\*[$EN_FAM]
-. FT \\*[$EN_FT]
-. PT_SIZE \\n[#EN_PS]u
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+. FAMILY \\*[$EN_LN_FAM]
+. FT \\*[$EN_LN_FT]
+. PT_SIZE \\n[#EN_PS]u\\*[$EN_LN_SIZE_CHANGE]
. \}
-. EOL
-. ll \\n[#RESET_L_LENGTH]u
-. in \\n[#EN_NUMBER_L_LENGTH]u+\w'.\0'u
-. nr #EN_TEXT_INDENT \\n(.i
-. QUAD \\*[$EN_QUAD]
-\!. TRAP
. \}
-. el \{\
-. ie \\n[#EN_NUMBER]=1 \{\
-. if !'\\*[$EN_TITLE]'' \{ .sp \}
-. \}
-. el \{ .sp \}
-. if \\n[#PRINT_STYLE]=1 \{\
-. TYPEWRITER
+. 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' \"
+. \}
+. el \{\
+. as $EN_LINENUMBER
\\n[#EN_MARK]\v'-.1m'-\v'.1m'\\n[#EN_MARK_2]\v'-.085m'\\*[$EN_CLOSE_BRACKET]\v'.085m'
\"
+. \}
. \}
-. if \\n[#PRINT_STYLE]=2 \{\
-. FAMILY \\*[$EN_NUMBER_FAM]
-. FT \\*[$EN_NUMBER_FT]
-. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE]
+. el \{\
+. ie \\n[#EN_MARK_2]=\\n[#EN_MARK] \{\
+. ds $EN_LINENUMBER \\n[#EN_MARK]\\*[$EN_LN_SEP]
+. \}
+. el \{\
+. ds $EN_LINENUMBER
\\n[#EN_MARK]\v'-.1m'-\v'.1m'\\n[#EN_MARK_2]\\*[$EN_LN_SEP]
+. \}
. \}
-. QUAD \\*[$EN_QUAD]
-\En[#EN_NUMBER].\0\c
-. if \\n[#PRINT_STYLE]=2 \{\
-. FAMILY \\*[$EN_FAM]
-. FT \\*[$EN_FT]
-. PT_SIZE \\n[#EN_PS]u
+. nr #EN_MARK 0
+. \}
+\!. TRAP OFF
+. nr #RESET_L_LENGTH \\n(.l
+. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]+\w'.'
+. RIGHT
+. \}
+. el \{\
+. nr #EN_NUMBER_L_LENGTH \w'\En[#EN_NUMBER].\0'
+. LEFT
+. \}
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+. if !\\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
+. nr #EN_NUMBER_L_LENGTH \w'\\*[$EN_LINENUMBER]'+\\*[$EN_LN_GAP]
+. LEFT
. \}
. \}
-. \}
-. el \{\
-. br
-. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\
-. in 0
+. ll \\n[#EN_NUMBER_L_LENGTH]u
+. if \\n[#EN_MARKER_STYLE]=1 \{\
+\En[#EN_NUMBER].
. \}
-. di
-. ev
-. nr #PP_STYLE \\n[#PP_STYLE_PREV]
-. if !\\n[#INDENT_FIRSTS] \{ .INDENT_FIRST_PARAS OFF \}
-. rr #INDENT_FIRSTS
-. rr #ENDNOTE
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+\\*[$EN_LINENUMBER]
+. rm $EN_LINENUMBER
+. \}
+. 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
+. \}
+. el \{\
+. ti \\n[#EN_NUMBER_L_LENGTH]u
+. \}
+. nr #EN_TEXT_INDENT \\n(.i
+. QUAD \\*[$EN_QUAD]
+\!. TRAP
+. if \\n[#PRINT_STYLE]=1 \{\
+. TYPEWRITER
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. FAMILY \\*[$EN_FAM]
+. 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)
+. \}
+. \}
+. el \{\
+. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\
+. in \\*[$REF_EN_INDENT]
+. ti -(\\*[$REF_EN_INDENT]-\\n[#EN_NUMBER_L_LENGTH]u)
+. \}
+. \}
+. \}
+. \}
+. el \{\
+. br
+. in 0
+. if \\n[#EN_MARKER_STYLE]=2 \{\
+\!. in 0
+. \}
+. di
+.\" Restore sentence spacing
+. if \\n[#PRINT_STYLE]=2 \{\
+. if d$RESTORE_SS_VAR \{ .SS \\*[$RESTORE_SS_VAR] \}
+. rm $RESTORE_SS_VAR
+. \}
+. ev
+. 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
@@ -11363,6 +12233,10 @@
\*[SLANT]\c
. \}
. \}
+. if \\n[#ADD_BREAK] \{\
+. br
+. rr #ADD_BREAK
+. \}
.END
\#
\#
@@ -11380,6 +12254,10 @@
. nr #EN_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[#EN_ALLOWS_HEADERS_ALL] \{ .HEADERS OFF \}
. \}
@@ -11401,7 +12279,7 @@
. el \{ .nr #PAGINATE 0 \}
. \}
. if \\n[#FOOTERS_ON]=1 \{\
-. if !'\\*[$HDRFTR_CENTER_OLD]'' \{ .ds $HDRFTR_CENTER
\\*[$HDRFTR_CENTER_OLD]\}
+. if !'\\*[$HDRFTR_CENTER_OLD]'' .ds $HDRFTR_CENTER
\\*[$HDRFTR_CENTER_OLD]
. \}
. NEWPAGE
. if \\n[#FOOTERS_ON]=1 \{\
@@ -11427,7 +12305,7 @@
. if \\n[#HEADER_STATE]=1 \{\
. if \\n[#EN_ALLOWS_HEADERS] \{ .HEADERS \}
. \}
-\# Collect endnote title string for TOC
+.\" Collect endnotes title string for TOC
. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
. ds $TOC_TITLE_ITEM \\*[$EN_STRING]\\|
@@ -11464,8 +12342,8 @@
\!. TQ
. di
. ev
-\# End collection of endnote title string for TOC
-\# Process endnote
+.\" End collection of endnotes title string for TOC
+.\" Process endnotes
. if \\n[#PRINT_STYLE]=1 \{ .vs \\n[#EN_LEAD]u \}
. if \\n[#PRINT_STYLE]=2 \{\
. if \\n[#EN_NO_COLS] \{\
@@ -11479,7 +12357,8 @@
. el \{ .DOC_LEAD \\n[#EN_LEAD]u \}
. \}
. PRINT \&
-. sp |\\n[#T_MARGIN]u
+. ie r#EN_TITLE_SPACE \{ .sp |\\n[#EN_TITLE_SPACE]u \}
+. el \{ .sp |\\n[#T_MARGIN]u \}
. mk ec
. if \\n[#SLANT_ON] \{\
\*[SLANTX]\c
@@ -11525,7 +12404,20 @@
. \}
. \}
. CAPS OFF
-. ALD \\n[#EN_LEAD]u
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE]=1 \{\
+. ALD \\n[#EN_LEAD]u*2u
+. \}
+. el \{\
+. ie \\n[#EN_SINGLESPACE]=1 \{\
+. ALD \\n[#EN_LEAD]u*2
+. \}
+. el \{\
+.
+. \}
+. \}
+. \}
+. if \\n[#PRINT_STYLE]=2 \{ .ALD \\n[#EN_LEAD]u \}
. QUAD \\*[$EN_QUAD]
. nf
. END_NOTES
@@ -11542,11 +12434,417 @@
. \}
. if \\n[#COLUMNS_WERE_ON] \{ .nr #COLUMNS 1 \}
. if \\n[#HEADER_STATE]=1 \{ .HEADERS \}
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
. rr #ENDNOTES
.END
\#
\# ====================================================================
\#
+\# +++BIBLIOGRAPHY+++
+\#
+.ig
+Mom treats bibliographies and endnotes very similarly. The chief
+difference is that endnotes are collected and formatted inside a
+diversion, while bibliographies are built "by hand." ENDNOTES sets
+up the endnotes page and outputs the formatted diversion.
+BIBLIOGRAPHY sets up the bibliography page, then awaits refer
+commands.
+
+All of the bibliography control macros have their exact
+counterparts in the endnotes control macros. It was tempting to do
+fancy stuff with aliases to avoid the repetition, but for reasons
+of my own sanity, and for the benefit of anyone wanting to play
+around with the bibliography control macros, I decided to keep them
+separate.
+
+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 \}
+.END
+\#
+.MAC BIBLIOGRAPHY_STRING END
+. ds $BIB_STRING \\$1
+.END
+\#
+.MAC BIBLIOGRAPHY_STRING_UNDERSCORE END
+. ie '\\$1'' \{ .nr #BIB_STRING_UNDERSCORE 1 \}
+. el \{\
+. ie '\\$1'2' \{ .nr #BIB_STRING_UNDERSCORE 2 \}
+. el \{ .nr #BIB_STRING_UNDERSCORE 0 \}
+. \}
+.END
+\#
+.MAC BIBLIOGRAPHY_STRING_CAPS END
+. ie '\\$1'' \{ .nr #BIB_STRING_CAPS 1 \}
+. el \{ .rr #BIB_STRING_CAPS \}
+.END
+\#
+.MAC BIBLIOGRAPHY_NO_COLUMNS END
+. ie '\\$1'' \{ .nr #BIB_NO_COLS 1 \}
+. el \{ .rr #BIB_NO_COLS \}
+.END
+\#
+.MAC BIBLIOGRAPHY_NO_FIRST_PAGENUM END
+. ie '\\$1'' \{ .nr #BIB_NO_FIRST_PN 1 \}
+. el \{ .rr #BIB_NO_FIRST_PN \}
+.END
+\#
+.MAC BIBLIOGRAPHY_ALLOWS_HEADERS END
+. ie '\\$1'' \{ .nr #BIB_ALLOWS_HEADERS 1 \}
+. el \{\
+. ie '\\$1'ALL' \{\
+. nr #BIB_ALLOWS_HEADERS 1
+. nr #BIB_ALLOWS_HEADERS_ALL 1
+. \}
+. el \{\
+. rr #BIB_ALLOWS_HEADERS
+. rr #BIB_ALLOWS_HEADERS_ALL
+. \}
+. \}
+.END
+\#
+.MAC BIBLIOGRAPHY_PAGENUM_STYLE END
+. ds $BIB_PN_STYLE \\$1
+.END
+\#
+.MAC BIBLIOGRAPHY_FIRST_PAGENUMBER END
+. nr #BIB_FIRST_PN \\$1
+.END
+\#
+.MAC SINGLESPACE_BIBLIOGRAPHY END
+. if \\n[#PRINT_STYLE]=1 \{\
+. ie \\n[#SINGLE_SPACE] \{\
+. nr #BIB_SINGLESPACE 1
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. BIBLIOGRAPHY_LEAD 12 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. el \{\
+. ie '\\$1'' \{\
+. nr #BIB_SINGLESPACE 1
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. BIBLIOGRAPHY_LEAD 12 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. el \{\
+. rr #BIB_SINGLESPACE
+. rr #IGNORE
+. if \\n[#OK_PROCESS_LEAD] \{\
+. BIBLIOGRAPHY_LEAD 24 ADJUST
+. nr #IGNORE 1
+. \}
+. \}
+. \}
+. \}
+.END
+\#
+\#
+\# Style for outputting collected bibliographic references
+\# -------------------------------------------------------
+\# *Argument:
+\# LIST | PLAIN [ <list separator> ] [ <list prefix> ]
+\# *Function:
+\# Sets #BIB_LIST to 1 for numbered list style, 0 for plain output
+\# *Notes:
+\# Technically, user is supposed to enter PLAIN if s/he wants an
+\# unumbered bibliography, but the el clause says "any arg but
+\# LIST means unumbered." Effectively, any arg but LIST produces
+\# a "plain" bibliographic list.
+\#
+\# The 2nd and 3rd args have the same options as the 2nd arg to LIST.
+\#
+.MAC BIBLIOGRAPHY_TYPE END
+. ie '\\$1'LIST' \{\
+. nr #BIB_LIST 1
+. ie '\\$2'' \{\
+. if '\\*[$BIB_LIST_SEPARATOR]'' .ds $BIB_LIST_SEPARATOR .
+. \}
+. el .ds $BIB_LIST_SEPARATOR \\$2
+. ie '\\$3'' .ds $BIB_LIST_PREFIX
+. el .ds $BIB_LIST_PREFIX \\$3
+. \}
+. el \{ .nr #BIB_LIST 0 \}
+.END
+\#
+\# Spacing between items in bibliographies
+\# ---------------------------------------
+\# *Argument:
+\# <amount of space>
+\# *Function:
+\# Gets value for #BIB_SPACE in units.
+\# *Notes:
+\# Requires a unit of measure.
+\#
+.MAC BIBLIOGRAPHY_SPACING END
+. ds $BIB_SPACE \\$1
+. if \\n[#BIB_LEAD]=0 \{\
+. nr #DEFER_BIB_SPACING 1
+. return
+. \}
+. ds $EVAL_BIB_SPACE \\*[$BIB_SPACE]
+. substring $EVAL_BIB_SPACE -1
+. ie '\\*[$EVAL_BIB_SPACE]'v' \{\
+. substring $BIB_SPACE 0 0
+. nr #BIB_SPACE \\n[#BIB_LEAD]*\\*[$BIB_SPACE]
+. \}
+. el \{\
+. nr #BIB_SPACE (\\$1)
+. \}
+.END
+\#
+\# Set up bibliography page
+\# ------------------------
+\# *Function:
+\# Sets up a new page, with title, ready to accept the output
+\# of refer's $LIST$ or .R1 bibliography .R2
+\# *Notes:
+\# 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 \}
+. \}
+. \}
+. \}
+. el \{\
+. ie \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 1 \}
+. el \{ .nr #PAGINATE 0 \}
+. \}
+. if \\n[#FOOTERS_ON]=1 \{\
+. if !'\\*[$HDRFTR_CENTER_OLD]'' .ds $HDRFTR_CENTER
\\*[$HDRFTR_CENTER_OLD]
+. \}
+. NEWPAGE
+. if \\n[#FOOTERS_ON]=1 \{\
+. ds $HDRFTR_CENTER \\*[$HDRFTR_CENTER_NEW]
+. rm $HDRFTR_CENTER_OLD
+. rm $HDRFTR_CENTER_NEW
+. \}
+. ie !\\n[#SUSPEND_PAGINATION] \{\
+. if \\n[#PAGE_NUM_V_POS]=1 \{\
+. if r#BIB_NO_FIRST_PN \{\
+. if \\n[#PAGINATION_STATE]=1 \{\
+. nr #PAGINATE 1
+. \}
+. \}
+. \}
+. \}
+. el \{\
+. if \\n[#PAGE_NUM_V_POS]=2 \{ .nr #PAGINATE 0 \}
+. \}
+. rr #PAGINATION_STATE
+. PAGENUM_STYLE \\*[$BIB_PN_STYLE]
+. if \\n[#BIB_FIRST_PN] \{ .PAGENUMBER \\n[#BIB_FIRST_PN] \}
+. if \\n[#HEADER_STATE]=1 \{\
+. if \\n[#BIB_ALLOWS_HEADERS] \{ .HEADERS \}
+. \}
+.\" Collect bibliography title string for TOC
+. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ]
+. af #TOC_ENTRY_PN \\g[#PAGENUMBER]
+. ds $TOC_TITLE_ITEM \\*[$BIB_STRING]\\|
+. 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
+. 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]"
+. \}
+\!. 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
+. \}
+. 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 \}
+. \}
+. PRINT \&
+. ie r#BIB_TITLE_SPACE \{ .sp |\\n[#BIB_TITLE_SPACE]u \}
+. el \{ .sp |\\n[#T_MARGIN]u \}
+. mk ec
+. if \\n[#SLANT_ON] \{\
+\*[SLANTX]\c
+. \}
+. 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 '\\*[$EN_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_UNDERSCORE] \{\
+. ie \\n[#BIB_STRING_UNDERSCORE]=2 \{\
+. UNDERSCORE2 "\\*[$BIB_STRING]
+. \}
+. el \{\
+. UNDERSCORE "\\*[$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]
+. \}
+. el \{ .DOC_LEAD \\n[#RESTORE_DOC_LEAD]u \}
+. rr #RESTORE_DOC_LEAD
+. \}
+. if \\n[#COLUMNS_WERE_ON] \{ .nr #COLUMNS 1 \}
+. if \\n[#HEADER_STATE]=1 \{ .HEADERS \}
+. rr #BIBLIOGRAPHY
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
+.END
+\#
+\# ====================================================================
+\#
\# +++TABLE OF CONTENTS+++
\#
\# Strings to allocate space for leaders and entry page numbers
@@ -11761,6 +13059,10 @@
\#
\#
.MAC TOC END
+. if \\n[#LINENUMBERS]=1 \{\
+. NUMBER_LINES OFF
+. nr #LINENUMBERS 2
+. \}
. if !r#PAGINATE_TOC \{ .PAGINATE_TOC \}
. nr #TOC_FIRST_PAGE 1
. if \\n[#FINIS] \{\
@@ -11769,7 +13071,7 @@
. \}
. \}
. if \\n[#FOOTERS_ON]=1 \{\
-. if !'\\*[$HDRFTR_CENTER_OLD]'' \{ .ds $HDRFTR_CENTER
\\*[$HDRFTR_CENTER_OLD]\}
+. if !'\\*[$HDRFTR_CENTER_OLD]'' .ds $HDRFTR_CENTER
\\*[$HDRFTR_CENTER_OLD]
. ie \\n[#PAGINATE_TOC]=1 \{ .PAGINATE \}
. el \{ .PAGINATION OFF \}
. \}
@@ -11799,6 +13101,7 @@
. DOC_LEAD 24 ADJUST
. nr #IGNORE 1
. \}
+. if \\n[#LINENUMBERS]=2 \{ .nr #LINENUMBERS 3 \}
. START
. PP
. nr #COLUMNS 0
@@ -11837,9 +13140,9 @@
. \}
. LEFT
. SP
-\# In collated docs, this bit inserts the first doc's title
-\# underneath the TOC header, before the TOC_ENTRIES diversion
-\# gets output.
+.\" In collated docs, this bit inserts the first doc's title
+.\" underneath the TOC header, before the TOC_ENTRIES diversion
+.\" gets output.
. nf
. if d$FIRST_DOC_TITLE \{\
. nr #RESTORE_TOC_PN_PADDING \\n[#TOC_PN_PADDING]
@@ -11874,6 +13177,11 @@
. TOC_ENTRIES
. br
. rr #TOC
+. if \\n[#LINENUMBERS]=3 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. nn 1
+. \}
.END
\#
\# ====================================================================
@@ -11901,6 +13209,9 @@
. while !\\n[#COL_NUM]=\\n[#NUM_COLS] \{\
. nr #COL_\\n+[#COL_NUM]_L_MARGIN \\n[#L_MARGIN]+\\n[#COL_TOTAL]
. nr #COL_TOTAL \\n+[#COL_TOTAL]
+.\}
+. if \\n[#NUM_COLS]=1 \{\
+. if !\\n[#COLLATE]=1 \{ .MN_INIT \}
. \}
. rr #COL_TOTAL
. rr #COL_NUM
@@ -11938,7 +13249,7 @@
\# LIST
\# ----
\# *Arguments:
-\# [ BULLET | DASH | DIGIT | ALPHA | USER ] [ <separator> ] [ <anything> ]
+\# [ BULLET | DASH | DIGIT | alpha | ALPHA | roman | ROMAN | USER ] [
<separator> | NONE ] [ <prefix> ] [ <anything> ]
\# *Function:
\# Stores indent information in effect prior to invocation and
\# initializes a list with the supplied enumerator (and separator).
@@ -11953,6 +13264,30 @@
\# completely if the level in which it's invoked is the first.
\#
.MAC LIST END
+. ds $1ST_LETTER \\$1
+. substring $1ST_LETTER 0 0
+. if '\\*[$1ST_LETTER]'r' .ds $1ST_LETTER R
+. ie '\\*[$1ST_LETTER]'R' \{\
+. ds $LAST_CHAR \\$1
+. substring $LAST_CHAR -1
+. if !\B'\\*[$LAST_CHAR]' \{\
+. tm1 "[mom]: You must append a number to the \\$1 argument to LIST
at line \\n(.c.
+. tm1 " The number should be the total number of items in this
list.
+. tm1 " See the documentation.
+. ab Aborting LIST
+. \}
+. ds $ROMAN_WIDTH \\$1
+. substring $ROMAN_WIDTH 1
+. while !\B'\\*[$ROMAN_WIDTH]' \{\
+. substring $ROMAN_WIDTH 1
+.\}
+. length #ROMAN_LENGTH \\*[$ROMAN_WIDTH]
+. ds $LIST_ARG_1 \\$1
+. substring $LIST_ARG_1 0 -(\\n[#ROMAN_LENGTH]+1)
+. \}
+. el \{\
+. ds $LIST_ARG_1 \\$1
+. \}
. if !r#DEPTH \{\
. nr #STORED_HL_INDENT \\n[#HL_INDENT]
. nr #STORED_T_INDENT \\n[#T_INDENT]
@@ -11984,45 +13319,93 @@
. if \\n[#NUM_ARGS]=0 \{\
. nr #ARGS_TO_LIST 1 \" So default behaves as if LIST BULLET
. ds $ENUMERATOR\\n+[#DEPTH] \(bu
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] other
. ds $SEPARATOR
. \}
. if \\n[#NUM_ARGS]>0 \{\
. rr #ARGS_TO_LIST \" Clear this before processing arg 1.
-. if '\\$1'DASH' \{\
+. if '\\*[$LIST_ARG_1]'DASH' \{\
. nr #ARGS_TO_LIST 1
. ds $ENUMERATOR\\n+[#DEPTH] \(en
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] other
. ds $SEPARATOR\\n[#DEPTH]
. \}
-. if '\\$1'BULLET' \{\
+. if '\\*[$LIST_ARG_1]'BULLET' \{\
. nr #ARGS_TO_LIST 1
. ds $ENUMERATOR\\n+[#DEPTH] \(bu
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] other
. ds $SEPARATOR\\n[#DEPTH]
. \}
-. if '\\$1'DIGIT' \{\
+. if '\\*[$LIST_ARG_1]'DIGIT' \{\
. nr #ARGS_TO_LIST 1
. nr #ENUMERATOR\\n+[#DEPTH] 0 1
. ds $ENUMERATOR_TYPE\\n[#DEPTH] register
. ds $SEPARATOR\\n[#DEPTH] .
-. if \\n[#NUM_ARGS]=2 \{\
-. ie '\\$2'NONE' \{ .ds $SEPARATOR\\n[#DEPTH]\}
-. el \{ .ds $SEPARATOR\\n[#DEPTH] \\$2\}
+. ds $PREFIX\\n[#DEPTH]
+. if \\n[#NUM_ARGS]>=2 \{\
+. ie '\\$2'NONE' .ds $SEPARATOR\\n[#DEPTH]
+. el .ds $SEPARATOR\\n[#DEPTH] \\$2
+. if \\n[#NUM_ARGS]=3 \{\
+. ds $PREFIX\\n[#DEPTH] \\$3
+. \}
. \}
. \}
-. if '\\$1'ALPHA' \{\
+. if '\\*[$LIST_ARG_1]'alpha' \{\
. nr #ARGS_TO_LIST 1
. nr #ENUMERATOR\\n+[#DEPTH] 0 1
. af #ENUMERATOR\\n[#DEPTH] a
. ds $ENUMERATOR_TYPE\\n[#DEPTH] register
. ds $SEPARATOR\\n[#DEPTH] )
-. if \\n[#NUM_ARGS]=2 \{\
-. ie '\\$2'NONE' \{ .ds $SEPARATOR\\n[#DEPTH]\}
-. el \{ .ds $SEPARATOR\\n[#DEPTH] \\$2\}
+. ds $PREFIX\\n[#DEPTH]
+. if \\n[#NUM_ARGS]>=2 \{\
+. ie '\\$2'NONE' .ds $SEPARATOR\\n[#DEPTH]
+. el .ds $SEPARATOR\\n[#DEPTH] \\$2
+. if \\n[#NUM_ARGS]=3 \{\
+. ds $PREFIX\\n[#DEPTH] \\$3
+. \}
. \}
. \}
-. if '\\$1'USER' \{\
+. if '\\*[$LIST_ARG_1]'ALPHA' \{\
+. nr #ARGS_TO_LIST 1
+. nr #ENUMERATOR\\n+[#DEPTH] 0 1
+. af #ENUMERATOR\\n[#DEPTH] A
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] register
+. ds $SEPARATOR\\n[#DEPTH] )
+. ds $PREFIX\\n[#DEPTH]
+. if \\n[#NUM_ARGS]>=2 \{\
+. ie '\\$2'NONE' .ds $SEPARATOR\\n[#DEPTH]
+. el .ds $SEPARATOR\\n[#DEPTH] \\$2
+. if \\n[#NUM_ARGS]=3 \{\
+. ds $PREFIX\\n[#DEPTH] \\$3
+. \}
+. \}
+. \}
+. if '\\*[$1ST_LETTER]'R' \{\
+. nr #ARGS_TO_LIST 1
+. nr #ENUMERATOR\\n+[#DEPTH] 0 1
+. if '\\*[$LIST_ARG_1]'roman' \{\
+. af #ENUMERATOR\\n[#DEPTH] i
+. \}
+. if '\\*[$LIST_ARG_1]'ROMAN' \{\
+. af #ENUMERATOR\\n[#DEPTH] I
+. \}
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] roman
+. ds $SEPARATOR\\n[#DEPTH] )
+. ds $PREFIX\\n[#DEPTH]
+. if \\n[#NUM_ARGS]>=2 \{\
+. ie '\\$2'NONE' .ds $SEPARATOR\\n[#DEPTH]
+. el .ds $SEPARATOR\\n[#DEPTH] \\$2
+. if \\n[#NUM_ARGS]=3 \{\
+. ds $PREFIX\\n[#DEPTH] \\$3
+. \}
+. \}
+. \}
+. if '\\*[$LIST_ARG_1]'USER' \{\
. nr #ARGS_TO_LIST 1
. ds $ENUMERATOR\\n+[#DEPTH] \\$2
+. ds $ENUMERATOR_TYPE\\n[#DEPTH] other
. ds $SEPARATOR\\n[#DEPTH]
+. ds $PREFIX\\n[#DEPTH]
. \}
. if \\n[#NUM_ARGS]=1 \{\
. if !r#ARGS_TO_LIST \{\
@@ -12048,11 +13431,17 @@
. \}
. \}
. nr #TOTAL_LISTS \\n[#DEPTH]
-. ie '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'register' \{\
-. nr #LIST_INDENT\\n[#DEPTH] \\w'm\\*[$SEPARATOR\\n[#DEPTH]]\\ '
+. if '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'register' \{\
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]m\\*[$SEPARATOR\\n[#DEPTH]]\ '
+. if '\\*[$LIST_ARG_1]'ALPHA'\{\
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]M\\*[$SEPARATOR\\n[#DEPTH]]\ '
+. \}
. \}
-. el \{\
-. nr #LIST_INDENT\\n[#DEPTH] \\w'\\*[$ENUMERATOR\\n[#DEPTH]]\\0'
+. if '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'roman' \{\
+. GET_ROMAN_INDENT
+. \}
+. if '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'other' \{\
+. nr #LIST_INDENT\\n[#DEPTH] \w'\\*[$ENUMERATOR\\n[#DEPTH]]\0'
. \}
. LL \\n[#CURRENT_L_LENGTH]u
. ie \\n[#DEPTH]=1 \{\
@@ -12098,6 +13487,10 @@
\# receive the text of an item.
\#
.MAC ITEM END
+. if \\n[#LINENUMBERS]=1 \{\
+. NUMBER_LINES OFF
+. nr #LINENUMBERS 2
+. \}
. if \\n[#KERN]=1 \{\
. nr #KERN_WAS_ON 1
. KERN OFF
@@ -12106,38 +13499,304 @@
. ll \\n[#CURRENT_L_LENGTH]u \" Set ll again because IL turns IB off.
. TRAP OFF
. HI \\n[#HL_INDENT\\n[#DEPTH]]u
-. ie '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'register' \{\
-. ie '\\g[#ENUMERATOR\\n[#DEPTH]]'0' \{\
-. ie \\n[#PAD_LIST_DIGITS\\n[#DEPTH]]=1 \{\
-. ie \\n[#ENUMERATOR\\n[#DEPTH]]<9 \{\
-. PRINT
\\0\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. if '\\*[$SEPARATOR\\n[#DEPTH]]')' \{ .nr #SEP_TYPE 1 \}
+. if '\\*[$SEPARATOR\\n[#DEPTH]]']' \{ .nr #SEP_TYPE 1 \}
+. if '\\*[$SEPARATOR\\n[#DEPTH]]'}' \{ .nr #SEP_TYPE 1 \}
+. ie \\n[#IN_BIB_LIST]=1 \{\
+. ie \\n[#ENUMERATOR\\n[#DEPTH]]<9 \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+. el \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\h'-\w'\0'u'\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\h'-\w'\0'u'\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+. \}
+. el \{\
+. ie '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'register' \{\
+.\" DIGIT
+. ie '\\g[#ENUMERATOR\\n[#DEPTH]]'0' \{\
+. ie \\n[#PAD_LIST_DIGITS\\n[#DEPTH]]=1 \{\
+. ie \\n[#ENUMERATOR\\n[#DEPTH]]<9 \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\0\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\0\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+. el \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
. \}
. el \{\
-. PRINT \\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
. \}
. \}
. el \{\
-. PRINT \\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+.\" ALPHA
+. ie '\\g[#ENUMERATOR\\n[#DEPTH]]'A' \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+.\" alpha
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
. \}
. \}
-. el \{\
-. PRINT \\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
-. \}
. \}
. el \{\
-. PRINT \\*[$ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. if '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'roman' \{\
+. ie \\n[#PAD_LIST_DIGITS\\n[#DEPTH]]=1 \{\
+.\" ROMAN I, padded
+. ie '\\g[#ENUMERATOR\\n[#DEPTH]]'I' \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
"\h'\\n[#LIST_INDENT\\n[#DEPTH]]u'\h'-\w'\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\n[#SEPARATOR\\n[#DEPTH]]\
'u'\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
"\h'\\n[#LIST_INDENT\\n[#DEPTH]]u'\h'-\w'\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\n[#SEPARATOR\\n[#DEPTH]]\
'u'\\*[$PREFIX\\n[#DEPTH]]\\n[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+.\" roman i, padded
+. el \{\
+. PRINT
"\h'\\n[#LIST_INDENT\\n[#DEPTH]]u'\h'-\w'\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\n[#SEPARATOR\\n[#DEPTH]]\
'u'\\*[$PREFIX\\n[#DEPTH]]\\n[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+.\" No pad
+. el \{\
+.\" ROMAN I, no pad
+. ie '\\g[#ENUMERATOR\\n[#DEPTH]]'I' \{\
+. ie \\n[#SEP_TYPE]=1 \{\
+. PRINT
\v'-.085m'\\*[$PREFIX\\n[#DEPTH]]\v'.085m'\\n+[#ENUMERATOR\\n[#DEPTH]]\v'-.085m'\\*[$SEPARATOR\\n[#DEPTH]]\v'.085m'
+. \}
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+.\" roman i, no pad
+. el \{\
+. PRINT
\\*[$PREFIX\\n[#DEPTH]]\\n+[#ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
+. \}
+. \}
+. if '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'other' \{\
+. PRINT \\*[$ENUMERATOR\\n[#DEPTH]]\\*[$SEPARATOR\\n[#DEPTH]]
+. \}
. \}
+. rr #SEP_TYPE
. EOL
+. if \\n[#REF]=1 \{\
+. IL +\\*[$REF_BIB_INDENT]
+. ti \\n[#L_INDENT]u-\\*[$REF_BIB_INDENT]
+. \}
. TRAP
. if \\n[#KERN_WAS_ON]=1 \{\
. KERN
. rr #KERN_WAS_ON
. \}
+. if \\n[#LINENUMBERS]=2 \{\
+. NUMBER_LINES RESUME
+. nr #LINENUMBERS 1
+. \}
.END
\#
+\# A utility macro that determines the space to reserve for
+\# roman numeral enumerated lists. Limit is 20 roman numerals
+\# per list. If this isn't enough, the user can add to the
+\# macro.
+\#
+.MAC GET_ROMAN_INDENT END
+. if '\\*[$LIST_ARG_1]'roman' \{\
+. if '\\*[$ROMAN_WIDTH]'1' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 1
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]i\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'2' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 2
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]ii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'3' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 3
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]iii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'4' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 4
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]iii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'5' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 5
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]iii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'6' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 6
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]iii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'7' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 7
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]vii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'8' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 8
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]viii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'9' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 9
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]viii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'10' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 10
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]viii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'11' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 11
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]viii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'12' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 12
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]viii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'13' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 13
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xiii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'14' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 14
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xiii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'15' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 15
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xiii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'16' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 16
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xiii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'17' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 17
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xvii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'18' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 18
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xviii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'19' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 19
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xviii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'20' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 20
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]xviii\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. \}
+. if '\\*[$LIST_ARG_1]'ROMAN' \{\
+. if '\\*[$ROMAN_WIDTH]'1' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 1
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]I\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'2' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 2
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]II\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'3' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 3
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]III\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'4' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 4
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]IV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'5' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 5
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]IV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'6' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 6
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]IV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'7' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 7
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'8' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 8
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'9' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 9
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'10' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 10
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'11' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 11
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'12' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 12
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]VIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'13' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 13
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'14' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 14
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XIV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'15' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 15
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XIV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'16' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 16
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XIV\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'17' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 17
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XVII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'18' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 18
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XVIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'19' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 19
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XVIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. if '\\*[$ROMAN_WIDTH]'20' \{\
+. ds $ROMAN_WIDTH\\n[#DEPTH] 20
+. nr #LIST_INDENT\\n[#DEPTH]
\w'\\*[$PREFIX\\n[#DEPTH]]XVIII\\*[$SEPARATOR\\n[#DEPTH]]\0'
+. \}
+. \}
+.END
\#
\# SHIFT LIST
-\# ---------
+\# ----------
\# *Arguments:
\# <amount by which to indent a list to the right>
\# *Function:
@@ -12146,8 +13805,15 @@
\# Requires a unit of measure.
\#
.MAC SHIFT_LIST END
-. nr #LIST_INDENT\\n[#DEPTH] \\n[#L_INDENT]+(\\$1)
-. nr #L_INDENT \\n[#LIST_INDENT\\n[#DEPTH]]
+. ie '\\*[$ENUMERATOR_TYPE\\n[#DEPTH]]'roman' \{\
+. nr #SHIFT_LIST\\n[#DEPTH] (\\$1)
+. nr #LIST_INDENT\\n[#DEPTH]
\\n(.i+\\n[#L_INDENT]+\\n[#SHIFT_LIST\\n[#DEPTH]]
+. nr #L_INDENT \\n[#LIST_INDENT\\n[#DEPTH]]
+. \}
+. el \{\
+. nr #LIST_INDENT\\n[#DEPTH] \\n[#L_INDENT]+(\\$1)
+. nr #L_INDENT \\n[#LIST_INDENT\\n[#DEPTH]]
+. \}
.END
\#
\#
@@ -12166,6 +13832,12 @@
. nr #HL_INDENT\\n+[#DEPTH] +\\w'\\n[#ENUMERATOR\\n[#DEPTH]]'
. if '\\$1'LEFT' \{ .nr #PAD_LIST_DIGITS\\n[#DEPTH] 1 \}
. \}
+. if '\\g[#ENUMERATOR\\n[#DEPTH]]'i' \{\
+. if '\\$1'LEFT' \{ .nr #PAD_LIST_DIGITS\\n[#DEPTH] 1 \}
+. \}
+. if '\\g[#ENUMERATOR\\n[#DEPTH]]'I' \{\
+. if '\\$1'LEFT' \{ .nr #PAD_LIST_DIGITS\\n[#DEPTH] 1 \}
+. \}
.END
\#
\#
@@ -12177,7 +13849,8 @@
\# Resets register enumerators to 1 or a.
\#
.MAC RESET_LIST END
-. nr #ENUMERATOR\\n[#DEPTH] 0 1
+. ie '\\$1'' \{ .nr #ENUMERATOR\\n[#DEPTH] 0 1 \}
+. el \{ .nr #ENUMERATOR\\n[#DEPTH] \\$1-1 1 \}
.END
\#
\#
@@ -12222,7 +13895,7 @@
. rr #STORED_R_INDENT
. rr #STORED_L_INDENT
. \}
-\# Clean up after exiting last depth of list
+.\" Clean up after exiting last depth of list
. nr #REMOVE 0 1
. while \\n+[#REMOVE]<=\\n[#TOTAL_LISTS] \{\
. rr #LIST_INDENT\\n[#REMOVE]
@@ -12231,7 +13904,7 @@
. rr #SEPARATOR\\n[#REMOVE]
. rm $ENUMERATOR_TYPE\\n[#REMOVE]
. rr #PAD_LIST_DIGITS\\n[#REMOVE]
-. \}
+.\}
. rr #REMOVE
. rr #TOTAL_LISTS
. rr #QUIT
@@ -12258,8 +13931,7 @@
. nr #QUIT 1
. return
. \}
-. ie \\n[#NEXT_DEPTH_BACK]=1 \{ .nr #L_INDENT \\n[#LIST_INDENT1] \}
-. el \{ .nr #L_INDENT -\\n[#LIST_INDENT\\n[#DEPTH]] \}
+. nr #L_INDENT -\\n[#LIST_INDENT\\n[#DEPTH]]
. nr #HL_INDENT \\n[#HL_INDENT\\n-[#DEPTH]]
.END
\#
@@ -12293,7 +13965,7 @@
. \}
. IQ CLEAR
. TQ
-\# Collect first doc's title for TOC
+.\" Collect first doc's title for TOC
. if \\n[#COLLATED_DOC]=0 \{\
. ie \\n[#USER_SET_TITLE_ITEM] \{\
. ds $FIRST_DOC_TITLE \\*[$USER_SET_TITLE_ITEM]\\|
@@ -12329,7 +14001,7 @@
. \}
. nr #COLLATED_DOC 1
. \}
-\# End title collection for TOC
+.\" End title collection for TOC
. LL \\n[#DOC_L_LENGTH]u
. QUAD $DOC_QUAD
. nr #SAVED_DOC_LEAD \\n[#DOC_LEAD]
@@ -12348,6 +14020,105 @@
.END
\#
\#
+\# NUMBER_LINES
+\# ------------
+\# *Arguments:
+\# <starting line number> [ <increment> [ <gutter> ] ]
+\# or
+\# <anything> | RESUME
+\# *Function:
+\# Begin, suspend/turn off, or resume numbering of output lines.
+\#
+.MAC NUMBER_LINES END
+. br
+. if '\\n(.z'EPI_TEXT' \{ .return \}
+. if '\\$1'' \{\
+. tm1 "[mom]: NUMBER_LINES at line \\n(.c has no argument.
+. tm1 " Most likely, you have forgotten to give it a starting line
number.
+. ab Aborting on NUMBER_LINES.
+. \}
+. if !\\n[#LINENUMBERS]=2 \{ .nr #LINENUMBERS 1 \}
+.\" Test whether the first arg is a digit.
+. if \B'\\$1' \{\
+. nr #LN \\$1
+. ds $LN_NUM \\$1
+. if !'\\n(.z'' \{ .nr #RESTORE_LN_NUM 1 \}
+. ie '\\$2'' \{\
+. if '\\*[$LN_INC]'' .ds $LN_INC 1
+. \}
+. el .ds $LN_INC \\$2
+. ie '\\$3'' \{\
+. if '\\*[$LN_GUTTER]'' .ds $LN_GUTTER 2
+. \}
+. el .ds $LN_GUTTER \\$3
+. \}
+. ie !\\n[#LN] \{\
+.\" In other words, the first arg was not a digit.
+. rr #LN
+. ie '\\$1'RESUME' \{\
+. nm +0
+. \}
+. el \{\
+. nm
+. if !\\n[#LINENUMBERS]=2 \{ .rr #LINENUMBERS \}
+. \}
+. \}
+. el \{\
+. nm \\*[$LN_NUM] \\*[$LN_INC] \\*[$LN_GUTTER] -3-\\*[$LN_GUTTER]
+. if !'\\n(.z'' \{ .nr #DIVER_LN_OFF 1 \}
+. \}
+. rr #LN
+.END
+\#
+\#
+\# NUMBER QUOTE AND BLOCKQUOTE LINES AS PART OF RUNNING TEXT
+\# ---------------------------------------------------------
+\# *Argument:
+\# <gutter> | <anything>
+\# *Function:
+\# Sets #(B)QUOTE_LN to 1 if no argument, or a single numeric
+\# argument, is given; otherwise, turns (BLOCK)QUOTE linenumbering
+\# off.
+\# *Notes:
+\# #(B)QUOTE is checked for in QUOTE and BLOCKQUOTE.
+\# The single numeric argument allows establishing a different gutter from
+\# the one used for line numbers in running text.
+\#
+.MAC NUMBER_QUOTE_LINES END
+. ie \\n[#NUM_ARGS]=0 \{ .nr #QUOTE_LN 1 \}
+. el \{\
+. ie \B'\\$1' \{\
+. nr #QUOTE_LN 1
+. ds $Q_LN_GUTTER \\$1
+. \}
+. el \{\
+. ie '\\$1'SILENT' \{ .nr #SILENT_QUOTE_LN 1 \}
+. el \{\
+. rr #QUOTE_LN
+. rr #SILENT_QUOTE_LN
+. \}
+. \}
+. \}
+.END
+\#
+\#
+.MAC NUMBER_BLOCKQUOTE_LINES END
+. ie \\n[#NUM_ARGS]=0 \{ .nr #BQUOTE_LN 1 \}
+. el \{\
+. ie \B'\\$1' \{\
+. nr #BQUOTE_LN 1
+. ds $BQ_LN_GUTTER \\$1
+. \}
+. el \{\
+. ie '\\$1'SILENT' \{ .nr #SILENT_BQUOTE_LN 1 \}
+. el \{\
+. rr #BQUOTE_LN
+. rr #SILENT_BQUOTE_LN
+. \}
+. \}
+. \}
+.END
+\#
\# OUTPUT BLANK PAGES
\# ------------------
\# *Argument:
@@ -12358,6 +14129,8 @@
\# If recto/verso, each page is recto/verso, even if there's
\# nothing on it.
\#
+\# The argument to BLANKPAGE is non-optional.
+\#
.MAC BLANKPAGE END
. nr #HOW_MANY \\$1
. nr #PAGES 0 1
@@ -12384,7 +14157,7 @@
. if \\n[#PAGE_NUM_V_POS]=1 \{\
. if \\n[#PAGINATE_WAS_ON] \{ .PAGINATE \}
. \}
-. \}
+.\}
. NEWPAGE
. if \\n[#FOOTERS_WERE_ON] \{ .FOOTERS \}
. if \\n[#PAGE_NUM_V_POS]=2 \{\
@@ -12410,58 +14183,58 @@
\# exactly on #B_MARGIN.
\#
.MAC TRAPS END
-\# Remove all header/footer traps
+.\" Remove all header/footer traps
. if !\\n[#NO_TRAP_RESET] \{\
. ch DO_T_MARGIN
. ch DO_B_MARGIN
. ch HEADER
. ch FOOTER
. ch FN_OVERFLOW_TRAP
-\# Plant header trap
+.\" Plant header trap
. wh 0 HEADER
. \}
-\# Adjust lead so last line of text falls on B_MARGIN,...
+.\" Adjust lead so last line of text falls on B_MARGIN,...
. 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
-\# Get the number of unadjusted lines that fit on the page; always a
-\# bit short of the bottom margin
+.\" 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]
\{\
.
-. \}
+.\}
. nr #LINES_PER_PAGE -1
-\# Add machine units, 1 at a time, increasing the leading until the
-\# new leading fills the page properly
+.\" 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]
\{\
.
-. \}
+.\}
. 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
+.\" The "visual" bottom margin is what \n(nl would report on the
+.\" last line before the FOOTER trap is sprung
. nr #VISUAL_B_MARGIN
\\n[#T_MARGIN]+(\\n[#LINES_PER_PAGE]*\\n[#DOC_LEAD])
-\# Get the difference between #B_MARGIN and #VISUAL_B_MARGIN
+.\" Get the difference between #B_MARGIN and #VISUAL_B_MARGIN
. nr #FOOTER_DIFF
(\\n[#PAGE_LENGTH]-\\n[#B_MARGIN])-\\n[#VISUAL_B_MARGIN]
-\# Set #B_MARGIN to 1 machine unit lower on the page than #VISUAL_B_MARGIN
+.\" Set #B_MARGIN to 1 machine unit lower on the page than #VISUAL_B_MARGIN
. nr #B_MARGIN \\n[#B_MARGIN]+(\\n[#FOOTER_DIFF]-1)
-\# Set the FN_OVERFLOW_TRAP position
+.\" Set the FN_OVERFLOW_TRAP position
. nr #FN_OVERFLOW_TRAP_POS \\n[#B_MARGIN]u-\\n[#FN_LEAD]
. if \\n[#PRINT_STYLE]=1 .nr #FN_OVERFLOW_TRAP_POS
\\n[#ORIGINAL_B_MARGIN]u
. \}
-\# ...or calculate new B_MARGIN based on # of lines (at #DOC_LEAD) that fit
-\# on the page.
+.\" ...or calculate new B_MARGIN based on # of lines (at #DOC_LEAD) that fit
+.\" on the page.
. el \{\
. nr #LINES_PER_PAGE 0 1
. nr #DEPTH_TO_B_MARGIN \\n[#PAGE_LENGTH]-\\n[#B_MARGIN]-1v
. while
\\n[#T_MARGIN]+(\\n[#DOC_LEAD]*\\n+[#LINES_PER_PAGE])<\\n[#DEPTH_TO_B_MARGIN]
\{\
.
-. \}
+.\}
. nr #VISUAL_B_MARGIN
\\n[#T_MARGIN]+(\\n[#LINES_PER_PAGE]*\\n[#DOC_LEAD]-1v)
. nr #FOOTER_DIFF
(\\n[#PAGE_LENGTH]-\\n[#B_MARGIN])-\\n[#VISUAL_B_MARGIN]
. nr #B_MARGIN \\n[#B_MARGIN]+(\\n[#FOOTER_DIFF]-1)
. nr #FN_OVERFLOW_TRAP_POS \\n[#B_MARGIN]u-\\n[#FN_LEAD]
. \}
-\# Set footer and footnote overflow traps
+.\" Set footer and footnote overflow traps
. if !\\n[#NO_TRAP_RESET] \{\
. nr #FN_COUNT 0 1
. nr #SPACE_REMAINING 0
@@ -12642,6 +14415,7 @@
.ALIAS PAGENUM PAGENUMBER
.ALIAS PAGINATION PAGINATE
.ALIAS PP_FT PP_FONT
+.ALIAS REF_INDENT INDENT_REFS
.ALIAS TOC_PS TOC_PT_SIZE
\#
\# HEADER and FOOTER macros
@@ -12963,6 +14737,10 @@
\#
\# HEADER and FOOTER aliases for HDRFTR macros.
\#
+.ALIAS BIBLIOGRAPHY_FOOTER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+.ALIAS BIBLIOGRAPHY_FOOTER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTRE
+.ALIAS BIBLIOGRAPHY_HEADER_CENTER BIBLIOGRAPHY_HDRFTR_CENTER
+.ALIAS BIBLIOGRAPHY_HEADER_CENTRE BIBLIOGRAPHY_HDRFTR_CENTRE
.ALIAS ENDNOTES_FOOTER_CENTER ENDNOTES_HDRFTR_CENTER
.ALIAS ENDNOTES_FOOTER_CENTRE ENDNOTES_HDRFTR_CENTRE
.ALIAS ENDNOTES_HEADER_CENTER ENDNOTES_HDRFTR_CENTER
@@ -13002,6 +14780,8 @@
\# Type-style aliases
\#
.ALIAS AUTHOR_FAMILY _FAMILY
+.ALIAS BIBLIOGRAPHY_FAMILY _FAMILY
+.ALIAS BIBLIOGRAPHY_STRING_FAMILY _FAMILY
.ALIAS BLOCKQUOTE_FAMILY _FAMILY
.ALIAS CHAPTER_TITLE_FAMILY _FAMILY
.ALIAS COVER_AUTHOR_FAMILY _FAMILY
@@ -13022,6 +14802,7 @@
.ALIAS DOCTYPE_FAMILY _FAMILY
.ALIAS ENDNOTE_FAMILY _FAMILY
.ALIAS ENDNOTE_NUMBER_FAMILY _FAMILY
+.ALIAS ENDNOTE_LINENUMBER_FAMILY _FAMILY
.ALIAS ENDNOTE_STRING_FAMILY _FAMILY
.ALIAS ENDNOTE_TITLE_FAMILY _FAMILY
.ALIAS EPIGRAPH_FAMILY _FAMILY
@@ -13047,6 +14828,8 @@
.ALIAS TOC_TITLE_FAMILY _FAMILY
\#
.ALIAS AUTHOR_FONT _FONT
+.ALIAS BIBLIOGRAPHY_STRING_FONT _FONT
+.ALIAS BIBLIOGRAPHY_FONT _FONT
.ALIAS BLOCKQUOTE_FONT _FONT
.ALIAS CHAPTER_TITLE_FONT _FONT
.ALIAS COVER_AUTHOR_FONT _FONT
@@ -13064,6 +14847,7 @@
.ALIAS DOCTYPE_FONT _FONT
.ALIAS ENDNOTE_FONT _FONT
.ALIAS ENDNOTE_NUMBER_FONT _FONT
+.ALIAS ENDNOTE_LINENUMBER_FONT _FONT
.ALIAS ENDNOTE_STRING_FONT _FONT
.ALIAS ENDNOTE_TITLE_FONT _FONT
.ALIAS EPIGRAPH_FONT _FONT
@@ -13086,6 +14870,7 @@
.ALIAS TOC_TITLE_FONT _FONT
\#
.ALIAS AUTHOR_SIZE _SIZE
+.ALIAS BIBLIOGRAPHY_STRING_SIZE _SIZE
.ALIAS BLOCKQUOTE_SIZE _SIZE
.ALIAS CHAPTER_TITLE_SIZE _SIZE
.ALIAS COVER_AUTHOR_SIZE _SIZE
@@ -13102,6 +14887,7 @@
.ALIAS DOC_COVER_TITLE_SIZE _SIZE
.ALIAS DOCTYPE_SIZE _SIZE
.ALIAS ENDNOTE_NUMBER_SIZE _SIZE
+.ALIAS ENDNOTE_LINENUMBER_SIZE _SIZE
.ALIAS ENDNOTE_STRING_SIZE _SIZE
.ALIAS ENDNOTE_TITLE_SIZE _SIZE
.ALIAS EPIGRAPH_SIZE _SIZE
@@ -13165,6 +14951,8 @@
.ALIAS SUBTITLE_COLOR _COLOR
.ALIAS TITLE_COLOR _COLOR
\#
+.ALIAS BIBLIOGRAPHY_QUAD _QUAD
+.ALIAS BIBLIOGRAPHY_STRING_QUAD _QUAD
.ALIAS BLOCKQUOTE_QUAD _QUAD
.ALIAS COVER_COPYRIGHT_QUAD _QUAD
.ALIAS COVER_MISC_QUAD _QUAD
@@ -13207,3 +14995,892 @@
. br
. sp -1v
.END
+\#
+\# REFER SUPPORT
+\# -------------
+\#
+\# Footnote references
+\# -------------------
+\# *Function:
+\# Instruct REF to put references in footnotes.
+\#
+.MAC FOOTNOTE_REFS END
+. if r#EN_REF \{ .rr #EN_REF \}
+. nr #FN_REF 1
+.END
+\#
+\# Endnote references
+\# ------------------
+\# *Function:
+\# Instruct REF to collect references for endnotes output.
+\#
+.MAC ENDNOTE_REFS END
+. if r#FN_REF \{ .rr #FN_REF \}
+. nr #EN_REF 1
+.END
+\#
+\# Prepare mom for a reference
+\# ---------------------------
+\# *Argument:
+\# <none> | INDENT L|LEFT|R|RIGHT|B|BOTH <indent value>
+\# *Function:
+\# Calls FOOTNOTE or ENDNOTE, depending on whether #REF_FN or
+\# #REF_EN is set to 1.
+\# *Notes:
+\# For convenience, REF is a toggle.
+\#
+\# REF optionally takes the same arguments as FOOTNOTE, allowing
+\# users to indent references that go in footnotes when footnote
+\# indenting is required. FOOTNOTE_REFS must be on for this.
+\#
+.MAC REF END
+. ie \\n[#FN_REF]+\\n[#EN_REF]=0 \{\
+. if !\\n[#REF_WARNING]=1 \{\
+. tm1 "[mom]: Before REF at line \\n(.c, neither FOOTNOTE_REFS nor
ENDNOTE_REFS
+. tm1 " has been selected. If "sort" and "accumulate" are in
your refer
+. tm1 " commands, references will be collected for later output
with $LIST$.
+. tm1 " Otherwise, they will disappear.
+. nr #REF_WARNING 1
+. \}
+. \}
+. el \{\
+. ie \\n[#REF]=1 \{\
+. if \\n[#FN_REF]=1 \{ .FOOTNOTE OFF \}
+. if \\n[#EN_REF]=1 \{ .ENDNOTE OFF \}
+. rr #REF
+. \}
+. el \{\
+. rr #REF_WARNING
+. nr #REF 1
+. if \\n[#FN_REF]=1 \{ .FOOTNOTE \\$1 \\$2 \\$3 \}
+. if \\n[#EN_REF]=1 \{ .ENDNOTE \}
+. \}
+. \}
+.END
+\#
+\# Embedded references in text (with brackets)
+\# -------------------------------------------
+\#
+.MAC REF_BRACKETS_START END
+. ds $CURRENT_EV \\n[.ev]
+. ev REFERENCE
+. evc \\*[$CURRENT_EV]
+. di REFERENCE
+.END
+\#
+.MAC REF_BRACKETS_END END
+. br
+. di
+. ev
+. chop REFERENCE
+. unformat REFERENCE
+. if '\\$0'REF)' \{ .nop (\\*[REFERENCE]) \}
+. if '\\$0'REF]' \{ .nop [\\*[REFERENCE]] \}
+. if '\\$0'REF}' \{ .nop {\\*[REFERENCE]} \}
+.END
+\#
+\# These three 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_END
+\#
+\# Second-line indent for refs
+\# ---------------------------
+\# *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.
+\# *Notes:
+\# Indent value requires a unit of measure.
+\#
+.MAC INDENT_REFS END
+. 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
+\#
+\# Hyphenation of references
+\# -------------------------
+\# *Argument:
+\# <none> | <anything>
+\# *Function:
+\# Sets register #REF_HYPHENATE
+\#
+.MAC HYPHENATE_REFS END
+. ie '\\$1'' \{ .nr #REF_HYPHENATE 1 \}
+. el \{\
+. if r#REF_HY \{ .rr #REF_HY \}
+. \}
+.END
+\#
+.ig
+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: \\$*
+..
+\#
+.ig
+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
+\#
+\# 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
+\#
+.de ]-
+.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 \
+ [n [o [p [q [r [s [t [u [v [w [x [y [z
+.rm ref*string
+.rr ref*type
+..
+\#
+\# Refer's "2nd" macro; builds up a reference with ref*build, and
+\# prints it with ref*print.
+\#
+.de ][
+.nr ref*type \\$1
+.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
+. \}
+. if !'\\*([G'' \{\
+. nr ref*type 4
+. ds ref*spec!4 Q A T2 B G C I D P O
+. \}
+.\}
+.if r [T \{\
+. als [T1 [T
+. als [T2 [T
+.\}
+.ie d ref*spec!\\n[ref*type] .ref*build \\*[ref*spec!\\n[ref*type]]
+.el \{\
+. @error unknown reference type `\\n[ref*type]'
+. ref*build \\*[ref*spec!0]
+.\}
+.if !\\n[.hy]=0 \{\
+.nr #RESTORE_HY \\n[.hy]
+.if !r#REF_HY .nh
+.\}
+.ref*print
+.if !\\n[#RESTORE_HY]=0 .hy \\n[#RESTORE_HY]
+.rr #RESTORE_HY
+.rm ref*string
+.rm [F [T1 [T2
+..
+\#
+\# Refer's "3rd" macros, which set up and terminate the output
+\# of collected references
+\#
+.de ]<
+.als ref*print ref*end-print
+.nr #REF 1
+.if \\n[#BIB_LIST]=1 \{\
+. nr #IN_BIB_LIST 1
+. LIST DIGIT \\*[$BIB_LIST_SEPARATOR] \\*[$BIB_LIST_PREFIX]
+.\}
+..
+\#
+.de ]>
+.LIST OFF
+.rr #REF
+.rr #IN_BIB_LIST
+.als ref*print ref*normal-print
+..
+\#
+\# Output
+\# ------
+\#
+\# Output normal, non-collected refs
+\#
+.de ref*normal-print
+.nr #CURRENT_HY \\n[.hy]
+\\*[ref*string]
+..
+\#
+\# Output collected refs
+\#
+.de ref*end-print
+.\" 10 is abritrary
+.nn 10
+.ie \\n[#BIB_LIST]=0 \{\
+.in +\\*[$REF_BIB_INDENT]
+.ti -\\*[$REF_BIB_INDENT]
+.\}
+.el .ITEM
+\\*[ref*string]
+.sp \\n[#BIB_SPACE]u
+.ie \\n[#BIB_LIST]=0 .in
+.el .IL -\\*[$REF_BIB_INDENT]u
+.nn 0
+..
+\#
+.als ref*print ref*normal-print
+\#
+\# Build up the ref*string
+\#
+.ig
+Correct MLA "typewritten" style (printstyle TYPEWRITE) demands
+two spaces after each period. The spaces are hardwired into the
+string definitions (ref*add-<x>), so we have to make sure that there
+aren't two spaces when the printstyle is TYPESET. Since I find that
+references look a bit crowded with 0 sentence space, I've bumped it
+up to +4. User's sentence spacing is reset in FOOTNOTES and ENDNOTES.
+..
+\#
+.de ref*build
+.if \\n[#PRINT_STYLE]=2 \{\
+. ds $RESTORE_SS_VAR \\*[$SS_VAR]
+. SS +4
+.\}
+.rm ref*string ref*post-punct
+.nr ref*suppress-period 1
+.while \\n[.$] \{\
+. if d [\\$1 \{\
+. ie d ref*add-\\$1 .ref*add-\\$1
+. el .ref*add-dflt \\$1
+. \}
+. shift
+.\}
+.\" now add a final period
+.ie d ref*string \{\
+. if !\\n[ref*suppress-period] .as ref*string .
+. if d ref*post-punct \{\
+. as ref*string "\\*[ref*post-punct]
+. rm ref*post-punct
+. \}
+.\}
+.el .ds ref*string
+..
+\#
+\# The following macros determine how entries are formatted WRT
+\# punctuation, type style, additional strings, etc.
+\#
+.ig
+o First argument is the database field letter.
+o Second argument is the punctuation character to use to separate this
+ field from the previous field.
+o Third argument is a string with which to prefix this field.
+o Fourth argument is a string with which to postfix this field.
+o Fifth argument is a string to add after the punctuation character
+ supplied by the next field.
+..
+\#
+\# %A Author(s)
+.de ref*add-A
+.ref*field A ,
+.if r [A .nr ref*suppress-period \\n([A
+..
+\# %T Title (generic)
+.de ref*add-T1
+.ref*field T . " \E*[IT]" "" \E*[PREV]
+.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"
+.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]
+\# 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
+.rr [T
+.if '\\*[eval*[B]'!' .nr [T 1
+.if '\\*[eval*[B]'?' .nr [T 1
+.rm eval*[B
+..
+\# %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]
+..
+\# %E Editor(s)
+.de ref*add-E
+.ie !\\n[ref*type]=0 \{\
+. ie \\n([E>0 \{\
+. 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. "
+. \}
+.\}
+.el \{\
+. ie \\n([T .ref*field E "" " "
+. el .ref*field E . " "
+.\}
+.rr [T
+..
+\# %e Edition
+.de ref*add-e
+.ie \\n([T .ref*field e "" " " " edition"
+.el .ref*field e . " " " edition"
+.rr [T
+..
+\# %V Volume (of a journal, or series of books)
+.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 . " "
+.\}
+.if \\n[ref*type]=3 \{\
+. ie \\n([T .ref*field V "" " "
+. el .ref*field V . " "
+.\}
+.rr [T
+..
+\# %N Journal number
+.de ref*add-N
+.ref*field N
+..
+\# %S Series (books or journals)
+.de ref*add-S
+.if \\n[ref*type]=1 \{\
+. ref*field S
+.\}
+.if \\n[ref*type]=2 \{\
+. ie \\n([T .ref*field S "" " "
+. el .ref*field S . " "
+.\}
+.if \\n[ref*type]=3 \{\
+. ie \\n([T .ref*field S "" " "
+. el .ref*field S . " "
+.\}
+.rr [T
+\# refer doesn't set reg [T to 1 for series titles, so we do it here
+.ds eval*[S \\*([S
+.substring eval*[S -1
+.if '\\*[eval*[S]'!' .nr [T 1
+.if '\\*[eval*[S]'?' .nr [T 1
+.rm eval*[S
+..
+\# %C City
+.de ref*add-C
+.ie \\n([T .ref*field C "" " "
+.el .ref*field C . " "
+.rr [T
+..
+\# %I Publisher (I stands for Issuer)
+.de ref*add-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]=1 \{\
+. ie !'\\*([V''.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 . " "
+. el .ref*field D ,
+. \}
+. el .ref*field D ,
+.\}
+.if \\n[ref*type]=4 .ref*field D ,
+..
+\# %P Page number(s)
+.de ref*add-P
+.ie \\n[ref*type]=1 .ref*field P :
+.el .ref*field P . " "
+..
+\# %G Gov't. ordering number
+.de ref*add-G
+.ref*field G . " "
+..
+\# %O Other (usually goes at end of ref)
+.de ref*add-O
+.ref*field O . " "
+.ie r [O .nr ref*suppress-period \\n([O
+.el .nr ref*suppress-period 1
+..
+\#
+.de ref*add-dflt
+.ref*field \\$1 ,
+..
+\#
+\# Book reprints
+\# -------------
+\# %d date of publication (the orignal date of publication)
+.de ref*add-d
+.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 . " "
+.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]
+.rr [T
+..
+\#
+\# Translated works
+\# ----------------
+\# %l Trans(l)ator
+.de ref*add-l
+.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. "
+.rr [T
+..
+\#
+\# Internet
+\# --------
+\# %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
+..
+\# %c content of site, if unclear (i.e. advertisement, cartoon,
+\# interview, etc.)
+.de ref*add-c
+.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 . " "
+.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 . " "
+.rr [T
+..
+\# %u URL
+.de ref*add-u
+.ref*field u "" " <" ">"
+.rr [T
+..
+\#
+\# Build up reference string from ref*add-<x> macros.
+\#
+.de ref*field
+.if d ref*string \{\
+. ie d ref*post-punct \{\
+. as ref*string "\\$2\\*[ref*post-punct] \"
+. rm ref*post-punct
+. \}
+. el .as ref*string "\\$2 \"
+.\}
+.as ref*string "\\$3\\*([\\$1\\$4
+.if \\n[.$]>4 .ds ref*post-punct "\\$5
+.nr ref*suppress-period 0
+..
+\#
+\# MARGIN NOTES
+\# ------------
+\# This is a wrapper for MNinit.
+\#
+\# I could use a 'while' loop to assign args to strings, but too many
+\# 'while' loops are slowing things down.
+\#
+.MAC MN_INIT END
+. if !'\\$1'rerun' \{\
+. ds $MN-arg1 \\$1
+. ds $MN-arg2 \\$2
+. ds $MN-arg3 \\$3
+. ds $MN-arg4 \\$4
+. ds $MN-arg5 \\$5
+. ds $MN-arg6 \\$6
+. ds $MN-arg7 \\$7
+. ds $MN-arg8 \\$8
+. ds $MN-arg9 \\$9
+. \}
+. ie \\n[#START_FOR_MNinit]=0 \{\
+. nr #MNinit_DEFERRED 1
+. nr #START_FOR_MNinit 1
+. return
+. \}
+. el \{\
+. MNinit \\*[$MN-arg1] \\*[$MN-arg2] \\*[$MN-arg3] \\*[$MN-arg4]
\\*[$MN-arg5] \\*[$MN-arg6] \\*[$MN-arg7] \\*[$MN-arg8] \\*[$MN-arg9]
+. \}
+.END
+\#
+.MAC MN_OVERFLOW_TRAP END
+. if \\n[#OVERFLOW_LEFT]=1 \{\
+. nr #no-repeat-MN-left 1
+. di MN_OVERFLOW_LEFT
+. \}
+. if \\n[#OVERFLOW_RIGHT]=1 \{\
+. nr #no-repeat-MN-right 1
+. di MN_OVERFLOW_RIGHT
+. \}
+. rr #OVERFLOW_LEFT
+. rr #OVERFLOW_RIGHT
+.END
+\#
+.ig
+The remainder of the margin notes macros and routines are adapted
+from Werner Lemberg's MN.tmac.
+..
+\#
+\# MNinit
+\# ------
+\# Usage:
+\# MNinit [ragged|symmetric] \
+\# left-width right-width separation \
+\# font fontsize vertical-spacing \
+\# color hyphenation-flags
+\#
+\# Initialize margin notes. Empty arguments (denoted with "") set
+\# default values. If the first argument is the string `ragged',
+\# left and right margin notes are printed ragged-right. If it is
+\# `symmetric', left margin notes are printed ragged-left and right
+\# margin notes ragged-right. If omitted, margin notes are left
+\# and right adjusted.
+\#
+\#
+.de MNinit
+. nr #MNinit 1
+. ds MN-left-ad b\"
+. ds MN-right-ad b\"
+. if '\\$1'RAGGED' \{\
+. ds MN-left-ad l\"
+. ds MN-right-ad l\"
+. shift
+. \}
+. if '\\$1'SYMMETRIC' \{\
+. ds MN-left-ad r\"
+. ds MN-right-ad l\"
+. shift
+. \}
+. ie \B'\\$3' \
+. nr MN-sep (n;\\$3)
+. el \
+. nr MN-sep 1m
+. if ((\\n[.o] - \\n[MN-sep]) < 1n) \
+. ab MN: Left margin too small (<1n) for requested margin notes separation.
+. ie \B'\\$1' \{\
+. nr MN-left-width (n;\\$1)
+. nr MN-left-start (\\n[.o] - \\n[MN-sep] - \\n[MN-left-width])
+. \}
+. el \{\
+. nr MN-left-width (\\n[.o] - \\n[MN-sep])
+. nr MN-left-start 0
+. \}
+. if (\\n[MN-left-start] < 0) \
+. ab MN: Left margin too small for requested margin notes settings.
+. if (\\n[MN-left-width] < 1n) \
+. ab MN: Left margin notes width too small (<1n).
+.
+. ie \B'\\$2' \{\
+. nr MN-right-width (n;\\$2)
+. nr MN-right-start (\\n[.o] + \\n[.l] + \\n[MN-sep])
+. if \\n[#COLUMNS]=1 \{\
+. if !\\n[#NUM_COLS]=1 \{\
+. nr MN-right-start (\\n[#COL_2_L_MARGIN] + \\n[#COL_L_LENGTH] +
\\n[MN-sep])
+. \}
+. \}
+. \}
+. el \{\
+. nr MN-right-width \\n[MN-left-width]
+. nr MN-right-start (\\n[.o] + \\n[.l] + \\n[MN-sep])
+. if \\n[#COLUMNS]=1 \{\
+. if !\\n[#NUM_COLS]=1 \{\
+. nr MN-right-start (\\n[#COL_2_L_MARGIN] + \\n[#COL_L_LENGTH] +
\\n[MN-sep])
+. \}
+. \}
+. \}
+. ie \A'\\$4' \{\
+. ds MN-font \\$4\"
+. if \\n[#PRINT_STYLE]=1 .ds MN-font CR
+. \}
+. el \{\
+. ds MN-font \\*[$PP_FT]
+. if \\n[#PRINT_STYLE]=1 .ds MN-font CR
+. \}
+. ie \B'\\$5' \{\
+. ps \\$5
+. nr MN-size \\n[.ps]
+. ps
+. if \\n[#PRINT_STYLE]=1 \{\
+. ps 12
+. nr MN-size \\n[.ps]
+. ps
+. \}
+. \}
+. el \{\
+. nr MN-size \\n[#DOC_PT_SIZE]
+. \}
+. ie \B'\\$6' \{\
+' vs \\$6
+. nr MN-spacing \\n(.v
+' vs
+. if '\\$6'DOC' \{ .nr MN-spacing \\n[#DOC_LEAD] \}
+. if \\n[#PRINT_STYLE]=1 \{\
+. nr MN-spacing \\n[#DOC_LEAD]
+. \}
+. \}
+. el \{\
+. nr MN-spacing \\n[#DOC_LEAD]
+. \}
+. ie \A'\\$7' \
+. if !\\n[#PRINT_STYLE]=1 .ds MN-color \\$7\"
+. el \
+. if !\\n[#PRINT_STYLE]=1 .ds MN-color
+. ie \B'\\$8' \
+. nr MN-hy \\$8
+. el \
+. nr MN-hy \\n[.hy]
+. ev MNbottom-left-env
+. if \A'\\*[MN-font]' \
+. ft \\*[MN-font]
+. if \\n[MN-size] \
+. ps \\n[MN-size]u
+. if \\n[MN-spacing] \
+. vs \\n[MN-spacing]u
+. ll \\n[MN-left-width]u
+. ad \\*[MN-left-ad]
+. hy \\n[MN-hy]
+' in 0
+. nop \m[\\*[MN-color]]\c
+. ev
+. ev MNbottom-right-env
+. if \A'\\*[MN-font]' \
+. ft \\*[MN-font]
+. if \\n[MN-size] \
+. ps \\n[MN-size]u
+. if \\n[MN-spacing] \
+. vs \\n[MN-spacing]u
+. ll \\n[MN-right-width]u
+. ad \\*[MN-right-ad]
+. hy \\n[MN-hy]
+' in 0
+. nop \m[\\*[MN-color]]\c
+. ev
+. nr MN-active 0
+..
+\# MN
+\# --
+\# Usage:
+\#
+\# MN LEFT|RIGHT
+\# margin note text
+\# MN
+\#
+\# With a parameter, start a margin note, otherwise end a margin note.
+\# If the parameter is the string `left', define a left margin note,
+\# otherwise define a right margin note.
+\#
+.de MN
+.ds MN-dir \\$1
+.if \\n[#COLUMNS]=1 \{\
+. if \\n[#NUM_COLS]>2 \{\
+. tm MN: More than two columns. Ignoring margin notes.
+. return
+. \}
+. if !\\n[#NUM_COLS]=1 \{\
+. ie \\n[#COL_NUM]=1 .ds MN-dir LEFT
+. el .ds MN-dir RIGHT
+. \}
+.\}
+. if !\\n[#MNinit]=1 \{\
+. tm MN: You must set parameters with MN_INIT before using MN.
+. ab Aborting
+. \}
+. ie !'\\$1'' \{\
+. if \\n[MN-active] \{\
+. tm MN: Can't handle nested margin notes.
+. return
+. \}
+. nr MN-active 1
+. ev MN-env
+. ie '\\*[MN-dir]'LEFT' \{\
+. nr MN-left +1
+. ds MN-curr l-\\n[MN-left]\"
+. evc MNbottom-left-env
+. \}
+. el \{\
+. nr MN-right +1
+. ds MN-curr r-\\n[MN-right]\"
+. evc MNbottom-right-env
+. \}
+. mk MN-mk-\\*[MN-curr]
+. di MN-div-\\*[MN-curr]
+. \}
+. el \{\
+. if \\n[MN-active] \{\
+. br
+. di
+. nr MN-div-\\*[MN-curr]-depth \\n(dn
+. ev
+. \}
+. nr MN-active 0
+. \}
+..
+\#
+\# MNtop
+\# -----
+\# Resets these registers (called in HEADER)
+.de MNtop
+. nr MN-left 0
+. nr MN-right 0
+. nr MN-active 0
+..
+\#
+\# MNbottom-left
+\# -------------
+\# The "left" half of Werner's original MNbottom.
+\#
+.de MNbottom-left
+. nr MN-curr 0
+. nr MN-last-pos 0
+. nr MN-lead-adj \\n[#DOC_LEAD]-\\n[MN-spacing]
+. vpt 0
+. mk MN-curr-pos
+. if \\n[MN-active] \{\
+. di
+. tm MN: Margin note finished by new page. Ignored.
+. \}
+. po \\n[MN-left-start]u
+. ev MNbottom-left-env
+. nr #P \\n%+\\n[#PAGE_NUM_ADJ]
+. while (\\n[MN-curr] < \\n[MN-left]) \{\
+. nr MN-curr +1
+. ie (\\n[MN-last-pos] < \\n[MN-mk-l-\\n[MN-curr]]) \
+. sp |\\n[MN-mk-l-\\n[MN-curr]]u+\\n[MN-lead-adj]u
+. el \{\
+. nr MN-shifted 1
+. sp 1v
+. SHIM
+. if \\n[#SHIM]u>\\n[MN-spacing] .sp -(1v+\\n[MN-lead-adj]u)
+. tm MN: Warning: Left margin note #\\n[MN-curr] on page \\n[#P] shifted
down.
+. \}
+.\" If last margin note doesn't fit
+. if ( (\\n(nl+\\n[MN-div-l-\\n[MN-curr]-depth]) >
(\\n(.p+\\n[#VARIABLE_FOOTER_POS]) ) \{\
+. if \\n[MN-shifted]=1 \{\
+. sp -(1v+\\n[#SHIM]u)
+. rm MN-div-l-\\n[MN-curr]
+. tm1 "[mom]: No room to start left margin note #\\n[MN-curr] on page
\\n[#P] on page \\n[#P].
+. tm1 " Ignoring margin note.
+. rr MN-shifted
+. \}
+. nr #no-repeat-MN-left 1
+. nr #OVERFLOW_LEFT 1
+. wh \\n[.p]u+\\n[#VARIABLE_FOOTER_POS]u-1u MN_OVERFLOW_TRAP
+. vpt 1
+. \}
+. MN-div-l-\\n[MN-curr]
+. br
+. nr MN-last-pos \\n[nl]
+.\}
+. ev
+. po
+. if !\\n[#no-repeat-MN-left]=1 \{\
+. if \\n[MN-right]=0 .vpt 1
+. \}
+..
+\#
+\# MNbottom-right
+\# --------------
+\# The "right" half of Werner's original MNbottom.
+\#
+.de MNbottom-right
+. nr MN-curr 0
+. nr MN-last-pos 0
+. nr MN-lead-adj \\n[#DOC_LEAD]-\\n[MN-spacing]
+. vpt 0
+. po \\n[MN-right-start]u
+. ev MNbottom-right-env
+. nr #P \\n%+\\n[#PAGE_NUM_ADJ]
+. while (\\n[MN-curr] < \\n[MN-right]) \{\
+. nr MN-curr +1
+. ie (\\n[MN-last-pos] < \\n[MN-mk-r-\\n[MN-curr]]) \
+. sp |\\n[MN-mk-r-\\n[MN-curr]]u+\\n[MN-lead-adj]u
+. el \{\
+. nr MN-shifted 1
+. sp 1v
+. SHIM
+. tm MN: Warning: Right margin note #\\n[MN-curr] on page \\n[#P] shifted
down.
+. \}
+.\" If last margin note doesn't fit
+. if ( (\\n(nl+\\n[MN-div-r-\\n[MN-curr]-depth]) >
(\\n(.p+\\n[#VARIABLE_FOOTER_POS]) ) \{\
+. if \\n[MN-shifted]=1 \{\
+. sp -(1v+\\n[#SHIM]u)
+. rm MN-div-r-\\n[MN-curr]
+. tm1 "[mom]: No room to start right margin note #\\n[MN-curr] on page
\\n[#P] on page \\n[#P].
+. tm1 " Ignoring margin note.
+. rr MN-shifted
+. \}
+. nr #no-repeat-MN-right 1
+. nr #OVERFLOW_RIGHT 1
+. wh \\n[.p]u+\\n[#VARIABLE_FOOTER_POS]u-1u MN_OVERFLOW_TRAP
+. vpt 1
+. \}
+. MN-div-r-\\n[MN-curr]
+. br
+. nr MN-last-pos \\n[nl]
+.\}
+. ev
+. po
+' sp |\\n[MN-curr-pos]u
+. if !\\n[#no-repeat-MN-right]=1 .vpt 1
+..
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Groff-commit] groff/contrib/mom BUGS ChangeLog NEWS copyright...,
Werner LEMBERG <=