summaryrefslogtreecommitdiffstats
path: root/contrib/mom/momdoc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
commitd318611dd6f23fcfedd50e9b9e24620b102ba96a (patch)
tree8b9eef82ca40fdd5a8deeabf07572074c236095d /contrib/mom/momdoc
parentInitial commit. (diff)
downloadgroff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.tar.xz
groff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.zip
Adding upstream version 1.23.0.upstream/1.23.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'contrib/mom/momdoc')
-rw-r--r--contrib/mom/momdoc/appendices.html901
-rw-r--r--contrib/mom/momdoc/color.html505
-rw-r--r--contrib/mom/momdoc/cover.html851
-rw-r--r--contrib/mom/momdoc/definitions.html995
-rw-r--r--contrib/mom/momdoc/docelement.html6639
-rw-r--r--contrib/mom/momdoc/docprocessing.html4420
-rw-r--r--contrib/mom/momdoc/goodies.html1785
-rw-r--r--contrib/mom/momdoc/graphical.html689
-rw-r--r--contrib/mom/momdoc/headfootpage.html2341
-rw-r--r--contrib/mom/momdoc/images.html3515
-rw-r--r--contrib/mom/momdoc/inlines.html1112
-rw-r--r--contrib/mom/momdoc/intro.html487
-rw-r--r--contrib/mom/momdoc/letters.html577
-rw-r--r--contrib/mom/momdoc/macrolist.html1529
-rw-r--r--contrib/mom/momdoc/rectoverso.html350
-rw-r--r--contrib/mom/momdoc/refer.html2129
-rw-r--r--contrib/mom/momdoc/reserved.html2736
-rw-r--r--contrib/mom/momdoc/stylesheet.css691
-rw-r--r--contrib/mom/momdoc/tables-of-contents.html1224
-rw-r--r--contrib/mom/momdoc/toc.html476
-rw-r--r--contrib/mom/momdoc/typesetting.html4988
-rw-r--r--contrib/mom/momdoc/using.html319
-rw-r--r--contrib/mom/momdoc/version-2.html424
23 files changed, 39683 insertions, 0 deletions
diff --git a/contrib/mom/momdoc/appendices.html b/contrib/mom/momdoc/appendices.html
new file mode 100644
index 0000000..964a2ab
--- /dev/null
+++ b/contrib/mom/momdoc/appendices.html
@@ -0,0 +1,901 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Appendices</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+</tr>
+</table>
+
+<h1 id="appendices" class="docs">Appendices</h1>
+
+<div style="width: 68%; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#fonts">Adding fonts to groff</a>
+ <ul style="margin-left: -.5em; list-style-type: disc">
+ <li><a href="#extending">Extending groff families / adding new families and fonts</a>
+ <ul style="margin-left: -.5em; list-style-type: circle">
+ <li><a href="#traditional">The traditional approach</a></li>
+ <li><a href="#simpler">The simpler way with mom</a></li>
+ </ul></li>
+ <li><a href="#steps">Step-by-step instructions</a></li>
+ <li><a href="#install-font">Automate the whole process &ndash; the install-font script</a></li>
+ </ul></li>
+ <li><a href="#codenotes">Some reflections on mom</a></li>
+ <li><a href="#contact">Contact the author</a></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="fonts" class="docs">Adding fonts to groff</h2>
+
+<div id="small-note" class="box-tip">
+<p class="tip-top">
+<kbd>&lt;prefix&gt;</kbd>, in this section, refers
+to the directory in which groff is installed, typically
+<br/>
+<span class="pre-in-pp">
+ /usr/share/groff/
+</span>
+(for distro-specific, pre-compiled groff packages) or
+<br/>
+<span class="pre-in-pp">
+ /usr/local/share/groff/
+</span>
+(if you&#8217;ve built groff from source).
+</p>
+
+<p class="tip-bottom">
+<kbd>&lt;version&gt;</kbd> refers to the groff version number, which
+can be found, if necessary, by typing
+<br/>
+<span class="pre-in-pp">
+ groff -v
+</span>
+at the command line.
+</p>
+</div>
+
+<p>
+Groff comes with a small library of
+<a href="definitions.html#family">families</a>
+(see the
+<a href="typesetting.html#family">FAMILY</a>
+macro for a list). The families have four
+<a href="definitions.html#font">fonts</a>
+associated with them. These fonts are a combination of
+<a href="definitions.html#weight">weight</a>
+and
+<a href="definitions.html#shape">shape</a>:
+<br/>
+<span class="pre-in-pp">
+ R (Roman, usually Medium weight),
+ I (Italic, usually Medium weight),
+ B (Bold, usually Roman shape) and
+ BI (Bold Italic)
+</span>
+If you work with mom a lot, sooner or later you&#8217;ll find that these
+families and their associated fonts aren&#8217;t sufficient. You&#8217;ll
+want to supplement them, either with more fonts for the families
+already provided&mdash;<i>Damn! I need Helvetica Bold Condensed
+Italic</i>&mdash;or with entire new families.
+</p>
+
+<h3 id="extending" class="docs">Extending groff families / adding new families and fonts</h3>
+
+<h4 id="traditional" class="docs">The traditional approach</h4>
+
+<p>
+The traditional approach to extending groff families has been
+to create new families for non-default weights and shapes (e.g.
+<b>Light</b>, which is a
+<a href="definitions.html#weight">weight</a>,
+or <b>Condensed</b>, which is a
+<a href="definitions.html#shape">shape</a>),
+then to associate them with groff&#8217;s predefined <b>R,
+I, B</b> and <b>BI</b> font styles. An example of this
+can be seen in the groff PostScript font library itself, which is
+found in
+<br/>
+<span class="pre-in-pp">
+ &lt;prefix&gt;/&lt;version&gt;/font/devps/
+</span>
+There&#8217;s one &#8220;family&#8221; for Helvetica (<b>HR</b>,
+<b>HI</b>, <b>HB</b>, <b>HBI</b>) and another for Helvetica Narrow
+(<b>HNR</b>, <b>HNI</b>, <b>HNB</b>, <b>HNBI</b>).
+</p>
+
+<p>
+The difficulty with this approach is that typographers tend to
+think of families as referring to the entire set of font weights
+and shapes associated with a family name. For example, when
+a typesetter says &#8220;the Helvetica family&#8221;, s/he is
+including the weights Helvetica Thin, Helvetica Light, Helvetica
+Regular, Helvetica Bold, Helvetica Heavy, etc, and all their
+associated shapes (Roman, Italic, Condensed, Narrow, Extended,
+Outline, etc).
+</p>
+
+<p>
+Thus, intuitively, when a typesetter gives mom a
+<kbd>.FAMILY&nbsp;H</kbd> directive, s/he reasonably expects that
+any subsequent <kbd>.FT</kbd> directive will access the desired font
+from the Helvetica family&mdash;without the need to state explicitly
+both family and font to <kbd>.FT</kbd>, as it is explained one can
+do in the
+<a href="typesetting.html#family">FAMILY</a>
+and
+<a href="typesetting.html#font">FT</a>
+sections of these documents.
+</p>
+
+<p>
+If one had, say, Helvetica Light Roman and Helvetica Light Italic
+as well as Helvetica Light Condensed Roman and Helvetica Light
+Condensed Italic, the established groff approach would require two
+&#8220;partial&#8221; families, <b>HL</b> (for Helvetica Light)
+and <b>HLCD</b> (for Helvetica Light Condensed), with <b>R</b> and
+<b>I</b> fonts for both:
+<br/>
+<span class="pre-in-pp">
+ HLR
+ HLI
+ HLCDR
+ HLCDI
+</span>
+Accessing these family/font combos routinely
+throughout a document would then require changing the family
+(with <kbd>.FAMILY</kbd>) and selecting the desired font
+(with <kbd>.FT&nbsp;R</kbd> or <kbd>.FT&nbsp;I</kbd>), or
+passing <kbd>.FT</kbd> the lengthy family+fontname (.e.g.
+<kbd>.FT&nbsp;HLCDI</kbd>).
+</p>
+
+<h4 id="simpler" class="docs">The simpler way with mom</h4>
+
+<p>
+Fortunately, groff provides a mechanism whereby it&#8217;s possible
+to extend the basic <b>R</b>, <b>I</b>, <b>B</b>, and <b>BI</b> fonts
+(&#8220;styles&#8221; in groff-speak) so that one can, in fact,
+create extensive type families, and access all the fonts in them
+with <kbd>.ft</kbd> (groff) or <kbd>.FT</kbd> (mom).
+</p>
+
+<p>
+Mom uses this mechanism to offer, in addition to groff&#8217;s
+default font styles, the following:
+</p>
+
+<div class="examples-container" style="padding-bottom: 1em;">
+<div id="style-extensions" style="width: 50%; float: left;">
+<span class="pre" style="font-size: 85%">
+UL = Ultra Light
+ULI = Ultra Light Italic
+ULCD = Ultra Light Condensed
+ULCDI = Ultra Light Condensed Italic
+ULEX = Ultra Light Extended
+ULEXI = Ultra Light Extended Italic
+
+XL = Extra Light
+XLI = Extra Light Italic
+XLCD = Extra Light Condensed
+XLCDI = Extra Light Condensed Italic
+XLEX = Extra Light Extended
+XLEXI = Extra Light Extended Italic
+
+TH = Thin
+THI = Thin Italic
+THCD = Thin Condensed
+THCDI = Thin Condensed Italic
+THEX = Thin Extended
+THEXI = Thin Extended Italic
+
+L = Light Roman
+LI = Light Italic
+LCD = Light Condensed
+LCDI = Light Condensed Italic
+LEX = Light Extended
+LEXI = Light Extended Italic
+
+BK = Book Roman
+BKI = Book Italic
+BKCD = Book Condensed
+BKCDI = Book Condensed Italic
+BKEX = Book Extended
+BKEXI = Book Extended Italic
+
+CD = Medium Condensed
+CDI = Medium Condensed Italic
+EX = Medium Extended
+EXI = Medium Extended Italic
+
+DB = DemiBold Roman
+DBI = DemiBold Italic
+DBCD = DemiBold Condensed
+DBCDI = DemiBold Condensed Italic
+DBEX = DemiBold Extended
+DBEXI = DemiBold Extended Italic
+
+SB = SemiBold Roman
+SBI = SemiBold Italic
+SBCD = SemiBold Condensed
+SBCDI = SemiBold Condensed Italic
+SBEX = SemiBold Extended
+SBEXI = SemiBold Extended Italic
+</span>
+</div>
+<span class="pre" style="font-size: 85%">
+BCD = Bold Condensed
+BCDI = Bold Condensed Italic
+BEX = Bold Extended
+BEXI = Bold Extended Italic
+BO = Bold Outline
+
+XB = Extra Bold
+XBI = Extra Bold Italic
+XBCD = Extra Bold Condensed
+XBCDI = Extra Bold Condensed Italic
+XBEX = Extra Bold Extended
+XBEXI = Extra Bold Extended Italic
+
+UB = Ultra Bold
+UBI = Ultra Bold Italic
+UBCD = Ultra Bold Condensed
+UBCDI = Ultra Bold Condensed Italic
+UBEX = Ultra Bold Extended
+UBEXI = Ultra Bold Extended Italic
+
+HV = Heavy
+HVI = Heavy Italic
+HVCD = Heavy Condensed
+HVCDI = Heavy Condensed Italic
+HVEX = Heavy Extended
+HVEXI = Heavy Extended Italic
+
+BL = Black
+BLI = Black Italic
+BLCD = Black Condensed
+BLCDI = Black Condensed Italic
+BLEX = Black Extended
+BLEXI = Black Extended Italic
+BLO = Black Outline
+
+XBL = Extra Black
+XBLI = Extra Black Italic
+XBLCD = Extra Black
+XBLCDI = Extra Black
+XBLEX = Extra Black Italic
+XBLEXI = Extra Black Italic
+
+UBL = Ultra Black
+UBLI = Ultra Black Italic
+UBLCD = Ultra Black Condensed
+UBLCDI = Ultra Black Condensed Italic
+UBLEX = Ultra Black Extended
+UBLEXI = Ultra Black Extended Italic
+
+SC = Small Caps Roman
+SCI = Small Caps Italic
+SCDB = Small Caps Demibold
+SCDBI = Small Caps Demibold Italic
+SCSB = Small Caps Semibold
+SCSBI = Small Caps Semibold Italic
+</span>
+</div>
+
+<p style="clear: both;">
+Thus, with mom, if you&#8217;ve installed some extra
+Helvetica fonts and named them according to the convention
+<kbd>&lt;F&gt;&lt;S&gt;</kbd> (where <kbd>&lt;F&gt;</kbd> means
+family and <kbd>&lt;S&gt;</kbd> means font style), once having
+entered
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .FAMILY H
+</span>
+you can access any of the extra Helvetica fonts simply by passing
+the correct argument to
+<a href="typesetting.html#font">FT</a>
+from the list, above. For example, if you were working in Medium
+Roman (<kbd>.FT&nbsp;R</kbd>) and you needed Medium Condensed Italic
+for a while (assuming it&#8217;s installed), you&#8217;d just type
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .FT CDI
+</span>
+to access the Medium Condensed Italic font from the Helvetica
+family.
+</p>
+
+<p>
+Mom&#8217;s list of font styles doesn&#8217;t pretend to be
+exhaustive. The extension names are arbitrary and can be used in a
+flexible manner. For example, if you create a family that has a
+Demibold font (<b>DB</b>) but no Bold font (<b>B</b>), you might
+find it more convenient to give the Demibold font the extension
+&#8220;<b>B</b>&#8221;.
+</p>
+
+<p id="register-style">
+You may, at needs, want to add to mom&#8217;s list of font styles.
+You can do this by editing the file, om.tmac (typical location:
+<kbd>&lt;prefix&gt;/&lt;version&gt;/tmac/om.tmac</kbd>). Near the
+top, you&#8217;ll see lines of the form
+<br/>
+<span class="pre-in-pp">
+ .sty \n[.fp] XL \" Extra Light
+ .sty \n[.fp] L \" Light Roman
+ .sty \n[.fp] LI \" Light Italic
+ .sty \n[.fp] LCD \" Light Condensed Roman
+</span>
+Simply add your new font style by imitating what you see, above,
+and plugging in your new font style (having, of course,
+added the font to groff, correctly named); see
+<a href="#steps">Step-by-step instructions</a>).
+</p>
+
+<p>
+For example, if you already have some fonts from the Univers family
+installed and have called the family <b>Univers</b>, you might decide at
+some point to add the Bold Outline font (<b>UniversBO</b>). In which
+case, you&#8217;d add
+<br/>
+<span class="pre-in-pp">
+ .sty \n[.fp] BO \" Bold Outline
+</span>
+to the <kbd>.sty&nbsp;\n[.fp]&nbsp; &lt;font style&gt;</kbd> list
+in om.tmac.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom&#8217;s font extensions are not &#8220;user-space&#8221;
+controllable via a macro. If you&#8217;ve been using groff for
+a long time, and have already rolled your own solution to adding
+families and fonts to groff, you may find that mom&#8217;s font
+extensions conflict with your own scheme. Should that be the case,
+comment out the <kbd>.sty&nbsp;\n[.fp] &lt;font style&gt;</kbd>
+lines found near the top of the <kbd>om.tmac</kbd> file.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+Be careful that any styles you add do not conflict with
+<i>family</i> names that already exist. &#8220;<b>C</b>&#8221;,
+for example, conflicts with the Courier family (<b>CR</b>,
+<b>CI</b>, <b>CB</b>, <b>CI</b>). Were you to create a font
+style &#8220;<b>C</b>&#8221;, thinking that <kbd>.FT&nbsp;C</kbd>
+would give you access to font style once you&#8217;d given a
+<kbd>.FAMILY</kbd> directive, you&#8217;d get a nasty surprise:
+your type would come out in Courier Roman!
+</p>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="steps" class="docs">Step-by-step instructions</h2>
+
+<div>
+<ul class="no-enumerator" style="margin-left: -1.5em;">
+ <li><a href="#need">What you need before you start</a></li>
+ <li><a href="#preparation">Initial preparation</a></li>
+ <li><a href="#step-1">1. Acquire the font</a></li>
+ <li><a href="#step-2">2. Prepare to convert the font to the correct format</a>
+ <ul style="margin-left: -.5em">
+ <li><a href="#ttf">TTF fonts</a></li>
+ <li><a href="#type1">Type 1 fonts</a></li>
+ </ul></li>
+ <li><a href="#step-3">3. Convert the font and put it in the right place</a></li>
+ <li><a href="#step-4">4. Update the download file</a>
+ <ul style="margin-left: -.5em">
+ <li><a href="#internal">Get the internal font name</a></li>
+ <li><a href="#add">Add the font to the download file</a></li>
+ <li><a href="#gropdf-download">Updating the gropdf download file</a></li>
+ </ul></li>
+ <li><a href="#groff-font-names">Naming groff fonts</a></li>
+ <li><a href="#install-font">Automate the whole process &ndash; the install-font script</a>
+ </li>
+</ul>
+</div>
+
+
+<p>
+There are a number of ways to approach making fonts available
+to groff. These instructions aren&#8217;t meant to cover all
+possibilities, merely one.
+</p>
+
+<p>
+GNU/Linux distributions being what they are, directory locations
+may differ and the presence of some executable can&#8217;t be
+guaranteed. I run a Debian-based system. The instructions reflect
+that. Users of other distros may have to interpret them according
+to the way their distro operates.
+</p>
+
+<h3 id="need" class="docs appendices">What you need before you start</h3>
+
+<ul style="margin-top: 1em; margin-left: -.5em;">
+ <li>groff, version 1.18 or higher<br/>
+ (Debian package: groff)
+ </li>
+ <li>ghostscript<br/>
+ (Debian package: ghostscript or ghostscript-x)
+ </li>
+ <li>fontforge<br/>
+ (Debian package: fontforge)
+ </li>
+</ul>
+
+<h3 id="preparation" class="docs appendices">Initial preparation (you only need do this once)</h3>
+
+<ol id="site-font" style="margin-left: -1em;">
+ <li>
+ Locate the groff directory,
+ <kbd class="nobr">site-font</kbd>. The exact location is
+ difficult to predict, owing to differences between distros and
+ whether you&#8217;re using a pre-packaged groff or have built
+ it from source. Some typical locations are:
+ <br/>
+ <span class="pre-in-pp" style="margin-bottom: -2em;">
+ /usr/share/groff/
+ /usr/local/share/groff/
+ /etc/groff/
+ </span>
+ If you can&#8217;t find the site-font directory, locate
+ groff&#8217;s <kbd class="nobr">site-tmac</kbd> directory, and, as root,
+ create site-font in the same directory. Eg, if you find
+ site-tmac in <kbd class="nobr">/usr/share/groff/</kbd>, create site-font in
+ <kbd class="nobr">/usr/share/groff/</kbd>
+ <br/>
+ <span class="pre-in-pp" style="margin-bottom: -2em;">
+ sudo mkdir site-font
+ </span>
+ </li>
+ <li>
+ Create two files, generate-t42.pe and generate-pfa.pe,
+ as you see them below. Place them in a convenient and
+ easily-remembered location, like your home directory.
+ <br/>
+ <span class="examples" style="font-size: 95%; display: block; margin-top: .5em;">generate-t42.pe</span>
+
+ <div class="examples-container" style="margin-top: 0; margin-bottom: -1em; padding-bottom: 1em;">
+<span class="pre">
+# generate-t42.pe
+
+Open($1);
+Generate($fontname + ".pfa");
+Generate($fontname + ".t42");
+</span>
+ </div>
+ <br/>
+ <span class="examples" style="font-size: 95%; display: block; margin-top: .5em;">generate-pfa.pe</span>
+ <div class="examples-container" style="margin-top: 0; padding-bottom: 1em;">
+<span class="pre">
+# generate-pfa.pe
+
+Open($1);
+Generate($fontname + ".pfa");
+</span>
+ </div>
+ </li>
+</ol>
+
+<h3 id="step-1" class="docs appendices">Step 1: Acquire the font</h3>
+
+<p class="top">
+The two most commonly available types of fonts are PostScript Type1
+(extension .pfb) and TrueType (extension .ttf). Either can be made
+available to groff. There are many websites holding collections of
+both.
+</p>
+
+<h3 id="step-2" class="docs appendices">Step 2: Prepare to convert the font to the correct format</h3>
+
+<p class="top">
+Change into the directory holding the new font.
+</p>
+
+<p>
+For convenience in the next step, make a symbolic link to
+the file 'textmap':
+<br/>
+<span class="pre-in-pp">
+ ln -s &lt;prefix&gt;/&lt;version&gt;/font/devps/generate/textmap .
+</span>
+See
+<a href="#small-note">here</a>
+for an explanation of <kbd>&lt;prefix&gt;</kbd>
+and <kbd>&lt;version&gt;</kbd>.
+</p>
+
+<p>
+In addition, unless you&#8217;re installing fonts from your home
+directory, make links to the files 'generate-t42.pe' and
+'generate-pfa.pe'.
+<br/>
+<span class="pre-in-pp">
+ ln -s $HOME/generate-t42.pe .
+ ln -s $HOME/generate-pfa.pe .
+</span>
+</p>
+
+<h3 id="step-3" class="docs appendices">Step 3: Convert the font and put it in the right place</h3>
+
+<p class="top">
+TrueType fonts (.ttf) need to be converted to .t42. Type 1 fonts
+(.pfa, .pfb) need to be converted to .pfa.
+</p>
+
+<h4 id="ttf" class="docs" style="font-size: 90%; text-transform: uppercase;">&nbsp;&bull;&nbsp;Converting TTF Fonts</h4>
+
+<p class="top" style="margin-top: .5em;">
+For .ttf fonts, run
+<br/>
+<span class="pre-in-pp">
+ fontforge -script generate-t42.pe &lt;file&gt;.ttf
+</span>
+This will create three new files with the extensions .t42, .pfa, and
+.afm. Next, run
+<br/>
+<span class="pre-in-pp">
+ afmtodit &lt;afm file&gt; textmap &lt;groff font&gt;
+</span>
+This will create a groff font with the name you give. (See
+<a href="#groff-font-names">here</a>
+for advice on naming groff fonts.)
+</p>
+
+<p>
+Move the .t42 and groff font files to
+<kbd class="nobr">&lt;prefix&gt;/site-font/devps/</kbd>.
+</p>
+
+<p>
+If you&#8217;re running a recent version of groff that includes
+the native pdf device (gropdf), move the .pfa file to <kbd
+class="nobr">&lt;prefix&gt;/site-font/devpdf/</kbd>. If not, you
+may safely remove it. You may also safely remove the .afm file.
+</p>
+
+<h4 id="type1" class="docs" style="font-size: 90%; text-transform: uppercase;">&nbsp;&bull;&nbsp;Converting Type1 Fonts</h4>
+
+<p class="top" style="margin-top: .5em;">
+For .pfb fonts, run
+<br/>
+<span class="pre-in-pp">
+ fontforge -script generate-pfa.pe &lt;file&gt;.pfb
+</span>
+This will create two new files with the extensions .pfa, and .afm.
+Next, run
+<br/>
+<span class="pre-in-pp">
+ afmtodit &lt;afm file&gt; textmap &lt;groff font&gt;
+</span>
+Move the .pfa and groff font files to
+<kbd class="nobr">&lt;prefix&gt;/&lt;site-font&gt;/devps/</kbd>.
+(See
+<a href="#groff-font-names">here</a>
+for advice on naming groff fonts.)
+</p>
+
+<p>
+If you&#8217;re running a recent version of groff that includes the
+native pdf device (gropdf), link the .pfa and groff font files, now
+in <kbd class="nobr">&lt;prefix&gt;/&lt;site-font&gt;/devps/</kbd>,
+to the <kbd class="nobr">&lt;prefix&gt;/site-font/devpdf</kbd>
+directory.
+</p>
+
+<p>
+Start by changing into the
+<kbd class="nobr">&lt;prefix&gt;/site-font/devpdf/</kbd>
+directory, then:
+<br/>
+<span class="pre-in-pp">
+ ln -s &lt;prefix&gt;/&lt;site-font&gt;/devps/&lt;file&gt;.pfa .
+ ln -s &lt;prefix&gt;/&lt;site-font&gt;/devps/&lt;groff font&gt; .
+</span>
+You may safely remove the .afm file.
+</p>
+
+<h3 id="step-4" class="docs appendices">Step 4: Update the download file</h3>
+
+<h4 id="internal" class="docs" style="font-size: 90%; text-transform: uppercase;">&nbsp;&bull;&nbsp;Get the internal font name</h4>
+
+<p class="top" style="margin-top: .5em;">
+Inspect your new groff font file. Near the top, you will see a line
+of the form
+<br/>
+<span class="pre-in-pp">
+ internalname &lt;name&gt;
+</span>
+Usually, the internal name is helpfully descriptive, e.g.
+<br/>
+<span class="pre-in-pp">
+ internalname Optima-Bold
+</span>
+Make a note of the internal name.
+</p>
+
+<h4 id="add" class="docs" style="font-size: 90%; text-transform: uppercase;">&nbsp;&bull;&nbsp;Add the font to the download file</h4>
+
+<p class="top" style="margin-top: .5em;">
+If a file called &#8216;download&#8217; is not already present in
+<kbd class="nobr">&lt;prefix&gt;/site-font/devps/</kbd>,
+copy over the one found in
+<kbd class="nobr">&lt;prefix&gt;/&lt;version&gt;/font/devps/</kbd>.
+</p>
+
+<p>
+The download file maps the internal names used by groff to the
+actual fonts. To add your new font to the download file, append a
+line containing the internal name, followed by a tab (make sure your
+text editor is inserting the tab character, not spaces), followed by
+the .t42 or .pfa font to which the internal name refers.
+</p>
+
+<p>
+For example, if the internal name is Optima-Bold and the font is a
+.pfa file called Optima-Bold.pfa, your updated download file will
+contain
+<br/>
+<span class="pre-in-pp">
+ Optima-Bold&lt;tab&gt;Optima-Bold.pfa
+</span>
+</p>
+
+<h4 id="gropdf-download" class="docs" style="font-size: 90%; text-transform: uppercase;">&nbsp;&bull;&nbsp;Updating the gropdf download file</h4>
+
+<p class="top" style="margin-top: .5em;">
+If you&#8217;re running a recent version of groff that includes
+the native pdf device (gropdf), you must update the
+<kbd class="nobr">&lt;prefix&gt;/site-font/devpdf/download</kbd>
+file as well. If it does not exist, create it.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Start with a blank &#8216;download&#8217; file. Do not copy
+over the &#8216;download&#8217; file from
+<kbd class="nobr">&lt;prefix&gt;/&lt;version&gt;/font/devpdf/</kbd>.
+</p>
+</div>
+
+<p>
+The instructions for registering fonts in the
+<kbd class="nobr">&lt;prefix&gt;/site-font/devpdf/</kbd> download
+file are identical to those for PostScript fonts (see above), but
+with one important difference: the lines must all begin with a tab
+character. Thus, using our Optima example, your
+<kbd class="nobr">&lt;prefix&gt;/site-font/devpdf/download</kbd>
+file download line for the same font is
+<br/>
+<span class="pre-in-pp">
+ &lt;tab&gt;Optima-Bold&lt;tab&gt;Optima-Bold.pfa
+</span>
+</p>
+
+<h3 id="groff-font-names" class="docs appendices">Naming groff fonts</h3>
+
+<p class="top">
+For convenience when using mom, and to keep your font collection
+organized, choose meaningful groff font names following the scheme
+&lt;Family&gt;&lt;FONT&gt;, where Family is something
+like Optima or Univers or Clarendon, and FONT is either
+<br/>
+<span style="display: block; margin-left: 2em;">
+<kbd>R&nbsp;&nbsp;</kbd>(roman/regular)
+<br/>
+<kbd>I&nbsp;&nbsp;</kbd>(italic)
+<br/>
+<kbd>B&nbsp;&nbsp;</kbd>(bold)
+<br/>
+<kbd>BI&nbsp;</kbd>(bold italic)
+</span>
+or one of the 1&ndash;5 character fontstyles listed
+<a href="#style-extensions">here</a>.
+Thus, for the fonts Optima Light Italic and Optima Extra Black, your font names would be
+<br/>
+<span class="pre-in-pp">
+ OptimaLI
+ OptimaXBL
+</span>
+This scheme allows you to enter <kbd>.FAMILY&nbsp;Optima</kbd> to make
+Optima the current family, and <kbd>.FT&nbsp;LI</kbd> or <kbd>.FT&nbsp;XBL</kbd>
+when you need the fonts Light Italic or Extra Black.
+</p>
+
+<p>
+Groff font names are, in fact, arbitrary; you can call your fonts
+anything you like, provided the
+<a href="#internal">internal name</a>
+in the
+<a href="#add">download file</a>
+matches the internal name found in the groff font file. When
+calling a font that does not follow the recommended naming convention,
+you must pass the full font name to <kbd>.FT</kbd> whenever you wish
+to use it.
+</p>
+
+<p>
+For example, the font, Goudy Stout, isn&#8217;t really part of the
+Goudy family, and while "stout" describes it, Stout is not a
+recognized font style. Therefore, its groff name could simply be
+GoudyStout, and whenever you needed it, you could call it with
+<kbd>.FT&nbsp;GoudyStout</kbd>.
+</p>
+
+<h3 id="install-font" class="docs appendices">Automate the whole process &ndash; the install-font script</h3>
+
+<p>
+A bash script to make the entire process of installing fonts a
+painless no-brainer has been posted online at
+<a href="https://www.schaffter.ca/mom/bin/install-font.sh">https://www.schaffter.ca/mom/bin/install-font.sh</a>.
+Be sure to make the script executable
+(<kbd class="nobr">chmod 755 install-font</kbd>)
+after you download it, then type <kbd>./install-font.sh -H</kbd> for
+usage.
+</p>
+
+<div class="rule-medium" style="margin-top: 2em;"><hr/></div>
+
+<!-- ===================================================================== -->
+
+<h2 id="codenotes" class="docs">Some reflections on mom</h2>
+
+<p>
+If, as Eric Raymond asserts, open source begins with a programmer
+scratching a personal itch, then mom can truly be called open
+source.
+</p>
+
+<p>
+Mom had her origins in a library of groff routines I wrote over
+the years to handle various aspects of typesetting and document
+processing that weren&#8217;t adequately covered by ms, me, mm, and
+friends. Typically, I&#8217;d use the library to cobble together
+macro sets for new challenges as they came my way.
+</p>
+
+<p>
+As a writer living in a perpetual state of penury, all the computers
+I&#8217;ve ever owned have been hand-me-downs&mdash;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 GNU/Linux rather than the offering from Redmond
+is that it has helped enormously to get the most out of my poor
+little boxes.
+</p>
+
+<p>
+In Linux-land (all Unix variants, in fact), the choice of
+typesetting systems basically comes down to groff or TeX. Both are
+wonderful&mdash;monumental achievements if you ask me&mdash;and both
+have their own particular strengths. However, for people in my
+financial position (and there are millions of us around the globe,
+in both developed and developing countries), TeX and groff have one
+big difference: size. TeX is huge. Even its most ardent supporters
+agree it suffers from bloat, on top of being complex and unwieldy to
+manage. Groff is tiny by comparison, occupying minimal disk space
+and having only a small memory footprint while at the same time
+being flexible and powerful, typographically speaking. Back in the
+Jurassic Period, I ran it successfully on a 386 with 8 megs of RAM
+and a 250 meg hard disk.
+</p>
+
+<p>
+However, groff has always had a liability: it&#8217;s incredibly geeky.
+Owing to its very long history, it&mdash;and its power users
+&mdash;seem to have remained stuck in a time warp. The canonical macro packages
+still look as they did back in those decades when memory was exorbitantly
+expensive and every byte mattered.
+</p>
+
+<p>
+For some time now, groff users and macro writers have had the option
+to use &#8220;long&#8221; names for macros (i.e. longer than two
+letters, the original limit), yet have mostly chosen not to. With
+long names, it&#8217;s possible to create macro sets that are
+humanly readable and easy to interpret, encouraging development and
+evolution. What&#8217;s more, the macros themselves need not be
+terse, intimidating, and easily forgotten 1- or 2-letter commands
+inserted in the body of a document. They can be sensible and
+helpful to everyone, groff newbies and old hands alike.
+</p>
+
+<p>
+Mom&#8217;s macro file, om.tmac, uses long names, aliases, and a
+host of other groff goodies that have become part of the whole groff
+picture. The function of nearly every macro, number register and
+string can be inferred simply from its name. The file is heavily
+commented. A consistent, if idiosyncratic, indenting style is used
+as well, significantly improving readability. Anyone wanting to
+futz around with mom&#8217;s macros should be able to do so with a
+minimum of head scratching.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<!-- ===================================================================== -->
+
+<h2 id="contact" class="docs">Contact the author</h2>
+
+<p>
+If you have any questions or comments about mom, suggestions to
+make, criticisms to offer, or bugs to report, use the groff mailing
+list (subscription information available
+<a href="http://www.gnu.org/software/groff/groff.html">here</a>)
+or contact me, Peter Schaffter, directly at the following
+address:
+<br/>
+<span class="pre-in-pp">
+ &#112;&#101;&#116;&#101;&#114;&#64;&#115;&#99;&#104;&#97;&#102;&#102;&#116;&#101;&#114;&#46;&#99;&#97;
+</span>
+Please include the word &#8220;mom&#8221; or &#8220;groff&#8221; in
+the Subject line of any message sent to my personal address or you
+risk the wrath of my implacable spam filters.
+</p>
+
+<p>
+If you want to visit mom&#8217;s website, you&#8217;ll find a link
+to it at
+<br/>
+<span class="pre-in-pp">
+ https://www.schaffter.ca
+</span>
+The site contains links to some of my fiction, all of which was
+typeset with mom and groff.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 100%; text-align: right;"><a href="#top">Top</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/color.html b/contrib/mom/momdoc/color.html
new file mode 100644
index 0000000..f53b5c0
--- /dev/null
+++ b/contrib/mom/momdoc/color.html
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Colour</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="graphical.html#top">Next: Graphical objects</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Coloured text</h1>
+
+<div style="text-align: center;">
+<a href="#index-color">List of color macros</a>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 class="docs">Introduction</h2>
+
+<p>
+Mom&#8217;s support for coloured text is straightforward. You begin
+by telling mom about the colours you want with
+<a href="#newcolor">NEWCOLOR</a>
+or
+<a href="#xcolor">XCOLOR</a>.
+Afterwards, any time you want text to be coloured, you either colour
+it with an
+<a href="definitions.html#inlines">inline escape</a>
+that contains the colour name (e.g. <kbd><span class="nobr">\*[red]</span></kbd>
+or <kbd><span class="nobr">\*[blue]</span></kbd>) or invoke the macro
+<a href="#color">COLOR</a>
+with the name of the colour you want.
+</p>
+
+<p id="color-example">
+For example, say you want to have the name &#8220;Jack&#8221; in the
+sentence &#8220;All work and no play makes Jack a dull boy&#8221;
+appear in yellow. You&#8217;d begin by telling mom about the colour,
+yellow. There are two ways of doing this; see
+<a href="#newcolor">NEWCOLOR</a>
+and
+<a href="#xcolor">XCOLOR</a>
+for a full explanation of the difference between the two.
+</p>
+
+<p>
+If you use XCOLOR, you&#8217;d enter this:
+<br/>
+<span class="pre-in-pp">
+ .XCOLOR yellow
+</span>
+If you use NEWCOLOR, you might enter:
+<br/>
+<span class="pre-in-pp">
+ .NEWCOLOR yellow RGB #FFFF00
+</span>
+</p>
+
+<p id="color-example2" style="margin-top: -1em;">
+After defining or initializing the colour yellow you&#8217;d
+colourise the name, Jack, either with an inline escape
+<br/>
+<span class="pre-in-pp">
+ All work and no play makes \*[yellow]Jack\*[black] a dull boy.
+</span>
+or with the
+<a href="#color">COLOR</a>
+macro
+<br/>
+<span class="pre-in-pp">
+ All work and no play makes
+ .COLOR yellow
+ Jack
+ .COLOR black
+ a dull boy.
+</span>
+Notice, in both examples, that a) you have to set the colour back
+to black after &#8220;Jack,&#8221; and b) you don&#8217;t have to
+define or initialize the colour, black. Mom predefines it for you.
+</p>
+
+<p>
+For information on using colour during
+<a href="docprocessing.html#intro-macros-docprocessing">document processing</a>,
+see
+<a href="docprocessing.html#color">Colour support in document processing</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom&#8217;s colour support is for text only. She doesn&#8217;t
+support &#8220;fill&#8221; (or &#8220;background&#8221;) colour for
+solid, enclosed graphical objects (polygons, ellipses) drawn with
+groff&#8217;s <kbd>\D</kbd>
+<a href="definitions.html#inlines">inline escapes</a>,
+although you may give a colour as one of the arguments to
+mom&#8217;s &#8220;box&#8221; and &#8220;circle&#8221; macros,
+<a href="graphical.html#dbx">DBX</a>
+and
+<a href="graphical.html#dcl">DCL</a>
+when the first argument to these macros is <kbd>SOLID</kbd>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span>
+If you&#8217;re accustomed to using groff&#8217;s
+<kbd>.defcolor</kbd> to define colours, and groff&#8217;s inline
+<kbd>\m[&lt;colorname&gt;]</kbd> to call them, you may continue to
+do so without confusing mom.
+</p>
+</div>
+
+<div class="macro-list-container">
+<h3 id="index-color" class="macro-list">Coloured text macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#newcolor">NEWCOLOR</a></li>
+ <li><a href="#xcolor">XCOLOR</a></li>
+ <li><a href="#color">COLOR</a></li>
+ <li><a href="#color-inline">\*[&lt;colourname&gt;]</a> (inline escape)</li>
+</ul>
+</div>
+
+<div class="rule-medium" style="margin-bottom: 1.5em;"><hr/></div>
+
+<!-- -NEWCOLOR- -->
+
+<div class="macro-id-overline">
+<h3 id="newcolor" class="macro-id">Creating (initializing) a colour with NEWCOLOR</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>NEWCOLOR</b> <kbd class="macro-args">&lt;colour name&gt; [&lt;colour scheme&gt;] &lt;colour components&gt;</kbd>
+</div>
+
+<p>
+NEWCOLOR lets you create a colour, rather like an artist mixing
+paint on a palette. The colour isn&#8217;t used immediately;
+NEWCOLOR merely tells mom how to mix the colour when you need it.
+If you haven&#8217;t invoked <kbd>.NEWCOLOR</kbd> (or
+<kbd><a href="#xcolor">.XCOLOR</a></kbd>),
+mom doesn&#8217;t have a clue what you mean when you reference a
+colour (with
+<a href="#color">COLOR</a>
+or
+<a href="#color-inline"><kbd><span class="nobr">\*[&lt;colour name&gt;]</span></kbd></a>).
+</p>
+
+<p>
+The first argument to NEWCOLOR is a name for your colour. It
+can be anything you like&mdash;provided it&#8217;s just one word
+long&mdash;and can be caps, lower case, or any combination of the
+two.
+</p>
+
+<p>
+The second argument, which is entirely optional, is the
+&#8220;colour scheme&#8221; you want mom to use when mixing the
+colour. Valid arguments are
+<br/>
+<span class="pre-in-pp">
+ RGB (3 components: red green blue)
+ CYM (3 components: cyan yellow magenta)
+ CMYK (4 components: cyan magenta yellow black)
+ GRAY (1 component)
+</span>
+If you omit the second argument, mom assumes you
+want RGB.
+</p>
+
+<p>
+The final argument is the components of your colour. This can be
+hexadecimal string starting with a pound sign (<kbd>#</kbd>) (for
+colour values in the 0-255 range) or two pound signs (<kbd>##</kbd>)
+(for colour values in the 0-65535 range), or it can be a series of
+decimal digits, separated by spaces, one digit per component, with
+the argument enclosed in double quotes. (If this is all gibberish
+to you, see
+<a href="#color-tip">Tips for newbies</a>.)
+</p>
+
+<p>
+Thus, to tell mom about a colour named &#8220;YELLOW&#8221;, you
+could enter one of the following:
+<br/>
+<span class="pre-in-pp">
+ .NEWCOLOR YELLOW #FFFF00 \"or ##FFFFFFFF0000 or "1 1 0"
+ .NEWCOLOR YELLOW RGB #FFFF00 \"or ##FFFFFFFF0000 or "1 1 0"
+ .NEWCOLOR YELLOW CMY #0000FF \"or ##0000FFFF0000 or "0 0 1"
+ .NEWCOLOR YELLOW CMYK #0000FF00 \"or ##00000000FFFF0000 or "0 0 1 0"
+</span>
+After you&#8217;ve told mom about a colour, you can then get her to
+set text in that colour either with the
+<a href="definitions.html#inlines">inline escape</a>,
+<a href="#color-inline"><kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd></a>,
+or the macro
+<a href="#color">COLOR</a>.
+(See the
+<a href="#color-example">example</a>,
+above.)
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+The colourname you give to NEWCOLOR may be used with groff&#8217;s
+<kbd>\m[&lt;colourname&gt;]</kbd> inline escape (the <kbd>\m</kbd>
+escape is used to set text and rule colours). Thus, assuming
+a colourname &#8220;blueblack&#8221; set with NEWCOLOR,
+<kbd><span class="nobr">\*[blueblack]</span></kbd> and <kbd>\m[blueblack]</kbd>
+are equivalent. Furthermore, the colourname can be given as an
+argument to <b>groff</b>&#8217;s
+<a href="definitions.html#primitives">primitive</a>
+request, <kbd>.gcolor</kbd> (which does the same thing as
+<kbd>\m[&lt;colourname&gt;]</kbd>).
+</p>
+
+<p class="tip-bottom">
+Equally, the colourname may be used with
+<kbd>\M[&lt;colourname&gt;]</kbd> and <kbd>.fcolor</kbd>, which set
+the &#8220;fill&#8221; colour for solid graphical objects.
+</p>
+</div>
+
+<div class="box-tip">
+<p id="color-tip" class="tip-top">
+<span class="tip">Tips for newbies:</span>
+Colour manipulation can be tremendously confusing if you don&#8217;t
+have a background in graphic arts or computing. My advice, if colour
+intimidates you, is to stick to using mom&#8217;s default RGB colour
+scheme, and to fire up a colour chooser that gives you the RGB values
+you want for the colour you select. Plug those values into the
+components argument to NEWCOLOR, and you&#8217;ll get the colour
+you want. Both the KDE and gnome desktops have colour selectors
+that provide you with the shorter RGB hexadecimal string. If
+you&#8217;re not running KDE or gnome, the X utility, xcolorsel,
+provides you with a similar functionality, although it only provides
+RGB values for 256 pre-defined colours. If you use xcolorsel, be
+sure to click the button &#8220;Display format&#8221; and select
+&#8220;8 bit truncated rgb&#8221;.
+</p>
+
+<p class="tip-bottom">
+Alternatively, you can use mom&#8217;s simpler
+<kbd><a href="#xcolor">XCOLOR</a></kbd>
+macro to initialize one of the 256 pre-defined X colours by
+supplying the name of the colour as an argument.
+</p>
+</div>
+
+<!-- -XCOLOR- -->
+
+<div class="macro-id-overline">
+<h3 id="xcolor" class="macro-id">Initializing a colour with XCOLOR</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>XCOLOR</b> <kbd class="macro-args">&lt;X colourname&gt; [&lt;alias&gt;]</kbd>
+</div>
+
+<p class="requires">
+<kbd style="font-style: normal">&lt;X colourname&gt;</kbd> <i>must be all one word, all lower case.</i>
+<br/>
+(See
+<a href="#xcolor-names" style="font-style: normal;">Finding X colour names</a>
+for how to get a list of valid colour names.)
+</p>
+
+<p>
+XCOLOR is similar to NEWCOLOR in that it tells mom to initialize a
+colour, but it&#8217;s easier to use. All you have to do is pass
+it, as an argument, the valid name of one of the 256 pre-defined
+X colours. The name must be all one word, and, breaking with mom
+policy, it must be entered in lower case.
+</p>
+
+<p>
+For example, if you want to initialize the X colour, coral, all you
+have to do is enter
+<br/>
+<span class="pre-in-pp">
+ .XCOLOR coral
+</span>
+Afterwards
+<br/>
+<span class="pre-in-pp">
+ .COLOR coral
+</span>
+
+will colourise subsequent text coral until you instruct mom to
+return to black, or some other pre-defined, initialized colour.
+(The
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[coral]</span></kbd> will equally colourise text coral
+after you&#8217;ve initialized the colour with XCOLOR.)
+</p>
+
+<p>
+The downside of XCOLOR is that you can&#8217;t create custom
+colours. This restriction, however, is mitigated by the fact that
+for many users, 256 colours is more than enough to play around with.
+</p>
+
+<p>
+While some X colours have fanciful names (peachpuff, papayawhip,
+thistle, snow), many are self-explanatory and self-descriptive
+in ordinary colour terms. &#8220;blue&#8221; is pure (rgb)
+blue, &#8220;green&#8221; is pure (rgb) green, and so on.
+Furthermore, for many X colours, there exist four variants, each
+representing increasingly darker shades of the same colour.
+For example, &#8220;blue1&#8221; is a relatively bright blue;
+&#8220;blue2&#8221;, &#8220;blue3&#8221; and &#8220;blue4&#8221; are
+increasingly darker shades. For that reason, you may find XCOLOR is
+a better choice than NEWCOLOR when it comes to initializing common
+colours.
+</p>
+
+<p>
+The whimsical nature of X colour names sometimes makes for names
+that are long to type in, e.g. &#8220;mediumspringgreen&#8221;. The
+optional second argument to XCOLOR allows you to come up with more
+convenient name by which to reference the colour. For example, you
+could enter
+<br/>
+<span class="pre-in-pp">
+ .XCOLOR mediumspringgreen mygreen
+</span>
+or
+<span class="pre-in-pp">
+ .XCOLOR mediumspringgreen MYGREEN
+</span>
+so that whenever you want text mediumspringgreen-ed, you can use
+either <kbd>.COLOR&nbsp;mygreen</kbd> (or <kbd>.COLOR&nbsp;MYGREEN</kbd>)
+or the inline escape
+<kbd>\*[mygreen]</kbd> (or <kbd>\*[MYGREEN]</kbd>.)
+</p>
+
+<h3 id="xcolor-names" class="docs">Finding X colour names</h3>
+
+<p>
+There are two ways of finding the names of the pre-defined X
+colours. One is to consult the file, rgb.txt, included with all
+X11 installations. The location of the file on a Debian GNU/Linux
+distribution is typically /etc/X11/rgb.txt. Other distributions and
+other X installations may have the file in another location. The
+file lists the colour names, but doesn&#8217;t show you what the
+colours actually look like.
+</p>
+
+<p>
+A better way to get the colour names, as well as to see what the
+colours look like, is to fire up a colour chooser (like xcolorsel)
+that both lists the colour names and shows a swatch of the colour
+as well.
+</p>
+
+<p>
+Whichever method you use to find X colour names, remember that the
+names, passed as arguments to XCOLOR, must be all one word, all in
+lower case.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Both the colourname and the alias you give to XCOLOR may be
+used with groff&#8217;s <kbd>\m[&lt;colourname&gt;]</kbd>
+inline escape (the <kbd>\m</kbd> escape is used to set
+text and rule colours). Thus, assuming an X-colourname
+&#8220;mediumspringgreen&#8221; set with
+XCOLOR, and an alias, &#8220;mygreen&#8221;,
+<kbd><span class="nobr">\*[mediumspringgreen]</span></kbd>,
+<kbd><span class="nobr">\m[mediumspringgreen]</span></kbd>,
+<kbd><span class="nobr">\*[mygreen]</span></kbd> and
+<kbd><span class="nobr">\m[mygreen]</span></kbd> are all equivalent.
+Furthermore, both the colourname and the alias can be given as an
+argument to groff&#8217;s
+<a href="definitions.html#primitives">primitive</a>
+request, <kbd>.gcolor</kbd> (which does the same thing as
+<kbd><span class="nobr">\m[&lt;colourname&gt;]</span></kbd>).
+</p>
+
+<p class="tip-bottom">
+The colourname initialized with XCOLOR <i>but not the
+alias</i> may also be used with groff&#8217;s inline escape,
+<kbd>\M[&lt;colorname&gt;]</kbd>, and the corresponding primitive,
+<kbd>.fcolor</kbd>, both of which set the &#8220;fill&#8221; colour
+for solid graphical objects. If you need a colour initialized with
+XCOLOR for <kbd>\M</kbd> or <kbd>.fcolor</kbd>, you MUST give the
+full colourname; the alias won&#8217;t work.
+</p>
+</div>
+
+<!-- -COLOR- -->
+
+<div class="macro-id-overline">
+<h3 id="color" class="macro-id">Invoking a colour</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>COLOR</b> <kbd class="macro-args">&lt;colourname&gt;</kbd>
+</div>
+
+<p id="color-inline" class="requires" style="font-style: normal;">
+Inline: <kbd>\*[&lt;colourname&gt;]</kbd>
+</p>
+
+<p>
+Once you&#8217;ve told mom about a colour (via
+<a href="#newcolor">NEWCOLOR</a>
+or
+<a href="#xcolor">XCOLOR</a>,
+you use either the macro COLOR or the
+<a href="definitions.html#inlines">inline escape</a>,
+<kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd>, to cause mom to set
+subsequent text in that colour. See the
+<a href="#color-example2">example</a>,
+above, which shows both in action.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+You can use the <kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd>
+inline escape in any
+<a href="docprocessing.html#top">document processing</a>
+macro that takes a
+<a href="definitions.html#stringargument">string argument</a>.
+However, you must remember to reset the colour at the end of the
+argument (typically with <kbd><span class="nobr">\*[black]</span></kbd>) unless
+you want all subsequent invocations of that particular macro to be
+colourised.
+</p>
+
+<p>
+Furthermore, if you use
+<kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd> in the string
+argument passed to
+<a href="docelement.html#heading">HEADING&nbsp;&lt;n&gt;</a>
+and you&#8217;ve requested that the heading level be numbered, the
+numbers themselves will not be colourised, only the text you pass to
+the macro. If you wish the numbers to be colourised along with the
+text, you must explicitly tell mom with
+<a href="docelement.html#heading-style">HEADING_STYLE&nbsp;&lt;n&gt;</a>.
+</p>
+
+<p class="tip-bottom">
+For colourising underscored text, see
+<a href="goodies.html#underscore-color">Colourising underscored text</a>
+in the notes at the end of
+<a href="goodies.html#underscore">UNDERSCORE</a>.
+</p>
+</div>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="graphical.html#top">Next: Graphical objects</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/cover.html b/contrib/mom/momdoc/cover.html
new file mode 100644
index 0000000..7efee1f
--- /dev/null
+++ b/contrib/mom/momdoc/cover.html
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document processing, creating cover pages</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="tables-of-contents.html#top">Next: Tables of contents</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Creating cover pages</h1>
+
+<div style="width: 66%; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#cover-intro">Introduction to cover pages</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#important-note">Important note</a></li>
+ <li><a href="#desc">Description of cover pages</a></li>
+ <li><a href="#pagination">Headers/footers/pagination</a>
+ <ul style="margin-left: -1.25em; list-style-type: circle;">
+ <li><a href="#pagination">DOC_COVERS_COUNT_PAGES</a></li>
+ <li><a href="#pagination">COVERS_COUNT_PAGES</a></li>
+ </ul>
+ </li>
+ <li><a href="#design">Designing your own cover pages</a></li>
+ <li><a href="#persistence">Persistence of data and formatting</a></li>
+ </ul></li>
+ <li><a href="#index-covers">Doc-cover and cover macros</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#cover">DOC_COVER / COVER</a>
+ <ul style="margin-left: -1.25em; list-style-type: circle;">
+ <li><a href="#cover-args">The argument list: saying what goes on doc cover and cover pages</a></li>
+ <li><a href="#meanings">What the arguments mean</a></li>
+ <li><a href="#chapter">How the CHAPTER argument and friends work</a></li>
+ </ul></li>
+ <li><a href="#covertext">DOC_COVERTEXT / COVERTEXT</a>
+ <ul style="margin-left: -1.25em; list-style-type: circle;">
+ <li><a href="#placement">Placement</a></li>
+ </ul>
+ </li>
+ <li><a href="#coverimages">DOC_COVER_IMAGE / COVER_IMAGE</a>
+ <ul style="margin-left: -1.25em; list-style-type: circle;">
+ <li><a href="#positioning">Positioning of doc cover and cover images</a></li>
+ </ul>
+ </li>
+ </ul></li>
+ <li><a href="#on-off">Enabling/disabling automatic generation of cover pages</a></li>
+ <li><a href="#cover-control">Control macros for covers and doc covers</a></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="cover-intro" class="docs">Introduction to cover pages</h2>
+
+<p>
+Though identical in treatment, mom provides two kinds of cover
+pages: document cover pages (&#8221;doc covers&#8221;) and section
+cover pages (&#8220;covers&#8221;). Section cover pages are
+analogous to title pages.
+</p>
+
+<p>
+A doc cover is what you&#8217;d most likely use at the start of a
+collated document, where you might want the name of the complete
+document, the author(s) and the copyright line to appear. Another
+place you might use a doc cover is for a novel, where you want the
+title of the novel, not the chapter title or chapter number, as the
+first cover page.
+</p>
+
+<p>
+A cover is what you&#8217;d use for pages that separate sections
+of a collated document, i.e. title pages. A cover page (but not a
+doc cover) in a collated document could, for example, simply read:
+&#8221;PART 1&#8221;.
+</p>
+
+<p>
+In non-collated documents (say, an essay) you can use either a cover
+or doc cover to generate the cover sheet.
+</p>
+
+<p>
+In addition, nothing prevents you from generating both a doc cover
+and a cover for every document in a collated document. Or you can
+selectively disable the automatic generation of either doc covers or
+covers in a collated document on-the-fly.
+</p>
+
+<div id="important-note" class="box-important">
+<p class="tip">
+<span class="important">Important note:</span>
+Automatic generation of covers or doc covers after the first one(s)
+only takes place if you are working with collated documents. Mom
+provides no mechanism for saying &#8221;print a section cover
+here even though I&#8217;m still working on the same (non-collated)
+document.&#8221;
+</p>
+</div>
+
+<h3 id="desc" class="docs">Description of cover pages</h3>
+
+<p>
+By default, mom typesets covers and doc covers identically to
+<a href="definitions.html#docheader">docheaders</a>
+(see
+<a href="docprocessing.html#docheader-control">How to change the look of docheaders</a>
+for a description of what a docheader looks like). The only
+differences are
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>the position on the page where the information is output</li>
+ <li>the (optional) addition of copyright and miscellaneous information</li>
+ <li>there&#8217;s no running text underneath, although you can add text
+ to a cover or doc cover (for example, an Abstract) with
+ <a href="#covertext">COVERTEXT</a>
+ </li>
+</ul>
+
+<p>
+You tell mom what you want to appear on cover pages through the
+arguments you pass to
+<a href="#cover">DOC_COVER</a>
+and/or
+<a href="#cover">COVER</a>.
+Provided you have already given mom the appropriate reference macros
+(e.g.
+<a href="docprocessing.html#title">TITLE</a>
+or
+<a href="docprocessing.html#author">AUTHOR</a>),
+she will output covers and doc covers identically to how she
+would output docheaders containing the same information.
+</p>
+
+<p>
+By default, mom starts covers and doc covers one-third of the way
+down the page. This can be changed through the use of the control
+macros DOC_COVER_START_POS / COVER_START_POS (or DOC_COVER_ADVANCE /
+COVER_ADVANCE).
+</p>
+
+<p>
+If you request copyright information (and have already given mom the
+reference macro
+<a href="docprocessing.html#copyright">COPYRIGHT</a>)
+she sets it, by default, in a smaller
+<a href="definitions.html#ps">point size</a>
+in the bottom right hand corner of the cover or doc cover. The
+position, as well as all of the standard typesetting parameters, can be
+altered via control macros.
+</p>
+
+<p>
+Similarly, if you request miscellaneous information (and have
+already given mom the reference macro
+<a href="docprocessing.html#misc">MISC</a>)
+she sets it, by default, in a smaller point size in the bottom left
+hand corner of the cover or doc cover. As with the copyright, the
+position and type specs can be altered via control macros.
+</p>
+
+<h3 id="pagination" class="docs">Headers/footers/pagination</h3>
+
+<p>
+Mom does not set any
+<a href="definitions.html#header">headers</a>
+or
+<a href="definitions.html#footer">footers</a>
+on cover pages. Neither does she set any page numbers. From
+the point of view of pagination, covers and doc covers are by
+default considered &#8221;null&#8221; pages. If you wish them to
+be included in the pagination scheme (even though no page numbers
+appear), you must tell mom that&#8217;s what you want by invoking
+<br/>
+<span class="pre-in-pp">
+ .DOC_COVER_COUNTS_PAGES
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .COVER_COUNTS_PAGES
+</span>
+</p>
+
+<h3 id="design" class="docs">Designing your own cover pages</h3>
+
+<p>
+Finally, if you want to design your own cover page(s), you can
+typeset them by hand inside a
+<a href="#covertext">COVERTEXT</a>
+block using mom&#8217;s typesetting macros to format the text.
+</p>
+
+<h3 id="persistence" class="docs">Persistence of data and formatting</h3>
+
+<p>
+Doc-cover and cover data&mdash;that is to say, the strings passed to
+reference macros that appear on doc cover and cover
+pages&mdash;does not persist after
+<a href="docprocessing.html#start">START</a>,
+however the formatting of the various parts (TITLE, AUTHOR,
+COPYRIGHT, etc.) does.
+</p>
+
+<div class="macro-list-container">
+<h3 id="index-covers" class="macro-list">Cover and document cover macros</h3>
+<ul class="macro-list">
+ <li><a href="#cover">DOC_COVER and COVER</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#cover-args">The arguments: saying what goes on doc cover and cover pages</a></li>
+ </ul></li>
+ <li><a href="#covertext">DOC_COVERTEXT / COVERTEXT</a></li>
+ <li><a href="#doc-coverimage">DOC_COVER_IMAGE / COVER_IMAGE</a></li>
+ <li><a href="#on-off">Enabling/disabling automatic generation of cover pages</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#doc-covers">DOC_COVERS</a></li>
+ <li><a href="#covers">COVERS</a></li>
+ </ul></li>
+ <li><a href="#cover-control">Control macros for doc covers and covers</a></li>
+</ul>
+</div>
+
+<!-- -COVER- -->
+
+<div class="macro-id-overline">
+<h3 id="cover" class="macro-id">DOC_COVER and COVER</h3>
+</div>
+
+<div id="doc-cover" class="box-macro-args">
+Macro: <b>DOC_COVER</b> <kbd class="macro-args">(see argument list, below)</kbd>
+</div>
+
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>COVER</b> <kbd class="macro-args">(see argument list, below)</kbd>
+</div>
+
+<p>
+DOC_COVER and COVER behave identically. The reason mom provides
+two macros for cover page generation is so that you can have two
+different kinds of covers with different information on each.
+</p>
+
+<p>
+Imagine, for a moment, you&#8217;ve written a document comprised of
+three sections. When you
+<a href="rectoverso.html#collate">COLLATE</a>
+the document for output, you could use DOC_COVER to generate a cover
+page that contained the name of the entire document, your (the
+author&#8217;s) name, and perhaps the copyright date. Subsequently,
+you could use COVER, after each <kbd>.COLLATE</kbd> but before each
+<kbd><a href="docprocessing.html#start">.START</a></kbd>,
+to generate a cover page (title page, cover sheet) containing
+just the name of the section, for example, &#8220;Part 1&#8221;.
+</p>
+
+<p>
+The arguments to <kbd>DOC_COVER</kbd> and <kbd>COVER</kbd> tell mom
+what you&#8217;d like on cover pages. You may give as many or as
+few arguments as you need, in any order. A very common setup would
+be:
+<br/>
+<span class="pre-in-pp">
+ .COVER TITLE AUTHOR COPYRIGHT
+</span>
+</p>
+
+<h4 id="cover-args" class="docs" style="margin-top: -1em;">The argument list</h4>
+
+<p style="margin-top: 1em">
+The arguments to <kbd>COVER</kbd> and <kbd>DOC_COVER</kbd> tell mom
+what you want on the cover page:
+<br/>
+<span class="pre-in-pp">
+ TITLE | DOCTITLE | DOC_COVERTITLE | COVERTITLE
+ CHAPTER | CHAPTER_TITLE | CHAPTER+TITLE
+ SUBTITLE
+ AUTHOR
+ DOCTYPE
+ DOC_COVERTEXT | COVERTEXT
+ DOC_COVER_IMAGE | COVER_IMAGE
+ COPYRIGHT
+ MISC
+ PDF_OUTLINE_LABEL "&lt;label&gt;"
+ BLANKPAGE
+</span>
+</p>
+
+<h4 id="meanings" class="docs" style="margin-top: -1em;">What the arguments mean</h4>
+
+<dl>
+ <dt class="params">TITLE</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#title">TITLE</a>
+ </dd>
+ <dt class="params">DOCTITLE</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#doc-title">DOCTITLE</a>
+ </dd>
+ <dt class="params">DOC_COVERTITLE / COVERTITLE</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#doc-covertitle">DOC_COVERTITLE</a>
+ or
+ <a href="docprocessing.html#covertitle">COVERTITLE</a>
+ </dd>
+ <dt class="params">CHAPTER, CHAPTER_TITLE, CHAPTER+TITLE</dt>
+ <dd class="cover-args">&ndash; see below,
+ <a href="#chapter">How the CHAPTER argument and friends work</a>
+ </dd>
+ <dt class="params">SUBTITLE</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#subtitle">SUBTITLE</a>
+ </dd>
+ <dt class="params">AUTHOR</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#author">AUTHOR</a>
+ </dd>
+ <dt class="params">DOCTYPE</dt>
+ <dd class="cover-args">&ndash; the string you gave to
+ <a href="docprocessing.html#doctype">DOCTYPE NAMED</a>
+ </dd>
+ <dt class="params">DOC_COVERTEXT / COVERTEXT</dt>
+ <dd class="cover-args">&ndash; the block of type you entered for
+ <a href="#covertext">DOC_COVERTEXT</a>
+ or
+ <a href="#covertext">COVERTEXT</a>
+ </dd>
+ <dt class="params">DOC_COVER_IMAGE / COVER_IMAGE</dt>
+ <dd class="cover-args">&ndash; the image file you gave to
+ <a href="#covertext">DOC_COVER_IMAGE</a>
+ or
+ <a href="#covertext">COVER_IMAGE</a>
+ </dd>
+ <dt class="params">COPYRIGHT</dt>
+ <dd class="cover-args">&ndash; the string you gave to
+ <a href="docprocessing.html#copyright">COPYRIGHT</a>
+ </dd>
+ <dt class="params">MISC</dt>
+ <dd class="cover-args">&ndash; the string(s) you gave to
+ <a href="docprocessing.html#misc">MISC</a>
+ </dd>
+ <dt class="params">PDF_OUTLINE_LABEL &lt;label&gt;</dt>
+ <dd class="cover-args">
+ <span style="display:block; margin-left: 1em">
+ By default, mom identifies doc covers in the outline panel of PDF
+ viewers with the prepended label, &#8220;Cover:&#8221;, and covers
+ with the label &#8220;Title Page:&#8221;. If you would like
+ to change the label, give the <kbd>PDF_OUTLINE_LABEL</kbd>
+ argument to DOC_COVER or COVER along with the new label, in
+ quotation marks, as in this example:
+ <br/>
+ <kbd>&nbsp;&nbsp;.COVER TITLE AUTHOR COPYRIGHT PDF_LABEL "Cover Sheet: "</kbd>
+ </span>
+ </dd>
+ <dt class="params">BLANKPAGE</dt>
+ <dd class="cover-args">
+ <span style="display:block; margin-left: 1em">
+ If the final argument to DOC_COVER or COVER is <kbd>BLANKPAGE</kbd>,
+ mom will insert a blank page after the doc cover or cover. This is
+ particularly useful if you intend to print your document two-sided,
+ since, in two-sided printing, there may be instances where you do
+ not want text on the reverse side of cover or title pages
+ </span>
+ <span style="display:block; margin-left: 1em; margin-top: .5em">
+ If you enable
+ <a href="#pagination">DOC_COVERS_COUNT_PAGES</a>
+ and/or
+ <a href="#pagination">COVERS_COUNT_PAGES</a>,
+ the blank page will be taken into account in the pagination
+ scheme, though no page number appears on it. Otherwise, blank
+ pages are invisible to mom&#8217;s pagination.
+ </span>
+ </dd>
+</dl>
+
+<p>
+Please note that in all cases, if you have passed
+a reference macro one of the optional arguments
+<kbd>DOC_COVER</kbd> or <kbd>COVER</kbd> (e.g.
+<kbd>.TITLE&nbsp;DOC_COVER&nbsp;"Title"</kbd>), mom will print the
+appropriate string on the appropriate cover page. Thus,
+<br/>
+<span class="pre-in-pp">
+ .TITLE DOC_COVER "Collected Essays"
+ .TITLE COVER "1985-2015"
+ .TITLE "Neo-liberalism: Who Did They Think They Were Fooling?"
+ .DOC_COVER TITLE
+ .COVER TITLE
+</span>
+will print &#8220;Collected Essays&#8221; on the doc cover page,
+&#8220;1985-2015&#8221; on the cover page, and, assuming the
+docheader hasn&#8217;t been disabled, &#8220;Neo-liberalism: Who
+Did They Think They Were Fooling?&#8221; as the title in the
+docheader.
+</p>
+
+<p>
+Note that
+<br/>
+<span class="pre-in-pp">
+ .DOC_COVERTITLE "Collected Essays"
+ .COVERTITLE "1985-2015"
+ .TITLE "Neo-liberalism: Who Did They Think They Were Fooling?"
+ .DOC_COVER DOC_COVERTITLE
+ .COVER COVERTITLE
+</span>
+could be used to accomplish the same thing.
+</p>
+
+<h5 id="chapter" class="docs" style="margin-top: 0; text-transform: none;">How the CHAPTER argument and friends work</h5>
+
+<p style="margin-top: .75em">
+<span style="display: block; margin-bottom: -1.25em; font-weight: bold;">&bull;&nbsp;CHAPTER</span>
+<br/>
+The <kbd>CHAPTER</kbd> argument will print the
+<a href="docprocessing.html#chapter-string">CHAPTER_STRING</a>
+concatenated with the chapter number you gave to
+<a href="docprocessing.html#chapter">CHAPTER</a>.
+For example, assuming a vanilla setup for your chapter:
+<br/>
+<span class="pre-in-pp" style="color: #64614a;">
+ .CHAPTER 1
+ .CHAPTER_TITLE "The Bonny Blue Yonder"
+ <span style="color: #941614;">.COVER CHAPTER</span> \" (or <span style="color: #941614;">.DOC_COVER CHAPTER</span>)
+</span>
+will print (and only print)
+<br/>
+<span class="pre-in-pp">
+ Chapter 1
+</span>
+</p>
+
+<p style="margin-top: -1em;">
+<span style="display: block; margin-bottom: -1.25em; font-weight: bold;">&bull;&nbsp;CHAPTER_TITLE</span>
+<br/>
+The <kbd>CHAPTER_TITLE</kbd> argument will print the chapter title
+you gave to
+<a href="docprocessing.html#chapter-title">CHAPTER_TITLE</a>.
+For example, assuming a vanilla setup for your chapter:
+<br/>
+<span class="pre-in-pp" style="color: #64614a;">
+ .CHAPTER 1
+ .CHAPTER_TITLE "The Bonny Blue Yonder"
+ <span style="color: #941614;">.COVER CHAPTER_TITLE</span> \"(or <span style="color: #941614;">.DOC_COVER CHAPTER_TITLE</span>)
+</span>
+will print (and only print)
+<br/>
+<span class="pre-in-pp">
+ The Bonny Blue Yonder
+</span>
+</p>
+
+<p style="margin-top: -1em;">
+<span style="display: block; margin-bottom: -1.25em; font-weight: bold;">&bull;&nbsp;CHAPTER+TITLE</span>
+<br/>
+The <kbd>CHAPTER+TITLE</kbd> argument will print both the
+concatenated chapter string+number and the chapter title. For
+example, assuming a vanilla setup for your chapter:
+<br/>
+<span class="pre-in-pp" style="color: #64614a;">
+ .CHAPTER 1
+ .CHAPTER_TITLE "The Bonny Blue Yonder"
+ <span style="color: #941614;">.COVER CHAPTER+TITLE</span> \"(or <span style="color: #941614;">.DOC_COVER CHAPTER+TITLE</span>)
+</span>
+will print
+<br/>
+<span class="pre-in-pp">
+ Chapter 1
+ The Bonny Blue Yonder
+</span>
+</p>
+
+<div class="macro-id-overline">
+<h3 id="covertext" class="macro-id">DOC_COVERTEXT and COVERTEXT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_COVERTEXT</b> <kbd class="macro-args">[START &lt;starting position&gt;] &lt;toggle&gt;</kbd>
+</div>
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>COVERTEXT</b> <kbd class="macro-args">[START &lt;starting position&gt;] &lt;toggle&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Must come after
+<a href="#printstyle"><span class="normal">PRINTSTYLE</span></a>
+</p>
+
+<p>
+<kbd>DOC_COVERTEXT</kbd> and <kbd>COVERTEXT</kbd> allow you to add
+text to doc covers and covers in addition to, or instead of, what is
+generated by mom from the arguments you give to
+<a href="#doccover">DOC_COVER</a>
+and
+<a href="#doccover">COVER</a>.
+</p>
+
+<p>
+Invoke <kbd>.DOC_COVERTEXT</kbd> or <kbd>.COVERTEXT</kbd> on a line
+by itself, follow it with the text and formatting you desire, and
+terminate the text block with <kbd>.DOC_COVERTEXT&nbsp;OFF</kbd> or
+<kbd>COVERTEXT&nbsp;OFF</kbd> (or <kbd>QUIT, END, DONE</kbd>, etc.).
+</p>
+
+<p>
+By default, cover text is set over the full line length of the
+document, using the style parameters of
+<a href="definitions.html#running">running text</a>.
+Therefore, as noted, these macros must come after PRINTSTYLE
+and any global style changes (margins, family, size, leading,
+etc.). Formatting within a cover text block must be done
+&#8220;manually&#8221; with mom&#8217;s typesetting macros;
+<a href="docelement.html#pp">PP</a>
+is the only allowed document element tag.
+</p>
+
+<h4 id="placement" class="docs">Placement</h4>
+
+<p>
+If you do not instruct mom to put anything on doc cover or cover
+pages except <kbd>DOC_COVERTEXT</kbd> or <kbd>COVERTEXT</kbd>, the
+cover text will begin at the document&#8217;s top margin.
+Equally, if only <kbd>COPYRIGHT</kbd> and/or <kbd>MISC</kbd> are
+to go on the pages, cover text begins at the top margin. In all
+other cases, cover text begins below the last element on the page
+(excluding COPYRIGHT or MISC), separated by a blank line.
+</p>
+
+<p>
+If you wish to change the starting position of the text, you must
+use
+<a href="typesetting.html#space">SP</a>
+or
+<a href="typesetting.html#ald">ALD</a>
+to move it further down the page. Alternatively, you may use the
+optional START argument to give a precise location for the text to
+begin.
+</p>
+
+<p>
+<kbd>DOC_COVERTEXT</kbd> and <kbd>COVERTEXT</kbd> are particularly
+useful for putting abstracts on cover pages, as technical reports
+often require.
+</p>
+
+<p>
+Here&#8217;s a simple recipe for setting an abstract:
+<br/>
+<span class="pre-in-pp">
+ .COVERTEXT
+ .FT BI
+ .PT_SIZE 14
+ .LS 14
+ .CENTER
+ Abstract
+ .SP .5v
+ .FT R
+ .PT_SIZE 12
+ .IB 6P
+ .JUSTIFY
+ Text of Abstract...
+ .COVERTEXT OFF
+</span>
+Assuming you have told mom to put the title and author on the
+cover page, the abstract will appear beneath the author with a
+14-point bold-italic title, centered, with the text of the abstract
+medium-roman and justified, indented 6 picas from both margins.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="coverimages" class="macro-id">DOC_COVER_IMAGE and COVER_IMAGE</h3>
+</div>
+
+<div id="doc-coverimage" class="box-macro-args">
+Macro: <b>DOC_COVER_IMAGE</b> <kbd class="macro-args">&lt;image&gt; &lt;width&gt; &lt;height&gt; [ -L | -C | -R | -I &lt;indent&gt; &lt;Y-pos&gt; [ &lt;X-pos&gt; ] ]</kbd>
+</div>
+
+<div id="coverimage" class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>COVER_IMAGE</b> <kbd class="macro-args">&lt;image&gt; &lt;width&gt; &lt;height&gt; [ -L | -C | -R | -I &lt;indent&gt; &lt;Y-pos&gt; [ &lt;X-pos&gt; ] ]</kbd>
+</div>
+
+<p>
+There are times you need a full page image on a cover, for example
+the jacket of a book. Equally, there are times when you need a small
+image on the cover, perhaps a company logo.
+</p>
+
+<p>
+DOC_COVER_IMAGE and COVER_IMAGE take the same arguments
+as PDF_IMAGE, and in the same order. Consult
+<a href="images.html#pdf-image">PDF_IMAGE</a>
+for a description.
+</p>
+
+<p>
+Two additional arguments allow you to place images using x-y
+coordinates. Please note that if you use x-y coordinates for
+positioning, <b>Y-pos</b> comes before <b>X-pos</b> in the order of
+arguments.
+</p>
+
+<p>
+Like PDF_IMAGE, the image file must be in PDF format. Mom
+apologizes, but PostScript images are not supported for inclusion on
+covers. See
+<a href="images.html#pdf">Image conversion and file processing</a>
+for instructions on converting various image types to PDF, and
+<a href="images.html#bounding-box">here</a>
+for instructions on obtaining image dimensions.
+</p>
+
+<h4 id="positioning" class="docs">Positioning of doc cover and cover images</h4>
+
+<p>
+With no arguments other than <kbd>&lt;file name&gt;</kbd>,
+<kbd>&lt;width&gt;</kbd>, and <kbd>&lt;height&gt;</kbd>,
+DOC_COVER_IMAGE and COVER_IMAGE place images flush with the top
+left corner of the printer sheet. This allows placing full-page
+background images on covers. For example, assuming a US-letter page
+size,
+<br/>
+<span class="pre-in-pp">
+ .DOC_COVER_IMAGE image.pdf 612p 792p
+ .DOC_COVER TITLE AUTHOR DOC_COVER_IMAGE
+</span>
+will fill the doc cover page with &#8220;image.pdf&#8221; and set
+the title and author in their usual locations.
+</p>
+
+<p>
+For smaller images, the horizontal position is established
+with one of the <kbd>-L</kbd>, <kbd>-C</kbd>, <kbd>-R</kbd>, or
+<kbd>-I&nbsp;&lt;indent&gt;</kbd> arguments, just like
+<a href="images.html#pdf-image">PDF_IMAGE</a>.
+You may instead use the <kbd>X-pos</kbd> argument, provided that it
+is preceded by a <kbd>Y-pos</kbd> argument. The values given to
+<kbd>-I</kbd>, <kbd>Y-pos</kbd> and <kbd>X-pos</kbd> must have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to them.
+</p>
+
+<p>
+Vertical positioning of smaller images requires the <kbd>Y-pos</kbd>
+argument (which is why it precedes <kbd>X-pos</kbd> in the order of
+arguments) otherwise the image will be flush with the top edge of
+the printer sheet
+</p>
+
+<p>
+The positioning of images does not effect the placement of type on
+doc cover and cover pages.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Tip:</span>
+The combination of
+<a href="#covertext">COVERTEXT</a>
+and COVER_IMAGE make it possible to design covers entirely to your
+own specifications.
+</p>
+</div>
+
+<div class="macro-id-overline" style="margin-top: .5em">
+<h3 id="on-off" class="macro-id">Enabling/disabling automatic generation of cover pages</h3>
+</div>
+
+<div id="covers" class="box-macro-args" style="margin-top: .5em">
+Macro: <b>COVERS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<div id="doc-covers" class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>DOC_COVERS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+By default, if you give mom a
+<a href="#cover">COVER</a>
+or
+<a href="#doc-cover">DOC_COVER</a>
+directive, she will print the cover or doc cover. In a document
+that contains sections, articles or chapters formerly treated as
+&#8221;one-off&#8217;s&#8221; but now being
+<a href="rectoverso.html#collate-intro">collated</a>,
+such behaviour may not be desirable.
+</p>
+
+<p>
+Mom lets you selectively enable or disable the generation of covers
+and/or doc covers with the toggle macros, COVERS and DOC_COVERS.
+Because they&#8217;re toggle macros, simply invoking them by
+themselves enables automatic cover or doc cover generation, while
+invoking them with any argument at all (<kbd>OFF, QUIT, X</kbd>,
+etc) disables cover or doc cover generation. </p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+You must place these macros prior to any instance of
+<a href="docprocessing.html#start">START</a>.
+Since they&#8217;re &#8221;on&#8221; by default, there&#8217;s no
+need to use them if you want covers. However, if you don&#8217;t,
+especially in the kind of scenario described above, the best place
+to put them (most likely with an <kbd>OFF, NO, X</kbd>, etc. argument),
+is immediately after the first invocation of START. By doing so,
+you ensure they meet the requirement of preceding all subsequent
+instances of START.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<h2 id="cover-control" class="macro-group">Control macros for doc covers and covers</h2>
+
+<p>
+The default typographic appearance of the items on a doc cover or
+cover is identical to that of the items in a
+<a href="definitions.html#docheader">docheader</a>.
+(See
+<a href="docprocessing.html#docheader-desc">Docheader description</a>
+for a description of the defaults.)
+</p>
+
+<p>
+<a href="docprocessing.html#copyright">COPYRIGHT</a>
+and
+<a href="docprocessing.html#misc">MISC</a>,
+which do not appear in docheaders, have the following default
+characteristics:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>the COPYRIGHT line is set flush with the document&#8217;s right
+ and bottom margins, 2
+ <a href="definitions.html#ps">point sizes</a>
+ smaller than the size of
+ <a href="definitions.html#running">running text</a>
+ </li>
+ <li>MISC lines are set flush with the document&#8217;s left and bottom
+ margins, in the same family, font and point size as the
+ copyright line.
+ </li>
+</ul>
+
+<p>
+The defaults for the entirety of doc covers and covers, and all the
+elements thereon, can be changed with control macros whose defaults
+and arguments are identical to the corresponding
+<a href="docprocessing.html#index-docheader-control">Control macros for docheaders</a>
+(q.v.) The only difference is the name by which you invoke them. Wherever
+<kbd>DOCHEADER</kbd> is used for overall changes, replace it
+with <kbd>DOC_COVER</kbd> or <kbd>COVER</kbd>. For part-by-part
+changes, prepend <kbd>DOC_COVER_</kbd> or <kbd>COVER_</kbd> to the
+part/parameter.
+</p>
+
+<p>
+Thus, to change the overall family, color, leading, quad, and
+starting position of a doc cover, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .DOC_COVER_FAMILY H
+ .DOC_COVER_COLOR blue
+ .DOC_COVER_LEAD +2
+ .DOC_COVER_QUAD L
+ .DOC_COVER_ADVANCE 3i \" or .DOC_COVER_START_POS 3i
+</span>
+To change the style parameters for selected parts of a cover, you
+might do something like this:
+<br/>
+<span class="pre-in-pp">
+ .COVER_TITLE_FONT B
+ .COVER_TITLE_SIZE +4
+ .COVER_SUBTITLE_FONT I
+ .COVER_AUTHOR_FONT R
+ .COVER_AUTHOR_SPACE_BEFORE 6p
+ .COVER_DOCTYPE_COLOR red
+ .COVER_MISC_SIZE -1
+ .COVER_MISC_LEAD 12
+ .COVER_COPYRIGHT_SIZE -2
+ .COVER_COPYRIGHT_QUAD L
+ .COVER_MISC_QUAD R
+</span>
+Note in the above example that _COPYRIGHT_QUAD and _MISC_QUAD set
+both the horizontal position on the page and the quad direction,
+either L (or LEFT) or R (or RIGHT), and have no corresponding
+docheader control macro.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Tip:</span>
+As with the docheader control macros, <kbd>DOC_COVER_</kbd> and
+<kbd>COVER_</kbd> part/parameter style changes may be
+<a href="docprocessing.html#grouping">grouped</a>,
+for example
+<br/>
+<span class="pre-in-pp">
+ .DOC_COVER_TITLE_STYLE \
+ FAMILY A \
+ FONT B \
+ SIZE +4 \
+ CAPS
+</span>
+</p>
+</div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="tables-of-contents.html">Next: Tables of contents</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/definitions.html b/contrib/mom/momdoc/definitions.html
new file mode 100644
index 0000000..b85a089
--- /dev/null
+++ b/contrib/mom/momdoc/definitions.html
@@ -0,0 +1,995 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Definitions and Terms</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+ <tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="using.html#top">Next: Using mom</a></td>
+ </tr>
+</table>
+
+<h1 id="terms" class="docs">Definitions of terms used in this manual</h1>
+
+<p>
+I use a number of typesetting-specific and groff-specific terms
+throughout this documentation, as well as a few terms that apply
+to mom herself. To make life easier, I&#8217;ll explain
+them here. Refer back to this section should you encounter a word
+or concept you&#8217;re not familiar with.
+</p>
+
+<div class="rule-short" style="margin-top: 18px; margin-bottom: 28px;"><hr/></div>
+
+<div class="col-1-definitions">
+ <table class="definitions">
+ <tr><th class="definitions">Typesetting terms</th></tr>
+ <tr>
+ <td>
+ <a href="#ascender">Ascender</a><br/>
+ <a href="#baseline">Baseline</a><br/>
+ <a href="#ballotbox">Ballot box</a><br/>
+ <a href="#bullet">Bullet</a><br/>
+ <a href="#capheight">Cap-height</a><br/>
+ <a href="#descender">Descender</a><br/>
+ <a href="#discretionaryhyphen">Discretionary hyphen</a><br/>
+ <a href="#dropcap">Drop cap</a><br/>
+ <a href="#em">Em/en</a><br/>
+ <a href="#family">Family</a><br/>
+ <a href="#figurespace">Figure space/Digit space</a><br/>
+ <a href="#fixedwidthfont">Fixed width font</a><br/>
+ <a href="#fixedwidthspace">Fixed width space</a><br/>
+ <a href="#font">Font</a><br/>
+ <a href="#force">Force justify</a><br/>
+ <a href="#just">Justify/justification</a><br/>
+ <a href="#gutter">Gutter</a><br/>
+ <a href="#kern">Kerning</a><br/>
+ <a href="#kernunit">Kern Units</a><br/>
+ <a href="#leading">Lead/leading</a><br/>
+ <a href="#leader">Leaders</a><br/>
+ <a href="#ligatures">Ligature</a><br/>
+ <a href="#picaspoints">Picas/Points</a><br/>
+ <a href="#ps">Point Size</a><br/>
+ <a href="#quad">Quad</a><br/>
+ <a href="#rag">Rag</a><br/>
+ <a href="#shape">Shape</a><br/>
+ <a href="#solid">Solid/set solid</a><br/>
+ <a href="#trackkerning">Track kerning/Line kerning</a><br/>
+ <a href="#unbreakablespace">Unbreakable space</a><br/>
+ <a href="#weight">Weight</a><br/>
+ <a href="#wordspace">Word space</a><br/>
+ <a href="#xheight">x-height</a><br/>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<div class="col-2-definitions">
+ <table class="definitions">
+ <tr><th class="definitions">Groff terms</th></tr>
+ <tr>
+ <td>
+ <a href="#alias">Alias</a><br/>
+ <a href="#arguments">Arguments</a><br/>
+ <a href="#commentlines">Comment lines</a><br/>
+ <a href="#controllines">Control Lines</a><br/>
+ <a href="#filled">Filled lines</a><br/>
+ <a href="#inlines">Inline escapes</a><br/>
+ <a href="#inputline">Input line</a><br/>
+ <a href="#macros">Macros</a><br/>
+ <a href="#units">Machine units</a><br/>
+ <a href="#numericargument">Numeric argument</a><br/>
+ <a href="#outputline">Output line</a><br/>
+ <a href="#primitives">Primitives</a><br/>
+ <a href="#preprocessor">Pre-processor</a><br/>
+ <a href="#stringargument">String Argument</a><br/>
+ <a href="#unitofmeasure">Unit of measure</a><br/>
+ <a href="#zerowidthcharacter">Zero-width character</a><br/>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<div class="col-3-definitions">
+ <table class="definitions">
+ <tr><th class="definitions">Mom terms</th></tr>
+ <tr>
+ <td>
+ <a href="#baseline-grid">Baseline grid</a><br/>
+ <a href="#blockquote">Blockquote</a><br/>
+ <a href="#controlmacro">Control macro</a><br/>
+ <a href="#docheader">Docheader</a><br/>
+ <a href="#epigraph">Epigraph</a><br/>
+ <a href="#float">Float</a><br/>
+ <a href="#footer">Footer</a><br/>
+ <a href="#head">Head</a><br/>
+ <a href="#header">Header</a><br/>
+ <a href="#linebreak">Linebreak</a><br/>
+ <a href="#parahead">Paragraph head</a><br/>
+ <a href="#pdflink">PDF link</a><br/>
+ <a href="#pdfoutline">PDF outline</a><br/>
+ <a href="#quote">Quote</a><br/>
+ <a href="#running">Running text</a><br/>
+ <a href="#toggle">Toggle</a><br/>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<h3 id="typesetting-terms" class="docs">Typesetting terms</h3>
+<dl>
+ <dt id="ascender">Ascender</dt>
+ <dd>
+ The portion of a letter that extends above the bowl. For
+ example, the letters a, c, and e have no ascenders. The letters
+ b, d, and h do.
+ </dd>
+
+ <dt id="baseline">Baseline</dt>
+ <dd>
+ The imaginary line on which the bottoms of capital letters and
+ the bowls of lower case letters rest.
+ </dd>
+
+ <dt id="ballotbox">Ballot box</dt>
+ <dd>
+ An unfilled square, usually
+ <a href="#capheight">cap-height</a>
+ in size, typically placed beside items in a checklist.
+ </dd>
+
+ <dt id="bullet">Bullet</dt>
+ <dd>
+ A small, filled circle typically found beside items or points in
+ a list.
+ </dd>
+
+ <dt id="capheight">Cap-height</dt>
+ <dd>
+ The height of the tallest capital letter in a given
+ <a href="#font">font</a>
+ at the current
+ <a href="#ps">point size</a>.
+ </dd>
+
+ <dt id="descender">Descender</dt>
+ <dd>
+ The portion of a letter that extends beneath the
+ <a href="#baseline">baseline</a>
+ (j, q, y are letters with descenders).
+ </dd>
+
+ <dt id="discretionaryhyphen">Discretionary hyphen</dt>
+ <dd>
+ A symbol inserted between two syllables of a word that indicates
+ to a typesetting program the valid hyphenation points in the
+ word. Normally, if hyphenation is turned on, groff knows where
+ to hyphenate words. However, hyphenation being what it is
+ (in English, at any rate), groff doesn&#8217;t always get it right.
+ Discretionary hyphens make sure it does. In the event that the
+ word doesn&#8217;t need to be hyphenated at all, groff leaves them
+ alone. In groff, the discretionary hyphen is entered with
+ <kbd>\%</kbd> (i.e. a backslash followed by the percent sign).
+ </dd>
+
+ <dt id="dropcap">Drop cap</dt>
+ <dd>
+ A large, usually upper-case letter that introduces the first
+ paragraph of a document or section thereof. The top of the
+ drop cap usually lines up with the top of the first line of the
+ paragraph, and typically &#8220;drops&#8221; several lines lower.
+ Text adjacent to the drop cap is indented to the right of the
+ letter until the bottom of the drop cap is reached, at which
+ point text reverts to the left margin.
+ </dd>
+
+ <dt id="em">Em/en</dt>
+ <dd>
+ An em is a relative measurement equal to the width of the
+ letter M at a given
+ <a href="#ps">point size</a>
+ in a given
+ <a href="#font">font</a>.
+ Since most Ms are designed square, an em is usually (but
+ sometimes erroneously) considered to be the same size as the
+ current point size (i.e., if the point size of the type is 12,
+ one em equals 12 points). An en is equal to the width of a
+ letter N (historically 2/3 of an em, although groff treats an en
+ as 1/2 of an em). Typically, ems and ens are used to measure
+ indents, or to define the length of dashes (long hyphens).
+ </dd>
+
+ <dt id="family">Family</dt>
+ <dd>
+ The collective name by which a collection of
+ <a href="#font">fonts</a>
+ are known, e.g. Helvetica, Times Roman, Garamond.
+ </dd>
+
+ <dt id="figurespace">Figure space/Digit space</dt>
+ <dd>
+ A
+ <a href="#fixedwidthspace">fixed width space</a>
+ that has the width of one digit. Used for aligning numerals in,
+ say, columns or numbered lists. In groff, the figure space is
+ entered with <kbd>\0</kbd> (i.e. a backslash followed by a zero)
+ </dd>
+
+ <dt id="fixedwidthfont">Fixed-width font</dt>
+ <dd>
+ A family or font in which every character occupies exactly the
+ same amount of horizontal space on the line. Courier is the
+ best-known, if not the most elegant, fixed-width font.
+ </dd>
+
+ <dt id="fixedwidthspace">Fixed width space</dt>
+ <dd>
+ Equal to
+ <a href="#wordspace">word space</a>,
+ but does not expand or contract when text is
+ <a href="#just">justified</a>.
+ In groff, fixed width space is entered with
+ <kbd>\&lt;space&gt;</kbd> (i.e. a backslash followed by a space)
+ </dd>
+
+ <dt id="font">Font</dt>
+ <dd>
+ The specific
+ <a href="#weight">weight</a>
+ and
+ <a href="#shape">shape</a>
+ of type within a
+ <a href="#family">family</a>,
+ e.g. light, medium, bold (which are weights), and roman, italic,
+ condensed (which are shapes). By default, groff knows of four
+ fonts within its default set of families: R (medium roman), I
+ (medium italic), B (bold roman) and BI (bold italic).
+ Mom considerably extends this very basic list.
+ </dd>
+
+ <dt id="force">Force justify</dt>
+ <dd>
+ Sometimes, in
+ <a href="#just">justified</a>
+ text, a line needs to be broken short of the right margin.
+ Force justifying means telling a typesetting program (like
+ groff) that you want the line broken early AND that you want the
+ line&#8217;s word spacing stretched to force the line flush with the
+ right margin.
+ </dd>
+
+ <dt id="gutter">Gutter</dt>
+ <dd>
+ The vertical whitespace separating columns of type.
+ </dd>
+
+ <dt id="just">Justify/justification</dt>
+ <dd>
+ Lines of type are justified when they&#8217;re flush at both the left
+ and right margins. Justification is the act of making both
+ margins flush. Some people use the terms "left justified" and
+ "right justified" to mean type where only the left (or right)
+ margins align. I don&#8217;t. See
+ <a href="#quad">quad</a>.
+ </dd>
+
+ <dt id="kern">Kerning</dt>
+ <dd>
+ Moving pairs of letters closer together to remove excess
+ whitespace between them. In the days before phototypesetting,
+ type was set from small, rectangular blocks of wood or metal,
+ each block having exactly one letter. Because the edge of
+ each block determined the edge of each letter, certain letter
+ combinations (TA, for example) didn&#8217;t fit together well and had
+ to be mortised by hand to bring them visually closer. Modern
+ typesetting systems usually take care of kerning automatically,
+ but they&#8217;re far from perfect. Professional typesetters still
+ devote a lot of time to fitting letters and punctuation together
+ properly.
+ </dd>
+
+ <dt id="kernunit">Kern Units</dt>
+ <dd>
+ A relative distance, which, by default, is equal to 1/36 of the
+ current
+ <a href="#ps">point size</a>.
+ Used between individual letters for
+ <a href="#kern">kerning</a>.
+ Different typesetting systems use different values (1/54 is
+ popular), and sometimes call kern units by a different name.
+ It is possible to change the default size of the kern unit with the
+ <a href="inlines.html#kernunit">KERN_UNIT</a>
+ macro.
+ </dd>
+
+ <dt id="leading">Lead/leading</dt>
+ <dd>
+ The distance from the
+ <a href="#baseline">baseline</a>
+ of one line of type to the line of type immediately beneath
+ it. Pronounced "ledding." Also called line spacing. Usually
+ measured in
+ <a href="#picaspoints">points</a>.
+
+ <p>
+ <em>In case you&#8217;re interested...</em> In previous centuries,
+ lines of type were separated by thin strips of&mdash;you guessed
+ it&mdash;lead. Lines of type that had no lead between them were said
+ to be &#8220;set solid.&#8221; Once you began separating them with
+ strips of lead, they were said to be &#8220;leaded&#8221;, and the
+ spacing was expressed in terms of the number of
+ <a href="#picaspoints">points</a>
+ of lead. For this reason, &#8220;leading&#8221; and &#8220;line
+ spacing&#8221; aren&#8217;t, historically speaking, synonymous.
+ If type was set 10 on 12, for example, the leading was 2
+ points, not 12. Nowadays, however, the two terms are used
+ interchangeably to mean the distance from baseline to baseline.
+ </p>
+
+ </dd>
+
+ <dt id="leader">Leaders</dt>
+ <dd>
+ Single characters used to fill lines, usually to their end. So
+ called because they &#8220;lead&#8221; the eye from one element
+ of the page to another. For example, in the following (brief)
+ Table of Contents, the periods (dots) are leaders.
+
+ <span class="pre" style="margin-bottom: -2em;">
+ Foreword............... 2
+ Chapter 1.............. 5
+ Chapter 2.............. 38
+ Chapter 3.............. 60
+ </span>
+ </dd>
+
+ <dt id="ligatures">Ligature</dt>
+ <dd>
+ Ligatures are letters joined together to form a single
+ character. The commonest are fi, fl, ff, ffi and ffl. Others
+ are ae and oe. Occasionally, one sees an st ligature, but this
+ is archaic and quite rare.
+ </dd>
+
+ <dt id="picaspoints">Picas/Points</dt>
+ <dd>
+ There are twelve points in a pica, and six picas in an inch
+ (hence 72 points to the inch). In the same way that gem-dealers
+ have always used their own system of measurement for weight
+ (carats), typographers have always used their own system of
+ measurement for type.
+ </dd>
+
+ <dt id="ps">Point Size</dt>
+ <dd>
+ The nominal size of type, measured in
+ <a href="#picaspoints">points</a>
+ from the bottom of the longest
+ <a href="#descender">descender</a>
+ to the top of the highest
+ <a href="#ascender">ascender</a>.
+ In reality, type is always fractionally smaller than its point
+ size.
+ </dd>
+
+ <dt id="quad">Quad</dt>
+ <dd>
+ When only one margin of type is flush, lines of type are quadded
+ in the direction of the flush margin. Therefore, quad left
+ means the left margin is flush, the right isn&#8217;t. Quad right
+ means the right margin is flush, the left isn&#8217;t. Quad centre
+ means neither the left nor the right margin is flush; rather,
+ lines of type are quadded on both sides so that type appears
+ centred on the page.
+ </dd>
+
+ <dt id="rag">Rag</dt>
+ <dd>
+ Describes a margin that isn&#8217;t flush. Rag right means the right
+ margin isn&#8217;t flush. Rag left means the left margin isn&#8217;t flush.
+ The expression "flush left/rag right" is sometimes used to
+ describe type that is
+ <a href="#quad">quadded</a>
+ left.
+ </dd>
+
+ <dt id="shape">Shape</dt>
+ <dd>
+ The degree of slant and/or the width of characters.
+ (Technically speaking, this is not a proper typesetting term;
+ however, it may help clarify some concepts presented in these
+ documents.)
+
+ <p>
+ Some typical shapes are:
+ </p>
+
+ <ul style="margin-top: -.5em; margin-bottom: -.5em">
+ <li>Roman, which has no slant, and has letterforms of
+ average width</li>
+ <li>Italic, which is slanted, and has letterforms
+ of average width</li>
+ <li>Condensed, which has no slant, but has
+ letterforms narrower than the average represented by Roman</li>
+ <li>Condensed Italic, which is slanted, with letterforms narrower
+ than average</li>
+ </ul>
+
+ <p>
+ The term
+ <a href="#font">font</a>,
+ as it is used in these documents, refers to a combination of
+ <a href="#weight">weight</a>
+ and shape.
+ </p>
+
+ </dd>
+
+ <dt id="solid">Solid/set solid</dt>
+ <dd>
+ When no
+ <a href="#leading">lead</a>
+ is added between lines of type (i.e., the
+ <a href="#ps">point size</a>
+ and linespacing are the same), the lines are said to be &#8220;set
+ solid.&#8221;
+ </dd>
+
+ <dt id="trackkerning">Track kerning/Line kerning</dt>
+ <dd>
+ Sometimes, it&#8217;s advantageous to increase or decrease the amount
+ of space between every letter in a line by an equal (usually
+ small) amount, in order to fit more (or fewer) characters on the
+ line. The correct term is letter spacing, but track kerning and
+ line kerning (and sometimes, just "kerning") have come to mean
+ the same thing.
+ </dd>
+
+ <dt id="unbreakablespace">Unbreakable space</dt>
+ <dd>
+ Equal to
+ <a href="#wordspace">word space</a>,
+ however words separated by an unbreakable space will always be
+ kept together on the same line. Expands and contracts like word
+ space. Useful for proper names, which one should, whenever
+ possible, avoid splitting onto two lines. In groff, unbreakable
+ space is entered with <kbd>\~</kbd> (i.e. a backslash followed by a
+ tilde)
+ </dd>
+
+ <dt id="weight">Weight</dt>
+ <dd>
+ The thickness of the strokes of letterforms. Medium and Book
+ have average thicknesses and are the weights used for most
+ of the text in books, magazines, newspapers, etc. Light has
+ strokes slightly thinner than Medium or Book, but is still
+ acceptable for most text. Semibold, Bold, Heavy and Black all
+ have strokes of increasing thickness, making them suitable for
+ headings and the like.
+ </dd>
+
+ <dt id="wordspace">Word space</dt>
+ <dd>
+ The amount of whitespace between words. When text is
+ <a href="#just">justified</a>,
+ word space expands or contracts to make the margins flush.
+ </dd>
+
+ <dt id="xheight">x-height</dt>
+ <dd>
+ The height of a lower case letter x in a given font at a given
+ point size. Generally used to mean the average height of the
+ bowl of lower case letters.
+ </dd>
+</dl>
+
+<h3 id="groff-terms" class="docs">Groff terms</h3>
+
+<dl>
+ <dt id="alias">Alias</dt>
+ <dd>
+ A
+ <a href="#macros">macro</a>
+ invoked by a name different from its &#8220;official&#8221;
+ name. For example, the official name of the macro to change
+ <a href="#family">family</a>
+ is <kbd>FAMILY</kbd>. Its alias is <kbd>FAM</kbd>.
+ Aliases may be created for any macro (via the
+ <a href="goodies.html#alias"><kbd>ALIAS</kbd></a>
+ macro) provided the alias uses a name not already taken by the
+ mom macros or one of the groff
+ <a href="#primitives">primitives</a>.
+ For a complete list of words or names you must not use, see the
+ <a href="reserved.html#reserved">list of reserved words</a>.
+ </dd>
+
+ <dt id="arguments">Arguments</dt>
+ <dd>
+ Parameters or information needed by a
+ <a href="#macros">macro</a>
+ to do its job. For example, in the macro
+
+ <span class="pre" style="margin-bottom: -2em;">
+ .PT_SIZE 12
+ </span>
+
+ <kbd>12</kbd> is the argument. In the macro
+
+ <span class="pre" style="margin-bottom: -2em;">
+ .QUAD LEFT
+ </span>
+
+ <kbd>LEFT</kbd> is the argument. Arguments are separated from
+ macros by spaces. Some macros require several arguments; each
+ is separated by a space.
+ </dd>
+
+ <dt id="commentlines">Comment Lines</dt>
+ <dd>
+ <a href="#inputline">Input lines</a>
+ introduced with the comment character <kbd>\#</kbd> (i.e. a
+ backslash followed by the pound sign). When processing output,
+ groff silently ignores everything on a line that begins with the
+ comment character.
+ </dd>
+
+ <dt id="controllines">Control Lines</dt>
+ <dd>
+ Instructions to groff that appear on a line by themselves, which
+ means that &#8220;control lines&#8221; are either
+ <a href="#macros">macros</a>
+ or groff
+ <a href="#primitives">primitives</a>.
+ Control lines begin with a period or, occasionally, an apostrophe.
+ </dd>
+
+ <dt id="filled">Filled lines/fill mode</dt>
+ <dd>
+ Automatic
+ <a href="#just">justification</a>
+ or
+ <a href="#quad">quadding</a>.
+ In fill mode, the ends of lines as they appear in your text
+ editor are ignored. Instead, words from adjoining
+ <a href="#inputline">input lines</a>
+ are added one at a time to the output line until no more words
+ fit. Then, depending whether text is to be
+ <a href="#just">justified</a>
+ or
+ <a href="#quad">quadded</a>
+ (left, right, or centre), and depending on whether automatic
+ hyphenation is turned on, groff attempts to hyphenate the last
+ word, or, barring that, spreads and breaks the line (when
+ justification is turned on) or breaks and quads the line (when
+ quadding is turned on).
+
+ <p id="no-fill">
+ Nofill mode (non-filled text) means that groff respects the ends
+ of lines exactly as they appear in your text editor.
+ </p>
+
+ </dd>
+
+ <dt id="inlines">Inline escapes</dt>
+ <dd>
+ Instructions issued to groff that appear as part of an
+ <a href="#inputline">input line</a>
+ (as opposed to
+ <a href="#macros">macros</a>,
+ which must appear on a line by themselves). Inline escapes are
+ always introduced by the backslash character. For example,
+
+ <span class="pre" style="margin-bottom: -2em;">
+ A line of text with the word T\*[BU 2]oronto in it
+ </span>
+
+ contains the inline escape <kbd>\*[BU 2]</kbd> (which means
+ &#8220;move the letter &#8216;o&#8217; 2
+ <a href="#kernunit">kern units</a>
+ closer to the letter &#8216;T&#8217;&#8221;).
+
+ <p style="margin-bottom: -2em;">
+ Mom&#8217;s inline escapes always take the form
+ <kbd>\*[&lt;ESCAPE&gt;]</kbd>, where <kbd>ESCAPE</kbd> is
+ composed of capital letters, sometimes followed immediately by a
+ digit, sometimes followed by a space and a
+ <a href="#numericargument">numeric argument</a>.
+ Groff&#8217;s escapes begin with the backslash
+ character but typically have no star and are in lower case. For
+ example, the mom escapes to move forward 6
+ points on a line are either
+
+ <span class="pre" style="margin-bottom: -2em;">
+ \*[FP6]&nbsp;&nbsp;or&nbsp;&nbsp;\*[FWD 6p]
+ </span>
+
+ while the groff escape for the same thing is
+
+ <span class="pre" style="margin-bottom: -2em;">
+ \h&#8217;6p&#8217;
+ </span>
+ </p>
+
+ </dd>
+
+ <dt id="inputline" style="margin-top: -1em;">Input line</dt>
+ <dd>
+ A line of text as it appears in your text editor.
+ </dd>
+
+ <dt id="macros">Macros</dt>
+ <dd>
+ Instructions embedded in a document that determine how groff
+ processes the text for output. mom&#8217;s macros
+ always begin with a period, on a line by themselves, and must
+ be typed in capital letters. Typically, macros contain complex
+ commands issued to groff&mdash;behind the scenes&mdash;via
+ groff
+ <a href="#primitives">primitives</a>.
+ </dd>
+
+ <dt id="units">Machine units</dt>
+ <dd>
+ A machine unit is 1/1000 of a
+ <a href="#picaspoints">point</a>
+ when the groff device is ps. (&#8220;ps&#8221; means
+ &#8220;PostScript&#8221;&mdash;the default device for
+ which groff prepares output, and the device for which
+ mom was originally designed.)
+ </dd>
+
+ <dt id="numericargument">Numeric argument</dt>
+ <dd>
+ An
+ <a href="#arguments">argument</a>
+ that has the form of a digit. Numeric arguments can be built
+ out of arithmetic expressions using +, -, *, and / for plus,
+ minus, times, and divided-by respectively. If a numeric
+ argument requires a
+ <a href="#unitofmeasure">unit of measure</a>,
+ a unit of measure must be appended to <em>every</em> digit in
+ the argument. For example:
+
+ <span class="pre" style="margin-bottom: -2em;">
+ .ALD 1i-1v
+ </span>
+
+ <div class="box-important" style="margin-right: 2.5em;">
+ <p class="tip">
+ <span class="important">IMPORTANT:</span> groff does not
+ respect the order of operations, but rather evaluates
+ arithmetic expressions from left to right. Parentheses must
+ be used to circumvent this peculiarity. Not to worry, though.
+ The likelihood of more than just the occasional plus or minus
+ sign when using mom&#8217;s macros is slim.
+ </p>
+ </div>
+ </dd>
+
+ <dt id="outputline">Output line</dt>
+ <dd>
+ A line of text as it appears in output copy.
+ </dd>
+
+ <dt id="preprocessor">Pre-processor</dt>
+ <dd>
+ Pre-processors are used by groff to generate tables
+ (<strong>tbl</strong>), diagrams (<strong>pic</strong>), graphs
+ (<strong>grap</strong>), and equations (<strong>eqn</strong>).
+ These pre-processors are fully supported by mom. In addition,
+ the &#8220;refer&#8221; pre-processor is used to generate
+ bibliographies and lists of cited works. The PDF_IMAGE macro,
+ which allows insertion of graphics into a document, is not
+ strictly a pre-processor but behaves similarly to tbl, pic, and
+ eqn.
+ </dd>
+
+ <dt id="primitives">Primitives</dt>
+ <dd>
+ The lowercase instructions, introduced with a period, that groff
+ uses as its native command language, and out of which macros
+ are built. The majority of groff&#8217;s primitive requests are two
+ letters long.
+ </dd>
+
+ <dt id="stringargument">String Argument</dt>
+ <dd>
+ Technically, any
+ <a href="#arguments">argument</a>
+ that is not numeric. In this documentation, string argument
+ means an argument that requires the user to input text. For
+ example, in the
+ <a href="#macros">macro</a>
+
+ <span class="pre" style="margin-bottom: -2em;">
+ .TITLE "My Pulitzer Novel"
+ </span>
+
+ <kbd>"My Pulitzer Novel"</kbd> is a string argument.
+
+ <p>
+ Because string arguments must be enclosed by double-quotes, you
+ can&#8217;t use double-quotes as part of the string argument. If you
+ need double-quotes to be part of a string argument, use the
+ <a href="#inlines">inline escapes</a>
+ <kbd>\(lq</kbd> and <kbd>\(rq</kbd> (leftquote and
+ rightquote respectively) in place of the double-quote character
+ (<kbd>"</kbd>).
+ </p>
+
+ </dd>
+
+ <dt id="unitofmeasure">Unit of measure</dt>
+ <dd>
+ The single letter after a
+ <a href="#numericargument">numeric argument</a>
+ that tells mom what measurement scale the
+ argument should use. Common valid units are:
+
+ <span class="pre" style="margin-bottom: -2em;">
+ i (inches)
+ p (points)
+ P (Picas)
+ c (centimetres)
+ m (ems)
+ n (ens)
+ u (machine units)
+ v (the current leading [line space])
+ </span>
+
+ <p style="margin-top: -1em;">
+ Units of measure must come immediately after the numeric
+ argument (i.e. with no space between the argument and the unit
+ of measure), like this:
+
+ <span class="pre" style="margin-bottom: -2em;">
+ .ALD 2v
+ .LL 39P
+ .IL 1i
+ </span>
+
+ The above example advances 2 line spaces and sets the line
+ length to 39 picas with a left indent of 1 inch.
+ </p>
+
+ <div class="box-important" style="margin-right: 2.5em;">
+ <p class="tip">
+ <span class="important">IMPORTANT:</span>
+ Most mom macros that set the size or measure of something must
+ be given a unit of measure since most of the macros do not have
+ default units of measure. There are a couple of exceptions,
+ the most notable of which are <kbd>PT_SIZE</kbd> and
+ <kbd class="bold">LS</kbd>. Both use
+ <a href="#picaspoints">points</a>
+ as the default unit of measure, which means you don&#8217;t have to
+ append &#8220;p&#8221; to their argument.
+ </p>
+ </div>
+
+ <p>
+ You can enter decimal values for any unit of measure. Different
+ units may be combined by adding them together (e.g. 1.5i+2m,
+ which gives a measure of 1-1/2 inches plus 2 ems).
+ </p>
+
+ <div class="box-tip" style="margin-right: 2.5em;">
+ <p class="tip">
+ <span class="note">Note:</span>
+ a pica is composed of 12 points, therefore 12.5 picas is 12
+ picas and 6 points, not 12 picas and 5 points. If you want 12
+ picas and 5 points, you have to enter the measure as 12P+5p.
+ </p>
+ </div>
+
+ </dd>
+
+ <dt id="zerowidthcharacter">Zero-width character</dt>
+ <dd>
+ The
+ <a href="#inlines">inline escape</a>
+ that allows you to print a literal period, apostrophe and, if
+ <a href="#outputline">output lines</a>
+ are
+ <a href="#filled">filled</a>,
+ a space that falls at the beginning of an
+ <a href="#inputline">input line</a>.
+ It looks like this:
+
+ <span class="pre" style="margin-bottom: -2em;">
+ \&amp; <span style="font-family: arial, sans-serif; font-weight: normal">(i.e. a backslash followed by an ampersand)</span>
+ </span>
+
+ Normally, groff interprets a period (or an apostrophe) at the
+ beginning of an input line as meaning that what follows is a
+ <a href="#controllines">control line</a>.
+ In fill modes, groff treats a space at the beginning of an input
+ line as meaning &#8220;start a new line and put a space at the
+ beginning of it.&#8221; If you want groff to interpret periods
+ and apostrophes at the beginning of input lines literally (i.e.
+ to print them), or spaces at the beginning of input lines as just
+ garden variety word spaces, you must start the line with the
+ zero-width character.
+ </dd>
+</dl>
+
+<h3 id="mom-terms" class="docs">Mom terms</h3>
+<dl>
+ <dt id="baseline-grid">Baseline grid</dt>
+ <dd>
+ Virtual guide lines spaced according to the
+ <a href="#leading">leading</a>
+ established for running text. Adherence to the grid ensures that
+ text fills the page completely to the bottom margin. Uncorrected
+ deviations from the grid result in bottom margins that fall short.
+ </dd>
+
+ <dt id="controlmacro">Control macro</dt>
+ <dd>
+ Macros used in
+ <a href="docprocessing.html#docprocessing">document processing</a>
+ to control/alter the appearance of document elements (e.g.
+ headings, quotes, footnotes,
+ <a href="#header">headers</a>,
+ etc.).
+ </dd>
+
+ <dt id="docheader">Document header/docheader</dt>
+ <dd>
+ Document information (title, subtitle, author, etc) output at
+ the top of page one.
+ </dd>
+
+ <dt id="epigraph">Epigraph</dt>
+ <dd>
+ A short, usually cited passage that appears at the beginning of
+ a chapter, story, or other document.
+ </dd>
+
+ <dt id="float">Float</dt>
+ <dd>
+ A float is material intended to be kept together as a block.
+ Floated material that fits on a page in position is output on that
+ page. Floats that do not fit in position are deferred to the top
+ of the next page.
+ </dd>
+
+ <dt id="footer">Footer/page footer</dt>
+ <dd>
+ Document information (frequently author and title) output in
+ the bottom margin of pages after page one. Not to be
+ confused with footnotes, which are considered part of
+ <a href="#running">running text</a>.
+ </dd>
+
+ <dt id="head">Heading</dt>
+ <dd>
+ The title used to identify a section of a document. Headings
+ are hierarchic, corresponding to the notion of head, subhead,
+ subsubhead, etc.
+ </dd>
+
+ <dt id="header">Header/page header</dt>
+ <dd>
+ Document information (frequently author and title) output in the
+ top margin of pages after page one.
+
+ <div class="box-tip" style="margin-right: 2.5em;">
+ <p class="tip">
+ <span class="note">Note:</span> In terms of content and style,
+ headers and
+ <a href="#footer">footers</a>
+ are the same; they differ only in their placement on the page.
+ In most places in this documentation, references to the content
+ or style of headers applies equally to footers.
+ </p>
+ </div>
+
+ </dd>
+
+ <dt id="linebreak">Linebreak/author linebreak</dt>
+ <dd>
+ A gap in the vertical flow of
+ <a href="#running">running text</a>,
+ frequently set off by typographic symbols such as asterisks or
+ daggers. Used to indicate a shift in the content of a document
+ (e.g. a scene change in a short story). Also commonly called a
+ scene break or a section break.
+ </dd>
+
+ <dt id="parahead">Paragraph head</dt>
+ <dd>
+ A heading joined to the body of a paragraph.
+ </dd>
+
+ <dt id="pdflink">PDF link</dt>
+ <dd>
+ A portion of text that, when clicked on in a PDF viewer,
+ navigates to a bookmarked location in a document, generally but not
+ exclusively a heading. PDF links are usually coloured to make
+ them stand out from the surrounding text.
+ </dd>
+
+ <dt id="pdfoutline">PDF outline</dt>
+ <dd>
+ The hierarchically-arranged navigation outline provided by most PDF
+ viewers (e.g. Okular, Evince), typically in a panel to the left of
+ the document window, and usually labelled &#8220;Contents&#8221;.
+ </dd>
+
+ <dt id="quote">Quote</dt>
+ <dd>
+ A quote, to mom, is a line-for-line setting
+ of quoted material (e.g. poetry, song lyrics, or a snippet of
+ programming code). You don&#8217;t have to use
+ <a href="typesetting.html#br"><kbd>BR</kbd></a>
+ with quotes.
+ </dd>
+
+ <dt id="running">Running text</dt>
+ <dd>
+ In a document formatted with mom, running
+ text means text that forms the body of the document, including
+ elements such as headings.
+ <a href="#docheader">Docheaders</a>,
+ <a href="#header">headers</a>,
+ <a href="#footer">footers</a>
+ and page numbers are not part of running text.
+ </dd>
+
+ <dt id="toggle">Toggle</dt>
+ <dd>
+ A macro or tag that, when invoked without an argument, begins
+ something or turns a feature on, and, when invoked with ANY
+ argument, ends something or turns a feature off. See
+ <a href="intro.html#toggle-example">Example 3</a>
+ of the section
+ <a href="intro.html#macro-args">How to read macro arguments</a>.
+ </dd>
+</dl>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+ <tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="using.html#top">Next: Using mom</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/docelement.html b/contrib/mom/momdoc/docelement.html
new file mode 100644
index 0000000..43f79d4
--- /dev/null
+++ b/contrib/mom/momdoc/docelement.html
@@ -0,0 +1,6639 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document processing, element tags</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="images.html#top">Next: Graphics, floats, preprocessor support</a></td>
+</tr>
+</table>
+
+<h1 class="docs">The document element tags</h1>
+
+<div style="width: 460px; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#docelement-intro">Introduction to the document element tags</a></li>
+ <li><a href="#docelement-control">Control macros &ndash; changing the tag defaults</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#control-macro-args">Arguments to the control macros</a>
+ <ul style="margin-left: -.5em; list-style-type: circle;">
+ <li><a href="#family-and-font">family and font</a></li>
+ <li><a href="#point-size">point size</a></li>
+ <li><a href="#color">colour</a></li>
+ <li><a href="#quad">quad/justification</a></li>
+ <li><a href="#underline">underline style, rule weight</a></li>
+ </ul></li>
+ <li><a href="#grouping">Grouping control macros</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="toc-doc-element" class="docs" style="text-align: center;">Document element tags table of contents</h2>
+
+<div id="docelement-mini-toc" style="font-size: 100%; line-height: 150%; margin-top: .5em;">
+<div class="mini-toc-col-1" style="margin-left: 0;">
+<h3 class="toc toc-docproc-header" style="margin-top: 1em;"><a class="header-link" href="#epigraph-intro">Epigraphs</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#epigraph">EPIGRAPH</a></li>
+ <li><a href="#epigraph-control">Epigraph control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#pp-intro">Paragraphs</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#pp">PP</a></li>
+ <li><a href="#pp-control">Paragraph control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#heading-intro">Headings</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#heading">HEADING</a></li>
+ <li><a href="#heading-control">Heading control</a></li>
+ <li><a href="#oldstyle-headings-intro">Oldstyle headings</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#linebreak-intro">Linebreaks (section breaks)</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#linebreak">LINEBREAK</a></li>
+ <li><a href="#linebreak-control">Linebreak control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#quote-intro">Quotes (line for line; poetry or code)</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#quote">QUOTE</a></li>
+ <li><a href="#quote-control">Quote control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#blockquote-intro">Blockquotes (cited material)</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#blockquote">BLOCKQUOTE</a></li>
+ <li><a href="#blockquote-control">Blockquote control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#code-intro">Inserting code snippets</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#code">CODE</a></li>
+ <li><a href="#code-control">Code control</a></li>
+</ul>
+</div>
+<div class="mini-toc-col-2" style="margin-top: 1.5em;">
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#list-intro">Nested lists</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#list">LIST</a></li>
+ <li><a href="#item">ITEM</a></li>
+ <li><a href="#list-control">List control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#number-lines-intro">Line numbering</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#number-lines">NUMBER_LINES</a></li>
+ <li><a href="#number-lines-control">Line numbering control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#footnote-intro">Footnotes</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#footnote">FOOTNOTE</a></li>
+ <li><a href="#footnote-control">Footnote control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#endnote-intro">Endnotes</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#endnote">ENDNOTE</a></li>
+ <li><a href="#endnote-control">Endnote control</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#margin-notes-intro">Margin notes</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#mn-init">MN_INIT (set margin notes parameters)</a></li>
+ <li><a href="#mn">MN</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#finis-intro">Document termination string</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#finis">FINIS</a></li>
+ <li><a href="#finis-control">Finis control</a></li>
+</ul>
+</div>
+</div>
+
+<div class="rule-medium" style="clear: both;"><hr/></div>
+
+<h2 id="docelement-intro" class="docs">Introduction to the document element tags</h2>
+
+<p>
+Once you&#8217;ve completed the setup for a document (see
+<a href="docprocessing.html#docprocessing-tut">Setting up a mom document</a>),
+formatting it is a snap. Simply invoke the appropriate tag for
+each document element as you need it. The tags are macros that
+tell mom: &#8220;This is a paragraph; this is a heading; this is a
+footnote,&#8221; and so on.
+</p>
+
+<p>
+Generally, for each tag, there are
+<a href="definitions.html#controlmacro">control macros</a>
+for the tag&#8217;s family, font and point size. Where appropriate,
+there are macros to control leading, indents, quad and special
+features as well.
+Mom has tasteful defaults for all the tags, hence you only use the
+control macros when you want to change the way she does things.
+This is usually done prior to
+<a href="docprocessing.html#start">START</a>,
+but can, in fact, be done at any time in the course of a document.
+Any change to a tag&#8217;s style affects all subsequent invocations
+of the tag.
+</p>
+
+<h2 id="docelement-control" class="docs">Control macros &ndash; changing the tag defaults</h2>
+
+<p>
+The control macros for document processing tags let you design the
+look of all the parts of your documents&mdash;should you wish. At
+a bare minimum, all tags have macros to change mom&#8217;s defaults
+for family, font, point size and colour. Where appropriate, there
+are macros to control leading, indents and quad as well.
+</p>
+
+<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 with any particular tag to find out what macros control the
+tag, and what mom&#8217;s defaults for the tag are.
+</p>
+
+<p>
+The control macros may be used at any time during the course of a
+document (i.e. before or after
+<a href="docprocessing.html#start">START</a>).
+The changes you make alter all subsequent invocations of the
+affected tag until you make another change, either by passing new
+arguments to the tag&#8217;s control macro, or toggling a particular
+feature of the tag on or off.
+</p>
+
+<p>
+And don&#8217;t forget: the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+can be used at any time, including inside
+<a href="definitions.html#toggle">toggle</a>
+tags (affecting only that particular invocation of the tag).
+Equally,
+<a href="definitions.html#inlines">inline escapes</a>
+can be used in tags that take
+<a href="definitions.html#stringargument">string arguments.</a>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+Get familiar with mom at her default settings before exploring the
+control macros. Put her through her paces. See how she behaves.
+Get to know what she feels like and how she looks, both in your
+text editor and on the printed page. Then, if you don&#8217;t like
+something, use this documentation to find the precise macro you need
+to change it. There are tons of control macros. Reading up on them
+and trying to remember them all might lead you to think that mom is
+complex and unwieldy, which is not only untrue, but would offend her
+mightily.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip-top">
+<span class="important">Important:</span>
+The family, font, point size, colour and leading control macros have
+no effect in
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
+except where noted throughout this documentation.
+</p>
+
+<p class="tip-bottom">
+Please also note that the defaults listed with the control macros
+apply only to
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+unless a default for <kbd>TYPEWRITE</kbd> is also given.
+</p>
+</div>
+
+<h3 id="control-macro-args" class="docs">Arguments to the control macros</h3>
+
+<h4 id="family-and-font" class="docs" style="margin-top: 1em; margin-bottom: -.75em;">Family and font</h4>
+
+<p>
+The arguments to the control macros that end in _FAMILY or _FONT are
+the same as for
+<a href="typesetting.html#family">FAMILY</a>
+and
+<a href="typesetting.html#font">FT</a>.
+</p>
+
+<h4 id="point-size" class="docs" style="margin-top: -.5em; margin-bottom: -.75em;">Point size</h4>
+
+<p>
+Control macros that end in _SIZE always take
+the form <kbd>+&lt;n&gt;</kbd> or <kbd>-&lt;n&gt;</kbd> where
+&lt;n&gt; is the number of
+<a href="definitions.html#picaspoints">points</a>
+larger (+) or smaller (-) than the point size of paragraphs
+you want the document element to be. For example, to set
+blockquotes 2 points smaller than the type in paragraphs, do
+<br/>
+<span class="pre-in-pp">
+ .BLOCKQUOTE_SIZE -2
+</span>
+There&#8217;s no need for a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+with the _SIZE control macros; points is assumed.
+</p>
+
+<h4 id="color" class="docs" style="margin-top: -.5em; margin-bottom: -.75em;">Colour</h4>
+
+<p>
+Control macros that end in _COLOR take as their argument a colour
+name pre-defined (or &#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+For example, if you want your
+<a href="#linebreak">author linebreaks</a>
+to be red, once you&#8217;ve defined or initialized the colour, red,
+<br/>
+<span class="pre-in-pp">
+ .LINEBREAK_COLOR red
+</span>
+will turn them red.
+</p>
+
+<h4 id="lead" class="docs" style="margin-top: -.5em; margin-bottom: -.75em;">Lead / linespacing</h4>
+
+<p>
+Control macros that end in _AUTOLEAD take the same argument as
+<a href="typesetting.html#autolead">AUTOLEAD</a>,
+<i>viz.</i> a digit that represents the number of points to add to
+the tag&#8217;s point size to arrive at its
+<a href="definitions.html#leading">leading</a>.
+For example, to set footnotes
+<a href="definitions.html#solid">solid</a>, do
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_AUTOLEAD 0
+</span>
+To set footnotes with a 1-point lead (i.e. with the line spacing
+one point greater than the footnote&#8217;s point size), do
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_AUTOLEAD 1
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1.25em;">
+<p class="tip">
+<span class="note">Note:</span>
+_AUTOLEAD control macros do not have a <kbd>FACTOR</kbd> argument.
+</p>
+</div>
+
+
+<h4 id="control-indents" class="docs" style="margin-top: -.75em; margin-bottom: -.75em;">Indents</h4>
+
+<p>
+Except for
+<a href="#para-indent">PARA_INDENT</a>,
+the argument to control macros that end in _INDENT can take
+either a single numeral (whole numbers only, no decimal fractions)
+<i>without</i> a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it, or a digit (including decimal fractions) <i>with</i>
+a unit of measure appended.
+</p>
+
+<p>
+A digit <i>without</i> a unit of measure appended represents by
+how much you want your paragraph first-line indents (set with
+PARA_INDENT) multiplied to achieve the correct indent for a
+particular tag. For example,
+<br/>
+<span class="pre-in-pp">
+ .PARA_INDENT 2m
+ .BLOCKQUOTE_INDENT 2
+</span>
+means that blockquotes will be indented from the left and right
+margins by twice the size of the paragraph indent, or 4
+<a href="definitions.html#em">ems</a>.
+</p>
+
+<p>
+A digit <i>with</i> a unit of measure appended defines an absolute
+indent, relative to nothing. In the following, blockquotes will be
+indented by 3
+<a href="definitions.html#picaspoints">picas</a>
+and 6
+<a href="definitions.html#picaspoints">points</a>,
+regardless of the paragraph indent.
+<br/>
+<span class="pre-in-pp">
+ .PARA_INDENT 2m
+ .BLOCKQUOTE_INDENT 3P+6p
+</span>
+</p>
+
+<h4 id="quad" class="docs" style="margin-top: -1em; margin-bottom: -.75em;">Quad / justification style</h4>
+
+<p>
+Control macros that end in _QUAD take the same arguments as
+<a href="typesetting.html#quad">QUAD</a>.
+</p>
+
+<h4 id="underscore" class="docs" style="margin-bottom: -.75em;">Underscore style, rule weight</h4>
+
+<p>
+If mom gives the option to underscore a document element, the weight
+of the underline and its distance from the
+<a href="definitions.html#baseline">baseline</a>
+are controlled by macros that end in _UNDERSCORE or _UNDERLINE, the
+two being synonymous. These macros take the following arguments:
+<br/>
+<span class="pre-in-pp">
+ DOUBLE - double underscore
+ &lt;weight&gt; - the underscore weight (in points, no unit of measure required
+ &lt;distance&gt; - distance from baseline (unit of measure required)
+ &lt;rule gap&gt; - distance between double underscore rules (unit of measure required)
+</span>
+<kbd>DOUBLE</kbd> by itself will double-underscore the element. The
+remaining arguments must be entered in the order given. You may not
+skip over any of them, which means that if you only wish to change
+<kbd>&lt;rule gap&gt;</kbd>, you must still enter a
+<kbd>&lt;weight&gt;</kbd> and <kbd>&lt;distance&gt;</kbd> argument.
+</p>
+
+<p>
+Page elements that are separated from
+<a href="definitions.html#running">running text</a>
+by a rule (i.e. page headers, page footers, and footnotes) are
+controlled by macros that end in _RULE_WEIGHT.
+</p>
+
+<p>
+The weight argument to _UNDERSCORE macros is the same as the
+argument to
+<a href="inlines.html#rule-weight">RULE_WEIGHT</a>,
+as is the argument to _RULE_WEIGHT macros.
+</p>
+
+<h3 id="grouping" class="docs">Grouping control macros</h3>
+
+<p>
+As of version 2.1, it is possible to group control macros for a
+particular tag into a single <kbd>&lt;element&gt;_STYLE</kbd> macro.
+For example, rather than setting the family, size, and indent of
+<a href="#blockquote-intro">BLOCKQUOTES</a>
+with
+<br/>
+<span class="pre-in-pp">
+ .BLOCKQUOTE_FAMILY H
+ .BLOCKQUOTE_SIZE -2
+ .BLOCKQUOTE_INDENT 4P
+</span>
+you can enter the same style parameter changes with
+<br/>
+<span class="pre-in-pp">
+ .BLOCKQUOTE_STYLE \
+ FAMILY H \
+ SIZE -2 \
+ INDENT 4P
+</span>
+<kbd>&lt;element&gt;_STYLE</kbd> macros use
+&#8220;keyword/value&#8221; pairs (<kbd>FAMILY</kbd> is a keyword,
+<kbd>H</kbd> is a value), and may be entered entirely on one line,
+or, as the example shows, broken into several readable lines using
+the backslash. The macro itself and all but the last keyword/value
+pair require the backslash when this style is used.
+</p>
+
+<p>
+Not all the control macros for a particular tag may be available
+with an <kbd>&lt;element&gt;_STYLE</kbd> macro. Generally speaking,
+though, if a tag has control macros for
+</p>
+<table style="font-family: monospace; font-weight: bold; margin-left: 5em; margin-top: -1em">
+ <tr>
+ <td style="padding-right: 1em">FAMILY</td>
+ <td style="padding-right: 1em">LEAD</td>
+ <td style="padding-right: 1em">INDENT</td>
+ <td style="padding-right: 1em">SMALLCAPS</td>
+ </tr>
+ <tr>
+ <td style="padding-right: 1em">FONT</td>
+ <td style="padding-right: 1em">AUTOLEAD</td>
+ <td style="padding-right: 1em">COLOR</td>
+ <td style="padding-right: 1em">UNDERSCORE or UNDERLINE</td>
+ </tr>
+ <tr>
+ <td style="padding-right: 1em">SIZE</td>
+ <td style="padding-right: 1em">QUAD</td>
+ <td style="padding-right: 1em">CAPS</td>
+ </tr>
+</table>
+<p style="margin-top: .5em">
+those parameters may be used within an
+<kbd>&lt;element&gt;_STYLE</kbd> macro.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you need to reverse the sense of <kbd>CAPS</kbd>,
+<kbd>SMALLCAPS</kbd> or <kbd>UNDERSCORE/UNDERLINE</kbd>, which
+do not take a value after the keyword, use <kbd>NO_CAPS</kbd>,
+<kbd>NO_SMALLCAPS</kbd>, and <kbd>NO_UNDERSCORE/NO_UNDERLINE</kbd>.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="epigraph-intro" class="macro-group">Epigraphs</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#epigraph">Tag: EPIGRAPH</a></li>
+ <li><a href="#epigraph-control">Epigraph control macros and defaults</a></li>
+</ul>
+
+<p>
+<a href="definitions.html#epigraph">Epigraphs</a>
+colour, flavour, or comment on the document they precede.
+Typically, they are centred at the top of a document&#8217;s first page
+(underneath the title) and set in a smaller point size than that of
+paragraph text.
+</p>
+
+<p>
+By default, mom sets epigraphs centred and
+<a href="definitions.html#filled">unfilled</a>;
+this lets you input them on a line for line basis. This behaviour
+can be changed to accommodate
+<a href="definitions.html#filled">filled</a>
+epigraph &#8220;blocks.&#8221;
+</p>
+
+<!-- -EPIGRAPH- -->
+
+<div class="macro-id-overline">
+<h3 id="epigraph" class="macro-id">EPIGRAPH</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>EPIGRAPH</b> <kbd class="macro-args">&lt;toggle&gt; | [ BLOCK ]</kbd>
+</div>
+
+<p>
+EPIGRAPH is a toggle, used like this:
+<br/>
+<span class="pre-in-pp">
+ .EPIGRAPH
+ &lt;text of epigraph&gt;
+ .EPIGRAPH OFF
+</span>
+<kbd>OFF</kbd>, above, could be anything&mdash;say, <kbd>Q</kbd> or
+<kbd>X</kbd>&mdash;since any argument other than <kbd>BLOCK</kbd>
+turns it off.
+</p>
+
+<p>
+If given the argument, <kbd>BLOCK</kbd>, EPIGRAPH sets epigraphs
+<a href="definitions.html#filled">filled</a>,
+justified or quadded in the same direction as paragraphs, indented
+equally from both the left and right margins.
+</p>
+
+<p>
+If a block-style epigraph runs to more than one paragraph (unlikely,
+but conceivable), you must introduce every paragraph&mdash;including
+the first&mdash;with the
+<a href="#pp">PP</a>
+tag.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+EPIGRAPH should only be used at the top of a document (i.e. just
+after
+<a href="docprocessing.html#start">START</a>)
+or after headings. The latter is not especially recommended, but it
+does work. In all other places where you want quotes or cited text,
+use
+<a href="#quote">QUOTE</a>
+or
+<a href="#blockquote">BLOCKQUOTE</a>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tips on vertical spacing around epigraphs:</span>
+If you wish to change the vertical position of an epigraph with
+<a href="typesetting.html#space">SPACE</a>,
+<a href="typesetting.html#ald">ALD</a>, or
+<a href="typesetting.html#rld">RLD</a>,
+do so before invoking <kbd>.EPIGRAPH</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ .SP -6p
+ .EPIGRAPH
+ A notable quote.
+ .EPIGRAPH OFF
+</span>
+If you&#8217;re setting a document in
+<a href="docprocessing.html#columns">columns</a>
+and you&#8217;d like to add or subtract space <i>after</i> the
+epigraph, which is centred over the top of both columns, the place
+to do it is inside the epigraph, like this:
+<br/>
+<span class="pre-in-pp">
+ .EPIGRAPH
+ A notable quote.
+ .SP 1v
+ .EPIGRAPH OFF
+</span>
+If you were to add the <kbd>.SP 1v</kbd> outside the epigraph, the
+space would be added to the top of the leftmost column only,
+resulting in unbalanced columns.
+</p>
+</div>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<h3 id="epigraph-control" class="docs defaults" style="margin-top: -.25em;">EPIGRAPH control macros and defaults</h3>
+
+<p class="defaults">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following EPIGRAPH control macros may also be
+<a href="#grouping">grouped</a>
+using EPIGRAPH_STYLE.
+</p>
+
+<span class="pre defaults">
+.EPIGRAPH_FAMILY default = prevailing document family; default is Times Roman
+.EPIGRAPH_FONT default = roman
+.EPIGRAPH_SIZE default = -1.5 (points)
+.EPIGRAPH_COLOR default = black
+.EPIGRAPH_AUTOLEAD default = 2 points
+(The next two apply to &#8220;block&#8221; style epigraphs only)
+.EPIGRAPH_INDENT* (see Note on EPIGRAPH_INDENT, below)
+
+*Indent here refers to the indent from both the left and right margins
+ that centres block style epigraphs on the page.
+</span>
+</div>
+
+<div class="box-notes">
+<h3 id="epigraph-indent" class="docs notes" style="margin-bottom: -.75em;">Note on EPIGRAPH_INDENT</h3>
+
+<p style="margin-top: .5em;">
+If you pass EPIGRAPH_INDENT an integer with no unit of measure
+appended, the integer represents the amount by which to multiply
+PARA_INDENT to arrive at an indent for block style epigraphs. If
+you append a unit of measure to the argument, the indent will be
+precisely the amount specified.
+</p>
+
+<p>
+Please also note that if your PARA_INDENT is <kbd>0</kbd> (i.e.
+no indenting of the first line of paragraphs), you must set an
+EPIGRAPH_INDENT yourself, with a unit of measure appended to the
+argument. Mom has no default for EPIGRAPH_INDENT if paragraph first
+lines are not being indented.
+</p>
+
+<p class="tip-bottom">
+The default value for EPIGRAPH_INDENT is <kbd>3</kbd> (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPESET</a>)
+and <kbd>2</kbd> (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>).
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="pp-intro" class="macro-group">Paragraphs</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#pp">Tag: PP</a></li>
+ <li><a href="#pp-control">Paragraph control macros and defaults</a></li>
+</ul>
+
+<p>
+The paragraph macro is the one you use most often. Consequently,
+it&#8217;s one of most powerful, yet simplest to use&mdash;just the
+letters PP. No arguments, nothing. Just <kbd>.PP</kbd> on a line
+by itself any time, in any document element, tells mom you want to
+start a new paragraph. The spacing and indent appropriate to where
+you are in your document are taken care of automatically.
+</p>
+
+<p>
+By default, mom does not indent the first paragraph of a document,
+nor paragraphs that fall immediately after headings. The first
+paragraphs of blockquotes and block-style epigraphs are also not
+indented. This behaviour can be changed with the control macro
+<kbd><a href="#para-indent-first">INDENT_FIRST_PARAS</a></kbd>.
+</p>
+
+<p>
+Mom does not deposit a blank line between paragraphs. If you want
+her to do so, use the control macro
+<a href="#pp-space">PARA_SPACE</a>.
+(I don&#8217;t recommend using this macro with
+<a href="typesetting.html#printstyle">PRINTSTYLE TYPEWRITE</a>.)
+</p>
+
+<p>
+Note that mom does not provide widow or orphan control for
+paragraphs (i.e., even if only one line of a paragraph fits at the
+bottom of a page, she will set it on that page). The reason for
+this is that writers of fiction often have single-line paragraphs
+(e.g. in dialogue). Groff&#8217;s simplistic orphan control will
+break these one-liners&mdash;if they fall at the bottom of the
+page&mdash;to a new page, which is not what you want.
+</p>
+
+<!-- -PP- -->
+
+<div class="macro-id-overline">
+<h3 id="pp" class="macro-id">PP</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PP</b>
+</div>
+<p>
+<kbd>.PP</kbd> (on a line by itself, of course) tells mom to start a
+new paragraph. See
+<a href="#pp-intro">above</a>
+for more details. In addition to regular text paragraphs, you can
+use PP in
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#blockquote-intro">blockquotes</a>,
+<a href="#endnote-intro">endnotes</a>
+and
+<a href="#footnote-intro">footnotes</a>.
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="pp-control" class="docs defaults">PP control macros and defaults</h3>
+
+<p class="defaults">
+The PP macro being so important, and representing, as it were, the
+basis of everything that goes on in a document, its control is
+managed in a manner somewhat different from other document element
+tags. As a result, the control macros for PP may not be
+<a href="#grouping">grouped</a>
+within a <kbd>_STYLE</kbd> macro.
+</p>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#pp-family">Family control</a></li>
+ <li><a href="#pp-font">Font control</a></li>
+ <li><a href="#pp-color">Paragraph colour</a></li>
+ <li><a href="#pp-leading">Leading/linespacing control</a></li>
+ <li><a href="#pp-just-quad">Justification/quad control</a></li>
+ <li><a href="#para-indent">First-line indent control</a></li>
+ <li><a href="#para-indent-first">Initial paragraphs indent control</a></li>
+ <li><a href="#pp-space">Inter-paragraph spacing</a></li>
+</ol>
+</div>
+
+<h4 id="pp-family" class="docs" style="margin-top: -1.5em;">1. Family control</h4>
+
+<p>
+The paragraph
+<a href="definitions.html#family">family</a>
+is set with
+<a href="typesetting.html#family">FAMILY</a>
+prior to
+<a href="docprocessing.html#start">START</a>,
+or
+<a href="docprocessing.html#doc-family">DOC_FAMILY</a>
+afterwards. Please note that both globally affect the family of
+every element in the document.
+</p>
+
+<p>
+If you wish to change the family for regular text paragraphs only,
+invoke <kbd>.FAMILY</kbd> immediately after <kbd>.PP</kbd> in every
+paragraph whose family you wish to differ from the prevailing
+document family. Alternatively, set the family and font for
+paragraphs with PP_FONT, giving it a complete family+font name, e.g.
+<br/>
+<span class="pre-in-pp">
+ PP_FONT TI
+</span>
+which would make the font used in paragraphs Times Roman Italic.
+</p>
+
+<p>
+Mom&#8217;s default paragraph (and document) family is Times Roman.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Neither FAMILY nor DOC_FAMILY has any effect when the PRINTSTYLE is
+<kbd>TYPEWRITE</kbd>.
+</p>
+</div>
+
+<h4 id="pp-font" class="docs" style="margin-top: -.25em;">2. Font control</h4>
+
+<p>
+To change the
+<a href="definitions.html#font">font</a>
+used in regular text paragraphs, use PP_FONT, which takes the same
+argument as
+<a href="typesetting.html#font">FT</a>.
+PP_FONT may be used before or after
+<a href="docprocessing.html#start">START</a>.
+Only regular text paragraphs are affected; paragraphs in
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#blockquote-intro">blockquotes</a>,
+<a href="#endnote-intro">endnotes</a>,
+and
+<a href="#footnote-intro">footnotes</a>
+remain at their default setting (medium roman) unless you change
+them with the appropriate control macros.
+</p>
+
+<p>
+Mom&#8217;s default paragraph font is medium roman.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+PP_FONT has no effect when the PRINTSTYLE is <kbd>TYPEWRITE</kbd>.
+If you wish to set whole typewritten paragraphs in italic, invoke
+<kbd>.FT I</kbd> immediately after <kbd>.PP</kbd>. Depending
+on which of
+<a href="docprocessing.html#printstyle-italics">UNDERLINE_ITALIC</a>
+or
+<a href="docprocessing.html#printstyle-italics">ITALIC_MEANS_ITALIC</a>
+is currently enabled, the paragraph will be set underlined or in
+italic. Neither persists past the end of the paragraph.
+</p>
+</div>
+
+<h4 id="pp-color" class="docs" style="margin-top: -.25em;">3. Paragraph colour</h4>
+
+<p>
+Mom has no special control macro for colourising paragraphs. If you
+wish a colourised paragraph, you must use the macro
+<a href="color.html#color">COLOR</a>
+or the
+<a href="definitions.html#inline">inline escape</a>,
+<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd></a>,
+<i>after</i> <kbd>.PP</kbd>. The colour must be one pre-defined (or
+&#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+</p>
+
+<p>
+Please note that unless you change the colour back to it&#8217;s
+default (usually black) at the end of the paragraph, all subsequent
+paragraphs will be set in the new colour, although most other
+elements of your document will continue to be set in the default
+colour (usually black).
+</p>
+
+<p>
+For example, assuming you have defined the colour, blue,
+<br/>
+<span class="pre-in-pp">
+ .PP
+ .COLOR blue
+ &lt;first paragraph&gt;
+ .HEADING 1 "Monty Python"
+ .HEADING 2 "The Origins of Spam"
+ .PP
+ &lt;second paragraph&gt;
+</span>
+the first paragraph will be blue, the head and subhead will be in
+the document&#8217;s default colour (usually black), and the second
+paragraph will be in blue.
+</p>
+
+<h4 id="pp-leading" class="docs" style="margin-top: -.25em;">4. Leading</h4>
+
+<p>
+The paragraph
+<a href="definitions.html#leading">leading</a>
+is set with
+<a href="typesetting.html#leading">LS</a>
+prior to
+<a href="docprocessing.html#start">START</a>,
+or
+<a href="docprocessing.html#doc-lead">DOC_LEAD</a>
+afterwards. Please note that either method globally affects the
+leading and spacing of every document element (except
+<a href="definitions.html#header">headers</a>
+and
+<a href="definitions.html#footer">footers</a>).
+</p>
+
+<p>
+If you wish to change the leading of regular text paragraphs only,
+invoke <kbd>.LS</kbd> immediately after <kbd>.PP</kbd> in any
+paragraph whose leading you wish to change.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Warning:</span>
+Changing a paragraph&#8217;s leading will almost certainly screw up
+mom&#8217;s ability to balance the bottom margin of pages. Should
+you absolutely require a change to a paragraph&#8217;s leading and
+need to get mom back on track leading-wise afterwards, use the
+<a href="docprocessing.html#shim">SHIM</a>
+or
+<a href="docprocessing.html#shim">FLEX</a>
+macro, depending on which
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+strategy you are using.
+</p>
+</div>
+
+<p>
+Mom&#8217;s default paragraph leading (document leading)
+is 16 points, adjusted to fill the page.
+</p>
+
+<h4 id="pp-just-quad" class="docs" style="margin-top: -.25em;">5. Justification / quad</h4>
+
+<p>
+The justification/quad-direction of regular text paragraphs (i.e.
+<a href="definitions.html#just">justified</a>,
+or
+<a href="definitions.html#filled">filled</a>
+and
+<a href="definitions.html#quad">quadded</a>
+left/right/centre) is set with
+<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD</a>
+prior to
+<a href="docprocessing.html#start">START</a>,
+and with
+<a href="docprocessing.html#doc-quad">DOC_QUAD</a>
+afterwards.
+</p>
+
+<p>
+Please note that either method of setting the paragraph
+justification/quad-direction also affects
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#footnote-intro">footnotes</a>,
+and
+<a href="#endnote-intro">endnotes</a>,
+but not
+<a href="#blockquote-intro">blockquotes</a>
+(whose default is quad left unless you change it with
+<a href="#blockquote">BLOCKQUOTE_QUAD</a>).
+The justification/quad-direction of epigraphs and footnotes may be
+changed with their own control macros.
+</p>
+
+<p>
+If you wish to change the justification/quad-direction of individual
+paragraphs, invoke
+<a href="typesetting.html#justify"><kbd>.JUSTIFY</kbd></a>
+or
+<a href="typesetting.html#quad"><kbd>.QUAD</kbd></a>
+on the line immediately after <kbd>.PP</kbd>. Only the paragraph
+in question gets justified or quadded differently; subsequent
+paragraphs remain unaffected.
+</p>
+
+<p>
+Mom&#8217;s default justification/quad-direction for paragraphs
+when the
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPESET</kbd> is justified; for PRINTSTYLE
+<kbd>TYPEWRITE</kbd>, the default is quad left.
+</p>
+
+<h4 id="para-indent" class="docs" style="margin-top: -.25em;">6. First-line indent</h4>
+
+<p>
+The first-line indent of paragraphs is controlled by PARA_INDENT,
+which takes one argument: the size of the indent. PARA_INDENT may be
+used before or after
+<a href="docprocessing.html#start">START</a>.
+A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is required; fractional sizes are allowed. Thus, to set the
+paragraph indent to 4-1/2
+<a href="definitions.html#em">ems</a>, do
+<br/>
+<span class="pre-in-pp">
+ .PARA_INDENT 4.5m
+</span>
+In addition to establishing the basic first line-indent of
+paragraphs, PARA_INDENT also affects
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#quote-intro">quotes</a>
+and
+<a href="#blockquote-intro">blockquotes</a>,
+whose overall indenting from the left and (where applicable)
+right margins is relative to PARA_INDENT if
+the _INDENT control macro for these tags has
+no
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it. Furthermore, the first-line indent of paragraphs
+within these document elements (as well as footnotes) is also
+relative to PARA_INDENT (always 1/2 of PARA_INDENT), hence they are
+also affected.
+</p>
+
+<p>
+Mom&#8217;s default PARA_INDENT is 2 ems for
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+<kbd>TYPESET</kbd> and 3 picas (1/2 inch) for
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+<kbd>TYPEWRITE</kbd>.
+</p>
+
+<h4 id="para-indent-first" class="docs" style="margin-top: -.25em;">7. Indenting initial paragraphs</h4>
+
+<p>
+By default, mom does not indent the first paragraph of a document,
+nor the first paragraph after a heading or
+<a href="#linebreak-intro">linebreak</a>,
+nor the first paragraphs of
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#blockquote-intro">blockquotes</a>,
+<a href="#endnote-intro">endnotes</a>
+or
+<a href="#footnote-intro">footnotes</a>
+that run to more than one paragraph.
+</p>
+
+<p>
+If you wish to have first paragraphs indented, invoke the macro
+INDENT_FIRST_PARAS without an argument, either before or after
+<a href="docprocessing.html#start">START</a>.
+INDENT_FIRST_PARAS is a toggle macro, therefore passing it any
+argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>Q</kbd>,
+<kbd>X</kbd>...) cancels its effect, meaning that first paragraphs
+will once again not be indented.
+</p>
+
+<h4 id="pp-space" class="docs">8. Inter-paragraph spacing</h4>
+
+<p>
+By default, mom does not insert a blank line between
+paragraphs. If you would like her to do so, invoke the macro
+PARA_SPACE without an argument, either before or after
+<a href="docprocessing.html#start">START</a>.
+PARA_SPACE is a toggle macro, therefore passing it any argument
+(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>Q</kbd>, <kbd>X</kbd>...)
+cancels its effect, meaning that paragraphs will once again not be
+separated by a blank line.
+</p>
+
+<p>
+If you would like to space paragraphs by less than a full linespace,
+invoke PARA_SPACE with the amount of space you want as a numeric
+argument. A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is required. For example, to space paragraphs by one-quarter
+linespace
+<span class="pre-in-pp">
+ .PARA_SPACE .25v
+</span>
+is how you&#8217;d do it, or, if you want six points between
+paragraphs
+<span class="pre-in-pp">
+ .PARA_SPACE 6p
+</span>
+</p>
+
+<p style="margin-top: -1em" >
+If
+<a href="docprocessing.html#flex-vs-shim">flex-spacing</a>
+is enabled, additional flexible vertical whitespace can be inserted
+between spaced paragraphs with the
+<a href="docprocessing.html#flex">FLEX</a>
+macro.
+</p>
+
+<p>
+PARA_SPACE is not recommended for use with PRINTSTYLE TYPEWRITE
+unless you give PRINTSTYLE the <kbd>SINGLESPACE</kbd> option.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+If PARA_SPACE is on, mom spaces only those paragraphs that come
+after an initial paragraph. Initial paragraphs are those that come
+immediately after the
+<a href="definitions.html#docheader">docheader</a>
+(i.e. the start of a document),
+<a href="#epigraph-intro">epigraphs</a>,
+<a href="#heading-intro">headings</a>,
+and
+<a href="#linebreak-intro">linebreaks</a>.
+(The first paragraph after these document elements requires no
+blank line to separate it from other paragraphs.)
+</p>
+
+<p class="tip-bottom">
+Sometimes, you can be fairly deep into a document before using PP
+for the first time, and when you do, because mom is still waiting
+for that initial paragraph, she doesn&#8217;t space it with a blank
+line, even though you expect her to. The simple workaround for this
+is to invoke <kbd>.PP</kbd> twice (in succession) at the point you
+expect the blank line to appear.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="heading-intro" class="macro-group">Headings</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#heading">Tag: HEADING</a></li>
+ <li><a href="#head-spacing-notes">Spacing of headings</a></li>
+ <li><a href="#heading-control">Heading control macros and defaults</a></li>
+ <li><a href="#prefix-chapter-number">Prefixing chapter numbers</a></li>
+ <li><a href="#oldstyle-headings">Oldstyle headings</a>
+ <ul style="list-style-type: circle; margin-left: -1.25em">
+ <li><a href="#parahead">Important information about PARAHEAD</a>
+ <ul style="list-style-type: square; margin-left: -1.25em">
+ <li><a href="#parahead-usage">Correct usage of paraheads</a></li>
+ </ul></li>
+ </ul></li>
+</ul>
+
+<p>
+Heads, subheads, and deeper levels of section headings are
+handled by a single macro, HEADING, to which you pass an argument
+stating the desired level.
+<kbd><span class="nobr">.HEADING 1 &quot;&lt;text&gt;&quot;</span></kbd>,
+for example, would be a main head;
+<kbd><span class="nobr">.HEADING 2 &quot;&lt;text&gt;&quot;</span></kbd>
+would be a subhead; etc.
+</p>
+
+<p>
+In addition to printing headings in the body of your document,
+HEADING collects the heading as an entry for the Table of Contents,
+if the document is to have one, and the
+<a href="definitions.html#pdfoutline">PDF outline</a>.
+With the <kbd>NAMED</kbd> argument, it furthermore acts as a
+bookmark for
+<a href="definitions.html#pdflink">PDF links</a>.
+</p>
+
+<p>
+Headings can also be numbered on a per-heading-level basis,
+hierarchically and concatenatively, e.g.
+<br/>
+<span class="pre-in-pp">
+ 1.
+ 1.1
+ 1.2
+ 1.2.1
+ 2.
+ 2.1
+ 2.2
+ 2.2.1
+</span>
+By default, a blank line precedes headings, regardless of the level.
+Mom initially sets up a very basic style for nine levels of heading,
+of which you can have an infinite number, although as has been said,
+if you need more than four levels of heading, you should consider
+re-organising your material. The pared-down style of mom&#8217;s
+defaults is intentional; it is expected that you will design
+headings to your own specifications with the
+<a href="definitions.html#controlmacro">control macro</a>,
+<a href="#heading-style">HEADING_STYLE</a>.
+</p>
+
+<p>
+It is very good practice, and strongly recommended, that you respect
+the hierarchy of headings, using level-1 for main heads, level-2 for
+subheads, level-3 for subsubheads, etc. The ease of designing and
+re-designing the style for each level, plus mom&#8217;s very basic
+defaults, are meant, in part, to prevent the whimsical misuse of
+a particular heading level just because its style appeals to you.
+</p>
+
+<!-- -HEAD- -->
+
+<div class="macro-id-overline">
+<h3 id="heading" class="macro-id">HEADING</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>HEADING</b> <kbd class="macro-args">&lt;level&gt; [
+PARAHEAD ] [ NAMED &lt;pdf-id&gt; ] &quot;&lt;heading text&gt;&quot;</kbd>
+</div>
+
+<p>
+The first argument to HEADING is the <kbd>level</kbd>. Level 1 is
+analogous to a main head; level 2 is analogous to a subhead; level 3
+is analogous to a subsubhead; etc.
+</p>
+
+<p>
+The second (optional) argument, <kbd>PARAHEAD</kbd>, instructs mom
+that the heading should be treated as a
+<a href="definitions.html#parahead">paragraph head</a>.
+If HEADING is being used to create a parahead, it must come after
+<a href="#pp">PP</a>,
+not before.
+</p>
+
+<p>
+The indent applied to a parahead is the same as what would be
+expected from a paragraph without the parahead (see
+<a href="#para-indent-first">Indenting initial paragraphs</a>).
+If you wish that a paragraph introduced by a parahead not be
+indented, use
+<a href="#para-indent">PARA_INDENT</a>
+to set the paragraph indent to zero, then reset the indent for
+subsequent paragraphs.
+</p>
+
+<p>
+The optional third argument, <kbd>NAMED &lt;id&gt;</kbd>, gives
+the heading a unique, non-printing identifier that allows it to be
+referenced from anywhere in the final PDF document with the PDF_LINK
+macro, provided the mom file is processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>.
+PDF_LINK usage is explained in the manual,
+<a href="http://www.schaffter.ca/mom/pdf/mom-pdf.pdf"><span class="book-title">Producing PDFs with groff and mom</span></a>.
+</p>
+
+<p>
+The final argument is the text of the heading, surrounded by double
+quotes. Long headings that are likely to exceed the current
+line length should be broken into chunks, each surrounded by
+double-quotes, like this:
+<br/>
+<span class="pre-in-pp">
+ .HEADING 1 "A needlessly long but instructive" "first level heading"
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If a heading falls near the bottom of an output page and mom is
+unable to fit the heading plus at least one line of text underneath
+it, she will set the head at the top of the next page.
+</p>
+</div>
+
+<div class="box-tip">
+<h3 id="head-spacing-notes" class="docs" style="padding-top: 9px; font-size: 100%; text-transform: none">Spacing of headings</h3>
+
+<p>
+As described above, mom inserts a blank line before each heading.
+If the leading of your document never changes, and you introduce no
+additional space into the text&mdash;as, for example, between
+paragraphs&mdash;this will result in perfectly equal whitespace before
+each heading.
+</p>
+
+<p>
+If, however, you disrupt the regular placement of text on
+mom&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+HEADING adds extra whitespace to the blank line according to the
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+strategy in effect. This, along with a similar strategy for
+whitespace around quotes, blockquotes, and
+<a href="definitions.html#float">floated</a>
+and
+<a href="definitions.html#preprocessor">pre-processor material</a>
+is what allows mom to balance the bottom
+margins of pages effectively.
+</p>
+
+<p>
+It occasionally happens that the extra whitespace becomes
+noticeable. This typically occurs when the amount of whitespace
+adjustment approaches the value of the current leading. The result
+looks like two blank lines instead of one. When this happens, a
+simple but effective fix is to reduce the space before the heading
+by backing up one line, either with
+<br/>
+<span class="pre-in-pp">
+ .SPACE -1v
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .RLD -1v
+</span>
+This results in slightly less whitespace than normal, but the
+difference is usually not apparent. Alternatively, you may pass the
+<kbd>NO_SHIM</kbd> or <kbd>NO_FLEX</kbd> argument to
+<a href="#heading-style">HEADING_STYLE</a>
+to prevent shimming or flex-spacing of any particular heading level
+either globally or selectively. If shimming/flex-spacing is
+disabled selectively with
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE &lt;n&gt; NO_SHIM | NO_FLEX
+</span>
+it can be re-enabled for the heading level with
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE &lt;n&gt; SHIM | FLEX
+</span>
+</p>
+</div>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="heading-control" class="defaults" style="margin-left: 6px; margin-bottom: -1em">HEADING control and defaults</h3>
+
+<div style="padding-left: 15px; padding-right: 15px">
+<p style="margin-bottom: 1em">
+By default, mom pre-initializes nine levels of headings to use
+the bold font of the prevailing document family, with a baseline
+adjustment of 1/10 of the current
+<a href="definitions.html#leading">leading</a>.
+In addition, level-1 headings are 3 points larger than running text,
+level-2 headings 2 points larger, and level 3-headings 1 point
+larger. The remaining 6 levels are the same size as running text.
+A single blank line precedes all levels of heading.
+</p>
+
+<h4 id="heading-style" class="docs" style="margin-bottom: -.5em">The HEADING_STYLE macro</h4>
+
+<p>
+Styling heads is accomplished with a single macro
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE&nbsp;&lt;level&gt;
+</span>
+where <kbd>&lt;level&gt;</kbd> is the numeric heading level to which
+the style applies.
+</p>
+
+<p>
+HEADING_STYLE takes any or all of the following arguments,
+which may be given in any order:
+<br/>
+<span class="pre defaults">
+ FAMILY &lt;family&gt; \
+ FONT &lt;font&gt; \
+ SIZE &lt;+|-size&gt; \
+ QUAD &lt;direction&gt; \
+ COLOR &lt;colour&gt; \
+ UNDERSCORE &lt;weight&gt; &lt;gap&gt; | NO_UNDERSCORE \
+ UNDERSCORE2 &lt;weight&gt; &lt;gap1&gt; &lt;gap2&gt; | NO_UNDERSCORE2 \
+ CAPS | NO_CAPS \
+ SMALLCAPS | NO_SMALLCAPS \
+ BASELINE_ADJUST &lt;amount to raise heading from the baseline&gt; \
+ NEEDS &lt;lines of text required beneath the heading&gt; \
+ PREFIX_CHAPTER [&lt;n&gt;] \
+ SPACE_AFTER | NO_SPACE_AFTER \
+ NUMBER | NO_NUMBER \
+ NO_SHIM | SHIM \
+ NO_FLEX | FLEX
+</span>
+</p>
+
+<p>
+You may enter your entire argument list on a single line, or, if it
+is very long, break it into shorter lines with the
+&#8220;line-continued&#8221; backslash (<kbd>\</kbd>), as shown
+above.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+The arguments to <kbd>FAMILY</kbd>, <kbd>FONT</kbd>,
+<kbd>SIZE</kbd>, <kbd>QUAD</kbd>, and
+<kbd>COLOR</kbd> are the same as
+those you&#8217;d give to the
+<a href="#docelement-control">control macros</a>
+ending in _FAMILY, _FONT, _SIZE, _QUAD, or _COLOR. See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>UNDERSCORE</kbd> and <kbd>UNDERSCORE2</kbd> require that a
+weight for the underscore be given, in points (decimal fractions
+allowed), but without the unit of measure <kbd>p</kbd> appended.
+They also require that the underscore&#8217;s distance from the
+baseline be supplied; in the case of UNDERSCORE2, an additional gap
+argument representing the distance between the two underscores must
+be provided.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+The <kbd>CAPS</kbd> argument capitalizes the text of a heading
+level in the body of a document but not in the Table of
+Contents, where capitalization of entries is controlled by
+<a href="tables-of-contents.html#toc-entry-style">TOC_ENTRY_STYLE&nbsp;&lt;n&gt;</a>.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>BASELINE_ADJUST</kbd> allows you to raise a heading slightly
+above the baseline on which it would otherwise sit. For aesthetic
+reasons, it is often desirable to introduce a small amount of space
+between a heading and the text following it. Since headings are
+preceded by a blank line, it is preferable to move the heading
+upward than to lower the text following it. The argument to
+BASELINE_ADJUST is the amount by which to raise the heading. It
+requires no <kbd>+</kbd> or <kbd>-</kbd> sign, and must have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>NEEDS</kbd> lets you reserve the number of lines of text
+required beneath a heading, including fractions thereof (e.g.
+&#8220;1.5&#8221; for one line of text plus half a linespace).
+If a heading falls near the bottom margin and there isn&#8217;t
+sufficient room for both the heading and the reserved space, mom
+will break to a new page for the heading. A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+should not be appended to the argument.
+<span class="note"><i>Note:</i></span> If you have
+<a href="goodies.html#dropcap">DROPCAP</a>s
+after headings, you must increase the value of <kbd>NEEDS</kbd>
+to match the number of dropcap lines.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>PREFIX_CHAPTER</kbd> instructs mom to prefix the current
+chapter number to numbered headings. If mom is unable to determine
+a chapter number, she will ask for one.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+Note that using <kbd>PREFIX_CHAPTER</kbd> with an explicit chapter
+number will also set the chapter number for subsequent
+<a href="images.html#autolabel">automatically-generated image and pre-processor labels</a>
+as well.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>SPACE_AFTER</kbd> inserts a blank line equal to the current
+<a href="definitions.html#leading">leading</a> after a HEADING.
+If you&#8217;d like a full linespace after a heading level, use
+<kbd>SPACE_AFTER</kbd>. If you&#8217;d like additional space before
+a heading level, you must introduce it yourself with
+<a href="typesetting.html#space">SPACE</a>
+or
+<a href="typesetting.html#ald">ALD</a>.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>NUMBER</kbd> and <kbd>NO_NUMBER</kbd> allow you to determine
+whether mom prepends a hierarchic numbering scheme to a heading
+level in the body of a document. Numbering of Table of Contents
+entries is controlled separately with
+<a href="tables-of-contents.html#toc-entry-numbers">TOC_ENTRY_NUMBERS</a>.
+Mom also has a special macro to toggle whether to prefix a chapter
+number to numbered headings and Table of Contents entries,
+<a href="#prefix-chapter-number">PREFIX_CHAPTER_NUMBER</a>.
+</p>
+
+<p class="defaults" style="margin-bottom: 1em">
+<kbd>SHIM</kbd> is not necessary if shimming is enabled
+globally, which it is by default; it exists to re-enable
+shimming for the heading level if you have previously passed
+HEADING_STYLE&nbsp;<kbd>&lt;n&gt;</kbd> a <kbd>NO_SHIM</kbd>
+argument. The <kbd>FLEX</kbd> and <kbd>NO_FLEX</kbd> arguments work
+the same way if flex-spacing is enabled.
+</p>
+
+<p class="defaults" style="padding-bottom: .5em">
+The argument list is long, so you may want to break it into
+several lines by using the backslash character (<kbd>\</kbd>).
+Here&#8217;s an example of how you might style a level 1 heading:
+<br/>
+<span class="pre defaults">
+ .HEADING_STYLE 1 \
+ FONT B \
+ QUAD C \
+ UNDERSCORE .5 2p \
+ BASELINE_ADJUST 3p \
+ NUMBER
+</span>
+This creates a level-1 heading style that&#8217;s bold, centred,
+underscored and numbered, raised by 3 points from the baseline.
+</p>
+</div>
+</div>
+
+<!-- -PREFIX_CHAPTER_NUMBER- -->
+
+<div id="prefix-chapter-number" class="macro-id-overline" style="margin-top: -1em;">
+<h3 class="macro-id" style="text-transform: none; font-size: 105%;">Prefixing chapter numbers</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PREFIX_CHAPTER_NUMBER</b> <kbd class="macro-args">&lt;none&gt; | &lt;chapter number as digit&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p>
+If, in addition to numbering heads, you want mom to prepend the
+chapter number, invoke <kbd>.PREFIX_CHAPTER_NUMBER</kbd>.
+</p>
+
+<p>
+When you invoke <kbd>.PREFIX_CHAPTER_NUMBER</kbd> without an
+argument, mom checks to see whether the argument you passed to <a
+href="docprocessing.html#chapter">CHAPTER</a> (if it&#8217;s been
+called) is a digit. If it isn&#8217;t (say you&#8217;ve numbered your
+chapter &#8220;One&#8221; instead of &#8220;1&#8221;), mom will
+abort with a request that you pass PREFIX_CHAPTER_NUMBER a digit
+representing the chapter number.
+</p>
+
+<p>
+After you invoke <kbd>.PREFIX_CHAPTER_NUMBER</kbd>, mom will prepend
+the chapter number to all headings you have requested be numbered
+with
+<a href="#heading-style"><kbd>.HEADING_STYLE &lt;n&gt; NUMBER</kbd></a>.
+Thus, assuming chapter number twelve (12):
+<br/>
+<span class="pre-in-pp">
+ 1. LEVEL 1 HEADING
+ 1.1. Level 2 heading
+</span>
+would become
+<br/>
+<span class="pre-in-pp">
+ 12.1. LEVEL 1 HEADING
+ 12.1.1. Level 2 heading
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If a chapter number is given to PREFIX_CHAPTER_NUMBER, automatically
+generated labels with a prepended chapter number are also affected.
+</p>
+</div>
+
+<p>
+In collated documents, mom automatically increments the digit used
+by PREFIX_CHAPTER_NUMBER by one (current chapter digit + 1) every
+time you invoke
+<a href="rectoverso.html#collate"><kbd>.COLLATE</kbd></a>,
+even if you&#8217;ve (temporarily) turned off the prefixing
+of chapter numbers. Thus, even if you number your chapters
+&#8220;One&#8221;, &#8220;Two&#8221;, &#8220;Three&#8221; instead of
+&#8220;1&#8221;, &#8220;2&#8221;, &#8220;3&#8221;, mom will Do The
+Right Thing with respect to numbering head (and label) elements
+in all collated chapters following the first invocation of
+PREFIX_CHAPTER_NUMBER (assuming, of course, that the collated
+chapters are in incrementing order; if not, you must put
+<br/>
+<span class="pre-in-pp">
+ .PREFIX_CHAPTER_NUMBER &lt;chapter number&gt;
+</span>
+somewhere after the invocation of COLLATE and before the first
+numbered head element of each collated document).
+</p>
+
+<p>
+PREFIX_CHAPTER_NUMBER can be disabled by passing it any argument
+other than a digit (e.g. (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>Q</kbd>,
+<kbd>X</kbd>...), although, as noted above, mom will keep,
+and&mdash;in the case of collated documents&mdash;increment the
+chapter number, allowing you to turn prefixing of chapter numbers to
+numbered head elements off and on according to your needs or whims.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Because PREFIX_CHAPTER_NUMBER takes an (optional) digit representing
+the chapter number, it&#8217;s use need not be restricted to
+<a href="docprocessing.html#doctype">DOCTYPE <kbd>CHAPTER</kbd></a>.
+You can use it with any document type. Furthermore, even if
+your doctype isn&#8217;t <kbd>CHAPTER</kbd>, you can identify
+the document as a chapter for the purposes of numbering head
+elements by invoking the macro
+<a href="docprocessing.html#chapter"><kbd>.CHAPTER</kbd></a>
+with a
+<a href="definitions.html#numericargument">numeric argument</a>
+in your document setup.
+</p>
+</div>
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="oldstyle-headings-intro" class="macro-group">Oldstyle headings</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#oldstyle-headings">Macro: OLDSTYLE_HEADINGS</a></li>
+ <li><a href="#head">Macro: HEAD</a></li>
+ <li><a href="#subhead">Macro: SUBHEAD</a></li>
+ <li><a href="#subsubhead">Macro: SUBSUBHEAD</a></li>
+</ul>
+
+<p>
+In versions of mom prior to 2.0, headings were entered by their
+commonly used names, <i>viz.</i> HEAD, SUBHEAD, and SUBSUBHEAD. The
+new
+<a href="#heading-intro">HEADING</a>
+scheme allows for greater flexibility, and permits seamless
+integration with PDF output.
+</p>
+
+<p>
+Documents created with pre-2.0 versions may still use the oldstyle
+heading names, as may new documents, however there are some
+differences in their behaviour.
+</p>
+
+<p>
+Whenever mom encounters an oldstyle heading, she loads the default
+style formerly associated with the oldstyle name. See below for a
+description of the default styles in the sections
+<a href="#head">HEAD</a> (now HEADING 1),
+<a href="#subhead">SUBHEAD</a> (now HEADING 2),
+and
+<a href="#subsubhead">SUBSUBHEAD</a> (now HEADING 3).
+Mom also emits a message to stderr alerting you to what she&#8217;s
+doing.
+</p>
+
+<p>
+The control macros formerly associated with oldstyle headings are no
+longer present in mom&#8217;s macro file, which means that if you
+made changes to mom&#8217;s default for those headings, you must
+recreate the changes with the
+<a href="#heading-style">HEADING_STYLE</a>
+macro. The entire style need not be recreated, only those
+parameters that differed from mom&#8217;s defaults. Thus, if your
+HEADs were set flush left, instead of the oldstyle default, centred,
+but otherwise kept mom&#8217;s settings, you need only do
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 1 QUAD L
+</span>
+</p>
+
+<div id="parahead" class="box-important">
+<p class="tip-top">
+<span class="important">Important:</span>
+The macro PARAHEAD is no longer available. You must create paragraph
+heads using the
+<a href="#heading">HEADING</a>
+macro. Mom will abort with an informational message whenever she
+encounters PARAHEAD. Assuming a heading level of 3 for your
+paraheads, the former defaults for PARAHEAD can be set up like this:
+<br/>
+<span class="pre-in-pp">
+ .HEADING STYLE 3 FONT BI SIZE -.25 \" For PRINTSTYLE TYPESET
+ .HEADING STYLE 3 FONT I SIZE +0 \" For PRINTSTYLE TYPEWRITE
+</span>
+Equally, the macro NUMBER_PARAHEADS is no longer available. You
+must enable numbering of the correct level for paraheads with
+HEADING_STYLE. Again assuming a heading level of 3 for paraheads,
+it&#8217;s simply done:
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 3 NUMBER
+</span>
+</p>
+
+<h3 id="parahead-usage" class="docs" style="text-transform: none; margin-top: -1em">Correct usage of paraheads</h3>
+
+<p style="margin-top: .5em">
+It is tempting to choose an arbitrary heading level for paraheads,
+since they are sometimes needed out-of-sequence; for example,
+immediately after a main head (level-1) in a document that
+subsequently requires subheads (level-2). In such a circumstance,
+choosing level-3 for all your paraheads might seem to make sense,
+but in fact doesn&#8217;t, since it disrupts the hierarchy of
+both the Table of Contents (if your document has one) and the PDF
+outline.
+</p>
+
+<p>
+Correct use of the <kbd>PARAHEAD</kbd> option to HEADING under such
+circumstances requires always assigning <kbd>PARAHEAD</kbd> to
+the next logical level in the heading hierarchy. For example, if
+there are no headings before the parahead, it should be assigned to
+level-1. If subsequently there is a main head to be followed by
+more paraheads, the main head should be level-1, and the paraheads
+level-2. This will almost certainly require assigning new style
+parameters to level-1 (with
+<a href="#heading-style">HEADING_STYLE</a>)
+and to the level now being used for paraheads. The following
+example demonstrates.
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 1 FONT BI SIZE +.25 \" parahead style, level-1
+ .PP
+ .HEADING 1 PARAHEAD &lt;parahead&gt;
+ &lt;paragraph text&gt;
+ .PP
+ .HEADING 1 PARAHEAD &lt;parahead&gt;
+ &lt;paragraph text&gt;
+ \# main head style, level-1
+ .HEADING_STYLE 1 FONT B SIZE +3 QUAD CENTER UNDERSCORE .5 2p
+ .HEADING_STYLE 2 FONT BI SIZE +.25 \" parahead style, level-2
+ .HEADING 1 &lt;main head&gt;
+ .PP
+ &lt;paragraph text&gt;
+ .PP
+ .HEADING 2 PARAHEAD &lt;parahead&gt;
+ &lt;paragraph text&gt;
+</span>
+</p>
+</div>
+
+<!-- -OLDSTYLE_HEADINGS - -->
+
+<div class="macro-id-overline">
+<h3 id="oldstyle-headings" class="macro-id">OLDSTYLE HEADINGS</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>OLDSTYLE_HEADINGS</b>
+</div>
+
+<p>
+OLDSTYLE_HEADINGS requires no argument. It instructs mom to set the
+first three levels of heading to the parameters of her old defaults
+for HEAD, SUBHEAD, and SUBSUBHEAD. Use of OLDSTYLE_HEADINGS will
+also prevent mom from generating the message she issues the first
+time she encounters HEAD, SUBHEAD, and SUBSUBHEAD.
+</p>
+
+<!-- -HEAD- -->
+
+<div id="head" class="box-macro-args">
+Macro: <b>HEAD</b> <kbd class="macro-args">[ NAMED &lt;id&gt; ] &quot;&lt;text of head&gt;&quot; &quot;&lt;another line&gt;&quot;...</kbd>
+</div>
+
+<p>
+When invoked for the first time, with or without
+<a href="oldstyle-headings">OLDSTYLE_HEADINGS</a>,
+HEAD sets the parameters for level-1 headings to mom&#8217;s old
+HEAD defaults, then prints the head as a level-1 heading.
+The <kbd>NAMED &lt;id&gt;</kbd> optional argument is explained in
+the description of
+<a href="#heading">HEADING</a>.
+</p>
+
+<p>
+If, prior to invoking HEAD, you have given any parameters to level-1
+heads with
+<a href="#heading-style">HEADING STYLE</a>,
+they will be preserved; any you give afterwards will be respected.
+</p>
+
+<p>
+The former style defaults for HEAD were:
+<br/>
+<span class="pre-in-pp">
+ FAMILY = prevailing document family
+ FONT = bold (TYPESET); roman (TYPEWRITE)
+ SIZE = +1 (TYPESET); +0 (TYPEWRITE)
+ QUAD = C
+ UNDERSCORE .5 2p
+ CAPS
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The macro NUMBER_HEADS from pre-2.0 versions of mom, can still be
+used, though it is now a wrapper for
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 1 NUMBER
+</span>
+Mom will alert you to this on stderr.
+</p>
+</div>
+
+<!-- -SUBHEAD- -->
+
+<div id="subhead" class="box-macro-args">
+Macro: <b>SUBHEAD</b> <kbd class="macro-args">[ NAMED &lt;id&gt; ] &quot;&lt;text of head&gt;&quot; &quot;&lt;another line&gt;&quot;...</kbd>
+</div>
+
+<p>
+When invoked for the first time, with or without
+<a href="oldstyle-headings">OLDSTYLE_HEADINGS</a>,
+SUBHEAD sets the parameters for level-2 headings to mom&#8217;s old
+SUBHEAD defaults, then prints the subhead as a level-2 heading.
+The <kbd>NAMED &lt;id&gt;</kbd> optional argument is explained in
+the description of
+<a href="#heading">HEADING</a>.
+</p>
+
+<p>
+The former style defaults for SUBHEAD were:
+<br/>
+<span class="pre-in-pp">
+ FAMILY = prevailing document family
+ FONT = bold (TYPESET); italic, i.e. underlined (TYPEWRITE)
+ SIZE = +.5 (TYPESET); +0 (TYPEWRITE)
+ QUAD = L
+ BASELINE_ADJUST = 1/8 the current leading
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The macro NUMBER_SUBHEADS from pre-2.0 versions of mom, can still be
+used, though it is now a wrapper for
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 2 NUMBER
+</span>
+Mom will alert you to this on stderr.
+</p>
+</div>
+
+<!-- -SUBSUBHEAD- -->
+
+<div id="subsubhead" class="box-macro-args">
+Macro: <b>SUBSUBHEAD</b> <kbd class="macro-args">[ NAMED &lt;id&gt; ] &quot;&lt;text of head&gt;&quot; &quot;&lt;another line&gt;&quot;...</kbd>
+
+</div>
+
+<p>
+When invoked for the first time, with or without
+<a href="oldstyle-headings">OLDSTYLE_HEADINGS</a>,
+SUBSUBHEAD sets the parameters for level-3 headings to mom&#8217;s old
+SUBSUBHEAD defaults, then prints the subsubhead as a level-3 heading.
+The <kbd>NAMED &lt;id&gt;</kbd> optional argument is explained in
+the description of
+<a href="#heading">HEADING</a>.
+</p>
+
+<p>
+The former style defaults for SUBSUBHEAD were:
+<br/>
+<span class="pre-in-pp">
+ FAMILY = prevailing document family
+ FONT = italic (TYPESET); roman (TYPEWRITE)
+ SIZE = +.5 (TYPESET); +0 (TYPEWRITE)
+ QUAD = L
+ BASELINE_ADJUST = 1/8 the current leading
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The macro NUMBER_SUBSUBHEADS from pre-2.0 versions of mom, can still be
+used, though it is now a wrapper for
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 3 NUMBER
+</span>
+Mom will alert you to this on stderr.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="linebreak-intro" class="macro-group">Linebreaks (section breaks)</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#linebreak">Tag: LINEBREAK</a></li>
+ <li><a href="#linebreak-control">Linebreak control macros and defaults</a></li>
+</ul>
+
+<p>
+Linebreaks (&#8220;author linebreaks&#8221;, &#8220;section
+breaks&#8221;) are gaps in the vertical flow of running text that
+indicate a shift in content (e.g. a scene change in story). They
+are frequently set off by typographic symbols, sometimes whimsical
+in nature.
+</p>
+
+<!-- -LINEBREAK- -->
+
+<div class="macro-id-overline">
+<h3 id="linebreak" class="macro-id">LINEBREAK</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LINEBREAK</b>
+</div>
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>SECTION</b>
+</p>
+
+<p>
+LINEBREAK takes no arguments. Simply invoke it (on a line by
+itself, of course) whenever you want to insert an author linebreak.
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="linebreak-control" class="docs defaults">LINEBREAK control macros and defaults</h3>
+
+<p class="defaults">
+By default, mom marks
+<a href="definitions.html#linebreak">author linebreaks</a>
+with three centred asterisks (stars) in the prevailing colour of the
+document (by default, black). You can alter this with the control
+macros
+</p>
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#linebreak-char">LINEBREAK_CHAR</a></li>
+ <li><a href="#linebreak-color">LINEBREAK_COLOR</a></li>
+</ol>
+</div>
+
+<h4 id="linebreak-char" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Linebreak character</h4>
+<div class="box-macro-args">
+Macro: <b>LINEBREAK_CHAR</b> <kbd class="macro-args">[ &lt;character&gt; ] [ &lt;iterations&gt; [ &lt;vertical adjustment&gt; ] ]</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>SECTION_CHAR</b>
+</p>
+<p class="requires">
+&bull;&nbsp;The third optional argument requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+</p>
+
+<p>
+LINEBREAK_CHAR determines what mom prints when LINEBREAK is invoked.
+It takes 3 optional arguments: the character you want deposited at
+the line break, the number of times you want the character repeated,
+and a vertical adjustment factor.
+</p>
+
+<p>
+The first argument is any valid groff character (e.g. <kbd>*</kbd>
+[an asterisk], <kbd>\[dg]</kbd> [a dagger], <kbd>\f[ZD]\N'141'\fP</kbd>
+[an arbitrary character from Zapf Dingbats], <kbd>\l'4P'</kbd> [a
+4-pica long rule]). Mom sets the character centred on the current
+line length. (See <kbd>man groff_char</kbd> for a list of all
+valid groff characters.)
+</p>
+
+<p>
+The second argument is the number of times to repeat the character.
+</p>
+
+<p>
+The third argument is a +|-value by which to raise (-) or lower (+)
+the character in order to make it appear visually centred between
+sections of text. This lets you make vertical adjustments to
+characters that don&#8217;t sit on the
+<a href="definitions.html#baseline">baseline</a>
+(such as asterisks). The argument must be preceded by a plus or
+minus sign, and must include a unit of measure.
+</p>
+
+<p>
+If you enter LINEBREAK_CHAR with no arguments, sections of
+text will be separated by two blank lines when you invoke
+<kbd>.LINEBREAK</kbd>.
+</p>
+
+<p>
+Mom&#8217;s default for LINEBREAK_CHAR is
+<br/>
+<span class="pre-in-pp">
+ .LINEBREAK_CHAR * 3 -3p
+</span>
+i.e. three asterisks, raised 3 points from their normal vertical
+position (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>;
+the vertical adjustment is -2 points for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>).
+</p>
+
+<h4 id="linebreak-color" class="docs" style="margin-top: -.25em; margin-bottom: .5em;">2. Linebreak colour</h4>
+
+<div class="box-macro-args">
+Macro: <b>LINEBREAK_COLOR</b> <kbd class="macro-args">&lt;colourname&gt;</kbd>
+</div>
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>SECTION_COLOR</b>
+</p>
+
+<p>
+To change the colour of the linebreak character(s), simply invoke
+<kbd>.LINEBREAK_COLOR</kbd> with the name of a colour pre-defined
+(or &#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="quote-intro" class="macro-group">Quotes (line for line, poetry or code)</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#quote-description">Introduction</a>
+ <ul style="margin-left: -1.25em">
+ <li><a href="#quote-spacing">Quote spacing</a>
+ <ul style="margin-left: -1.25em">
+ <li><a href="#quote-spacing-notes">Notes on quote spacing</a></li>
+ </ul></li>
+ <li><a href="#no-shim">Disable shimming of quotes and blockquotes</a></li>
+ <li><a href="#float-quote">Keeping quotes and blockquotes together as a block</a></li>
+ <li><a href="#label-caption">Labelling/captioning quotes and blockquotes</a></li>
+ </ul></li>
+ <li><a href="#quote">Tag: QUOTE</a></li>
+ <li><a href="#quote-control">Quote control macros and defaults</a></li>
+</ul>
+
+<p id="quote-decription">
+<a href="definitions.html#quote">Quotes</a>
+are always set in
+<a href="definitions.html#filled">nofill mode</a>,
+flush left. This permits entering quotes on a line for line basis
+in your text editor and have them come out the same way on output
+copy. (See
+<a href="#blockquote-intro">Blockquotes</a>
+for how quotes, in the present sense, differ from longer passages of
+cited text.)
+</p>
+
+<p>
+Since mom originally came into being to serve the needs of creative
+writers (i.e. novelists, short story writers, etc.&mdash;not
+to cast aspersions on the creativity of mathematicians and
+programmers), she sets quotes in italics
+<a href="docprocessing.html#printstyle">(PRINTSTYLE <kbd>TYPESET</kbd>)</a>
+or underlined
+<a href="docprocessing.html#printstyle">(PRINTSTYLE <kbd>TYPEWRITE</kbd>)</a>,
+indented from the left margin. Obviously, she&#8217;s thinking
+&#8220;quotes from poetry or song lyrics&#8221;, but with the
+<a href="#quote-control">QUOTE control macros</a>
+you can change her defaults so QUOTE serves other needs, e.g.
+entering verbatim snippets of programming code, command-line
+instructions, and so on. (See the
+<a href="#code">CODE</a>
+for a convenience macro to assist in including code snippets in
+documents.)
+</p>
+
+<h3 id="quote-spacing" class="docs">QUOTE spacing</h3>
+
+<p>
+Besides indenting quotes, mom further sets them off from
+<a href="definitions.html#running">running text</a>
+with a small amount of vertical whitespace top and bottom. In
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
+this is always one full linespace. In
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>,
+it&#8217;s 1/2 of the prevailing
+<a href="definitions.html#leading">leading</a>
+if the quote fits fully on the page (i.e. with running text above
+and below it), otherwise it&#8217;s a full linespace either above
+or below as is necessary to balance the page to the bottom margin.
+This behaviour can be changed with the control macro
+<a href="#always-fullspace-quotes">ALWAYS_FULLSPACE_QUOTES</a>.
+</p>
+
+<div class="box-tip">
+<h3 id="quote-spacing-notes" class="docs" style="padding-top: 9px; font-size: 95%;">Notes on quote spacing</h3>
+
+<p style="margin-top: .5em">
+If your quote (or blockquote) leading differs from the document
+leading, mom attempts to observe the same rules for vertical
+whitespace outlined above; however, she will also insert a small,
+flexible amount of extra whitespace
+(<a href="docprocessing.html#shim-vs-flex">shim or flex-spacing</a>)
+around the quotes to make sure the whitespace is equal, top and
+bottom. When shimming is enabled, this may result in multiple
+quotes or blockquotes on the same page being spaced slightly
+differently.
+</p>
+
+<h4 id="no-shim" class="docs">Disable shimming/flex-spacing of quotes and blockquotes</h4>
+
+<p class="tip-bottom">
+If you don&#8217;t want the behaviour
+described above (i.e., you don&#8217;t want mom putting additional shim
+or flex-spacing around quotes and
+blockquotes), put <kbd>.NO_SHIM</kbd> or/and <kbd>.NO_FLEX</kbd>
+in the style sheet section of your document (i.e. after PRINTSTYLE
+but before START), which will disable shimming or/and flex-spacing
+globally for all tags, or disable shimming/flex-spacing
+on a per-instance basis prior to <kbd>.QUOTE</kbd> or
+<kbd>.BLOCKQUOTE</kbd>, re-enabling it after the terminating
+<kbd>.QUOTE&nbsp;OFF</kbd> or <kbd>.BLOCKQUOTE&nbsp;OFF</kbd> with
+<kbd>.NO_SHIM&nbsp;OFF</kbd> or <kbd>.NO_FLEX&nbsp;OFF</kbd>.
+</p>
+
+</div>
+
+<h3 id="float-quote" class="docs">Keeping QUOTEs and BLOCKQUOTEs together as a block</h3>
+
+<p>
+The text of quotes and blockquotes is output immediately, and may therefore
+start on one page and finish on the next. If you wish to keep the
+text together as a block, deferred to the following page if the
+block doesn&#8217;t all fit on one page, wrap
+<kbd><span class="nobr">(BLOCK)QUOTE...(BLOCK)QUOTE&nbsp;OFF</span></kbd>
+inside a
+<a href="images.html#floats-intro">float</a>.
+If you further wish to force a page break before the floated quote
+or blockquote (leaving whitespace at the bottom of the page, pass
+<a href="images.html#float">FLOAT</a>
+the <kbd>FORCE</kbd> argument.
+<span class="pre-in-pp">
+ .FLOAT FORCE
+ .QUOTE
+ Fly me to the moon
+ And let me play among the stars
+ Let me see what life is like
+ On Jupiter and Mars
+ .QUOTE END
+ .FLOAT OFF
+</span>
+</p>
+
+<h3 id="label-caption" class="docs">Labelling/captioning quotes and blockquotes</h3>
+
+<p>
+Quotes and blockquotes may be labelled and/or captioned identically to
+<a href="images.html#floats-intro">floats</a>
+with the macros
+<a href="images.html#label">LABEL</a>
+and
+<a href="images.html#caption">CAPTION</a>
+(see
+<a href="images.html#float-label-caption">Labelling and captioning floats</a>).
+</p>
+
+<!-- -QUOTE- -->
+
+<div class="macro-id-overline">
+<h3 id="quote" class="macro-id">QUOTE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>QUOTE</b> <kbd class="macro-args">[ ADJUST +|-&lt;space&gt; ] | &lt;anything&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The argument to <kbd style="font-style: normal">ADJUST</kbd> requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+QUOTE is a toggle macro. To begin a section of quoted text, invoke
+it with no argument, then type in your quote. When you&#8217;re
+finished, invoke <kbd>.QUOTE</kbd> with any argument (e.g. <kbd>OFF,
+END, X, Q</kbd>...) to turn it off. Example:
+<br/>
+<span class="pre-in-pp">
+ .QUOTE
+ Nymphomaniacal Jill
+ Used a dynamite stick for a thrill
+ They found her vagina
+ In North Carolina
+ And bits of her tits in Brazil.
+ .QUOTE END
+</span>
+Mom does her best to equalize whitespace around quotes and make
+sure the line following it falls on a valid baseline. On occasion,
+you may need to tweak the quote placement slightly, which is done
+by passing <kbd>ADJUST</kbd> to QUOTE with a plus or minus value.
+The quote will be lowered (<kbd>+</kbd>) or raised (<kbd>-</kbd>)
+<i>within the space allotted for it</i> by the given amount. For
+example, to lower a quote slightly within the space allotted for it,
+you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .QUOTE ADJUST +3p
+ There was a soprano named Golda
+ Whose lovers grew colda and colda
+ For during love-making
+ She'd sing the earth-shaking
+ Love theme from Tristan und Isolde.
+ .QUOTE off
+</span>
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+
+<h3 id="quote-control" class="docs defaults">QUOTE control macros and defaults</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#quote-general">Family/font/size/leading/colour/indent</a></li>
+ <li><a href="#always-fullspace-quotes">Spacing above and below quotes (typeset only)</a></li>
+ <li><a href="#underline-quotes">Underlining quotes (typewrite only)</a></li>
+</ol>
+</div>
+
+<h4 id="quote-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Family/font/size/colour/indent</h4>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following QUOTE control macros may also be
+<a href="#grouping">grouped</a>
+using QUOTE_STYLE. If you do so, <kbd>QUOTE_LEFT</kbd>, <kbd>QUOTE_CENTER</kbd>,
+and <kbd>QUOTE_RIGHT</kbd> must be entered as:
+<br/>
+<kbd>&nbsp;&nbsp;&nbsp;QUAD LEFT</kbd><br/>
+<kbd>&nbsp;&nbsp;&nbsp;QUAD CENTER</kbd><br/>
+<kbd>&nbsp;&nbsp;&nbsp;QUAD RIGHT</kbd>
+</p>
+
+<span class="pre defaults">
+.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)
+<a id="quote-autolead">.QUOTE_AUTOLEAD default = none; leading of quotes is the same as paragraphs </a>
+.QUOTE_COLOR default = black
+.QUOTE_INDENT (see below, "Quote indent")
+.QUOTE_LEFT -+ Quad direction of quote.
+.QUOTE_CENTER | LEFT observes QUOTE_INDENT;
+.QUOTE_RIGHT -+ CENTER and RIGHT do not
+</span>
+</div>
+
+<h4 id="quote-indent" class="docs" style="margin-top: -1.5em;">Quote indent</h4>
+
+<p>
+<kbd>QUOTE_INDENT</kbd> takes one of two kinds of argument: an integer
+representing the amount by which to multiply the argument passed to
+<a href="#para-indent"><kbd>.PARA_INDENT</kbd></a>
+(by default, 2
+<a href="definitions.html#em">ems</a>
+for TYPESET, 3
+<a href="definitions.html#picaspoints">picas</a>
+for TYPEWRITE) to arrive at the quote indent, or a distance with a
+<a href="definitions.html#unitofmesaure">unit of measure</a>
+appended.
+</p>
+
+<p>
+Be careful when using QUOTE. If a quote is set flush left (the
+default), the QUOTE_INDENT applies only to the left margin. Because
+quote lines are output as-is (see
+<a href="definitions.html#no-fill">no-fill mode</a>),
+they do not respect line length and may extend beyond a document's
+right margin. Similarly, if a quote is being set flush right, the
+indent applies only to the right margin; long lines may extend into
+the left margin. Centered quotes are never indented, so long lines
+may extend beyond both the left and right margins.
+</p>
+
+<p>
+The default value for QUOTE_INDENT is 3 (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>)
+and 1 (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your PARA_INDENT is 0 (i.e. no indenting of the first line of
+paragraphs), you <i>must</i> set a QUOTE_INDENT yourself, with a
+unit of measure appended to the argument. Mom has no default for
+QUOTE_INDENT if paragraph first lines are not being indented.
+</p>
+</div>
+
+<h4 id="always-fullspace-quotes" class="docs" style="margin-top: -.25em;">2. Spacing above and below quotes (typeset only)</h4>
+
+<p>
+If you&#8217;d like mom always to put a full linespace above and
+below quotes, invoke
+<br/>
+<span class="pre-in-pp">
+ .ALWAYS_FULLSPACE_QUOTES
+</span>
+with no argument. If you wish to restore mom&#8217;s
+default behaviour regarding the spacing of quotes (see
+<a href="#quote-spacing">Quote spacing</a>),
+invoke the macro with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>...)
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+This macro also sets mom&#8217;s spacing policy for
+<a href="#blockquote-intro">blockquotes</a>.
+</p>
+</div>
+
+<h4 id="underline-quotes" class="docs" style="margin-top: -.25em;">3. Underlining quotes (typewrite only)</h4>
+
+<p>
+By default in
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom underlines quotes. If you&#8217;d rather she didn&#8217;t,
+invoke <kbd>.UNDERLINE_QUOTES</kbd> with any argument
+(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...)
+to disable the feature. Invoke it without an argument to restore
+mom&#8217;s default underlining of quotes.
+</p>
+
+<p>
+If you not only wish that mom not underline quotes, but also that
+she set them in italic, you must follow each instance of QUOTE with
+the typesetting macro
+<a href="typesetting.html#font">FT I</a>.
+Furthermore, since mom underlines all instances of italics by
+default in PRINTSTYLE&nbsp;TYPEWRITE, you must also make sure that
+ITALIC_MEANS_ITALIC is enabled (see
+<a href="docprocessing.html#typewrite-control">PRINTSTYLE TYPEWRITE control macros</a>).
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="blockquote-intro" class="macro-group">Blockquotes (cited material)</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#blockquote-description">Introduction</a></li>
+ <li><a href="#blockquote">Tag: BLOCKQUOTE</a></li>
+ <li><a href="#blockquote-control">BLOCKQUOTE control macros</a></li>
+</ul>
+
+<p id="blockquote-description">
+<a href="definitions.html#blockquote">Blockquotes</a>
+are used to cite passages from another author&#8217;s work. So that
+they stand out well from
+<a href="definitions.html#running">running text</a>,
+mom indents them from both the left and right margins and sets them
+in a different point size
+(<a href="docprocessing.html#printstyle">PRINTSTYLE TYPESET</a>
+only).
+<a href="definitions.html#outputline">Output lines</a>
+are
+<a href="definitions.html#filled">filled</a>,
+and, by default,
+<a href="definitions.html#quad">quadded</a>
+left.
+</p>
+
+<p>
+Besides indenting blockquotes, mom further sets them off from
+running text with a small amount of vertical whitespace top and
+bottom. (See
+<a href="#quote-spacing">Quote spacing</a>
+for a complete explanation of how this is managed, and how
+to control it.)
+</p>
+
+<p>
+Additional information concerning blockquotes, floats, and labelling
+blockquotes can be found in the sections
+<a href="#float-quote">Keeping quotes and blockquotes together as a block</a>,
+and
+<a href="#label-caption">Labelling/captioning quotes and blockquotes</a>.
+</p>
+
+<!-- -BLOCKQUOTE- -->
+
+<div class="macro-id-overline">
+<h3 id="blockquote" class="macro-id">BLOCKQUOTE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>BLOCKQUOTE</b> <kbd class="macro-args">[ ADJUST +|-&lt;space&gt; ] | &lt;anything&gt;</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Aliases: </i> <b>CITE, CITATION</b>
+</p>
+
+<p class="requires">
+&bull;&nbsp;The argument to <kbd style="font-style: normal">ADJUST</kbd> requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+BLOCKQUOTE is a toggle macro. To begin a cited passage, invoke
+the tag with no argument, then type in your blockquote. When
+you&#8217;re finished, invoke <kbd>.BLOCKQUOTE</kbd> with any
+argument (e.g. <kbd>OFF, END, X, Q</kbd>...) to turn it off.
+Example:
+<br/>
+<span class="pre-in-pp">
+ .BLOCKQUOTE
+ Redefining the role of the United States from enablers to keep
+ the peace to enablers to keep the peace from peacekeepers is
+ going to be an assignment.
+ .RIGHT
+ \[em]George W. Bush
+ .BLOCKQUOTE END
+</span>
+If the cited passage runs to more than one paragraph, you must
+introduce each paragraph&mdash;including the first&mdash;with
+<kbd><a href="#pp">.PP</a></kbd>.
+</p>
+
+<p>
+Mom does her best to equalize whitespace around blockquotes and make
+sure the line following it falls on a valid baseline. On occasion,
+you may need to tweak the blockquote placement slightly, which is
+done by passing <kbd>ADJUST</kbd> to BLOCKQUOTE with a plus or minus
+value. The blockquote will be lowered (<kbd>+</kbd>) or raised
+(<kbd>-</kbd>) <i>within the space allotted for it</i> by the given
+amount. For example, to raise a blockquote slightly within the
+space allotted for it, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .BLOCKQUOTE ADJUST -3p
+ True! - nervous - very, very dreadfully nervous I had been and
+ am; but why will you say that I am mad? The disease had sharpened
+ my senses - not destroyed - not dulled them.
+ .RIGHT
+ \[em]Edgar Allen Poe, The Tell-Tale Heart
+ .QUOTE off
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The aliases CITE and CITATION may be used in place of the BLOCKQUOTE
+tag, as well as in any of the control macros that begin or end with
+BLOCKQUOTE_.
+</p>
+</div>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="blockquote-control" class="docs defaults">BLOCKQUOTE control macros and defaults</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#blockquote-general">Family/font/size/leading/colour/quad/indent</a></li>
+ <li><a href="#bq-always-fullspace-quotes">Spacing above and below (typeset only)</a></li>
+</ol>
+</div>
+
+<h4 id="blockquote-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Family/font/size/colour/quad/indent</h4>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following BLOCKQUOTE control macros may also be
+<a href="#grouping">grouped</a>
+using BLOCKQUOTE_STYLE.
+</p>
+<span class="pre defaults">
+.BLOCKQUOTE_FAMILY default = prevailing document family; default is Times Roman
+.BLOCKQUOTE_FONT default = roman
+.BLOCKQUOTE_SIZE default = -1 (point)
+<a id="blockquote-autolead">.BLOCKQUOTE_AUTOLEAD default = none; leading of blockquotes is the same as paragraphs</a>
+.BLOCKQUOTE_COLOR default = black
+.BLOCKQUOTE_QUAD default = left
+.BLOCKQUOTE_INDENT (see below)
+</span>
+</div>
+
+<h4 id="blockquote-indent" class="docs" style="margin-top: -1.5em;">Blockquote indent</h4>
+
+<p>
+<kbd>BLOCKQUOTE_INDENT</kbd> takes one of two kinds of argument: an
+integer representing the amount by which to multiply the argument
+passed to
+<a href="#para-indent">PARA_INDENT</a>
+(by default, 2
+<a href="definitions.html#em">ems</a>
+for TYPESET, 3
+<a href="definitions.html#picaspoints">picas</a>
+for TYPEWRITE) to arrive at the blockquote indent, or a distance with a
+<a href="definitions.html#unitofmesaure">unit of measure</a>
+appended. Both result in blockquotes being indented equally from
+the left and right margins.
+</p>
+
+<p>
+The default value for BLOCKQUOTE_INDENT is 3 (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>)
+and 1 (for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your PARA_INDENT is 0 (i.e. no indenting of the first line of
+paragraphs), you must set a BLOCKQUOTE_INDENT yourself, with
+a unit of measure appended to the argument. Mom has no default for
+BLOCKQUOTE_INDENT if paragraph first lines are not being indented.
+</p>
+</div>
+
+
+
+<h4 id="bq-always-fullspace-quotes" class="docs">2. Spacing above and below blockquotes (typeset only)</h4>
+
+<p>
+If you&#8217;d like mom always to put a full linespace above and
+below blockquotes, invoke
+<br/>
+<span class="pre-in-pp">
+ .ALWAYS_FULLSPACE_QUOTES
+</span>
+with no argument. If you wish to restore mom&#8217;s default
+behaviour regarding the spacing of blockquotes (see
+<a href="#quote-spacing">Quote spacing</a>),
+invoke the macro with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>...).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+This macro also sets mom&#8217;s spacing policy for
+<a href="#quote-intro">quotes</a>.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="code-intro" class="macro-group">Inserting code into a document</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#code">Tag: CODE</a></li>
+ <li><a href="#code-control">CODE control macros and defaults</a></li>
+</ul>
+
+<p>
+CODE is a convenience macro that facilitates entering code blocks
+into documents. Its use is not restricted to documents created
+using mom&#8217;s document processing macros; it can be used for
+&#8220;manually&#8221; typeset documents as well.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="code" class="macro-id">CODE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CODE</b> <kbd class="macro-args">[BR | BREAK | SPREAD] &lt;anything&gt;</kbd>
+</div>
+
+<p class="requires" style="font-style: normal">
+Inline escape: <b><kbd>\*[CODE]</kbd></b>
+</p>
+
+<p>
+When you invoke the macro CODE or insert
+<kbd><span class="nobr">\*[CODE]</span></kbd> into running text, mom switches to
+a
+<a href="definitions.html#fixedwidthfont">fixed-width font</a>
+(Courier, by default) and turns
+<a href="goodies.html#smartquotes">SMARTQUOTES</a>
+off.
+</p>
+
+<p>
+If your code includes the backslash character, which is
+groff&#8217;s escape character, you will have to change the
+escape character temporarily to something else with the macro
+<a href="goodies.html#esc-char">ESC_CHAR</a>.
+Mom has no way of knowing what special characters you&#8217;re going
+to use in code snippets, therefore she cannot automatically replace
+the escape character with something else.
+</p>
+
+<p>
+The correct order for changing the escape character inside
+<kbd>CODE</kbd> is
+<span class="pre-in-pp">
+ .CODE
+ .ESC_CHAR character
+ &lt;code&gt;
+ .ESC_CHAR \
+ .CODE OFF
+</span>
+Be aware that changing the escape character prevents subsequent
+macros, which require that the backslash be the escape character,
+from functioning correctly. Therefore, do not introduce any macros
+into your CODE block without first restoring the escape character to
+its default.
+</p>
+
+<p>
+Alternatively, you can enter the backslash character as
+<kbd>\e</kbd> or <kbd>\\</kbd> (two backslashes), which tells groff
+to print a literal backslash.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="tip">Note:</span>
+<kbd>.CODE</kbd> does not cause a line break when
+you&#8217;re in a
+<a href="definitions.html#filled">fill mode</a>
+(i.e.
+<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD</a>
+<kbd>LEFT, CENTER,</kbd> or <kbd>RIGHT</kbd>).
+If you want CODE to deposit a break, invoke <kbd>.CODE</kbd> with
+the argument <kbd>BR</kbd> (or <kbd>BREAK</kbd>). If, in addition
+to having mom break the line before <kbd>.CODE</kbd>, you want her
+to
+<a href="definitions.html#force">force justify</a>
+it as well, invoke <kbd>.CODE</kbd> with the argument,
+<kbd>SPREAD</kbd>. If, in addition to breaking the line before CODE
+you want a break afterwards, you must supply it manually with
+<a href="typesetting.html#br">BR</a>
+unless what follows immediately is a macro that automatically causes
+a break (e.g.
+<a href="#pp">PP</a>).
+</p>
+
+<p id="quote-code" class="tip-bottom">
+In all likelihood, if you want the situation described above (i.e. a
+break before and after CODE), what you probably want is to use
+<a href="quote">QUOTE</a>
+in conjunction with CODE, like this:
+<br/>
+<span class="pre-in-pp">
+ .QUOTE
+ .CODE
+ $ echo "Hello, world" | sed -e 's/Hello,/Goodbye, cruel/'
+ .QUOTE OFF
+</span>
+QUOTE takes care of breaking both the text and the code, as well as
+indenting the code and offsetting it from
+<a href="definitions.html#running">running text</a>
+with vertical whitespace. Notice that <kbd>.CODE</kbd>, above, has
+no corresponding <kbd>.CODE OFF</kbd>. <kbd>.CODE</kbd> inside a QUOTE
+does not require a terminating <kbd>.CODE&nbsp;OFF</kbd>, which risks
+introducing unwanted vertical whitespace.
+</p>
+</div>
+
+<p>
+Passing any argument other than <kbd>BR</kbd>, <kbd>BREAK</kbd> or
+<kbd>SPREAD</kbd> to CODE (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>, etc) turns CODE off and returns the
+family, font, and smartquotes back to their former state.
+</p>
+
+<h4 class="docs" style="font-size: 102%">Using <kbd>\*[CODE]</kbd> inline</h4>
+
+<p>
+<kbd><span class="nobr">\*[CODE]</span></kbd> invokes <kbd>.CODE</kbd>, allowing you to
+bracket code snippets inline. It does not accept the <kbd>BR</kbd>,
+<kbd>BREAK</kbd>, or <kbd>SPREAD</kbd> arguments. It is most useful
+for short snippets, as in the following example.
+<br/>
+<span class="pre-in-pp">
+ \*[CODE]apropos\*[CODE X] and \*[CODE]man&nbsp;-k\*[CODE X] are identical.
+</span>
+</p>
+
+<p>
+<kbd><span class="nobr">\*[CODE]</span></kbd> does not permit changing the escape
+character, so <kbd>\e</kbd> or a doubled backslash must be used.
+Furthermore, if your code starts with a period, you must enter it as
+&#8220;<kbd>\&amp;.</kbd>&#8221;.
+<br/>
+<span class="pre-in-pp">
+ Registers are created with the \*[CODE]\&amp;.nr\*[CODE X] request.
+</span>
+</p>
+
+<h4 class="docs" style="font-size: 102%; margin-top: -1em">CODE and punctuation</h4>
+
+<p>
+<kbd>.CODE&nbsp;OFF</kbd> automatically inserts a word space into
+running text. If your CODE block is to be followed by punctuation
+with the parameters of
+<a href="definitions.html#running">running text</a>,
+you must terminate the block with &#8220;<kbd>\c</kbd>&#8221; and
+enter the punctuation at the beginning of the next input line. If
+the punctuation mark is a period or an apostrophe, you must precede
+it with
+&#8220;<kbd>\&amp;</kbd>&#8221;.
+<br/>
+<span class="pre-in-pp">
+ ...for example,
+ .CODE
+ echo "Hello, world" | sed -e 's/Hello,/Goodbye, cruel/'\c
+ .CODE OFF
+ \&amp;. As this demonstrates...
+</span>
+Use of <kbd><span class="nobr">\*[CODE]</span></kbd> inline does not require
+the <kbd>\c</kbd>, however periods and apostrophes after
+<kbd><span class="nobr">\*[CODE&nbsp;X]</span></kbd> still need to be introduced
+with <kbd>\&amp;</kbd>, as in this example:
+<br/>
+<span class="pre-in-pp">
+ ...append the unit of measure \*[CODE]p\*[CODE&nbsp;OFF]\&amp;. New sentence...
+</span>
+</p>
+
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="code-control" class="docs defaults">CODE control macros and defaults</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#code-general">Family/Font/Colour</a></li>
+ <li><a href="#code-size">Size</a></li>
+</ol>
+</div>
+
+<h4 id="code-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Family/font/colour</h4>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following CODE control macros may also be
+<a href="#grouping">grouped</a>
+using CODE_STYLE.
+</p>
+<span class="pre defaults">
+.CODE_FAMILY default = Courier
+.CODE_FONT default = roman; see Note
+.CODE_COLOR default = black
+
+Note: Unlike other control macros, CODE_FONT sets the code font for both
+PRINTSTYLE TYPESET and PRINTSTYLE TYPEWRITE.
+</span>
+</div>
+
+<h4 id="code-size" class="docs" style="margin-top: -1.25em;">2. Size</h4>
+
+<p>
+CODE_SIZE works a little differently from the other _SIZE macros
+(see <a href="#control-macro-args">Arguments to the control
+macros</a>). The argument you pass it is a percentage of the
+prevailing document point size. It does not require a prepended
+plus (<kbd>+</kbd>) or minus (<kbd>-</kbd>) sign, nor an appended
+percent sign (<kbd>%</kbd>). Thus, if you want the point size of your CODE font to be
+90% of the prevailing document point size, you enter:
+<br/>
+<span class="pre-in-pp">
+ .CODE_SIZE 90
+</span>
+Fixed-width fonts have notoriously whimsical
+<a href="definitions.html#xheight">x-heights</a>,
+meaning that they frequently look bigger (or, in some cases,
+smaller) than the type surrounding them, even if they&#8217;re
+technically the same point size. CODE_SIZE lets you choose a
+percentage of the prevailing point size for your fixed-width
+CODE font so it doesn&#8217;t look gangly or minuscule in relation
+to the type around it. All invocations of <kbd>.CODE</kbd> or
+<kbd><span class="nobr">\*[CODE]</span></kbd> will use this size, so that if you
+decide to change the prevailing point size of your document, the
+CODE font will be scaled proportionally.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="list-intro" class="macro-group">Nested lists</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#list">Tag: LIST</a></li>
+ <li><a href="#item">Tag: ITEM</a></li>
+ <li><a href="#list-control">LIST control macros and defaults</a></li>
+</ul>
+
+<p>
+Lists are points or items of interest or importance that are
+separated from
+<a href="definitions.html#running">running text</a>
+by enumerators. Some typical enumerators are
+<a href="definitions.html#em">en-dashes</a>,
+<a href="definitions.html#bullet">bullets</a>,
+digits and letters.
+</p>
+
+<p>
+Setting lists with mom is easy. First, you initialize a list with
+the LIST macro. Then, for every item in the list, you invoke
+the macro <kbd>.ITEM</kbd> followed by the text of the item.
+When a list is finished, you exit the list with
+<kbd>.LIST&nbsp;OFF</kbd> (or <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>BACK</kbd>, etc.)
+</p>
+
+<p>
+By default mom starts each list with the enumerator flush with the
+left margin of running text that comes before it, like this:
+<br/>
+<span class="pre-in-pp">
+ My daily schedule needs organising. I can&#8217;t
+ seem to get everything done I want.
+ o an hour&#8217;s worth of exercise
+ o time to prepare at least one healthy
+ meal per day
+ o reading time
+ o work on mom
+ o writing
+ - changes from publisher
+ - current novel
+ o a couple of hours at the piano
+</span>
+In other words, mom does not, by default, indent entire lists.
+Indenting a list is controlled by the macro
+<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, mom does not add any
+extra space above or below lists.
+</p>
+
+<p>
+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 <kbd>.LIST&nbsp;OFF</kbd> (you may prefer to use
+<kbd>.LIST&nbsp;BACK</kbd>) takes you back to the previous depth
+(or level) of list, with that list&#8217;s enumerator and indent
+intact. The final <kbd>.LIST&nbsp;OFF</kbd> exits lists completely
+and returns you to the left margin of running text.
+</p>
+
+<p>
+If
+<kbd><a href="typesetting.html#quad">QUAD CENTER</a></kbd>
+is in effect when LIST is invoked, the list is set quad left but
+centred on the page as a block, based on the longest line of list
+text. Equally, if <kbd>QUAD RIGHT</kbd> in in effect, the list is
+set flush left but quadded right as a block. If you want a centred
+or right-quadded list in an otherwise left-quadded or justified
+document, simply invoke <kbd>.QUAD&nbsp;&lt;direction&gt;</kbd>
+before the list and reset the quad afterwards. Do not use
+<kbd><a href="typesetting.html#lrc">CENTER</a></kbd>
+or
+<kbd><a href="typesetting.html#lrc">RIGHT</a></kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom centres lists over the entire line length, disregarding
+<a href="typesetting.html#ib">IB</a>
+if it is in effect. If there are lines in the list that exceed
+the margins of IB, they must be broken manually with
+<kbd>.BR</kbd> if you wish to keep them within the indented margins.
+</p>
+</div>
+
+<p>
+Finally, lists can be used in documents created with either the
+<a href="docprocessing.html#top">document processing macros</a>
+or just the
+<a href="typesetting.html#top">typesetting macros</a>.
+</p>
+
+<!-- -LIST- -->
+
+<div class="macro-id-overline">
+<h3 id="list" class="macro-id">LIST</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LIST</b> <kbd class="macro-args">[ BULLET | DASH | DIGIT | ALPHA | alpha | ROMAN&lt;n&gt; | roman&lt;n&gt; | USER &lt;user-defined enumerator&gt; | PLAIN | VARIABLE &lt;character&gt;] [ &lt;separator&gt; ] [ &lt;prefix&gt; ] [ &lt;anything&gt; ]</kbd>
+</div>
+
+<p>
+Invoked by itself (i.e. with no argument), LIST
+initializes a list with bullets as the default enumerator.
+Afterwards, each block of input text preceded by
+<kbd><a href="#item">.ITEM</a></kbd>,
+on a line by itself, is treated as a list item.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Every time you invoke <kbd>.LIST</kbd> 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 mom&#8217;s default enumerator, which is a
+bullet. Within nested lists, mom stores the enumerator, separator
+and indent for any list you return <i>backwards</i> to (i.e. with
+<kbd>.LIST OFF</kbd>), but does not store any information for lists
+you move <i>forward</i> to.
+</p>
+</div>
+
+<p>
+There are a lot of arguments (be sure to side-scroll through them
+all, above), so I&#8217;ll discuss them one at a time here.
+</p>
+<h3 class="docs">The first argument &ndash; enumerator style</h3>
+
+<p>
+The optional arguments <kbd>BULLET</kbd>, <kbd>DASH</kbd>,
+<kbd>DIGIT</kbd> (for Arabic numerals), <kbd>ALPHA</kbd> (for
+uppercase letters), <kbd>alpha</kbd> (for lowercase letters),
+<kbd>ROMAN&lt;n&gt;</kbd> (for uppercase roman numerals),
+<kbd>roman&lt;n&gt;</kbd> (for lowercase roman numerals) tell
+mom what kind of enumerator to use for a given list.
+</p>
+
+<p>
+The arguments, <kbd>ROMAN&lt;n&gt;</kbd> and
+<kbd>roman&lt;n&gt;</kbd>, are special. You must append to them
+a digit (arabic, e.g. "1" or "9" or "17") saying how many items a
+particular roman-numeraled LIST is going to have. Mom requires this
+information in order to align roman numerals sensibly, and will
+abort&mdash;with a message &mdash; if you don&#8217;t provide it.
+(For setting roman numeral and digit lists with the enumerators
+aligned flush right&mdash;the default is flush left&mdash;see
+<a href="#pad-list-digits">PAD_LIST_DIGITS</a>.)
+</p>
+
+<p>
+A roman-numeraled list containing, say, five items, would be set
+up like this:
+<br/>
+<span class="pre-in-pp">
+ .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
+</span>
+</p>
+
+<p>
+The argument <kbd>VARIABLE&nbsp;&lt;character&gt;</kbd> lets
+you choose different enumerators for the items in a list.
+<kbd>&lt;character&gt;</kbd> is the widest enumerator to
+be used. Thus, if you have a list enumerated by both bullets
+and em-dashes, you&#8217;d set it up with
+<br/>
+<span class="pre-in-pp">
+ .LIST VARIABLE \[em]
+</span>
+and select the enumerator you want with
+<br/>
+<span class="pre-in-pp">
+ .ITEM \[em]
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .ITEM \[bu]
+</span>
+If your enumerator contains spaces, you must enclose the
+<kbd>&lt;character&gt;</kbd> argument in both LIST and ITEM in
+double-quotes, e.g.
+<br/>
+<span class="pre-in-pp">
+ .LIST VARIABLE "\*[UP 1p]\[bu]\*[DOWN 1p]"
+ .ITEM "\*[UP 1p]\[bu]\*[DOWN 1p]"
+</span>
+</p>
+
+<p>
+The argument <kbd>USER</kbd> lets you make up your own enumerator,
+and must be followed by a second argument: what you&#8217;d like the
+enumerator to look like. For example, if you want a list enumerated
+with <kbd>=&gt;</kbd>,
+<br/>
+<span class="pre-in-pp">
+ .LIST USER =&gt;
+ .ITEM
+ A list item
+</span>
+
+will produce
+<br/>
+<span class="pre-in-pp">
+ =&gt; A list item
+</span>
+Some useful special groff characters you might want to pass to
+<kbd>USER</kbd> are:
+<span class="pre-in-pp">
+ \[sq] - square box
+ \[rh] - pointing hand
+ \[-&gt;] - right arrow
+ \[rA] - right double arrow
+ \[OK] - checkmark
+</span>
+The size and vertical positioning of special characters may be
+adjusted with
+<a href="definitions.html#inlines">inline escapes</a>
+in the argument passed to USER. For example, to raise the position
+of <kbd><span class="nobr">\[sq]</span></kbd> slightly, you might do
+<span class="pre-in-pp">
+ .LIST USER "\*[UP .25p]\[sq]\*[DOWN .25p]"
+ or
+ .LIST USER \v'-.25p'\[sq]\v'.25p'
+</span>
+</p>
+
+<p>
+The argument <kbd>PLAIN</kbd> initializes a list with no enumerator.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If the argument to <kbd>USER</kbd> contains spaces, you must enclose
+the argument in double quotes.
+</p>
+</div>
+
+<h3 class="docs">The second argument &ndash; separator style</h3>
+
+<p>
+If you choose <kbd>DIGIT</kbd>, <kbd>ALPHA</kbd>, <kbd>alpha</kbd>,
+<kbd>ROMAN&lt;n&gt;</kbd>, or <kbd>roman&lt;n&gt;</kbd>, you may
+enter the optional argument, <kbd>separator</kbd>, to say what kind
+of separator you want after the enumerator. The separator can be
+anything you like. The default for <kbd>DIGIT</kbd> is a period
+(dot), like this:
+<br/>
+<span class="pre-in-pp">
+ 1. A list item
+</span>
+The default separator for <kbd>ALPHA</kbd>, <kbd>alpha</kbd>,
+<kbd>ROMAN&lt;n&gt;</kbd> and <kbd>roman&lt;n&gt;</kbd> is a right
+parenthesis, like this:
+<br/>
+<span class="pre-in-pp">
+ a) An alpha-ed list item
+ b) A second alpha-ed list item
+</span>
+If you&#8217;d prefer, say, digits with right-parenthesis separators
+instead of the default period, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .LIST DIGIT )
+ .ITEM
+ A numbered list item
+</span>
+which would produce
+<br/>
+<span class="pre-in-pp">
+ 1) A numbered list item
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>BULLET</kbd>, <kbd>DASH</kbd> and <kbd>USER</kbd> do not take a
+separator.
+</p>
+</div>
+
+<h3 class="docs">The third argument &ndash; prefix style</h3>
+
+<p>
+Additionally, you may give a prefix (i.e. a character
+that comes <i>before</i> the enumerator) when your
+enumerator style for a particular list is <kbd>DIGIT</kbd>,
+<kbd>ALPHA</kbd>, <kbd>alpha</kbd>, <kbd>ROMAN&lt;n&gt;</kbd> or
+<kbd>roman&lt;n&gt;</kbd>. In the arguments to LIST, the prefix
+comes <i>after</i> the separator, which is counter-intuitive,
+so please be careful.
+</p>
+
+<p>
+A prefix can be anything you like. Most likely, you&#8217;ll want
+some kind of open-bracket, such as a left parenthesis. If, for
+example, you want a <kbd>DIGIT</kbd> list with the numbers enclosed
+in parentheses, you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .LIST DIGIT ) (
+ .ITEM
+ The first item on the list.
+ .ITEM
+ The second item on the list.
+</span>
+which would produce
+<br/>
+<span class="pre-in-pp">
+ (1) The first item on the list.
+ (2) The second item on the list.
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>BULLET</kbd>, <kbd>DASH</kbd> and
+<kbd>USER</kbd> do not take a prefix.
+</p>
+</div>
+
+<h3 class="docs">Exiting lists &ndash; LIST OFF / BACK or QUIT_LISTS</h3>
+
+<p>
+Any single argument to <kbd>LIST</kbd> other than
+<kbd>BULLET</kbd>, <kbd>DASH</kbd>, <kbd>DIGIT</kbd>,
+<kbd>ALPHA</kbd>, <kbd>alpha</kbd>, <kbd>ROMAN&lt;n&gt;</kbd>,
+<kbd>roman&lt;n&gt;</kbd> or <kbd>USER</kbd> (e.g.
+<kbd>LIST&nbsp;OFF</kbd> or <kbd>LIST&nbsp;BACK</kbd>) takes you out
+of the current list.
+</p>
+
+<p>
+If you are at the first list-level (or list-depth), mom returns you
+to the left margin of running text. Any indents that were in effect
+prior to setting the list are fully restored.
+</p>
+
+<p>
+If you are in a nested list, mom moves you back one list-level
+(i.e., does not take you out of the list structure) and restores the
+enumerator, separator and indent appropriate to that level.
+</p>
+
+<p>
+Each invocation of <kbd>.LIST</kbd> should thus be matched by
+a corresponding <kbd>.LIST&nbsp;OFF</kbd> in order to fully exit
+lists. For example,
+<br/>
+<span class="pre-in-pp">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+ o List item in level 1
+ o List item in level 1
+ - List item in level 2
+ - List item in level 2
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+</span>
+is created like this:
+<br/>
+<span class="pre-in-pp">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+ .LIST BULLET
+ .ITEM
+ List item in level 1
+ .ITEM
+ List item in level 1
+ .LIST DASH
+ .ITEM
+ List item in level 2
+ .ITEM
+ List item in level 2
+ .LIST OFF \" Turn level 2 list off
+ .LIST OFF \" Turn level 1 list off
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+</span>
+Alternatively, you may use the single-purpose macro
+<kbd>.QUIT_LISTS</kbd>, to get yourself out of a list structure. In
+the example above, the two <kbd>.LIST&nbsp;OFF</kbd> lines could be
+replaced with a single <kbd>.QUIT_LISTS</kbd>.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="item" class="macro-id">ITEM</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ITEM</b> <kbd class="macro-args">[&lt;enumerator&gt;] [&lt;space&gt;]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The argument to <kbd style="font-style: normal">&lt;space&gt;</kbd> requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+After you&#8217;ve initialized a list with
+<a href="#list">LIST</a>,
+precede each item you want in the list with <kbd>.ITEM</kbd>. Mom
+takes care of everything else with respect to setting the item
+appropriate to the list you&#8217;re in.
+</p>
+
+<p>
+If you&#8217;ve chosen the <kbd>VARIABLE</kbd> argument when
+invoking LIST, ITEM must be followed by an enumerator character.
+</p>
+
+<p>
+If you give ITEM a space argument, either by itself or after a
+variable enumerator character, the item will be spaced by the amount
+of the argument.
+</p>
+
+<p>
+In document processing, it is valid to have list items that contain
+multiple paragraphs. Simply issue a
+<kbd><a href="#pp">.PP</a></kbd>
+request for each paragraph <i>following</i> the first item.
+I.e., don&#8217;t do this:
+<br/>
+<span class="pre-in-pp">
+ .ITEM
+ .PP
+ Some text...
+ .PP
+ A second paragraph of text
+</span>
+but rather
+<br/>
+<span class="pre-in-pp">
+ .ITEM
+ Some text...
+ .PP
+ A second paragraph of text
+</span>
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="list-control" class="docs defaults">LIST control macros and defaults</h3>
+
+<p style="margin-top: 0; margin-left: .5em">
+LIST control macros may not be
+<a href="#grouping">grouped</a>.
+</p>
+
+<ol style="margin-top: -.5em; padding-left: 1.5em; padding-bottom: .5em;">
+ <li><a href="#shift-list">Indenting lists (SHIFT_LIST)</a></li>
+ <li><a href="#reset-list">Resetting an initialized list&#8217;s enumerator (RESET_LIST)</a></li>
+ <li><a href="#pad-list-digits">Padding digit enumerators (PAD_LIST_DIGITS)</a></li>
+</ol>
+</div>
+
+<h4 id="shift-list" class="docs" style="margin-top: -1.5em;">1. Indenting lists &ndash; SHIFT_LIST</h4>
+
+<p>
+If you want a list to be indented to the right of running text, or
+indented to the right of a current list, use the macro SHIFT_LIST
+immediately after
+<a href="#list">LIST</a>.
+SHIFT_LIST takes just one argument: the amount by which you want the
+list shifted to the right. The argument requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+</p>
+
+<p>
+SHIFT_LIST applies only to the list you just initialized with LIST.
+It does not carry over from one invocation of LIST to the next.
+However, the indent remains in effect when you return to a list
+level in a nested list.
+</p>
+
+<p>
+For example, if you want a 2-level list, with each list indented to
+the right by 18
+<a href="definitions.html#picaspoints">points</a>,
+<br/>
+<span class="pre-in-pp">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+ .LIST \" List 1
+ .SHIFT_LIST 18p \" Indent 18 points right of running text
+ .ITEM
+ List 1 item
+ .ITEM
+ List 1 item
+ .LIST DASH \" List 2
+ .SHIFT_LIST 18p \" Indent 18 points right of list 1
+ .ITEM
+ List 2 item
+ .ITEM
+ List 2 item
+ .LIST OFF \" Move back to list 1
+ .ITEM
+ List 1 item
+ .ITEM
+ List 1 item
+ .LIST OFF \" Exit lists
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+</span>
+produces (approximately)
+<br/>
+<span class="pre-in-pp">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+ &bull; List 1 item
+ &bull; List 1 item
+ - List 2 item
+ - List 2 item
+ &bull; List 1 item
+ &bull; List 1 item
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore.
+</span>
+</p>
+
+<h4 id="reset-list" class="docs" style="margin-top: -.25em;">2. Resetting an initialized list&#8217;s enumerator &ndash; RESET_LIST</h4>
+
+<p>
+In nested lists, if your choice of enumerator for a given level
+of list is <kbd>DIGIT</kbd>, <kbd>ALPHA</kbd>, <kbd>alpha</kbd>,
+<kbd>ROMAN</kbd> or <kbd>roman</kbd>, you may sometimes want to
+reset the list&#8217;s enumerator when you return to that list.
+Consider the following:
+<br/>
+<span class="pre-in-pp">
+ Things to do religiously each and every day:
+ &bull; take care of the dog
+ a) walk every day
+ b) brush once a week
+ - trim around the eyes every fourth brushing
+ - don&#8217;t forget to check nails
+ &bull; feed the cat
+ d) soft food on Mon., Wed. and Fri.
+ e) dry food on Tues., Thurs. and Sat.
+ f) canned tuna on Sunday
+</span>
+</p>
+
+<p>
+The alpha-enumerated items under &#8220;Feed the cat&#8221;
+would be normally a), b), c), but we want d), e), f). The
+solution is to reset the second <kbd>.LIST alpha</kbd>&#8217;s
+enumerator&mdash;before the first <kbd>.ITEM</kbd>&mdash;with
+the macro RESET_LIST.
+</p>
+
+<p>
+With no argument, <kbd>.RESET_LIST</kbd> resets an incrementing
+enumerator to 1, A, a, I or i depending on the style of enumerator.
+If you pass <kbd>.RESET_LIST</kbd> a
+<a href="definitions.html#numericargument">numeric argument</a>,
+it represents the starting position for an incrementing enumerator. In
+the example above, <kbd>.RESET_LIST 4</kbd>&nbsp;starts the second
+alpha-ed list at d).
+</p>
+
+<h4 id="pad-list-digits" class="docs" style="margin-top: -.25em;">3. Padding digit enumerators &ndash; PAD_LIST_DIGITS</h4>
+
+<h5 class="docs" style="margin-top: 1em;">Arabic digits</h5>
+
+<p style="margin-top: .5em;">
+When your choice of enumerators is DIGIT and the number of items
+in the list exceeds nine (9), you have to make a design decision:
+should mom leave room for the extra numeral in two-numeral digits to
+the right or the left of the single-numeral digits?
+</p>
+
+<p>
+If you want the extra space to the right, invoke the macro
+<kbd>.PAD_LIST_DIGITS</kbd> (with no argument), after
+<kbd>.LIST</kbd> and before <kbd>.ITEM</kbd>. This will produce
+something like
+<br/>
+<span class="pre-in-pp">
+ 8. List item
+ 9. List item
+ 10. List item
+</span>
+If you want the extra space to the left, invoke
+<kbd>.PAD_LIST_DIGITS</kbd> with the single argument,
+<kbd>LEFT</kbd>, which will produce
+<br/>
+<span class="pre-in-pp">
+ 8. List item
+ 9. List item
+ 10. List item
+</span>
+</p>
+
+<p>
+Of course, if the number of items in the list is less than ten
+(10), there&#8217;s no need for PAD_LIST_DIGITS.
+</p>
+
+<h5 class="docs" style="margin-top: -.5em;">Roman numerals</h5>
+
+<p style="margin-top: .5em;">
+By default, mom sets roman numerals in lists flush left. The
+<kbd>&lt;n&gt;</kbd> argument appended to <kbd>ROMAN&lt;n&gt;</kbd>
+or <kbd>roman&lt;n&gt;</kbd> 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>
+
+<p>
+If you&#8217;d like the roman numerals to line
+up flush right (i.e. be padded "left"), simply
+invoke <kbd>.PAD_LIST_DIGITS&nbsp;LEFT</kbd> after
+<kbd>.LIST&nbsp;ROMAN&lt;n&gt;</kbd> or
+<kbd>.LIST&nbsp;roman&lt;n&gt;</kbd> and before <kbd>.ITEM</kbd>.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- -LINE NUMBERING- -->
+
+<h2 id="number-lines-intro" class="macro-group">Line numbering &ndash; prepend numbers to output lines</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#number-lines">Macro: <b>NUMBER_LINES</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#ln-control">Line numbering control (off/suspend, resume)</a></li>
+ </ul></li>
+ <li><a href="#number-lines-control">Control macros and defaults</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#number-quote-lines">Line numbering control macros for quotes and blockquotes</a></li>
+ </ul></li>
+</ul>
+
+<p style="margin-top: -.5em;">
+When you turn line-numbering on, mom, by default
+</p>
+<ul style="margin-top: -.5em;">
+ <li>numbers every line of paragraph text; line-numbering is
+ suspended for all other document processing tags (like
+ docheaders, epigraphs, headings, quotes, etc.) and special
+ pages (covers, endotes, bibliographies, etc.); be aware,
+ though, that if you turn
+ <a href="definitions.html#docheader">docheaders</a>
+ off (with
+ <a href="docprocessing.html#docheader">DOCHEADER</a> OFF)
+ and create your own docheader, mom
+ <i>will</i> line-number your custom docheader, so turn
+ line numbering on afterwards
+ </li>
+ <li>doesn&#8217;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>
+ <li>separates line numbers from running text by two
+ <a href="definitions.html#figurespace">figure spaces</a>.
+ </li>
+</ul>
+
+<p>
+Mom expects that
+<a href="#quote">QUOTE</a>s
+and
+<a href="#blockquote">BLOCKQUOTE</a>s
+will not be line-numbered, however control macros are provided to
+enable line numbering for either.
+See
+<a href="#number-quote-lines">Line numbering control macros for quotes and blockquotes</a>.
+</p>
+
+<!-- -NUMBER_LINES- -->
+
+<div class="macro-id-overline">
+<h3 id="number-lines" class="macro-id">NUMBER_LINES</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>NUMBER_LINES</b> <kbd class="macro-args">&lt;start number&gt; [ &lt;which lines to number&gt; [ &lt;gutter&gt; ] ]</kbd>
+</div>
+
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>NUMBER_LINES</b> <kbd class="macro-args">&lt;anything&gt; | RESUME</kbd>
+</div>
+
+<p>
+NUMBER_LINES does what it says: prints line numbers, to the left of
+<a href="definitions.html#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="#footnotes-by-linenumber">Footnotes by linenumber</a>
+for instructions on line-numbered footnotes, and
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE LINE</a>
+for instructions on line-numbered endnotes.)
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Do not use NUMBER_LINES inside
+<a href="#quote">QUOTE</a>
+or
+<a href="#blockquote">BLOCKQUOTE</a>.
+By default, mom expects that quotes and blockquotes will not be
+line numbered. If you wish to enable line numbering for them, you
+must invoke
+<a href="#number-quote-lines">NUMBER_QUOTE_LINES</a>
+or
+<a href="#number-quote-lines">NUMBER_BLOCKQUOTE_LINES</a>.
+</p>
+</div>
+
+
+<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
+<i>next</i>
+<a href="definitions.html#outputline">output line</a>
+to have. The optional arguments <kbd>&lt;which lines to number&gt;</kbd>
+and <kbd>&lt;gutter&gt;</kbd> 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#running">running text</a>.
+</p>
+
+<p>
+For example, if you want mom to number output lines using her defaults,
+<span class="pre-in-pp">
+ .NUMBER_LINES 1
+</span>
+will prepend the number, 1, to the next output line and number all
+subsequent output lines sequentially.
+</p>
+
+<p>
+If you want only every five lines numbered, pass mom the optional
+<kbd>&lt;which lines to number&gt;</kbd> argument, like this:
+<span class="pre-in-pp">
+ .NUMBER_LINES 1 5
+</span>
+</p>
+
+<div class="box-important">
+<p class="tip-top">
+<span class="important">GOTCHA!</span>
+The argument to <kbd>&lt;which lines to number&gt;</kbd> instructs
+mom to number only those lines that are multiples of the argument.
+Hence, in the above example, line number <kbd>1</kbd> will
+<i>not</i> be numbered, since <kbd>1</kbd> is not a multiple of
+<kbd>5</kbd>.
+</p>
+
+<p>
+If you want line number <kbd>1</kbd> to be numbered, you have
+to invoke <kbd><span class="nobr">.NUMBER_LINES 1 1</span></kbd> before the
+first output line you want numbered, then study your <i>output</i>
+copy and determine where best to insert the following in your
+<i>input</i> text:
+<br/>
+<span class="pre-in-pp">
+ .NUMBER_LINES \n[ln] 5
+</span>
+(The escape <kbd>\n[ln]</kbd> ensures that NUMBER_LINES
+automatically supplies the correct value for the first argument,
+<kbd>&lt;start number&gt;</kbd>.)
+</p>
+
+<p class="tip-bottom">
+Following this recipe, line number <kbd>1</kbd> 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 in your input text.
+</p>
+</div>
+
+<p>
+The optional argument, <kbd>&lt;gutter&gt;</kbd>, tells mom how much
+space to put between the line numbers and the running text.
+<kbd>&lt;gutter&gt;</kbd> does not require (or even accept) a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+The argument you pass to it is the number of
+<a href="definitions.html#figurespace">figure spaces</a>
+you want between line numbers and running text.
+Mom&#8217;s default gutter is two figure spaces. If
+you&#8217;d like a wider gutter, say, four figures spaces, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .NUMBER_LINES 1 1 4
+ |
+ +-- Notice you *must* supply a value
+ for the 2nd argument in order to supply
+ a value for the 3rd.
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+When giving a value for <kbd>&lt;gutter&gt;</kbd>, you cannot skip
+the <kbd>&lt;which lines to number&gt;</kbd> argument. Either fill
+in the desired value, or use two double-quotes ( <kbd>""</kbd> ) to
+have mom use the value formerly in effect.
+</p>
+</div>
+
+<h3 id="ln-control" class="docs" style="margin-top: -.5em;">Off/suspend, resume</h3>
+
+<p style="margin-top: .5em;">
+After initializing line numbering, you can suspend it, with the
+option to resume, using
+<br/>
+<span class="pre-in-pp">
+ .NUMBER_LINES&nbsp;OFF
+</span>
+(or <kbd>END</kbd>, <kbd>QUIT</kbd>, <kbd>X</kbd>, etc).
+</p>
+
+<p>To resume line numbering:
+<br/>
+<span class="pre-in-pp">
+ .NUMBER_LINES RESUME
+</span>
+When you resume, the line number will be the next in sequence
+from where you left off. If that is not what you want&mdash;say
+you want to reset the line number to <kbd>1</kbd>&mdash;re-invoke
+<kbd>.NUMBER_LINES</kbd> with whatever arguments are needed for the
+desired result.
+</p>
+
+<div class="box-tip" style="margin-left: 6px;">
+<p class="tip">
+<span class="note">Additional notes:</span>
+</p>
+<ol style="margin-top: -1.25em; margin-left: -1.25em; padding-bottom: .5em;">
+ <li>In document processing, you may invoke
+ <kbd>.NUMBER_LINES</kbd> either before or after
+ <kbd>.START</kbd>. Mom doesn&#8217;t care.
+ </li>
+ <li style="margin-top: .25em;">If you&#8217;re collating documents with
+ <a href="rectoverso.html#collate">COLLATE</a>,
+ you should re-invoke, at a minimum,
+ <kbd>.NUMBER_LINES&nbsp;1</kbd> for each collated
+ document, in order to ensure that each begins with the
+ number <kbd>1</kbd> prepended to the first line.
+ </li>
+ <li style="margin-top: .25em;">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 NUMBER_LINES requires this number as its first
+ argument, in such instances, pass NUMBER_LINES as its first
+ argument the escape
+ <kbd>\n[ln]</kbd>.
+ <br/>
+ <span style="display: block; margin-top: .5em;">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),
+ <br/>
+ <span class="pre-in-pp" style="margin-bottom: -2em;">
+ .NUMBER_LINES \n[ln] 5 4
+ </span>
+ would do the trick.
+ </span>
+ </li>
+ <li style="margin-top: .25em;">If you&#8217;re using
+ <a href="#mn-intro">margin notes</a>
+ in a document, be sure to set the gutter for margin notes wide
+ enough to allow room for the line numbers.
+ </li>
+ <li style="margin-top: .25em;">Mom (groff, actually), only numbers
+ lines <i>to the left</i> of running text. 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#gutter">gutter(s)</a>
+ between columns is wide enough to leave room for the numbers.
+ </li>
+</ol>
+</div>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="number-lines-control" class="docs defaults">NUMBER_LINES control macros and defaults</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#number-lines-general">Family/font/size/colour</a></li>
+ <li><a href="#number-lines-per-section">Reset line numbering after COLLATE</a></li>
+ <li><a href="#number-quote-lines">Line numbering control for quotes and blockquotes</a>
+ <ul style="padding-left: 1em">
+ <li><a href="#number-quote-lines-global">Including QUOTEs and BLOCKQUOTEs in the line numbering scheme</a></li>
+ <li><a href="#number-quote-lines-selective">Selectively enabling line numbering for QUOTEs and BLOCKQUOTEs</a></li>
+ <li><a href="#number-quote-lines-gutter">Changing the line number gutter for QUOTEs and BLOCKQUOTEs</a></li>
+ <li><a href="#number-quote-lines-silent">Silently increment line numbers during QUOTE and BLOCKQUOTE</a></li>
+ </ul></li>
+</ol>
+</div>
+
+<h4 id="number-lines-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Family/font/size/colour</h4>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following NUMBER_LINES control macros may also be
+<a href="#grouping">grouped</a>
+using LINENUMBER_STYLE.
+</p>
+<span class="pre defaults">
+.LINENUMBER_FAMILY default = prevailing family or document family; default is Times Roman
+.LINENUMBER_FONT default = prevailing font
+.LINENUMBER_SIZE default = +0
+.LINENUMBER_COLOR default = black
+</span>
+</div>
+
+<h4 id="number-lines-per-section" class="docs" style="margin-top: -1.75em;">2. Reset line numbering after COLLATE</h4>
+
+<p>
+After
+<a href="rectoverso.html#collate">COLLATE</a>,
+line numbering continues from where it left off. If you would like
+each chapter or major document section to begin its line numbering
+at &#8220;1&#8221;, invoke
+<span class="pre-in-pp">
+ .NUMBER_LINES_PER_SECTION
+</span>
+after
+<a href="#number-lines"><kbd>.NUMBER_LINES</kbd></a>.
+</p>
+
+<h4 id="number-quote-lines" class="docs" style="margin-top: 0em;">3. Line numbering control macros for QUOTE and BLOCKQUOTE</h4>
+
+<h5 id="number-quote-lines-global" class="docs" style="font-size: 87%">&bull;&nbsp;Including QUOTEs and BLOCKQUOTEs in the line numbering scheme</h5>
+
+<p>
+If you&#8217;d like mom to number lines in a
+<a href="#quote">QUOTE</a>
+or
+<a href="#blockquote">BLOCKQUOTE</a>
+as part of the same order and sequence as paragraph text,
+invoke
+<span class="pre-in-pp">
+ .NUMBER_QUOTE_LINES
+</span>
+or
+<span class="pre-in-pp">
+ .NUMBER_BLOCKQUOTE_LINES
+</span>
+either before or after NUMBER_LINES. Both behave identically with
+respect to the affected macro (i.e. QUOTE or BLOCKQUOTE).
+</p>
+
+<h5 id="number-quote-lines-selective" class="docs" style="font-size: 87%">&bull;&nbsp;Selectively enabling line numbering for QUOTEs and BLOCKQUOTEs</h5>
+
+<p>
+If you&#8217;d like to enable line numbering selectively for quotes
+and blockquotes <i>only</i>, invoke <kbd>.NUMBER_QUOTE_LINES</kbd>
+or <kbd>.NUMBER_BLOCKQUOTE_LINES</kbd> first, followed by
+<kbd>.NUMBER_LINES&nbsp;&lt;n&gt;</kbd>, where <kbd>&lt;n&gt;</kbd>
+is the first line number of the quote or blockquote. Afterwards,
+enter your QUOTE or BLOCKQUOTE. When the quote or blockquote
+is finished (i.e. after <kbd>.QUOTE&nbsp;OFF</kbd> or
+<kbd>.BLOCKQUOTE&nbsp;OFF</kbd>), turn line numbering off. Each
+subsequent quote or blockquote you want line numbered requires
+only <kbd>.NUMBER_LINES &lt;n&gt;</kbd> (with a corresponding
+<kbd>.NUMBER_LINES OFF</kbd>) until you turn NUMBER_QUOTE_LINES or
+NUMBER_BLOCKQUOTE_LINES off.
+</p>
+
+<p>
+Here&#8217;s a recipe where the first line number of quotes starts
+repeatedly at &#8220;1&#8221;.
+<span class="pre-in-pp">
+ &lt;running text&gt;
+ .NUMBER_QUOTE_LINES
+ .NUMBER_LINES 1
+ .QUOTE
+ &lt;text of quote&gt;
+ .QUOTE OFF
+ .NUMBER_LINES OFF
+ &lt;further running text&gt;
+ .NUMBER_LINES 1
+ .QUOTE
+ &lt;text of quote&gt;
+ .QUOTE OFF
+ .NUMBER_LINES OFF
+ &lt;further running text&gt;
+</span>
+</p>
+
+<h5 id="number-quote-lines-gutter" class="docs" style="font-size: 87%">&bull;&nbsp;Changing the line number gutter for QUOTEs and BLOCKQUOTEs</h5>
+
+<p>
+Owing to groff&#8217;s restriction on accepting only the figure
+space as the line number
+<a href="definitions.html#gutter">gutter</a>&#8217;s
+unit of measure, it is not possible for line numbers in quotes
+or blockquotes to hang outside a document&#8217;s overall left
+margin and be reliably flush with the line numbers of paragraph
+text. Consequently, line numbers in quotes or blockquotes hang
+to the left of the quote, separated by the currently active
+gutter for NUMBER_LINES.
+</p>
+
+<p>
+If you&#8217;d like to change the line number gutter for quotes
+or blockquotes, invoke <kbd>.NUMBER_QUOTE_LINES</kbd> or
+<kbd>.NUMBER_BLOCKQUOTE_LINES</kbd> with a digit representing the
+number of
+<a href="definitions.html#figurespace">figure spaces</a>
+you&#8217;d like between the line numbers and the quoted text, like this:
+<br/>
+<span class="pre-in-pp">
+ .NUMBER_QUOTE_LINES 3
+</span>
+With the above, line numbers in quotes (and only quotes) will have
+a gutter of 3 figure spaces.
+</p>
+
+<h5 id="number-quote-lines-silent" class="docs" style="font-size: 87%">&bull;&nbsp;Silently increment line numbers during QUOTE and BLOCKQUOTE</h5>
+
+<p>
+If you&#8217;ve asked mom not to line number quotes or blockquotes,
+but would like line numbering to continue while they&#8217;re
+being output (as opposed to mom&#8217;s default behaviour of
+<i>suspending</i> incrementing of line numbers during the output of
+quotes and blockquotes), invoke
+<span class="pre-in-pp">
+ .NUMBER_QUOTE_LINES&nbsp;SILENT
+</span>
+or
+<span class="pre-in-pp">
+ .NUMBER_BLOCKQUOTE_LINES&nbsp;SILENT
+</span>
+With these, mom continues to increment line numbers while quotes
+or blockquotes are being output, but the line numbers won&#8217;t
+appear in the output copy.
+</p>
+
+<p>
+Once having turned NUMBER_QUOTE_LINES or NUMBER_BLOCKQUOTE_LINES on,
+you may disable them with
+<span class="pre-in-pp">
+ .NUMBER_QUOTE_LINES OFF
+</span>
+or
+<span class="pre-in-pp">
+ .NUMBER_BLOCKQUOTE_LINES OFF
+</span>
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="footnote-intro" class="macro-group">Footnotes</h2>
+
+<ul>
+ <li><a href="#footnote-behaviour">Footnote behaviour</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#fn-and-punct">Footnote markers and punctuation in the running text</a></li>
+ </ul></li>
+ <li><a href="#footnote">Tag: FOOTNOTE</a></li>
+ <li><a href="#footnote-control">Footnote control macros and defaults</a></li>
+</ul>
+
+<p>
+For something so complex behind the scenes, footnotes are easy to use.
+You just type, for example,
+<br/>
+<span id="footnote-example" class="pre-in-pp">
+ ...the doctrines of Identity as urged by Schelling\c
+ .FOOTNOTE
+ &lt;footnote about who the hell is Schelling&gt;
+ .FOOTNOTE OFF
+ were generally the points of discussion presenting the most
+ of beauty to the imaginative Morella.
+</span>
+and be done with it.
+(Note the obligatory use of the <kbd>\c</kbd>
+<a href="definitions.html#inlines">inline escape</a>,
+required whenever your
+<a href="#footnote-marker-style">FOOTNOTE_MARKER_STYLE</a>
+is either <kbd>STAR</kbd> [star/dagger footnotes] or
+<kbd>NUMBER</kbd> [superscript numbers].)
+</p>
+
+<p>
+After you invoke <kbd>.FOOTNOTE</kbd>, mom 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&#8217;t fit on the page...
+Even if you&#8217;re using
+<a href="docprocessing.html#columns">COLUMNS</a>,
+mom knows what to do, and Does The Right Thing.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+See
+<a href="refer.html">refer.html</a>
+for information on using footnotes with the <kbd>refer</kbd>
+bibliographic database.
+</p>
+</div>
+
+<h3 id="footnote-behaviour" class="docs">Footnote behaviour</h3>
+
+<p>
+Footnotes can be sly little beasts. If you&#8217;re writing a
+document that&#8217;s footnote-heavy, you might want to read the
+following.
+</p>
+
+<p>
+By default, mom marks footnotes with alternating stars (asterisks),
+daggers, and double-daggers. The first footnote gets a star, the
+second a dagger, the third a double-dagger, the fourth two stars,
+the fifth two daggers, etc. If you prefer numbered footnotes, rest
+assured mom is happy to oblige.
+</p>
+
+<p>
+A small amount of vertical whitespace and a short horizontal rule
+separate footnotes from the document body. When
+<a href="docprocessing.html#flex-vs-shim">shimming</a>
+is enabled, the amount of whitespace
+may vary slightly from page to page depending on the number of lines
+in the footnotes. Mom tries for a nice balance between too little
+whitespace and too much, but when push comes to shove, she&#8217;ll
+usually opt for ample over cramped. The last lines of footnotes are
+always flush with the document&#8217;s bottom margin.
+</p>
+
+<p>
+When
+<a href="docprocessing.html#flex-vs-shim">flex-spacing</a>
+is enabled, the distance between the last line of text and the
+first footnote is always the same.
+</p>
+
+<p>
+If mom sees that a portion of a footnote cannot be fit on its page,
+she carries that portion over to the next page. If an entire
+footnote can&#8217;t be fit on its page (i.e., FOOTNOTE has been
+called too close to the bottom), she defers the footnote to the next
+page, but sets it with the appropriate marker from the previous
+page.
+</p>
+
+<p>
+When footnotes occur within cited text, for example a
+<a href="#quote">QUOTE</a>
+or a
+<a href="#blockquote">BLOCKQUOTE</a>,
+mom will usually opt for deferring the footnote over to the next
+page if it allows her to complete the cited text on one page.
+</p>
+
+<p>
+In the unfortunate happenstance that a deferred footnote is the
+only footnote on its page (i.e., it&#8217;s marked in the document
+body with a star) and the page it&#8217;s deferred to has its own
+footnotes, mom separates the deferred footnote from the page&#8217;s
+proper footnote(s) with a blank line. This avoids the confusion
+that might result from readers seeing two footnote entries on
+the same page identified by a single star (or the number 1 if
+you&#8217;ve requested numbered footnotes that begin at 1 on every
+page). The blank line makes it clear that the first footnote entry
+belongs to the previous page.
+</p>
+
+<p>
+In the circumstance where a deferred footnote is not the only one
+on its page, and is consequently marked by something other than
+a single star, there&#8217;s no confusion and mom doesn&#8217;t
+bother with the blank line. (By convention, the first footnote on
+a page is always marked with a single star, so if readers see, say,
+a dagger or double-dagger marking the first footnote entry,
+they&#8217;ll know the entry belongs to the previous page).
+</p>
+
+<p>
+Very exceptionally, two footnotes may have to be deferred (e.g., one
+occurs on the second to last line of a page, and another on the last
+line). In such a circumstance, mom does not add
+a blank after the second deferred footnote. If you&#8217;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 by
+putting a
+<a href="typesetting.html#space"><kbd>.SPACE</kbd></a>
+command at the end of the footnote text, before
+<kbd>.FOOTNOTE&nbsp;OFF</kbd> (or <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>, etc).
+</p>
+
+<p>
+Obviously, deferred footnotes aren&#8217;t an issue if you request
+numbered footnotes that increase incrementally throughout the whole
+document&mdash;yet another convenience mom has thought of.
+</p>
+
+<p>
+While mom&#8217;s handling of footnotes is sophisticated,
+and tries to take nearly every imaginable situation under which they
+might occur into account, some situations are simply impossible from
+a typographic standpoint. For example, if you have a
+<a href="#head">HEAD</a>
+near the bottom of a page and the page has some footnotes on it, mom
+may simply not have room to set any text under the head (normally,
+she insists on having room for at least one line of text beneath
+a head). In such an instance, mom will either set the head, with
+nothing under it but footnotes, or transfer the head to the next
+page. Either way, you&#8217;ll have a gaping hole at the bottom
+of the page. It&#8217;s a sort of typographic Catch-22, and can
+only be resolved by you, the writer or formatter of the document,
+adjusting the type on the offending page so as to circumvent the
+problem.
+</p>
+
+<h3 id="fn-and-punct" class="docs">Footnote markers and punctuation in the running text</h3>
+
+<ol style="margin-left: -1.25em;">
+ <li><a href="#fn-and-punct-fill">&#8220;Fill&#8221; modes &ndash; JUSTIFY, or QUAD LEFT | CENTER | RIGHT</a></li>
+ <li><a href="#fn-and-punct-nofill">&#8220;No-fill&#8221; modes &ndash; LEFT, CENTER, RIGHT</a></li>
+</ol>
+
+<h4 id="fn-and-punct-fill" class="docs">1. &#8220;Fill&#8221; modes &ndash; JUSTIFY, or QUAD LEFT | CENTER | RIGHT</h4>
+
+<p>
+In
+<a href="definitions.html#filled">fill</a>
+modes, the correct way to enter the line after
+<kbd>.FOOTNOTE&nbsp;OFF</kbd> is to input it as if it&#8217;s
+literally a continuation of the input line you were entering before
+you invoked <kbd>.FOOTNOTE</kbd>. Therefore, if necessary, the
+input line may have to begin with space(s) or a punctuation mark, as
+in the two following examples.
+</p>
+
+<div id="examples-footnotes-1" class="examples-container" style="padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 1</div>
+<span class="pre">
+A line of text,\c
+.FOOTNOTE
+A footnote line.
+.FOOTNOTE OFF
+ broken up with a comma.
+^
+(last line begins with a literal space)
+</span>
+</div>
+
+<div id="examples-footnotes-2" class="examples-container" style="margin-top: 1em; padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 2</div>
+<span class="pre">
+A line of text\c
+.FOOTNOTE
+A footnote line.
+.FOOTNOTE OFF
+, broken up with a comma.
+^
+(last line begins with a comma and a space)
+</span>
+</div>
+
+<p>
+Example 1 produces, on output
+<br/>
+<span class="pre-in-pp">
+ A line of text,* broken up with a comma.
+</span>
+Example 2 produces
+<br/>
+<span class="pre-in-pp">
+ A line of text*, broken up with a comma.
+</span>
+Care must be taken, though, if the punctuation mark that begins the
+line after <kbd>.FOOTNOTE&nbsp;OFF</kbd> is a period (dot). You
+<b><i>must</i></b> begin such lines with <kbd>\&amp;.</kbd>, like
+this:
+<br/>
+<span class="pre-in-pp">
+ ...end of sentence\c
+ .FOOTNOTE
+ A footnote line.
+ .FOOTNOTE OFF
+ \&amp;. A new sentence...
+</span>
+If you omit the <kbd>\&amp;.</kbd>, the line will vanish!
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The document element tags,
+<a href="#epigraph">EPIGRAPH</a>
+and
+<a href="#blockquote">BLOCKQUOTE</a>,
+imply a fill mode, therefore these instructions also apply when you
+insert a footnote into epigraphs or blockquotes.
+</p>
+</div>
+
+<h4 id="fn-and-punct-nofill" class="docs">2. &#8220;No-fill&#8221; modes &ndash; LEFT, CENTER, RIGHT</h4>
+
+<p>
+In
+<a href="definitions.html#filled">no-fill</a>
+modes, you must decide a) whether text on the <i>input</i> line
+after <kbd>.FOOTNOTE&nbsp;OFF</kbd> is to be joined to the
+<i>output</i> line before <kbd>.FOOTNOTE</kbd> was invoked, or b)
+whether you want the <i>output</i> text to begin on a new line.
+</p>
+
+<p>
+In the first instance, simply follow the instructions,
+<a href="#fn-and-punct-fill">above</a>,
+for fill modes.
+</p>
+
+<p>
+In the second instance, you must explicitly tell mom that
+you want input text after <kbd>.FOOTNOTE&nbsp;OFF</kbd> to
+begin on a new output line. This is accomplished by passing
+<kbd>.FOOTNOTE&nbsp;OFF</kbd> (or <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>, etc) an additional argument:
+<kbd>BREAK</kbd> or <kbd>BR</kbd>.
+</p>
+
+<p>
+Study the two examples below to understand the difference.
+</p>
+
+<div id="examples-footnotes-3" class="examples-container" style="padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 1</div>
+<span class="pre">
+.LEFT
+A line of text\c
+.FOOTNOTE
+A footnote line
+.FOOTNOTE OFF
+that carries on after the footnote.
+</span>
+</div>
+
+<div id="examples-footnotes-4" class="examples-container" style="margin-top: 1em; padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 2</div>
+<span class="pre">
+.LEFT
+A line of text\c
+.FOOTNOTE
+A footnote line
+.FOOTNOTE OFF BREAK
+that doesn&#8217;t carry on after the footnote.
+</span>
+</div>
+
+<p>
+Example 1, on output, produces
+<br/>
+<span class="pre-in-pp">
+ A line of text* that carries on after the footnote.
+</span>
+whereas Example 2 produces
+<span class="pre-in-pp">
+ A line of text*
+ that doesn&#8217;t carry on after the footnote.
+</span>
+The distinction becomes particularly important if you like to see
+punctuation marks come <i>after</i> footnote markers. In no-fill
+modes, that&#8217;s accomplished like this:
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ A line of text\c
+ .FOOTNOTE
+ A footnote line
+ .FOOTNOTE OFF
+ ,
+ broken up with a comma.
+</span>
+The output of the above looks like this:
+<br/>
+<span class="pre-in-pp">
+ A line of text*,
+ broken up with a comma.
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The document element tag,
+<a href="#quote">QUOTE</a>,
+implies a no-fill mode, therefore these instructions also apply when
+you insert footnotes into quotes.
+</p>
+</div>
+
+<!-- -FOOTNOTE- -->
+
+<div class="macro-id-overline">
+<h3 id="footnote" class="macro-id">FOOTNOTE</h3>
+</div>
+
+<div class="box-macro-args">
+Tag: FOOTNOTE <kbd class="macro-args">&lt;toggle&gt; [ BREAK | BR ] [ INDENT LEFT | RIGHT | BOTH &lt;indent value&gt; ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;<kbd><span style="font-style: normal">&lt;indent value&gt;</span></kbd> requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+<br/>
+See <span style="font-style: normal"><a href="#footnote-note">HYPER-IMPORTANT NOTE</a></span>.
+</p>
+
+<p>
+FOOTNOTE is a toggle macro, therefore invoking it on a line by
+itself allows you to enter a footnote in the body of a document.
+Invoking it with any argument other than <kbd>INDENT</kbd> (i.e.
+<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...)
+tells mom you&#8217;re finished.
+</p>
+
+<p>
+Footnotes are the only element of
+<a href="definitions.html#running">running text</a>
+that are not affected by the typesetting
+<a href="typesetting.html#indents">indent macros</a>.
+In the unlikely event that you want a page&#8217;s footnotes to
+line up with a running indent, invoke <kbd>.FOOTNOTE</kbd> with
+the <kbd>INDENT</kbd> argument and pass it an indent direction and
+indent value. <kbd>L, R,</kbd> and <kbd>B</kbd> may be used in place
+of <kbd>LEFT, RIGHT,</kbd> and <kbd>BOTH</kbd>. FOOTNOTE must be
+invoked with <kbd>INDENT</kbd> for every footnote you want indented;
+mom does not save any footnote indent information from invocation to
+invocation.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If a footnote runs to more than one paragraph, do <i>not</i> begin
+the footnote with the
+<a href="#pp">PP</a>
+tag. Use <kbd>.PP</kbd> only to introduce subsequent paragraphs.
+</p>
+</div>
+
+<div id="footnote-note" class="box-tip">
+<p class="tip-top">
+<span class="note">HYPER-IMPORTANT NOTE:</span>
+The final word on the
+<a href="definitions.html#inputline">input line</a>
+that comes immediately before FOOTNOTE <i>must</i> terminate with a
+<kbd><a href="typesetting.html#join">\c</a></kbd>
+inline escape if your
+<a href="#footnote-marker-style">FOOTNOTE_MARKER_STYLE</a>
+is either <kbd>STAR</kbd> or <kbd>NUMBER</kbd>. See the
+<a href="#footnote-example">footnote example</a>
+above.
+</p>
+
+<p>
+Additionally, in
+<a href="definitions.html#filled">fill</a>
+modes
+(<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD</a>),
+the line <i>after</i> a <kbd>.FOOTNOTE&nbsp;OFF</kbd> should be
+entered as if there were no interruption in the input text, i.e.,
+the line should begin with a literal space or punctuation mark (see
+explanation and examples
+<a href="#fn-and-punct">here</a>).
+</p>
+
+<p>
+In
+<a href="definitions.html#filled">no-fill</a>
+modes, the optional argument <kbd>BREAK</kbd> or <kbd>BR</kbd> may
+be used after the <kbd>OFF</kbd> (or <kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc) argument to
+instruct mom not to join the next input line to the previous output.
+See
+<a href="#fn-and-punct-nofill">here</a>
+for a more complete explanation, with examples.
+</p>
+
+<p class="tip-bottom">
+Do not use the <kbd>\c</kbd> inline escape if your
+FOOTNOTE_MARKER_STYLE is <kbd>LINE</kbd>, or if you have disabled
+footnote markers with
+<kbd><a href="#footnote-markers">.FOOTNOTE_MARKERS OFF</a></kbd>.
+In these instances, the line after <kbd>.FOOTNOTE&nbsp;OFF</kbd>
+should be entered normally.
+</p>
+</div>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="footnote-control" class="docs defaults">FOOTNOTE control macros and defaults</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#footnote-general">Family/font/size/colour/lead/quad</a></li>
+ <li><a href="#footnote-markers">Footnote markers</a> &ndash; on or off</li>
+ <li><a href="#footnote-marker-style">Footnote marker style</a> &ndash; star+dagger or numbered
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#footnote-number-placeholders">Left padding of footnote numbers</a></li>
+ </ul></li>
+ <li><a href="#footnotes-by-linenumber">Footnotes by line number</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#footnote-linenumber-brackets">FOOTNOTE_LINENUMBER_BRACKETS</a></li>
+ <li><a href="#footnote-linenumber-separator">FOOTNOTE_LINENUMBER_SEPARATOR</a></li>
+ <li><a href="#footnotes-run-on">FOOTNOTES_RUN_ON</a> &ndash; line-numbered footnotes only</li>
+ </ul></li>
+ <li><a href="#reset-footnote-number">Reset footnote number</a> &ndash; set footnote marker number to 1</li>
+ <li><a href="#footnote-space">Inter-footnote spacing</a></li>
+ <li><a href="#footnote-rule">Footnote rule</a> &ndash; on or off</li>
+ <li><a href="#footnote-rule-length">Footnote rule length</a> &ndash; length of footnote separator rule</li>
+ <li><a href="#footnote-rule-weight">Footnote rule weight</a> &ndash; weight of footnote separator rule</li>
+ <li><a href="#footnote-rule-adj">Adjust vertical position of footnote separator rule</a></li>
+</ol>
+</div>
+
+<h4 id="footnote-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. Family/font/size/colour/lead/quad</h4>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following FOOTNOTE control macros may also be
+<a href="#grouping">grouped</a>
+using FOOTNOTE_STYLE.
+</p>
+<span class="pre defaults">
+.FOOTNOTE_FAMILY default = prevailing document family; default is Times Roman
+.FOOTNOTE_FONT default = roman
+.FOOTNOTE_SIZE default = -2 (points)
+.FOOTNOTE_COLOR default = black
+.FOOTNOTE_AUTOLEAD default = 2 points (typeset); single-spaced (typewrite)
+.FOOTNOTE_QUAD default = same as paragraphs
+</span>
+</div>
+
+<h4 id="footnote-markers" class="docs" style="margin-top: -1.25em;">2. Footnote markers &ndash; FOOTNOTE_MARKERS</h4>
+
+<p>
+If you don&#8217;t want footnote markers in either the body of
+the document or beside footnote entries themselves, toggle them
+off with <kbd>.FOOTNOTE_MARKERS&nbsp;OFF</kbd> (or <kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...). This means,
+of course, that you&#8217;ll have to roll your own. If you want
+them back on, invoke <kbd>.FOOTNOTE_MARKERS</kbd> with no argument.
+Footnote markers are on by default.
+</p>
+
+<p>
+If FOOTNOTE_MARKERS are disabled, do not use the <kbd>\c</kbd>
+inline escape to terminate the line before <kbd>.FOOTNOTE</kbd>.
+</p>
+
+<h4 id="footnote-marker-style" class="docs" style="margin-top: -.25em;">3. Footnote marker style &ndash; FOOTNOTE_MARKER_STYLE</h4>
+
+<p>
+Mom gives you two choices of footnote marker style: star+dagger (see
+<a href="#footnote-behaviour">footnote behaviour</a>
+above), or numbered.
+</p>
+
+<p>
+<kbd>.FOOTNOTE_MARKER_STYLE STAR</kbd> gives you star+dagger (the
+default). There is a limit of 10 footnotes per page with this
+style.
+</p>
+
+<p>
+<kbd>.FOOTNOTE_MARKER_STYLE NUMBER</kbd> gives you superscript
+numbers, both in the document body and in the footnote entries
+themselves. By default, footnote numbers increase incrementally
+(prev. footnote number + 1) throughout the whole document. You
+can ask mom to start each page&#8217;s footnote numbers at 1 with
+<kbd>.RESET_FOOTNOTE_NUMBER</kbd>
+(<a href="#reset-footnote-number">see below</a>.)
+</p>
+
+<p>
+If your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd> and you would prefer that the footnotes
+themselves not use superscript numbers, you may pass
+<kbd>.FOOTNOTE_MARKER_STYLE NUMBER</kbd> an additional argument:
+<kbd>NO_SUPERSCRIPT</kbd>. While the marker in the text will still
+be superscript, the footnotes themselves will be identified with
+normal-sized, base aligned numbers, surrounded by parentheses.
+</p>
+
+<h5 id="footnote-number-placeholders" class="docs">Left padding of footnote numbers</h5>
+
+<p>
+When footnote numbering is enabled, in order to ensure that the
+left margin of footnote text aligns regardless of the footnote
+number, you sometimes have to pad the footnote numbers. This will
+be the case any time the footnote numbers change from 9 to 10 on
+the same page, or from 99 to 100. Consider this scenario:
+<br/>
+<span class="pre-in-pp">
+ <sup>9</sup>&nbsp;Footnote text
+ <sup>10</sup>&nbsp;Footnote text
+ <sup>11</sup>&nbsp;Footnote text
+</span>
+As you can see, the left margins of the footnotes are not aligned.
+</p>
+
+<p>
+In order to correct this, use the macro
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd>, which takes a single
+argument: the number of placeholders in the longer digit. For
+example, placed at an appropriate point in your input file,
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS&nbsp;2</kbd> causes the above
+example to come out like this:
+<br/>
+<span class="pre-in-pp">
+ <sup> 9</sup> Footnote text
+ <sup>10</sup> Footnote text
+ <sup>11</sup> Footnote text
+</span>
+Given the impossibility of knowing in advance when the number of
+placeholders required for footnote numbers will change, you must
+study your <i>output</i> file to determine where to insert this
+macro into your <i>input</i> file.
+</p>
+
+<p>
+Obviously, mom does not provide a default for
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>.FOOTNOTE_NUMBER_PLACEHOLDERS</kbd> affects both superscript
+footnote numbers, and, in
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+the normal, base-aligned numbers surrounded by parentheses that you
+get with
+<kbd>.FOOTNOTE_MARKER_STYLE&nbsp;NUMBER&nbsp;NO_SUPERSCRIPT</kbd>.
+</p>
+</div>
+
+<h4 id="footnotes-by-linenumber" class="docs" style="margin-top: -.25em;">4. Footnotes by line number &ndash; FOOTNOTE_MARKER_STYLE LINE</h4>
+
+<p>
+FOOTNOTE_MARKER_STYLE with the argument, <kbd>LINE</kbd> lets you
+have footnotes which are identified by line number, rather than by a
+marker in the text. (Note that
+<a href="#number-lines">NUMBER_LINES</a>
+must be enabled in order to use this marker style.)
+</p>
+
+<p>
+With FOOTNOTE_MARKER_STYLE <kbd>LINE</kbd>, mom will identify
+footnotes either by single line numbers, or line ranges. If
+what you want is a single line number, you need only invoke
+<kbd>.FOOTNOTE</kbd>, <i>without the terminating</i> <kbd>\c</kbd>,
+at the appropriate place in running text. Input lines after the
+footnote has been terminated (e.g. with
+<kbd>.FOOTNOTE&nbsp;OFF</kbd>) are entered normally.
+</p>
+
+<p>
+If you want a range of line numbers (e.g.&nbsp;[5-11]&nbsp;),
+insert, directly into the first line of the range you want, the
+<a href="definitions.html#inlines">inline escape</a>,
+<kbd><span class="nobr">\*[FN_MARK]</span></kbd>. For the terminating line
+number of the range, you need only invoke <kbd>.FOOTNOTE</kbd>
+(again, without the terminating <kbd>\c</kbd>); mom is smart enough
+to figure out that where <kbd>.FOOTNOTE</kbd> was invoked represents
+the terminating line number.
+</p>
+
+<p>
+Range-numbered footnotes are always output on the page
+where <kbd>.FOOTNOTE</kbd> was invoked, not the page where
+<kbd><span class="nobr">\*[FN_MARK]</span></kbd> appears (subject, of course, to
+the rules for footnotes that fall too close to the bottom of a page,
+as outlined
+<a href="#footnote-rules">here</a>).
+</p>
+
+<p>
+The behaviour of line-numbered footnotes can be controlled with the
+macros:
+<br/>
+<span style="display: inline-block; margin-left: 2em; margin-top: .5em;"><a href="#footnote-linenumber-brackets">FOOTNOTE_LINENUMBER_BRACKETS</a></span>
+<br/>
+<span style="margin-left: 2em;"><a href="#footnote-linenumber-separator">FOOTNOTE_LINENUMBER_SEPARATOR</a></span>
+<br/>
+<span style="margin-left: 2em;"><a href="#footnotes-run-on">FOOTNOTES_RUN_ON</a></span>
+</p>
+
+<div style="margin-left: 1.25em;">
+<h5 id="footnote-linenumber-brackets" class="docs" style="margin-top: -.25em;">&bull;&nbsp;FOOTNOTE_LINENUMBER_BRACKETS</h5>
+
+<p style="margin-left: .5em;">
+Mom, by default, surrounds footnote line numbers with square
+brackets. The style of the brackets may be changed with the macro
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS
+</span>
+which takes one of three possible arguments: <kbd>PARENS</kbd>
+(round brackets), <kbd>SQUARE</kbd> (the default) or
+<kbd>BRACES</kbd> (curly braces). If you prefer a shortform, the
+arguments, <kbd>(</kbd>, <kbd>[</kbd> or <kbd>{</kbd> may be used
+instead.
+</p>
+
+<p style="margin-left: .5em;">Thus, for example, either
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS PARENS
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_BRACKETS (
+</span>
+will surround footnote line numbers with round brackets.
+</p>
+
+<h5 id="footnote-linenumber-separator" class="docs" style="margin-top: -.25em;">&bull;&nbsp;FOOTNOTE_LINENUMBER_SEPARATOR</h5>
+
+<p style="margin-left: .5em;">
+If you don&#8217;t want the numbers enclosed in brackets, you
+may tell mom to use a &#8220;separator&#8221; instead. A common
+separator would be the colon, but it can be anything you like.
+The macro to do this is
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_SEPARATOR
+</span>
+which takes, as its single argument, the separator you want. For
+safety and consistency&#8217;s sake, always enclose the argument in
+double-quotes. The separator can be composed of any valid groff
+character, or any combination of characters.
+</p>
+
+<p style="margin-left: .5em;">
+<b>A word of caution:</b> when using a separator, mom doesn&#8217;t
+insert any space after the separator. Hence, if you want space
+(you probably do), you must make the space part of the argument you
+pass to FOOTNOTE_LINENUMBER_SEPARATOR. For example, to get a colon
+separator with a space after it, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_LINENUMBER_SEPARATOR ": "
+</span>
+</p>
+
+<h5 id="footnotes-run-on" class="docs" style="margin-top: -1em;">&bull;&nbsp;FOOTNOTES_RUN_ON</h5>
+
+<p style="margin-left: .5em;">
+Finally, if your footnote marker style is <kbd>LINE</kbd>, you may
+instruct mom to do &#8220;run-on style&#8221; footnotes. Run-on
+footnotes do not treat footnotes as discrete entities, i.e. each
+beginning on a new line. Rather, each footnote is separated from
+the footnote before it by horizontal space in the running line, so
+that the footnotes on any given page form a continuous block, like
+lines in a paragraph.
+</p>
+
+<p style="margin-left: .5em;">
+The macro to get mom to run footnotes on is
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTES_RUN_ON
+</span>
+Invoked by itself, it turns the feature on. Invoked with any other
+argument (<kbd>OFF, NO</kbd>, etc.), it turns the feature off.
+It is generally not a good idea to turn the feature on and off
+during the course of a single document. If you do, mom will issue
+a warning if there&#8217;s going to be a problem. However, it is
+always perfectly safe to enable/disable the feature after
+<a href="rectoverso.html#collate">COLLATE</a>.
+</p>
+</div>
+
+<h4 id="reset-footnote-number" class="docs" style="margin-top: -.25em;">5. Reset footnote number &ndash; RESET_FOOTNOTE_NUMBER</h4>
+
+<p>
+<kbd>.RESET_FOOTNOTE_NUMBER</kbd>, by itself, resets footnote
+numbering so that the next footnote you enter is numbered 1.
+</p>
+
+<p>
+<kbd>.RESET_FOOTNOTE_NUMBER&nbsp;PAGE</kbd> tells mom to start every
+page&#8217;s footnote numbering at 1.
+</p>
+
+<h4 id="footnote-space" class="docs" style="margin-top: -.25em;">6. Inter-footnote spacing &ndash; FOOTNOTE_SPACING</h4>
+
+<p>
+If you&#8217;d like some space between footnotes, you can
+have mom put it in for you by invoking <kbd>.FOOTNOTE_SPACING</kbd>
+with an argument representing the amount of extra space you&#8217;d
+like. The argument to FOOTNOTE_SPACING requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+</p>
+
+<p>
+In the following example, footnotes will be separated from each
+other by 3
+<a href="definitions.html#picaspoints">points</a>.
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_SPACING 3p
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you&#8217;re using footnotes for references generated from the
+refer database (see
+<a href="refer.html">refer.html</a>),
+correct MLA style requires a full linespace between footnotes, which
+you can accomplish with <kbd>.FOOTNOTE_SPACING&nbsp;1v</kbd>.
+</p>
+</div>
+
+<h4 id="footnote-rule" class="docs" style="margin-top: -.25em;">7. Footnote rule &ndash; FOOTNOTE_RULE</h4>
+
+<p>
+If you don&#8217;t want a footnote separator rule, toggle it
+off with <kbd>.FOOTNOTE_RULE&nbsp;OFF</kbd> (or <kbd>END</kbd>,
+<kbd>QUIT</kbd>, <kbd>X</kbd>...). Toggle it back on by invoking
+<kbd>.FOOTNOTE_RULE</kbd> with no argument. The default is to print
+the rule.
+</p>
+
+<h4 id="footnote-rule-length" class="docs" style="margin-top: -.25em;">8. Footnote rule length &ndash; FOOTNOTE_RULE_LENGTH</h4>
+
+<p>
+If you want to change the length of the footnote separator rule,
+invoke <kbd>.FOOTNOTE_RULE_LENGTH</kbd> with a length, like this,
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_RULE_LENGTH 1i
+</span>
+
+which sets the length to 1 inch. Note that a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is required. The default is 4
+<a href="definitions.html#picaspoints">picas</a>
+for both
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>s.
+</p>
+
+<h4 id="footnote-rule-weight" class="docs" style="margin-top: -.25em;">9. Footnote rule weight &ndash; FOOTNOTE_RULE_WEIGHT</h4>
+
+<p>
+If you want to change the weight (&#8220;thickness&#8221;) of the
+footnote separator rule, invoke <kbd>.FOOTNOTE_RULE_WEIGHT</kbd>
+with the desired weight. The weight is measured in
+<a href="definitions.html#picaspoints">points</a>;
+however, do not append the
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<kbd>p</kbd>, to the argument.
+</p>
+
+<p>
+Mom&#8217;s default footnote rule weight is 1/2 point. If
+you&#8217;d like a 1-point rule instead,<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_RULE_WEIGHT 1
+</span>
+is how you&#8217;d get it.
+</p>
+
+<h4 id="footnote-rule-adj" class="docs" style="margin-top: -.25em;">10. Adjust vertical position of footnote separator rule &ndash; FOOTNOTE_RULE_ADJ</h4>
+
+<p>
+The footnote separator rule is a rule whose bottom edge falls
+on the
+<a href="definitions.html#baseline">baseline</a>
+(at the footnote
+<a href="definitions.html#leading">leading</a>)
+one line above the first line of a page&#8217;s footnotes. By default,
+mom raises the rule 3
+<a href="definitions.html#picaspoints">points</a>
+from the baseline so that the separator and the footnotes don&#8217;t
+look jammed together. If you&#8217;d prefer a different vertical
+adjustment, invoke <kbd>.FOOTNOTE_RULE_ADJ</kbd> with the
+amount you&#8217;d like. For example
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_RULE_ADJ 4.25p
+</span>
+raises the rule by 4-1/4 points. Note that you can only raise
+the rule, not lower it. A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is required.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your document
+<a href="definitions.html#leading">leading</a>
+is 2
+<a href="definitions.html#picaspoints">points</a>
+or less (e.g your
+<a href="definitions.html#ps">point size</a>
+is 10 and your linespacing is 10, 11, or 12), lowering mom&#8217;s
+default footnote rule adjustment will almost certainly give you
+nicer looking results than leaving the adjustment at the default.
+Furthermore, you can invoke <kbd>.FOOTNOTE_RULE_ADJ</kbd> 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.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="endnote-intro" class="macro-group">Endnotes</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#endnote-behaviour">Endnotes behaviour</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnote-columns">Endnotes and columnar documents</a></li>
+ </ul></li>
+ <li><a href="#endnote">Tag: ENDNOTE</a></li>
+ <li><a href="#endnotes">Macro: <b>ENDNOTES</b></a>&mdash;tell mom to output endnotes</li>
+ <li><a href="#endnote-control">ENDNOTES control macros and defaults</a></li>
+</ul>
+
+<p>
+Embedding endnotes into mom 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>
+
+<div id="examples" class="examples-container" style="padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example</div>
+<span id="endnote-example" class="pre">
+ ...the doctrines of Identity as urged by Schelling\c
+ .ENDNOTE
+ &lt;endnote about who the hell is Schelling&gt;
+ .ENDNOTE OFF
+ were generally the points of discussion presenting the most
+ of beauty to the imaginative Morella.
+</span>
+</div>
+
+<p>
+As with footnotes, note the obligatory use of the <kbd>\c</kbd>
+<a href="definitions.html#inlines">inline escape</a>
+when your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>NUMBER</kbd> or <kbd>SUPERSCRIPT</kbd> (both of which mark
+endnotes references in
+<a href="definitions.html#running">running text</a>
+with superscript numbers). When the marker style is
+<kbd>LINE</kbd>, you must <i>not</i> use the <kbd>\c</kbd>
+escape.
+</p>
+
+<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):
+</p>
+
+<ol style="margin-top: -.5em;">
+ <li>When your ENDNOTE_MARKER_STYLE is <kbd>NUMBER</kbd> or
+ <kbd>SUPERSCRIPT</kbd>, endnotes are always numbered
+ incrementally, starting at &#8220;1&#8221;.
+ </li>
+ <li>Endnotes must be output explicitly; mom does not output
+ them for you. In
+ <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 article in a
+ document, or grouped together at the very end of the document.
+ </li>
+</ol>
+
+<p>
+Within endnotes, you may use the document element tags
+<a href="#pp">PP</a>,
+<a href="#quote">QUOTE</a>
+and
+<a href="#blockquote">BLOCKQUOTE</a>.
+This provides the flexibility to create endnotes that run to several
+paragraphs, as well as to embed cited text within endnotes.
+</p>
+
+<p>
+Should you wish to change the appearance of quotes or blockquotes
+that appear within endnotes, you may do so with the
+<a href="#quote-control">quote control macros</a>
+or
+<a href="#blockquote-control">blockquote control macros</a>.
+However, you must make the changes <i>within</i> each endnote,
+prior to invoking <kbd>.QUOTE</kbd> or <kbd>.BLOCKQUOTE</kbd>,
+and undo them prior to terminating the endnote (i.e. before
+<kbd>.ENDNOTE&nbsp;OFF</kbd>), otherwise the changes will affect
+subsequent quotes and blockquotes that appear in the document body
+as well.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+See
+<a href="refer.html">refer.html</a>
+for information on using endnotes with the <kbd>refer</kbd>
+bibliographic database.
+</p>
+</div>
+
+<h3 id="endnote-behaviour" class="docs">Endnotes behaviour</h3>
+
+<p>
+When you output endnotes (with
+<kbd><a href="#endnotes">.ENDNOTES</a></kbd>),
+mom finishes processing the last page of your document, then breaks
+to a new page for printing the endnotes. If the document type is
+<kbd><a href="docprocessing.html#doctype">CHAPTER</a></kbd>,
+the centre part of the
+<a href="definitions.html#header">header</a>
+(or footer), which, by default, contains a chapter number or title,
+is removed.
+</p>
+
+<p>
+By default, mom starts the endnotes page with a bold, centred head,
+&#8220;ENDNOTES&#8221;. Subsequently, for each section in a
+<a href="rectoverso.html#collate-intro">collated</a>
+document (e.g. chapters in a book), she identifies the section in bold
+type, flush left and underscored, followed by one-half linespace.
+Endnotes pertaining to the section are output underneath, identified
+by superscript numbers. The text of the endnotes themselves is
+indented to the right of the numbers.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The one-half linespace between section identifiers and the endnotes
+themselves, plus the need to group identifiers and endnotes sensibly,
+means that mom cannot guarantee perfectly aligned bottom margins.
+This is an unavoidable consequence of the structure of endnotes.
+</p>
+</div>
+
+<p>
+Of course, all the defaults, as well as the overall style of the
+endnotes pages, can be changed with the
+<a href="#endnote-control">endnote control macros</a>.
+The attentive will notice that endnotes have an awful lot of control
+macros. This is because endnotes are like a mini-document unto
+themselves, and therefore need not be bound by the style parameters
+of the body of the document.
+</p>
+
+<h3 id="endnote-columns" class="docs">Endnotes and columnar documents</h3>
+
+<p>
+If your document is set in columns (see
+<a href="docprocessing.html#columns">COLUMNS</a>),
+mom gives you the option to have endnotes appear in either
+the column format or set to the full page width. See
+<a href="#endnotes-no-columns">ENDNOTES_NO_COLUMNS</a>.
+</p>
+
+<!-- -ENDNOTE- -->
+
+<div class="macro-id-overline">
+<h3 id="endnote" class="macro-id">ENDNOTE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE</b> <kbd class="macro-args">&lt;toggle&gt; [ BREAK | BR ]</kbd>
+</div>
+<p class="requires">
+See <span style="font-style: normal"><a href="#endnote-note">HYPER-IMPORTANT NOTE</a></span>
+</p>
+
+<p>
+ENDNOTE is a toggle macro, therefore invoking it on a line by itself
+allows you to enter an endnote in the body of a document. Invoking
+it with any other argument (i.e. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>...) tells mom that you&#8217;ve
+finished the endnote.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If an endnote runs to more than one paragraph, do <i>not</i> begin
+the endnote with the
+<a href="#pp">PP</a>
+tag. Use PP only to introduce subsequent paragraphs.
+</p>
+</div>
+
+<div id="endnote-note" class="box-tip">
+<p class="tip-top">
+<span class="note">HYPER-IMPORTANT NOTE:</span>
+If your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>NUMBER</kbd> or <kbd>SUPERSCRIPT</kbd> (mom&#8217;s
+default is <kbd>NUMBER</kbd> unless you have
+<a href="refer.html#endnote-refs">ENDNOTE_REFS</a>
+enabled, in which case it&#8217;s <kbd>SUPERSCRIPT</kbd>), the final word on the
+<a href="definitions.html#inputline">input line</a>
+that comes immediately before <kbd>.ENDNOTE</kbd> must terminate
+with a
+<a href="typesetting.html#join"><kbd>\c</kbd></a>
+inline escape. See the
+<a href="#endnote-example">endnote example</a>
+above.
+</p>
+
+<p>
+Additionally, in
+<a href="definitions.html#filled">fill</a>
+modes
+(<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD</a>,
+the line after <kbd>.ENDNOTE&nbsp;OFF</kbd> should be
+entered as if there were no interruption in the input text, i.e.,
+the line should begin with a literal space or punctuation mark (see
+explanation and examples for footnotes, which apply equally to
+endnotes,
+<a href="#fn-and-punct">here</a>).
+</p>
+
+<p>
+In
+<a href="definitions.html#filled">no-fill</a>
+modes, the optional argument <kbd>BREAK</kbd> or <kbd>BR</kbd> may
+be used after the <kbd>OFF</kbd> (or <kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc) argument to
+instruct mom not to join the next input line to the previous output.
+See
+<a href="#fn-and-punct-nofill">here</a>
+for a more complete explanation. The examples are for
+<kbd>.FOOTNOTE</kbd>, but apply equally to <kbd>.ENDNOTE</kbd>.
+</p>
+
+<p class="tip-bottom">
+If your ENDNOTE_MARKER_STYLE is LINE, do not use the <kbd>\c</kbd>
+escape, and enter the line after <kbd>.ENDNOTE OFF</kbd> normally,
+ie at your text editor&#8217;s left margin.
+</p>
+</div>
+
+<!-- -ENDNOTES- -->
+
+<div class="macro-id-overline">
+<h3 id="endnotes" class="macro-id">ENDNOTES</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES</b>
+</div>
+
+<p>
+Unlike footnotes, which mom automatically outputs at the bottom
+of pages, endnotes must be explicitly output by you, the
+user. ENDNOTES, by itself (i.e. without any argument), is the macro
+to do this.
+</p>
+
+<p>
+Typically, you&#8217;ll use ENDNOTES at the end of a document. If
+it&#8217;s a single (i.e. not collated) document, mom will print
+the endnotes pertaining to it. If it&#8217;s a collated document,
+mom will print all the endnotes contained within all sections of
+the document (typically chapters), appropriately identified and
+numbered.
+</p>
+
+<p>
+Should you wish to output the endnotes for each section of a
+collated document at the ends of the sections (instead of at the
+very end of the document), simply invoke <kbd>.ENDNOTES</kbd>
+immediately prior to
+<a href="rectoverso.html#collate">COLLATE</a>.
+Mom will print the endnotes, identified and numbered appropriately,
+on a separate page prior to starting the next section of the
+document. Each subsequent invocation of <kbd>.ENDNOTES</kbd>
+outputs only those endnotes that mom collected after the previous
+invocation.
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="endnote-control" class="docs defaults">ENDNOTES control macros and defaults</h3>
+
+<div class="box-important" style="width: 700px; margin: auto; background-color: #ded4bd;">
+<p class="tip-top" style="color: #000056;">
+<span class="important">Important:</span>
+Endnotes control macros must always be invoked prior to the first
+instance of
+<a href="#endnote"><kbd>.ENDNOTE</kbd></a>.
+</p>
+
+<p style="color: #000056; margin-top: -.5em;">
+When you embed endnotes in the body of a document, mom collects
+<i>and processes</i> them for later outputting (when you invoke
+<a href="#endnotes"><kbd>.ENDNOTES</kbd></a>).
+By the time you do invoke <kbd
+style="color: #000056;">.ENDNOTES</kbd>, it&#8217;s much too late to
+change your mind about how you want them to look.
+</p>
+
+<p class="tip-bottom" style="color: #000056; margin-top: -.5em;">
+My advice? If you&#8217;re planning to change the default
+appearance of endnotes pages, set them up prior to
+<a href="docprocessing.html#start">START</a>.
+</p>
+</div>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#endnotes-general"><b>General endnotes style control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnote-style">Base family/font/quad</a></li>
+ <li><a href="#endnote-pt-size">Base point size</a></li>
+ <li><a href="#endnote-lead">Leading</a></li>
+ <li><a href="#endnote-spacing">Spacing between endnotes</a></li>
+ <li><a href="#singlespace-endnotes">Singlespace endnotes (TYPEWRITE only)</a></li>
+ <li><a href="#endnote-para-indent">Paragraph indenting</a></li>
+ <li><a href="#endnote-para-space">Inter-paragraph spacing</a></li>
+ <li><a href="#endnotes-no-columns">Turning off column mode during endnotes output</a></li>
+ </ul></li>
+ <li><a href="#endnotes-pagination"><b>Pagination of endnotes</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnotes-pagenum-style">Page numbering style</a></li>
+ <li><a href="#endnotes-first-pagenumber">Setting the first page number of endnotes</a></li>
+ <li><a href="#endnotes-no-first-pagenum">Omitting a page number on the first page of endnotes</a></li>
+ <li><a href="#suspend-pagination">Suspending pagination during endnotes output</a></li>
+ </ul></li>
+ <li><a href="#endnotes-header-control"><b>Header/footer control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnotes-modify-hdrftr">Modifying what goes in the endnotes header/footer</a></li>
+ <li><a href="#endnotes-hdrftr-center">Header/footer centre string when doctype is CHAPTER</a></li>
+ <li><a href="#endnotes-allows-headers">Allow headers on endnotes pages</a></li>
+ </ul></li>
+ <li><a href="#endnotes-header"><b>Endnotes header (first-page title) control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnotes-header-string">Header string</a></li>
+ <li><a href="#endnotes-header-string-control">Header string control macros and defaults</a></li>
+ <li><a href="#endnotes-header-placement">Header string placement</a></li>
+ <li><a href="#endnotes-header-underscore">Header string underscoring</a></li>
+ <li><a href="#endnotes-header-caps">Header string capitalization</a></li>
+ </ul></li>
+ <li><a href="#endnotes-doc-title"><b>Endnotes document-identification string control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnote-title">Document-identification string(s)</a></li>
+ <li><a href="#endnote-title-control">Document-identification string control macros and defaults</a></li>
+ </ul></li>
+ <li><a href="#endnotes-numbering"><b>Endnotes referencing style</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnote-marker-style">Endnote marker style</a> &ndash; by numbers in the text, or by line number
+ <ul style="margin-left: -.5em;">
+ <li><a href="#endnote-linenumber-gap">Spacing between line-numbered endnotes and the endnote text</a></li>
+ <li><a href="#endnote-linenumber-brackets">Brackets around endnote line numbers</a></li>
+ <li><a href="#endnote-linenumber-separator">Separator after endnote line numbers instead of brackets</a></li>
+ </ul></li>
+ <li><a href="#endnote-number-control">Endnote numbering control macros and defaults</a></li>
+ <li><a href="#endnote-number-alignment">Endnote numbering alignment</a></li>
+ </ul></li>
+</ol>
+</div>
+
+<h4 id="endnotes-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. General endnotes page style control</h4>
+
+<h5 id="endnote-style" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Base family/font/quad</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following ENDNOTE control macros may also be
+<a href="#grouping">grouped</a>
+using ENDNOTE_STYLE.
+</p>
+<span class="pre defaults">
+.ENDNOTE_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_FONT default = roman
+.ENDNOTE_QUAD* default = justified
+
+*Note: ENDNOTE_QUAD must be set to either L (LEFT) or J (JUSTIFIED);
+ R (RIGHT) and C (CENTER) will not work.
+</span>
+</div>
+
+<!-- -ENDNOTE_PT_SIZE- -->
+
+<h5 id="endnote-pt-size" class="docs" style="margin-top: -1.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Base point size</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_PT_SIZE</b> <kbd class="macro-args">&lt;base type size of endnotes&gt;</kbd>
+</div>
+
+<p>
+Unlike most other control macros that deal with size of document
+elements, ENDNOTE_PT_SIZE takes as its argument an absolute value,
+relative to nothing. Therefore, the argument represents the size of
+endnote type in
+<a href="definitions.html#picaspoints">points</a>,
+unless you append an alternative
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_PT_SIZE 12
+</span>
+sets the base point size of type on the endnotes page to 12
+points, whereas
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_PT_SIZE .6i
+</span>
+sets the base point size of type on the endnotes page to 1/6 of an
+inch.
+</p>
+
+<p>
+The type size set with ENDNOTE_PT_SIZE is the size of type used for
+the text of the endnotes, and forms the basis from which the point
+size of other endnote page elements is calculated.
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+is 12.5 points (the same default size used in the body of the
+document).
+</p>
+
+<!-- -ENDNOTE_LEAD- -->
+
+<h5 id="endnote-lead" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Leading</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_LEAD</b> <kbd class="macro-args">&lt;base leading of endnotes&gt; [ ADJUST ] </kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<p>
+Unlike most other control macros that deal with leading of document
+elements, ENDNOTE_LEAD takes as its argument an absolute value,
+relative to nothing. Therefore, the argument represents the
+<a href="definitions.html#leading">leading</a>
+of endnotes in
+<a href="definitions.html#picaspoints">points</a>
+unless you append an alternative
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_LEAD 14
+</span>
+sets the base leading of type on the endnotes page to 14
+points, whereas
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_LEAD .5i
+</span>
+sets the base leading of type on the endnotes page to 1/2 inch.
+</p>
+
+<p>
+If you want the leading of endnotes adjusted to fill the page, pass
+ENDNOTE_LEAD the optional argument
+<kbd>ADJUST</kbd>. (See
+<a href="docprocessing.html#doc-lead-adjust">DOC_LEAD_ADJUST</a>
+for an explanation of leading adjustment.)
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+is the prevailing document leading (16 by default), adjusted.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Even if you give mom a <kbd>.DOC_LEAD_ADJUST&nbsp;OFF</kbd> command, she
+will still, by default, adjust endnote leading. You <i>must</i>
+enter <kbd>.ENDNOTE_LEAD&nbsp;&lt;lead&gt;</kbd> with no
+<kbd>ADJUST</kbd> argument to disable this default behaviour.
+</p>
+</div>
+
+<!-- -ENDNOTE_SPACING- -->
+
+<h5 id="endnote-spacing" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Spacing between endnotes</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_SPACING</b> <kbd class="macro-args">&lt;space to insert between endnotes&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+If you&#8217;d like some whitespace between endnotes, just invoke
+ENDNOTE_SPACING with the amount of space you want, e.g.
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_SPACING 6p
+</span>
+which inserts 6 points of lead between endnotes. Be aware, though,
+that inserting space between endnotes means that the bottoms of
+endnotes pages will most likely not align.
+</p>
+
+<p>
+Mom&#8217;s default is not to insert any whitespace between endnotes.
+</p>
+
+<!-- -SINGLESPACE_ENDNOTES- -->
+
+<h5 id="singlespace-endnotes" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Singlespace endnotes (TYPEWRITE only)</h5>
+
+<div class="box-macro-args">
+Macro: <b>SINGLESPACE_ENDNOTES</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+If your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd> and you use TYPEWRITE&#8217;s default
+double-spacing, endnotes are double-spaced. If your document is
+single-spaced, endnotes are single-spaced.
+</p>
+
+<p>
+If, for some reason, you&#8217;d prefer that endnotes be
+single-spaced in an otherwise double-spaced document (including
+double-spaced
+<a href="rectoverso.html#collate">collated</a>
+documents), invoke
+<br/>
+<span class="pre-in-pp">
+ .SINGLESPACE_ENDNOTES
+</span>
+with no argument. And if, god help you, you want to change endnote
+single-spacing back to double-spacing for different spacing of
+endnotes output at the ends of separate documents in a collated
+document, invoke <kbd>.SINGLESPACE_ENDNOTES</kbd> with any argument
+(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...).
+</p>
+
+<!-- -ENDNOTE_PARA_INDENT- -->
+
+<h5 id="endnote-para-indent" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Paragraph indenting</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_PARA_INDENT</b> <kbd class="macro-args">&lt;amount to indent first line of paragraphs in endnotes&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+ENDNOTE_PARA_INDENT works exactly the same way as
+<a href="#para-indent">PARA_INDENT</a>,
+except that the indent given is the amount by which to indent the
+first lines of endnote paragraphs, not document body paragraphs.
+</p>
+
+<p>
+The default is 1.5
+<a href="definitions.html#em">ems</a>
+for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>;
+1/2 inch for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The first line of the first paragraph of endnotes (the one attached
+immediately to the identifying endnote number) is never indented.
+Only subsequent paragraphs are affected by ENDNOTE_PARA_INDENT.
+</p>
+</div>
+
+<!-- -ENDNOTE_PARA_SPACE- -->
+
+<h5 id="endnote-para-space" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Inter-paragraph spacing</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_PARA_SPACE</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+ENDNOTE_PARA_SPACE works exactly the same way as
+<a href="#pp-space">PARA_SPACE</a>,
+except that it inserts a blank line between endnote paragraphs, not
+document body paragraphs.
+</p>
+
+<p>
+The default is not to insert a blank line between paragraphs in
+endnotes.
+</p>
+
+<!-- -ENDNOTES_NO_COLUMNS- -->
+
+<h5 id="endnotes-no-columns" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Turning off column mode during endnotes output</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_NO_COLUMNS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+By default, if your document is set in
+<a href="docprocessing.html#columns">columns</a>,
+mom sets the endnotes in columns, too. However, if your document
+is set in columns and you&#8217;d like the endnotes not to be,
+just invoke <kbd>.ENDNOTES_NO_COLUMNS</kbd> with no argument.
+The endnotes pages will be set to the full page measure of your
+document.
+</p>
+
+<p>
+If you output endnotes at the end of each document in a
+<a href="rectoverso.html#collate">collated</a>
+document set in columns, column mode will automatically be
+reinstated for each document, even with ENDNOTES_NO_COLUMNS turned
+on. In such circumstances, you must re-enable ENDNOTES_NO_COLUMNS
+for each separate collated document.
+</p>
+
+<h4 id="endnotes-pagination" class="docs" style="margin-bottom: .5em;">2. Pagination of endnotes</h4>
+
+<!-- -ENDNOTES_PAGENUM_STYLE- -->
+
+<h5 id="endnotes-pagenum-style" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Page numbering style</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_PAGENUM_STYLE</b> <kbd class="macro-args">DIGIT | ROMAN | roman | ALPHA | alpha</kbd>
+</div>
+
+<p>
+Use this macro to set the page numbering style of endnotes pages.
+The arguments are identical to those for
+<a href="headfootpage.html#pagenum-style">PAGENUM_STYLE</a>.
+The default is <kbd>digit</kbd>. You may want to change it to, say,
+<kbd>alpha</kbd>, which you would do with
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES_PAGENUM_STYLE alpha
+</span>
+</p>
+
+<!-- -ENDNOTES_FIRST_PAGENUMBER- -->
+
+<h5 id="endnotes-first-pagenumber" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Setting the first page number of endnotes</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_FIRST_PAGENUMBER</b> <kbd class="macro-args">&lt;page # that appears on page 1 of endnotes&gt;</kbd>
+</div>
+
+<p>
+Use this macro with caution. If all endnotes for several
+<a href="rectoverso.html#collate">collated</a>
+documents are to be output at once, i.e. not at the end of each
+separate doc, ENDNOTES_FIRST_PAGENUMBER tells mom what page number
+to put on the first page of the endnotes.
+</p>
+
+<p>
+However, if you set ENDNOTES_FIRST_PAGENUMBER in collated documents
+in which the endnotes are output after each section (chapter,
+article, etc), you have to reset every section&#8217;s first page
+number after
+<a href="rectoverso.html#collate">COLLATE</a>
+and before
+<a href="docprocessing.html#start">START</a>
+with
+<a href="headfootpage.html#pagenumber">PAGENUMBER</a>.
+</p>
+
+<!-- -ENDNOTES_NO_FIRST_PAGENUN- -->
+
+<h5 id="endnotes-no-first-pagenum" class="docs" style="margin-top: -.25em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Omitting a page number on the first page of endnotes</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_NO_FIRST_PAGENUM</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+This macro is for use only if
+<a href="headfootpage.html#footers">FOOTERS</a>
+are on. It tells
+<a href="#endnotes">ENDNOTES</a>
+not to print a page number on the first endnotes page. Mom&#8217;s
+default is to print the page number.
+</p>
+
+<!-- -SUSPEND_PAGINATION- -->
+
+<h5 id="suspend-pagination" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Suspending pagination during endnotes output</h5>
+
+<div class="box-macro-args" style="margin-bottom: 1em;">
+Macro: <b>SUSPEND_PAGINATION</b>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>RESTORE_PAGINATION</b>
+</div>
+
+<p>
+SUSPEND_PAGINATION doesn&#8217;t take an argument. Invoked
+immediately prior to
+<a href="#endnotes">ENDNOTES</a>,
+it turns off endnotes pages pagination. Mom continues, however to
+increment page numbers silently.
+</p>
+
+<p>
+To restore normal document pagination after endnotes, invoke
+<kbd>.RESTORE_PAGINATION</kbd> (again, with no argument) immediately
+after <kbd>.ENDNOTES</kbd>.
+</p>
+
+<h4 id="endnotes-header-control" class="docs" style="margin-bottom: .5em;">3. Header/footer control</h4>
+
+<h5 id="endnotes-modify-hdrftr" class="docs" style="margin-top: 0; margin-bottom: -.75em; margin-left: .5em;">&bull;&nbsp;Modifying what goes in the endnotes header/footer</h5>
+
+<p>
+If you wish to modify what appears in the header/footer that appears
+on endnotes page(s), make the changes before you invoke
+<a href="#endnotes"><kbd>.ENDNOTES</kbd></a>,
+not afterwards.
+</p>
+
+<p>
+Except in the case of
+<a href="docprocessing.html#doctype">DOCTYPE <kbd>CHAPTER</kbd></a>,
+mom prints the same header or footer used throughout the document
+on the endnotes page(s). Chapters get treated differently in that,
+by default, mom does not print the header/footer centre string
+(normally the chapter number or chapter title.) In most cases, this
+is what you want. However, should you not want mom to remove
+the centre string from the endnotes page(s) headers/footers, invoke
+<kbd><a href="#endnotes-hdrftr-center">.ENDNOTES_HEADER_CENTER</a></kbd>
+with no argument.
+</p>
+
+<p>
+An important change you may want to make is to put the word
+&#8220;Endnotes&#8221; in the header/footer centre position. To do
+so, invoke
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .HEADER_CENTER "Endnotes"
+</span>
+or
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ .FOOTER_CENTER "Endnotes"
+</span>
+prior to invoking <kbd>.ENDNOTES</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+is <kbd>CHAPTER</kbd>, you must also invoke
+<a href="#endnotes-hdrftr-center">ENDNOTES_HEADER_CENTER</a>
+for the ENDNOTES_HEADER_CENTER to appear.
+</p>
+</div>
+
+<h5 id="endnotes-hdrftr-center" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header/footer centre string when doctype is CHAPTER</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_HEADER_CENTER</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+If your
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+is <kbd>CHAPTER</kbd> and you want mom to include a centre
+string in the headers/footers that appear on endnotes
+pages, invoke <kbd>.ENDNOTES_HEADER_CENTER</kbd> (or
+<kbd>.ENDNOTES_FOOTER_CENTER</kbd>) with no argument. Mom&#8217;s
+default is not to print the centre string.
+</p>
+
+<p>
+If, for some reason, having enabled the header/footer centre string
+on endnotes pages, you wish to disable it, invoke the same macro
+with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>X</kbd>...). </p>
+
+<h5 id="endnotes-allows-headers" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Allow headers on endnotes pages</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_ALLOWS_HEADERS</b> <kbd class="macro-args">&lt;none&gt; | ALL</kbd>
+</div>
+
+<p>
+By default, if HEADERS are on, mom prints page headers on all
+endnotes pages except the first. If you don&#8217;t want her to
+print headers on endnotes pages, do
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES_ALLOWS_HEADERS OFF
+</span>
+If you want headers on every page including the first, do
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES_ALLOWS_HEADERS ALL
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If FOOTERS are on, mom prints footers on every endnotes page.
+This is a style convention. In mom, there is no such beast as
+ENDNOTES_ALLOWS_FOOTERS OFF.
+</p>
+</div>
+
+<h4 id="endnotes-header" class="docs">4. Endnotes header (first-page title) control</h4>
+
+<!-- -ENDNOTES_HEADER_STRING- -->
+
+<h5 id="endnotes-header-string" class="docs" style="margin-top: 1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header (first-page title) string</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_HEADER_STRING</b> <kbd class="macro-args">&quot;&lt;title to print at the top of endnotes&gt;&quot;</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>ENDNOTE_STRING</b> (for compatibility with older documents)
+</p>
+
+<p>
+By default, mom prints the word &#8220;ENDNOTES&#8221; as a head
+at the top of the first page of endnotes. If you want her to
+print something else, invoke <kbd>.ENDNOTES_HEADER_STRING</kbd>
+with the endnotes-page head you want, surrounded by double-quotes.
+If you don&#8217;t want a head at the top of the first
+endnotes-page, invoke <kbd>.ENDNOTES_HEADER_STRING</kbd>
+with a blank argument (either two double-quotes side by
+side&mdash;<kbd>&quot;&quot;</kbd>&mdash;or no argument at all).
+</p>
+
+<!-- -ENDNOTES_HEADER_CONTROL- -->
+
+<h5 id="endnotes-header-string-control" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header (first-page title) control macros and defaults</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following ENDNOTES_HEADER control macros may also be
+<a href="#grouping">grouped</a>
+using ENDNOTES_HEADER_STYLE.
+</p>
+
+<p style="margin-top: .5em; margin-bottom: 0; margin-left: .5em">
+Please note that &#8220;_HEADER_&#8221;, here, refers to the title
+that appears at the top of the first endnotes page, not to the page
+headers of subsequent endnotes pages.
+<span class="pre defaults">
+.ENDNOTES_HEADER_FAMILY default = prevailing document family
+.ENDNOTES_HEADER_FONT default = bold
+.ENDNOTES_HEADER_SIZE* default = +1
+.ENDNOTES_HEADER_QUAD default = centred
+.ENDNOTES_HEADER_COLOR default = black
+
+*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
+</span>
+</p>
+</div>
+
+<p style="margin-top: -2em">
+<b>Note:</b> <i>For compatibility with older documents, these macros are aliased
+as</i> <kbd>.ENDNOTE_STRING_&lt;SPEC&gt;</kbd>, e.g. <kbd>.ENDNOTE_STRING_FAMILY</kbd>.
+</p>
+
+<!-- -ENDNOTES_HEADER_V_POS- -->
+
+<h5 id="endnotes-header-placement" class="docs" style="margin-top: -.25em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header (first-page title) placement</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_HEADER_V_POS</b> <kbd class="macro-args">&lt;distance from top of page&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p class="alias" style="margin-top: -1em; margin-bottom: 0;">
+<i>Alias:</i> <b>ENDNOTE_STRING_ADVANCE</b> (for compatibility with older documents)
+</p>
+
+<p>
+By default, mom places the title (the docheader, as it were) of
+endnotes pages (typically "ENDNOTES") on the same
+<a href="definitions.html#baseline">baseline</a>
+that is used for the start of
+<a href="definitions.html#running">running text</a>.
+If you&#8217;d prefer another location, higher or lower on the page
+(thereby also raising or lowering the starting position of the
+endnotes themselves), invoke <kbd>.ENDNOTES_HEADER_V_POS</kbd> with
+an argument stating the distance from the top edge of the page at
+which you&#8217;d like the title placed.
+</p>
+
+<p>
+The argument requires a unit of measure, so if you&#8217;d like the title
+to appear 1-1/2 inches from the top edge of the page, you&#8217;d tell
+mom about it like this:
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES_HEADER_V_POS 1.5i
+</span>
+</p>
+
+<!-- -ENDNOTES_HEADER_UNDERSCORE- -->
+
+<h5 id="endnotes-header-underscore" class="docs" style="margin-top: -1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header (first-page title) underscoring</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_HEADER_UNDERSCORE</b> <kbd class="macro-args">[DOUBLE] [&lt;underscore weight&gt; [&lt;underscore gap&gt; [&lt;distance between double rules]]] | &lt;none&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>ENDNOTES_HEADER_UNDERLINE</b>.
+<i>(For compatibility with older documents, also
+aliased as</i> <b>ENDNOTE_STRING_UNDERSCORE</b> <i>and</i>
+<b>ENDNOTE_STRING_UNDERLINE</b>.)
+</p>
+
+<p class="requires">
+&bull;&nbsp;The argument
+<span style="font-style: normal"><kbd>&lt;underscore weight&gt;</kbd></span>
+must not have the
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<span style="font-style: normal;"><kbd>p</kbd></span>,
+appended to it; all other arguments require a unit of measure
+</p>
+
+<p>
+Invoked without an argument, <kbd>.ENDNOTES_HEADER_UNDERSCORE</kbd>
+will place a single rule underneath the endnotes page title. Invoked
+with the argument, <kbd>DOUBLE</kbd>, ENDNOTES_HEADER_UNDERSCORE will
+double-underscore the title. Invoked with any other non-numeric
+argument, (e.g. <kbd>OFF, NO, X</kbd>, etc.) the macro disables
+underscoring of the title.
+</p>
+
+<p>
+In addition, you can use ENDNOTES_HEADER_UNDERSCORE to control the
+weight of the underscore rule(s), the gap between the title and the
+underscore, and, in the case of double-underscores, the distance
+between the two rules.
+</p>
+
+<p>
+Some examples:
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES_HEADER_UNDERSCORE 1
+ - turn underscoring on; set the rule weight to 1 point
+
+ .ENDNOTES_HEADER_UNDERSCORE 1 3p
+ - turn underscoring on; set the rule weight to 1 point; set
+ the gap between the title and the underscore to 3 points
+
+ .ENDNOTES_HEADER_UNDERSCORE DOUBLE .75 3p
+ - turn double-underscoring on; set the rule weight to 3/4 of
+ a point; set the gap between the title and the upper
+ underscore to 3 points; leave the gap between the upper
+ and the lower underscore at the default
+
+ .ENDNOTES_HEADER_UNDERSCORE DOUBLE 1.5 1.5p 1.5p
+ - turn double-underscoring on; set the rule weight to 1-1/2
+ points; set the gap between the title and the upper
+ underscore to 1-1/2 points; set the gap between the upper
+ and the lower underscore to 1-1/2 points
+</span>
+Note, from the above, that in all instances, underscoring (single
+or double) is enabled whenever ENDNOTES_HEADER_UNDERSCORE is used in
+this way.
+</p>
+
+<p>
+By default, mom double-underscores the title if your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd>.
+</p>
+
+<!-- -ENDNOTES_HEADER_CAPS- -->
+
+<h5 id="endnotes-header-caps" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header (first-page title) capitalization</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTES_HEADER_CAPS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>ENDNOTE_STRING_CAPS</b> (for compatibility with older documents)
+</p>
+
+<p>
+Invoked by itself, <kbd>.ENDNOTES_HEADER_CAPS</kbd> will
+automatically capitalize the endnotes-page title. Invoked with any
+other argument, the macro disables automatic capitalization of the
+title.
+</p>
+
+<p>
+If you&#8217;re generating a table of contents, you may want the
+endnotes pages title to be in caps, but the toc entry in caps/lower
+case. If the argument to
+<a href="#endnotes-header-string">ENDNOTES_HEADER_STRING</a>
+is in caps/lower case and ENDNOTES_HEADER_CAPS is on, this is exactly
+what will happen.
+</p>
+
+<p>
+Mom&#8217;s default is to capitalize the endnotes pages title string.
+</p>
+
+<!-- -ENDNOTE_TITLE- -->
+
+<h4 id="endnotes-doc-title" class="docs" style="margin-top: -.25em;">5. Endnotes document-identification title control</h4>
+
+<h5 id="endnote-title" class="docs" style="margin-top: 1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Document-identification title string(s)</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_TITLE</b> <kbd class="macro-args">&quot;&lt;title to identify a document in endnotes&gt;&quot;</kbd>
+</div>
+
+<p>
+By default, mom identifies the document(s) to which endnotes belong
+by the document title(s) given to the
+<a href="docprocessing.html#title">TITLE</a>
+macro. If you&#8217;d like her to identify the document(s) another
+way, simply invoke <kbd>.ENDNOTE_TITLE</kbd> prior to
+<a href="docprocessing.html#start">START</a>
+with the identifying title you want, surrounded by double-quotes.
+</p>
+
+<p>
+If you don&#8217;t want any identifying title, invoke
+<kbd>.ENDNOTE_TITLE</kbd> with a blank argument, either two
+double-quotes side by side (<kbd>&quot;&quot;</kbd>) or no argument
+at all. This is particularly useful if you have a single (i.e.
+non-collated) document and find having the document&#8217;s title
+included in the endnotes redundant.
+</p>
+
+<!-- -ENDNOTE_TITLE_CONTROL- -->
+
+<h5 id="endnote-title-control" class="docs" style="margin-top: .75em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Document-identification string control macros and defaults</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following ENDNOTE_TITLE_STYLE control macros may also be
+<a href="#grouping">grouped</a>
+using ENDNOTE_TITLE_STYLE_STYLE.
+</p>
+<span class="pre defaults">
+.ENDNOTE_TITLE_FAMILY default = prevailing document family; default is Times Roman
+.ENDNOTE_TITLE_FONT default = bold
+.ENDNOTE_TITLE_SIZE* default = 0
+.ENDNOTE_TITLE_COLOR default = black
+.ENDNOTE_TITLE_QUAD default = left
+.ENDNOTE_TITLE_CAPS
+.ENDNOTE_TITLE_SMALLCAPS
+.ENDNOTE_TITLE_UNDERSCORE default = single underscore
+
+*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
+</span>
+</div>
+
+<!-- -ENDNOTE_NUMBERING- -->
+
+<h4 id="endnotes-numbering" class="docs" style="margin-top: -.25em;">6. Endnotes referencing style</h4>
+
+<h5 id="endnote-marker-style" class="docs" style="margin-top: 1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Endnote marker style</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_MARKER_STYLE</b> <kbd class="macro-args"><a href="#line">LINE</a> | <a href="#number">NUMBER</a> | <a href="#superscript">SUPERSCRIPT</a></kbd>
+</div>
+
+<p id="line">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>LINE</kbd></span>
+By default, mom places superscript numbers in
+<a href="definitions.html#running">running text</a>
+to identify endnotes. However, if you have
+<a href="#number-lines">linenumbering</a>
+turned on, you may instruct mom not to put superscript numbers in
+the running text, but rather to reference endnotes by line number.
+The command to do this is
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_MARKER_STYLE LINE
+</span>
+With ENDNOTE_MARKER_STYLE <kbd>LINE</kbd>, mom will identify
+endnotes either by single line numbers or by line ranges. If
+what you want is a single line number, you need only invoke
+<kbd>.ENDNOTE</kbd> at the appropriate place in running
+text <i>without the terminating</i> <kbd>\c</kbd>. Input lines
+after the endnote has been terminated (e.g. with <kbd>.ENDNOTE
+OFF</kbd>) must begin at the left margin.
+</p>
+
+<p>
+(Should you wish to revert to mom&#8217;s default behaviour of
+placing a superscript number in the text to identify an endnote,
+you can invoke <kbd>.ENDNOTE_MARKER_STYLE</kbd> with the argument,
+<kbd>NUMBER</kbd>. 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>
+
+<p id="en-mark">
+If you want a range of line numbers (e.g.&nbsp;[5-11]&nbsp;),
+insert, directly into the first line of the range you want, the
+<a href="definitions.html#inlines">inline escape</a>,
+<kbd><span class="nobr">\*[EN-MARK]</span></kbd>. For the terminating line
+number of the range, you need only invoke <kbd>.ENDNOTE</kbd>
+(again, without the terminating <kbd>\c</kbd>). Mom is smart enough
+to figure out that where <kbd>.ENDNOTE</kbd> is invoked represents
+the terminating line number.
+</p>
+
+<div id="endnote-linenumbers-note" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+By default, mom reserves a fixed amount of space, equal to 8
+placeholders, for the linenumbers of linenumbered endnotes. Within
+that space, the numbers are flush right with each other. The
+reserved space is enough to print a range of linenumbers of the form
+<kbd>[nnnn-nnnn]</kbd>, but may be more than you need.
+</p>
+
+<p>
+The goal with linenumbered endnotes is to ensure that the longest
+linenumber or range of lines is flush with the left margin of the
+page. Adjusting the reserved space is done with the macro
+<a href="docelement.html#endnote-numbers-align">ENDNOTE_NUMBERS_ALIGN</a>,
+and the rules for getting it right are simple.
+</p>
+
+<p class="tip-bottom">
+If your document runs to less than 100 lines, invoke
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 0
+</span>
+If your document has between 100 and 999 lines
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
+</span>
+If your document has between 1000 and 9999 lines
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 2
+</span>
+etc.
+</p>
+</div>
+
+<p id="number" style="margin-top: -.5em;">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>NUMBER</kbd></span>
+With the argument <kbd>NUMBER</kbd>, mom places superscript numbers
+in running text, but identifies endnotes in the endnotes section
+of your document with normal-sized, base-aligned numbers.
+</p>
+
+<p id="superscript" style="margin-top: -.5em;">
+<span style="display: block; margin-bottom: .25em;">&bull;&nbsp;<i>Argument:</i> <kbd>SUPERSCRIPT</kbd></span>
+With the argument <kbd>SUPERSCRIPT</kbd>, mom places superscript
+numbers in running text, and identifies endnotes in the endnotes
+section of your document with superscript numbers as well. This is
+mom&#8217;s default.
+</p>
+
+<div id="endnote-superscript-note" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+By default, mom reserves a fixed amount of space, equal to 2
+placeholders, for the superscript numbers identifying endnotes in
+the endnotes section of your document. Within that space, the
+numbers are flush right with each other.
+</p>
+
+<p class="tip-bottom">
+If you need less space (the total number of endnotes is less than 10) or
+more (the total number of endnotes is greater than 99), use the
+macro
+<a href="docelement.html#endnote-numbers-align">ENDNOTE_NUMBERS_ALIGN</a>,
+to set the desired amount of reserved space, e.g.
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 3
+</span>
+</p>
+</div>
+
+<h5 id="endnote-linenumber-gap" class="docs" style="margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Spacing between line-numbered endnotes and the endnote text</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_LINENUMBER_GAP</b> <kbd class="macro-args">&lt;size of gap&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+When your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>LINE</kbd>, mom, by default, inserts a space equal to
+1/2-<a href="definitions.html#em">en</a>
+between the linenumber and the text of an endnote. For aesthetic
+reasons, you may want to change the size of the gap, which is done
+with the macro ENDNOTE_LINENUMBER_GAP.
+</p>
+
+<p>
+ENDNOTE_LINENUMBER_GAP takes as its single argument the size
+of the gap. The argument requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+so, for example, to change the gap to 2
+<a href="definitions.html#picaspoints">picas</a>,
+you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_LINENUMBER_GAP 2P
+</span>
+</p>
+
+<h5 id="endnote-linenumber-brackets" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Brackets around endnote line numbers</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_LINENUMBER_BRACKETS</b> <kbd class="macro-args">PARENS | SQUARE | BRACES | ( | [ | {</kbd>
+</div>
+
+<p>
+By default, mom puts endnote line numbers inside square brackets.
+The style of the brackets may be changed with the macro
+ENDNOTE_LINENUMBER_BRACKETS, which takes one of three possible
+arguments: <kbd>PARENS</kbd> (&#8220;round&#8221; brackets),
+<kbd>SQUARE</kbd> (the default) or <kbd>BRACES</kbd> (curly braces).
+If you prefer a shortform, the arguments, <kbd>(</kbd>, <kbd>[</kbd>
+or <kbd>{</kbd> may be used instead.
+</p>
+
+<h5 id="endnote-linenumber-separator" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Separator after endnote line numbers instead of brackets</h5>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_LINENUMBER_SEPARATOR</b> <kbd class="macro-args">&lt;character&gt;</kbd>
+</div>
+
+<p>
+If you don&#8217;t want the numbers enclosed in brackets, you may tell
+mom to use a separator instead. A common
+separator would be the colon, but it can be anything you like.
+</p>
+
+<p>
+ENDNOTE_LINENUMBER_SEPARATOR takes as its single argument the
+separator you want. (If the argument contains spaces, don&#8217;t
+forget to enclose the argument in double-quotes.) The separator
+can be composed of any valid groff character, or any combination of
+characters. For example, to get a colon separator after the line
+number in line-numbered endnotes, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_LINENUMBER_SEPARATOR :
+</span>
+</p>
+
+<h5 id="endnote-number-control" class="docs" style="margin-top: -1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Endnote numbering style control</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+</p>
+
+<p class="defaults">
+Please note that the control macros for endnote numbering affect only
+the numbers that appear on the endnotes pages themselves, not the
+endnote numbers that appear in the body of a document.
+</p>
+<span class="pre defaults">
+Numbered endnotes
+.ENDNOTE_NUMBER_FAMILY default = prevailing document family; default Times Roman
+.ENDNOTE_NUMBER_FONT default = bold
+.ENDNOTE_NUMBER_SIZE* default = 0
+Linenumbered endnotes
+.ENDNOTE_LINENUMBER_FAMILY default = prevailing document family; default Times Roman
+.ENDNOTE_LINENUMBER_FONT default = bold
+.ENDNOTE_LINENUMBER_SIZE* default = 0
+
+*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
+</span>
+</div>
+
+<h5 id="endnote-number-alignment" class="docs" style="margin-top: -1.25em; margin-bottom: -.5em; margin-left: .5em;">&bull;&nbsp;Endnote numbering alignment</h5>
+
+<p style="margin-top: .75em;">
+By default, when your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>NUMBER</kbd>, mom hangs the numbers on endnotes pages,
+aligned right to two placeholders, producing this:
+<br/>
+<span id="endnote-numbering-alignment-example" class="pre-in-pp">
+ 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+
+ 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+</span>
+If you wish to change either the alignment or the number of
+placeholders, the macro to use is ENDNOTE_NUMBERS_ALIGN.
+</p>
+
+<!-- -ENDNOTE_NUMBERS_ALIGN- -->
+
+<div id="endnote-numbers-align" class="box-macro-args">
+Macro: <b>ENDNOTE_NUMBERS_ALIGN</b> <kbd class="macro-args">LEFT | RIGHT &lt;number of placeholders&gt;</kbd>
+</div>
+
+<p>
+ENDNOTE_NUMBERS_ALIGN determines how endnote numbers are aligned. If you invoke
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 2
+</span>
+the periods (dots) after the numbers will align, like this
+<span class="pre-in-pp">
+ 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+
+ 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+</span>
+If you invoke
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN LEFT 2
+</span>
+the first digits of the numbers will line up flush left, like this
+<span class="pre-in-pp">
+ 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+
+ 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
+ sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua.
+</span>
+The argument <kbd>&lt;number of placeholders&gt;</kbd> represents
+the maximum size of the numbers, expressed as the number of
+digits in the largest number. Numbers in the range 0-9 require
+1 placeholder; in the range 10-99, 2 placeholders; in the range
+100-999 3 placeholders, and so on.
+</p>
+
+<p>
+Therefore, if you have fewer than ten endnotes,
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_NUMBERS_ALIGN RIGHT 1
+</span>
+would ensure proper right alignment of endnote numbers.
+</p>
+
+<p>
+Mom&#8217;s default for endnote number alignment is to align the
+numbers right to two placeholders.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+ENDNOTE_NUMBERS_ALIGN can also be used to establish the alignment
+and number of placeholders when your
+<a href="#endnote-marker-style">ENDNOTE_MARKER_STYLE</a>
+is <kbd>SUPERSCRIPT</kbd>. Furthermore, it can be used to establish
+the number of placeholders to reserve when your ENDNOTE_MARKER_STYLE
+is <kbd>LINE</kbd>, even though, in such an instance, the numbers
+themselves are always aligned right. See
+<a href="#endnote-linenumbers-note">here</a>
+for examples.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="margin-notes-intro" class="macro-group">Margin notes</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#margin-notes-behaviour">Margin notes behaviour</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#margin-notes-vertical">Adjusting the vertical position of margin notes</a></li>
+ </ul></li>
+ <li><a href="#mn-init">Macro: <b>MN_INIT</b></a> &ndash; set margin notes parameters</li>
+ <li><a href="#mn">Tag: MN</a></li>
+</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 &#8220;flow&#8221; of a
+document by summarizing the subject of a portion of text. Sometimes
+they&#8217;re comments to yourself in a draft copy.
+</p>
+
+<p>
+The margin notes macros and routines in om.tmac (mom) are
+&#8220;mommified&#8221; versions of the margin notes macros and
+routines written by Werner Lemberg and patched by Gaius Mulley.
+</p>
+
+<h3 id="margin-notes-behaviour" class="docs">Margin notes behaviour</h3>
+
+<p>
+First things first: before you enter your first margin note, you
+must &#8220;initialize&#8221; margin notes with
+<a href="#mn-init">MN_INIT</a>.
+MN_INIT sets up the style parameters for margin notes, including
+things like
+<a href="definitions.html#font">font</a>,
+<a href="definitions.html#family">family</a>
+and
+<a href="definitions.html#leading">leading</a>.
+MN_INIT may be called before or after
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<p>
+After initializing margin notes, you create margin notes with the
+<a href="#mn">MN</a>
+macro. Based on the argument you pass MN, your margin note will go
+in either the left or the right margin.
+</p>
+
+<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#running">running text</a>,
+it&#8217;s impossible for mom to guess whether to align
+the first lines of margin notes with a document
+<a href="definitions.html#baseline">baseline</a>,
+whether to align the last lines of margin notes with a document
+baseline, or whether to centre them, vertically, so that neither
+first nor last line aligns with anything!
+</p>
+
+<p>
+Given this difficulty, mom 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>
+
+<p>
+Generally speaking, mom tries to place margin notes at the point
+where you invoke
+<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, mom will &#8220;shift&#8221; 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>
+
+<p>
+Sometimes, if a margin note has to be shifted down, there simply
+isn&#8217;t enough room to start the margin note on the page on
+which <kbd>.MN</kbd> is invoked. In that case, mom ignores the
+margin note entirely and issues a warning, letting you know what
+she&#8217;s done, and where. </p>
+
+<p>
+In the event that a margin note, successfully begun on a page, runs
+past your bottom margin (or the last line before footnotes begin),
+the margin note will &#8220;flow&#8221; onto the next page. If
+it is a &#8220;left&#8221; margin note, it will continue in the
+left margin. If it is a &#8220;right&#8221; margin note, it will
+continue in the right margin.
+</p>
+
+<p>
+If your document is being set in two columns, mom 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 &#8220;direction&#8221;
+argument you give the MN tag. If you try to use MN in documents of
+more than two columns, mom will ignore all margin notes, and issue
+a warning for each.
+</p>
+
+<h3 id="margin-notes-vertical" class="docs">Adjusting the vertical position of margin notes</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>
+
+<p>
+Adjustments to the vertical position of margin notes must be done
+inside the margin note (i.e. after <kbd>.MN</kbd>), at the top,
+before entering text. The commands to use are
+<kbd>\!<a href="typesetting.html#ald">.ALD</a></kbd>
+(to lower the margin note) and
+<kbd>\!<a href="typesetting.html#rld">.RLD</a></kbd>
+(to raise it).
+
+The <kbd>\!</kbd> must precede the macros, or they
+won&#8217;t have any effect.
+</p>
+
+<!-- -MN_INIT- -->
+
+<div class="macro-id-overline">
+<h3 id="mn-init" class="macro-id">MN_INIT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>MN_INIT</b> <kbd class="macro-args">&lt;arguments&gt; (see list)</kbd>
+</div>
+
+<h4 style="margin-top: .75em; margin-left: .5em; font-style: normal; font-weight: bold: font-size: 105%; color: #6f614a;">Argument list:</h4>
+
+<span class="pre" style="margin-top: -1.5em; margin-left: .5em;">
+RAGGED | SYMMETRIC
+&lt;L_WIDTH&gt; &lt;value&gt;
+&lt;R_WIDTH&gt; &lt;value&gt;
+&lt;GUTTER&gt; &lt;value&gt;
+&lt;FONTSTYLE&gt; &lt;value&gt;
+&lt;SIZE&gt; &lt;value&gt;
+&lt;LEAD&gt; &lt;value&gt;
+&lt;COLOR&gt; &lt;value&gt;
+&lt;HY&gt; &lt;value&gt;
+</span>
+
+<p style="margin-top: 1.25em;">
+Before you enter your first margin note, you must initialize
+the style parameters associated with margin notes using MN_INIT.
+If you forget to do so, mom will issue a warning and abort.
+</p>
+
+<p>
+The arguments may be entered in any order, and since the list is
+long, use of the backslash character ( <kbd>\</kbd> ) to put each on
+a separate line is recommended, e.g.
+<br/>
+<span class="pre-in-pp">
+ .MN_INIT \
+ SYMMETRIC \
+ L_WIDTH 4P \
+ SIZE 8 \
+ LEAD 9 \
+ HY 14
+</span>
+All arguments are optional, but since mom requires you to run
+MN_INIT before entering margin notes, you should, at a minimum, set
+the <kbd>RAGGED</kbd> or <kbd>SYMMETRIC</kbd> parameter.
+You will almost certainly want to set <kbd>L_WIDTH</kbd>, <kbd>R_WIDTH</kbd>,
+<kbd>SIZE</kbd> and <kbd>LEAD</kbd> as well.
+</p>
+
+<h4 class="docs arg-list"><kbd>RAGGED | SYMMETRIC</kbd></h4>
+
+<p>
+If the argument <kbd>RAGGED</kbd> is given, both left and
+right margin notes will be flush left. If the argument
+<kbd>SYMMETRIC</kbd> is given, left margin notes will be set flush
+<i>right</i>, and right margin notes flush <i>left</i>. The effect
+is something like this:
+<br/>
+<span class="pre-in-pp">
+ 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.
+</span>
+</p>
+
+<p>
+If the argument is omitted, 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>
+
+<h4 class="docs arg-list"><kbd>L_WIDTH &lt;value&gt;</kbd></h4>
+
+<p>
+The width of left margin notes. A
+<a href="definitions.html#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>
+
+<h4 class="docs arg-list"><kbd>R_WIDTH &lt;value&gt;</kbd></h4>
+
+<p>
+The width of right margin notes. A
+<a href="definitions.html#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>
+
+<h4 class="docs arg-list"><kbd>GUTTER &lt;value&gt;</kbd></h4>
+
+<p>
+The
+<a href="definitions.html#gutter">gutter</a>
+between margin notes and
+<a href="definitions.html#running">running text</a>.
+A
+<a href="definitions.html#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#em">em</a>.
+</p>
+
+<h4 class="docs arg-list"><kbd>FONTSTYLE &lt;value&gt;</kbd></h4>
+
+<p>
+The family+font for margin notes. Yes, that&#8217;s right: the
+family <i>plus</i> font combo. For example, if you want Times
+Roman Medium, the argument must be <kbd>TR</kbd>. If you want Palatino
+Medium Italic, the argument must be <kbd>PI</kbd>. The default is the same
+family+font combo used for a document&#8217;s paragraph text.
+</p>
+
+<h4 class="docs arg-list"><kbd>SIZE &lt;value&gt;</kbd></h4>
+
+<p>
+The point size of type for margin notes. There is no need to append a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to the argument;
+<a href="definitions.html#picaspoints">points</a>
+is assumed (although there&#8217;s nothing preventing you from
+appending an alternative unit of measure directly to the argument).
+The default is for margin notes to use the same point size of type
+as is used in document paragraphs.
+</p>
+
+<h4 class="docs arg-list"><kbd>LEAD &lt;value&gt;</kbd></h4>
+
+<p>
+The
+<a href="definitions.html#leading">leading</a>
+of margin notes. <kbd>&lt;LEAD&gt;</kbd> takes
+<a href="definitions.html#picaspoints">points</a>
+as its unit of measure, so don&#8217;t tack a unit of measure onto
+the end of the argument. The default lead is the same as paragraph
+text (i.e. the document&#8217;s base leading).
+</p>
+
+<h4 class="docs arg-list"><kbd>COLOR &lt;value&gt;</kbd></h4>
+
+<p>
+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>
+
+<h4 class="docs arg-list"><kbd>HY &lt;value&gt;</kbd></h4>
+
+<p>
+<kbd>&lt;value&gt;</kbd> is a digit telling groff how you want margin
+notes hyphenated.
+<br/>
+<span class="pre-in-pp">
+ 0 = do not hyphenate
+ 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
+</span>
+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>
+
+<!-- -MN- -->
+
+<div class="macro-id-overline">
+<h3 id="mn" class="macro-id">MN</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>MN</b> <kbd class="macro-args">LEFT | RIGHT</kbd>
+</div>
+
+<p>
+Once you&#8217;ve initialized margin notes with
+<kbd><a href="#mn-init">.MN_INIT</a></kbd>,
+you can enter margin notes any time you like with <kbd>.MN</kbd>.
+An argument of <kbd>LEFT</kbd> will set a left margin note. An
+argument of <kbd>RIGHT</kbd> will set a right margin note.
+</p>
+
+<p>
+Any argument, such as <kbd>OFF</kbd> (or <kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc) exits the
+current margin note.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<!-- -FINIS- -->
+
+<h2 id="finis-intro" class="macro-group">Document termination string</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#finis">Tag: FINIS</a></li>
+ <li><a href="#finis-control">FINIS control macros</a>
+ <ul style="margin-left: -1.25em;">
+ <li><a href="#finis-string">Changing the FINIS string</a></li>
+ <li><a href="#finis-string-caps">Automatic capitalization of the FINIS string</a></li>
+ <li><a href="#finis-color">Changing the FINIS colour</a></li>
+ <li><a href="#finis-no-dashes">Removing the dashes around FINIS</a></li>
+ </ul></li>
+</ul>
+
+<p>
+The use of FINIS is optional. If you invoke it at the end of a
+document (before
+<kbd><a href="#endnotes">.ENDNOTES</a></kbd>,
+<kbd><a href="refer.html#bibliography">.BIBLIOGRAPHY</a></kbd>
+or
+<kbd><a href="tables-of-contents.html#toc">.TOC</a></kbd>)
+mom deposits the word, <b>END</b>, centred after a blank line,
+beneath the last line of the document. <b>END</b> is enclosed
+between
+<a href="definitions.html#em">em-dashes</a>,
+like this:
+<br/>
+<span class="pre-in-pp">
+ ...and they all lived happily ever after.
+
+ &mdash; END &mdash;
+</span>
+If there is insufficient room for FINIS on the last page of a
+document, mom will alert you on stderr.
+</p>
+
+<p>
+If you&#8217;re writing in a language other than English, you can
+change what mom prints for END with the control macro
+<a href="#finis-string">FINIS_STRING</a>.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="finis" class="macro-id">FINIS</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FINIS</b>
+</div>
+
+<p>
+The use of FINIS is optional, but if you use it, it should be the
+last macro you invoke in a document before
+<kbd><a href="#endnotes">.ENDNOTES</a></kbd>,
+<kbd><a href="refer.html#bibliography">.BIBLIOGRAPHY</a></kbd>
+or
+<kbd><a href="tables-of-contents.html#toc">.TOC</a></kbd>.
+See
+<a href="#finis-intro">above</a>
+for a description of how FINIS behaves.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you don&#8217;t use FINIS, and you don&#8217;t want
+<a href="definitions.html#footer">footers</a>
+(if they&#8217;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:
+<br/>
+<span class="pre-in-pp">
+ .FOOTERS OFF
+ .PAGINATE OFF
+</span>
+</p>
+</div>
+
+<!-- -FINIS STRING- -->
+
+<h3 id="finis-control" class="docs" style="margin-bottom: -1em">Finis control macros</h3>
+
+<p>
+Since FINIS is only used once in a document, it has few control
+macros. It is expected that you will make changes to style
+parameters such as family, font, and size with
+<a href="definitions.html#inlines">inline escapes</a>
+in the FINIS string itself (see below).
+</p>
+
+<h4 id="finis-string" class="docs" style="margin-top: -.5em">Changing the FINIS string</h4>
+
+<p>
+By default, FINIS prints the word, END, between
+<a href="definitions.html#em">em-dashes</a>.
+If you&#8217;d like mom to print something else between the dashes,
+use the FINIS_STRING macro (anywhere in the document prior to
+FINIS).
+</p>
+
+<p>
+For example, if your document&#8217;s in French, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .FINIS_STRING "FIN"
+</span>
+Double-quotes must enclose the macro&#8217;s argument.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you pass FINIS_STRING a blank string,
+<br/>
+<span class="pre-in-pp">
+ .FINIS_STRING ""
+</span>
+mom will still print the em-dashes when you invoke
+<kbd>.FINIS</kbd>. This, in effect, produces a short, centred
+horizontal rule that terminates the document. (In
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
+it&#8217;s a short, dashed line composed of four hyphens.)
+</p>
+</div>
+
+<!-- -FINIS STRING CAPS- -->
+
+<h4 id="finis-string-caps" class="docs">Automatic capitalization of the FINIS string</h4>
+
+<p>
+By default, mom sets the string you pass to FINIS all-caps.
+If you&#8217;d prefer that she not do so, but rather respect
+the FINIS string exactly as you enter it, invoke the macro
+<kbd>.FINIS_STRING_CAPS</kbd> with the <kbd>OFF</kbd> argument, like
+this:
+<br/>
+<span class="pre-in-pp">
+ .FINIS_STRING_CAPS OFF
+</span>
+<kbd>OFF</kbd>, above, could be anything, e.g. <kbd>NO</kbd> or
+<kbd>X</kbd>.
+</p>
+
+<!-- -FINIS COLOR- -->
+
+<h4 id="finis-color" class="docs">Changing the FINIS colour</h4>
+
+<p>
+Invoking the control macro <kbd>.FINIS_COLOR</kbd> with a
+pre-defined (or &#8220;initialized&#8221;) colour changes the colour
+of both the FINIS string and the em-dashes that surround it. If you
+use the
+<a href="definitions.html#inline">inline escape</a>,
+<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd></a>,
+in the argument passed to FINIS, only the text will be in the
+new colour; the em-dashes will be in the default document colour
+(usually black).
+</p>
+
+<!-- -FINIS DASHES- -->
+
+<h4 id="finis-no-dashes" class="docs">Removing the dashes around FINIS</h4>
+
+<p>
+If you don&#8217;t want the dashes around the FINIS string, you can
+remove them with
+<br/>
+<span class="pre-in-pp">
+ .FINIS_NO_DASHES
+</span>
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="images.html#top">Next: Graphics, floats, and preprocessor support</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/docprocessing.html b/contrib/mom/momdoc/docprocessing.html
new file mode 100644
index 0000000..4d09553
--- /dev/null
+++ b/contrib/mom/momdoc/docprocessing.html
@@ -0,0 +1,4420 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document Processing, Introduction and Setup</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="docelement.html#top">Next: The document element tags</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Document processing with mom</h1>
+
+<h2 id="toc-doc-processing" class="docs" style="text-align: center;">Table of contents</h2>
+
+<div id="docprocessing-mini-toc" style="font-size: 90%; line-height: 150%; margin-top: .5em;">
+<div class="mini-toc-col-1" style="margin-left: 0;">
+<h3 class="toc toc-docproc-header" style="margin-top: 1em;"><a class="header-link" href="#docprocessing-intro">Introduction to document processing</a></h3>
+<h3 class="toc toc-docproc-header" style="margin-top: .5em;"><a class="header-link" href="#defaults">Document defaults</a></h3>
+<h3 class="toc toc-docproc-header" style="margin-top: .5em;"><a class="header-link" href="#vertical-whitespace-management">Vertical whitespace management</a></h3>
+<h3 class="toc toc-docproc-header" style="margin-top: .5em;"><a class="header-link" href="#setup">Preliminary document setup</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#docprocessing-tut"><b>Tutorial &ndash; Setting up a mom document</b></a></li>
+ <li><a href="#reference-macros"><b>The reference macros (metadata)</b></a>
+ <ul class="toc-docproc">
+ <li><a href="#title">TITLE</a></li>
+ <li><a href="#doc-title">DOCTITLE</a></li>
+ <li><a href="#subtitle">SUBTITLE</a></li>
+ <li><a href="#author">AUTHOR</a></li>
+ <li><a href="#chapter">CHAPTER</a></li>
+ <li><a href="#chapter-title">CHAPTER_TITLE</a></li>
+ <li><a href="#draft">DRAFT</a></li>
+ <li><a href="#revision">REVISION</a></li>
+ <li><a href="#copyright">COPYRIGHT</a></li>
+ <li><a href="#misc">MISC</a></li>
+ <li><a href="#covertitle">COVERTITLE</a></li>
+ <li><a href="#doc-covertitle">DOC_COVERTITLE</a></li>
+ <li><a href="#pdftitle">PDF_TITLE</a></li>
+ <li><a href="#toc-heading">TOC_HEADING</a></li>
+ </ul></li>
+ <li><a href="#docstyle-macros"><b>The docstyle macros (templates)</b></a>
+ <ul class="toc-docproc">
+ <li><a href="#doctype">DOCTYPE (default, chapter, letter, named, slides)</a></li>
+ <li><a href="#slides">DOCTYPE SLIDES</a>
+ <ul class="toc-docproc">
+ <li><a href="#newslide">NEWSLIDE</a></li>
+ <li><a href="#pause">PAUSE</a></li>
+ <li><a href="#transition">TRANSITION</a></li>
+ </ul></li>
+ <li><a href="#printstyle">PRINTSTYLE</a></li>
+ <li><a href="#copystyle">COPYSTYLE</a></li>
+ </ul></li>
+ <li><a href="cover.html"><b>Cover pages</b></a></li>
+ <li><a href="#docheader"><b>Managing the document header</b></a>
+ <ul class="toc-docproc">
+ <li><a href="#docheader">DOCHEADER</a></li>
+ <li><a href="#docheader-control">Docheader control</a>
+ <ul class="toc-docproc">
+ <li><a href="#docheader-desc">Docheader description</a></li>
+ <li><a href="#index-docheader-control">Macro list</a></li>
+ </ul></li>
+ </ul></li>
+</ul>
+</div>
+<div class="mini-toc-col-2">
+<br/>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#start-macro">Initiate document processing</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#start"><b>The START macro</b></a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#style-before-start">Establishing type and formatting<br/><span style="display: block; margin-top: -.3em;">parameters before START</span></a></h3>
+<ul class="toc-docproc">
+ <li><a href="#type-before-start"><b>Behaviour of the typesetting macros before START</b></a>
+ <ul class="toc-docproc">
+ <li><a href="docprocessing.html#include">Including (sourcing) style sheets and files</a></li>
+ <li><a href="#color">Initializing colours</a></li>
+ </ul></li>
+</ul>
+<ul class="toc-docproc" style="margin-top: -1em">
+ <li><a href="#doc-lead-adjust"><b>Adjust linespacing to fill pages</b></a>
+ <ul class="toc-docproc">
+ <li><a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a></li>
+ <li><a href="#shim">SHIM</a> &ndash; get document leading back on track
+ <ul class="toc-docproc">
+ <li><a href="#automatic-shimming">Automatic shimming (headings, etc)</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#columns-intro"><b>Setting documents in columns</b></a>
+ <ul class="toc-docproc">
+ <li><a href="#columns">COLUMNS</a></li>
+ <li><a href="#marking-col-start">Marking the first page column start position</a>
+ <ul class="toc-docproc">
+ <li><a href="#col-mark">COL_MARK</a></li>
+ </ul></li>
+ <li><a href="#breaking-columns">Breaking columns manually</a>
+ <ul class="toc-docproc">
+ <li><a href="#col-next">COL_NEXT</a> and <a href="#col-break">COL_BREAK</a></li>
+ </ul></li>
+ </ul></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#style-after-start">Changing basic type and formatting<br/><span style="display: block; margin-top: -.3em;">parameters after START</span></a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#behaviour"><b>Behaviour of the typesetting macros during document processing</b></a></li>
+ <li><a href="docprocessing.html#intro-doc-param"><b>Changing document-wide typesetting parameters after START</b></a>
+ <ul class="toc-docproc">
+ <li><a href="docprocessing.html#index-doc-param">Post-START global style change macros</a>
+ <ul class="toc-docproc">
+ <li><a href="#doc-left-margin">DOC_LEFT_MARGIN</a></li>
+ <li><a href="#doc-right-margin">DOC_RIGHT_MARGIN</a></li>
+ <li><a href="#doc-line-length">DOC_LINE_LENGTH</a></li>
+ <li><a href="#doc-family">DOC_FAMILY</a></li>
+ <li><a href="#doc-pt-size">DOC_PT_SIZE</a></li>
+ <li><a href="#doc-lead">DOC_LEAD</a></li>
+ <li><a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a></li>
+ <li><a href="#doc-quad">DOC_QUAD</a></li>
+ </ul></li>
+ </ul></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#terminating">Terminating a document</a></h3>
+</div>
+</div>
+
+<div class="rule-short" style="margin-top: -1.75em"><br/><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="docprocessing-intro" class="docs" style="margin-top: 1em">Introduction to document processing</h2>
+
+<p>
+Document processing with mom uses markup tags to identify document elements
+such as headings, paragraphs, blockquotes, and so on. The tags are, of course,
+macros, but with sensible, readable names that make them easy
+to grasp and easy to remember. (And don&#8217;t forget: if you
+don&#8217;t like the &#8220;official&#8221; name of a tag &mdash;
+too long, cumbersome to type in, not &#8220;intuitive&#8221; enough
+&mdash; you can change it with the
+<a href="goodies.html#alias">ALIAS</a>
+macro.)
+</p>
+
+<p>
+In addition to the tags themselves, mom has an extensive array of
+macros that control how they look and behave.
+</p>
+
+<p>
+Setting up a mom doc is a simple, four-part procedure. You
+begin by entering metadata about the document itself (title,
+subtitle, author, etc.). Next, you tell mom what kind of document
+you&#8217;re creating (e.g. a chapter, letter, abstract, etc...) and
+what kind of output you want (typeset, typewritten, draft-style,
+etc) &mdash; essentially, templates. Thirdly, you make as many
+or as few changes to the templates as you wish; in other words,
+create a style sheet. Lastly, you invoke the
+<kbd><a href="#start">START</a></kbd>
+macro. Voilà! You&#8217;re ready to write.
+</p>
+
+<!-- ==================================================================== -->
+
+<h2 id="defaults" class="docs">Document defaults</h2>
+
+<p>
+As is to be expected, mom has defaults for everything. If you want
+to know a particular default, read about it in the description of
+the pertinent tag.
+</p>
+
+<p>
+I fear the following may not be adequately covered elsewhere in the
+documentation, so just in case:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: .5em;">
+ <li>the paper size is 8.5x11 inches</li>
+ <li>the left and right margins are 1-inch</li>
+ <li>the top and bottom margins for document text are plus/minus
+ visually 1-inch
+ </li>
+ <li>pages are numbered; the number appears centred, at the
+ bottom, surrounded by hyphens (e.g. -6- )
+ </li>
+ <li>the first page of a document begins with a
+ <a href="definitions.html#docheader">document header</a>
+ </li>
+ <li>subsequent pages have
+ <a href="definitions.html#header">page headers</a>
+ with a rule underneath
+ </li>
+</ul>
+
+<!-- ==================================================================== -->
+
+<h2 id="vertical-whitespace-management" class="macro-group">Vertical whitespace management</h2>
+
+<ul style="margin-left: -.5em;">
+ <li><a href="#shim">Macro: SHIM</a></li>
+ <li><a href="#no-shim">Macro: NO_SHIM</a></li>
+ <li><a href="#flex">Macro: FLEX</a></li>
+ <li><a href="#no-flex">Macro: NO_FLEX</a></li>
+</ul>
+
+
+<p>
+Mom takes evenly-aligned bottom margins in
+<a href="definitions.html#running">running text</a>
+very seriously. Only under a very few, exceptional circumstances
+will she allow a bottom margin to &#8220;hang&#8221; (i.e. to fall
+short).
+</p>
+
+<p>
+Mom offers two modes of operation for ensuring flush bottom margins:
+shimming and flex-spacing. Shimming means that mom nudges the
+next line after a significant break in running text back onto the
+<a href="definitions.html#baseline-grid">baseline grid</a>
+(e.g. after the insertion of a graphic). Flex-spacing means that any
+vertical whitespace remaining between the end of running text and
+the bottom margin is distributed equally at logical points on the
+page.
+</p>
+
+<p>
+Mom uses the
+<a href="definitions.html#leading">leading</a>
+of running text (the &#8220;document leading&#8221;) that&#8217;s in effect
+<i>at the start of running text on each page</i>
+to establish the grid and space document elements such as heads or
+blockquotes so that they adhere to it. (Prior to invoking
+<a href="#start">START</a>,
+the document leading is set with the
+<a href="typesetting.html#macros-typesetting">typesetting macro</a>
+<a href="typesetting.html#leading">LS</a>,
+afterwards with the
+<a href="definitions.html#controlmacro">document control macro</a>
+<a href="#doc-lead">DOC_LEAD</a>.)
+</p>
+
+<p>
+What this means is that documents whose paragraphs are not separated
+by whitespace and which do not contain graphics or
+<a href="definitions.html#pre-processor">pre-processor material</a>
+will fill the page completely to the bottom margin.
+However, if your paragraphs are spaced, or if there are any leading
+changes on a page, or if graphics or pre-processor material are
+inserted, it&#8217;s very likely the bottom margins will hang
+unless shimming or flex-spacing is enabled.
+</p>
+
+<h3 id="shim-vs-flex" class="docs">Shimming <span style="text-transform: none">vs.</span> flex-spacing</h3>
+
+<p>
+<b>Shimming</b> is mom&#8217;s default mode of operation. She applies it
+automatically before headings, around quotes and blockquotes, and
+beneath
+<a href="definitions.html#float">floats</a>
+and
+<a href="definitions.html#preprocessor">pre-processor material</a>.
+In addition, the
+<a href="#shim">SHIM</a>
+macro can be inserted into a document at any point to make sure
+the text following falls on the baseline grid.
+</p>
+
+<p>
+This mode of operation works well in documents whose paragraphs are
+not spaced. Deviations from the baseline grid, usually
+caused by floats or pre-processor material, are corrected
+immediately. If the shimming results in slightly unbalanced
+whitespace around them, it can easily be remedied by passing the
+<kbd>ADJUST</kbd> argument to the appropriate macro.
+</p>
+
+<p>
+If you do not want mom shimming automatically,
+<a href="#no-shim">NO_SHIM</a>
+turns shimming off globally and suppresses the SHIM macro. If you
+want to disable shimming only for a particular float or
+pre-processor, the <kbd>NO_SHIM</kbd> argument may be given to the
+appropriate macro.
+</p>
+
+<p>
+<b>Flex-spacing</b> kicks in automatically whenever you turn shimming
+off. In other words, if you want a document flex-spaced,
+<kbd>.NO_SHIM</kbd> is how you achieve it. If, in addition to not
+shimming, you don&#8217;t want mom flex-spacing either,
+<a href="#no-flex">NO_FLEX</a>
+lets you disable it, too.
+</p>
+
+<p>
+Flex-spacing differs from shimming in that mom doesn&#8217;t
+correct deviations from the baseline grid. Rather, she distributes
+whitespace left at the bottom of the page equally in appropriate
+places. Like shimming, flex-spacing is automatically applied
+before heads, after floats and pre-processor material, and around
+quotes and blockquotes. Like shimming, flex-spacing can be
+disabled for individual floats or pre-processor material with the
+<kbd>NO_FLEX</kbd> flag.
+</p>
+
+<p>
+In addition, you can use the
+<a href="#flex">FLEX</a>
+macro to insert flex-spacing yourself into the document, which you
+will almost certainly want to do if your paragraphs are spaced.
+This is because paragraphs are not flex-spaced. Typographically,
+the ideal for spaced paragraphs is that the space between them
+remain constant. Paradoxically, the only way to achieve flush
+bottom margins, or to correct excessive flex-spacing before a
+heading, is by adding flex-space between the paragraphs. This
+requires human judgment, and mom does not presume to decide for you.
+</p>
+
+<p>
+Shimming and flex-spacing are mutually exclusive. If the one is
+active, the other isn&#8217;t unless you have disabled both. This means
+that you cannot use the FLEX macro when shimming is enabled, or the
+SHIM macro when flex-spacing is enabled. Mom will issue a warning
+if you do.
+</p>
+
+<p>
+The choice of whether to use shimming or flex-spacing depends on
+whether or not your paragraphs are spaced. In a document with
+indented, non-spaced paragraphs, shimming and flex-spacing produce
+nearly the same result, with shimming winning by an aesthetic hair.
+In documents with spaced paragraphs, flex-spacing is the only way to
+achieve flush bottom margins.
+</p>
+
+<!-- -SHIM- -->
+
+<div class="macro-id-overline">
+<h3 id="shim" class="macro-id">SHIM</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SHIM</b>
+</div>
+
+<p>
+When shimming is enabled, which it is by default, the SHIM macro
+allows you to nudge the line following it back onto the baseline
+grid. In documents with non-spaced paragraphs, this prevents
+the bottom margins from hanging.
+</p>
+
+<p style="margin-bottom: -1em">
+Mom herself automatically applies shimming
+</p>
+<ul>
+ <li><i>before</i> headings</li>
+ <li><i>around</i> quotes and blockquotes</li>
+ <li><i>after</i> PDF images, tables, pic diagrams, equations, and floats</li>
+</ul>
+
+<p>
+You may sometimes find the amount of space generated by
+<kbd>SHIM</kbd> looks too big, whether inserted manually into a
+document or as a result of automatic shimming.
+The situation occurs when the amount of shimming applied
+comes close to the leading currently in effect, making it seem as if
+there&#8217;s one linespace too much whitespace.
+</p>
+
+<p>
+The solution is simply to add <kbd>.SPACE&nbsp;-1v</kbd> or
+<kbd>.RLD&nbsp;1v</kbd> to the document immediately after
+<kbd>.SHIM</kbd>. (Both <kbd>.SPACE&nbsp;-1v</kbd> and
+<kbd>.RLD&nbsp;1v</kbd> back up by one linespace.)
+</p>
+
+<div class="macro-id-overline">
+<h3 id="no-shim" class="macro-id">NO_SHIM</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>NO_SHIM</b> <kbd class="macro-args">&lt;none&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p>
+NO_SHIM, without an argument, disables automatic shimming,
+suppresses the SHIM macro, and enables flex-spacing.
+</p>
+
+<p>
+NO_SHIM with any argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>, etc) re-enables shimming if it has
+been disabled and disables flex-spacing.
+</p>
+
+<!-- -FLEX- -->
+
+<div class="macro-id-overline">
+<h3 id="flex" class="macro-id">FLEX</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FLEX</b> <kbd class="macro-args">[ FORCE ]</kbd>
+</div>
+
+<p>
+When flex-spacing is enabled, the FLEX macro inserts flexible
+vertical whitespace into a document. The amount of flex-space is
+determined from any extra whitespace at the bottom of a page divided
+by the number of flex points on the same page.
+</p>
+
+<p style="margin-bottom: -1em">
+If flex-spacing is enabled, mom herself automatically applies
+flex-spacing
+</p>
+<ul style="margin-bottom: -.5em">
+ <li><i>before</i> headings</li>
+ <li><i>around</i> quotes and blockquotes</li>
+ <li><i>after</i> PDF images, tables, pic diagrams, equations, and floats</li>
+</ul>
+
+<p>
+Near the bottom of some pages, you may find that
+<a href="definitions.html#float">floated</a>
+or
+<a href="definitions.html#preprocessor">pre-processor material</a>,
+including images, or a single line of text afterwards, is not flush
+with the bottom margin. This is a result of mom flex-spacing
+<i>after</i> such material but not before. The solution to is
+insert <kbd>.FLEX</kbd> immediately beforehand.
+</p>
+
+<p>
+There are some instances where mom inhibits flex-spacing, notably
+after outputting floated material deferred from one page to the
+next. Introducing FLEX by itself in these instances&mdash;say,
+before a head or paragraph&mdash;will not have any effect; you must
+pass FLEX the <kbd>FORCE</kbd> argument.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">Important note on flex-spacing policy:</span><br/>
+Mom disables flex-spacing on
+</p>
+<ul style="margin-top: -1em; margin-bottom: -.5em">
+ <li>the last page or column of a document, before the Table of Contents,
+ Endnotes, Bibliography, and/or any &#8220;Lists of...&#8221;
+ </li>
+ <li>the page preceding a
+ <a href="rectoverso.html#collate">COLLATE</a>
+ </li>
+ <li>the page preceding a
+ <a href="typesetting.html#NEWPAGE">NEWPAGE</a>
+ or
+ <a href="headfootpage.html#blankpage">BLANKPAGE</a>
+ </li>
+ <li>the column preceding a
+ <a href="#col-next">COL_NEXT</a>
+ or
+ <a href="#col-break">COL_BREAK</a>
+ </li>
+</ul>
+
+<p>
+If this is not what you want, insert
+<a href="#no-flex"><kbd>.NO_FLEX&nbsp;OFF</kbd></a>
+before the first flex-space point on the affected page or in the
+affected column.
+</p>
+
+<p>
+Flex-spacing is also disabled for any page or column where
+insufficient room at or near the bottom causes a
+<a href="docelement.html#heading">HEADING</a>
+or
+<a href="images.html#tbl">table</a>
+to be moved to the top of the next page. These situations cannot
+be harmonized with flex-spacing except by adjusting your layout
+to prevent them. You may try re-enabling flex-spacing for the
+page (<kbd>.NO_FLEX&nbsp;OFF</kbd>) and manually inserting
+flex-spaces at appropriate points, but the original whitespace is
+usually large enough that re-distributing it merely changes
+one layout gaffe into another.
+</p>
+
+<p>
+Very occasionally you may notice that a document element (spaced
+paragraph, floated material, pre-processor material, or a PDF image)
+near the bottom of page has also caused mom to disable flex-spacing
+for that page. This occurs when the document element following it
+is a
+<a href="docelement.html#pp-space">spaced paragraph</a>.
+</p>
+
+<p>
+It is typographically acceptable for there to be space between
+insertions in running text (e.g. an image) and the bottom margin when
+the next page begins with a paragraph. If you&#8217;d like to
+nudge the insertion a little closer to the bottom margin&mdash;not
+all the way; that isn&#8217;t possible without pushing it to the
+next page and disrupting subsequent flex-spacing&mdash;insert a
+small amount of space beforehand with
+<a href="typesetting.html#sp">SP</a>.
+Do not, in these cases, use the <kbd>ADJUST</kbd>
+argument (for example to
+<a href="images.html#pdf-image">PDF_IMAGE</a>.)
+</p>
+
+<p class="tip-bottom">
+In the case of a spaced paragraph itself near the bottom of the page
+causing a break, re-enabling flex-spacing
+(<kbd>.NO_FLEX&nbsp;OFF</kbd>) at an appropriate place in your input
+file will resolve the issue, provided there is at least one
+flex-point on the page. If not, add one or more.
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="no-flex" class="macro-id">NO_FLEX</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>NO_FLEX</b> <kbd class="macro-args">&lt;none&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p>
+NO_FLEX, without an argument, disables automatic flex-spacing
+and suppresses the FLEX macro. If, in addition to NO_FLEX, NO_SHIM
+has also been given, your document will be neither flex-spaced nor
+shimmed.
+</p>
+
+<p>
+NO_FLEX with any argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>, etc) re-enables flex-spacing if it has
+been disabled.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="setup" class="docs" style="margin-bottom: .5em;">Preliminary document setup</h2>
+
+<div class="examples-container" style="margin-bottom: 1.5em;">
+<h3 id="docprocessing-tut" class="docs">Tutorial &ndash; Setting up a mom document</h3>
+
+<p style="margin-top: 1em;">
+There are four parts to setting up a mom doc (three, actually,
+with one optional). Before we proceed, though, be reassured that
+something as simple as
+<br/>
+<span class="pre-in-pp">
+ .TITLE "By the Shores of Lake Attica"
+ .AUTHOR "Rosemary Winspeare"
+ .PRINTSTYLE TYPESET
+ .START
+</span>
+produces a beautifully typeset 8.5x11 document, with a
+<a href="definitions.html#docheader">docheader</a>
+at the top of page 1,
+<a href="definitions.html#header">page headers</a>
+with the title and author on subsequent pages, and page numbers at
+the bottom of each page. In the course of the document, headings,
+citations, quotes, epigraphs, and so on, all come out looking neat,
+trim, and professional.
+</p>
+
+<p>
+For the purposes of this tutorial, we&#8217;re going to set up
+a short story&mdash;<i>My Pulitzer Winner</i>&mdash;by Joe Blow.
+Thankfully, we don&#8217;t have to look at story itself, just the
+setup. Joe wants the document
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>to be draft 7, revision 39;</li>
+ <li>to use the DEFAULT template;</li>
+ <li>to print as draft-style output (instead of final-copy output);</li>
+ <li>to be typeset, in Helvetica, 12 on 14,
+ <a href="definitions.html#rag">rag-right</a>;
+ </li>
+ <li>to have <a href="definitions.html#footer">footers</a>
+ instead of
+ <a href="definitions.html#header">headers</a>;
+ </li>
+ <li>to use a single asterisk for
+ <a href="definitions.html#linebreak">author linebreaks</a>.
+ </li>
+</ul>
+
+<p>
+Joe Blow has no taste in typography. His draft won&#8217;t look
+pretty, but this is, after all, a tutorial; we&#8217;re after
+examples, not beauty.
+</p>
+
+<h4 class="docs" style="margin-top: -.5em;">Step 1</h4>
+
+<p style="margin-bottom: -.5em;">
+The first step in setting up any document is giving mom some
+reference information (metadata). The reference macros are:
+</p>
+<div style="width: 50%; float: left;">
+<ul>
+ <li>TITLE</li>
+ <li>SUBTITLE</li>
+ <li>AUTHOR</li>
+ <li>CHAPTER &ndash; chapter number</li>
+ <li>CHAPTER_TITLE</li>
+ <li>DRAFT &ndash; draft number</li>
+ <li>REVISION &ndash; revision number</li>
+</ul>
+</div>
+<div>
+<ul>
+ <li>COPYRIGHT &ndash; only used on cover pages</li>
+ <li>MISC &ndash; only used on cover pages</li>
+ <li>DOCTITLE</li>
+ <li>COVERTITLE</li>
+ <li>DOC_COVERTITLE</li>
+ <li>PDF_TITLE</li>
+</ul>
+</div>
+
+<p style="margin-top: -.5em; clear: both;">
+You can use as many or as few as you wish, although at a minimum,
+you&#8217;ll probably fill in TITLE (unless the document&#8217;s a
+letter) and AUTHOR. Order doesn&#8217;t matter. You can separate
+the
+<a href="definitions.html#arguments">arguments</a>
+from the macros by any number of spaces. The following are what
+you&#8217;d need to start Joe Blow&#8217;s story.
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+</span>
+</p>
+
+<h4 class="docs" style="margin-top: -1.5em;">Step 2</h4>
+
+<p>
+Once you&#8217;ve given mom the reference information she needs, you
+tell her how you want your document formatted. What kind of
+document is it? Should it be typeset or typewritten? Is this a
+final copy (for the world to see) or just a draft? Mom calls
+the macros that answer these questions &#8220;the docstyle
+macros&#8221;, and they&#8217;re essentially templates.
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>PRINTSTYLE&mdash;typeset or typewritten</li>
+ <li>DOCTYPE&mdash;the type of document (default, chapter, user-defined, letter, slide)</li>
+ <li>COPYSTYLE&mdash;draft or final copy</li>
+</ul>
+
+<p>
+Mom has defaults for DOCTYPE and COPYSTYLE; if they&#8217;re what
+you want, you don&#8217;t need to include them. However,
+PRINTSTYLE has no default and must be present in every formatted
+document. If you omit it, mom won&#8217;t process the document
+AND she&#8217;ll complain (both to stderr and as a single printed
+sheet with a warning). Moms&mdash;they can be so annoying
+sometimes. &lt;sigh&gt;
+</p>
+
+<p>
+Adding to what we already have, the next bit of setup for Joe
+Blow&#8217;s story looks like this:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+ \#
+ .DOCTYPE DEFAULT \"Superfluous; mom uses DOCTYPE DEFAULT by default
+ .PRINTSTYLE TYPESET
+ .COPYSTYLE DRAFT
+</span>
+Notice the use of the
+<a href="definitions.html#commentlines">comment line</a>
+( <kbd>\#</kbd> ), a handy way to keep groups of macros visually
+separated for easy reading in a text editor.
+</p>
+
+<h4 class="docs" style="margin-top: -.5em; margin-bottom: -.5em;">Step 3</h4>
+
+<p>
+This step&mdash;completely optional&mdash;is where you, the user,
+take charge. Mom has reasonable defaults for every document element
+and tag, but who&#8217;s ever satisfied with defaults? Use any of
+the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+here to change mom&#8217;s document defaults (paper size, margins,
+family, point size, line space, rag, etc), or any of the document
+processing
+<a href="definitions.html#controlmacro">control macros</a>.
+This is the stylesheet section of a document, and
+must come after the
+<a href="#printstyle">PRINTSTYLE</a>
+directive. Failure to observe this condition will result in
+PRINTSTYLE overriding your changes.
+</p>
+
+<p>
+Joe Blow wants his story printed in Helvetica, 12 on 14, rag right,
+with
+<a href="definitions.html#footer">page footers</a>
+instead of
+<a href="definitions.html#header">page headers</a>
+and a single asterisk for the
+<a href="definitions.html#linebreak">linebreak</a>
+character. None of these requirements conforms to mom&#8217;s
+defaults for the chosen PRINTSTYLE (TYPESET), so we change them
+here. The setup for Joe Blow&#8217;s story now looks like this:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+ \#
+ .DOCTYPE DEFAULT
+ .PRINTSTYLE TYPESET
+ .COPYSTYLE DRAFT
+ \#
+ .FAMILY H
+ .PT_SIZE 12
+ .LS 14
+ .QUAD LEFT \"ie rag right
+ .FOOTERS
+ .LINEBREAK_CHAR *
+</span>
+</p>
+
+<h4 class="docs" style="margin-top: -1.5em; margin-bottom: -.5em;">Step 4</h4>
+
+<p>
+The final step in setting up a document is telling mom to start
+document processing. It&#8217;s a no-brainer, just the single
+macro START. Other than PRINTSTYLE, it&#8217;s the only macro
+required for document processing.
+</p>
+
+<p>
+Here&#8217;s the complete setup for <i>My Pulitzer Winner</i>:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+ \#
+ .DOCTYPE DEFAULT
+ .PRINTSTYLE TYPESET
+ .COPYSTYLE DRAFT
+ \#
+ .FAMILY H
+ .PT_SIZE 12
+ .LS 14
+ .QUAD LEFT \"ie rag right
+ .FOOTERS
+ .LINEBREAK_CHAR *
+ \#
+ .START
+</span>
+As pointed out earlier, Joe Blow is no typographer. Given that all he
+needs is a printed draft of his work, a simpler setup would have been:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+ \#
+ .PRINTSTYLE TYPEWRITE
+ .COPYSTYLE DRAFT
+ \#
+ .START
+</span>
+<kbd>.PRINTSTYLE&nbsp;TYPEWRITE</kbd>, above, means that Joe&#8217;s
+work will come out &#8220;typewritten, double-spaced&#8221;,
+making the blue-pencilling he (or someone else) is sure to do much
+easier (which is why many publishers and agents still insist on
+typewritten, double-spaced copy).
+</p>
+
+<p>
+When J. Blow stops re-writing and decides to print off a final,
+typeset copy of his work for the world to see, he need only make two
+changes to the (simplified) setup:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Winner"
+ .AUTHOR "Joe Blow"
+ .DRAFT 7
+ .REVISION 39
+ \#
+ .PRINTSTYLE TYPESET \"first change
+ .COPYSTYLE FINAL \"second change
+ \#
+ .START
+</span>
+In the above, <kbd>.DRAFT&nbsp;7,&nbsp;.REVISION 39,</kbd> and
+<kbd>.COPYSTYLE FINAL</kbd> are actually superfluous. The draft
+and revision numbers aren&#8217;t used when COPYSTYLE is FINAL,
+and <b>COPYSTYLE FINAL</b> is mom&#8217;s default unless you tell
+her otherwise.
+</p>
+
+<p>
+But... to judge from the number of drafts already,
+J. Blow may very well decide his &#8220;final&#8221; version still
+isn&#8217;t up to snuff. Hence, he might as well leave in the
+superfluous macros. That way, when draft 7, rev. 62 becomes draft
+8, rev. 1, he&#8217;ll be ready to tackle his Pulitzer winner again.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<h2 id="reference-macros" class="macro-group">The reference macros (metadata)</h2>
+
+<p>
+The reference macros give mom the metadata she needs to generate
+<a href="definitions.html#docheader">docheaders</a>,
+<a href="definitions.html#header">page headers</a>,
+and
+<a href="cover.html#cover-top">covers</a>.
+They must go at the top of any file that uses mom&#8217;s document
+processing macros.
+</p>
+
+<div class="macro-list-container">
+<h3 id="index-reference" class="macro-list">Reference macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#title">TITLE</a> &ndash; title of a story, article, etc</li>
+ <li><a href="#doc-title">DOCTITLE</a> &ndash; title of a book, or any collated document</li>
+ <li><a href="#subtitle">SUBTITLE</a></li>
+ <li><a href="#author">AUTHOR</a></li>
+ <li><a href="#chapter">CHAPTER</a> &ndash; the chapter number
+ <ul>
+ <li class="sublist"><a href="#chapter-string">CHAPTER_STRING</a> &ndash; &#8220;Chapter&#8221;, &#8220;CHAPTER&#8221;, &#8220;Chapître&#8221;, etc</li>
+ </ul></li>
+ <li><a href="#chapter-title">CHAPTER_TITLE</a></li>
+ <li><a href="#draft">DRAFT</a>
+ <ul>
+ <li class="sublist"><a href="#draft-string">DRAFT_STRING</a> &ndash; &#8220;Draft&#8221;, &#8220;DRAFT&#8221;, &#8220;Jet&#8221;, etc</li>
+ </ul></li>
+ <li><a href="#revision">REVISION</a>
+ <ul>
+ <li class="sublist"><a href="#revision-string">REVISION_STRING</a> &ndash; &#8220;Revision&#8221;, &#8220;Rev.&#8221;, &#8220;Révision&#8221;, etc</li>
+ </ul></li>
+ <li><a href="#copyright">COPYRIGHT</a></li>
+ <li><a href="#misc">MISC</a></li>
+ <li><a href="#covertitle">COVERTITLE</a> &ndash; frontispiece, title page, etc</li>
+ <li><a href="#doc-covertitle">DOC_COVERTITLE</a> &ndash; book cover, collated document cover, etc</li>
+ <li><a href="#pdftitle">PDF_TITLE</a> &ndash; window title for PDF viewers</li>
+ <li><a href="#toc-heading">TOC_HEADING</a> &ndash; single, non-pagenumbered line of text in table of contents</li>
+</ul>
+</div>
+
+<!-- -TITLE- -->
+
+<div class="macro-id-overline">
+<h3 id="title" class="macro-id">TITLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TITLE</b> <kbd class="macro-args">[COVER | DOC_COVER] &quot;&lt;title string&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Arguments must be enclosed in double-quotes
+</p>
+
+<p>
+The title string can be caps or caps/lower-case; it&#8217;s up to you. In
+<a href="#printstyle">PRINTSTYLE TYPESET</a>,
+the title will appear in the
+<a href="definitions.html#docheader">docheader</a>
+exactly as you typed it. However, mom converts the title to all
+caps in
+<a href="definitions.html#header">page headers</a>
+unless you turn that feature off (see
+<a href="headfootpage.html#_caps">HEADER_&lt;POSITION&gt;_CAPS</a>).
+In
+<a href="#printstyle">PRINTSTYLE TYPEWRITE</a>,
+the title always gets converted to caps.
+</p>
+
+<p>
+TITLE accepts multiple arguments, each surrounded by double-quotes.
+Each argument is printed on a separate line, permitting you to
+create multi-line titles in your docheaders.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your <kbd><a href="#doctype">DOCTYPE</a></kbd> is CHAPTER, TITLE
+should be the title of the opus, not &#8220;CHAPTER whatever&#8221;.
+</p>
+</div>
+
+<p>
+If the optional argument, <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>,
+is given to TITLE, the remaining string arguments represent the
+title that will appear on cover or document cover pages (see the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible
+to have differing titles appear on the document cover, the cover
+(&#8220;title&#8221;) page, and in the document header. For
+example,
+<br/>
+<span class="pre-in-pp">
+ .TITLE DOC_COVER "Collected Essays"
+ .TITLE COVER "The Meming of Meaning"
+ .TITLE "LOL Cat Corruption"
+ .AUTHOR "D. Rawkins"
+ .DOC_COVER TITLE AUTHOR
+ .COVER TITLE
+ .START
+</span>
+creates a document cover with &#8220;Collected Essays&#8221; and the
+author, a cover page with &#8220;The Meming of Meaning&#8221;,
+and a docheader title, &#8220;LOL Cat Corruption&#8221; at the top
+of the essay.
+</p>
+
+<p>
+Alternatively, you can use the macros
+<a href="#doc-covertitle">DOC_COVERTITLE</a>
+and
+<a href="#covertitle">COVERTITLE</a>
+to accomplish the same thing.
+</p>
+
+<h4 id="no-toc-entry" class="docs">Table of Contents exceptions</h4>
+<p>
+Except for standalone documents (i.e. non-collated documents such
+as essays), the TITLE string appears as an entry in the Table of
+Contents. If you would like a document section not to appear in the
+Table of Contents (e.g. the copyright page), invoke the macro
+<kbd>.NO_TOC_ENTRY</kbd> after <kbd>.TITLE</kbd>.
+</p>
+
+
+<!-- -DOCTITLE- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-title" class="macro-id">DOCUMENT TITLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOCTITLE</b> <kbd class="macro-args">&quot;&lt;overall document title&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Arguments must be enclosed in double-quotes
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+This macro should be used only if your <a
+href="#doctype">DOCTYPE</a> is <kbd>DEFAULT</kbd> (which is
+mom&#8217;s default). If your DOCTYPE is CHAPTER, use
+<a href="#title">TITLE</a>
+to set the overall document title for cover pages, document cover
+pages, and page headers or footers.
+</p>
+</div>
+
+<p style="margin-top: -.5em;">
+When you&#8217;re creating a single document, say, an essay or a
+short story, you have no need of this macro.
+<a href="#title">TITLE</a>
+takes care of all your title needs.
+</p>
+
+<p>
+However if you&#8217;re
+<a href="rectoverso.html#collate">collating</a>
+a bunch of documents together, say, to print out a report containing
+many articles with different titles, or a book of short stories with
+different authors, you need DOCTITLE.
+</p>
+
+<p>
+DOCTITLE tells mom the title of the complete document (as opposed to
+the title of each article or entitled section), and appears
+</p>
+
+<ol style="list-style-type: lower-alpha">
+ <li>as the window title in PDF viewers (e.g. Okular or Evince)</li>
+ <li>in the initial rightmost position of page headers in the document</li>
+</ol>
+
+<p>
+Moreover, DOCTITLE does not appear in the
+<a href="definitions.html#pdfoutline">PDF outline</a>,
+as its presence in window title would make it redundant.
+</p>
+
+<p>
+The doctitle string can be caps or caps/lower-case; it&#8217;s up to
+you. In
+<a href="#printstyle">PRINTSTYLE TYPESET</a>,
+by default, the doctitle in
+<a href="definitions.html#header">page headers</a>
+is all in caps, unless you turn that feature off (see
+<a href="headfootpage.html#_caps">HEADER_&lt;POSITION&gt;_CAPS</a>).
+In
+<a href="#printstyle">PRINTSTYLE TYPEWRITE</a>,
+the doctitle always gets converted to caps.
+</p>
+
+<p>
+DOCTITLE accepts multiple arguments, each surrounded
+by double-quotes. Each argument is printed on a separate line,
+permitting you to create multi-line document titles for use on
+<a href="cover.html#cover">Covers</a>
+and/or
+<a href="cover.html#doc-cover">Doc covers</a>.
+</p>
+
+<!-- -SUBTITLE- -->
+
+<div class="macro-id-overline">
+<h3 id="subtitle" class="macro-id">SUBTITLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SUBTITLE</b> <kbd class="macro-args">[COVER | DOC_COVER] &quot;&lt;subtitle&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;String arguments must be enclosed in double-quotes
+</p>
+
+<p>
+The subtitle string can be caps or caps/lower-case. I recommend
+caps/lower case.
+</p>
+
+<p>
+SUBTITLE accepts multiple arguments, each surrounded
+by double-quotes. Each argument is printed on a separate line,
+permitting you to create multi-line subtitles.
+</p>
+
+<p>
+If the optional argument, <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>,
+is given to SUBTITLE, the remaining string
+arguments represent the subtitle that will appear on cover or
+document cover pages (see the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible to have
+differing subtitles appear on the document cover, the cover
+(&#8220;title&#8221;) page, and in the document header. An extreme
+example would be:
+<br/>
+<span class="pre-in-pp">
+ .SUBTITLE "The Docheader Subtitle"
+ .SUBTITLE DOC_COVER "The Document Cover Subtitle"
+ .SUBTITLE COVER "The Cover Subtitle"
+</span>
+The first invocation of <kbd>.SUBTITLE</kbd> establishes the
+subtitle that appears in the docheader at the top of the first page
+of a document. The second invocation establishes the subtitle that
+appears on the document cover; the third establishes the subtitle
+that appears on the cover (&#8220;title&#8221;) page.
+</p>
+
+<p>
+If you don&#8217;t require differing subtitles for doc cover and cover
+pages, <kbd>.SUBTITLE</kbd>, without the optional first argument, is
+sufficient, provided you give the word, <kbd>SUBTITLE</kbd>, as an
+argument to the macro
+<a href="cover.html#doc-cover">DOC_COVER</a>
+or
+<a href="cover.html#cover">COVER</a>
+</p>
+
+<!-- -AUTHOR- -->
+
+<div class="macro-id-overline">
+<h3 id="author" class="macro-id">AUTHOR</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>AUTHOR</b> <kbd class="macro-args">[COVER | DOC_COVER] &quot;&lt;author&gt;&quot; [ &quot;&lt;author2&gt;&quot; [&quot;&lt;author3&gt;&quot; ... ] ]</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>EDITOR</b>
+</p>
+<p class="requires">
+&bull;&nbsp;String arguments must be enclosed in double-quotes
+</p>
+
+<p>
+Each author string can hold as many names as you like, e.g.
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .AUTHOR "Joe Blow"
+</span>
+or
+<br/>
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ .AUTHOR "Joe Blow, Jane Doe" "John Hancock"
+</span>
+Mom prints each string that&#8217;s enclosed in double-quotes on a
+separate line in the
+<a href="definitions.html#docheader">docheader</a>,
+however only the first string appears in
+<a href="definitions.html#header">page headers</a>.
+If you want mom to put something else in the author part of page
+headers (say, just the last names of a document&#8217;s two
+authors), redefine the appropriate part of the header (see
+<a href="headfootpage.html#header-control">header/footer control</a>).
+</p>
+
+<p>
+The strings can be caps or caps/lower-case. I recommend caps/lower
+case.
+</p>
+
+<p>
+If the optional argument, <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>,
+is given to AUTHOR, the remaining string arguments represent the
+author(s) that will appear on cover or document cover pages (see the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible
+to have differing authors on the document cover, the cover
+(&#8220;title&#8221;) page, in the document first-page header and
+subsequent page headers/footers. An example might be:
+<br/>
+<span class="pre-in-pp">
+ .AUTHOR "Joe Blow"
+ .EDITOR DOC_COVER "John Smith" "and" "Jane Doe" \" EDITOR is an alias for AUTHOR
+ .AUTHOR COVER "Joe Blow" "(assisted by Jane Doe)"
+</span>
+The first invocation of <kbd>.AUTHOR</kbd> establishes the author
+that appears in the docheader at the top of the first page of
+a document and in subsequent page headers/footers. The second
+invocation establishes the authors (editors, in this instance) that
+appear on the document cover; the third establishes the author(s)
+that appear(s) on the cover (&#8220;title&#8221;) page.
+</p>
+
+<p>
+If you don&#8217;t require differing authors for doc cover and cover
+pages, <kbd>.AUTHOR</kbd>, without the optional first argument, is
+sufficient, provided you give the word, <kbd>AUTHOR</kbd> as an
+argument to the macro
+<a href="cover.html#doc-cover">DOC_COVER</a>
+or
+<a href="cover.html#cover">COVER</a>
+</p>
+
+<!-- -CHAPTER- -->
+
+<div class="macro-id-overline">
+<h3 id="chapter" class="macro-id">CHAPTER</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CHAPTER</b> <kbd class="macro-args">&lt;chapter number&gt;</kbd>
+</div>
+
+<p>
+The chapter number can be in any form you like&mdash;a digit, a roman
+numeral, a word. If you choose
+<a href="#doctype">DOCTYPE CHAPTER</a>,
+mom prints whatever argument you pass CHAPTER beside the word,
+&#8220;Chapter&#8221;, as a single line
+<a href="definitions.html#docheader">docheader</a>.
+She also puts the same thing in the middle of
+<a href="definitions.html#header">page headers</a>.
+</p>
+
+<p>
+Please note that if your argument to CHAPTER runs to more than one
+word, you must enclose the argument in double-quotes.
+</p>
+
+<p>
+If you&#8217;re not using DOCTYPE CHAPTER, the macro can
+be used to identify any document as a chapter <i>for the purpose of
+prepending a chapter number to numbered head elements</i>, provided
+you pass it a
+<a href="definitions.html#numericargument">numeric argument</a>.
+See
+<a href="docelement.html#prefix-chapter-number">PREFIX_CHAPTER_NUMBER</a>.
+</p>
+
+<!-- -CHAPTER_STRING- -->
+
+<h3 id="chapter-string" class="docs">Chapter string</h3>
+
+<p>
+If you&#8217;re not writing in English, you can ask mom to use the
+word for &#8220;chapter&#8221; in your own language by telling her
+what it is with the CHAPTER_STRING macro, like this:
+<br/>
+<span class="pre">
+ .CHAPTER_STRING "Chapître"
+</span>
+</p>
+
+<p>
+If you would like a blank chapter string, i.e., you&#8217;d like the
+chapter number to appear without &#8220;Chapter&#8221; beforehand,
+enter <kbd>.CHAPTER_STRING "\&amp;"</kbd>.
+</p>
+
+<!-- -CHAPTER_TITLE- -->
+
+<div class="macro-id-overline">
+<h3 id="chapter-title" class="macro-id">CHAPTER_TITLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CHAPTER_TITLE</b> <kbd class="macro-args">&quot;&lt;chapter title&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Arguments must be enclosed in double-quotes
+</p>
+
+<p>
+If, either in addition to or instead of &#8220;Chapter
+&lt;n&gt;&#8221; appearing at the top of chapters, you want your
+chapter to have a title, use CHAPTER_TITLE, with your title enclosed
+in double-quotes, like this:
+<br/>
+<span class="pre">
+ .CHAPTER_TITLE "The DMCA Nazis"
+</span>
+</p>
+
+<p>
+CHAPTER_TITLE accepts multiple arguments, each surrounded by
+double-quotes. Each argument is printed on a separate line,
+permitting you to create multi-line chapter titles in your
+docheaders.
+</p>
+
+<p>
+If you&#8217;ve used
+<a href="#chapter">CHAPTER</a>
+to give the chapter a number, both &#8220;Chapter &lt;n&gt;&#8221;
+and the chapter title will appear at the top of the chapter, like
+this:
+<br/>
+<span class="pre-in-pp">
+ Chapter 1
+ The DMCA Nazis
+</span>
+In such a case, by default, only the chapter&#8217;s title will appear in
+the
+<a href="definitions.html#header">page headers</a>,
+not &#8220;Chapter &lt;n&gt;&#8221;.
+</p>
+
+<p>
+If you omit CHAPTER when setting up your reference macros, only the
+title will appear, both at the top of page one and in subsequent
+page headers.
+</p>
+
+<p>
+The style of the chapter title can be altered by
+<a href="docelement.html#docelement-control">control macros</a>,
+e.g. CHAPTER_TITLE_FAMILY, CHAPTER_TITLE_FONT, etc. The default
+family, font and point size are Times Roman, Bold Italic, 4 points
+larger than
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<!-- -DRAFT- -->
+
+<div class="macro-id-overline">
+<h3 id="draft" class="macro-id">DRAFT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DRAFT</b> <kbd class="macro-args">&lt;draft number&gt;</kbd>
+</div>
+
+<p>
+DRAFT only gets used with
+<a href="#copystyle">COPYSTYLE&nbsp;DRAFT</a>.
+If the COPYSTYLE is FINAL (the default), mom ignores DRAFT. DRAFT
+accepts both alphabetic and numeric arguments, hence it&#8217;s
+possible to do either
+<br/>
+<span class="pre">
+ .DRAFT 2
+ or
+ .DRAFT Two
+</span>
+</p>
+
+<p>
+Mom prints the argument to <kbd>.DRAFT</kbd> (i.e. the draft number)
+beside the word &#8220;Draft&#8221; in the middle part of
+<a href="definitions.html#header">page headers</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">A small word of caution:</span>
+If your argument to <kbd>.DRAFT</kbd> is more than one word long,
+you must enclose the argument in double-quotes.
+</p>
+</div>
+
+<p>
+You may, if you wish, invoke <kbd>.DRAFT</kbd> without an
+argument, in which case, no draft number will be printed beside
+&#8220;Draft&#8221; in headers or footers.
+</p>
+
+<!-- -DRAFT_STRING- -->
+
+<h3 id="draft-string" class="docs">The draft string</h3>
+
+<p>
+If you&#8217;re not writing in English, you can ask mom
+to use the word for &#8220;draft&#8221; in your own language by
+telling her what it is with the DRAFT_STRING macro,
+like this:
+<br/>
+<span class="pre">
+ .DRAFT_STRING "Jet"
+</span>
+</p>
+
+<p>
+Equally, DRAFT_STRING can be used to roll your own solution to
+something other than the word &#8220;Draft.&#8221; For example, you
+might want &#8220;Trial run alpha-three&#8221; to appear in the
+headers of a draft version. You&#8217;d accomplish this by doing
+<br/>
+<span class="pre">
+ .DRAFT alpha-three
+ .DRAFT_STRING "Trial run"
+</span>
+</p>
+
+<p>
+If you wanted only &#8220;Trial run&#8221; to appear, entering
+<kbd>.DRAFT</kbd> without an argument as well as
+<kbd>.DRAFT_STRING&nbsp;"Trial&nbsp;run"</kbd> is how you&#8217;d do it.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you define both a blank <kbd>.DRAFT</kbd> and a blank
+<kbd>.DRAFT_STRING</kbd>, mom skips the draft field in headers
+entirely. If this is what you want, this is also the only way
+to do it. Simply omitting invocations of <kbd>.DRAFT</kbd> and
+<kbd>.DRAFT_STRING</kbd> will result in mom using her default, which
+is to print &#8220;Draft &lt;number&gt;&#8221;.
+</p>
+</div>
+
+<!-- -REVISION- -->
+
+<div class="macro-id-overline">
+<h3 id="revision" class="macro-id">REVISION</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>REVISION</b> <kbd class="macro-args">&lt;revision number&gt;</kbd>
+</div>
+
+<p>
+REVISION only gets used with
+<a href="#copystyle">COPYSTYLE DRAFT</a>.
+If the COPYSTYLE is FINAL (the default), mom ignores the REVISION
+macro. REVISION accepts both alphabetic and numeric arguments, hence
+it&#8217;s possible to do either
+<br/>
+<span class="pre" style="margin-bottom: -1em;">
+ .REVISION 2
+</span>
+or
+<span class="pre" style="margin-top: -.5em;">
+ .REVISION Two
+</span>
+</p>
+
+<p>
+Mom prints the revision number beside the shortform
+&#8220;Rev.&#8221; in the middle part of
+<a href="definitions.html#header">page headers</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">A small word of caution:</span>
+If your argument to <kbd>.REVISION</kbd> is more than one word long,
+you must enclose the argument in double-quotes.
+</p>
+</div>
+
+<p>
+You may, if you wish, invoke <kbd>.REVISION</kbd> without an
+argument, in which case, no revision number will be printed beside
+&#8220;Rev.&#8221; in headers or footers.
+</p>
+
+<!-- -REVISION_STRING- -->
+
+<h3 id="revision-string" class="docs">The revision string</h3>
+
+<p>
+If you&#8217;re not writing in English, you can ask mom
+to use the word for &#8220;revision,&#8221; or a shortform
+thereof, in your own language by telling her what it is with the
+REVISION_STRING macro, like this:
+<br/>
+<span class="pre">
+ .REVISION_STRING "Rév."
+</span>
+</p>
+
+<p>
+Additionally, you may sometimes want to make use of mom&#8217;s
+<a href="#copystyle">COPYSTYLE DRAFT</a>
+but not actually require any draft information. For example,
+you might like mom to indicate only the revision number of
+your document. The way to do that is to define an empty
+<kbd>.DRAFT</kbd> and <kbd>.DRAFT_STRING</kbd> in addition to
+<kbd>.REVISION</kbd>, like this:
+<br/>
+<span class="pre">
+ .DRAFT
+ .DRAFT_STRING
+ .REVISION 2
+</span>
+</p>
+
+<p>
+Equally, if you want to roll your own solution to what revision
+information appears in headers, you could do something like this:
+<br/>
+<span class="pre">
+ .DRAFT
+ .DRAFT_STRING
+ .REVISION "two-twenty-two"
+ .REVISION_STRING "Revision"
+</span>
+</p>
+
+<p>
+The above, naturally, has no draft information. If you want to roll
+your own <kbd>.DRAFT</kbd> and/or <kbd>.DRAFT_STRING</kbd> as well,
+simply supply arguments to either or both.
+</p>
+
+<!-- -COPYRIGHT- -->
+
+<div class="macro-id-overline">
+<h3 id="copyright" class="macro-id">COPYRIGHT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>COPYRIGHT</b> <kbd class="macro-args">[COVER | DOC_COVER] &quot;&lt;copyright info&gt;&quot;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Argument must be enclosed in double-quotes
+</p>
+
+<p>
+The required argument to COPYRIGHT is only used on cover or doc cover
+pages, and then only if the argument COPYRIGHT is passed to
+<a href="cover.html#cover">COVER</a>
+or
+<a href="cover.html#doc-cover">DOC_COVER</a>.
+Do not include the copyright symbol in the argument passed to
+COPYRIGHT; mom puts it in for you.
+</p>
+
+<p>
+The optional argument, <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>,
+should only be used if you have both a doc cover and a cover and want
+differing copyright information on each (see the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible to
+have differing copyright information on the document cover and on
+the cover (&#8220;title&#8221;) page. An example might be:
+<br/>
+<span class="pre-in-pp">
+ .COPYRIGHT DOC_COVER "2010 John Smith and Jane Doe"
+ .COPYRIGHT COVER "2008 Joe Blow"
+</span>
+The first invocation of <kbd>.COPYRIGHT</kbd> establishes the
+copyright information that appears on the document cover; the second
+establishes the copyright information that appears on the cover
+(&#8220;title&#8221;) page.
+</p>
+
+<p>
+If you don&#8217;t require differing copyright information for
+doc cover and cover pages, <kbd>.COPYRIGHT</kbd>, without the
+optional first argument, is sufficient, provided you give the word,
+<kbd>COPYRIGHT</kbd>, as an argument to the macro
+<a href="cover.html#doc-cover">DOC_COVER</a>
+or
+<a href="cover.html#cover">COVER</a>
+</p>
+
+<p>
+Style parameters for the copyright line may be
+entered as individual macros or
+<a href="docelement.html#grouping">grouped</a>,
+e.g.
+<br/>
+<span class="pre-in-pp">
+ .COPYRIGHT_FAMILY H
+ .COPYRIGHT_FONT R
+ .COPYRIGHT_SIZE -2
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .COPYRIGHT_STYLE \
+ FAMILY H \
+ FONT R \
+ SIZE -2
+</span>
+The vertical position of the copyright line may be raised (-) or
+lowered (+) with the macro COPYRIGHT_V_ADJUST. For example, to
+raise the copyright line by 3
+<a href="definitions.html#picaspoints">points</a>, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .COPYRIGHT_V_ADJUST -3p
+</span>
+Alternatively, the COPYRIGHT_STYLE macro may be used with the
+argument <kbd>V_ADJUST</kbd>:
+<span class="pre-in-pp">
+ .COPYRIGHT_STYLE \
+ FAMILY H \
+ FONT R \
+ SIZE -2 \
+ V_ADJUST -3p
+</span>
+</p>
+
+<!-- -MISC- -->
+
+<div class="macro-id-overline">
+<h3 id="misc" class="macro-id">MISC</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>MISC</b> <kbd class="macro-args">[COVER | DOC_COVER] &quot;&lt;argument 1&gt;&quot; [&quot;&lt;argument 2&gt;&quot; &quot;&lt;argument 3&gt;&quot; ...]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;String arguments must be enclosed in double-quotes
+</p>
+
+<p>
+The argument(s) passed to MISC are only used on cover or doc cover
+pages, and then only if the argument <kbd>MISC</kbd> is passed to
+<a href="cover.html#cover">COVER</a>
+or
+<a href="cover.html#doc-cover">DOC_COVER</a>.
+MISC can contain any information you like. Each argument appears on
+a separate line at the bottom of the cover or doc cover page.
+</p>
+
+<p>
+For example, if you&#8217;re submitting an essay where the prof has
+requested that you include the course number, his name and the date,
+you could do
+<br/>
+<span class="pre-in-pp">
+ .MISC "Music History 101" "Professor Hasbeen" "Dec. 24, 2010"
+</span>
+and the information would appear on the essay&#8217;s cover page.
+</p>
+
+<p>
+If the optional argument, <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>,
+is given to MISC, the string arguments represent the miscellaneous
+information that will appear on cover or document cover pages (see
+the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible to
+have differing miscellaneous information on the document cover and
+on the cover (&#8220;title&#8221;) page. An example might be:
+<br/>
+<span class="pre">
+ .MISC DOC_COVER "Music History 101" "Professor Hasbeen"
+ .MISC COVER "Spring Term Paper"
+</span>
+</p>
+
+<p>
+The first invocation of <kbd>.MISC</kbd> establishes the
+miscellaneous information that appears on the document cover; the
+second establishes the miscellaneous information that appears on the
+cover (&#8220;title&#8221;) page.
+</p>
+
+<p>
+If you don&#8217;t require differing miscellaneous information
+for doc cover and cover pages, <kbd>.MISC</kbd>, without the
+optional first argument, is sufficient, provided you give the word
+&#8220;MISC&#8221; as an argument to the macro
+<a href="cover.html#doc-cover">DOC_COVER</a>
+or
+<a href="cover.html#cover">COVER</a>
+</p>
+
+<!-- -COVER_TITLE- -->
+
+<div class="macro-id-overline">
+<h3 class="macro-id">COVERTITLE &amp; DOC_COVERTITLE</h3>
+</div>
+
+<div id="covertitle" class="box-macro-args">
+Macro: <b>COVERTITLE</b> <kbd class="macro-args">&quot;&lt;user defined cover page title&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Arguments must be enclosed in double-quotes
+</p>
+
+<div id="doc-covertitle" class="box-macro-args">
+Macro: <b>DOC_COVERTITLE</b> <kbd class="macro-args">&quot;&lt;user defined document cover page title&gt;&quot; [&quot;&lt;2nd line&gt;&quot; [&quot;&lt;3rd line&gt;&quot; ... ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Arguments must be enclosed in double-quotes
+</p>
+
+<p>
+The arguments passed to COVERTITLE or DOC_COVERTITLE are only
+used on cover or doc cover pages, and then only if the argument
+<kbd>COVERTITLE</kbd> or <kbd>DOC_COVERTITLE</kbd> is explicitly
+passed to
+<a href="cover.html#cover">COVER</a>
+or
+<a href="cover.html#doc-cover">DOC_COVER</a>.
+</p>
+
+<p>
+COVERTITLE and DOC_COVERTITLE accept multiple arguments, each
+surrounded by double-quotes. Each argument is printed on a separate
+line, permitting you to create multi-line titles on your cover
+and/or doc cover pages.
+</p>
+
+<p>
+You only require COVERTITLE or DOC_COVERTITLE if they differ from
+TITLE. Note that
+<a href="#title">TITLE</a>
+itself has two optional arguments that accomplish the same thing.
+</p>
+
+<div class="macro-id-overline">
+<h3 class="macro-id">PDF Title</h3>
+</div>
+
+<div id="pdftitle" class="box-macro-args">
+Macro: <b>PDF_TITLE</b> <kbd class="macro-args">&quot;&lt;pdf viewer window title&gt;&quot;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Argument must be enclosed in double-quotes
+</p>
+
+<p>
+Except for
+<a href="#doc-title">DOCTITLE</a>,
+mom does not, by default, provide PDF viewers with a document title.
+You may set one, if you like, with PDF_TITLE.
+</p>
+
+<div class="macro-id-overline">
+<h3 class="macro-id">TOC heading</h3>
+</div>
+
+<div id="toc-heading" class="box-macro-args">
+Macro: <b>TOC_HEADING</b> <kbd class="macro-args">&quot;&lt;single line TOC heading&gt;&quot;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Argument must be enclosed in double-quotes
+</p>
+
+<p>
+Mom generates tables of contents automatically (see
+<a href="tables-of-contents.html#toc">TOC</a>).
+You may sometimes want to insert a line of text into the table of
+contents without it referring to a page number, for example to
+identify a &#8220;Part I&#8221; and a &#8220;Part II.&#8221;
+</p>
+
+<p>
+Placed before any instance of
+<a href="#start">START,</a>
+TOC_HEADING inserts its text into the table of contents with a
+modest amount of whitespace around it to distinguish it easily
+from table of contents entries.
+</p>
+
+<p>
+The appearance of the heading may be controlled with
+the macro
+<a href="#toc-heading-style">TOC_HEADING_STYLE</a>.
+</p>
+
+<div id="toc-heading-style" class="box-macro-args">
+Macro: <b>TOC_HEADING_STYLE</b> <kbd class="macro-args">&quot;&lt;arguments&gt;&quot;</kbd>
+</div>
+
+<p>
+TOC_HEADING_STYLE controls the look of TOC headings. It is a
+<a href="docelement.html#grouping">&#8220;grouping&#8221;</a>
+style macro with multiple arguments. It is recommended that
+you use the backslash character to separate them into individual
+lines rather than entering a single, very long line.
+</p>
+
+<p>
+TOC_HEADING_STYLE accepts as many or as few arguments as you need:
+<span class="pre-in-pp">
+ FAMILY &lt;family&gt; \
+ FONT &lt;font&gt; \
+ SIZE &lt;+|-n&gt; \
+ COLOR &lt;colorname&gt;* \
+ QUAD L | C | R \
+ SPACE_ABOVE &lt;n&gt;** \
+ SPACE_BENEATH &lt;n&gt;**
+</span>
+&nbsp;&nbsp;* <kbd>COLOR</kbd> must be pre-initialized with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+<br/>
+** <kbd>SPACE_ABOVE</kbd> and <kbd>SPACE_BENEATH</kbd> require a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to be appended to their numeric argument.
+</p>
+
+<p>
+For example, if you want your TOC headings to be bold, slightly
+larger than the rest of the table of contents, centred, and with
+one linespace beforehand,
+<span class="pre-in-pp">
+ FONT B \
+ SIZE +.5 \
+ QUAD C \
+ SPACE_ABOVE 1v
+</span>
+</p>
+
+<p>
+ See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for further information about the arguments. Note that
+<kbd>SPACE_ABOVE</kbd> and <kbd>SPACE_BENEATH</kbd> are unique to
+TOC_HEADING_STYLE.
+
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<h2 id="docstyle-macros" class="macro-group">The docstyle macros</h2>
+
+<p>
+The docstyle macros tell mom what type of document you&#8217;re
+writing, whether you want the output typeset or &#8220;typewritten,
+double-spaced&#8221;, and whether you want a draft copy (with draft
+and revision information in the headers) or a final copy.
+</p>
+
+<div class="macro-list-container">
+<h3 id="index-docstyle" class="macro-list">Docstyle macros</h3>
+<ul class="macro-list">
+ <li><a href="#doctype">DOCTYPE</a></li>
+ <li><a href="#printstyle">PRINTSTYLE</a> &ndash; non-optional macro required for document processing
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#typeset-defaults">Defaults for PRINTSTYLE TYPESET</a></li>
+ <li><a href="#typewrite-defaults">Defaults for PRINTSTYLE TYPEWRITE</a>
+ <ul style="margin-left: -.5em; list-style-type: circle;">
+ <li><a href="#typewrite-control">PRINTSTYLE TYPEWRITE control macros</a>
+ <ul style="margin-left: -1.5em; list-style-type: square;">
+ <li><a href="#typewriter-family">Family</a></li>
+ <li><a href="#typewriter-size">Point size</a></li>
+ <li><a href="#typewriter-underlining">Underlining of italics</a></li>
+ </ul></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#copystyle">COPYSTYLE</a></li>
+</ul>
+</div>
+
+<!-- -DOCTYPE- -->
+
+<div class="macro-id-overline">
+<h3 id="doctype" class="macro-id">DOCTYPE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOCTYPE</b> <kbd class="macro-args">DEFAULT | CHAPTER | NAMED &quot;&lt;name&gt;&quot; | LETTER | SLIDES</kbd>
+</div>
+
+<p>
+The arguments <kbd>DEFAULT,</kbd> <kbd>CHAPTER</kbd> and
+<kbd>NAMED</kbd> tell mom what to put in the
+<a href="definitions.html#docheader">docheader</a>
+and
+<a href="definitions.html#header">page headers</a>.
+<kbd>LETTER</kbd> and <kbd>SLIDES</kbd> tells her you want to write
+a letter or create slides.
+</p>
+
+<p>
+Mom&#8217;s default DOCTYPE is <kbd>DEFAULT</kbd>. If that&#8217;s
+what you want, you don&#8217;t have to give a DOCTYPE command.
+</p>
+
+<p id="default-doctype">
+<kbd>DEFAULT</kbd> prints a
+<a href="definitions.html#docheader">docheader</a>
+containing the title, subtitle and author information given to the
+<a href="#reference-macros">reference macros</a>,
+and page headers with the author and title. (See
+<a href="headfootpage.html#header-style">Default specs for headers</a>
+for how mom outputs each part of the page header.)
+</p>
+
+<p>
+<kbd>CHAPTER</kbd> prints &#8220;Chapter &lt;n&gt;&#8221; in place
+of a
+<a href="definitions.html#docheader">docheader</a>
+(&lt;n&gt; is what you gave to the
+<a href="#reference-macros">reference macro</a>,
+<kbd><a href="#chapter">CHAPTER</a></kbd>).
+If you give the chapter a title with
+<a href="#chapter-title">CHAPTER_TITLE</a>,
+mom prints &#8220;Chapter &lt;n&gt;&#8221; and the
+title underneath. If you omit the
+<a href="#chapter">CHAPTER</a>
+reference macro but supply a
+<a href="#chapter-title">CHAPTER_TITLE</a>,
+mom prints only the chapter title.
+</p>
+
+<p>
+The page headers in DOCTYPE <kbd>CHAPTER</kbd> contain the author,
+the title of the book (which you gave with
+<a href="#title">TITLE</a>),
+and &#8220;Chapter &lt;n&gt;&#8221; (or the chapter title). See
+<a href="headfootpage.html#header-style">Default Specs for Headers</a>
+for mom&#8217;s default type parameters for each part of
+the page header.
+</p>
+
+<p>
+<kbd>NAMED</kbd> takes an additional argument: a name for this
+particular kind of document (e.g. outline, synopsis, abstract,
+memorandum), enclosed in double-quotes. <kbd>NAMED</kbd> is
+identical to <kbd>DEFAULT</kbd> except that mom prints the argument
+to <kbd>NAMED</kbd> beneath the
+<a href="definitions.html#docheader">docheader</a>,
+as well as in page headers.
+(See
+<a href="headfootpage.html#header-style">Default specs for headers</a>
+for how mom outputs each part of the page header.)
+</p>
+
+<div class="box-tip">
+<p id="doctype-note" class="tip">
+<span class="note">Note: version 2.1 change</span>
+<br/>
+<kbd>DOCTYPE NAMED "string"</kbd> no longer accepts a colour
+argument after <kbd>"string"</kbd>. Setting the colour
+of the string is now done with <kbd><span class="nobr">DOCTYPE_COLOR
+&lt;color&gt;</span></kbd>. Default underscoring of
+<kbd>"string"</kbd> in the docheader and on covers
+has been removed. Use <kbd>DOCTYPE_UNDERSCORE</kbd>,
+<kbd>DOC_COVER_DOCTYPE_UNDERSCORE</kbd> and/or
+<kbd>COVER_DOCTYPE_UNDERSCORE</kbd> to re-enable it. All three take
+the same arguments listed in the
+<a href="docelement.html#underscore">Underscore style, rule weight</a>
+section of
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>.
+</p>
+</div>
+
+<p>
+<kbd>LETTER</kbd> tells mom you&#8217;re writing a letter. See the
+section
+<a href="letters.html#letters">Writing Letters</a>
+for instructions on using mom to format letters.
+</p>
+
+<h4 id="slides" class="docs" style="font-size: 100%; text-transform: uppercase">Slides</h4>
+
+<p>
+PDF slides are a special kind of mom document, formatted for viewing
+in a PDF reader&#8217;s presentation mode. In most respects, they
+behave identically to the other document types. Key differences
+are:
+</p>
+<ul style="margin-top: -.5em">
+<li>headers, footers, and pagination are disabled by default</li>
+<li>type is set
+<a href="typesetting.html#quad">QUAD CENTER</a>
+by default</li>
+<li>
+<a href="#flex">flex-spacing</a>
+and
+<a href="#shim">shimming</a>
+are disabled by default; shimming may
+be re-enabled (with <kbd>NO_SHIM OFF</kbd>), but not flex-spacing</li>
+<li>there&#8217;s no need for
+<a href="#printstyle">PRINTSTYLE</a></li>
+</ul>
+
+<p>
+DOCTYPE SLIDES takes up to five optional arguments, which come
+immediately after SLIDES. They may be entered in any order.
+<br/>
+<span class="pre-in-pp">
+ DOCTYPE SLIDES \
+ ASPECT 4:3 | 16:9 \
+ HEADER "left" "centre" "right" \
+ FOOTER "left" "centre" "right" \
+ TRANSITION "&lt;slide transition effect&gt;" (mode + parameters) \
+ PAUSE "&lt;text reveal effect&gt;" (mode + parameters)
+</span>
+For convenience, you many want to enter each argument on a single
+line as shown above; all but the last must be terminated by a
+backslash.
+</p>
+
+<h5 class="docs" style="margin-top: .5em">Aspect</h5>
+
+<p>
+Slides can be formatted for one of two aspect ratios common to
+monitors and screens: 4:3 and 16:9. The default is 16:9.
+<span class="pre-in-pp">
+ 4:3 16:9
+ media size: 11" x 8.25" media size: 11" x 8.1875"
+ left/right margins: 36 points left/right margins: 36 points
+ top margin: 90 points top margin: 80 points
+ bottom margin: 84 points bottom margin: 72 points
+ base text size: 16 points base text size: 14 points
+ autoleading: 6 points, adjusted autoleading: 4 points, adjusted
+ (header/footer size: -3 points) (header/footer size: -2 points)
+</span>
+Note that both media sizes fit on either A4 or US LETTER papersizes.
+</p>
+
+<h5 class="docs" style="margin-top: .5em">Headers, footers, and pagination</h5>
+
+<p>
+If you want a header, footer, or both for your slides, pass SLIDES
+the <kbd>HEADER</kbd> and/or <kbd>FOOTER</kbd> argument(s). Both
+take three additional
+<a href="definitions.html#stringargument">string arguments</a>,
+which must be enclosed in double-quotes, defining the left, centre,
+and right parts of the header/footer. Any parts you want left blank
+should be entered as two double-quotes. For example,
+<span class="pre-in-pp">
+ HEADER "" "My slide presentation" ""
+</span>
+will result in a header with only the centre part.
+</p>
+
+<p>
+Normal pagination is disabled for slides. If you want your slides
+numbered, the slide number must be given to one of the header/footer
+parts with the
+<a href="definitions.html#inlines">inline escape</a>
+<br/>
+<kbd><span class="nobr">\*[SLIDE#]</span></kbd>. For example:
+<span class="pre-in-pp">
+ HEADER "" "My slide presentation" "" \
+ FOOTER "" "" "\*[SLIDE#]"
+</span>
+will give you a centred header with numbering at the bottom right of
+the slide.
+</p>
+
+<p>
+The overall family, size, and colour of headers may be set with
+HEADER_FAMILY, HEADER_SIZE, and HEADER_COLOR. If you request
+FOOTERS, you may use the FOOTER_ equivalent of these macros.
+If you request both headers and footers, use one or the other but
+not both. For example, in a header/footer situation, HEADER_FAMILY
+would determine the family for both headers and footers, but if you
+attempted to do this
+<span class="pre-in-pp">
+ .HEADER_FAMILY T
+ .FOOTER_FAMILY H
+</span>
+FOOTER_FAMILY would take precedence, and your header family would be
+&#8220;<kbd>H</kbd>&#8221;.
+</p>
+
+<p>
+All other formatting of individual header/footer parts must be
+entered as inline escapes inside the double-quotes. If you want,
+say, your headers to be red but your footer page numbering to be
+black and two points larger, this is how you&#8217;d do it:
+<span class="pre-in-pp">
+ .HEADER_COLOR red
+ .DOCTYPE SLIDES \
+ HEADER "" "My slide presentation" "" \
+ FOOTER "" "" "\*[black]\*S[+2]\*[SLIDE#]\*S[-2]"
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Do not use mom&#8217;s
+<a href="inlines.html#inline-size-mom"><kbd><span class="nobr">\*[SIZE&nbsp;&plusmn;n]</span></kbd></a>
+inline escape to change point size in the strings
+passed to HEADER or FOOTER. Prefer either mom&#8217;s
+<kbd><span class="nobr">\*S[&plusmn;n]</span></kbd> or groff&#8217;s
+<kbd><span class="nobr">\s[&plusmn;n]</span></kbd>.
+</p>
+</div>
+
+<h5 class="docs" style="margin-top: .5em">Transition</h5>
+
+<p>
+&#8220;Transition&#8221; refers to how new slides appear during a
+presentation. The official PDF specification lists a number of modes,
+each with a choice of configurable parameters. Modes include Box,
+Blinds, Wipe, Fade, and several others. Parameters include things
+like duration, dimension, and direction. There are a total of
+twelve modes; for each one there are from one to six configurable
+parameters. Consult <kbd>man&nbsp;gropdf(1)</kbd> for a complete listing
+of modes and parameters.
+</p>
+
+<p>
+If you pass SLIDES the <kbd>TRANSITION</kbd> argument, you must
+at a minimum follow it with a mode. Afterwards, you may give as
+many or as few parameters as you wish. Parameters are, in order,
+<span class="pre-in-pp">
+ 1. duration
+ 2. dimension
+ 3. motion
+ 4. direction
+ 5. scale
+ 6. bool
+</span>
+You don&#8217;t have to fill them all out. If you only need the
+first three, that&#8217;s all you need to input. If you need the
+first and third, enter the second as a period (dot), which is used
+any time you want to leave a parameter at its current default or
+when it isn&#8217;t applicable. For example, if you want a Box
+transition that lasts 1 second, filling the screen from the centre
+outwards, you&#8217;d enter
+<span class="pre-in-pp">
+ TRANSITION "Box 1 . O"
+</span>
+because Box does not take a &#8220;dimension&#8221; parameter but it
+does take a motion parameter.
+</p>
+
+<p>
+Notice that the entire string (mode+parameters) must be enclosed in
+double-quotes.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Not all PDF viewers support all modes. Any that are not supported
+are replaced by the &#8220;R&#8221; mode, which simply replaces one
+slide with the next unless the PDF viewer has a different default
+transition mode.
+</p>
+</div>
+
+<h5 class="docs" style="margin-top: .5em">Pause</h5>
+
+<p>
+A &#8220;pause&#8221; occurs when material on a slide is halted (see
+<a href="#pause">PAUSE</a>),
+awaiting a mouse click, PgDown, Next, or the spacebar to reveal
+subsequent material. All the same modes and parameters as
+<kbd>TRANSITION</kbd> may be used. The manner of entering them is
+is identical, including that the entire mode+parameter string must
+be enclosed in double-quotes.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="slide-macros" class="macro-id">SLIDE MACROS</h3>
+</div>
+
+<div id="newslide" class="box-macro-args">
+Macro: <b>NEWSLIDE</b> <kbd class="macro-args">["&lt;transition mode and parameters&gt;"]</kbd>
+</div>
+
+<p>
+Unless you want material from one slide to flow onto the next, you
+need to tell mom when to start a new slide with the macro NEWSLIDE.
+Without any arguments, the new slide will appear with the default
+TRANSITION you gave to DOCTYPE SLIDES.
+</p>
+
+<p>
+If you would like a different transition, you may pass NEWSLIDE a
+new mode and associated parameters, following the same rules as the
+TRANSITION argument to DOCTYPE. Note that the new effect becomes
+the default. If you wish to return to the original transition, you
+must give it explicitly to the appropriate NEWSLIDE.
+</p>
+
+<div id="pause" class="box-macro-args">
+Macro: <b>PAUSE</b> <kbd class="macro-args">["&lt;pause mode and parameters&gt;"]</kbd>
+</div>
+
+<p>
+Pauses in slides are accomplished by entering the macro PAUSE at
+desired locations in your input file. Subsequent material will be
+revealed using the pause mode given to DOCTYPE SLIDES.
+</p>
+
+<p>
+If you would like a different mode, you may pass PAUSE a
+new mode and associated parameters, following the same rules as the
+PAUSE argument to DOCTYPE.
+</p>
+
+<div id="transition" class="box-macro-args">
+Macro: <b>TRANSITION</b> <kbd class="macro-args">["&lt;transition mode and parameters&gt;"]</kbd>
+</div>
+
+<p>
+If for some reason you have material that flows from one slide to
+the next <i>and</i> you want the next slide to have a transition
+different from the current one, you can tell mom about the new
+transition with the macro TRANSITION anywhere prior to the break to
+the next slide.
+</p>
+
+<h4 id="slide-printing" class="docs" style="font-size: 100%; text-transform: uppercase">Printing slides</h4>
+
+<p>
+If you want to print slides as handouts, you have to tell
+<kbd>pdfmom</kbd> or <kbd>gropdf</kbd>, otherwise printing will
+stop at the first pause. Simply precede <kbd>pdfmom</kbd> or
+<kbd>gropdf</kbd> with GROPDF_NOSLIDE=1, like this:
+<br/>
+<span class="pre-in-pp">
+ GROPDF_NOSLIDE=1 pdfmom &lt;options&gt; slidefile.mom &gt; slidefile.pdf
+</span>
+
+</p>
+
+<!-- -PRINTSTYLE- -->
+
+<div class="macro-id-overline">
+<h3 id="printstyle" class="macro-id">PRINTSTYLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PRINTSTYLE</b> <kbd class="macro-args">TYPESET | TYPEWRITE [ SINGLESPACE ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Required for document processing, except in the case of
+slides
+<br/>
+Must come before any changes to default document style
+</p>
+
+<p>
+PRINTSTYLE tells mom whether to typeset a document, or to print it
+out &#8220;typewritten, doubled-spaced&#8221;.
+</p>
+
+<div class="box-important">
+<p class="tip-top">
+<span class="important">Important:</span>
+<b>This macro may not be omitted.</b> In order for document
+processing to take place, mom requires a PRINTSTYLE. If you
+don&#8217;t give one, mom will warn you on stderr and print a single
+page with a nasty message.
+</p>
+
+<p class="tip-bottom">
+<span class="important">Just as important:</span>
+<b>PRINTSTYLE must precede any and all page and style
+parameters associated with a document</b> with the exception of
+<kbd>PAPER</kbd>, which should be placed at the top of your file.
+PRINTSTYLE sets up complete templates that include default margins,
+family, fonts, point sizes, and so on. Therefore, changes to any
+aspect of document style must come afterwards. For example,
+<br/>
+<span class="pre-in-pp">
+ .PAPER A4
+ .LS 14
+ .QUAD LEFT
+ .PRINTSTYLE TYPESET
+</span>
+will not change mom&#8217;s default document leading to 14 points,
+nor the default justification style (fully justified) to left
+justified, whereas
+<br/>
+<span class="pre-in-pp">
+ .PAPER A4
+ .PRINTSTYLE TYPESET
+ .LS 14
+ .QUAD LEFT
+</span>
+will.
+</p>
+
+</div>
+
+<p>
+<kbd>TYPESET</kbd>, as the argument implies, typesets
+documents (by default in Times Roman; see
+<a href="#typeset-defaults">TYPESET defaults</a>).
+You have full access to all the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+as well as the
+<a href="definitions.html#style-control">style control macros</a>
+of document processing.
+</p>
+
+<p>
+With <kbd>TYPEWRITE</kbd>, mom does her best to reproduce the look
+and feel of typewritten, double-spaced copy (see
+<a href="#typewrite-defaults">TYPEWRITE defaults</a>).
+<a href="docelement.html#docelement-control">Control macros</a>
+and
+<a href="typesetting.html#intro-macros-typesetting">typesetting macros</a>
+that alter family, font, point size, and
+<a href="definitions.html#leading">leading</a>
+are (mostly) ignored. An important exception is
+<a href="headfootpage.html#hdrftr-global-size">HEADER_SIZE</a>
+(and, by extension, FOOTER_SIZE), which allows you to reduce the
+point size of headers/footers should they become too crowded. Most
+of mom&#8217;s inlines affecting the appearance of type are also
+ignored
+(<a href="inlines.html#inline-size-mom"><kbd><span class="nobr">\*S[&lt;size&gt;]</span></kbd></a>
+is an exception; there may be a few others).
+</p>
+
+<p>
+In short, <kbd>TYPEWRITE</kbd> never produces effects
+other than those available on a typewriter. Don&#8217;t be fooled
+by how brainless this sounds; mom is remarkably sophisticated when
+it comes to conveying the typographic sense of a document within the
+confines of <kbd>TYPEWRITE</kbd>.
+</p>
+
+<p>
+The primary uses of <kbd>TYPEWRITE</kbd> are: outputting hard
+copy drafts of your work (for editing) and producing documents
+for submission to publishers and agents who (wisely) insist on
+typewritten, double-spaced copy. To get a nicely typeset version of
+work that&#8217;s in the submission phase of its life (say, to show
+fellow writers for critiquing), simply change <kbd>TYPEWRITE</kbd>
+to <kbd>TYPESET</kbd> and print out a copy.
+</p>
+
+<p>
+If, for some reason, you would prefer the output of
+<kbd>TYPEWRITE</kbd> single-spaced, pass PRINTSTYLE
+<kbd>TYPEWRITE</kbd> the optional argument, <kbd>SINGLESPACE</kbd>.
+</p>
+
+<div class="defaults-container">
+<h3 id="typeset-defaults" class="docs defaults" style="margin-top: 0;">PRINTSTYLE TYPESET defaults</h3>
+<span class="pre defaults">
+ Family = Times Roman
+ Point size = 12.5
+ Paragraph leading = 16 points, adjusted
+ Fill mode = justified
+ Hyphenation = enabled
+ max. lines = 2
+ margin = 36 points
+ interword adjustment = 1 point
+ Kerning = enabled
+ Ligatures = enabled
+ Smartquotes = enabled
+ Word space = groff default
+ Sentence space = 0
+</span>
+</div>
+
+<div class="defaults-container">
+<h3 id="typewrite-defaults" class="docs defaults" style="margin-top: 0;">PRINTSTYLE TYPEWRITE defaults</h3>
+<span class="pre defaults">
+ Family = Courier
+ Italics = underlined
+ Point size = 12
+ Paragraph leading = 24 points, adjusted; 12 points for SINGLESPACE
+ Fill mode = left
+ Hyphenation = disabled
+ Kerning = disabled
+ Ligatures = disabled
+ Smartquotes = disabled
+ Word space = groff default
+ Sentence space = groff default
+ Columns = ignored
+</span>
+</div>
+
+<div class="box-tip" style="margin-top: 1.5em;">
+<h3 id="typewrite-control" class="docs control">PRINTSTYLE TYPEWRITE control macros</h3>
+
+<h4 id="typewriter-family" class="docs">Family</h4>
+
+<p style="margin-top: .5em;">
+If you&#8217;d prefer a monospace
+<a href="definitions.html#family">family</a>
+for PRINTSTYLE <kbd>TYPEWRITE</kbd> other than mom&#8217;s
+default, Courier, you can change it with
+<kbd>.TYPEWRITER_FAMILY&nbsp;&lt;family&gt;</kbd> (or
+<kbd>.TYPEWRITER_FAM</kbd>). Since groff ships with only the
+Courier family, you will have to install any other monospace family
+yourself. See
+<a href="appendices.html#fonts">Adding fonts to
+groff</a>.
+</p>
+
+<h4 id="typewriter-size" class="docs">Point size</h4>
+
+<p style="margin-top: .5em;">
+If you&#8217;d like a smaller or larger point size for
+PRINTSTYLE <kbd>TYPEWRITE</kbd> (mom&#8217;s default is 12-point),
+you can change it with
+<kbd>.TYPEWRITER_SIZE&nbsp;&lt;size&gt;</kbd>. There&#8217;s no need to
+add a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to the <kbd>&lt;size&gt;</kbd> argument; points is assumed. Be
+aware, however, that regardless of point size, mom&#8217;s
+leading/linespacing for <kbd>TYPEWRITE</kbd> is fixed at 24-point
+for double-spaced, and 12-point for single-spaced.
+</p>
+
+<h4 id="typewriter-underlining" class="docs">Underlining of italics</h4>
+
+<p>
+In PRINTSTYLE <kbd>TYPEWRITE</kbd>, mom, by default, underlines
+anything that looks like italics. This includes the
+<a href="typesetting.html#slant-inline"><kbd><span class="nobr">\*[SLANT]</span></kbd></a>
+<a href="definitions.html#inlines">inline escape</a>
+for pseudo-italics. (See
+<a href="goodies.html#underline">UNDERLINE</a>
+for a note on how to process TYPEWRITE files that underline
+italics.)
+</p>
+
+<p id="printstyle-italics">
+If you&#8217;d prefer that mom were less bloody-minded
+about pretending to be a typewriter (i.e., you&#8217;d like italics and
+pseudo-italics to come out as italics), use the control macros
+<br/>
+<span class="pre-in-pp">
+ .ITALIC_MEANS_ITALIC
+</span>
+and
+<span class="pre-in-pp">
+ .SLANT_MEANS_SLANT
+</span>
+Neither requires an argument.
+</p>
+
+<p>
+Although it&#8217;s unlikely, should you wish to reverse
+the sense of these macros in the midst of a document,
+<kbd>.UNDERLINE_ITALIC</kbd> and <kbd>.UNDERLINE_SLANT</kbd> restore
+underlining of italics and pseudo-italics.
+</p>
+
+<p id="underline-quotes">
+Additionally, by default, mom underlines
+<a href="definitions.html#quotes">quotes</a>
+(but not
+<a href="definitions.html#blockquotes">blockquotes</a>)
+in PRINTSTYLE <kbd>TYPEWRITE</kbd>. If you don&#8217;t like this
+behaviour, turn it off with
+<br/>
+<span class="pre">
+ .UNDERLINE_QUOTES OFF
+</span>
+</p>
+
+<p>
+To turn underlining of quotes back on, use UNDERLINE_QUOTES without
+an argument.
+</p>
+
+<p>
+While most of the
+<a href="docelement.html#docelement-control">control macros</a>
+have no effect on PRINTSTYLE <kbd>TYPEWRITE</kbd>, there
+is an important exception:
+<a href="headfootpage.html#hdrftr-global-size">HEADER_SIZE</a>
+(and by extension, FOOTER_SIZE). This is
+particularly useful for reducing the point size of
+headers/footers should they become crowded (quite likely to
+happen if the title of your document is long and your
+<a href="#copystyle">COPYSTYLE</a>
+is <kbd>DRAFT</kbd>).
+</p>
+
+<p class="tip-bottom">
+Finally, note that colour is disabled for <kbd>TYPEWRITE</kbd>. If
+you would like it enabled, for example so PDF links are colourised,
+invoke the groff
+<a href="definitions.html#primitives">primitive</a>
+'<kbd>.color</kbd>' after PRINTSTYLE.
+</p>
+
+</div>
+
+<!-- -COPYSTYLE- -->
+
+<div class="macro-id-overline">
+<h3 id="copystyle" class="macro-id">COPYSTYLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>COPYSTYLE</b> <kbd class="macro-args">DRAFT | FINAL</kbd>
+</div>
+
+<p>
+Mom&#8217;s default COPYSTYLE is <kbd>FINAL</kbd>, so you
+don&#8217;t have to use this macro unless you want to.
+</p>
+
+<p>
+COPYSTYLE <kbd>DRAFT</kbd> exhibits the following behaviour:
+</p>
+<ol style="margin-top: -.5em;">
+ <li>Documents start on page 1, whether or not you
+ request a different starting page number with
+ <a href="headfootpage.html#pagenumber">PAGENUMBER</a>.
+ </li>
+ <li>Page numbers are set in lower case roman numerals.</li>
+ <li>The draft number supplied by
+ <a href="#draft">DRAFT</a>
+ and a revision number, if supplied with
+ <a href="#revision">REVISION</a>
+ (see
+ <a href="#reference-macros">reference macros</a>),
+ appear in the centre part of
+ <a href="definitions.html#header">page headers</a>
+ (or footers, depending on which you&#8217;ve selected) along with
+ any other information that normally appears there.
+ </li>
+</ol>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+If you define your own centre part for page headers with
+<a href="headfootpage.html#hdrftr-center">HEADER_CENTER</a>,
+no draft and/or revision number will appear there. If you want
+draft and revision information in this circumstance, use
+<a href="headfootpage.html#draft-with-pagenumber">DRAFT_WITH_PAGENUMBER</a>.
+</p>
+</div>
+
+<p>
+COPYSTYLE <kbd>FINAL</kbd> differs from <kbd>DRAFT</kbd> in that:
+</p>
+<ol style="margin-top: -.5em;">
+ <li>It respects the starting page number you give the document.</li>
+ <li>Page numbers are set in normal (Arabic) digits.</li>
+ <li>No draft or revision number appears in the page headers.</li>
+</ol>
+
+<div class="box-tip">
+<p id="copystyle-note" class="tip">
+<span class="note">Note:</span>
+The centre part of page headers can get crowded, especially with
+<a href="docprocessing.html#doctype">DOCTYPE <kbd>CHAPTER</kbd></a>
+and
+<a href="docprocessing.html#doctype">DOCTYPE <kbd>NAMED</kbd></a>,
+when the COPYSTYLE is <kbd>DRAFT</kbd>. Three mechanisms are
+available to overcome this problem. One is to reduce the overall
+size of headers (with
+<a href="headfootpage.html#hdrftr-global-size">HEADER_SIZE</a>).
+Another, which only works with
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>,
+is to reduce the size of the header&#8217;s centre part only (with
+<a href="headfootpage.html#_size">HEADER_CENTER_SIZE</a>).
+And finally, you can elect to have the draft/revision information
+attached to page numbers instead of having it appear in the centre
+of page headers (see
+<a href="headfootpage.html#draft-with-pagenumber">DRAFT_WITH_PAGENUMBER</a>).
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<h2 id="start-macro" class="macro-group">Initiate document processing</h2>
+
+<p>
+In order to use mom&#8217;s document element macros (tags), you have
+to tell her you want them. The macro to do this is
+<a href="#start">START</a>.
+</p>
+
+<p>
+START collects the information you gave mom in the setup section at
+the top of your file (see
+<a href="#docprocessing-tut">Tutorial &ndash; Setting up a mom document</a>),
+merges it with her defaults, sets up headers and page numbering,
+and prepares mom to process your document using the document
+element tags. No document processing takes place until you invoke
+<kbd>.START</kbd>.
+</p>
+
+<!-- -START- -->
+
+<div class="macro-id-overline">
+<h3 id="start" class="macro-id">START</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>START</b>
+</div>
+<p class="requires">
+&bull;&nbsp;Required for document processing
+</p>
+
+<p>
+START takes no arguments. It simply instructs mom to begin document
+processing. If you don&#8217;t want document processing (i.e., you
+only want the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>),
+don&#8217;t use START.
+</p>
+
+<p>
+At a barest minimum before START, you must enter a
+<a href="#printstyle">PRINTSTYLE</a>
+command.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<h2 id="style-before-start" class="macro-group">Establishing typestyle and formatting parameters before START</h2>
+
+<p>
+In the third (optional) part of setting up a document (the
+stylesheet; see
+<a href="#docprocessing-tut">Tutorial &ndash; Setting up a mom document</a>),
+you can use the
+<a href="typesetting.html">typesetting macros</a>
+to change mom&#8217;s document-wide defaults for margins,
+line length, family, base point size,
+<a href="definitions.html#leading">leading</a>,
+and justification style.
+</p>
+
+<p>
+Two additional style concerns have to be addressed here (i.e. in
+macros before
+<a href="#start">START</a>):
+changes to the
+<a href="definitions.html#docheader">docheader</a>,
+and whether you want you want the document&#8217;s nominal leading
+adjusted to fill pages fully to the bottom margin.
+</p>
+
+<div class="macro-list-container" style="margin-top: 2em;">
+<h3 id="index-style-before-start" class="macro-list">Type &amp; formatting parameters before START</h3>
+<ul class="macro-list">
+ <li><a href="#type-before-start">Behaviour of the typesetting macros before START</a>
+ <ul class="sublist" style="font-size: 100%; line-height: 120%; margin-bottom: .25em;">
+ <li><a href="#meanings">List of meanings</a></li>
+ <li><a href="#lrc-note">Special note on LEFT, RIGHT and CENTER</a></li>
+ <li><a href="#color">Initializing colours</a></li>
+ </ul></li>
+ <li><a href="#include">Including (sourcing) style sheets and files</a></li>
+ <li><a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a> &ndash; adjust linespacing to fill pages and align bottom margins</li>
+ <li><a href="#docheader">DOCHEADER</a>
+ <ul class="sublist" style="font-size: 100%; line-height: 120%;">
+ <li><a href="#docheader-control">Docheader control</a></li>
+ </ul></li>
+ <li><a href="#columns">COLUMNS</a>
+ <ul class="sublist" style="font-size: 100%; line-height: 120%;">
+ <li><a href="#col-next">COL_NEXT</a></li>
+ <li><a href="#col-break">COL_BREAK</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<h3 id="type-before-start" class="docs">Behaviour of the typesetting macros before START</h3>
+
+<p>
+From time to time (or maybe frequently), you&#8217;ll want the
+overall look of a document to differ from mom&#8217;s defaults.
+Perhaps you&#8217;d like her to use a different
+<a href="definitions.html#family">family</a>,
+or a different overall
+<a href="definitions.html#leading">leading</a>,
+or have different left and/or right page margins.
+</p>
+
+<p>
+To accomplish such alterations, use the appropriate
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+(listed below) after
+<a href="#printstyle">PRINTSTYLE</a>
+and before
+<a href="#start">START</a>.
+</p>
+
+<p>
+More than one user has, quite understandably, not fully grasped the
+significance of the preceding sentence. The part they&#8217;ve missed is
+<i>after</i> PRINTSTYLE.
+</p>
+
+<p>
+Changes to any aspect of the default look and/or formatting of a mom
+document must come after PRINTSTYLE. For example, it might seem
+natural to set up page margins at the very top of a document with
+<br/>
+<span class="pre-in-pp">
+ .L_MARGIN 1i
+ .R_MARGIN 1.5i
+</span>
+However, when you invoke <kbd>.PRINTSTYLE</kbd>, those margins
+will be overridden. The correct place to set margins&mdash;and
+all other changes to the look of a document&mdash;is <i>after</i>
+PRINTSTYLE.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">Important:</span>
+Do not use the macros listed in
+<a href="#intro-doc-param">Changing document-wide typesetting parameters after START</a>
+prior to START; they are exclusively for use afterwards.
+</p>
+</div>
+
+<div id="meanings" class="defaults-container">
+<h3 class="docs defaults" style="margin-top: 0;">Meanings</h3>
+<p style="margin-left: 9px; margin-top: -.25em;">
+When used before START, the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>,
+below have the following meanings:
+<br/>
+<span class="pre">
+ L_MARGIN Left margin of pages, including headers/footers
+ R_MARGIN Right margin of pages, including headers/footers
+ T_MARGIN The point at which running text (i.e. not
+ headers/footers or page numbers) starts on each
+ page
+ B_MARGIN* The point at which running text (i.e. not
+ (see note) headers/footers or page numbers) ends on each page
+
+ PAGE If you use PAGE, its final four arguments have the
+ same meaning as L_ R_ T_ and B_MARGIN (above).
+
+ LL The line length for everything on the page;
+ equivalent to setting the right margin with
+ R_MARGIN
+ FAMILY The family of all type in the document
+ PT_SIZE The point size of type in paragraphs; mom uses
+ this to calculate automatic point size changes
+ (e.g. for heads, footnotes, quotes, headers, etc)
+ LS/AUTOLEAD** The leading used in paragraphs; all leading and
+ spacing of running text is calculated from this
+
+ QUAD/JUSTIFY Affects paragraphs only
+ LEFT*** No effect
+ RIGHT*** No effect
+ CENTER*** No effect
+
+------
+ *See <a href="headfootpage.html#footer-margin">FOOTER MARGIN AND BOTTOM MARGIN</a> for an important warning
+ **See <kbd><a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a></kbd>
+***See <a href="#lrc-note">Special note</a>
+</span>
+</p>
+</div>
+
+<p style="margin-top: -.75em;">
+Other macros that deal with type style, or refinements thereof
+(<a href="typesetting.html#kern">KERN</a>,
+<a href="typesetting.html#ligatures">LIGATURES</a>,
+<a href="typesetting.html#hy">HY</a>,
+<a href="typesetting.html#ws">WS</a>,
+<a href="typesetting.html#ss">SS</a>,
+etc.), behave normally. It is not recommended that you set up tabs
+or indents prior to START.
+</p>
+
+<p>
+If you want to change any of the basic parameters (above)
+<i>after</i> START and have them affect a document globally (as if
+you&#8217;d entered them <i>before</i> START), you must use the macros
+listed in
+<a href="#intro-doc-param">Changing document-wide typesetting parameters after START</a>.
+</p>
+
+<h4 id="lrc-note" class="docs">Special note on LEFT, RIGHT and CENTER prior to START</h4>
+
+<p>
+In a word, these three macros have no effect on document processing
+when invoked prior to START.
+</p>
+
+<p>
+All mom&#8217;s document element tags
+(<a href="docelement.html#pp">PP</a>,
+<a href="docelement.html#heading">HEADING</a>,
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>,
+<a href="docelement.html#footnote">FOOTNOTE</a>,
+etc.) except
+<a href="docelement.html#quote">QUOTE</a>
+set a
+<a href="definitions.html#filled">fill mode</a>
+as soon as they&#8217;re invoked. If you wish to turn fill mode off
+for the duration of any tag (with
+<a href="typesetting.html#lrc">LEFT, RIGHT or CENTER</a>)
+you must do so immediately after invoking the tag. Furthermore,
+the change affects <i>only</i> the current invocation of the tag.
+Subsequent invocations of the same tag for which you want the same
+change require that you invoke <kbd>.LEFT</kbd>, <kbd>.RIGHT</kbd>
+or <kbd>.CENTER</kbd> immediately after every invocation of the tag.
+</p>
+
+<!-- -INCLUDE- -->
+
+<h4 id="include" class="docs">Including (sourcing) style sheets and files</h4>
+
+<p>
+If you routinely make the same changes to mom&#8217;s defaults in
+order to create similar documents in a similar style&mdash;in other
+words, you need a template&mdash; you can create stylesheet files
+and include, or &#8220;source&#8221;, them into your mom documents
+with the macro <kbd>.INCLUDE</kbd>. The right place for such style
+sheets is after
+<a href="#printstyle">PRINTSTYLE</a>
+and before
+<a href="#start">START</a>.
+</p>
+
+<p>
+Say, for example, in a particular kind of document, you always
+want main heads set in Helvetica Bold Italic, flush left, with
+no underscore. You&#8217;d create a file, let&#8217;s call it
+<kbd>head-template</kbd>, in which you&#8217;d place the pertinent
+HEADIING control macros.
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 1 \
+ FAMILY H \
+ FONT BI \
+ QUAD L \
+ NO_UNDERSCORE
+</span>
+Then, in the preliminary document set-up section of your main file,
+you&#8217;d include the style sheet, or template, like this:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "Sample Document
+ .AUTHOR "Joe Blow
+ .PRINTSTYLE TYPESET
+ \#
+ .INCLUDE head-template
+ \#
+ .START
+</span>
+
+The blank comment lines ( <kbd>\#</kbd> ) aren&#8217;t required, but
+they do make your file(s) easier to read.
+</p>
+
+<p>
+If the file to be included is in the same directory as the file
+you&#8217;re working, you simply enter the filename after
+<kbd>.INCLUDE</kbd>. If the file&#8217;s in another directory, you must
+provide a full path name to it. For example, if you&#8217;re working in
+a directory called <kbd>/home/joe/stories</kbd> and your
+stylesheet is in <kbd>/home/joe/stylesheets</kbd>, the above
+example would have to look like this:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "Sample Document
+ .AUTHOR "Joe Blow
+ .PRINTSTYLE TYPESET
+ \#
+ .INCLUDE /home/joe/stylesheets/head-template
+ \#
+ .START
+</span>
+</p>
+
+<p>
+INCLUDE is not restricted to style sheets or templates. You can
+include any file at any point into a document, provided the file
+contains only text and valid groff or mom formatting commands.
+Neither is INCLUDE restricted to use with mom&#8217;s document
+processing macros. You can use it in plain typeset documents as
+well.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+INCLUDE is an alias for the groff request <kbd>.so</kbd>. If the
+sourced file contains material that requires pre-processing (e.g.
+a table made with <b>tbl(1)</b> or non-English characters), use
+<kbd>.so</kbd> rather than INCLUDE and invoke pdfmom thus:
+<br/>
+<span class="pre-in-pp">
+ soelim file.mom | pdfmom [flags] &gt; file.pdf
+</span>
+<b>soelim</b> only looks for lines that begin with <kbd>.so</kbd>,
+which furthermore must not have any space between the period and
+the &#8220;s&#8221;.
+</p>
+</div>
+
+<!-- -COLOUR- -->
+
+<h4 id="color" class="docs">Initializing colours</h4>
+
+<p>
+Although it doesn&#8217;t really matter where you define/initialize
+colours for use in document processing (see
+<a href="color.html#newcolor">NEWCOLOR</a>
+and
+<a href="color.html#xcolor">XCOLOR</a>
+in the section
+<a href="color.html#color-intro">Coloured text</a>),
+I recommend doing so before you begin document processing with
+<kbd><a href="#start">START</a></kbd>.
+</p>
+
+<p>
+The macro
+<a href="color.html#color">COLOR</a>
+and the
+<a href="definitions.html#inlines">inline escape</a>,
+<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colorname&gt;]</span></kbd></a>
+can be used at any time during document processing for occasional
+colour effects. However, consistent and reliable colourising of
+various document elements (the docheader, heads, linebreaks,
+footnotes, pagenumbers, and so on) must be managed through the use
+of the
+<a href="docelement.html#docelement-control">document element control macros</a>.
+</p>
+
+<p>
+Please note that colour is disabled if your
+<a href="#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd>. If you would like it enabled, for example
+so PDF links are colourised, invoke the groff
+<a href="definitions.html#primitives">primitive</a>
+'<kbd>.color</kbd>' after PRINTSTYLE.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you plan to have mom generate a
+<a href="docelement.html#toc">table of contents</a>,
+do not embed colour
+<a href="definitions.html#inlines">inline escapes</a>
+(<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colourname&gt;]</span></kbd></a>)
+in the
+<a href="definitions.html#stringargument">string arguments</a>
+given to any of the
+<a href="docprocessing.html#reference-macros">reference macros</a>,
+nor in the string arguments given to
+<a href="docelement.html#heading">HEADING</a>.
+Use, rather, the
+<a href="definitions.html#controlmacro">control macros</a>
+mom provides to automatically colourise these elements.
+</p>
+</div>
+
+<!-- -DOC LEAD ADJUST- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-lead-adjust" class="macro-id">Adjust linespacing to fill pages and align bottom margins</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_LEAD_ADJUST</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Must come after
+<a href="typesetting.html#ls"><span class="normal">LS</span></a>
+or
+<a href="typesetting.html.#autoloead"><span class="normal">AUTOLEAD</span></a>
+and before
+<a href="#start"><span class="normal">START</span></a>
+</p>
+
+<p>
+DOC_LEAD_ADJUST is a special macro to adjust document
+<a href="definitions.html#leading">leading</a>
+so that bottom margins fall precisely where you expect.
+</p>
+
+<p>
+When you invoke <kbd>.DOC_LEAD_ADJUST</kbd>, mom takes the number
+of lines that fit on the page at your requested leading, then
+incrementally adds
+<a href="definitions.html#units">machine units</a>
+to the leading until the maximum number of lines at the new leading
+that fit on the page coincides perfectly with the bottom margin of
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+In most instances, the difference between the requested lead and
+the adjusted lead is unnoticeable, and since in almost all cases
+adjusted leading is what you want, it&#8217;s mom&#8217;s default
+and you don&#8217;t have to invoke it explicitly.
+</p>
+
+<p>
+However, should you not want adjusted document leading, you must
+turn it off manually, like this:
+<br/>
+<span class="pre">
+ .DOC_LEAD_ADJUST OFF
+</span>
+</p>
+
+<p>
+If you set the document leading prior to START with
+<a href="typesetting.html#leading">LS</a>
+or
+<a href="typesetting.html#autolead">AUTOLEAD</a>,
+<kbd>.DOC_LEAD_ADJUST&nbsp;OFF</kbd> must come afterwards, like
+this:
+<br/>
+<span class="pre-in-pp">
+ .LS 12
+ .DOC_LEAD_ADJUST OFF
+</span>
+In this scenario, the maximum number of lines that fit on a page at
+a
+<a href="definitions.html#leading">leading</a>
+of 12
+<a href="definitions.html#picaspoints">points</a>
+determine where mom ends a page. The effect will be that last lines
+usually fall (slightly) short of the &#8220;official&#8221; bottom
+margin.
+</p>
+
+<p>
+In
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>&nbsp;<kbd>TYPEWRITE</kbd>,
+the leading is always adjusted and can&#8217;t be turned off.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+DOC_LEAD_ADJUST, if used, must be invoked after
+<a href="typesetting.html#leading">LS</a>
+or
+<a href="typesetting.html#autolead">AUTOLEAD</a>
+and before
+<a href="#start">START</a>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+Even if you disable DOC_LEAD_ADJUST, mom will still adjust the
+leading of endnotes pages and toc pages. See
+<a href="docelement.html#endnote-lead">ENDNOTE_LEAD</a>
+and
+<a href="docelement.html#toc-lead">TOC_LEAD</a>
+for an explanation of how to disable this default behaviour.
+</p>
+</div>
+
+<!-- -DOCHEADER- -->
+
+<div class="macro-id-overline">
+<h3 id="docheader" class="macro-id">Managing the docheader</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOCHEADER</b> <kbd class="macro-args">&lt;toggle&gt; [ distance to advance from top of page ] [ NO_SHIM ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Must come before
+<a href="#start"><span class="normal">START</span></a>; <kbd><span class="normal">distance</span></kbd> requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, mom prints a
+<a href="definitions.html#docheader">docheader</a>
+on the first page of any document (see
+<a href="#docheader-desc">below</a>
+for a description of the docheader). If you don&#8217;t want a docheader,
+turn it off with
+<br/>
+<span class="pre-in-pp">
+ .DOCHEADER OFF
+</span>
+DOCHEADER is a toggle macro, so the argument doesn&#8217;t
+have to be OFF; it can be anything you like.
+</p>
+
+<p>
+If you turn the docheader off, mom, by default, starts
+the running text of your document on the same top
+<a href="definitions.html#baseline">baseline</a>
+as all subsequent pages. If you&#8217;d like her to start at a different
+vertical position, give her the distance you&#8217;d like as a second
+argument.
+<br/>
+<span class="pre-in-pp">
+ .DOCHEADER OFF 1.5i
+</span>
+This starts the document 1.5 inches from the top of the page plus
+whatever spacing adjustment mom has to make in order to ensure that
+the first baseline of running text falls on a &#8220;valid&#8221;
+baseline (i.e., one that ensures that the bottom margin of the first
+page falls where it should). The distance is measured from the top
+edge of the paper to the
+<a href="definitions.html#baseline">baseline</a>
+of the first line of type.
+</p>
+
+<p>
+With <kbd>.DOCHEADER OFF</kbd>, it is possible to create your own
+custom docheaders (after
+<a href="#start">START</a>)
+using mom&#8217;s typesetting macros. It is recommended that if you
+do create a custom docheader, you make
+<a href="docprocessing.html#shim"><kbd>.SHIM</kbd></a>
+the last macro before the first item of your document (for
+example, <kbd>.PP</kbd> or <kbd>.HEADING&nbsp;1</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+You may have tried <kbd>DOCHEAHER&nbsp;OFF</kbd> with a distance argument
+and discovered that mom will not budge the starting position of the document
+from her chosen default location. This is byproduct of
+<a href="#shim">shimming</a>,
+which mom always applies before the first line of running text after
+the docheader, regardless of which
+<a href="#vertical-whitespace-management">vertical whitespace management</a>
+strategy is in effect. If you encounter the problem, pass
+<kbd>DOCHEADER&nbsp;OFF&nbsp;&lt;distance&gt;</kbd>
+the additional final argument, <kbd>NO_SHIM</kbd>.
+</p>
+</div>
+
+<!-- DOCHEADER CONTROL -->
+
+<h3 id="docheader-control" class="docs">Docheader control: How to change the look of docheaders</h3>
+
+<p>
+In
+<a href="#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
+the look of docheaders is carved in stone. In
+<a href="#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>,
+however, you can make a lot of changes. Macros that alter
+docheaders must come before
+<a href="#start">START</a>.
+</p>
+
+<h4 id="docheader-desc" class="docs">Docheader description</h4>
+
+<p>
+A typeset docheader has the following characteristics:
+</p>
+<div class="box-code" style="margin-left: 24px;">
+<span class="pre" style="color: #302419;">
+ TITLE bold, 3.5 points larger than running text (not necessarily caps)
+ Subtitle medium, same size as running text
+ by medium italic, same size as running text
+ Author(s) medium italic, same size as running text
+
+(Document type) bold italic, 3 points larger than running text
+</span>
+</div>
+
+<p>
+Or, if the
+<a href="#doctype">DOCTYPE</a>
+is <kbd>CHAPTER</kbd>,
+</p>
+<div class="box-code" style="margin-left: 24px;">
+<span class="pre" style="color: #302419;">
+ Chapter &lt;n&gt; bold, 4 points larger than running text
+Chapter Title bold italic, 4 points larger than running text
+</span>
+</div>
+
+<p>
+The
+<a href="definitions.html#family">family</a>
+is the prevailing family of the whole document. Title, subtitle,
+author, and document type are what you supply with the
+<a href="#reference-macros">reference macros</a>.
+Any you leave out will not appear; mom will compensate:
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If your DOCTYPE is <kbd>CHAPTER</kbd> and you have both &#8220;Chapter
+&lt;n&gt;&#8221; and a &#8220;Chapter Title&#8221; (as above), mom
+inserts a small amount of whitespace between them, equal to
+one-quarter of the
+<a href="definitions.html#leading">leading</a>
+in effect. If this doesn&#8217;t suit you, you can remove or alter
+the space with
+<a href="#space-before">CHAPTER_TITLE_SPACE_BEFORE</a>.
+</p>
+</div>
+
+<div class="macro-list-container">
+<h3 id="index-docheader-control" class="macro-list">Docheader control</h3>
+
+<p style="margin-top: -1.5em; margin-left: .5em; margin-right: .5em">
+With the docheader control macros, you can change the family,
+colour, leading, and quad direction of the entire docheader. You can
+also set the style parameters for each part individually. Style
+parameters include family, font, size, colour, lead, space before,
+caps, smallcaps, and underscoring.
+</p>
+
+<ul class="macro-list" style="margin-top: -.5em">
+ <li><a href="#change-whole-docheader">1. Changes to the whole docheader</a>
+ <ul style="list-style-type: disc">
+ <li><a href="#change-start">Change the starting position of the docheader</a></li>
+ <li><a href="#docheader-family">Change the family of the whole docheader</a></li>
+ <li><a href="#docheader-color">Change the colour of the whole docheader</a></li>
+ <li><a href="#docheader-lead">Change the leading of the whole docheader</a></li>
+ <li><a href="#docheader-quad">Change the quad direction of the docheader</a></li>
+ </ul>
+ </li>
+ <li><a href="#part-by-part">2. Part by part changes</a>
+ <ul style="list-style-type: disc">
+ <li><a href="#list-of-params">List of parameters and arguments</a></li>
+ <li><a href="#grouping">Grouping part/parameter changes</a> &ndash; very handy</li>
+ </ul>
+ </li>
+ <li><a href="#change-attribute">3. Changing or removing the attribution string (&#8220;by&#8221;)</a></li>
+</ul>
+</div>
+
+<h4 id="change-whole-docheader" class="docs" style="font-size: 100%">1. Changes to the whole docheader</h4>
+
+<h5 id="change-start" class="docs">Change the starting position of the docheader</h5>
+
+<p>
+By default, a docheader starts on the same
+<a href="definitions.html#baseline">baseline</a>
+as
+<a href="definitions.html#running">running text</a>.
+If you&#8217;d like it to start somewhere else, use the macro
+DOCHEADER_ADVANCE and give it the distance you want (measured from
+the top edge of the paper to the first baseline of the docheader),
+like this:
+<br/>
+<span class="pre-in-pp">
+ .DOCHEADER_ADVANCE 4P
+</span>
+A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is required.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If
+<a href="headfootpage.html#headers">HEADERS</a>
+are <kbd>OFF</kbd>, mom&#8217;s normal top margin for
+<a href="definitions.html#running">running text</a>
+(7.5
+<a href="definitions.html#picaspoints">picas</a>)
+changes to 6 picas (visually approx. 1 inch). Since the first
+baseline of the docheader falls on the same baseline as the first
+line of running text (on pages after page 1), you might find the
+docheaders a bit high when headers are off. Use DOCHEADER_ADVANCE
+to place them where you want.
+</p>
+</div>
+
+<h5 id="docheader-quad" class="docs">Change the quad direction of the docheader</h5>
+
+<p>
+By default, mom centres the docheader. If you&#8217;d prefer to
+have your docheaders set flush left or right, or need to restore
+the default centering, invoke <kbd>.DOCHEADER_QUAD</kbd> with the
+quad direction you want, either <kbd>LEFT</kbd> (or <kbd>L</kbd>),
+<kbd>RIGHT</kbd> (or <kbd>R</kbd>) or <kbd>CENTER</kbd> (or
+<kbd>C</kbd>).
+</p>
+
+<h5 id="docheader-family" class="docs">Change the family of the entire docheader</h5>
+
+<p>
+By default, mom sets the docheader in the same
+family used for
+<a href="definitions.html#running">running text</a>.
+If you&#8217;d prefer to have your docheaders set in a different
+family, invoke <kbd>.DOCHEADER_FAMILY</kbd> with the family you
+want. The argument to DOCHEADER_FAMILY is the same as for
+<a href="typesetting.html#family">FAMILY</a>.
+</p>
+
+<p>
+For example, mom&#8217;s default family for running text is Times
+Roman. If you&#8217;d like to keep that default, but have the
+docheaders set entirely in Helvetica,
+<br/>
+<span class="pre-in-pp">
+ .DOCHEADER_FAMILY H
+</span>
+is how you&#8217;d do it.
+</p>
+
+<p>
+Please note that if you use DOCHEADER_FAMILY, you can still alter
+the family of individual parts of the docheader.
+</p>
+
+<h5 id="docheader-color" class="docs">Change the colour of the entire docheader</h5>
+
+<p>
+The default colour for docheaders is black, as you&#8217;d expect.
+If you wish to change it, use
+<kbd>.DOCHEADER_COLOR&nbsp;&lt;colour&gt;</kbd>, where
+<kbd>&nbsp;&lt;colour&gt;</kbd> is a colour pre-initialized with
+<a href="color.html#xcolor">XCOLOR</a>
+or
+<a href="color.html#newcolor">NEWCOLOR</a>.
+</p>
+
+<h5 id="docheader-lead" class="docs">Change the leading of the entire docheader</h5>
+
+<p>
+By default, mom uses the leading in effect for
+<a href="definitions.html#running">running text</a>
+for docheaders. If you want to increase or
+decrease the overall docheader leading, use
+<kbd>.DOCHEADER_LEAD&nbsp;+|-&lt;amount&gt;</kbd>, where
+<kbd>&lt;amount&gt;</kbd> is the number of
+<a href="definitions.html#picaspoints">points</a>
+by which to make the adjustment.
+</p>
+
+<h4 id="part-by-part" class="docs" style="font-size: 100%">2. Part by part changes</h4>
+
+<p>
+Whenever you want to change the style parameters for any part of
+the docheader, simply join the name of the part to the parameter
+you wish to change using an underscore, then supply any necessary
+arguments. The subtitle double-underlined? No problem.
+<br/>
+<span class="pre-in-pp">
+ .SUBTITLE_UNDERSCORE DOUBLE
+</span>
+Author in red?
+<br/>
+<span class="pre-in-pp">
+ .AUTHOR_COLOR red
+</span>
+Title in smallcaps?
+<span class="pre-in-pp">
+ .TITLE_SMALLCAPS
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1em;">
+<p class="tip">
+<span class="note">Note:</span>
+Use <kbd>ATTRIBUTE</kbd> as the part name for the attribution string
+(&#8220;by&#8221;) that precedes the author, and <kbd>DOCTYPE</kbd>
+as the name for the string passed to <kbd>DOCTYPE NAMED&nbsp;"string"</kbd>.
+</p>
+</div>
+
+<h5 id="list-of-params" class="docs">List of parameters with arguments</h5>
+
+<dl>
+ <dt class="params">_FAMILY</dt>
+ <dd>
+ Takes the same argument as <a href="typesetting.html#family">FAMILY</a>.
+ </dd>
+ <dt class="params">_FONT</dt>
+ <dd>
+ Takes the same argument as <a href="typesetting.html#font">FT</a>.
+ </dd>
+ <dt class="params">_SIZE</dt>
+ <dd>
+ Takes a <kbd>+</kbd> or <kbd>-</kbd> value relative to the size of
+ <a href="definitions.html#running">running text</a>.
+ </dd>
+ <dt class="params">_COLOR</dt>
+ <dd>
+ Takes the same argument as <a href="color.html#color">COLOR</a>.
+ Colours should be pre-initialized with
+ <a href="color.html#xcolor">XCOLOR</a>
+ or
+ <a href="color.html#newcolor">NEWCOLOR</a>.
+ </dd>
+ <dt class="params">_LEAD</dt>
+ <dd>
+ Takes an absolute leading value, i.e. not relative to the
+ overall leading of the docheader. The leading applies to
+ multiple lines of type within the same docheader part, e.g.
+ several authors or a long title that must be split over two
+ lines. No
+ <a href="definitions.html#unitofmeasure">unit of measure</a>
+ is required;
+ <a href="definitions.html#picaspoints">points</a>
+ is assumed.
+ </dd>
+ <dt id="space-before" class="params">_SPACE</dt>
+ <dd>
+ Takes a numeric value with a
+ <a href="definitions.html#unitofmeasure">unit of measure</a>
+ appended to it. The value may be negative. This allows you
+ to adjust the whitespace before a docheader part, for example
+ if you want more whitespace between the title and the author.
+ <span style="display: block; margin-top: .5em">
+ Note that <kbd>TITLE</kbd> does not have a <kbd>_SPACE</kbd>
+ parameter; use
+ <a href="#change-start">DOCHEADER_ADVANCE</a>
+ to move the title further down on the page.
+ </span>
+ </dd>
+ <dt class="params">_CAPS</dt>
+ <dd>
+ Capitalizes the entire docheader part. No argument is
+ required.
+ </dd>
+ <dt class="params">_NO_CAPS</dt>
+ <dd>
+ Only used if you need to reverse the sense of <kbd>_CAPS</kbd>, as
+ can sometimes happen when
+ <a href="rectoverso.html#collate">collating</a>
+ documents that have differing docheader style requirements.
+ </dd>
+ <dt class="params">_SMALLCAPS</dt>
+ <dd>
+ Set the entire docheader part in smallcaps. No argument is
+ required.
+ </dd>
+ <dt class="params">_NO_SMALLCAPS</dt>
+ <dd>
+ Only used if you need to reverse the sense of
+ <kbd>_SMALLCAPS</kbd>, as can sometimes happen when
+ <a href="rectoverso.html#collate">collating</a>
+ documents that have differing docheader style requirements.
+ </dd>
+ <dt class="params">_UNDERSCORE</dt>
+ <dd>
+ With no argument, underscores the docheader part. With a
+ single, possibly decimal numeric argument, sets the weight of
+ the underscore. A second numeric argument to which a
+ <a href="definitions.html#unitofmeasure">unit of measure</a>
+ is appended (most likely <kbd>p</kbd>) sets the distance
+ between the baseline and the underscore.
+ <span style="display: block; margin-top: .5em">
+ If the argument <kbd>DOUBLE</kbd> is given, double underscores
+ the docheader part. With a single, possibly decimal numeric
+ argument afterwards, sets the weight of the underscore rules.
+ A third numeric argument to which a
+ <a href="definitions.html#unitofmeasure">unit of measure</a>
+ is appended (most likely <kbd>p</kbd>) sets the distance
+ between the baseline and the first underscore rule. A fourth
+ numeric argument to which a unit of measure is appended sets
+ the distance between the two underscore rules.
+ </span>
+ <span style="display: block; margin-top: .5em">
+ You may give <kbd>_UNDERLINE</kbd> as the parameter instead of
+ <kbd>_UNDERSCORE</kbd> if you prefer.
+ </span>
+ </dd>
+ <dt class="params">NO_UNDERSCORE</dt>
+ <dd>
+ Only used if you need to reverse the sense of
+ <kbd>_UNDERSCORE</kbd>, as can sometimes happen when
+ <a href="rectoverso.html#collate">collating</a>
+ documents that have differing docheader style requirements.
+ </dd>
+</dl>
+
+<h5 id="grouping" class="docs">Grouping part/parameter changes</h5>
+
+<p>
+If you want to change several parameters for a particular docheader
+part, you may group the changes together in a single macro by
+joining the name of the part to <kbd>STYLE</kbd> with an underscore,
+for example <kbd>TITLE_STYLE</kbd> or <kbd>AUTHOR_STYLE</kbd>.
+The following demonstrates:
+<span class="pre-in-pp">
+ .CHAPTER_TITLE_STYLE \
+ FAMILY T \
+ SIZE +4 \
+ UNDERSCORE 2 \
+ SMALLCAPS
+</span>
+Notice the use of the backslash character, which is required after
+the macro name and all parameters except the last. Grouping reduces
+clutter and the finger fatigue caused by entering
+<span class="pre-in-pp">
+ .CHAPTER_TITLE_FAMILY T
+ .CHAPTER_TITLE_SIZE +4
+ .CHAPTER_TITLE_UNDERSCORE 2
+ .CHAPTER_TITLE_SMALLCAPS
+</span>
+</p>
+
+<h4 id="change-attribute" class="docs" style="font-size: 100%">3. Changing or removing the attribution string (&#8220;by&#8221;)</h4>
+
+<p>
+If you&#8217;re not writing in English, you can change what mom
+prints where &#8220;by&#8221; appears in docheaders. For example,
+<br/>
+<span class="pre-in-pp">
+ .ATTRIBUTE_STRING "par"
+</span>
+changes &#8220;by&#8221; to &#8220;par&#8221;. ATTRIBUTE_STRING
+can also be used, for example, to make the attribution read
+&#8220;Edited by&#8221;.
+</p>
+
+<p>
+If you don&#8217;t want an attribution string at all, simply pass
+ATTRIBUTE_STRING an empty argument, like this:
+<br/>
+<span class="pre-in-pp">
+ .ATTRIBUTE_STRING ""
+</span>
+Mom will deposit a blank line where the attribution string normally
+appears.
+</p>
+
+<p>
+If the optional argument <kbd>COVER</kbd> or <kbd>DOC_COVER</kbd>
+is given to ATTRIBUTE_STRING, the string argument represents the
+attribution string that will appear on cover or document cover pages
+(see the
+<a href="cover.html#cover-intro">Introduction to cover pages</a>
+for a description of the difference between &#8220;document
+covers&#8221; and &#8220;covers&#8221;). Thus, it is possible to
+have different attribution strings on the document cover page, the
+cover (&#8220;title&#8221;) page, and in the first-page docheader.
+An extreme example would be:
+<br/>
+<span class="pre-in-pp">
+ .ATTRIBUTE_STRING ""
+ .ATTRIBUTE_STRING DOC_COVER "Edited by"
+ .ATTRIBUTE_STRING COVER "by"
+</span>
+The first invocation of <kbd>.ATTRIBUTE_STRING</kbd> establishes a
+blank attribution string that will be incorporated in the first-page
+docheader. The second will print &#8220;Edited by&#8221; on the
+document cover; the third will print &#8220;by&#8221; on the cover
+(&#8220;title&#8221;) page.
+</p>
+
+<p>
+If you don&#8217;t require differing attribute strings for
+doc cover pages, cover pages, or the first-page docheader,
+<kbd>.ATTRIBUTE_STRING</kbd>, without either of the optional first
+arguments, is sufficient.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- -COLUMNS- -->
+
+<h2 id="columns-intro" class="docs">Setting documents in columns</h2>
+
+<p>
+Setting documents in columns is easy with mom. All you have to do
+is say how many columns you want and how much space you want
+between them (the
+<a href="definitions.html#gutter">gutters</a>).
+That&#8217;s it. Mom takes care of everything else, from soup to
+nuts.
+</p>
+
+<h3 class="docs">Some words of advice</h3>
+
+<p>
+If you want your type to achieve a pleasing
+<a href="definitions.html#just">justification</a>
+or
+<a href="definitions.html#rag">rag</a>
+in columns, reduce the point size of type (and probably the
+<a href="definitions.html#leading">leading</a>
+as well). Mom&#8217;s default document point size is 12.5, which
+works well across her default 39
+<a href="definitions.html#picaspoints">pica</a>
+full page line length, but with even just two columns on a page, the
+default point size is awkward to work with.
+</p>
+
+<p>
+Furthermore, you&#8217;ll absolutely need to reduce the indents for
+<a href="docelement.html#epigraph-control">epigraphs</a>,
+<a href="docelement.html#quote-general">quotes</a>,
+and
+<a href="docelement.html#blockquote-general">blockquotes</a>
+(and probably the
+<a href="docelement.html#para-indent">paragraph first-line indent</a>
+as well).
+</p>
+
+<!-- -COLUMN- -->
+
+<div class="macro-id-overline">
+<h3 id="columns" class="macro-id">COLUMNS</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>COLUMNS</b> <kbd class="macro-args">&lt;number of columns&gt; &lt;width of gutters&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Should be the last macro before START
+<br/>
+
+<i>The second argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a></i>
+</p>
+
+<p>
+COLUMNS takes two arguments: the number of columns you want on
+document pages, and the width of the
+<a href="definitions.html#gutter">gutter</a>
+between them. For example, to set up a page with two columns
+separated by an 18 point gutter, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .COLUMNS 2 18p
+</span>
+Nothing to it, really. However, as noted above, COLUMNS should
+always be the last document setup macro prior to
+<a href="#start">START</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom ignores columns completely when the
+<a href="#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd>. The notion of typewriter-style
+output in columns is just too ghastly for her to bear.
+</p>
+</div>
+
+<h3 class="docs" id="marking-col-start">Marking the first page column start position</h3>
+
+<p>
+If you insert or remove space after the docheader, i.e. immediately after
+<a href="#start">START</a>
+in your input file, mom needs to know where your first column begins
+in order to align subsequent columns on the first page.
+</p>
+
+<div id="col-mark" class="box-macro-args">
+Macro: <b>COL_MARK</b>
+</div>
+
+<p>
+<kbd>COL_MARK</kbd> tells mom where the first column after the
+docheader begins, in order for the top of subsequent columns on the
+first page to be aligned. Note that if you do not manually add
+or remove space after the docheader, there is no need to invoke
+<kbd>COL_MARK</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you do add or subtract space after the docheader, e.g. with
+<a href="typesetting.html#ald">ALD</a>
+or
+<a href="typesetting.html#SP">SP</a>,
+and your
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is something other than a multiple of &#8220;<kbd>v</kbd>&#8221;, be
+sure to follow the spacing command with
+<a href="docprocessing.html#shim">SHIM</a>
+before entering <kbd>.COL_MARK</kbd> unless shimming has been
+disabled with
+<a href="#no-shim">NO_SHIM</a>.
+If your document is being flex-spaced, do not use
+<a href="docprocessing.html#flex">FLEX</a>.
+Rather, disable flex-spacing temporarily with
+<br/>
+<span class="pre-in-pp">
+ .NO_FLEX
+ .NO_SHIM off
+ .SHIM
+ .COL_MARK
+</span>
+and re-enable it afterwards with
+<span class="pre-in-pp">
+ .NO_SHIM
+ .NO_FLEX off
+</span>
+</p>
+</div>
+
+<h3 class="docs">Using tabs when COLUMNS are enabled</h3>
+
+<p>
+Mom&#8217;s tabs (both
+<a href="typesetting.html#typesetting-tabs">typesetting tabs</a>
+and
+<a href="typesetting.html#string-tabs">string tabs</a>)
+behave as you&#8217;d expect during document processing, even
+when COLUMNS are enabled. Tab structures set up during document
+processing carry over from page to page and column to column.
+</p>
+
+<!-- -BREAKING COLUMNS- -->
+
+<h3 id="breaking-columns" class="docs">Breaking columns manually</h3>
+
+<p>
+Mom takes care of breaking columns when they reach the bottom
+margin of a page. However, there may be times you want to break
+the columns yourself. There are two macros for breaking columns
+manually: COL_NEXT and COL_BREAK.
+</p>
+
+<div id="col-next" class="box-macro-args">
+Macro: <b>COL_NEXT</b>
+</div>
+
+<p>
+<kbd>.COL_NEXT</kbd> breaks the line just before it,
+<a href="definitions.html#quad">quads</a>
+it left (assuming the type is justified or quad left), and moves over
+to the top of the next column. If the column happens to be the last
+(rightmost) one on the page, mom starts a new page
+at the &#8220;column 1&#8221; position. This is the macro to use when
+you want to start a new column after the end of a paragraph.
+</p>
+
+<div id="col-break" class="box-macro-args">
+Macro: <b>COL_BREAK</b>
+</div>
+
+<p>
+<kbd>.COL_BREAK</kbd> is almost the same as <kbd>.COL_NEXT</kbd>,
+except that instead of breaking and quadding the line preceding it,
+mom breaks and spreads it (see
+<a href="typesetting.html#spread">SPREAD</a>).
+Use this macro whenever you need to start a new column in the middle
+of a paragraph.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Warning:</span>
+If you need COL_BREAK in the middle of a blockquote or (god help
+you) an epigraph, you must do the following in order for COL_BREAK
+to work:
+<br/>
+<span class="pre-in-pp">
+ .SPREAD
+ \!.COL_BREAK
+</span>
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<!-- *** -->
+
+
+<h2 id="style-after-start" class="macro-group">Changing basic type and formatting parameters after START</h2>
+
+<ul id="changing-basic-type">
+ <li><a href="#behaviour">Behaviour of the typesetting macros during document processing</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#behaviour-specific">Effect of specific typesetting macros</a></li>
+ </ul></li>
+ <li><a href="#tb-margins">Top and bottom margins in document processing</a></li>
+ <li><a href="#space">Inserting space at the top of a new page</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#add-space">ADD_SPACE</a></li>
+ </ul></li>
+</ul>
+
+<div class="rule-medium"><hr/></div>
+
+<h3 id="behaviour" class="docs">Behaviour of the typesetting macros during document processing</h3>
+
+<p>
+During document processing, most of the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+affect type in the document globally. For example, if you turn
+kerning off, pairwise kerning is disabled not only in paragraphs,
+but also in headers, footers, quotes, and so on.
+</p>
+
+<p>
+Typesetting macros that alter margins and line lengths affect
+<a href="definitions.html#running">running text</a>
+globally (or at least try to), but leave headers/footers and
+footnotes alone. (To indent footnotes, see the full explanation of
+the
+<a href="docelement.html#footnote">FOOTNOTE</a>
+macro.)
+</p>
+
+<p>
+Mom&#8217;s tabs (both
+<a href="typesetting.html#typesetting-tabs">typesetting tabs</a>
+and
+<a href="typesetting.html#string-tabs">string tabs</a>)
+behave as expected in running text during document processing. Tab
+structures that do not exceed the line length of running text are
+preserved sensibly from page to page, and, if
+<a href="docprocessing.html#columns">COLUMNS</a>
+are enabled, from column to column.
+</p>
+
+<p>
+Some typesetting macros, however, when used during document
+processing, behave in special ways. These are the macros that deal
+with the basic parameters of type style: horizontal and vertical
+margins, line length,
+<a href="definitions.html#family">family</a>,
+<a href="definitions.html#font">font</a>,
+<a href="definitions.html#ps">point size</a>,
+<a href="definitions.html#leading">leading</a>,
+and
+<a href="definitions.html#quad">quad</a>.
+</p>
+
+<p>
+Mom assumes that any changes to these parameters stem from a
+temporary need to set type in a style different from that provided
+by mom&#8217;s
+<a href="docelement.html#index-docelement">document element tags</a>.
+In other words, you need to do a bit of creative typesetting in the
+middle of a document.
+</p>
+
+<p>
+The following lists those typesetting macros whose behaviour during
+document processing requires some explanation.
+(Please refer to
+<a href="#tb-margins">Top and bottom margins in document processing</a>
+for information on how mom interprets
+<a href="typesetting.html#t-margin">T_MARGIN</a>
+and
+<a href="typesetting.html#b-margin">B_MARGIN</a>
+in document processing. Additionally, see
+<a href="#add-space">ADD_SPACE</a>
+if you encounter the problem of trying to get mom to put space at
+the tops of pages after the first.)
+</p>
+
+<div id="behaviour-specific" class="box-code" style="margin-left: 3.5%">
+<span class="pre" style="color: #302419;">
+ MACRO EFFECT DURING DOCUMENT PROCESSING
+ ----- ---------------------------------
+
+ L_MARGIN &bull;The left margin of all running text
+ assumes the new value.
+
+ &bull;The line length remains unaltered.
+
+ &bull;The header and footer left margin
+ remain at the current document default.
+
+ (You won&#8217;t use this often by itself. Most
+ likely, you&#8217;ll use it in combination with
+ R_MARGIN or LL.)
+
+ R_MARGIN &bull;The right margin of all running text
+ assumes the new value. In other words,
+ the line length is altered.
+
+ &bull;The header and footer right margin
+ remain at the current document default.
+
+ LL &bull;The line length of all running text
+ is set to the new value.
+
+ &bull;The header and footer line length remain
+ at the current document default.
+
+ FAMILY &bull;Changes family for the duration of the
+ current tag only. As soon as another document
+ element tag is invoked, the family reverts to
+ the current default for the new tag.
+
+ FT &bull;Changes font for the duration of the
+ current tag only. As soon as another document
+ element tag is entered, the font reverts
+ to the current default for the new tag.
+
+ N.B. &mdash; \*[SLANT] and \*[BOLDER] affect
+ paragraph text, and remain in effect for all
+ paragraphs until turned off. If you want to
+ use them in a macro that takes a string
+ argument, include the escape in the string.
+ \*[COND] and \*[EXT] behave similarly.
+
+ PT_SIZE &bull;Changes point size for the duration of the
+ current tag only. As soon as another document
+ element tag is entered, the point size reverts
+ to the current document default for the new
+ tag.
+
+ LS &bull;Changes line space for the duration of the
+ current tag only. As soon as another document
+ element tag is entered, the line space reverts
+ to the current document default for the new
+ tag.
+
+ Using LS to temporarily change leading within
+ a document will almost certainly result in a
+ bottom margin that doesn&#8217;t align with the
+ bottom margin of subsequent pages. You&#8217;ll
+ need to use the SHIM or FLEX macro to get mom back
+ on track when you&#8217;re ready to return to the
+ document&#8217;s default leading.
+
+ <a id="autolead" style="margin-top: -1em">AUTOLEAD</a> &bull;Invoked before START, sets the overall document
+ leading as a function of the overall document
+ point size (i.e. the point size used in paragraphs);
+ subsequently disabled after START, except for calls
+ to DOC_PT_SIZE
+
+ &bull;DOC_LEAD before DOC_PT_SIZE cancels the AUTOLEAD
+ set before START
+
+ &bull;Invoked after START, remains in effect for all
+ subsequent point size changes made with PT_SIZE,
+ but does not affect the leading of the document
+ element tags (e.g. HEADING, PP, QUOTE...), or calls
+ to DOC_PT_SIZE
+
+ QUAD &bull;Changes quad for the duration of the
+ current tag only. As soon as another document
+ element tag is entered, the quad reverts to
+ the current document default for the new
+ tag.
+
+ N.B. &mdash; Line-for-line quadding macros
+ (LEFT, CENTER, RIGHT) are also temporary,
+ overridden by the QUAD value of any subsequent
+ document element tag.
+</span>
+</div>
+
+<h3 id="tb-margins" class="docs" style="margin-top: 1.5em;">Top and bottom margins in document processing</h3>
+
+<p>
+Normally, mom establishes the top and bottom
+margins of
+<a href="definitions.html#running">running text</a>
+in documents from the values of <b>HEADER_MARGIN +
+HEADER_GAP</b> and <b>FOOTER_MARGIN + FOOTER_GAP</b>
+respectively. However, if you invoke
+<a href="typesetting.html#t-margin">T_MARGIN</a>
+or
+<a href="typesetting.html#b-margin">B_MARGIN</a>
+either before or after
+<a href="docelement.html#start">START</a>,
+they set the top and bottom margins of running text irrespective of
+HEADER_GAP and FOOTER_GAP.
+</p>
+
+<p>
+Put another way, in document processing, T_MARGIN
+and B_MARGIN set the top and bottom margins of
+running text, but have no effect on the placement of
+<a href="definitions.html#header">headers</a>,
+<a href="definitions.html#footer">footers</a>,
+or page numbers.
+</p>
+
+<!-- ==================================================================== -->
+
+<h3 id="space" class="docs">Inserting space at the top of a new page</h3>
+
+<p>
+Occasionally, you may want to insert space before the start of
+<a href="definitions.html#running">running text</a>
+on pages after the first.
+</p>
+
+<p>
+You might have tried using
+<a href="typesetting.html#ald">ALD</a>
+or
+<a href="typesetting.html#space">SPACE</a>
+and found it did nothing. This is because mom normally inhibits
+any extra space before the start of running text on pages after the
+first.
+</p>
+
+<p>
+If you need the space, you must use the macro ADD_SPACE in
+conjunction with
+<a href="typesetting.html#newpage">NEWPAGE</a>.
+</p>
+
+<!-- -ADD_SPACE- -->
+
+<div class="macro-id-overline">
+<h3 id="add-space" class= "macro-id">ADD_SPACE/RESTORE_SPACE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ADD_SPACE</b> <kbd class="macro-args">&lt;amount of space&gt;</kbd>
+<br/>
+Macro: <b>RESTORE_SPACE</b>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+If your
+<a href="#doctype">DOCTYPE</a>
+is DEFAULT, CHAPTER, NAMED, or LETTER, ADD_SPACE takes as its
+single argument the distance you want mom to advance from the normal
+baseline position at the top of any page <i>after the first</i> (i.e.
+the one on which the docheader is normally printed). A
+<a href="definitions.html#unitofmeasure">unit of measure</a> is
+required.
+</p>
+
+<p>
+For example, say you wanted to insert 2 inches of space before the
+start of
+<a href="definitions.html#running">running text</a>
+on a page other than the first. You&#8217;d accomplish it with
+<br/>
+<span class="pre-in-pp">
+ .NEWPAGE
+ .ADD_SPACE 2i
+</span>
+which would terminate your current page, break to a new page, print
+the header (assuming headers are on) and insert 2 inches of space
+before the start of running text.
+</p>
+
+<p>
+Since adding space in this way is almost sure to disrupt mom&#8217;s
+ability to guarantee perfectly flush bottom margins, I highly
+recommend using the
+<a href="docprocessing.html#shim">SHIM</a>
+or
+<a href="docprocessing.html#flex">FLEX</a>
+macro immediately after ADD_SPACE, which will add the space plus
+whatever correction is required by the
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+strategy in effect.
+</p>
+
+<p>
+If your
+<a href="#doctype">DOCTYPE</a>
+is SLIDES, ADD_SPACE may be used on any slide <i>including the
+first</i> to introduce additional white space at the top.
+</p>
+
+<h4 class="docs doc-param-macros" style="margin-top: .5em">RESTORE_SPACE</h4>
+
+<p style="margin-top: .5em">
+You may sometimes find that mom refuses to respect
+<a href="typesetting.html#space">SP</a>,
+<a href="typesetting.html#index-aldrld">ALD/RLD</a>,
+<a href="docprocessing.html#shim">SHIM</a>,
+or
+<a href="docprocessing.html#flex">FLEX</a>
+after the first element (line of text, floated material) output
+at the top of a page. Should this happen, insert the macro
+RESTORE_SPACE before issuing the spacing command.
+</p>
+
+<!-- *** -->
+
+<h2 id="intro-doc-param" class="macro-group">Changing document-wide typesetting parameters after START</h2>
+
+<p>
+In the normal course of things, you establish the basic type style
+parameters of a document prior to invoking
+<a href="#start">START</a>,
+using the
+<a href="typesetting.html#macros-typesetting">typesetting macros</a>
+(<b>L_MARGIN, FAMILY, PT_SIZE, LS,</b> etc). After START, you must
+use the following macros if you wish to make global changes to the
+basic type style parameters, for example changing the overall leading or
+the justification style.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+Because these macros globally update the chosen parameter, they
+should only be used immediately prior to
+<a href="rectoverso.html#collate">COLLATE</a>
+or, if an occasional effect is desired,
+<a href="typesetting.html#newpage">NEWPAGE</a>.
+<a href="#doc-pt-size">DOC_PT_SIZE</a>,
+for example, updates the point size of every page element, including
+headers, footers, page numbers, and so on, which is almost certainly
+not what you want in the middle of a page.
+</p>
+</div>
+
+<div class="macro-list-container">
+<h3 id="index-doc-param" class="macro-list">Post-START global style change macros</h3>
+<ul class="macro-list">
+ <li><a href="#doc-left-margin">DOC_LEFT_MARGIN</a></li>
+ <li><a href="#doc-right-margin">DOC_RIGHT_MARGIN</a></li>
+ <li><a href="#doc-line-length">DOC_LINE_LENGTH</a></li>
+ <li><a href="#doc-family">DOC_FAMILY</a></li>
+ <li><a href="#doc-pt-size">DOC_PT_SIZE</a></li>
+ <li><a href="#doc-lead">DOC_LEAD</a></li>
+ <li><a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a></li>
+ <li><a href="#doc-quad">DOC_QUAD</a></li>
+</ul>
+</div>
+
+<!-- -DOC_LEFT_MARGIN -->
+
+<div class="macro-id-overline">
+<h3 id="doc-left-margin" class="macro-id">DOC_LEFT_MARGIN</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_LEFT_MARGIN</b> <kbd class="macro-args">&lt;left margin&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<h4 class="docs doc-param-macros">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#l-margin">L_MARGIN</a>
+ </li>
+ <li>changes all left margins, including headers, footers, and page
+ numbers to the new value
+ </li>
+ <li>any document elements that use a left indent calculate
+ the indent from the new value
+ </li>
+ <li>the line length remains the same (i.e., the right margin
+ shifts when you change the left margin)
+ </li>
+</ul>
+
+<!-- -DOC_RIGHT_MARGIN -->
+
+<div class="macro-id-overline">
+<h3 id="doc-right-margin" class="macro-id">DOC_RIGHT_MARGIN</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_RIGHT_MARGIN</b> <kbd class="macro-args">&lt;right margin&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<h4 class="docs doc-param-macros">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#r-margin">R_MARGIN</a>
+ </li>
+ <li>changes all right margins, including headers, footers, and
+ page numbers to the new value;
+ </li>
+ <li>any document elements that use a right indent calculate
+ the indent from the new value
+ </li>
+</ul>
+
+<!-- -DOC_RIGHT_MARGIN -->
+
+<div class="macro-id-overline">
+<h3 id="doc-line-length" class="macro-id">DOC_LINE_LENGTH</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_LINE_LENGTH</b> <kbd class="macro-args">&lt;length&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<h4 class="docs doc-param-macros">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#linelength">LL</a>
+ </li>
+ <li>exactly equivalent to changing the right margin with
+ DOC_RIGHT_MARGIN (see
+ <a href="#doc-right-margin">above</a>);
+ </li>
+</ul>
+
+<!-- -DOC_FAMILY- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-family" class="macro-id">DOC_FAMILY</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_FAMILY</b> <kbd class="macro-args">&lt;family&gt;</kbd>
+</div>
+
+<h4 class="docs doc-param-macros" style="margin-top: 1em;">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#family">FAMILY</a>
+ </li>
+ <li>globally changes the type family for
+ <ul>
+ <li style="margin-left: -.5em;">the <a href="definitions.html#docheader">docheader</a></li>
+ <li style="margin-left: -.5em;">all <a href="docelement.html#index-docelement">document element tags</a>, including footnotes</li>
+ <li style="margin-left: -.5em;"><a href="definitions.html#header">headers and/or footers</a></li>
+ <li style="margin-left: -.5em;"><a href="docelement.html#number-lines-intro">line numbering</a></li>
+ <li style="margin-left: -.5em;"><a href="headfootpage.html#pagination">page numbering</a></li>
+ </ul></li>
+ <li>does <i>not</i> change the family of
+ <ul>
+ <li><a href="cover.html#doc-cover">document cover pages</a></li>
+ <li><a href="cover.html#cover">cover pages</a></li>
+ <li><a href="docelement.html#endnote-intro">endnotes pages</a></li>
+ <li><a href="docelement.html#toc-intro">table of contents</a></li>
+ </ul></li>
+ <li>any page elements (e.g. headers page numbers, footnotes) whose
+ families you wish to remain at their old values must be
+ reset with the appropriate
+ <a href="docelement.html#docelement-control">control macros</a>
+ </li>
+</ul>
+
+<!-- -DOC_PT_SIZE- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-pt-size" class="macro-id">DOC_PT_SIZE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_PT_SIZE</b> <kbd class="macro-args">&lt;point size&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<h4 class="docs doc-param-macros">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#ps">PT_SIZE</a>,
+ and refers to the point size of type in paragraphs
+ </li>
+ <li>all automatic point size changes (heads, quotes,
+ footnotes, headers, etc.) are affected by the new size;
+ anything you do not want affected must be reset to
+ its former value (see the Control Macros section of
+ the pertinent document element for instructions on
+ how to do this)
+ </li>
+ <li>if
+ <a href="typesetting.html#autolead">AUTOLEAD</a>
+ was invoked before START; the value of AUTOLEAD will be used
+ to update the leading of all document element tags except
+ FOOTNOTE and EPIGRAPH
+ </li>
+</ul>
+
+<!-- -DOC_LEAD- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-lead" class="macro-id">DOC_LEAD</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_LEAD</b> <kbd class="macro-args">&lt;points&gt; [ ADJUST ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<h4 class="docs doc-param-macros">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the argument is the same as for
+ <a href="typesetting.html#leading">LS</a>,
+ and refers to the
+ <a href="definitions.html#lead">leading</a>
+ of paragraphs
+ </li>
+ <li>because paragraphs will have a new leading, the leading and
+ spacing of most running text is influenced by the new value
+ </li>
+ <li>epigraphs and footnotes remain unaffected;
+ if you wish to change their leading, use
+ <a href="docelement.html#epigraph-autolead">EPIGRAPH_AUTOLEAD</a>
+ and
+ <a href="docelement.html#footnote-autolead">FOOTNOTE_AUTOLEAD</a>.
+ </li>
+ <li>the optional argument <kbd>ADJUST</kbd> performs
+ leading adjustment as explained in
+ <a href="#doc-lead-adjust">DOC_LEAD_ADJUST</a>
+ </li>
+ <li>if
+ <a href="typesetting.html#autolead">AUTOLEAD</a>
+ was invoked before START; the value of that AUTOLEAD will be
+ cancelled
+ </li>
+</ul>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Even if you don&#8217;t pass DOC_LEAD the optional argument
+<kbd>ADJUST</kbd>, mom will still adjust the leading of endnotes
+pages and toc pages. See
+<a href="docelement.html#endnote-lead">ENDNOTE_LEAD</a>
+and
+<a href="docelement.html#toc-lead">TOC_LEAD</a>
+for an explanation of how to disable this default behaviour.
+</p>
+</div>
+
+<!-- -DOC_QUAD- -->
+
+<div class="macro-id-overline">
+<h3 id="doc-quad" class="macro-id">DOC_QUAD</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DOC_QUAD</b> <kbd class="macro-args">L | R | C | J</kbd>
+</div>
+
+<h4 class="docs doc-param-macros" style="margin-top: 1em;">Arguments and behaviour</h4>
+
+<ul class="doc-param-macros">
+ <li>the arguments are the same as for
+ <a href="typesetting.html#quad">QUAD</a>
+ </li>
+ <li>affects paragraphs, epigraphs and footnotes; does not
+ affect blockquotes
+ </li>
+</ul>
+
+<h2 id="terminating" class="macro-group">Terminating a document</h2>
+
+<p>
+You need do nothing special to terminate a document. When groff
+finishes processing the last
+<a href="definitions.html#inputline">input line</a>
+of a file, the page is ejected, subject to whatever routines are
+needed to complete it (e.g. printing footnotes or adding the page
+number).
+</p>
+
+<p>
+It happens sometimes, however, that a last line of
+<a href="definitions.html#running">running text</a>,
+falling on or very near the bottom of the page, tricks groff into
+breaking to a new page before terminating. The result is a blank
+page at the end of the formatted document.
+</p>
+
+<p>
+The situation is rare, generally occurring only when some additional
+macro is required after the input text, e.g. to exit a
+<a href="docelement.html#list-intro">list</a>
+or terminate a
+<a href="docelement.html#quote">quote</a>.
+To prevent it from ever happening, I recommend getting into the habit
+of following the final input line of all your mom files with
+<a href="typesetting.html#el"><kbd>.EL</kbd></a>.
+Depending on the
+<a href="definitions.html#filled">fill mode</a>
+in effect, you may also have to append the &#8220;join line&#8221;
+<a href="definitions.html#inlines">escape</a>,
+<kbd>\c</kbd>, to the final line.</p>
+
+<p>
+Thus, for normal text at the end of a paragraph, which is in fill
+mode,
+<br/>
+<span class="pre-in-pp">
+ and they all lived happily ever after.
+ .EL
+</span>
+or for ending a
+<a href="docelement.html#list-intro">LIST</a>
+(also in fill mode)
+<span class="pre-in-pp">
+ .ITEM
+ peaches, pears, plums
+ .EL
+ .LIST OFF
+</span>
+whereas, at the end of a
+<a href="docelement.html#quote-intro">QUOTE</a>
+(which is in nofill mode),
+<span class="pre-in-pp">
+ Shall be lifted\[em]nevermore!\c
+ .EL
+ .QUOTE OFF
+</span>
+Notice that the <kbd>.EL</kbd> comes after the last line of input
+text, not any macros following.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<a href="inlines.html#b"><kbd><span class="nobr">\*[B]</span></kbd></a>
+cannot be used as a replacement for <kbd>.EL</kbd> when terminating
+a document.
+</p>
+</div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 24%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 43%; text-align: right;"><a href="docelement.html#top">Next: The document element tags</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/goodies.html b/contrib/mom/momdoc/goodies.html
new file mode 100644
index 0000000..7c39e14
--- /dev/null
+++ b/contrib/mom/momdoc/goodies.html
@@ -0,0 +1,1785 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Goodies</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="inlines.html#top">Next: Inline escapes</a></td>
+</tr>
+</table>
+
+<h1 id="goodies" class="docs">Goodies</h1>
+
+<p>
+The macros in this section are a collection of useful (and sometimes
+nearly indispensable) routines to simplify typesetting.
+</p>
+
+<div id="goodies-macros-mini-toc" style="margin-top: -1em; font-size: 95%;">
+<div class="mini-toc-col-1">
+<ul class="no-enumerator">
+<li class="list-head-goodies"><a href="#alias">ALIAS</a> <span class="normal-smaller">&ndash; rename macros</span></li>
+<li class="list-head-goodies"><a href="#caps">CAPS</a> <span class="normal-smaller">&ndash; convert to upper case</span></li>
+<li class="list-head-goodies"><a href="#center-block">CENTER_BLOCK</a> <span class="normal-smaller">&ndash; centre blocks of type with quad intact</span></li>
+<li class="list-head-goodies"><a href="#esc-char">ESC_CHAR</a> <span class="normal-smaller">&ndash; change the escape character to something other than a backslash</span></li>
+<li class="list-head-goodies"><a href="#hang">HANG</a> <span class="normal-smaller">&ndash; hang character(s) outside right margin (inline escape)</span></li>
+<li class="list-head-goodies"><a href="#left-hang">LEFT_HANG</a> <span class="normal-smaller">&ndash; hang character(s) outside left margin</span></li>
+<li class="list-head-goodies"><a href="#silent">SILENT</a> <span class="normal-smaller">&ndash; hide input lines from output</span></li>
+<li class="list-head-goodies"><a href="#sizespecs">SIZESPECS</a> <span class="normal-smaller">&ndash; get cap-height, x-height and descender depth of a font</span></li>
+<li class="list-head-goodies"><a href="#smartquotes">SMARTQUOTES</a> <span class="normal-smaller">&ndash; convert typewriter doublequotes to proper doublequotes</span></li>
+<li class="list-head-goodies"><a href="#string">STRING</a> <span class="normal-smaller">&ndash; user-definable strings</span></li>
+<li class="list-head-goodies"><a href="#trap">TRAP</a> <span class="normal-smaller">&ndash; suspend/re-invoke traps</span></li>
+<li class="list-head-goodies no-anchor"><span style="font-size: 90%;">Underscoring/underlining</span>
+<ul class="sublist">
+ <li class="list-head-goodies text-color"><a href="#underscore">UNDERSCORE</a> <span class="normal-smaller">&ndash; single underscore</span>
+ <ul class="sublist sub">
+ <li class="list-head-goodies text-color"><a href="#underscore-weight">Controlling the weight of underscores</a></li>
+ <li class="list-head-goodies text-color"><a href="#underscore-color">Colourising underscores</a></li>
+ </ul></li>
+ <li class="list-head-goodies text-color"><a href="#underscore2">UNDERSCORE2</a> <span class="normal-smaller">&ndash; double underscore</span></li>
+ <li class="list-head-goodies text-color"><a href="#underline">UNDERLINE</a>
+ <ul class="sublist sub">
+ <li class="list-head-goodies text-color"><a href="#ul">\*[UL]</a> <span class="normal-sub-sub">&ndash; inline escape to underline</span></li>
+ </ul></li>
+</ul></li>
+<li class="list-head-goodies no-anchor"><span style="font-size: 90%;">Padding</span>
+<ul class="sublist">
+ <li class="list-head-goodies text-color"><a href="#pad">PAD</a> <span class="normal-smaller">&ndash; insert equalized whitespace into lines</span>
+ <ul class="sublist sub">
+ <li class="list-head-goodies text-color"><a href="#pad-marker">PAD_MARKER</a> <span class="normal-sub-sub">&ndash; change/set the marker used with PAD</span></li>
+ </ul></li>
+</ul></li>
+</ul>
+</div>
+<div class="mini-toc-col-2">
+<ul class="no-enumerator">
+<li class="list-head-goodies no-anchor"><span style="font-size: 90%;">Leaders</span>
+<ul class="sublist">
+ <li class="list-head-goodies text-color"><a href="#leader">\*[LEADER]</a> <span class="normal-smaller">&ndash; inline escape to add leaders to a line</span></li>
+ <li class="list-head-goodies text-color"><a href="#leader-character">LEADER_CHARACTER</a> <span class="normal-smaller">&ndash; change/set the leader character</span></li>
+</ul></li>
+<li class="list-head-goodies no-anchor"><span style="font-size: 90%;">Drop caps</span>
+<ul class="sublist">
+ <li class="list-head-goodies text-color"><a href="#dropcap">DROPCAP</a> <span class="normal-smaller">&ndash; set a drop cap</span></li>
+ <li class="list-head-goodies text-color" style="list-style-type: none;"><a href="#dropcap-support"><span class="normal-smaller" style="font-weight: bold;">Support macros for DROPCAP</span></a>
+ <ul class="sublist sub">
+ <li class="list-head-goodies text-color"><a href="#dropcap-family">DROPCAP_FAMILY</a> <span class="normal-sub-sub">&ndash; change drop cap family</span></li>
+ <li class="list-head-goodies text-color"><a href="#dropcap-font">DROPCAP_FONT</a> <span class="normal-sub-sub">&ndash; change drop cap font</span></li>
+ <li class="list-head-goodies text-color"><a href="#dropcap-adjust">DROPCAP_ADJUST</a> <span class="normal-sub-sub">&ndash; alter size of drop cap</span></li>
+ <li class="list-head-goodies text-color"><a href="#dropcap-color">DROPCAP_COLOR</a> <span class="normal-sub-sub">&ndash; change colour of drop cap</span></li>
+ <li class="list-head-goodies text-color"><a href="#dropcap-gutter">DROPCAP_GUTTER</a> <span class="normal-sub-sub">&ndash; change space between drop cap and running text</span></li>
+ </ul></li>
+</ul></li>
+<li class="list-head-goodies text-color no-anchor"><span style="font-size: 90%;">Superscripts</span>
+<ul class="sublist">
+ <li class="list-head-goodies text-color"><a href="#sup">\*[SUP]</a> <span class="normal-smaller">&ndash; inline escape to set superscripts</span>
+ <ul class="sublist sub">
+ <li class="list-head-goodies text-color"><a href="#sup-raise">SUPERSCRIPT_RAISE_AMOUNT</a> <span class="normal-sub-sub">(control superscript raise amount</span></li>
+ <li class="list-head-goodies text-color"><a href="#cond-or-ext-sup">\*[CONDSUP]</a> <span class="normal-sub-sub">&ndash; condensed superscripts</span></li>
+ <li class="list-head-goodies text-color"><a href="#cond-or-ext-sup">\*[EXTSUP]</a> <span class="normal-sub-sub">&ndash; extended superscripts</span></li>
+ </ul></li>
+</ul></li>
+</ul>
+</div>
+</div>
+
+<div class="rule-medium" style="padding-bottom: 1em;"><hr/></div>
+
+<!-- -ALIAS- -->
+
+<div class="macro-id-overline">
+<h3 id="alias" class="macro-id">Rename macros</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ALIAS</b> <kbd class="macro-args">&lt;new name&gt; &lt;old name&gt;</kbd>
+</div>
+
+<p>
+The ALIAS macro may well be your best friend. With it, you can
+change the name of a macro to anything you like (provided the new
+name is not already being used by mom).
+</p>
+
+<p>
+Groff has always been a bit intimidating for new users because
+its standard macro packages use very terse macro names. Mom
+doesn&#8217;t like people to feel intimidated; she wants them
+to feel welcome. Consequently, she tries for easy-to-grasp,
+self-explanatory macro names. However, mom knows that people have
+their own ways of thinking, their own preferences, their own habits.
+Some of her macro names may not suit you; they might be too long,
+or aren&#8217;t what you automatically think of when you want to
+do a particular thing, or might conflict with habits you&#8217;ve
+developed over the years.
+</p>
+
+<p>
+If you don&#8217;t like one of mom&#8217;s macro names, say,
+PAGEWIDTH, change it, like this:
+<br/>
+<span class="pre-in-pp">
+ .ALIAS PW PAGEWIDTH
+ | |
+ new--+ +--official
+ name name
+</span>
+The first argument to ALIAS is the new name you want for a macro.
+The second is the &#8220;official&#8221; name by which the macro is
+normally invoked. After ALIAS, either can be used.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+A particularly good candidate for ALIAS is the macro
+<a href="typesetting.html#ps">PT_SIZE</a>.
+A more natural name for it would simply be PS, but PS conflicts
+with the <b>eqn</b> equation preprocessor and thus mom uses the
+longer form. However, if you&#8217;re not using <b>eqn</b>, you can
+happily rename PT_SIZE to
+PS:
+<br/>
+<span class="pre-in-pp">
+ .ALIAS PS PT_SIZE
+</span>
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you use ALIAS a lot, and always for the same things, consider
+creating an aliases file of the form
+<br/>
+<span class="pre-in-pp">
+ .ALIAS &lt;new name&gt; &lt;old name&gt;
+ .ALIAS &lt;new name&gt; &lt;old name&gt;
+ .ALIAS &lt;new name&gt; &lt;old name&gt;
+ ...etc
+</span>
+Put the file someplace convenient and source it (include it) at the
+beginning of your documents with the
+<a href="docprocessing.html#include">INCLUDE</a>
+macro. Assuming that you&#8217;ve created an aliases file called
+<b>mom-aliases</b> in your home directory under a directory called
+<b>Mom</b>, you&#8217;d source it by placing
+<br/>
+<span class="pre-in-pp">
+ .INCLUDE /home/&lt;username&gt;/Mom/mom-aliases
+</span>
+at the top of your documents.
+</p>
+
+<p class="tip-bottom">
+If you share documents that make use of an alias file, remember that
+other people don&#8217;t have the file. Paste the whole thing at
+the top of your documents, please.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span>
+ALIAS is an alias of <kbd>.als</kbd>. You can use either, or mix
+&#8217;n&#8217; match with impunity.
+</p>
+</div>
+
+<!-- -SILENT- -->
+<div class="macro-id-overline">
+<h3 id="silent" class="macro-id">Hide input lines from output</h3>
+</div>
+
+<div class="box-macro-args">
+ Macro: <b>SILENT</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>COMMENT</b>
+</p>
+
+<p>
+Sometimes, you want to &#8220;hide&#8221;
+<a href="definitions.html#inputline">input lines</a>
+from final output. This is most likely to be the case when setting
+up string tabs (see the
+<a href="typesetting.html#string-tabs-tut">quickie tutorial on string tabs</a>
+for an example), but there are other places where you might want
+input lines to be invisible as well. Any place you don&#8217;t want
+input lines to appear in the output, use the SILENT macro.
+</p>
+
+<p>
+SILENT is a toggle. Invoking it without an argument turns it on;
+any argument turns it off. E.g.,
+<br/>
+<span class="pre-in-pp">
+ .SILENT
+ A line of text
+ .SILENT OFF
+</span>
+The line &#8220;A line of text&#8221; will not appear in the
+output copy.
+</p>
+
+<p>
+SILENT is aliased as COMMENT. If you want to insert non-printing
+comments into your documents, you may prefer this.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+SILENT does not automatically break an
+<a href="definitions.html#inputline">input line</a>
+(see
+<a href="typesetting.html#br">BR</a>)
+when you&#8217;re in one of the
+<a href="definitions.html#filled">fill modes</a>
+(<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD&nbsp;L&nbsp;|&nbsp;R&nbsp;|&nbsp;C&nbsp;|&nbsp;J</a>).
+The same applies to tabs
+(<a href="typesetting.html#tab-set">typesetting</a>
+or
+<a href="typesetting.html#st">string</a>)
+to which you&#8217;ve passed the J or QUAD argument. You must
+insert <kbd>.BR</kbd> yourself, or risk a portion of your text
+disappearing into a black hole.
+</p>
+</div>
+
+<!-- -TRAP- -->
+
+<div class="macro-id-overline">
+<h3 id="trap" class="macro-id">Suspend / re-invoke traps</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TRAP</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+Traps are vertical positions on the output page at which
+you or mom have instructed groff to start doing something
+automatically. Commonly, this is near the bottom of the page, where
+behind-the-scenes processing is needed in order for one page to
+finish and another to start.
+</p>
+
+<p>
+Sometimes, traps get sprung when you don&#8217;t want them. If this
+happens, surround just the offending macros and input lines with
+<br/>
+<span class="pre-in-pp">
+ .TRAP OFF
+ ...
+ .TRAP
+</span>
+TRAP is a toggle, therefore any argument turns it off (i.e., suspends
+the trap), and no argument turns it (back) on.
+</p>
+
+<!-- -SMARTQUOTES- -->
+
+<div class="macro-id-overline">
+<h3 id="smartquotes" class="macro-id">Convert typewriter doublequotes to proper doublequotes</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SMARTQUOTES</b> <kbd class="macro-args">[&lt;off&gt;] [ ,, | &gt;&gt; | &lt;&lt; ]</kbd>
+</div>
+
+<span style="margin-left: .5em">or</span>
+
+<div class="box-macro-args">
+Macro: <b>SMARTQUOTES</b> <kbd class="macro-args">DA | DE | ES | FR | IT | NL | NO | PT | SV</kbd>
+</div>
+
+<p>
+If you invoke SMARTQUOTES without an argument, mom converts all
+instances of the inch-mark, (<kbd>"</kbd>), also called
+a doublequote, into the appropriate instances of true Anglo-American
+open-and close-doublequotes. (See
+<a href="#sq-international">Internationalization</a>
+for how to get SMARTQUOTES to behave correctly for non-English
+quoting styles.)
+</p>
+
+<p>
+Typographically, there is a difference between the inch-mark and
+quotation marks&mdash;a big difference. Sadly, typewriters and computer
+keyboards supply only one: the inch-mark. While using inches for
+doublequotes is, and always has been, acceptable in typewriter-style
+copy, it has never been, and, God willing, never will be acceptable in
+typeset copy. Failure to turn inches into quotes is the first thing
+a professional typesetter notices in documents prepared by amateurs.
+And you don&#8217;t want to look like an amateur, do you?
+</p>
+
+<h3 id="sq-international" class="docs">Internationalization</h3>
+<p>
+If you invoke SMARTQUOTES with one of the optional arguments
+(<kbd>,,</kbd> or <kbd>&gt;&gt;</kbd>
+or <kbd>&lt;&lt;</kbd>) you can use
+<kbd>&quot;</kbd> (i.e. the inch-mark/doublequotes key)
+as &#8220;cheap&#8221; open-and close-quotes when inputting text in
+a language other than English, and have mom convert them, on output,
+into the chosen open-and close-quote style.
+</p>
+
+<p>
+<kbd>,,</kbd> opens quotes with &#8220;lowered
+doublequotes&#8221; and closes them with &#8220;raised
+doublequotes&#8221;, as in this ascii approximation:
+<br/>
+<span class="pre-in-pp">
+ ,,Hilfe !``
+</span>
+
+<kbd>&gt;&gt;</kbd> opens quotes with guillemets
+pointing to the right, and closes them with guillemets pointing to
+the left, as in this ascii approximation:
+<br/>
+<span class="pre-in-pp">
+ &gt;&gt;Zurück !&lt;&lt;
+</span>
+<kbd>&lt;&lt;</kbd> opens quotes with guillemets
+pointing to the left, and closes them with guillemets pointing to
+the right, as in this ascii approximation:
+<br/>
+<span class="pre-in-pp">
+ &lt;&lt;Mais monsieur! Je ne suis pas ce genre de fille!&gt;&gt;
+</span>
+Please note: the above arguments to SMARTQUOTES are literal
+ASCII characters. <kbd>,,</kbd> is two commas;
+<kbd>&lt;&lt;</kbd> is two less-than signs;
+<kbd>&gt;&gt;</kbd> is two greater-than signs.
+</p>
+
+<p>
+Alternatively, you can pass SMARTQUOTES the two-letter, ISO 639
+abbreviation for the language you&#8217;re writing in, and mom will
+output the correct quotes.
+<br/>
+<span class="pre-in-pp">
+ .SMARTQUOTES DA = Danish &gt;&gt;text&lt;&lt;
+ .SMARTQUOTES DE = German ,,text``
+ .SMARTQUOTES ES = Spanish ``text´´
+ .SMARTQUOTES FR = French &lt;&lt; text &gt;&gt;
+ .SMARTQUOTES IT = Italian &lt;&lt; text &gt;&gt;
+ .SMARTQUOTES NL = Dutch ´´text´´
+ .SMARTQUOTES NO = Norwegian &lt;&lt;text&gt;&gt;
+ .SMARTQUOTES PT = Portuguese &lt;&lt;text&gt;&gt;
+ .SMARTQUOTES SV = Swedish &gt;&gt;text&gt;&gt;
+</span>
+</p>
+
+<p>
+Turn SMARTQUOTES off by passing it any argument not in the argument
+list (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>X</kbd>, etc)
+</p>
+
+<p>
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE&nbsp;TYPESET</a>,
+smartquotes are on by default (in the Anglo-American style); with
+<a href="docprocessing.html#printstyle">PRINTSTYLE&nbsp;TYPEWRITE</a>,
+it&#8217;s off by default (and should probably stay that way).
+</p>
+
+<p>
+Finally, if you&#8217;re fussy about the kerning of quote marks in
+relation to the text they surround, or have special quoting needs,
+you have to enter quote marks by hand using groff&#8217;s native
+<a href="definitions.html#inlines">inline escapes</a>
+for special characters (see <kbd>man&nbsp;groff-char</kbd>
+for a complete list of special characters). Entering quote marks
+this way allows you to use mom&#8217;s
+<a href="inlines.html#inline-kerning-mom">inline kerning escapes</a>
+to fine-tune the look of quotes.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+SMARTQUOTES does not work on single quotes, which most people
+input with the apostrophe (found at the right-hand end of the
+&#8220;home row&#8221; on a QWERTY keyboard). Groff will interpret
+all instances of the apostrophe as an apostrophe, making the symbol
+useless as an open-single-quote. For open single quotes, input
+the backtick character typically found under the tilde on most
+keyboards. Here&#8217;s an example of correct input copy with
+single quotes:
+<br/>
+<span class="pre-in-pp">
+ "But she said, `I don&#8217;t want to!'"
+</span>
+</p>
+
+<p class="tip-bottom" style="margin-top: -1em;">
+<span class="additional-note">Additional note:</span>
+Whether or not you have SMARTQUOTES turned on, get into the habit of
+entering the foot-and inch-marks, when you need them, with the
+<a href="definitions.html#inlines">inline escapes</a>
+<kbd><span class="nobr">\*[FOOT]</span></kbd> and
+<kbd><span class="nobr">\*[INCH]</span></kbd>, instead of
+<kbd>'</kbd> and <kbd>"</kbd>.
+</p>
+</div>
+
+<!-- -CAPS- -->
+
+<div class="macro-id-overline">
+<h3 id="caps" class="macro-id">Convert to upper case</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CAPS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+CAPS converts all lower case letters to upper case.
+Primarily, it&#8217;s a support macro used by the
+<a href="docprocessing.html#docprocessing">document processing macros</a>,
+but you may find it helpful on occasion. CAPS is a toggle, therefore
+no argument turns it on, any argument (<kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>X</kbd>, etc) turns it off.
+<br/>
+<span class="pre-in-pp">
+ .CAPS
+ All work and no play makes Jack a dull boy.
+ .CAPS OFF
+</span>
+
+produces, on output
+<br/>
+<span class="pre-in-pp">
+ ALL WORK AND NO PLAY MAKES JACK A DULL BOY.
+</span>
+If you wish to capitalise a section of type inline, use the
+<a href="definitions.html#inlines">inline escapes</a>,
+<a href="inlines.html#uc-lc"><kbd><span class="nobr">\*[UC]...\*[LC]</span></kbd></a>
+like this:
+<br/>
+<span class="pre-in-pp">
+ All work \*[UC]and\*[LC] no play makes Jack a dull boy.
+</span>
+
+The above produces, on output
+<br/>
+<span class="pre-in-pp">
+ All work AND no play makes Jack a dull boy.
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>\*[LC]</kbd> must come after a terminating period.
+<br/>
+<span class="pre-in-pp">
+ \*[UC]All work and no play makes Jack a dull boy.\*[LC]
+</span>
+not
+<span class="pre-in-pp">
+ \*[UC]All work and no play makes Jack a dull boy\*[LC].
+</span>
+Conversely, an initial period must come <em>before</em>
+<kbd>\*[UC]</kbd>, or be preceded by <kbd>\&amp;</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ .\*[UC]start\*[LC] is used to begin document processing.
+</span>
+or
+<span class="pre-in-pp">
+ \*[UC]\&amp;.start\*[LC] is used to begin document processing.
+</span>
+Upon output, either will produce
+<br/>
+<span class="pre-in-pp">
+ START is used to begin document processing.
+</span>
+</p>
+</div>
+
+<!-- -STRING- -->
+
+<div class="macro-id-overline">
+<h3 id="string" class="macro-id">User-defined strings</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>STRING</b> <kbd class="macro-args">&lt;name&gt; &lt;what you want in the string&gt;</kbd>
+</div>
+
+<p>
+You may find sometimes that you have to type out portions of text
+repeatedly. If you&#8217;d like not to wear out your fingers, you can
+define a string that, whenever you call it by name, outputs whatever
+you put into it.
+</p>
+
+<p>
+For example, say you&#8217;re creating a document that repeatedly uses
+the phrase &#8220;the Montreal/Windsor corridor&#8221;. Instead
+of typing all that out every time, you could define a string, like
+this:
+<br/>
+<span class="pre-in-pp">
+ .STRING mw the Montreal/Windsor corridor
+</span>
+Once a string is defined, you can call it any time with the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[&lt;name&gt;]</span></kbd>. Using the example
+string above
+<br/>
+<span class="pre-in-pp">
+ The schedule for trains along \*[mw]:
+</span>
+produces, on output
+<br/>
+<span class="pre-in-pp">
+ The schedule for trains along the Montreal/Windsor corridor:
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Be very careful not to put any spaces at the ends of strings
+you&#8217;re defining, unless you want them. Everything after
+the name argument you pass to STRING goes into the string,
+including trailing spaces. It&#8217;s a good idea to get into the
+habit of using groff&#8217;s native commenting mechanism, <kbd
+class="bold">\"</kbd>, immediately following any string definition
+in order to avoid spaces you can&#8217;t see, like this
+<br/>
+<span class="pre-in-pp">
+ .STRING mw the Montreal/Windsor corridor\"
+</span>
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span>
+STRING is an alias for <b>ds</b>. You can use either, or mix
+&#8217;n&#8217; match with impunity.
+</p>
+</div>
+
+<!-- -ESC_CHAR- -->
+
+<div class="macro-id-overline">
+<h3 id="esc-char" class="macro-id">Change the escape character</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ESC_CHAR</b> <kbd class="macro-args">&lt;new character&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p>
+Groff&#8217;s and mom&#8217;s default escape character is
+the backslash. Sometimes, you may want to include a literal
+backslash in your document. There are two ways to accomplish
+this. One is simply to double the backslash character (<kbd
+class="bold">\\</kbd>), which is convenient if you don&#8217;t have
+a lot of backslashes to input. If you need to input a whole batch
+of backslashes (say, when including code snippets in your document),
+you can use ESC_CHAR to make the change permanent (until you decide
+to restore the escape character to its default, the backslash).
+</p>
+
+<p>
+ESC_CHAR with a single character argument changes the escape
+character to whatever the argument is. ESC_CHAR with no argument
+restores the escape character to the backslash.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">Important:</span>
+Changing the escape character prevents macros, which require that
+the backslash be the escape character, from functioning correctly.
+Do not introduce any subsequent macros without first restoring the
+escape character to its default.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span>
+ESC_CHAR is an alias of <kbd>.ec</kbd>. Mix &#8217;n&#8217; match
+the two with impunity.
+</p>
+</div>
+
+<!-- -SIZESPECS- -->
+
+<div class="macro-id-overline">
+<h3 id="sizespecs" class="macro-id">Get cap-height, x-height and descender depth of a font</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SIZESPECS</b>
+</div>
+
+<p>
+Whenever you need to get the
+<a href="definitions.html#capheight">cap-height</a>,
+<a href="definitions.html#xheight">x-height</a>
+or
+<a href="definitions.html#descender">descender</a>
+depth of type at the current point size, invoke <kbd
+class="bold">.SIZESPECS</kbd>, which takes no argument.
+The dimensions are stored in the string registers
+<b><span class="nobr">\*[$CAP_HEIGHT]</span></b>,
+<b><span class="nobr">\*[$X_HEIGHT]</span></b>,
+and
+<b><span class="nobr">\*[$DESCENDER]</span></b>, respectively, in
+<a href="definitions.html#units">machine units</a>
+to which the
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<b>u</b>, is already appended.
+</p>
+
+<p>
+Thus, if you wanted to advance 2 inches from your current position
+on the page plus the cap-height of the current point size of type
+<br/>
+<span class="pre-in-pp">
+ .PT_SIZE &lt;n&gt;
+ .SIZESPECS
+ .ALD 2i+\*[$CAP_HEIGHT]
+</span>
+would do the trick.
+</p>
+
+<!-- -UNDERSCORE- -->
+
+<div class="macro-id-overline">
+<h3 id="underscore" class="macro-id">Single underscore</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>UNDERSCORE</b> <kbd class="macro-args">[ &lt;distance below baseline&gt; ] [ PREFIX &lt;prefix&gt; ] [ SUFFIX &lt;suffix&gt; ] &quot;&lt;string&gt;&quot;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;&lt;distance below baseline&gt; requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, UNDERSCORE places an underscore 2 points beneath the
+required
+<a href="definitions.html#stringargument">string argument</a>.
+The string must be enclosed in double-quotes, like this:
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE "Unmonitored monopolies breed high prices and poor products"
+</span>
+If you wish to change the distance of the rule from the baseline,
+use the optional argument
+<kbd>&lt;distance&nbsp;below&nbsp;baseline&gt;</kbd>
+(with a unit of measure).
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE 3p "Unmonitored monopolies breed high prices and poor products"
+</span>
+The above places the upper edge of the underscore 3 points below the
+<a href="definitions.html#baseline">baseline</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Tip:</span>
+UNDERSCORE can also be used for strikethrough effects by supplying a
+negative value to the distance argument.
+</p>
+</div>
+
+<p>
+<kbd>PREFIX</kbd> and <kbd>SUFFIX</kbd> allow you to add
+non-underscored punctuation (or other glyphs) to the beginning
+and/or end of the underscored string. If the argument to either
+<kbd>PREFIX</kbd> or <kbd>SUFFIX</kbd> contains spaces, surround the
+argument with double-quotes. For example, the following underscores
+the text string but not the surrounding punctuation.
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE PREFIX ( SUFFIX .) "Unmonitored monopolies breed high prices and poor products"
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+UNDERSCORE does not work across line breaks in output copy, which is
+to say that you can&#8217;t underscore a multi-line passage simply
+by putting the text of the whole thing in the string you pass to
+UNDERSCORE. If you need to underscore several lines of type, use
+<a href="#underline">UNDERLINE</a>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Additional note:</span>
+In
+<a href="definitions.html#filled">nofill modes</a>,
+UNDERSCORE causes a break before and after, meaning the underscored
+word or phrase will appear as a separate line in your output. If
+you wish to embed an underscored word or phrase into non-filled
+text, temporarily change to the corresponding fill mode with
+<a href="typesetting.html#quad">QUAD</a>
+and insert breaks manually with
+<a href="typesetting.html#br">BR</a>
+as appropriate, reverting to the original nofill mode afterwards.
+</p>
+</div>
+
+<h3 id="underscore-weight" class="docs">Controlling the weight of underscores</h3>
+<p>
+The weight (thickness) of underscores may be controlled with the
+macro UNDERSCORE_WEIGHT. Thus, if you want underscores with a
+weight of 1-1/2 points, you&#8217;d invoke:
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE_WEIGHT 1.5
+</span>
+prior to invoking <kbd>.UNDERSCORE</kbd>. Every
+subsequent instance of <kbd>.UNDERSCORE</kbd> will use
+this weight.
+</p>
+
+<p>
+Mom&#8217;s default underscore weight is 1/2 point.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+UNDERSCORE_WEIGHT also sets the weight of
+<a href="#UNDERSCORE2">double underscores.</a>
+</p>
+</div>
+
+<h3 id="underscore-color" class="docs">Colourising underscored text</h3>
+<p>
+If you want underscored text to be in a different colour from the
+text around it, use the
+<a href="color.html#color">COLOR</a>
+macro rather than the
+<a href="color.html#color-inline">inline escape for changing colour</a>.
+In other words, assuming your prevailing text colour is black and
+you want underscored text in red
+<br/>
+<span class="pre-in-pp">
+ .COLOR red
+ .UNDERSCORE "text to underscore"
+ .COLOR black
+</span>
+rather than
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE "\*[red]text to underscore\*[black]"
+</span>
+The latter will render the text in red but the underscore in black.
+You can, of course, use this to create rainbow effects if that's
+what you want, e.g. text in red, underscore in blue, and prevailing
+type in black:
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE "\*[red]text to underscore\*[blue]"
+ .COLOR black
+</span>
+</p>
+
+<!-- -UNDERSCORE2- -->
+
+<div class="macro-id-overline">
+<h3 id="underscore2" class="macro-id">Double underscore</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>UNDERSCORE2</b> <kbd class="macro-args">[ &lt;distance below baseline&gt; [ &lt;distance between rules&gt; ] [ PREFIX &lt;prefix&gt; ] [ SUFFIX &lt;suffix&gt; ] &quot;&lt;string&gt;&quot;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;&lt;distance below baseline&gt;
+and
+&lt;distance between rules&gt;
+require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, UNDERSCORE2 places a double underscore 2 points beneath
+the required
+<a href="definitions.html#stringargument">string argument</a>.
+The string must be enclosed in double-quotes, like this:
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE2 "Unmonitored monopolies breed high prices and poor products"
+</span>
+The default distance between the two rules is 2 points, measured
+from the bottom edge of the upper rule to the top edge of the lower
+one.
+</p>
+
+<p>
+If you wish to change the distance of the double underscore from the
+<a href="definitions.html#baseline">baseline</a>,
+use the optional argument
+<kbd>&lt;distance&nbsp;below&nbsp;baseline&gt;</kbd>
+(with a unit of measure), e.g.
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE2 3p "Unmonitored monopolies breed high prices and poor products"
+</span>
+which places the upper edge of the first rule of the double
+underscore 3 points below the baseline.
+</p>
+
+<p>
+If you wish to change the distance between the two rules as well,
+use the second optional argument
+<kbd>&lt;distance&nbsp;between&nbsp;rules&gt;</kbd>
+(with a unit of measure). The distance between the two rules
+is measured from the bottom edge of the upper rule to the top
+edge of the lower one. Be aware that you must give a value for
+<kbd>&lt;distance&nbsp;below&nbsp;baseline&gt;</kbd> if you want to
+use <kbd>&lt;distance&nbsp;between&nbsp;rules&gt;</kbd>.
+</p>
+
+<p>
+<kbd>PREFIX</kbd> and <kbd>SUFFIX</kbd> allow you to add
+non-underscored punctuation (or other glyphs) to the beginning
+and/or end of the double-underscored string. If the argument to
+either <kbd>PREFIX</kbd> or <kbd>SUFFIX</kbd> contains spaces,
+surround the argument with double-quotes. For example, the
+following double-underscores the text string but not the surrounding
+punctuation.
+<br/>
+<span class="pre-in-pp">
+ .UNDERSCORE2 PREFIX ( SUFFIX .) "Unmonitored monopolies breed high prices and poor products"
+</span>
+The weight (thickness) of double underscores may be controlled with
+the macro
+<a href="#underscore-weight">UNDERSCORE_WEIGHT</a>
+(q.v).
+</p>
+
+<p>
+See
+<a href="#underscore-color">here</a>
+for advice on colourising double-underscored text.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+In
+<a href="definitions.html#filled">nofill modes</a>,
+UNDERSCORE2 causes a break before and after, meaning the double-underscored
+word or phrase will appear as a separate line in your output. If
+you wish to embed a double-underscored word or phrase into non-filled
+text, temporarily change to the corresponding fill mode with
+<a href="typesetting.html#quad">QUAD</a>
+and insert breaks manually with
+<a href="typesetting.html#br">BR</a>
+as appropriate, reverting to the original nofill mode afterwards.
+</p>
+</div>
+
+<!-- -UNDERLINE- -->
+<div class="macro-id-overline">
+<h3 id="underline" class="macro-id">Underline</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>UNDERLINE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+The distinction between underscoring and underlining is that
+underscoring is suitable for occasional effects (a word here,
+a phrase there), whereas underlining underlines whole passages
+of type. Furthermore, you cannot colourise underlining.
+There&#8217;s a special macro,
+<a href="#underline-specs">UNDERLINE_SPECS</a>,
+to control the weight and distance from the baseline of the
+underline.
+</p>
+
+<p>
+Lastly, files that use UNDERLINE must be processed with
+<br/>
+<span class="pre-in-pp">
+ pdfmom -Tps filename.mom | ps2pdf - filename.pdf
+</span>
+since groff&#8217;s pdf driver does not recognize UNDERLINE.
+</p>
+
+<p>
+Note that
+<a href="docprocessing.html#printstyle">PRINTSTYLE&nbsp;TYPEWRITE</a>
+uses UNDERLINE to underline italics
+and pseudo-italics (<a href="typesetting.html#slant-inline">SLANT</a>)
+by default. The default may be changed (see
+<a href="docprocessing.html#printstyle-italics">Underlining of italics</a>)
+but if it's what you want, you must process your document as shown
+above.
+</p>
+
+<p>
+UNDERLINE is a toggle macro, therefore you invoke it by itself (i.e.
+with no argument) to initiate underlining, and with any argument
+(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc)
+to turn it off.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Underlining may also be turned on and off
+<a href="definitions.html#inlines">inline</a>
+with the escapes
+<a href="#ul"><kbd><span class="nobr">\*[UL]...\*[ULX]</span></kbd></a>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+In document processing, neither <kbd>.UNDERLINE</kbd> nor
+<kbd><span class="nobr">\*[UL]</span></kbd> persist past the current document element tag.
+For example, if you turn underlining on in a paragraph
+(<kbd><a href="docelement.html#pp">.PP</a></kbd>),
+your next paragraph will not be underlined.
+</p>
+</div>
+
+<h4 id="underline-specs" class="docs">UNDERLINE_SPECS</h4>
+
+<p>
+The weight of underlining and the distance from the baseline is
+set with
+<br/>
+<span class="pre-in-pp">
+ .UNDERLINE_SPECS &lt;weight&gt; &lt;distance&gt;
+</span>
+The <kbd>&lt;weight&gt;</kbd> argument can be expressed in any
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+you like, but points is the most usual. Mom&#8217;s default is 1/2 point
+(.5p). The same holds for the <kbd>&lt;distance&gt;</kbd> argument;
+mom&#8217;s default is 1-1/4 points (1.25p).
+</p>
+
+<!-- -UL- -->
+
+<h4 id="ul" class="docs">INLINE ESCAPE FOR UNDERLINING</h4>
+
+<p>
+The macro pair,
+<kbd><a href="#underline">.UNDERLINE</a></kbd> /
+<kbd>.UNDERLINE&nbsp;OFF</kbd>, and the inline escapes,
+<span class="nobr"><kbd>\*[UL]</kbd> / <kbd>\*[ULX]</kbd></span>, are
+functionally identical, hence, in
+<a href="definitions.html#filled">fill</a>
+modes
+<br/>
+<span class="pre-in-pp">
+ Which should I heed?
+ .UNDERLINE
+ Just do it
+ .UNDERLINE OFF
+ or
+ .UNDERLINE
+ just say no?
+ .UNDERLINE OFF
+</span>
+produces the same result as
+<br/>
+<span class="pre-in-pp">
+ Which should I heed? \*[UL]Just do it\*[ULX] or \*[UL]just say no?\*[ULX]
+</span>
+In either case, this is a misuse of UNDERLINE.
+<a href="#underscore">UNDERSCORE</a>
+is preferable.
+</p>
+
+<!-- -PAD- -->
+
+<div class="macro-id-overline">
+<h3 id="pad" class="macro-id">Insert equalized whitespace into lines</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PAD</b> <kbd class="macro-args">&quot;&lt;string with pad markers inserted&gt;&quot; [ NOBREAK ]</kbd>
+</div>
+
+<p>
+With PAD, you can insert proportional amounts of whitespace into a
+line. The optional <kbd id="nobreak" class="bold">NOBREAK</kbd>
+argument tells mom not to advance on the page after the PAD macro
+has been invoked.
+</p>
+
+<p>
+PAD calculates the difference between the length of text on the line
+and the distance remaining to its end, then inserts the difference
+(as whitespace) at the place(s) you specify.
+</p>
+
+<p>
+Take, for example, the following relatively common typesetting
+situation, found at the bottom of legal agreements:
+<br/>
+<span class="pre">
+ Date Signature |
+</span>
+</p>
+
+<p>
+The person signing the agreement is supposed to fill in the date
+as well as a signature. Space needs to be left for both, but the
+exact amount is neither known, nor important. All that matters is
+that there be a little space after Date, and rather more space after
+Signature. (In the above, <kbd>|</kbd> represents the
+end of the line at the prevailing line length.)
+</p>
+
+<p>
+The
+<a href="goodies.html#pad-marker">pad marker</a>
+(see below) is <kbd>#</kbd> (the pound or number sign
+on your keyboard) and can be used multiple times in a line. With
+that in mind, here&#8217;s how you&#8217;d input the Date/Signature line
+(assuming a length of 30 picas):
+<br/>
+<span class="pre">
+ .LL 30P
+ .PAD "Date#Signature###"
+</span>
+</p>
+
+<p>
+When the line is output, the space remaining on the line, after
+&quot;Date&quot; and &quot;Signature&quot; have been taken into
+account, is split into four (because there are four # signs). One
+quarter of the space is inserted between Date and Signature, the
+remainder is inserted after Signature.
+</p>
+
+<div class="examples-container">
+<h3 id="pad-example" class="docs notes">Example of PAD usage</h3>
+<p style="margin-top: .5em;">
+One rarely wants merely to insert space in a line; one usually wants
+to fill it with something, hence PAD is particularly useful in
+conjunction with
+<a href="typesetting.html#string-tabs">string tabs</a>.
+The following uses the Date/Signature example, above, but adds
+rules into the whitespace through the use of string tabs and
+mom&#8217;s
+<a href="definitions.html#inlines">inline escape</a>
+<a href="inlines.html#inline-rule-mom"><kbd><span class="nobr">\*[RULE]</span></kbd></a>.
+<br/>
+<span class="pre-in-pp">
+ .LL 30P
+ .PAD "Date \*[ST1]#\*[ST1X] Signature \*[ST2]###\*[ST2X]" NOBREAK
+ .ST 1 J
+ .ST 2 J
+ .TAB 1
+ \*[RULE]
+ .TN
+ \*[RULE]
+ .TQ
+</span>
+</p>
+
+<p>
+Here&#8217;s what the example does:
+</p>
+<ol style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>Pads the Date/Signature line with a shorter space for Date
+ (<kbd>#</kbd>) and a longer space for Signature
+ (<kbd>###</kbd>), encloses the padded space with string tabs
+ markers, and outputs the line without advancing on the page.
+ </li>
+ <li>Sets the quad for the two string tabs (in this instance, justified).
+ </li>
+ <li>Calls the first string tab and draws a rule to its full
+ length.
+ </li>
+ <li>Calls the second tab with
+ <a href="typesetting.html#tn">TN</a>
+ (which moves to tab 2 and stays on the same baseline)
+ then draws a rule to the full length of string tab 2.
+ </li>
+</ol>
+
+<p>
+Often, when setting up string tabs this way, you don&#8217;t want the
+padded line to print immediately. To accomplish this, use
+<kbd><a href="#silent">SILENT</a></kbd>.
+See the
+<a href="typesetting.html#string-tabs-tut">quickie tutorial on string tabs</a>
+for an example.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Because the pound sign
+(<kbd>#</kbd>) is used as the pad marker, you
+can&#8217;t use it as a literal part of the pad string. If you need
+the sign to appear in the text of a padded line, change the pad
+marker with
+<kbd><a href="#pad-marker">PAD_MARKER</a></kbd>.
+Also, be aware that <kbd>#</kbd> as a pad marker
+only applies within the PAD macro; at all other times it prints
+literally, just as you&#8217;d expect.
+</p>
+
+<p class="tip-bottom">
+Another important consideration when using PAD is that because the
+string must be enclosed in double-quotes, you can&#8217;t use the
+double-quote (<kbd>"</kbd>) as part of the string. The
+way to circumvent this is to use the groff
+<a href="definitions.html#inlines">inline escapes</a>
+<kbd>\(lq</kbd> and <kbd>\(rq</kbd>
+(leftquote and rightquote respectively) whenever double-quotes are
+required in the string passed to PAD.
+</p>
+</div>
+
+<!-- -PAD_MARKER- -->
+
+<div class="macro-id-overline">
+<h3 id="pad-marker" class="macro-id">Change/set the marker used with PAD</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PAD_MARKER</b> <kbd class="macro-args">"&lt;character to use as the pad marker&gt;</kbd>
+</div>
+
+<p>
+If you need to change mom&#8217;s default pad marker (<kbd
+class="bold">#</kbd>), either because you want a literal # in
+the padded line, or simply because you want to use another character
+instead, use PAD_MARKER, whose argument is the new pad marker
+character you want.
+<br/>
+<span class="pre-in-pp">
+ .PAD_MARKER @
+</span>
+changes the pad marker to <kbd>@</kbd>.
+</p>
+
+<p>
+Once you&#8217;ve changed the pad marker, the new marker remains in effect
+for every instance of
+<a href="#pad">PAD</a>
+until you change it again (say, back to the pound sign).
+</p>
+
+<!-- -\*[LEADER]- -->
+
+<div class="macro-id-overline">
+<h3 id="leader" class="macro-id">Inline escape to add leaders to a line</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <b>\*[LEADER]</b>
+</div>
+
+<p>
+Whenever you want to fill a line or tab with
+<a href="definitions.html#leader">leaders</a>,
+use the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[LEADER]</span></kbd>. The remainder of the line or
+tab will be filled with the leader character. Mom&#8217;s default
+leader character is a period (dot), but you can change it to any
+character you like with
+<kbd><a href="#leader-character">LEADER_CHARACTER</a></kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+<kbd>\*[LEADER]</kbd> fills lines or tabs right to
+their end. You cannot insert leaders into a line or tab and have
+text following the leader on the same line or in the same tab.
+Should you wish to achieve such an effect typographically, create
+tabs for each element of the line and fill them appropriately with
+the text and leaders you need.
+<a href="typesetting.html#string-tabs">String tabs</a>
+are perfect for this. An example follows.
+<br/>
+<span class="pre">
+ .LL 30P
+ .PAD "Date\*[ST1]#\*[ST1X] Signature\*[ST2]###\*[ST2X]" NOBREAK
+ .EL
+ .ST 1 J
+ .ST 2 J
+ .TAB 1
+ \*[LEADER]
+ .TN
+ \*[LEADER]
+ .TQ
+</span>
+</p>
+
+<p class="tip-bottom">
+The PAD line sets the words Date and Signature, and marks string
+tabs around the pad space inserted in the line. The string tabs are
+then &quot;set&quot;, called, and filled with leaders. The result
+looks like this:
+<br/>
+<span class="pre" style="margin-bottom: -1em;">
+ Date.............Signature.....................................
+</span>
+</p>
+</div>
+
+<!-- -LEADER_CHARACTER- -->
+
+<div class="macro-id-overline">
+<h3 id="leader-character" class="macro-id">Change/set the leader character</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LEADER_CHARACTER</b> <kbd class="macro-args">&lt;character&gt;</kbd>
+</div>
+
+<p>
+LEADER_CHARACTER takes one argument: a single character you would
+like to be used for
+<a href="definitions.html#leader">leaders</a>.
+(See
+<a href="#leader"><kbd><span class="nobr">\*[LEADER]</span></kbd></a>
+for an explanation of how to fill lines with leaders.)
+</p>
+
+<p>
+For example, to change the leader character from mom&#8217;s
+default (a period) to the underscore character, enter
+<br/>
+<span class="pre-in-pp">
+ .LEADER_CHARACTER _
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+A particularly useful function of LEADER_CHARACTER is that it can be
+used to increase the spacing of mom&#8217;s default leaders. This is
+done by assigning to LEADER_CHARACTER both the period (dot) and a
+space. The technique requires a little low-level groffing:
+<br/>
+<span class="pre-in-pp">
+ .char \[leader] . \"
+ .LEADER_CHARACTER \[leader]
+</span>
+The <kbd>.char</kbd>
+<a href="definitions.html#primitives">primitive</a>
+allows you to define a character called <kbd>leader</kbd>, to which
+you assign a period and a space. The <kbd>\"</kbd>, which, in
+groff, is used to add non-printing comments to a line, is not
+strictly necessary. Its presence here lets you see that
+there&#8217;s a space after the period.
+</p>
+</div>
+
+<!-- -DROPCAP- -->
+
+<div class="macro-id-overline">
+<h3 id="dropcap" class="macro-id">Drop caps</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DROPCAP</b> <kbd class="macro-args">&lt;dropcap letter&gt; &lt;number of lines to drop&gt; [ COND &lt;percentage&gt; | EXT &lt;percentage&gt; ]</kbd>
+</div>
+
+<p>
+The first two arguments to DROPCAP are the letter you want to be the
+<a href="definitions.html#dropcap">drop cap</a>
+and the number of lines you want it to drop. By default, mom uses
+the current family and font for the drop cap.
+</p>
+
+<p>
+The optional argument (<kbd>COND</kbd> or <kbd>EXT</kbd>) indicates
+that you want the drop cap condensed (narrower) or extended (wider).
+If you use <kbd class="bold">COND</kbd> or <kbd>EXT</kbd>, you must
+follow the argument with the percentage of the letter&#8217;s normal
+width you want it condensed or extended. No percent sign
+(<kbd>%</kbd>) is required.
+</p>
+
+<p>
+Mom will do her very best to get the drop cap to line up with the
+first line of text indented beside it, then set the correct number
+of indented lines, and restore your left margin when the number of
+drop cap lines has been reached.
+</p>
+
+<p>
+Beginning a paragraph with a drop cap &#8220;T&#8221; looks like this:
+<br/>
+<span class="pre">
+ .DROPCAP T 3 COND 90
+ he thousand injuries of Fortunato I had borne as best I
+ could, but when he ventured upon insult, I vowed revenge.
+ You who so well know the nature of my soul will not suppose,
+ however, that I gave utterance to a threat...
+</span>
+</p>
+
+<p>
+The drop cap, slightly condensed but in the current family and font,
+will be three lines tall, with whatever text fills those three
+lines indented to the right of the letter. The remainder of the
+paragraph&#8217;s text will revert to the left margin.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+When using the
+<a href="docprocessing.html#docprocessing">document processing macro</a>
+<a href="docelement.html#pp">PP</a>,
+DROPCAP only works
+</p>
+<ul style="margin-top: -1em; margin-bottom: -.5em;">
+ <li>with initial paragraphs (i.e. at the start of the document,
+ or after
+ <a href="docelement.html#heading">HEADING</a>),</li>
+ <li>when <kbd>.DROPCAP</kbd> comes immediately after <kbd>.PP</kbd>,</li>
+ <li>the
+ <a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+ is TYPESET.</li>
+</ul>
+<p>
+If these conditions aren&#8217;t met, DROPCAP is silently ignored.
+</p>
+
+<p class="tip-bottom" style="margin-top: -1em;">
+<span class="additional-note">Additional note:</span>
+If you have dropcaps after
+<a href="docelement.html#heading">HEADING</a>s,
+you must increase the <kbd>NEEDS</kbd> argument to
+<a href="docelement.html#heading-style">HEADING_STYLE</a>
+to match the number of dropcap lines. For example, assuming
+dropcaps that are three lines tall:
+<br/>
+<span class="pre-in-pp">
+ .HEADING_STYLE 1 NEEDS 3
+</span>
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Warning:</span>
+DROPCAP puts a bit of a strain on resource-challenged systems. If
+you have such a system and use drop caps extensively in a document,
+be prepared for a wait while mom does her thing.
+</p>
+</div>
+
+<h3 id="dropcap-support" class="docs control-macros-header">Support macros for DROPCAP</h3>
+<p>
+Drop caps are the bane of most typesetters&#8217; existence.
+It&#8217;s very difficult to get the size of the drop cap right
+for the number of drop lines, especially if the drop cap is in a
+different family from the prevailing family of running text. Not
+only that, but there&#8217;s the gutter around the drop cap to take
+into account, plus the fact that the letter may be too wide or too
+narrow to look anything but odd or misplaced.
+</p>
+
+<p>
+Mom solves the last of these problems with the <kbd>COND</kbd> and
+<kbd>EXT</kbd> arguments. The rest she solves with macros that
+change the default behaviour of DROPCAP, namely
+</p>
+<ul class="no-enumerator" style="margin-top: -.5em; margin-left: -.5em;">
+ <li><a href="#dropcap-family">DROPCAP_FAMILY</a></li>
+ <li><a href="#dropcap-font">DROPCAP_FONT</a></li>
+ <li><a href="#dropcap-color">DROPCAP_COLOR</a></li>
+ <li><a href="#dropcap-adjust">DROPCAP_ADJUST</a></li>
+ <li><a href="#dropcap-gutter">DROPCAP_GUTTER</a></li>
+</ul>
+
+<p style="margin-top: -.5em;">
+These macros must, of course, come before you invoke DROPCAP.
+</p>
+
+<h3 id="dropcap-family" class="control-macro">&bull;&nbsp;DROPCAP_FAMILY</h3>
+<p style="margin-left: .66em;">
+Set the drop cap family by giving DROPCAP_FAMILY the name of the
+family you want, e.g.
+<br/>
+<span class="pre-in-pp">
+ .DROPCAP_FAMILY H
+</span>
+which will set the family to Helvetica for the drop cap only.
+</p>
+
+<h3 id="dropcap-font" class="control-macro">&bull;&nbsp;DROPCAP_FONT</h3>
+<p style="margin-left: .66em;">
+Set the drop cap font by giving DROPCAP_FONT the name of the font
+you want, e.g.
+<br/>
+<span class="pre-in-pp">
+ .DROPCAP_FONT I
+</span>
+which will set the font to italic for the drop cap only.
+</p>
+
+<h3 id="dropcap-adjust" class="control-macro">&bull;&nbsp;DROPCAP_ADJUST</h3>
+<p style="margin-left: .66em;">
+If the size mom calculates for the drop cap isn&#8217;t precisely
+what you want, you can increase or decrease it with DROPCAP_ADJUST,
+like this: e.g.
+<br/>
+<span class="pre-in-pp">
+ .DROPCAP_ADJUST +1
+</span>
+or
+<br/>
+<span class="pre">
+ .DROPCAP_ADJUST -.75
+</span>
+</p>
+
+<p style="margin-left: .66em;">
+DROPCAP_ADJUST only understands
+<a href="definitions.html#picaspoints">points</a>,
+therefore do not append any
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to the argument. And always be sure to prepend the plus or
+minus sign, depending on whether you want the drop cap larger or
+smaller.
+</p>
+
+<h3 id="dropcap-color" class="control-macro">&bull;&nbsp;DROPCAP_COLOR</h3>
+<p style="margin-left: .66em;">
+If you&#8217;d like your drop cap colourized, simply invoke
+<kbd>.DROPCAP_COLOR&nbsp;&lt;color&gt;</kbd> with the name of a
+colour you&#8217;ve already created (&#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+Only the drop cap will be colourized; all other text will remain at
+the current colour default (usually black).
+</p>
+
+<h3 id="dropcap-gutter" class="control-macro">&bull;&nbsp;DROPCAP_GUTTER</h3>
+<p style="margin-left: .66em;">
+By default, mom puts three points of space between the drop cap
+and the text indented beside it. If you want another value, use
+DROPCAP_GUTTER (with a unit of measure), like this:
+<br/>
+<span class="pre-in-pp">
+ .DROPCAP_GUTTER 6p
+</span>
+</p>
+
+<!-- -\*[SUP]- -->
+
+<div class="macro-id-overline">
+<h3 id="sup" class="macro-id">Superscript</h3>
+</div>
+
+<div class="box-macro-args">
+Inlines: <kbd>\*[SUP]...\*[SUPX]</kbd>
+</div>
+
+<p>
+Superscripts are accomplished
+<a href="definitions.html#inlines">inline</a>.
+Whenever you need one, typically for numerals, all you need
+to do is surround the superscript with the inlines above.
+<kbd><span class="nobr">\*[SUP]</span></kbd> begins superscripting;
+<kbd><span class="nobr">\*[SUPX]</span></kbd> turns it off.
+</p>
+
+<p id="cond-or-ext-sup">
+If your running type is
+<a href="typesetting.html#cond-inline">pseudo-condensed</a>
+or
+<a href="typesetting.html#ext-inline">pseudo-extended</a>
+and you want your superscripts to be equivalently pseudo-condensed
+or -extended, use
+<br/>
+<kbd><span class="nobr">\*[CONDSUP]...\*[CONDSUPX]</span></kbd> or
+<kbd><span class="nobr">\*[EXTSUP]...\*[EXTSUPX]</span></kbd>.
+</p>
+
+<p>
+The superscript inlines are primarily used by the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+for automatic generation of numbered footnotes. However, you may
+find them useful for other purposes.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom does a pretty fine job of making superscripts look good in any
+font and at any size. If you&#8217;re fussy, though (and I am),
+about precise vertical placement, kerning, weight, size, and so on,
+you may want to roll your own solution.
+</p>
+</div>
+
+<h3 id="sup-raise" class="docs">SUPERSCRIPT RAISE AMOUNT</h3>
+<p>
+By default, mom raises superscripts 1/3 of an
+<a href="definitions.html#em">em</a>
+above the baseline. If you&#8217;re not happy with this default,
+you can change it by invoking SUPERSCRIPT_RAISE_AMOUNT with the
+amount you want them raised. A
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+must be appended directly to the amount. Thus, if you want
+superscripts raised by 3
+<a href="definitions.html#picaspoints">points</a>
+instead of 1/3 em, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .SUPERSCRIPT_RAISE_AMOUNT 3p
+</span>
+and all subsequent superscripts would be raised by 3 points.
+</p>
+
+<!-- -CENTER BLOCK- -->
+
+<div class="macro-id-overline">
+<h3 id="center-block" class="macro-id">Centre blocks of type</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CENTER_BLOCK</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+Blocks of type sometimes need to be centred on the page with their quad
+direction (left, centre, right) left intact. The
+document processing macros
+<a href="docelement.html#quote">QUOTE</a>
+and
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>
+take care of this automatically, but there are other situations
+where you may want to centre blocks of type. An example might be
+left-quadded
+<a href="docelement.html#list-intro">nested lists</a>.
+</p>
+
+<p>
+Whenever you want to centre a block of type on the page, surround it
+with <kbd>.CENTER_BLOCK/.CENTER_BLOCK OFF</kbd> (or <kbd>QUIT</kbd>,
+<kbd>X</kbd>, etc).
+</p>
+
+<div class="macro-id-overline">
+<h3 id="left-hang" class="macro-id">Hanging characters</h3>
+</div>
+<br/>
+<div class="box-macro-args">
+Macro: <b>LEFT_HANG</b> <kbd class="macro-args">&lt;character&gt; [ &lt;gutter&gt;</kbd> ]
+</div>
+<p class="requires">
+&bull;&nbsp;left-hung characters
+</p>
+
+<div class="box-macro-args" style="margin-top: 1em">
+Inline: <b>\*[HANG <kbd class="macro-args">&lt;character&gt;</kbd>]</b>
+</div>
+<p class="requires">
+&bull;&nbsp;right-hung characters
+</p>
+
+<p>
+Hung characters, frequently punctuation, fall outside the left or
+right margin. Their purpose is usually to fine-tune justification.
+Consider the following:
+</p>
+
+<table style="margin-left: 3%; margin-right: 6%; text-align: justify">
+<tr>
+<td style="padding-right: 1em">
+&#8220;Play the man, Master Ridley; we
+shall this day light such a candle,
+by God's grace, in England, as I
+trust shall never be put out.&#8221;
+</td>
+<td>
+&nbsp;&nbsp;
+</td>
+<td style="margin-right: 0; padding-right: 0">
+&#8220;
+<br/>
+<br/>
+<br/>
+<br/>
+</td>
+<td style="margin-left: 0; padding-left: 0">
+Play the man, Master Ridley; we
+shall this day light such a candle,
+by God's grace, in England, as I
+trust shall never be put out.&#8221;</td>
+</tr>
+</table>
+
+<p>
+In the right hand example, the opening double-quote hangs outside
+the left margin, creating a uniform left margin for the text.
+</p>
+
+<h4 class="docs">Left hung characters</h4>
+
+<p>
+LEFT_HANG hangs its first argument, the character to be hung, to
+the left of the left margin. The optional second argument lets you
+specify an amount of space to insert between the hung character and
+the text.
+</p>
+
+<p>
+Input text after LEFT_HANG must begin with the character to be hung
+PLUS a
+<a href="inlines.html#inline-horizontal-mom">horizontal motion</a>
+corresponding to <kbd>&lt;gutter&gt;</kbd> if one was given.
+If the hung character is a left double-quote, <kbd>\[lq]</kbd>
+must be used as the argument to LEFT_HANG and the usual keyboard
+double-quote (<kbd>"</kbd>) entered as the input text so as not to
+confuse
+<a href="goodies.html#smartquotes">SMARTQUOTES</a>
+The following example demonstrates:
+<br/>
+<span class="pre-in-pp">
+ .LEFT_HANG \[lq] 1p
+ "\*[FWD 1p]This line will have its opening double-quote
+ plus one point of space hung outside the left margin."
+</span>
+</p>
+
+<p style="margin-top: -1em">
+Note that what follows LEFT_HANG must be an input line and therefore
+it cannot be used to left-hang a
+<a href="docelement.html#heading">HEADING</a>
+character.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">Important:</span>
+Versions of mom lower than 2.5_a that included LEFT_HANG required
+that the character and its gutter be entered as a single,
+concatenated argument, using horizontal motions to establish the
+gutter
+(e.g.
+<a href="inlines.html#inline-horizontal-mom">FWD</a>,
+<a href="inlines.html#inline-horizontal-mom">BCK</a>).
+Documents created with versions prior to 2.5_a may have to be
+updated.
+</p>
+</div>
+
+<h4 class="docs">Right hung characters</h4>
+
+<p>
+The <kbd>\*[HANG&nbsp;c]</kbd> inline escape hangs its argument outside
+the right margin of justified or quad right copy. The argument may
+be a single character, or a single character preceded by a
+horizontal motion, effectively establishing a gutter between the
+right margin and the hung character:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: .25em">
+ This line will have its closing period hung outside
+ the right margin with a one point gutter\*[HANG \*[FWD 1p].]
+</span>
+If the hung character is a right double-quote, <kbd>"\[rq]"</kbd>
+must be used as the argument (that is, the <kbd>\[rq]</kbd>
+character surrounded by double-quotes). The double-quotes are
+required for all special characters of the form
+<kbd style="whitespace: nowrap">\[name]</kbd>.
+Horizontal motion, if any, must fall inside the double-quotes:
+<br/>
+<span class="pre-in-pp">
+ ...and they all lived happily ever after.\*[HANG "\*[FWD 1p]\[rq]"]
+</span>
+</p>
+
+<p>
+If the hung character is a hyphen,
+<kbd style="whitespace: nowrap"><span class="nobr">\*[HANG&nbsp;-]</span></kbd>
+must come at the end of an
+<a href="definitions.html#inputline">input line</a>.
+This restriction does not apply to other characters, which may come
+anywhere in an input line provided that, on output, the line breaks
+at the point you introduced the hung character.
+</p>
+
+<p>
+For the exceptionally fussy, <kbd>\*[HANG]</kbd> may also be used to
+improve visual centring; when text is centred, <kbd
+style="whitespace: nowrap">\*[HANG&nbsp;c]</kbd>
+hangs the character to the right of the centred line instead of the
+margin.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="inlines.html#top">Next: Inline escapes</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/graphical.html b/contrib/mom/momdoc/graphical.html
new file mode 100644
index 0000000..0f373b7
--- /dev/null
+++ b/contrib/mom/momdoc/graphical.html
@@ -0,0 +1,689 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Graphical Objects</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="docprocessing.html#top">Next: Document processing</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Graphical objects</h1>
+
+<div style="text-align: center;">
+<ul class="no-enumerator" style="margin-left: -2.5em;">
+ <li><a href="#intro-graphical">Introduction to graphical objects</a></li>
+ <li><a href="#behaviour">Graphical objects behaviour</a></li>
+ <li><a href="#order">Order of arguments</a></li>
+ <li><a href="#index-graphical">Index of graphical objects macros</a></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="intro-graphical" class="docs">Introduction to graphical objects</h2>
+
+<p>
+Groff has a number of
+<a href="definitions.html#inlines">inline escapes</a>
+for drawing rules, polygons, ellipses and splines. All begin with
+<kbd>\D</kbd> (presumably for &#8220;Draw&#8221;) and are documented
+in the groff info manual:
+<br/>
+<span class="pre-in-pp">
+ info groff \D
+</span>
+The escapes allow you to draw just about any simple graphical object
+you can think of, but owing to their syntax they&#8217;re not always easy
+to read, which can make tweaking them difficult. Additionally,
+while they perform in a <i>consistent</i> manner, they don&#8217;t
+always perform in an <i>expected</i> manner.
+</p>
+
+<p>
+Experience shows that the most common graphical elements typesetters
+need are rules (horizontal and vertical), boxes, and circles (or
+ellipses). For this reason, mom provides macros
+to draw these objects in an easy-to-understand way; the results are
+predictable, and mom&#8217;s syntax makes fixes or tweaks
+painless.
+</p>
+
+<p id="graphical-example">
+For example, if you want to draw a 2-inch square outline box at the left
+margin using groff&#8217;s <kbd>\D</kbd> escapes, it looks like this:
+<br/>
+<span class="pre-in-pp">
+ back up
+ by
+ weight
+ +-------+
+ | |
+ \D't 500'\h'-500u'\D'p 2i 0 0 2i -2i 0 0 -2i'
+ | | | |
+ +-------+ +------------------------+
+ set rule draw box, 1 line at a time
+ weight
+</span>
+
+Obviously, this isn&#8217;t very efficient for something as simple as a
+box.
+</p>
+
+<p>
+Here&#8217;s the same box, drawn with mom&#8217;s box drawing
+macro
+<kbd><a href="#dbx">DBX</a></kbd>:
+<br/>
+<span class="pre-in-pp">
+ left margin indent--+ +--box width
+ | |
+ .DBX .5 0 2i 2i
+ | |
+ rule weight--+ +--box depth
+ (in points)
+</span>
+</p>
+
+<p>
+Mom&#8217;s graphical object macros allow&mdash;in fact,
+require&mdash;giving the rule weight (&#8220;thickness&#8221;) for
+the object (or saying that you want it filled), an indent from the
+left margin where the object begins, the dimensions of the object,
+and optionally a colour for the object.
+</p>
+
+<p>
+There are no defaults for the arguments to mom&#8217;s graphical
+object macros, which means you must supply the arguments every time
+you invoke them.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+As stated above, mom only provides macros for commonly-used
+graphical objects (rules, boxes, circles). More complex objects
+(polygons, non-straight lines, splines) must be drawn using
+groff&#8217;s <kbd>\D</kbd> escapes.
+</p>
+</div>
+
+<h3 id="behaviour" class="docs">Graphical object behaviour</h3>
+
+<p>
+Mom&#8217;s graphical object macros all behave in the following,
+carved-in-stone ways:
+</p>
+<ol style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>Objects are drawn from the
+ <a href="definitions.html#baseline">baseline</a>
+ down, including horizontal rules.</li>
+ <li>Objects begin precisely at the left indent supplied as
+ an argument to the macro.</li>
+ <li>Objects are drawn from left to right.</li>
+ <li>Enclosed objects (boxes, circles) are drawn from the
+ perimeter <i>inward</i>.</li>
+ <li>Objects return to their horizontal/vertical point of origin.</li>
+</ol>
+
+<p>
+The consistency means that once you&#8217;ve mastered the very
+simple order of arguments that applies to invoking graphical
+object macros, you can draw objects with full confidence that you
+know exactly where they&#8217;re placed and how much room they
+occupy. Furthermore, because all return to their point of origin,
+you&#8217;ll know exactly where you are on the page.
+</p>
+
+<h3 id="order" class="docs">Order of arguments</h3>
+
+<p>
+The order of arguments to the graphical object macros is the same
+for every macro:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>the rule weight
+ <ul style="margin-left: -.75em;">
+ <li>the single word <kbd>SOLID</kbd> may be used in place
+ of <kbd>weight</kbd> if you want boxes or circles filled</li>
+ </ul></li>
+ <li>the indent from the current left margin at which to begin
+ the object
+ </li>
+ <li>the width of the object if applicable</li>
+ <li>the depth of the object if applicable</li>
+ <li>the colour of the object (optional)</li>
+</ul>
+
+<div class="macro-list-container">
+<h3 id="index-graphical" class="macro-list">Graphical objects macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#drh">DRH</a>
+ &ndash; horizontal rules</li>
+ <li><a href="#drv">DRV</a>
+ &ndash; vertical rules</li>
+ <li><a href="#dbx">DBX</a>
+ &ndash; box</li>
+ <li><a href="#dcl">DCL</a>
+ &ndash; circles or ellipses</li>
+</ul>
+</div>
+
+<!-- -DRH- -->
+
+<div class="macro-id-overline">
+<h3 id="drh" class="macro-id">Drawing horizontal rules</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DRH</b> <kbd class="macro-args">&lt;none&gt; | &lt;weight&gt; &lt;indent&gt; &lt;width&gt; [&lt;colour&gt;]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;
+the argument to <kbd class="normal">&lt;weight&gt;</kbd> is in
+<a href="definitions.html#picaspoints" class="normal">points</a>,
+but do <span class="normal">not</span> append the
+<a href="definitions.html#unitsofmeasure">unit of measure</a>,
+<kbd class="normal">p</kbd>
+<br/>
+&bull;&nbsp;
+<kbd class="normal">&lt;indent&gt;</kbd>
+and
+<kbd class="normal">&lt;width&gt;</kbd>
+require a unit of measure
+<br/>
+&bull;&nbsp;
+arithmetic expressions to
+<kbd class="normal">&lt;indent&gt;</kbd>
+and
+<kbd class="normal">&lt;width&gt;</kbd>
+must be surrounded by parentheses
+</p>
+
+<p>
+If all you want is to draw a rule from your current left
+margin to your current right margin (in other words, a &quot;full
+measure&quot; rule), you may invoke <kbd>.DRH</kbd> without any
+arguments.
+</p>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+DRH is the only graphical object macro that may be invoked
+without arguments. The weight (&#8220;thickness&#8221;) of
+the rule is determined by the argument you last gave the
+macro
+<a href="inlines.html#rule-weight">RULE_WEIGHT</a>.
+DRH, used this way, is exactly equivalent to entering the
+<a href="definitions.html#inlines">inline escape</a>
+<a href="inlines.html#inline-rule-mom"><kbd><span class="nobr">\*[RULE]</span></kbd></a>.
+</p>
+</div>
+
+<p style="margin-top: -.5em;">
+To draw horizontal rules of a specified width, you must, at
+a minimum, supply DRH with the arguments <kbd>weight,</kbd>
+<kbd>indent</kbd> (measured from the current left margin) and
+<kbd>width</kbd>.
+</p>
+
+<p>
+Optionally, you may give a <kbd>color</kbd> argument. The colour
+may be either one defined with
+<a href="color.html#newcolor">NEWCOLOR</a>,
+or a named X-color initialized with
+<a href="color.html#xcolor">XCOLOR</a>,
+or an X-color alias (again, initialized with XCOLOR).
+</p>
+
+<p>
+Say, for example, you want to draw a 1-1/4 point horizontal rule
+that starts 2 picas from the current left margin and runs for 3
+inches. To do so, you&#8217;d invoke <kbd>.DRH</kbd> like this:
+<br/>
+<span class="pre-in-pp">
+ weight width
+ | |
+ .DRH 1.25 2P 3i
+ |
+ indent
+</span>
+(Note that the rule weight argument, which is expressed in points,
+must not have the unit of measure <kbd>p</kbd> appended to it.)
+</p>
+
+<p>
+If, in addition, you want the rule blue:
+<br/>
+<span class="pre-in-pp">
+ .DRH 1.25 2P 3i blue
+</span>
+</p>
+
+<h3 class="docs">How mom handles the positioning of horizontal rules</h3>
+
+<p>
+Horizontal rules are drawn from left to right, and from the baseline
+down. &#8220;From the baseline down&#8221; means that if you request
+a rule with a weight of four points, the four points of rule fall
+entirely below the baseline.
+</p>
+
+<p>
+Furthermore, after the rule is drawn, mom returns you to the current
+left margin, at the same vertical position on the page as when DRH
+was invoked. In other words, DRH causes no movement on the page,
+either horizontal or vertical.
+</p>
+
+<!-- -DRV- -->
+
+<div class="macro-id-overline">
+<h3 id="drv" class="macro-id">Drawing vertical rules</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DRV</b> <kbd class="macro-args">&lt;weight&gt; &lt;indent&gt; &lt;depth&gt; [&lt;colour&gt;]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;
+the argument to <kbd class="normal">&lt;weight&gt;</kbd> is in
+<a href="definitions.html#picaspoints" class="normal">points</a>,
+but do <span class="normal">not</span> append the
+<a href="definitions.html#unitsofmeasure">unit of measure</a>,
+<kbd class="normal">p</kbd>
+<br/>
+&bull;&nbsp;
+<kbd class="normal">&lt;indent&gt;</kbd>
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+require a unit of measure
+<br/>
+&bull;&nbsp;
+arithmetic expressions to
+<kbd class="normal">&lt;indent&gt;</kbd>
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+must be surrounded by parentheses
+</p>
+
+<p>
+To draw vertical rules of a specified depth, you must, at
+a minimum, supply DRV with the arguments <kbd>weight,</kbd>
+<kbd>indent</kbd> (measured from the current left margin) and
+<kbd>depth</kbd>.
+</p>
+
+<p>
+Optionally, you may give a <kbd>color</kbd> argument. The colour
+may be either one defined with
+<a href="color.html#newcolor">NEWCOLOR</a>,
+or a named X-color initialized with
+<a href="color.html#xcolor">XCOLOR</a>,
+or an X-color alias (again, initialized with XCOLOR).
+</p>
+
+<p>
+Say, for example, you want to draw a 3/4-point vertical rule that
+starts 19-1/2 picas from the current left margin and has a depth of
+6 centimetres. To do so, you&#8217;d invoke <kbd>.DRV</kbd> like
+this:
+<br/>
+<span class="pre-in-pp">
+ weight depth
+ | |
+ .DRV .75 19P+6p 6c
+ |
+ indent
+</span>
+(Note that the rule weight argument, which is expressed in points,
+must not have the unit of measure <kbd>p</kbd> appended to it.)
+</p>
+
+<p>
+If, in addition, you want the rule red:
+<br/>
+<span class="pre-in-pp">
+ .DRV .75 19P+6p 6c red
+</span>
+</p>
+
+<h3 class="docs">How mom handles the positioning of vertical rules</h3>
+
+<p>
+Vertical rules are drawn from the baseline down, and from left to
+right. &quot;Left to right&quot; means that if you request a rule
+with a weight of four points, the four points of rule fall entirely
+to the right of the indent given to DRV.
+</p>
+
+<p>
+Furthermore, after the rule is drawn, mom returns you to the current
+left margin, at the same vertical position on the page as when DRV
+was invoked. In other words, DRV causes no movement on the page,
+either horizontal or vertical.
+</p>
+
+<!-- -DBX- -->
+
+<div class="macro-id-overline">
+<h3 id="dbx" class="macro-id">Drawing boxes</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DBX</b> <kbd class="macro-args">&lt;weight&gt;|SOLID &lt;indent&gt; &lt;width&gt;|FULL_MEASURE &lt;depth&gt; [&lt;color&gt;]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;
+the argument to <kbd class="normal">&lt;weight&gt;</kbd> is in
+<a href="definitions.html#picaspoints" class="normal">points</a>,
+but do <span class="normal">not</span> append the
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+<kbd class="normal">p</kbd>
+<br/>
+&bull;&nbsp;<kbd class="normal">&lt;indent&gt;</kbd>,
+<kbd class="normal">&lt;width&gt;</kbd>,
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+require a unit of measure
+<br/>
+&bull;&nbsp;
+arithmetic expressions to
+<kbd class="normal">&lt;indent&gt;</kbd>,
+<kbd class="normal">&lt;width&gt;</kbd>,
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+must be enclosed in parentheses.
+</p>
+
+<p>
+To draw boxes you must, at a minimum, supply DBX with the arguments
+<kbd>weight</kbd> or <kbd>SOLID</kbd>, <kbd>indent</kbd>,
+<kbd>width</kbd> or <kbd>FULL_MEASURE</kbd>, and <kbd>depth</kbd>.
+</p>
+
+<p>
+<kbd>weight</kbd> is the rule weight of outlined boxes, given in
+points but without the
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+<kbd>p</kbd> appended.
+</p>
+
+<p>
+If <kbd>SOLID</kbd> is given as the first argument, the box is
+filled rather than outlined and no <kbd>weight</kbd> argument should
+be supplied.
+</p>
+
+<p>
+<kbd>indent</kbd> is measured from the current left margin. If
+<kbd>FULL_MEASURE</kbd> is given, <kbd>indent</kbd> should be set to
+&#8220;0&#8221;.
+</p>
+
+<p>
+<kbd>width</kbd> is the width of the box with a
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+appended, caclculated from <kbd>indent</kbd> argument.
+</p>
+
+<p>
+If <kbd>FULL_MEASURE</kbd> is given instead of <kbd>width</kbd>,
+it circumvents having to calculate the width when left and/or right
+indents are in effect; mom draws the box from the current left
+margin to the current right margin. When no indents are in effect,
+<kbd>FULL_MEASURE</kbd> or <kbd>\n[.l]u</kbd>&#8212;the groff
+way of saying &#8220;the current line length&#8221;&#8212;have the
+same effect.
+</p>
+
+<p>
+Optionally, you may give a <kbd>color</kbd> argument. The colour
+may be either one defined with
+<a href="color.html#newcolor">NEWCOLOR</a>,
+or a named X-color initialized with
+<a href="color.html#xcolor">XCOLOR</a>,
+or an X-color alias (again, initialized with XCOLOR).
+</p>
+
+<p>
+Say, for example, you want to draw a 1/2 point outline box that
+starts one inch from the current left margin and has the dimensions
+12 picas x 6 picas. To do so, you&#8217;d invoke <kbd>.DBX</kbd>
+like this:
+<br/>
+<span class="pre-in-pp">
+ indent depth
+ | |
+ .DBX .5 1i 12P 6P
+ | |
+ weight width
+</span>
+(Note that the box weight argument, which is expressed in points,
+must not have the unit of measure <kbd>p</kbd> appended to it.)
+</p>
+
+<p>
+If you want the same box, but solid (&#8220;filled&#8221;) rather
+than drawn as an outline:
+<br/>
+<span class="pre-in-pp">
+ .DBX SOLID 1i 12P 6P
+</span>
+Additionally, if you want the box green:
+<br/>
+<span class="pre-in-pp">
+ .DBX .5 1i 12P 6P green
+</span>
+or
+<span class="pre-in-pp">
+ .DBX SOLID 1i 12P 6P green
+</span>
+</p>
+
+<h3 class="docs">How mom handles the positioning of boxes</h3>
+
+<p>
+Boxes are drawn from the baseline down, from left to right, and
+from the perimeter <i>inward</i>. &#8220;From the perimeter
+inward&#8221; means that if you request a box weight of six points,
+the 6-point rules used to draw the outline of the box fall entirely
+<i>within</i> the dimensions of the box.
+</p>
+
+<p>
+Furthermore, after the box is drawn, mom returns you to the current
+left margin, at the same vertical position on the page as when DBX
+was invoked. In other words, DBX causes no movement on the page,
+either horizontal or vertical.
+</p>
+
+<!-- -DCL- -->
+
+<div class="macro-id-overline">
+<h3 id="dcl" class="macro-id">Drawing circles (ellipses)</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>DCL</b> <kbd class="macro-args">&lt;weight&gt;|SOLID &lt;indent&gt; &lt;width&gt;|FULL_MEASURE &lt;depth&gt; [&lt;color&gt;]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;
+the argument to <kbd class="normal">&lt;weight&gt;</kbd> is in
+<a href="definitions.html#picaspoints" class="normal">points</a>,
+but do <span class="normal">not</span> append the
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+<kbd class="normal">p</kbd>
+<br/>
+&bull;&nbsp;<kbd class="normal">&lt;indent&gt;</kbd>,
+<kbd class="normal">&lt;width&gt;</kbd>,
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+require a unit of measure
+<br/>
+&bull;&nbsp;
+arithmetic expressions to
+<kbd class="normal">&lt;indent&gt;</kbd>,
+<kbd class="normal">&lt;width&gt;</kbd>,
+and
+<kbd class="normal">&lt;depth&gt;</kbd>
+must be enclosed in parentheses.
+</p>
+
+<p>
+To draw circles you must, at a minimum, supply DCL with the arguments
+<kbd>weight</kbd> or <kbd>SOLID</kbd>, <kbd>indent</kbd>,
+<kbd>width</kbd> or <kbd>FULL_MEASURE</kbd>, and <kbd>depth</kbd>.
+</p>
+
+<p>
+<kbd>weight</kbd> is the rule weight of outlined circles, given in
+points but without the unit of measure
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+<kbd>p</kbd> appended.
+</p>
+
+<p>
+If <kbd>SOLID</kbd> is given as the first argument, the circle is
+filled rather than outlined and no <kbd>weight</kbd> argument should
+be supplied.
+</p>
+
+<p>
+<kbd>indent</kbd> is measured from the current left margin. If
+<kbd>FULL_MEASURE</kbd> is given, <kbd>indent</kbd> should be set to
+&#8220;0&#8221;.
+</p>
+
+<p>
+<kbd>width</kbd> is the width of the circle with a
+<a href="definitions.html#unitsofmeasure">unit of measure</a>
+appended, caclculated from <kbd>indent</kbd> argument.
+</p>
+
+<p>
+If <kbd>FULL_MEASURE</kbd> is given instead of <kbd>width</kbd>,
+it circumvents having to calculate the width when left and/or right
+indents are in effect; mom draws the circle from the current left
+margin to the current right margin. When no indents are in effect,
+<kbd>FULL_MEASURE</kbd> or <kbd>\n[.l]u</kbd>&#8212;the groff
+way of saying &#8220;the current line length&#8221;&#8212;have the
+same effect.
+</p>
+
+<p>
+Optionally, you may give a <kbd>color</kbd> argument. The colour
+may be either one defined with
+<a href="color.html#newcolor">NEWCOLOR</a>,
+or a named X-color initialized with
+<a href="color.html#xcolor">XCOLOR</a>,
+or an X-color alias (again, initialized with XCOLOR).
+</p>
+
+<p>
+Say, for example, you want to draw a 1/2 point outline circle that
+starts one inch from the current left margin and has the dimensions
+12 picas x 6 picas. To do so, you&#8217;d invoke <kbd>.DCL</kbd>
+like this:
+<br/>
+<span class="pre-in-pp">
+ indent depth
+ | |
+ .DCL .5 1i 12P 6P
+ | |
+ weight width
+</span>
+(Note that the circle weight argument, which is expressed in points,
+must not have the unit of measure <kbd>p</kbd> appended to it.)
+</p>
+
+<p>
+If you want the same circle, but solid (&#8220;filled&#8221;) rather
+than drawn as an outline:
+<br/>
+<span class="pre-in-pp">
+ .DCL SOLID 1i 12P 6P
+</span>
+Additionally, if you want the circle green:
+<br/>
+<span class="pre-in-pp">
+ .DCL .5 1i 12P 6P green
+</span>
+or
+<span class="pre-in-pp">
+ .DCL SOLID 1i 12P 6P green
+</span>
+</p>
+
+
+<h3 class="docs">How mom handles the positioning of circles (ellipses)</h3>
+
+<p>
+Circles (ellipses) are drawn from the baseline down, from left
+to right, and from the perimeter <i>inward</i>. &#8220;From the
+perimeter inward&#8221; means that if you request a circle weight of
+six points, the 6-point rule used to draw the outline of the circle
+or ellipse falls entirely <i>within</i> the dimensions of the
+circle or ellipse.
+</p>
+
+<p>
+Furthermore, after the circle is drawn, mom returns you to the
+current left margin, at the same vertical position on the page as
+when DCL was invoked. In other words, DCL causes no movement on the
+page, either horizontal or vertical.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="docprocessing.html#top">Next: Document processing</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/headfootpage.html b/contrib/mom/momdoc/headfootpage.html
new file mode 100644
index 0000000..1c11ab1
--- /dev/null
+++ b/contrib/mom/momdoc/headfootpage.html
@@ -0,0 +1,2341 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document processing, page headers/footers and pagination</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="rectoverso.html#top">Next: Recto/verso printing, collating</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Page headers/footers, pagination</h1>
+
+<div style="text-align: center;">
+<ul class="no-enumerator" style="margin-left: -2.5em;">
+ <li><a href="#headfootpage-intro">Introduction &ndash; VERY IMPORTANT; read me!</a></li>
+ <li> <a href="#pagination-note">An important note on pagination</a></li>
+ <li><a href="#description-general">General description of headers/footers</a></li>
+ <li><a href="#header-style">Default specs for headers/footers</a></li>
+ <li><a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="toc-doc-head-foot-page" class="docs" style="text-align: center;">Table of contents</h2>
+
+<h3 class="toc toc-docproc-header" style="margin-top: 1em;"><a class="header-link" href="#headfoot-management">Managing page headers and footers</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#headers">HEADERS</a> &ndash; on or off</li>
+ <li><a href="#footers">FOOTERS</a> &ndash; on or off</li>
+ <li><a href="#footer-on-first-page">FOOTER_ON_FIRST_PAGE</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#headfoot-control">Control macros for headers/footers</a></h3>
+ <ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#index-headfoot-control">Header/footer control macros and defaults</a>
+ <ul class="toc-docproc">
+ <li><a href="#hdrftr-strings">Header/footer strings</a>
+ <ul class="toc-docproc">
+ <li><a href="#reserved-strings">Using mom&#8217;s reserved strings in header/footer definitions</a> (TITLE, AUTHOR, etc.)</li>
+ </ul></li>
+ <li><a href="#hdrftr-style">Header/footer style</a>
+ <ul class="toc-docproc">
+ <li><a href="#hdrftr-style-global">Global changes</a></li>
+ <li><a href="#hdrftr-style-part">Part-by-part changes</a></li>
+ </ul></li>
+ <li><a href="#hdrftr-vertical">Vertical placement and spacing of headers/footers</a>
+ <ul class="toc-docproc">
+ <li><a href="#hdrftr-margin">HEADER_MARGIN&nbsp;/&nbsp;FOOTER_MARGIN</a>
+ <ul class="toc-docproc no-enumerator" style="margin-left: -2em;">
+ <li>&ndash;&nbsp;<a href="#footer-margin">Important: FOOTER_MARGIN and bottom margins</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#hdrftr-separator">The header/footer separator rule</a>
+ <ul class="toc-docproc">
+ <li><a href="#hdrftr-rule">HEADER_RULE</a> &ndash; on or off</li>
+ <li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a> &ndash; weight of the rule</li>
+ <li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a> &ndash; distance of rule from header/footer</li>
+ <li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a> &ndash; colour of the header/footer rule</li>
+ </ul></li>
+ </ul></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#userdef-hdrftr-rv">User-defined, single string recto/verso headers/footers</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#hdrftr-recto">HEADER_RECTO, HEADER_VERSO</a>
+ <ul style="margin-left: -.5em">
+ <li><a href="#userdef-hdrftr">User-defined, single string headers/footers (no recto/verso)</a></li>
+ <li><a href="#padding-hdrftr">Padding the header-recto/header-verso string</a></li>
+ </ul></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#headers-and-footers-intro">Headers and footers on the same page</a></h3>
+<h3 class="toc toc-docproc-header" style="margin-top: .75em;"><a class="header-link" href="#pagination-intro">Pagination</a></h3>
+<ul class="toc-docproc" style="margin-top: .5em;">
+ <li><a href="#index-pagination">Pagination macros</a></li>
+ <li><a href="#index-paginate-control">Pagination control macros and defaults</a></li>
+</ul>
+<h3 class="toc toc-docproc-header"><a class="header-link" href="#blank-pages">Inserting blank pages into a document</a></h3>
+
+<div class="rule-medium" style="margin-top: 1.5em;"><hr/></div>
+
+<h2 id="headfootpage-intro" class="macro-group">Managing page headers and footers</h2>
+
+<div id="headerfooter" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Because headers and footers are virtually identical, this
+documentation addresses itself only to headers. In all cases,
+unless otherwise noted, descriptions of headers describe footers as
+well.
+</p>
+
+<p class="tip-bottom">
+Furthermore, any
+<a href="definitions.html#controlmacro">control macro</a>
+that begins with HEADER_ may be used to control footers, simply by
+replacing HEADER_ with FOOTER_.
+</p>
+</div>
+
+<p style="margin-top: -.75em;">
+<a href="definitions.html#header">Headers</a>
+and
+<a href="definitions.html#footer">footers</a>,
+as defined in the section
+<a href="definitions.html#mom">Mom&#8217;s Document Processing Terms</a>,
+are those parts of a document that contain information about the document
+itself which appear in the margins either above or below
+<a href="definitions.html#running">running text</a>.
+They are, in all respects but two, identical. The differences are:
+</p>
+<ol style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>headers appear in the margin <i>above</i> running text while
+ footers appear in the margin <i>beneath</i> running text;
+ </li>
+ <li>the (optional) rule that separates headers from running
+ text appears <i>below</i> the header while
+ the (optional) rule that separates footers from running
+ text appears <i>above</i> the footer.
+ </li>
+</ol>
+
+<div id="pagination-note" class="box-tip" style="margin-top: 1.5em;">
+<p class="tip">
+<span class="note">Note:</span>
+While the single page number that mom generates in either the top
+or bottom margin above or below running text is technically a kind
+of header/footer, mom and this documentation treat it as a separate
+page element.
+</p>
+</div>
+
+<div id="author-note" class="box-tip">
+<p class="tip">
+<span class="note">Author&#8217;s note:</span>
+Left to their own devices (i.e. if you&#8217;re happy with the way
+mom does things by default), headers are something you never have to
+worry about. You can skip reading this section entirely. But if
+you want to change them, be advised that headers have more macros to
+control their appearance than any other document element. The text
+of this documentation becomes correspondingly dense at this point.
+</p>
+</div>
+
+<h3 id="description-general" class="docs">General description of headers/footers</h3>
+
+<p>
+Headers comprise three distinct parts: a left part, a centre part,
+and a right part. Each part contains text (a &#8220;string&#8221;)
+that identifies some aspect of the document as a whole.
+</p>
+
+<p>
+The left part (&#8220;header-left&#8221;) lines up with the
+document&#8217;s left margin. The centre part (&#8220;header
+centre&#8221;) is centred on the document&#8217;s line length.
+The right part (&#8220;header-right&#8221;) lines up with the
+document&#8217;s right margin. Not all parts need contain a string,
+and if you don&#8217;t want headers at all, you can turn them off
+completely.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note to groff experts:</span>
+Although mom&#8217;s headers resemble the three-part titles
+generated by <kbd>.tl</kbd>, they&#8217;re in no way related to it,
+nor based upon it. <kbd>.tl</kbd> is not used at all in mom.
+</p>
+</div>
+
+<p>
+Normally, mom fills headers with strings appropriate to the document
+type selected by
+<a href="docprocessing.html#doctype">DOCTYPE</a>,
+with the author left, the document title right, and chapter or
+document type information in the centre. You can, however, supply
+whatever strings you like&mdash;including page numbers&mdash;to go
+in any part of headers. What&#8217;s more, you can set the family,
+font, size, colour and capitalization style (caps, caps/lower-case,
+or smallcaps) for each header part individually.
+</p>
+
+<p>
+By default, mom prints a horizontal rule beneath headers to separate
+them visually from running text. In the case of footers, the rule
+is above. You can increase or decrease the space between the header
+and the rule if you like (with
+<kbd><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a></kbd>),
+or remove it completely.
+</p>
+
+<h3 id="header-style" class="docs">Default specs for headers/footers</h3>
+
+<p>
+Mom makes small type adjustments to each part of the header (left,
+centre, right) to achieve an aesthetically pleasing result. The
+defaults are listed below. (The strings mom puts by default in each
+part are explained in
+<a href="docprocessing.html#doctype">DOCTYPE</a>.)
+</p>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px; padding-bottom: 6px; text-align: center;">
+<i>Note:</i> Except for capitalization (all caps or caps/lower-case),
+these defaults apply only to
+<a href="docprocessing.html#printstyle">PRINTSTYLE&nbsp;<kbd>TYPESET</kbd></a>.
+</p>
+<span class="pre defaults">
+TYPE SPEC HEADER LEFT HEADER CENTER HEADER RIGHT
+--------- ----------- ------------- ------------
+Family document default document default document default
+Font roman italic roman
+Colour (black) (black) (black)
+All caps no no yes
+Size* -.5 (points) -.5 (points) -2 (points)
+ (-2 if all caps) (-2 if all caps) (-.5 if not all caps)
+
+*Relative to the point size of <a href="definitions.html#running">running text</a>
+</span>
+</div>
+
+<p style="margin-top: -1.5em;">
+You can, of course, change any of the defaults using the appropriate
+control macros. And should you wish to design headers from the
+ground up, mom has a special macro
+<a href="#hdrftr-plain">HEADER_PLAIN</a>
+that removes all type adjustments to headers. The
+type specs for running text are used instead, providing a simple
+reference point for any alterations you want to make to the family,
+font, size, and capitalization style of any header part.
+</p>
+
+<h3 id="vertical-spacing" class="docs">Vertical placement and spacing of headers/footers</h3>
+
+<p>
+As explained in the section,
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>,
+the top and bottom margins of a mom document are the vertical start
+and end positions of
+<a href="definitions.html#running">running text</a>,
+not the vertical positions of headers or footers, which, by definition,
+appear in the margins above (or below) running text.
+</p>
+
+<p>
+The vertical placement of headers is controlled by the macro
+<a href="#hdrftr-margin">HEADER_MARGIN</a>,
+which establishes the
+<a href="definitions.html">baseline</a>
+position of headers relative to the top edge of the page. The
+header rule, whose position is relative to the header itself, is
+controlled by a separate macro.
+</p>
+
+<p>
+FOOTER_MARGIN is the counterpart to HEADER_MARGIN, and establishes
+the baseline position of footers relative to the bottom edge of the
+page.
+</p>
+
+<p>
+The distance between headers and the start
+of running text can be controlled with the macro
+<a href="#hdrftr-gap">HEADER_GAP</a>,
+effectively making HEADER_MARGIN + HEADER_GAP the top margin of
+running text unless you give mom a literal top margin (with
+<a href="typesetting.html#t-margin">T_MARGIN</a>)
+or
+<a href="typesetting.html#page">PAGE</a>,
+in which case she ignores HEADER_GAP and begins the running text at
+whatever top margin you give.
+</p>
+
+<p>
+FOOTER_GAP and
+<a href="typesetting.html#b-margin">B_MARGIN</a>
+work similarly, except they determine where running text <i>ends</i>
+on the page. (See
+<a href="#footer-margin">Important &ndash; footer margin and bottom margins</a>
+for a warning about possible conflicts between the footer margin and
+the bottom margin.)
+</p>
+
+<p>
+Confused? Mom apologizes. It&#8217;s really quite simple. By
+default, mom sets headers <span class="nobr">4-1/2</span>
+<a href="definitions.html#picaspoints">picas</a>
+down from the top of the page and begins the running text 3 picas
+(the HEADER_GAP) beneath that, which means the effective top margin
+of the running text is <span class="nobr">7-1/2</span> picas (visually approx. 1
+inch). However, if you give mom a literal top margin (with
+<a href="typesetting.html#t-margin">T_MARGIN</a>),
+she ignores the HEADER_GAP and starts the running text at whatever
+top margin you give.
+</p>
+
+<p>
+Footers are treated similarly. Mom sets footers 3 picas up from the
+bottom of the page, and interrupts the processing of running text 3
+picas (the FOOTER_GAP) above that (again, visually approx. 1 inch).
+However, if you give mom a literal bottom margin (with
+<a href="typesetting.html#b-margin">B_MARGIN</a>),
+she ignores the FOOTER_GAP and interrupts the processing of running
+text at whatever bottom margin you give.
+</p>
+
+<p>
+If mom is paginating your document (she does, by default, at the
+bottom of each page), the vertical spacing and placement of page
+numbers, whether at the top or the bottom of the page, is managed
+exactly as if the page numbers were headers (or footers), and are
+controlled by the same macros. See
+<a href="#index-paginate-control">Pagination control</a>.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ======================================================================== -->
+
+<h2 id="headfoot-management" class="macro-group">Managing headers/footers</h2>
+
+<p>
+The following are the basic macros for turning
+<a href="definitions.html#header">headers</a>
+or
+<a href="definitions.html#footer">footers</a>
+on or off. They should be invoked prior to
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<p>
+By default, mom prints page headers. If you turn
+them off, she will begin the
+<a href="definitions.html#running">running text</a>
+on each page with a default top margin of 6
+<a href="definitions.html#picaspoints">picas</a>
+unless you have requested a different top margin (with
+<a href="typesetting.html#t-margin">T_MARGIN</a>)
+prior to
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<a href="#headers">HEADERS</a>
+and
+<a href="#footers">FOOTERS</a>
+are mutually exclusive. If headers are on, footers (but not
+bottom-of-page numbering) are automatically turned off. Equally,
+if footers are on, headers (but not top-of-page numbering) are
+automatically turned off. Thus, if you&#8217;d prefer footers in a
+document, you need only invoke
+<kbd><a href="#footers">.FOOTERS</a></kbd>;
+there&#8217;s no need to turn headers off first.
+</p>
+</div>
+
+<p style="margin-top: -.5em">
+If you need both headers and footers, there&#8217;s a special macro
+<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>
+that allows you to set it up.
+</p>
+
+<div class="macro-list-container">
+<h3 id="index-hdrftr" class="macro-list">Header/footer macros</h3>
+<ul class="macro-list">
+ <li><a href="#headers">HEADERS</a> &ndash; on or off</li>
+ <li><a href="#footers">FOOTERS</a> &ndash; on or off</li>
+ <li><a href="#footer-on-first-page">FOOTER_ON_FIRST_PAGE</a></li>
+ <li><a href="#userdef-hdrftr-rv">User-defined, single string recto/verso headers/footers</a>
+ <ul>
+ <li><a href="#hdrftr-rectoverso">HEADER_RECTO, HEADER_VERSO</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#userdef-hdrftr">User-defined, single string headers/footers (no recto/verso)</a></li>
+ </ul></li>
+ <li><a href="#reserved-strings">Using mom&#8217;s reserved strings in header/footer definitions</a>
+ (title, author, etc.)
+ </li>
+ </ul></li>
+ <li><a href="#headers-and-footers-intro">HEADERS_AND_FOOTERS</a> &ndash;
+ putting both headers and footers on document pages
+ </li>
+ <li><a href="#headfoot-control">Header and footer control macros</a></li>
+</ul>
+</div>
+
+<!-- -HEADERS- -->
+
+<div class="macro-id-overline">
+<h3 class="macro-id">Headers</h3>
+</div>
+
+<div id="headers" class="box-macro-args">
+Macro: <b>HEADERS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+<a href="definitions.html#header">Page headers</a>
+are on by default. If you don&#8217;t want them, turn them off by
+invoking <kbd>.HEADERS</kbd> with any argument (<kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...), e.g.
+<br/>
+<span class="pre-in-pp">
+ .HEADERS OFF
+</span>
+</p>
+
+<p>
+<b>NOTE:</b> HEADERS automatically
+disables
+<a href="definitions.html#footer">footers</a>
+but not the page numbers that normally appear at the bottom of the
+page. If you want both headers and footers, you must use the macro
+<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>.
+</p>
+
+<p>
+<b>ADDITIONAL NOTE:</b> If HEADERS are OFF, mom&#8217;s normal top
+margin for
+<a href="definitions.html#running">running text</a>
+(7.5
+<a href="definitions.html#picaspoints">picas</a>)
+changes to 6 picas (visually approx. 1 inch). This does NOT apply
+to the situation where footers have been explicitly turned on
+(with
+<kbd><a href="#footers">FOOTERS</a></kbd>).
+Explicitly invoking footers moves page numbering to the
+top of the page, where its placement and spacing are the same as
+for headers (i.e. the top margin of running text remains 7.5
+picas.)
+</p>
+
+<!-- -FOOTERS- -->
+
+<div class="macro-id-overline">
+<h3 id="footers" class="macro-id">Footers</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FOOTERS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+<a href="definitions.html#footer">Page footers</a>
+are off by default. If you want them instead of
+<a href="definitions.html#header">headers</a>,
+turn them on by invoking
+<kbd>.FOOTERS</kbd> without an argument, e.g.
+<br/>
+<span class="pre-in-pp">
+ .FOOTERS
+</span>
+FOOTERS automatically disables headers, and
+mom shifts the placement of page numbers from their
+normal position at page bottom to the top of the page.
+</p>
+
+<p>
+<b>NOTE:</b> If you want both headers and footers, you must use the
+macro
+<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>.
+</p>
+
+<p>
+<b>NOTE:</b> By default, when footers are on,
+mom does not print a page number on the first
+page of a document, nor on first pages after
+<a href="rectoverso.html#collate">COLLATE</a>.
+If you don&#8217;t want this behaviour, you can change it with
+<kbd><a href="#pagenum-on-first-page">PAGENUM_ON_FIRST_PAGE</a></kbd>.
+</p>
+
+<!-- -FOOTER_ON_FIRST_PAGE- -->
+
+<div class="macro-id-overline">
+<h3 id="footer-on-first-page" class="macro-id">Footer on first page</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FOOTER_ON_FIRST_PAGE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+If you invoke
+<a href="#footers"><kbd>.FOOTERS</kbd></a>,
+mom, by default, does not print a footer on the
+first page of the document. (The
+<a href="definitions.html">docheader</a>
+on page 1 makes it redundant.) However, should you wish a footer on
+page 1, invoke <kbd>.FOOTER_ON_FIRST_PAGE</kbd> without any argument.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<h2 id="headfoot-control" class="macro-group">Control macros for headers/footers</h2>
+
+<p>
+Virtually every part of headers (and footers; see the note on how
+<a href="#headerfooter">&#8220;headers&#8221; means &#8220;footers&#8221;</a>
+in the
+<a href="#headfootpage-intro">Introduction</a>
+to headers/footers) can be designed to your own specifications.
+</p>
+
+<div class="macro-list-container">
+<h3 id="index-headfoot-control" class="macro-list">Header/footer control macros and defaults</h3>
+
+<ol style="margin-top: -1.5em; padding-bottom: 6px;">
+ <li><a href="#hdrftr-strings">Header/footer strings</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-left">HEADER_LEFT</a></li>
+ <li><a href="#hdrftr-centre">HEADER_CENTER</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-centre-pad">Padding the header-centre string</a></li>
+ </ul></li>
+ <li><a href="#hdrftr-right">HEADER_RIGHT</a></li>
+ <li><a href="#reserved-strings">Using mom&#8217;s reserved strings in header/footer definitions</a>
+ (e.g. <kbd>\E*[$TITLE]</kbd> when you want
+ the title, <kbd>\E*[$AUTHOR]</kbd> when you want the author, etc.)
+ </li>
+ <li><a href="#page-number-symbol">Replacing header-left, centre or right with the page number</a></li>
+ <li><a href="#page-number-incl">Including the page number in header-left, centre or right</a></li>
+ </ul></li>
+ <li><a href="#hdrftr-style">Header/footer style</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-style-global">Global changes</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-plain">HEADER_PLAIN</a> &ndash; disable default adjustments to header parts</li>
+ <li><a href="#hdrftr-global-family">HEADER_FAMILY</a> &ndash; family for entire header</li>
+ <li><a href="#hdrftr-global-size">HEADER_SIZE</a> &ndash; size for entire header</li>
+ <li><a href="#hdrftr-color">HEADER_COLOR</a> &ndash; colourize the header</li>
+ </ul></li>
+ <li><a href="#hdrftr-style-part">Part-by-part changes</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#_family">_FAMILY</a> &ndash; left, centre or right family</li>
+ <li><a href="#_font">_FONT</a> &ndash; left, centre or right font</li>
+ <li><a href="#_size">_SIZE</a> &ndash; left, centre or right size</li>
+ <li><a href="#_caps">_CAPS</a> &ndash; left, centre or right all caps</li>
+ <li><a href="#_smallcaps">_SMALLCAPS</a> &ndash; left, centre or right smallcaps</li>
+ <li><a href="#_color">_COLOR</a> &ndash; left, centre or right colour</li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#hdrftr-vertical">Header/footer vertical placement and spacing</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-margin">HEADER_MARGIN</a></li>
+ <li><a href="#hdrftr-gap">HEADER_GAP</a></li>
+ </ul></li>
+ <li><a href="#hdrftr-separator">Header/footer separator rule</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#hdrftr-rule">HEADER_RULE</a></li>
+ <li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a></li>
+ <li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a></li>
+ <li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a></li>
+ </ul></li>
+</ol>
+</div>
+
+<!-- -HDRFTR_STRINGS- -->
+
+<h4 id="hdrftr-strings" class="docs">1. Header/footer strings</h4>
+
+<div id="hdrftr-left" class="box-macro-args" style="margin-top: 1em;">
+&#8221;Macro: <b>HEADER_LEFT</b> <kbd class="macro-args">&#8220;&lt;text of header-left&gt; | #</kbd>
+</div>
+
+<div id="hdrftr-centre" class="box-macro-args" style="margin-top: 1em;">
+&#8221;Macro: <b>HEADER_CENTER</b> <kbd class="macro-args">&#8220;&lt;text of header-centre&gt; | #</kbd>
+</div>
+
+<div id="hdrftr-right" class="box-macro-args" style="margin-top: 1em;">
+&#8221;Macro: <b>HEADER_RIGHT</b> <kbd class="macro-args">&#8220;&lt;text of header-right&gt; | #</kbd>
+</div>
+
+<p>
+To change the text (the &#8220;string&#8221;) of the left, centre,
+or right part of headers, invoke the appropriate macro, above,
+with the string you want. For example, mom, by default, prints
+the document&#8217;s author in the header-left position. If your
+document has, say, two authors, and you want both their names to
+appear header-left, change HEADER_LEFT like this:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_LEFT "R. Stallman, E. Raymond"
+</span>
+</p>
+
+<p>
+Because the arguments to HEADER_LEFT, _CENTER,
+and _RIGHT are
+<a href="definitions.html#stringargument">string arguments</a>,
+they must be enclosed in double-quotes.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Replace HEADER_, above, with FOOTER_ to change the strings in
+footers.
+</p>
+</div>
+
+<h3 id="hdrftr-centre-pad" class="docs">Padding the header/footer centre string</h3>
+
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>HEADER_CENTER_PAD</b> <kbd class="macro-args">LEFT | RIGHT &lt;amount of space by which to pad centre string left or right&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, mom centres the header-centre string on the line length
+in effect for page headers.
+</p>
+
+<p>
+In some cases, notably when the header-left or header-right
+strings are particularly long, the effect isn&#8217;t pretty. The
+offendingly long header-left or right crowds, or even overprints,
+the header-centre. That&#8217;s where HEADER_CENTER_PAD comes
+in. With a bit of experimentation (yes, you have to preview the
+document), you can use HEADER_CENTER_PAD to move the header-centre
+string left or right until it looks acceptably centred between the
+two other strings.
+</p>
+
+<p>
+For example, say your document is an outline for a novel called
+<i>By the Shores of Lake Attica</i>. You&#8217;ve told mom you want
+<br/>
+<span class="pre-in-pp">
+ .DOCTYPE NAMED "Outline"
+</span>
+but when you preview your work, you see that &#8220;Outline&#8221;,
+in the centre of the page header, is uncomfortably close to the
+title, which is to the right. By invoking
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER_PAD RIGHT 3P
+</span>
+you can scoot the word "Outline" over three
+<a href="definitions.html#picaspoints">picas</a>
+<i>to the left</i> (because the padding is added onto the right of the
+string) so that your head looks nicely spaced out. Invoking
+<kbd>.HEADER_CENTER_PAD</kbd> with the <kbd>LEFT</kbd> argument puts
+the padding on the left side of the string so that it scoots
+right.
+</p>
+
+<p>
+Most reassuring of all is that if you use HEADER_CENTER_PAD
+conjunction with
+<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>,
+mom will pad the centre string appropriately left OR right,
+depending on which page you&#8217;re on, without you having to tell
+her to do so.
+</p>
+
+<h3 id="reserved-strings" class="docs">Using mom&#8217;s reserved strings in header/footer definitions</h3>
+
+<p>
+As pointed out in the
+<a href="#author-note">Author&#8217;s note</a>
+in the introduction to headers/footers, headers and footers are
+something you don&#8217;t normally have to worry much about. Mom
+usually knows what to do.
+</p>
+
+<p>
+However, situations do arise where you need to manipulate what goes
+in the header/footer strings, setting and resetting them as you go
+along.
+</p>
+
+<p>
+A case where you might want to do this would be if you want to
+output endnotes at the end of each document in a series of
+<a href="rectoverso.html#collate">collated</a>
+documents, and you want the word "Endnotes" to go in the header
+centre position of the endnotes, but want, say, the
+<a href="docprocessing.html#title">TITLE</a>
+to go back into the centre position for the next output document.
+</p>
+
+<p>
+In scenarios like the above, mom has a number of reserved strings
+you can plug into the HEADER_LEFT, _CENTER and _RIGHT macros. They
+are:
+<br/>
+<span class="pre-in-pp">
+ \E*[$TITLE] &mdash;the current argument passed to .TITLE
+ \E*[$DOCTITLE] &mdash;the current argument passed to .DOCTITLE
+ \E*[$DOC_TYPE] &mdash;the NAMED argument passed to .DOCTYPE
+ \E*[$AUTHOR] &mdash;the current first argument passed to .AUTHOR
+ \E*[$AUTHOR_1...9] &mdash;the current arguments passed to .AUTHOR
+ \E*[$AUTHORS] &mdash;a comma-separated concatenated string
+ of all the current arguments passed to .AUTHOR
+ (i.e. a list of authors)
+ \E*[$CHAPTER_STRING] &mdash;the current argument passed to .CHAPTER_STRING,
+ if invoked, otherwise, "Chapter"
+ \E*[$CHAPTER] &mdash;the current argument (typically a number) passed
+ to .CHAPTER
+ \E*[$CHAPTER_TITLE] &mdash;the current argument passed to .CHAPTER_TITLE
+</span>
+Returning to the scenario above, first, you&#8217;d define a centre
+string for the endnotes page:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER "Endnotes"
+</span>
+Then, you&#8217;d output the endnotes:
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTES
+</span>
+Then, you&#8217;d prepare mom for the next document:
+<br/>
+<span class="pre-in-pp">
+ .COLLATE
+ .TITLE "New Doc Title"
+ .AUTHOR "Josephine Blough"
+</span>
+Then, you&#8217;d redefine the header-centre string using the
+reserved string <kbd><span class="nobr">\*[$TITLE]</span></kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER "\E*[$TITLE]"
+</span>
+And last, you&#8217;d do:
+<br/>
+<span class="pre-in-pp">
+ .START
+</span>
+Voilà! Any argument you pass to
+<a href="docprocessing.html#title">TITLE</a>
+from here on in (say, for subsequent documents) is back in the
+header-centre position. Here&#8217;s the whole routine again:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER "Endnotes"
+ .ENDNOTES
+ .COLLATE
+ .TITLE "New Doc Title"
+ .AUTHOR "Josephine Blough"
+ .HEADER_CENTER "\E*[$TITLE]"
+ .START
+</span>
+</p>
+
+<p>
+If need be, you can concatenate the strings, as in the following
+example.
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER "\E*[$CHAPTER_STRING] \E*[$CHAPTER]"
+</span>
+which, assuming a <kbd>.CHAPTER_STRING</kbd> of
+<kbd>"Chapter"</kbd> and a <kbd>.CHAPTER</kbd> of
+<kbd>"2"</kbd>, would put &#8220;Chapter 2&#8221; in the
+header-centre position.
+</p>
+
+<h3 id="page-number-symbol" class="docs">Replacing header-left, -centre or -right with the page number</h3>
+
+<p>
+If you would like to have the current page number appear in the
+header-left, -centre, or -right position instead of a text string,
+invoke the appropriate macro, above, with the single argument
+<kbd>#</kbd> (the &#8220;number&#8221; or &#8220;pound&#8221; sign).
+Do not surround the pound size with double-quotes, as you would
+normally do if the argument to <kbd>.HEADER_CENTER</kbd> were a
+string. For example,
+<br/>
+<span class="pre-in-pp">
+ .HEADER_CENTER #
+</span>
+(notice, no double-quotes) will print the current page number in the
+centre part of headers.
+</p>
+
+<h3 id="page-number-incl" class="docs">Including the page number in header-left, -CENTER or -right</h3>
+
+<p>
+If you would like to <i>include</i> the current page number in the
+string you pass to HEADER_LEFT, _CENTER, or _RIGHT, (as
+opposed to replacing the string with the page number), use the
+special
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[PAGE#]</span></kbd> in the string argument.
+</p>
+
+<p>
+For example, say you have a document that&#8217;s ten pages long,
+and you want header-right to say &#8220;page &lt;whichever&gt; of
+10&#8221;, invoke <kbd>.HEADER_RIGHT</kbd> as follows:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RIGHT "page \*[PAGE#] of 10"
+</span>
+The header-right of page two will read &#8220;page 2 of 10&#8221;,
+the header-right of page three will read &#8220;page 3 of 10&#8221;,
+and so on.
+</p>
+
+<!-- -HDRFTR_STYLE- -->
+
+<h4 id="hdrftr-style" class="docs">2. Header/footer style</h4>
+
+<h5 id="hdrftr-style-global" class="docs" style="margin-top: 1em;">Global changes</h5>
+
+<p style="margin-top: .5em;">
+The following macros allow you to make changes that affect all parts
+of the header at once.
+</p>
+
+<div class="macro-list-container">
+<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
+ <li><a href="#hdrftr-plain">HEADER_PLAIN</a></li>
+ <li><a href="#hdrftr-global-family">HEADER_FAMILY</a></li>
+ <li><a href="#hdrftr-global-size">HEADER_SIZE</a></li>
+ <li><a href="#hdrftr-color">HEADER_COLOR</a></li>
+</ul>
+</div>
+
+<div id="hdrftr-plain" class="box-macro-args">
+Macro: <b>HEADER_PLAIN</b>
+</div>
+
+<p>
+By default, mom makes adjustments to the font, size, and
+capitalization style of each part of headers to achieve an
+aesthetically pleasing look. Should you wish to design your own
+headers from the ground up without worrying how changes to the
+various elements of header style interact with mom&#8217;s defaults,
+invoke <kbd>.HEADER_PLAIN</kbd> by itself, with no argument. Mom
+will disable her default behaviour for headers, and reset all
+elements of header style to the same family, font, point size and
+colour as she uses in paragraphs.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to disable mom&#8217;s default
+behaviour for the various elements of footer style.
+</p>
+
+<div id="hdrftr-global-family" class="box-macro-args">
+Macro: <b>HEADER_FAMILY</b> <kbd class="macro-args">&lt;family&gt;</kbd>
+</div>
+
+<p>
+By default, mom uses the default document family for headers. If
+you would like her to use another
+<a href="definitions.html#family">family</a>
+in headers, invoke <kbd>.HEADER_FAMILY</kbd> with the identifier
+for the family you want. The argument is the same as for the
+typesetting macro
+<a href="typesetting.html#family">FAMILY</a>.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change the footer family.
+</p>
+
+<div id="hdrftr-global-size" class="box-macro-args">
+Macro: <b>HEADER_SIZE</b> <kbd class="macro-args">&lt;+|-number of points&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Argument is relative to the point size of type in paragraphs.
+See
+<span style="font-style: normal;"><a href="docelement.html#control-macro-args">Arguments to the control macros</a></span>
+for an explanation of how control macros ending in
+_SIZE work.
+</p>
+
+<p>
+By default, mom makes small adjustments to the size of each part
+of a header to achieve an aesthetically pleasing result. If
+you&#8217;d like her to continue to do so, but would like the
+overall appearance of headers to be a little smaller or a little
+larger, invoke <kbd>.HEADER_SIZE</kbd> with + or - the number of <a
+href="definitions.html#picaspoints">points</a> (fractions allowed)
+by which you want her to in/decrease the size of headers. For
+example,
+<br/>
+<span class="pre-in-pp">
+ .HEADER_SIZE +.75
+</span>
+increases the size of every part of a header by 3/4 of a point while
+respecting mom&#8217;s own little size changes.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change the footer size.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Normally, macros that control headers have no effect on
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>.
+HEADER_SIZE is an exception. While all parts of a header in
+PRINTSTYLE&nbsp;<kbd>TYPEWRITE</kbd> are always the same size, you
+can use HEADER_SIZE with PRINTSTYLE&nbsp;<kbd>TYPEWRITE</kbd> to
+reduce the header&#8217;s overall point size. You&#8217;ll most
+likely require this when the
+<a href="docprocessing.html#copystyle">COPYSTYLE</a>
+is <kbd>DRAFT</kbd>, since portions of the header may overprint if,
+say, the title of your document is very long.
+</p>
+</div>
+
+<div id="hdrftr-color" class="box-macro-args">
+Macro: <b>HEADER_COLOR</b> <kbd class="macro-args">&lt;colorname&gt;</kbd>
+</div>
+
+<p>
+If you want your headers in a colour different from the document
+default (usually black), invoke <kbd>.HEADER_COLOR</kbd> with the
+name of a colour pre-defined (or &#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+</p>
+
+<p>
+HEADER_COLOR will set all the parts of the header
+plus the header rule in the colour you give it as an argument. If
+you wish finer control over colour in headers, you can use
+<a href="#_color">HEADER_&lt;POSITION&gt;_COLOR</a>
+to colourize each part of the header separately, as well as
+<a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a>
+to change the colour of the header rule.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to colourize footers.
+</p>
+
+<h4 id="hdrftr-style-part" class="docs">3. Part by part changes</h4>
+
+<p>
+When using the following control &#8221;macros, replace
+&#8220;&lt;POSITION&gt; by <b>LEFT, CENTER,</b> or RIGHT as
+appropriate.
+</p>
+
+<div class="macro-list-container">
+<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
+ <li><a href="#_family">HEADER_&lt;POSITION&gt;_FAMILY</a></li>
+ <li><a href="#_font">HEADER_&lt;POSITION&gt;_FONT</a></li>
+ <li><a href="#_size">HEADER_&lt;POSITION&gt;_SIZE</a></li>
+ <li><a href="#_caps">HEADER_&lt;POSITION&gt;_CAPS</a></li>
+ <li><a href="#_smallcaps">HEADER_&lt;POSITION&gt;_SMALLCAPS</a></li>
+ <li><a href="#_color">HEADER_&lt;POSITION&gt;_COLOR</a></li>
+ <li><a href="#grouping">Grouping style parameters for the individual header/footer parts</a></li>
+</ul>
+</div>
+
+<div id="_family" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_FAMILY</b> <kbd class="macro-args">&lt;family&gt;</kbd>
+</div>
+
+<p>
+Use HEADER_&lt;POSITION&gt;_FAMILY to change the
+<a href="definitions.html#family">family</a>
+of any part of headers. See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for an explanation of how control macros ending in _FAMILY work.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change a footer part&#8217;s family.
+</p>
+
+<div id="_font" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_FONT</b> <kbd class="macro-args">&lt;font&gt;</kbd>
+</div>
+
+<p>
+Use HEADER_&lt;POSITION&gt;_FONT to change the
+<a href="definitions.html#font">font</a>
+of any part of headers. See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for an explanation of how control macros ending in _FONT work.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change a footer part&#8217;s font.
+</p>
+
+<div id="_size" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_SIZE</b> <kbd class="macro-args">&lt;+|-number of points&gt;</kbd>
+</div>
+
+<p>
+Use HEADER_&lt;POSITION&gt;_SIZE to change the size of any part of
+headers (relative to the point size of type in paragraphs). See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for an explanation of how control macros ending in _SIZE work.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change a footer part&#8217;s size.
+</p>
+
+<div id="_caps" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_CAPS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+HEADER_&lt;POSITION&gt;_CAPS is a
+<a href="definitions.html#toggle">toggle macro</a>.
+If you want any part of headers to be set in all caps, regardless of
+the capitalization of that part&#8217;s string as given to the
+<a href="docprocessing.html#reference-macros">reference macros</a>
+or as defined by you with the
+<a href="#hdrftr-strings">header string control macros</a>,
+simply invoke this macro (using the appropriate position) with no
+argument. If you wish to turn capitalization off (say, for the
+header-right string that mom capitalizes by default), invoke the
+macro with any argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>, <kbd>X</kbd>...).
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to change a footer part&#8217;s
+capitalization style.
+</p>
+
+<div id="_smallcaps" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_SMALLCAPS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+HEADER_&lt;POSITION&gt;_SMALLCAPS is a
+<a href="definitions.html#toggle">toggle macro</a>.
+If you want any part of headers to be set in smallcaps, simply
+invoke this macro (using the appropriate position) with no argument.
+If you wish to turn the smallcaps off, invoke the macro with any
+argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>X</kbd>...).
+</p>
+
+<p>
+Replace HEADER,_ above, with FOOTER_ to invoke smallcaps for footer
+parts.
+</p>
+
+<div id="_color" class="box-macro-args">
+Macro: <b>HEADER_&lt;POSITION&gt;_COLOR</b> <kbd class="macro-args">&lt;colorname&gt;</kbd>
+</div>
+
+<p>
+HEADER_&lt;POSITION&gt;_COLOR allows you to set a colour for each of
+the three possible parts of a page header separately. For example,
+say you want the right part of the header (by default, the document
+title) in red, this is how you&#8217;d get it:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RIGHT_COLOR red
+</span>
+The other parts of the header will be in the default header colour
+(usually black, but that can be changed with
+<a href="#hdrftr-color">HEADER_COLOR</a>).
+</p>
+
+<p>
+Remember that you have to define (or &#8220;initialize&#8221;) a
+colour with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>
+before you can use the colour.
+</p>
+
+<p>
+If you create a
+<a href="#userdef-hdrftr-rv">user-defined header</a>
+with
+<a href="#hdrftr-rectoverso">HEADER_RECTO</a>
+or
+<a href="#hdrftr-rectoverso">HEADER_VERSO</a>,
+and you want various elements within the header to be colourized,
+embed the colours in the string passed to HEADER_RECTO or
+HEADER_VERSO with the
+<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colorname&gt;]</span></kbd></a>
+<a href="definitions.html#inlines">inline escape</a>.
+</p>
+
+<p>
+Replace HEADER_, above, with FOOTER_ to set the colours for the
+various elements of footers.
+</p>
+
+<h5 id="grouping" class="docs">Grouping style parameters for the individual header parts</h5>
+
+<p>
+Instead of using control macros for the style parameters
+of an individual header part, the parameters may be
+<a href="docelement.html#grouping">grouped</a>
+by invoking <kbd>HEADER_&lt;POSITION&gt;_STYLE</kbd> with a list of
+keyword/value pairs. Acceptable keywords are
+<kbd>FAMILY FONT SIZE COLOR CAPS</kbd> and <kbd>SMALLCAPS</kbd>.
+Keyword/value pairs may appear on the same line as the macro, or
+separated into several lines using the backslash character
+(<kbd>\</kbd>). If you use the latter style, all but the final
+parameter must be terminated with the backslash.
+</p>
+
+<p>
+Thus, to set the header-left part in Helvetica bold, red, 1 point larger
+than
+<a href="definitions.html#running">running text</a>
+and all caps, you could do either
+<br/>
+<span class="pre-in-pp">
+ .HEADER_LEFT_STYLE FAMILY H FONT B SIZE +1 COLOR red CAPS
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .HEADER_LEFT_STYLE \
+ FAMILY H \
+ FONT B \
+ SIZE +1 \
+ COLOR red \
+ CAPS
+</span>
+If you need to reverse the sense of <kbd>CAPS</kbd>
+or <kbd>SMALLCAPS</kbd>, use <kbd>NO_CAPS</kbd> or
+<kbd>NO_SMALLCAPS</kbd>.
+</p>
+
+<!-- -HDRFTR_VERTICAL- -->
+
+<h4 id="hdrftr-vertical" class="docs">3. Header/footer vertical placement and spacing</h4>
+
+<p>
+See
+<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>
+for an explanation of how mom deals with
+headers, footers, and top/bottom page margins.
+</p>
+
+<div class="macro-list-container">
+<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
+ <li><a href="#hdftr_margin">HEADER_MARGIN</a></li>
+ <li><a href="#hdftr_gap">HEADER_GAP</a></li>
+</ul>
+</div>
+
+<!-- -HDRFTR_MARGIN- -->
+
+<div id="hdrftr-margin" class="box-macro-args">
+Macro: <b>HEADER_MARGIN</b> <kbd class="macro-args">&lt;distance to baseline of header&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+Use HEADER_MARGIN to set the distance from the top edge of the page to the
+<a href="definitions.html#baseline">baseline</a>
+of type in headers. A unit of measure is required, and decimal
+fractions are allowed.
+</p>
+
+<p>
+Mom&#8217;s default header margin is 4-1/2
+<a href="definitions.html#picaspoints">picas</a>,
+but if you want a different margin, say, 1/2-inch, do
+<br/>
+<span class="pre-in-pp">
+ .HEADER_MARGIN .5i
+</span>
+If your document uses
+<a href="definitions.html#footer">footers</a>,
+replace HEADER_, above, with FOOTER_. The argument to FOOTER_MARGIN
+is the distance from the bottom edge of the page to the baseline of
+type in footers. Mom&#8217;s default footer margin is 3
+<a href="definitions.html#picaspoints">picas</a>.
+</p>
+
+<h3 class="docs">Header/footer margins and page numbering</h3>
+
+<p>
+Mom uses HEADER_MARGIN and FOOTER_MARGIN to establish the baseline
+position of page numbers in addition to the baseline position of
+headers and footers proper.
+</p>
+
+<p>
+By default, page numbers appear at the bottom of the page, therefore
+if you want the default position (bottom), but want to change the
+baseline placement, use FOOTER_MARGIN. Conversely, if page numbers
+are at the top of the page, either because you turned
+<a href="#footers">FOOTERS</a>
+on or because you instructed mom to put them there with
+<a href="#pagenum-pos">PAGENUM_POS</a>,
+you&#8217;d use HEADER_MARGIN to change their baseline placement.
+</p>
+
+<div id="footer-margin" class="box-important" style="padding-bottom: 15px;">
+<p class="tip-top">
+<span class="important" style="display: block; margin-bottom: -1em;">Important &ndash; FOOTER_MARGIN and bottom margins</span>
+<br/>
+Mom requires a footer margin (i.e. the distance from the bottom of
+the page at which to place footers) for proper operation, hence she
+sets one, even if you don&#8217;t. As stated above, her default
+footer margin is 3-picas.
+</p>
+
+<p>
+If you use
+<a href="typesetting.html#b-margin">B_MARGIN</a>
+or
+<a href="typesetting.html#page">PAGE</a>
+to set a bottom margin for your document (prior to
+<a href="docprocessing.html#start">START</a>),
+and the margin&#8217;s too close to mom&#8217;s default
+footer margin (or a footer margin you set yourself with
+FOOTER_MARGIN), mom will not print your footers; additionally,
+she&#8217;ll give you a warning and some advice on standard error.
+When this happens, you must reset either B_MARGIN or FOOTER_MARGIN
+so there&#8217;s an adequate amount of space for mom to print the
+bottom line of running text and the footer.
+</p>
+
+<p>
+If you see the warning even when footers and/or bottom-of-page page
+numbering are disabled, set a nominal footer margin of 0 prior to
+<a href="docprocessing.html#start">START</a>,
+as in these examples.
+</p>
+
+<div id="examples-footnotes-1" class="examples-container" style="padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 1</div>
+<span class="pre">
+ &lt;reference macros, etc&gt;
+ .PAGINATION OFF
+ .B_MARGIN .25i
+ .FOOTER_MARGIN O
+ .START
+</span>
+</div>
+
+<div id="examples-footnotes-2" class="examples-container" style="margin-top: 1em; padding-bottom: 1em;">
+<div class="examples" style="margin-top: 0;">Example 2</div>
+<span class="pre">
+ &lt;reference macros, etc&gt;
+ .HEADERS OFF
+ .PAGENUM_POS TOP RIGHT
+ .B_MARGIN .25i
+ .FOOTER_MARGIN O
+ .START
+</span>
+</div>
+</div>
+
+<!-- -HDRFTR_GAP- -->
+
+<div id="hdrftr-gap" class="box-macro-args">
+Macro: <b>HEADER_GAP</b> <kbd class="macro-args">&lt;distance from header to start of running text&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+Use HEADER_GAP to set the distance from the
+<a href="definitions.html#baseline">baseline</a>
+of type in headers to the start of
+<a href="definitions.html#running">running text</a>.
+A unit of measure is required, and decimal fractions are allowed.
+</p>
+
+<p>
+As explained in
+<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>,
+HEADER_MARGIN + HEADER_GAP determine the default vertical starting
+position of running text on the page unless you have given mom your
+own top margin (with
+<a href="typesetting.html#t-margin">T_MARGIN</a>).
+If you give a top margin, mom ignores HEADER_GAP; running text
+starts at your stated top margin.
+</p>
+
+<p>
+Mom&#8217;s default header gap is 3
+<a href="definitions.html#picaspoints">picas</a>,
+but if you want a different gap, say, 2 centimetres, do
+<br/>
+<span class="pre-in-pp">
+ .HEADER_GAP 2c
+</span>
+If your document uses
+<a href="definitions.html#footer">footers</a>,
+replace HEADER_, above, with FOOTER_. The argument to FOOTER_GAP
+is the distance from the baseline of type in footers to the last
+baseline of running text on the page.
+</p>
+
+<p>
+As explained in
+<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>,
+FOOTER_MARGIN + FOOTER_GAP determine the default vertical end
+position of running text on the page unless you have given mom a
+bottom margin (with
+<a href="typesetting.html#b-margin">B_MARGIN</a>).
+If you give a bottom margin, mom ignores FOOTER_GAP; running text
+ends at your stated bottom margin, subject to the restriction outlined
+<a href="#footer-margin">here</a>.
+</p>
+
+<p>
+Mom&#8217;s default footer gap is 3
+<a href="definitions.html#picaspoints">picas</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom uses HEADER_GAP and FOOTER_GAP to establish the start and end
+baseline positions of running text with respect to both headers and
+footers AND page numbers. If you wish to change the gap between the
+last line of running text and a bottom page number, use FOOTER_GAP.
+If page numbers are at the top of the page, change the gap between
+the number and the first line of running text with HEADER_GAP.
+</p>
+</div>
+
+<div id="gap-note" class="box-tip">
+<p class="tip-top">
+<span class="note">Additional note:</span>
+HEADER_GAP and FOOTER_GAP may only be used once, at the start of a
+document. In
+<a href="rectoverso.html#collate">collated documents</a>,
+this means that HEADER_GAP or FOOTER_GAP cannot be used to change
+the gaps once they have been set. The same applies to the Table of
+Contents, Endnotes, Bibliographies, and Lists of...&nbsp;.
+</p>
+
+<p class="tip-bottom">
+In the event that you need to change the header or footer gap after
+the start of a document, you must do so with
+<a href="typesetting.html#t-margin">T_MARGIN</a>
+or
+<a href="typesetting.html#b-margin">B_MARGIN</a>,
+which raise or lower the top and bottom margins of
+<a href="definitions.html#running">running text</a>
+but do not affect the placement headers and footers.
+(See
+<a href="tables-of-contents.html#toc-page-settings-example">here</a>
+for a demonstration.)
+</p>
+</div>
+
+<!-- -HDRFTR_SEPARATOR- -->
+
+<h4 id="hdrftr-separator" class="docs">4. Header/footer separator rule</h4>
+
+<p>
+The header/footer separator rule is a modest horizontal rule,
+set slightly below the header (or above the footer), that runs
+the length of the
+<a href="definitions.html#header">header</a>
+and helps separate it visually from
+<a href="definitions.html#running">running text</a>. If
+you don&#8217;t want the rule, you can turn it off. If you want it,
+but at a different vertical position relative to the header (or
+footer), you can alter its placement.
+</p>
+
+<div class="macro-list-container">
+<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
+ <li><a href="#hdrftr-rule">HEADER_RULE</a> &ndash; on or off</li>
+ <li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a> &ndash; weight of the rule</li>
+ <li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a> &ndash; distance of rule from header</li>
+ <li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a> &ndash; color of rule header</li>
+</ul>
+</div>
+
+<!-- -HDRFTR_RULE- -->
+
+<div id="hdrftr-rule" class="box-macro-args">
+Macro: <b>HEADER_RULE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+By default, mom prints a header separator rule underneath headers
+(or above footers). If you don&#8217;t want the rule, turn it off by
+invoking <kbd>.HEADER_RULE</kbd> with any argument (<kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...), e.g.
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RULE OFF
+</span>
+To turn the rule (back) on, invoke <kbd>.HEADER_RULE</kbd>
+without any argument.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Replace HEADER_, above, with FOOTER_ to enable/disable the printing
+of the footer separator rule. (Most likely, if you&#8217;re using
+<kbd><a href="#footers">FOOTERS</a></kbd>,
+you&#8217;ll want it off.)
+</p>
+</div>
+
+<!-- -HDRFTR_RULE_WEIGHT- -->
+
+<div id="hdrftr-rule-weight" class="box-macro-args">
+Macro: <b>HEADER_RULE_WEIGHT</b> <kbd class="macro-args">&lt;weight in points&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Argument must <span class="normal">NOT</span> have a <a href="definitions.html#unitofmeasure">unit of measure</a> appended
+</p>
+
+<p>
+HEADER_RULE_WEIGHT controls the weight (&#8220;thickness&#8221;) of
+the header rule. Like
+<a href="inlines.html#rule-weight">RULE_WEIGHT</a>,
+it takes a single argument: the weight of the header rule expressed
+in
+<a href="definitions.html#picaspoints">points</a>
+but without the unit of measure, <kbd>p</kbd>, appended. The
+argument to HEADER_RULE_WEIGHT must be greater than 0 and less than
+100; decimal fractions are allowed.
+</p>
+
+<p>
+Say, for example, you want a really strong header separator rule.
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RULE_WEIGHT 4
+</span>
+which sets the separator rule weight to 4 points, is how you&#8217;d do
+it.
+</p>
+
+<p>
+Mom&#8217;s default header rule weight is 1/2 point.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Replace HEADER_, above, with FOOTER_ to set the weight of the footer
+separator rule.
+</p>
+</div>
+
+<!-- -HDRFTR_RULE_GAP- -->
+
+<div id="hdrftr-rule-gap" class="box-macro-args">
+Macro: <b>HEADER_RULE_GAP</b> <kbd class="macro-args">&lt;distance of rule beneath header&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+HEADER_RULE_GAP is the distance from the
+<a href="definitions.html#baseline">baseline</a>
+of type in headers to the top edge of the rule underneath. (If
+FOOTER_RULE_GAP, the gap is the distance from the top of the highest
+<a href="definitions.html#ascender">ascender</a>
+to the bottom edge of the rule.) A unit of measure is required, and
+decimal fractions are allowed. Please note that HEADER_RULE_GAP has
+no effect on
+<a href="#hdrftr-gap">HEADER_GAP</a>
+(i.e., HEADER_RULE_GAP is NOT added to HEADER_GAP when mom calculates
+the space between headers and the start of
+<a href="definitions.html#running">running text</a>).
+</p>
+
+<p>
+By default, the header rule gap is 4
+<a href="definitions.html#picaspoints">points</a>.
+If you&#8217;d like to change it to, say, 1/4
+<a href="definitions.html#em">em</a>, do
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RULE_GAP .25m
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Replace HEADER_, above, with FOOTER_ if you&#8217;re using
+<a href="definitions.html#footer">footers</a>
+and want to change the separator rule gap. In footers, the gap is
+measured from the top of the tallest
+<a href="definitions.html#ascender">ascender</a>
+in the footer.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+When using
+<a href="#hdrftr-recto">FOOTER_RECTO</a>
+and
+<a href="#hdrftr-verso">FOOTER_VERSO</a>,
+make sure that the default size for footers
+(<a href="#footer-global-size">FOOTER_SIZE</a>)
+is set to the largest size of type that will be used in the footer
+or mom may not get the rule gap right. Inline changes to the size
+of type in FOOTER_RECTO and FOOTER_VERSO should always be negative
+(smaller) than the default.
+</p>
+</div>
+
+<!-- -HDRFTR_RULE_COLOR- -->
+
+<div id="hdrftr-rule-color" class="box-macro-args">
+Macro: <b>HEADER_RULE_COLOR</b> <kbd class="macro-args">&lt;colorname&gt;</kbd>
+</div>
+
+<p>
+If you wish to change the colour of the header rule, invoke
+<kbd>.HEADER_RULE_COLOR</kbd> with the name of a colour pre-defined
+(or &#8220;initialized&#8221;) with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+</p>
+
+<p>
+HEADER_RULE_COLOR overrides the colour set with
+<a href="#hdrftr-color">HDRFTR_COLOR</a>,
+so it&#8217;s possible to have the heads entirely in, say, blue (set
+with HEADER_COLOR), and the header rule in, say, red.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Replace HEADER_, above, with FOOTER_ to change the colour of the
+footer rule.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- -USERDEF_HDRFTR- -->
+
+<h2 id="userdef-hdrftr-rv" class="macro-group">User-defined, single string recto/verso headers/footers</h2>
+
+<p>
+Sometimes, you&#8217;ll find you can&#8217;t get mom&#8217;s
+handling of 3-part headers or footers to do exactly what you want in
+the order you want. This is most likely happen when you want the
+information contained in the headers/footers split over two pages,
+as is often the case with recto/verso documents.
+</p>
+
+<p>
+Say, for example, you want recto page headers to contain a
+document&#8217;s author, centred, and verso page headers to contain
+the document&#8217;s title, also centred, like this:
+<br/>
+<span class="pre-in-pp">
+ +------------------------+ +------------------------+
+ | Author | | Title |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ +------------------------+ +------------------------+
+</span>
+With mom&#8217;s standard 3-part headers, this isn&#8217;t possible,
+even when
+<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>
+is enabled. RECTO_VERSO switches the left and right parts of
+headers on alternate pages, but the centre part remains unchanged.
+</p>
+
+<p>
+Any time you need distinctly different headers on alternate pages,
+mom has macros that let you manually design and determine what goes
+into headers on recto pages, and what goes into headers on verso
+pages. The macros are
+<a href="#hdrftr-recto">HEADER_RECTO</a>
+and
+<a href="#hdrftr-verso">HEADER_VERSO</a>.
+Both allow you to state whether the header is flush left, centred,
+or flush right, and both take a single
+<a href="definitions.html#stringargument">string argument</a>
+with which, by combining text and
+<a href="definitions.html#inlines">inline escapes</a>,
+you can make the headers come out just about any way you want. Use
+of the <kbd><span class="nobr">\*[PAGE#]</span></kbd> escape is permitted in the
+string argument (see
+<a href="#page-number-incl">Including the page number in header-left, -centre or -right</a>),
+and, as an added bonus, mom provides a special mechanism whereby
+it&#8217;s possible to
+<a href="#padding-hdrftr">pad</a>
+the string as well. The padding mechanism lets you create headers
+that contain left, centre and right parts like mom&#8217;s defaults
+but entirely of your own design.
+</p>
+
+<div class="macro-list-container">
+<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
+ <li><a href="#hdrftr-recto">HEADER_RECTO</a></li>
+ <li><a href="#hdrftr-verso">HEADER_VERSO</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#userdef-hdrftr">User-defined single string headers/footers (no recto/verso)</a></li>
+ <li><a href="#padding-hdrftr">Padding the header-recto/header-verso string</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<!-- -HDRFTR_RECTOVERSO- -->
+
+<div id="hdrftr-recto" class="box-macro-args">
+Macro: <b>HEADER_RECTO</b> <kbd class="macro-args">LEFT | CENTER | RIGHT [ CAPS ] "&lt;header recto string&gt;"</kbd>
+</div>
+
+<div id="hdrftr-verso" class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>HEADER_VERSO</b> <kbd class="macro-args">LEFT | CENTER | RIGHT [ CAPS ] "&lt;header verso string&gt;"</kbd>
+</div>
+
+<div id="userdef-hdrftr" class="box-important">
+
+<p class="tip">
+<span class="tip" style="display: block; margin-bottom: -1.25em; color: #000056; font-size: 100%;">User-defined single string headers/footers (no recto/verso)</span>
+<br/>
+HEADER_RECTO may be used to create user-defined, single string
+headers (or footers, with FOOTER_RECTO), even when recto/verso is
+not enabled (with
+<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>).
+In such cases, the header/footer you create is the one used on
+every page, making HEADER_RECTO your &#8220;I need to design my own
+headers from scratch&#8221; solution.
+</p>
+</div>
+
+<p>
+HEADER_RECTO and HEADER_VERSO behave identically, hence all
+references to HEADER_RECTO in this section also refer to
+HEADER_VERSO. Furthermore, FOOTER_ can be used instead of HEADER_
+to set up recto/verso footers.
+</p>
+
+<p>
+The first argument to HEADER_RECTO is the direction in which you
+want the header
+<a href="definitions.html#quad">quadded</a>.
+<kbd>L</kbd>, <kbd>C</kbd>, and <kbd>R</kbd> may be used in place of
+<kbd>LEFT</kbd>, <kbd>CENTER</kbd>, and <kbd>RIGHT</kbd>.
+</p>
+
+<p>
+The second argument (optional) tells mom to capitalize the text of
+the header. <b>Please note:</b> Do not use
+<a href="inlines.html#uc-lc"><kbd><span class="nobr">\*[UC]...\*[LC]</span></kbd></a>
+inside the string passed to HEADER_RECTO.
+</p>
+
+<p>
+The final argument is a string, surrounded by double-quotes,
+containing what you want in the header. HEADER_RECTO disables
+mom&#8217;s normal 3-part headers, therefore anything you want in
+the headers must be entered by hand in the string, including colours
+(via the
+<a href="definitions.html#inlines">inline escape</a>
+<a href="color.html#color-inline"><kbd><span class="nobr">\*[&lt;colorname&gt;]</span></kbd></a>).
+</p>
+
+<p>
+By default, HEADER_RECTO is set at the same size, and in the same
+family and font, as paragraph text. The control macros
+<a href="#hdrftr-global-family">HEADER_FAMILY</a>
+and
+<a href="#hdrftr-global-size">HEADER_SIZE</a>
+may be used to change the default family and size. Changes to the
+font(s) within the string must be accomplished with the
+<a href="definitions.html#inlines">inline escapes</a>
+<kbd><span class="nobr">\*[ROM]</span></kbd>,
+<kbd><span class="nobr">\*[IT]</span></kbd>,
+<kbd><span class="nobr">\*[BD]</span></kbd>,
+<kbd><span class="nobr">\*[BDI]</span></kbd>,
+and <kbd><span class="nobr">\*[PREV]</span></kbd> (see
+<a href="inlines.html#inline-fonts-mom">Changing fonts</a>).
+Additional refinements to the style of the header-recto string,
+including horizontal spacing and/or positioning, can also be made
+with inline escapes.
+</p>
+
+<p>
+To include the current page number in the string, use the
+<kbd><span class="nobr">\*[PAGE#]</span></kbd>
+<a href="definitions.html#inlines">inline escape</a>.
+</p>
+
+<h3 id="padding-hdrftr" class="docs">Padding the header-recto/header-verso string</h3>
+
+<p>
+You can &#8220;pad&#8221; the header-recto string, a convenience
+you&#8217;ll appreciate in circumstances such as the following.
+<br/>
+<span class="pre-in-pp">
+ VERSO RECTO
+ +------------------------+ +------------------------+
+ | Author Page# | | Page# Title |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ +------------------------+ +------------------------+
+</span>
+</p>
+
+<p>
+There are two steps to padding the string argument passed to HEADER_RECTO
+(if you&#8217;re unsure what padding is, see
+<a href="goodies.html#pad">Insert space into lines</a>).
+</p>
+<ol style="margin-top: -.5em; margin-left: -.5em; margin-bottom: -.5em;">
+ <li>Begin and end the string (inside the double-quotes) with the caret character (<kbd>^</kbd>).</li>
+ <li>Enter the pound sign (<kbd>#</kbd>) at any point in the string where you want an equalized amount of whitespace inserted.</li>
+</ol>
+
+<p>
+The situation depicted above is accomplished like this:
+<br/>
+<span class="pre-in-pp">
+ .HEADER_RECTO LEFT "^\*[PAGE#]#\E*[$TITLE]^"
+ .HEADER_VERSO LEFT "^\E*[$AUTHOR]#\*[PAGE#]^"
+</span>
+Notice that the quad argument, <kbd>LEFT</kbd>, is used in both
+cases. When padding a header, it doesn&#8217;t matter which
+quad argument you use, although you must be sure to supply
+one. Also note that mom does not interpret the <kbd>#</kbd> in
+<kbd><span class="nobr">\*[PAGE#]</span></kbd> as a padding marker (i.e. as a
+place to insert whitespace).
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+The
+<a href="goodies.html#pad-marker">PAD_MARKER</a>
+macro, which changes the default pad marker (<kbd>#</kbd>) used by
+<a href="goodies.html#pad">PAD</a>,
+has no effect on the pad marker used in the HEADER_RECTO string. If
+you absolutely must have a literal pound sign in your HEADER_RECTO
+string, use the escape sequence for the pound sign
+(&nbsp;<kbd>\[sh]</kbd>&nbsp;) where you want the pound sign to go.
+</p>
+</div>
+
+<!-- -HDRFTR_RECTOVERSO- -->
+
+<h2 id="headers-and-footers-intro" class="macro-group">Headers and footers on the same page</h2>
+
+<p>
+Normally, mom prints either a header or a footer, but not both, depending on whether
+<a href="#headers">HEADERS</a>
+or
+<a href="#footers">FOOTERS</a>
+is enabled. (Page numbering, whether in the top margin
+or the bottom, is not considered a header or a footer.)
+Should you need both headers and footers on the same page, the
+single macro HEADERS_AND_FOOTERS is the way to set it up.
+</p>
+
+<div id="headers-and-footers" class="box-macro-args">
+Macro: <b>HEADERS_AND_FOOTERS</b> <kbd class="macro-args">(see Invocation)</kbd>
+</div>
+
+<p>
+Invocation:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .HEADERS_AND_FOOTERS \
+ &lt;L | C | R&gt; "&lt;header-recto string&gt;" \
+ &lt;L | C | R&gt; "&lt;footer-recto string&gt;" \
+ &lt;L | C | R&gt; "&lt;header-verso string&gt;" \
+ &lt;L | C | R&gt; "&lt;footer-verso string&gt;"
+</span>
+or
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ .HEADERS_AND_FOOTERS &lt;anything&gt;
+</span>
+</p>
+
+<p>
+Unlike the macros,
+<a href="#headers">HEADERS</a>
+and
+<a href="#footers">FOOTERS</a>,
+which are
+<a href="definitions.html#toggle">toggle</a>
+macros, HEADERS_AND_FOOTERS requires that you supply the information
+you want in the headers and footers yourself. Mom does no automatic
+generation of things like the title and the author in headers and
+footers when you&#8217;re using HEADERS_AND_FOOTERS. Furthermore,
+style changes&mdash;family, font, pointsize, colour, capitalization,
+etc &mdash;are entirely your responsibility and must be made with
+<a href="definitions.html#inlines">inline escapes</a>
+in the arguments passed to <kbd>&#8220;&lt;recto
+&#8221;header string&gt;&#8220;</kbd>, <kbd>&lt;recto footer
+string&gt;&#8220;</kbd>, etc. By default, mom sets the headers and
+footers created with HEADERS_AND_FOOTERS in the same family, font,
+point size, capitalization style and colour as
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+The manner of entering what you want is identical to the way you
+input
+<a href="#userdef-hdrftr-rv">single string headers and footers</a>.
+I suggest reading up on them, as well as looking at the entries,
+<a href="#hdrftr-rectoverso">HEADER_RECTO</a>
+and
+<a href="#reserved-strings">Using mom&#8217;s reserved strings in header/footer definitions</a>.
+</p>
+
+<p>
+The same
+<a href="#padding-hdrftr">padding mechanism</a>
+used in HEADER_RECTO and HEADER_VERSO is available in the
+<a href="definitions.html#stringargument">string arguments</a>
+passed to HEADERS_AND_FOOTERS, allowing you to simulate two- and
+three-part headers and footers.
+</p>
+
+<p>
+<kbd>L | C | R</kbd> in the arguments to HEADERS_AND_FOOTERS refers
+to whether you want the specific header or footer part on the left,
+in the middle, or on the right. (You can also use the longer forms,
+<kbd>LEFT</kbd>, <kbd>CENTER</kbd> and <kbd>RIGHT</kbd>.) The
+string you give afterwards is whatever text you want, including
+mom&#8217;s
+<a href="#reserved-strings">reserved strings</a>,
+and whatever
+<a href="definitions.html#inlines">inline escapes</a>
+you need to change things like family and font, pointsize, colour,
+etc. as you go along.
+</p>
+
+<p>
+Note the backslashes in the invocation, above. Every set of
+arguments given this way to HEADERS_AND_FOOTERS <i>except the
+last</i> requires a backslash after it. The use of backslashes
+isn&#8217;t required if you want to put the entire argument list on
+the same (very long!) line as the macro itself; I recommend sticking
+to the style shown above to keep things manageable.
+</p>
+
+<p>
+If you want to disable having both headers and footers on the same
+page, invoke <kbd>.HEADERS_AND_FOOTERS</kbd> with any argument
+you want (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>X</kbd>...). Mom will restore her default behaviour of setting
+automatically generated page headers, with the page number,
+centered, at the bottom of the page. If you would prefer footers
+instead of headers after turning HEADERS_AND_FOOTERS off, invoke
+<a href="#footers"><kbd>.FOOTERS</kbd></a>
+afterwards.
+</p>
+
+<h4 class="docs" style="margin-bottom: 1em;">Examples of HEADERS_AND_FOOTERS usage</h4>
+
+<div id="examples-userdef-hdrftr-1" class="examples-container" style="padding-bottom: 0;">
+<div class="examples" style="margin-top: 12px; margin-bottom: 0;">Example 1: Header and footer the same on every page</div>
+<span class="pre">
+.HEADERS_AND_FOOTERS \ +-----------------------+
+C "\E*[$TITLE]" \ | Title |
+L "^\E*[$AUTHOR]#\*[PAGE#]^" | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | Author Pg. # |
+ +-----------------------+
+</span>
+
+<p>
+<kbd><span class="nobr">\E*[$TITLE]</span></kbd> and
+<kbd><span class="nobr">\E*[$AUTHOR]</span></kbd> will print the strings you pass
+to
+<a href="docprocessing.html#title">TITLE</a>
+and
+<a href="docprocessing.html#author">AUTHOR</a>;
+<kbd><span class="nobr">\*[PAGE#]</span></kbd> is how you include the page number
+in a header or footer string. (For a list of special strings you
+can use in headers and footers, see
+<a href="#reserved-strings">here</a>.)
+</p>
+
+<p>
+You don&#8217;t have to use these special strings. You can type
+in anything you like. I&#8217;ve only used them here to show that
+they&#8217;re available.
+</p>
+</div>
+
+<div id="examples-userdef-hdrftr-2" class="examples-container" style="margin-top: 1em; padding-bottom: 18px;">
+<div class="examples" style="margin-top: 12px; margin-bottom: 0;">Example 2: Different headers and footers on recto/verso pages</div>
+<span class="pre">
+.HEADERS_AND_FOOTERS \
+C "BOOK TITLE" \
+L "^\*[PAGE#]#\E*[$AUTHOR]^" \
+C "Story Title" \
+L "^\E*[$AUTHOR]#\*[PAGE#]^"
+
+ +-----------------------+ +------------------------+
+ | BOOK TITLE | | Story Title |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | Pg. # Author | | Author Pg.# |
+ +-----------------------+ +------------------------+
+</span>
+</div>
+
+<div class="rule-short" style="margin-top: 1.25em;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="pagination-intro" class="macro-group">Pagination</h2>
+
+<p>
+By default, mom paginates documents. Page numbers
+appear in the bottom margin of the page, centred between two hyphens.
+As with all elements of mom&#8217;s document processing,
+most aspects of pagination style can be altered to suit your taste
+with control macros.
+</p>
+
+
+<div class="macro-list-container">
+<h3 id="index-pagination" class="macro-list">Pagination macros</h3>
+<ul class="macro-list">
+ <li><a href="#paginate">PAGINATE</a> &ndash; pagination on or off</li>
+ <li><a href="#pagenumber">PAGENUMBER</a> &ndash; user-defined (starting) page number</li>
+ <li><a href="#pagenum-style">PAGENUM_STYLE</a> &ndash; digits, roman numerals, etc</li>
+ <li><a href="#pagenum-on-first-page">PAGENUM_ON_FIRST_PAGE</a> &ndash; put page number on first page when numbering is at the top of the page</li>
+ <li><a href="#draft-with-pagenumber">DRAFT_WITH_PAGENUMBER</a> &ndash; attach draft/revision information to page numbers</li>
+ <li><a href="#pagenumber-string">PAGENUMBER_STRING</a> &ndash; user-defined page number string</li>
+ <li><a href="#index-paginate-control">Pagination control macros and defaults</a></li>
+</ul>
+</div>
+
+<!-- -PAGINATE- -->
+
+<div id="paginate" class="box-macro-args">
+Macro: <b>PAGINATE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>PAGINATION</b>
+</p>
+
+<p>
+By default, mom paginates documents (in the bottom margin). If
+you&#8217;d prefer she not paginate, turn pagination off by
+invoking <kbd>.PAGINATE</kbd> with any argument (<kbd>OFF</kbd>,
+<kbd>NO</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...),
+e.g.
+<br/>
+<span class="pre-in-pp">
+ .PAGINATE NO
+</span>
+To (re)start pagination, invoke <kbd>.PAGINATE</kbd> without any
+argument.
+</p>
+
+<!-- -PAGENUMBER- -->
+
+<div id="pagenumber" class="box-macro-args">
+Macro: <b>PAGENUMBER</b> <kbd class="macro-args">&lt;number&gt;</kbd>
+</div>
+
+<p>
+As is to be expected, pagination of documents begins at page 1. If
+you&#8217;d prefer that mom begin with a different number on the
+first page of a document, invoke <kbd>.PAGENUMBER</kbd> with the
+number you want.
+</p>
+
+<p>
+PAGENUMBER need not be used only to give mom a "first page" number.
+It can be used at any time to tell mom what number you want a page
+to have. Subsequent page numbers will, of course, be incremented by
+1 from that number.
+</p>
+
+<!-- -PAGENUM_STYLE- -->
+
+<div id="pagenum-style" class="box-macro-args">
+Macro: <b>PAGENUM_STYLE</b> <kbd class="macro-args">DIGIT | ROMAN | roman | ALPHA | alpha</kbd>
+</div>
+
+<p>
+PAGENUM_STYLE lets you tell mom what kind of page numbering you
+want.
+<br/>
+<span class="pre-in-pp">
+ DIGIT Arabic digits (1, 2, 3...)
+ ROMAN upper case roman numerals (I, II, III...)
+ roman lower case roman numerals (i, ii, iii...)
+ ALPHA upper case letters (A, B, C...)
+ alpha lower case letters (a, b, c...)
+</span>
+</p>
+
+<!-- -PAGENUM_ON_FIRST_PAGE- -->
+
+<div id="pagenum-on-first-page" class="box-macro-args">
+Macro: <b>PAGENUM_ON_FIRST_PAGE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+This macro applies only if you&#8217;ve enabled
+<a href="#footers">FOOTERS</a>.
+If FOOTERS are on, mom automatically places page numbers at the tops
+of pages except on the first page of a document (or on first pages
+after
+<a href="rectoverso.html#collate">COLLATE</a>).
+If you&#8217;d like the page number to appear on &#8220;first&#8221; pages
+when footers are on, invoke
+<br/>
+<span class="pre-in-pp">
+ .PAGENUM_ON_FIRST_PAGE
+</span>
+with no argument. Any other argument turns the feature off
+(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>,
+etc).
+</p>
+
+<p>
+As with most of the
+<a href="definitions.html#controlmacro">control macros</a>,
+PAGENUM_ON_FIRST_PAGE can be invoked at any time, meaning that if
+you don&#8217;t want a page number on the very first page of a
+document, but do want one on pages that appear after COLLATE, omit
+it before the first
+<a href="docprocessing.html#start">START</a>
+of the document, then invoke it either just before or after your
+first COLLATE.
+</p>
+
+<!-- -DRAFT_WITH_PAGENUMBER- -->
+
+<div id="draft-with-pagenumber" class="box-macro-args">
+Macro: <b>DRAFT_WITH_PAGENUMBER</b>
+</div>
+
+<p>
+Sometimes, in
+<a href="docprocessing.html#copystyle">COPYSTYLE <kbd>DRAFT</kbd></a>,
+the CENTER part of page headers gets overcrowded because of
+the draft and revision information that go there by default.
+DRAFT_WITH_PAGENUMBER is one way to fix the problem.
+</p>
+
+<p>
+Invoked without an argument, <kbd>.DRAFT_WITH_PAGENUMBER</kbd>
+removes draft/revision information from the page headers and
+attaches it instead to the document&#8217;s page numbering, in the
+form
+<br/>
+<span class="pre-in-pp">
+ Draft #, Rev. # / &lt;pagenumber&gt;
+</span>
+If you have not supplied mom with a draft number (with
+<a href="docprocessing.html#draft">DRAFT</a>)
+DRAFT_WITH_PAGENUMBER will assume &#8220;Draft 1&#8220;, and will
+print it before the page number.
+</p>
+
+<p>
+See the note in
+<a href="docprocessing.html#copystyle-note">COPYSTYLE <kbd>DRAFT</kbd>
+</a>
+for other ways of dealing with crowded page headers when formatting
+draft-style copy.
+</p>
+
+<!-- -PAGENUMBER_STRING- -->
+
+<div id="pagenumber-string" class="box-macro-args">
+Macro: <b>PAGENUMBER_STRING</b> "&lt;text of page number string&gt;"
+</div>
+
+<p>
+If you want page numbering to contain text in addition to the page
+number itself, use PAGENUMBER_STRING.
+</p>
+
+<p>
+The most common use for PAGENUMBER_STRING is to include the total
+number of pages along with the page number, for example
+&#8220;Page 1 of 10, Page 2 of 10...&#8221; To accomplish this,
+you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .PAGENUMBER_STRING "Page \*[PAGE#] of 10"
+</span>
+Notice that the page number is entered symbolically with the
+<a href="definitions.html#inlines">inline escape</a>
+<span style="white-space:nowrap"><kbd><span class="nobr">\*[PAGE#]</span></kbd>,</span>
+while the total number of pages must be entered explicitly after the
+document is complete and the total number of pages known.
+</p>
+
+<!-- -PAGINATE_CONTROL- -->
+
+<div class="macro-list-container">
+<h3 id="index-paginate-control" class="macro-list">Pagination control macros and defaults</h3>
+
+<ol style="margin-top: -1.5em; padding-bottom: 6px;">
+ <li><a href="#paginate-general">Family/font/size/colour</a></li>
+ <li><a href="#pagenum-pos">Page number position (vertical and horizontal)</a></li>
+ <li><a href="#pagenum-hyphens">Enclose page numbers with hyphens (on or off)</a></li>
+</ol>
+</div>
+
+<h4 id="paginate-general" class="docs">1. Page number family/font/size/colour</h4>
+
+<div class="defaults-container" style="margin-top: 1em; padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following control macros may also be
+<a href="docelement.html#grouping">grouped</a>
+using PAGENUMBER_STYLE.*
+</p>
+<span class="pre defaults">
+.PAGENUM_FAMILY default = prevailing document family
+.PAGENUM_FONT default = roman
+.PAGENUM_SIZE default = +0 (i.e. same size as paragraph text)
+.PAGENUM_COLOR default = black
+</span>
+</div>
+
+<p style="margin-top: -2em">
+*Note: Do not confuse PAGENUMBER_STYLE with
+<a href="#pagenum-style">PAGENUM_STYLE</a>.
+</p>
+
+<h4 id="pagenum-pos" class="docs" style="margin-top: 0em;">2. Page number position</h4>
+
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>PAGENUM_POS</b> <kbd class="macro-args">[ TOP | BOTTOM ]&nbsp;&nbsp;[ LEFT | CENTER | RIGHT ]</kbd>
+</div>
+
+<p>
+Use PAGENUM_POS to change the default position of automatic page
+numbering. PAGENUM_POS requires <i>two</i> arguments: a vertical
+position (<kbd>TOP</kbd> or <kbd>BOTTOM</kbd>) and a horizontal
+position (<kbd>LEFT</kbd> or <kbd>CENTER</kbd> or <kbd>RIGHT</kbd>).
+</p>
+
+<p>
+For example, if you turn both
+<a href="definitions.html#header">headers</a>
+and
+<a href="definitions.html#footer">footers</a>
+off (with <kbd>.HEADERS&nbsp;OFF</kbd> and
+<kbd>.FOOTERS&nbsp;OFF</kbd>) and you want mom to number your pages
+at the top right position, enter
+<br/>
+<span class="pre-in-pp">
+ .PAGENUM_POS TOP RIGHT
+</span>
+</p>
+
+<div id="pagenum-pos-note" class="box-tip" style="margin-top: 1em;">
+<p class="tip">
+<span class="note">Note:</span>
+HEADERS must be OFF for PAGENUM_POS TOP to work.
+</p>
+</div>
+
+<h4 id="pagenum-hyphens" class="docs" style="margin-top: -1em;">3. Enclose page numbers with hyphens (on or off)</h4>
+
+<div class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>PAGENUM_HYPHENS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+By default, mom encloses page numbers between hyphens. If you
+don&#8217;t want this behaviour, invoke the macro PAGENUM_HYPHENS
+with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>X</kbd>, etc), like this:
+<br/>
+<span class="pre-in-pp">
+ .PAGENUM_HYPHENS OFF
+</span>
+If, for some reason, you want to turn page number hyphens back
+on, invoke the macro without an argument.
+</p>
+
+<!-- -BLANK_PAGE- -->
+
+<h2 id="blank-pages" class="macro-group">Inserting blank pages into a document</h2>
+
+<div class="box-macro-args">
+Macro: <b>BLANKPAGE</b> <kbd class="macro-args">&lt;# of blank pages to insert&gt; [DIVIDER [NULL]]</kbd>
+</div>
+
+<p>
+This one does exactly what you&#8217;d expect&mdash;inserts a blank
+page (or pages) into a document. Unless you give the optional argument,
+<kbd>NULL</kbd>, mom silently increments the page number of every
+blank page and keeps track of
+<a href="rectoverso.html#recto-verso">recto/verso</a>
+stuff, but otherwise does nothing. This is useful for forcing new
+sections of a document onto recto pages, but may have other
+applications as well.
+</p>
+
+<p>
+The required argument to BLANK_PAGE 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 mom:
+<br/>
+<span class="pre-in-pp">
+ .BLANKPAGE 1
+</span>
+The optional argument <kbd>DIVIDER</kbd> must be given if
+you&#8217;re inserting a blank page before the start of major
+document sections (chapters, endnotes, bibliographies,
+or tables of contents&#8211;provided the table of contents is not being
+<a href="tables-of-contents.html#auto-relocate-toc">autorelocated</a>).
+Without the <kbd>DIVIDER</kbd> argument, mom simply
+inserts the blank pages and prepares the next page to receive
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+<kbd>NULL</kbd>, which is also optional, allows you to output the
+specified number of pages without mom incrementing the page number
+for each blank page. She will, however, continue to keep track
+of which pages are recto/verso if recto/verso printing has been
+enabled.
+</p>
+
+<div id="blankpage-note" class="box-tip" style="margin-top: 1.5em;">
+<p class="tip">
+<span class="note">Note:</span>
+Do not use BLANKPAGE before TOC if the table of contents is being
+<a href="tables-of-contents.html#auto-relocate-toc">autorelocated</a>.
+</p>
+</div>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 24%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 42%; text-align: right;"><a href="rectoverso.html">Next: Recto/verso printing, collating</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/images.html b/contrib/mom/momdoc/images.html
new file mode 100644
index 0000000..dc1837f
--- /dev/null
+++ b/contrib/mom/momdoc/images.html
@@ -0,0 +1,3515 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Graphics, floats, and preprocessor support</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="headfootpage.html#top">Next: Page headers/footers, pagination</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Graphics, floats, and preprocessor support</h1>
+
+<div style="width: 80%; margin: auto;">
+<ul class="no-enumerator" style="margin-left: -1em;">
+ <li><a href="#images-intro">Inserting images and graphics</a>
+ <ul>
+ <li><a href="#converting">Image conversion and file processing</a>
+ <ul style="margin-left: -1em">
+ <li><a href="#pdf">PDF</a></li>
+ <li><a href="#eps">EPS</a></li>
+ </ul></li>
+ <li><a href="#pdf-image">The PDF_IMAGE macro</a>
+ <ul style="margin-left: -1em">
+ <li><a href="#pdf-image-frame">PDF_IMAGE_FRAME</a>&mdash;set parameters for image frames</li>
+ </ul></li>
+ <li><a href="#pspic">The PSPIC macro</a></li>
+ </ul></li>
+ <li><a href="#floats-intro">Floats</a>
+ <ul>
+ <li><a href="#float">The FLOAT macro</a></li>
+ <li><a href="#float-label-caption">Labelling and captioning floats</a>
+ <ul style="margin-left: -1em">
+ <li><a href="#label">LABEL</a></li>
+ <li><a href="#caption">CAPTION</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#preprocessor-support">Preprocessor support</a>
+ <ul>
+ <li><a href="#tbl">tbl</a>
+ <ul style="margin-left: -1em;">
+ <li><a href="#ts-te">.TS / .TH / .TE macros and arguments</a></li>
+ </ul></li>
+ <li><a href="#eqn">eqn</a>
+ <ul style="margin-left: -1em;">
+ <li><a href="#eq-en">.EQ / .EN macros and arguments</a></li>
+ </ul></li>
+ <li><a href="#pic">pic</a>
+ <ul style="margin-left: -1em;">
+ <li><a href="#ps-pe">.PS / .PE macros and arguments</a></li>
+ <li><a href="#pic-text-style">PIC_TEXT_STYLE</a>&mdash;set parameters for text in diagrams</li>
+ </ul></li>
+ <li><a href="#grap">grap</a></li>
+ <li><a href="#refer">refer</a></li>
+ </ul></li>
+ <li><a href="#captions-and-labels">Captions and labels</a>
+ <ul>
+ <li><a href="#autolabel">AUTOLABEL</a></li>
+ <li><a href="#set-autolabel">SET_AUTOLABEL</a></li>
+ <li><a href="#caption-after-label">CAPTION_AFTER_LABEL</a></li>
+ <li><a href="#captions-labels-sources">CAPTIONS / LABELS / SOURCES</a>&mdash;set parameters for each</li>
+ <li><a href="#mla">MLA</a></li>
+ </ul></li>
+ <li><a href="#lists-of">Lists of Figures, Tables, and Equations</a>
+ <ul>
+ <li><a href="#lists-placement">Placement of Lists</a></li>
+ <li><a href="#lists-macros">Macros to generate Lists</a></li>
+ <li><a href="#formatting-lists">Formatting and style parameters for Lists</a>
+ <ul style="margin-left: -1em">
+ <li><a href="#lists-style">LISTS_STYLE</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#box-intro">Shaded backgrounds and frames (boxes)</a>
+ <ul>
+ <li><a href="#box-intro">Introduction and description</a></li>
+ <li><a href="#box">The BOX macro</a></li>
+ <li><a href="#box-notes">Additional notes on box usage and behaviour</a>
+ <ul>
+ <li><a href="#qbef">QUOTE, BLOCKQUOTE, EPIGRAPH, FLOAT</a></li>
+ <li><a href="#code">CODE</a></li>
+ <li><a href="#quotes">Description of boxed BLOCKQUOTEs and EPIGRAPHs</a>
+ <ul style="margin-left: -1em; list-style: disc;">
+ <li><a href="#leftover">Leftover box syndrome</a></li>
+ </ul></li>
+ <li><a href="#slides">Slides</a></li>
+ <li><a href="#footnotes">Footnotes</a></li>
+ </ul></li>
+ <li><a href="#page-color-intro">Page colour</a></li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="images-intro" class="docs">Inserting images and graphics</h2>
+
+<p>
+In order to include images in mom documents, the images must be in
+either PDF (.pdf) or EPS (.eps) format. Each format requires its own
+macro, but both take the same arguments, and in the same order.
+</p>
+
+<p>
+Please note that there are differences in the way the files
+containing PDF and EPS images must be processed, hence documents may
+not contain a mix.
+</p>
+
+<h3 id="converting" class="docs">Image conversion and file processing</h3>
+
+<p>
+When your image files are not in PDF or EPS format&mdash;jpgs,
+for example&mdash;you must convert them before including them in
+a mom document. Any utility for converting images may used. The
+ImageMagick suite of programmes, present on most GNU/Linux
+systems, contains <b>convert</b>, which is simple and effective.
+</p>
+
+<h4 id="pdf" class="docs">PDF</h4>
+
+<p>
+Assuming a jpg image, conversion to PDF is done like this:
+<br/>
+<span class="pre-in-pp">
+ convert &lt;image&gt;.jpg &lt;image&gt;.pdf
+</span>
+Any image type supported by <b>convert</b> may be converted this
+way.
+</p>
+
+<p>
+Mom files containing PDF images must be processed using
+groff&#8217;s pdf driver. Use of
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+is strongly recommended, which natively invokes the pdf driver.
+<br/>
+<span class="pre-in-pp">
+ pdfmom doc.mom &gt; doc.pdf
+</span>
+</p>
+
+<h4 id="eps" class="docs">EPS</h4>
+
+<p>
+Assuming a jpg image, conversion to EPS is done like this:
+<br/>
+<span class="pre-in-pp">
+ convert &lt;image&gt;.jpg &lt;image&gt;.eps
+</span>
+Any image type supported by <b>convert</b> may be converted this
+way. There have been reports of trouble with PostScript level 2
+images, so don&#8217;t save your images in this format.
+</p>
+
+<p>
+Mom files containing EPS images must be processed using
+groff&#8217;s postscript driver. Use of
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+which can be told to use the postscript driver, is strongly
+recommended.
+<br/>
+<span class="pre-in-pp">
+ pdfmom -Tps doc.mom &gt; doc.pdf
+</span>
+</p>
+
+<!-- -PDF_IMAGE- -->
+
+<div class="macro-id-overline">
+<h3 id="pdf-image" class= "macro-id">PDF_IMAGE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PDF_IMAGE</b> \
+<br/>
+<kbd class="macro-args">[ -L | -C | -R | -I &lt;indent&gt; ] \
+<br/>
+&lt;pdf image file&gt; &lt;width&gt; &lt;height&gt; [ SCALE &lt;factor&gt; ] \
+<br/>
+[ ADJUST +|-&lt;vertical adjustment&gt; ] [ NO_SHIM ] [ NO_FLEX ] \
+<br/>
+[ FRAME ] \
+<br/>
+[ CAPTION "&lt;caption&gt;" ] [ SHORT_CAPTION "&lt;short caption&gt;" ] \
+<br/>
+[ LABEL "&lt;label&gt;" ] [ TARGET "&lt;name&gt;" ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;<span style="font-style: normal">
+<kbd>&lt;indent&gt;</kbd>,
+<kbd>&lt;width&gt;</kbd>,
+<kbd>&lt;height&gt;</kbd></span>
+and
+<span style="font-style: normal">
+<kbd>&lt;vertical adjustment&gt;</kbd></span>
+require a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom files with embedded PDF images must be processed with
+pdfmom&nbsp;doc.mom&nbsp;&gt;&nbsp;doc.pdf. Arguments may be broken
+into several lines using the &#8220;line-continued&#8221; backslash
+(<b>\</b>), as shown above.
+</p>
+</div>
+
+<p>
+Unlike
+<a href="#pspic">PSPIC</a>,
+which it resembles, PDF_IMAGE requires that the pdf image&#8217;s
+dimensions (the bounding box,
+<a href="#bounding-box">see below</a>)
+be supplied each time it&#8217;s called.
+</p>
+
+<p>
+The first optional argument tells mom how to align the image
+horizontally, with <kbd>-L</kbd>, <kbd>-C</kbd>, and <kbd>-R</kbd>
+standing for left, centre and right respectively. If you need more
+precise placement, the <kbd>-I</kbd> argument allows you to give an
+indent from the left margin. Thus, to indent a PDF image 6
+<a href="definitions.html#picaspoints">picas</a>
+from the left margin
+<br/>
+<span class="pre-in-pp">
+ .PDF_IMAGE -I 6P &lt;remaining arguments&gt;
+</span>
+If you omit the first argument, the image will be centred.
+</p>
+
+<p>
+<kbd>&lt;pdf image&gt;</kbd> must be in PDF format, with a .pdf
+extension. If it is not, mom will abort with a message. See
+<a href="#pdf">here</a>
+for instructions on converting image formats to PDF.
+</p>
+
+<p id="bounding-box">
+<kbd>&lt;width&gt;</kbd> and <kbd>&lt;height&gt;</kbd> are the
+dimensions of the image&#8217;s bounding box. The most reliable way
+of getting the bounding box is with the utility, <strong>pdfinfo</strong>:
+<br/>
+<span class="pre-in-pp">
+ pdfinfo &lt;image.pdf&gt; | grep "Page *size"
+</span>
+This will spit out a line that looks like this:
+<br/>
+<span class="pre-in-pp">
+ Page size: width x height pts
+</span>
+<kbd>pts</kbd> means
+<a href="definitions.html#picaspoints">points</a>,
+therefore the unit of measure appended to <kbd>&lt;width&gt;</kbd>
+and <kbd>&lt;height&gt;</kbd> must be <kbd>p</kbd>.
+</p>
+
+<p>
+The remaining arguments are optional and may be entered in any
+order, although it&#8217;s best to put <kbd>CAPTION</kbd>,
+<kbd>SHORT_CAPTION</kbd>, and <kbd>LABEL</kbd> last.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SCALE</h5>
+
+<p>
+<kbd>SCALE</kbd> allows you to scale the image by
+<kbd>&lt;factor&gt;</kbd>. The factor is a percentage of the
+image&#8217;s original dimensions, thus <kbd>SCALE&nbsp;50</kbd>
+scales the image to 50 percent of its original size. No percent
+sign or unit of measure should be appended.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">ADJUST</h5>
+
+<p>
+<kbd>ADJUST</kbd> lets you raise (<kbd>-</kbd>) or lower
+(<kbd>+</kbd>) the image
+<span style="font-style: italic">within the space allotted for it</span>
+by the amount you specify. This is useful for achieving good
+optical centering between surrounding blocks of type. A unit of
+measure is required.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Tip:</span>
+You may sometimes find that a PDF_IMAGE at the bottom of a page
+doesn&#8217;t sit flush on the bottom margin, however attempts to lower it
+by adding space beforehand result in it being deferred to the next
+page.
+</p>
+
+<p class="tip-bottom">
+The solution is to introduce <i>negative</i> space before the image
+so that it displays on the page, then lower it to the bottom margin
+with PDF_IMAGE&#8217;s ADJUST argument.
+</p>
+</div>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_SHIM</h5>
+
+<p>
+<kbd>NO_SHIM</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">shimming</a>
+after an image, which she will do automatically when shimming is
+enabled, which it is by default. Shimming ensures that running text
+after the image falls properly on the page&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+but can result in slightly unequal spacing above and below
+(correctable with the <kbd>ADJUST</kbd> argument).
+<kbd>NO_SHIM</kbd> is useful when you have several images on the
+page and there are visible differences in the spacing beneath them
+as a result of shimming. To ensure a flush bottom margin, the last
+image on the page should be shimmed, i.e. should not be given the
+<kbd>NO_SHIM</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_FLEX</h5>
+
+<p>
+<kbd>NO_FLEX</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>
+after an image, which she will do automatically when flex-spacing is
+enabled. <kbd>NO_FLEX</kbd> is useful when you have several images
+on the page and you want to distribute excess vertical
+whitespace on the page amongst other flex-spacing points on the
+page. If there are no others, the final image should be
+flex-spaced, i.e. not given the <kbd>NO_FLEX</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">FRAME</h5>
+
+<p>
+<kbd>FRAME</kbd> instructs mom to put a frame around the image.
+Parameters for the frame are set with
+<a href="#pdf-image-frame">PDF_IMAGE_FRAME</a>.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CAPTION</h5>
+
+<p>
+<kbd>CAPTION</kbd> allows you to give the image a caption. By
+default, the caption appears above the image, but may be attached to
+the label that appears beneath the image. See
+<a href="#caption-after-label">CAPTION_AFTER_LABEL</a>
+in
+<a href="#captions-and-labels">Captions and labels</a>.
+The text of the caption must be surrounded by double-quotes.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SHORT_CAPTION</h5>
+
+<p>
+<kbd>SHORT_CAPTION</kbd> allows you to trim long captions for
+inclusion in the List of Figures. The text you supply, surrounded
+by double-quotes, is what will appear in the List.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">LABEL</h5>
+
+<p>
+<kbd>LABEL</kbd>, if given, appears beneath the image. The text you
+supply, surrounded by double-quotes, is how the image is labelled
+in both the document proper and the List of Figures. Mom provides
+an auto-labelling facility for images (see
+<a href="#autolabel">AUTOLABEL</a>),
+which, if enabled, overrides the <kbd>LABEL</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">TARGET</h5>
+
+<p>
+<kbd>TARGET</kbd> followed by a unique name surrounded by
+double-quotes creates a PDF target for the image so that it may be
+linked to from other places in the file (with PDF_LINK; see
+<a href="version-2.html#mom-pdf">Producing PDFs with groff and mom</a>).
+</p>
+
+<p>
+<b><i>Please note:</i></b> The following functionality is available
+only with groff 1.22.4 or later.
+</p>
+
+<p>
+When
+<a href="#autolabel">autolabelling</a>
+is enabled and the document is processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+the target name can be used to generate the target&#8217;s label
+number in running text if it is entered as a groff string, i.e. of the
+form <kbd><span class="nobr">\*[name]</span></kbd>. For example, if you create
+a target named &#8220;foo&#8221; for a pdf image whose autolabel
+number would be 3, entering
+<br/>
+<span class="pre-in-pp">
+ See
+ .PDF_LINK foo "Figure \*[foo]"
+</span>
+anywhere in running text would result in a pdf link that reads
+&#8220;Figure 3&#8221;. If chapter numbers are being prefixed to
+labels, the same string in, say, chapter 5 would produce the pdf
+link &#8220;Figure 5.3&#8221;.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note: Version 2.0-c change</span>
+<br/>
+Mom now treats all pdf images identically to
+<a href="#floats-intro">floats</a>,
+which is to say that if an image doesn&#8217;t fit on the output
+page, she will defer it to the top of the next page while continuing
+to process
+<a href="definitions.html#running">running text</a>.
+<kbd>ADJUST</kbd> is ignored whenever an image is the first to be
+deferred, except when moving from column to column on the same page,
+when the image may need to be optically adjusted. Subsequent images
+that do not fit, if any, are output in order immediately after the
+first.
+</p>
+
+<p class="tip-bottom">
+Prior to 2.0-c, it was recommended that images be wrapped inside
+<a href="#float">FLOAT</a>,
+but this is now no longer required, and should, in fact, be avoided.
+</p>
+</div>
+
+<!-- -PDF_IMAGE_FRAME- -->
+
+<div class="macro-id-overline">
+<h3 id="pdf-image-frame" class= "macro-id">PDF_IMAGE_FRAME</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PDF_IMAGE_FRAME</b> <kbd class="macro-args">&lt;inset amount&gt; &lt;rule weight&gt; &lt;color&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;<span style="font-style: normal"><kbd>&lt;inset amount&gt;</kbd></span>
+requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>;
+conversely,
+<span style="font-style: normal"><kbd>&lt;rule weight&gt;</kbd></span>
+must not have a unit of measure appended
+</p>
+
+<p>
+PDF_IMAGE_FRAME establishes the parameters for subsequent invocations of
+<a href="#pdf-image">PDF_IMAGE</a>
+when the <kbd>FRAME</kbd> argument is given. Arguments must appear
+in order, and any you wish left at the current value should be
+entered as two adjacent double-quotes. So, for example,
+<br/>
+<span class="pre-in-pp">
+ .PDF_IMAGE_FRAME "" "" blue
+</span>
+leaves the inset value and rule weight at their current value and
+changes the frame colour to blue.
+</p>
+
+<p>
+Frames are drawn <span class="italic">outside</span> the image at
+its requested dimensions inclusive of scaling. Colours must be
+pre-initialized with
+<a href="color.html#xcolor">XCOLOR</a>
+or
+<a href="color.html#newcolor">NEWCOLOR</a>.
+</p>
+
+<p>
+The default inset is 6 <a
+href="definitions.html#picaspoints">points</a>, the default rule
+weight is .5 (points), and the default colour is black.
+</p>
+
+<!-- -PSPIC- -->
+
+<div class="macro-id-overline">
+<h3 id="pspic" class= "macro-id">PSPIC</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PSPIC</b> <kbd class="macro-args">[ -L | -R | -I &lt;n&gt; ] &lt;file&gt; [ width [ height ] ]</kbd>
+</div>
+
+<p>
+PSPIC is not actually part of mom, but rather a macro included with
+every groff installation. <kbd>man groff_tmac</kbd> contains the
+documentation for PSPIC, but I&#8217;ll repeat it here with a few
+modifications for clarity.
+</p>
+
+<div class="examples-container">
+<h3 id="groff-tmac" class="docs" style="margin-top: .5em;">From <span style="text-transform: none">groff_tmac</span></h3>
+<p style="margin-top: .5em; margin-bottom: .5em;">
+<kbd>&lt;file&gt;</kbd> is the name of the file containing the
+image; <kbd>width</kbd> and <kbd>height</kbd> give the desired
+width and height of the image as you wish it to appear within the
+document. The width and height arguments may have
+<a href="definitions.html#unitofmeasure">units of measure</a>
+attached; the default unit of measure is <kbd>i</kbd>. PSPIC will
+scale the graphic uniformly in the x and y directions so that
+it is no more than <kbd>width</kbd> wide and <kbd>height</kbd>
+high. By default, the graphic will be horizontally centred. The
+<kbd>-L</kbd> and <kbd>-R</kbd> options cause the graphic to be
+left-aligned and right-aligned, respectively. The <kbd>-I</kbd>
+option causes the graphic to be indented by <kbd>&lt;n&gt;</kbd>;
+the default unit of measure is <kbd>m</kbd>
+(<a href="definitions.html#em">ems</a>).
+</p>
+</div>
+
+<p>
+It is not necessary to pass PSPIC the <kbd>&lt;width&gt;</kbd>
+and <kbd>&lt;height&gt;</kbd> arguments unless you are scaling
+the image, in which case you will most likely need the original
+dimensions of the EPS image&#8217;s bounding box. These can be
+found with
+<br/>
+<span class="pre-in-pp">
+ gs -q -dBATCH -dNOPAUSE -sDEVICE=bbox &lt;image file&gt;.pdf 2&gt;&amp;1 \
+ | grep "%%BoundingBox" | cut -d " " -f4,5
+</span>
+The two digits returned are in
+<a href="definitions.html#picaspoints">points</a>,
+therefore the
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+<kbd>p</kbd> must be appended to them.
+</p>
+
+<p>
+Because PSPIC lacks the <kbd>ADJUST</kbd> option offered by
+<a href="#pdf-image">PDF_IMAGE</a>
+a certain amount of manual tweaking of the vertical placement of the
+image will probably be required, typically by using the
+<a href="typesetting.html#ald">ALD</a>
+and
+<a href="typesetting.html#rld">RLD</a>
+macros. Wrapping the image in a
+<a href="#float">float</a>
+and using FLOAT&#8217;s <kbd>ADJUST</kbd> option can also be used to
+correct optical centering.
+</p>
+
+<p>
+Additionally, non-floated EPS images
+will almost certainly disrupt the baseline placement of
+<a href="definitions.html#running">running text</a>.
+In order to get mom back on track after inserting a non-floated
+<kbd>.PSPIC</kbd> image, insert the
+<a href="docprocessing.html#shim">SHIM</a>
+or
+<a href="docprocessing.html#flex">FLEX</a>
+macro afterwards, depending on the
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+strategy in effect, so that the bottom margin of running text falls
+where it should.
+</p>
+
+<p>
+Remember that mom files with embedded EPS images must be processed
+with
+<br/>
+<span class="pre-in-pp">
+ pdfmom -Tps doc.mom &gt; doc.pdf
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Please note:</span>
+<kbd>PSPIC</kbd> does not support
+<a href="autolabel">autolabelling</a>,
+labels, captions, or inclusion in the List of Figures. If you wish
+this functionality,
+<a href="#converting">convert your images to pdf</a>
+and use
+<a href="#pdf-image">PDF_IMAGE</a>
+instead, then process the file with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+(without the <kbd>-Tps</kbd> option).
+</p>
+</div>
+<div class="rule-medium"><hr/></div>
+
+<h2 id="floats-intro" class="docs">Introduction to floats</h2>
+
+<p>
+Non-textual insertions in a document (tables, for example) sometimes
+do not fit on the output page of a PDF or PostScript document at
+the place they&#8217;re inserted in the input file. It&#8217;s
+necessary, therefore, to defer them to the next page while carrying
+on with
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+Whenever you need this functionality, mom provides the FLOAT macro.
+</p>
+
+<p>
+Floats are usually used for images and graphics, but can contain
+anything you like, including text. Whatever&#8217;s in the
+float will be kept together as a block, output immediately if
+there&#8217;s room, or deferred to the top of the next output page
+when there isn&#8217;t; running text continues to the bottom of the
+previous page without interruption.
+</p>
+
+<p>
+In the case of a float that doesn&#8217;t fit being followed by
+one that does, both are deferred and output one after the other.
+Note that this represents a change from versions 2.1-b_1 and earlier
+where the second float was output in position and the first was
+deferred.
+</p>
+
+<p>
+A key distinction between a float and a
+<a href="docelement.html#quote">QUOTE</a>
+or
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>
+is that while a float keeps everything together and defers output if
+necessary, quotes and blockquotes are output immediately, and may
+start on one page and finish on the next.
+</p>
+
+<p>
+Floats always begin in
+<a href="definitions.html#filled">no-fill mode</a>.
+Text entered immediately after FLOAT will be set line-for-line
+unless a
+<a href="typesetting.html#justify">JUSTIFY</a>
+or
+<a href="typesetting.html#quad">QUAD&nbsp;L|R|C</a>
+precedes it. Alternatively, any macro that sets a quad direction
+may be used, e.g.
+<a href="docelement.html#pp">PP</a>.
+</p>
+
+<p>
+Floats always deposit a break before they begin, which means the
+line beforehand will not be
+<a href="definitions.html#filled">filled</a>.
+Floats, therefore, cannot be inserted in the middle of a paragraph
+without studying the output file and determining where to break or
+<a href="typesetting.html#spread">spread</a>
+the line before the float. Furthermore, if you want a float between
+paragraphs, the float should come before <kbd>.PP</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ ...
+ .FLOAT OFF
+ .PP
+</span>
+not
+<br/>
+<span class="pre-in-pp">
+ .PP
+ .FLOAT
+ ...
+ .FLOAT OFF
+</span>
+</p>
+
+<p id="float-spacing">
+Floats begin on the baseline immediately below the running text
+preceding them. No additional whitespace surrounds them, above or
+below. Running text below a float is, however,
+<a href="docprocessing.html#shim">shimmed</a>
+or
+<a href="docprocessing.html#flex">flex-spaced</a>,
+depending on the
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+strategy in effect. This behaviour can be disabled for individual
+floats with <kbd>NO_SHIM</kbd> or <kbd>NO_FLEX</kbd>.
+</p>
+
+<p>
+If you&#8217;d like more space around a float, you must add it
+manually, for example with
+<a href="typesetting.html#ald">ALD</a>
+or
+<a href="typesetting.html#space">SPACE</a>.
+</p>
+
+<!-- -FLOAT- -->
+
+<div class="macro-id-overline">
+<h3 id="float" class= "macro-id">FLOAT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FLOAT</b> <kbd class="macro-args">&lt;arguments&gt; | &lt;anything&gt;
+<br/>
+Arguments:
+<br/>
+[ ADJUST +|-&lt;amount&gt; ] \
+<br/>
+[ FORCE ] \
+<br/>
+[ SPAN ] \
+<br/>
+[ INDENT &lt;value&gt; ] \
+<br/>
+[ CENTER ] \
+<br/>
+[ RIGHT ] \
+<br/>
+[ NO_SHIM] \
+<br/>
+[ NO_FLEX ] \
+<br/>
+[ TARGET "&lt;name&gt;" ]</kbd>
+<br/>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+FLOAT is intended for use with the document processing macros only.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+As a general rule, avoid consecutive floats that have no intervening
+<a href="definitions.html#running">running text</a>.
+Rather, wrap all the material into a single float.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Deferred floats are output with the left indent that was in effect
+when they were input. If you do not want this behaviour, disable
+the indent prior to inputting the float and re-enable it afterward.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Mom treats <b>pic</b> pre-processor directives and pdf images as
+floats so it is not necessary to wrap them inside FLOAT unless
+additional material is included in what is floated.
+</p>
+</div>
+
+<p style="margin-top: -.5em">
+To begin a float, simply invoke <kbd>.FLOAT</kbd> and follow it with
+whatever you want the float to contain. When you&#8217;re done,
+invoke <kbd>.FLOAT&nbsp;OFF</kbd> (or <kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc).
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">ADJUST</h5>
+
+<p>
+The optional <kbd>ADJUST</kbd> argument tells mom to raise
+(<kbd>+</kbd>) or lower (<kbd>-</kbd>) the float <i>within
+the space allotted to it</i> by the specified amount.
+<kbd>&lt;amount&gt;</kbd> must have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended. <kbd>ADJUST</kbd> gives you precise control over
+the vertical centering of floats, allowing you to compensate for
+unequal spacing that may result from the automatic
+<a href="docprocessing.html#shim">shimming</a>
+or
+<a href="docprocessing.html#flex">flex-spacing</a>
+floats.
+</p>
+
+<p>
+<kbd>ADJUST</kbd> is ignored for the first float deferred to
+a following page but respected for subsequent deferred floats
+output immediately afterwards.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">FORCE</h5>
+
+<p>
+The <kbd>FORCE</kbd> argument instructs mom to output the float
+exactly where it occurs in the input file. With <kbd>FORCE</kbd>,
+mom immediately breaks to a new page to output the float if it does
+not fit on the current page. While this is somewhat contrary to the
+notion of floats (i.e. that running text should continue to fill the
+page), there are circumstances where it may be desirable.
+</p>
+
+<p>
+If you need to force a page break after completion of a float that
+has been deferred to a subsequent page, insert <kbd>\!.bp</kbd>
+immediately before terminating the float.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SPAN</h5>
+
+<p>
+The <kbd>SPAN</kbd> argument tells mom that a float, if deferred,
+may carry onto multiple pages. Please note that <kbd>SPAN</kbd> may
+not be used for floats containing a boxed table; mom will abort with
+a warning should this occur. Unboxed tables, on the other hand, are
+acceptable within floats that are given the <kbd>SPAN</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">INDENT</h5>
+
+<p>
+<kbd>INDENT</kbd> allows you to indent a float from the left margin
+by a specified value. The value must have a
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CENTER</h5>
+
+<p>
+<kbd>CENTER</kbd> instructs mom to center a float if it is not
+already centered by default.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">RIGHT</h5>
+
+<p>
+<kbd>RIGHT</kbd> instructs mom to place a float at the right of the
+page; the longest line in the float will be flush with the
+page&#8217;s right margin.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_SHIM</h5>
+
+<p>
+<kbd>NO_SHIM</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">shimming</a>
+after a float, which she will do automatically when shimming is
+enabled, which it is by default. Shimming ensures that running text
+after the float falls properly on the page&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+but can result in slightly unequal spacing above and below
+(correctable with the <kbd>ADJUST</kbd> argument).
+<kbd>NO_SHIM</kbd> is useful when you have several floats on the
+page and there are visible differences in the spacing beneath them
+as a result of shimming. To ensure a flush bottom margin, the last
+float on the page should be shimmed, i.e. should not be given the
+<kbd>NO_SHIM</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_FLEX</h5>
+
+<p>
+<kbd>NO_FLEX</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>
+after a float, which she will do automatically when flex-spacing is
+enabled. <kbd>NO_FLEX</kbd> is useful when you have several floats
+on the page and you want to distribute excess vertical
+whitespace on the page amongst other flex-spacing points on the
+page. If there are no others, the final float should be
+flex-spaced, i.e. not given the <kbd>NO_FLEX</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">TARGET</h5>
+
+<p>
+<kbd>TARGET</kbd> followed by a unique name surrounded by
+double-quotes creates a PDF target for the float so that it may be
+linked to from other places in the file (with PDF_LINK; see
+<a href="version-2.html#mom-pdf">Producing PDFs with groff and mom</a>).
+</p>
+
+<p>
+Floats cannot be autolabelled, so unlike pdf images and
+pre-processor material, the target name cannot be used as a string
+to generate the target&#8217;s label number in running text. Label
+numbers for floats must be entered explicitly running text, however
+they may be entered symbolically in the argument to
+<a href="#label">LABEL</a>.
+See
+<a href="#reserved-label-strings">Reserved variables for
+labels</a>.
+</p>
+
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Floats use
+<a href="definitions.html#filled">no-fill mode</a>,
+with each input line beginning at the left margin. If this is not
+what you want, you must specify the preferred horizontal alignment
+<i>within the float</i> (e.g.
+<a href="typesetting.html#lrc">CENTER</a>
+or
+<a href="typesetting.html#lrc">RIGHT</a>).
+</p>
+
+<p class="tip-bottom">
+Furthermore, if you want text
+<a href="definitions.html#filled">filled</a>,
+you must specify
+<a href="typesetting.html#quad"><kbd>.QUAD&nbsp;L|R|C</kbd></a>
+or
+<a href="typesetting.html#justify"><kbd>.JUSTIFY</kbd></a>&mdash;again,
+within the float.
+</p>
+</div>
+
+<h2 id="float-label-caption" class="docs">Labelling and captioning floats</h2>
+
+<p>
+Labelling and captioning of tables (<b>tbl</b>), equations
+(<b>eq</b>), diagrams (<b>pic</b>) and pdf images
+(<a href="#pdf-image">PDF_IMAGE</a>)
+are handled by the macros that initiate them, regardless of whether
+they&#8217;re wrapped inside a float. However, since a float may
+contain any valid input, it is sometimes necessary to add a label
+and/or caption to the float itself.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">Important:</span>
+Always use the native labelling/captioning facilities for
+preprocessor output and pdf images rather than labelling the
+containing float, if any.
+</p>
+</div>
+
+<p>
+The macros to label and caption floats are
+<a href="#label">LABEL</a>
+and
+<a href="#caption">CAPTION</a>.
+If a label or caption is to appear above the float, the appropriate
+macro is entered immediately after
+<a href="#float">FLOAT</a>.
+If a label or caption is to appear beneath the float, the appropriate
+macro is entered immediately before ending the float with
+<kbd>FLOAT&nbsp;OFF</kbd>.
+</p>
+
+<p>
+If a label and caption are to be joined, the <b>LABEL</b> macro is
+used to enter both by passing the <kbd>CAPTION</kbd> argument to
+<kbd>LABEL</kbd>.
+</p>
+
+<p>
+It is impossible for mom to know the contents of a float, so
+floats cannot be autolabelled. Each label must be entered
+explicitly. Mom does, however, provide a way to enter both
+chapter numbers and incrementing label numbers
+<a href="#reserved-label-strings">symbolically</a>,
+easing the burden of keeping the numbering scheme intact as
+labelled floats are added to or subtracted from a document.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Tip:</span>
+<a href="docelement.html#blockquote">QUOTE</a>
+and
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>
+may also be labelled and captioned using <b>LABEL</b> and
+<b>CAPTION</b>.
+</p>
+</div>
+
+<h4 class="docs">Spacing</h4>
+
+<p>
+If a float has a caption at the top, the caption is whitespaced
+1/4 linespace from running text and the float itself begins
+an additional 1/4 linespace below the caption. If the float has
+no corresponding label at the bottom, the float observes the
+bottom-spacing rules for all floats, namely that no extra space is
+added other than
+<a href="docprocessing.html#shim">shimming</a>
+or
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>,
+depending on the
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+in effect.
+</p>
+
+<p>
+If a float has a label at the bottom but no caption at the top, the
+float begins exactly where started, i.e. with no extra whitespace
+between running text and the float. The label (and attached
+caption, if any) are whitespaced 1/4 linespace below the float,
+with an additional 1/4 linespace underneath <i>plus</i> shimming or
+flex-spacing.
+</p>
+
+<p>
+Labelled/captioned quotes and blockquotes inside floats treat the
+labels/captions as part of the quote so the spacing above and
+below the whole float block is what you&#8217;d expect from quotes
+normally, while the spacing between the label/caption and the quote
+is 1/4 linespace.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="label" class="macro-id">LABEL</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LABEL</b>
+<kbd class="macro-args">"&lt;label&gt;" [ CAPTION "&lt;caption&gt;" ] [ SHORT_CAPTION ] \
+<br/>
+[ TO_LIST FIGURES | TABLES | EQUATIONS ]</kbd>
+</div>
+
+<p>
+The placement of a float&#8217;s label depends on where you put it
+inside the float.
+</p>
+
+<p>
+If you want a label at the top, put <kbd>LABEL</kbd> immediately
+underneath
+<a href="#float">FLOAT</a>
+and follow it with the text of the label surrounded by double-quotes:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ .LABEL "Fig. 1"
+</span>
+If you want a label at the bottom, put <kbd>LABEL</kbd> immediately
+before ending the float:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ &lt;contents of float&gt;
+ .LABEL "Fig. 1"
+ .FLOAT OFF
+</span>
+</p>
+
+<h3 id="reserved-label-strings" class="docs" style="text-transform: none">Reserved variables for labels</h3>
+
+<p>
+Mom reserves strings you may use when entering
+label text after the <kbd>LABEL</kbd> argument.
+<kbd><span class="nobr">\*[chapter]</span></kbd> holds the current chapter
+or major section number. <kbd><span class="nobr">\*[fig-label]</span></kbd>,
+<kbd><span class="nobr">\*[tbl-label]</span></kbd>, and
+<kbd><span class="nobr">\*[eqn-label]</span></kbd> increment the label number of
+the appropriate label type by one, and are initially set to zero
+after each invocation of
+<a href="docprocessing.html#start">START</a>
+when the
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+is <kbd>CHAPTER</kbd>. Thus, in every chapter requiring numbered
+float labels, you can enter
+<br/>
+<span class="pre-in-pp">
+ .LABEL "Fig. \*[chapter].\*[fig-label]. TO_LIST FIGURES
+</span>
+which, assuming the third autolabelled float of Chapter 2, will
+produce <kbd>Fig. 2.3.</kbd>
+</p>
+
+<p>
+If your <b>DOCTYPE</b> is <kbd>DEFAULT</kbd> or <kbd>NAMED</kbd>,
+you must reset <kbd><span class="nobr">\*[&lt;type&gt;-label]</span></kbd> after
+each
+<a href="docprocessing.html#collate">COLLATE</a>
+by entering
+<br/>
+<span class="pre-in-pp">
+ .AUTOLABEL_&lt;list type&gt;
+</span>
+before <kbd>.START</kbd>.
+</p>
+
+<p>
+If
+<a href="#autolabel">autolabelling</a>
+is enabled, e.g. <kbd>.AUTOLABEL_IMAGES</kbd> (List
+of Figures) or <kbd>.AUTOLABEL_PIC</kbd> (also List of Figures),
+the prefix is stripped from the label when it appears in
+the List. Thus, if you have invoked <kbd>.AUTOLABEL_PIC</kbd>,
+<br/>
+<span class="pre-in-pp">
+ .LABEL "Fig. 1.1."
+ CAPTION "Caption for label \
+ TO_LIST FIGURES
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .LABEL "Fig. \*[chapter].\*[label]." \
+ CAPTION "Caption for label \
+ TO_LIST FIGURES
+</span>
+will appear in the List of Figures as &#8220;1.1.&nbsp;&nbsp;Caption for
+label&#8221;.
+</p>
+
+<h3 class="docs">CAPTION</h3>
+
+<p>
+If you&#8217;d like a caption attached to the label, pass
+<kbd>LABEL</kbd> the optional argument <kbd>CAPTION</kbd> followed
+by the text of the caption as a single string surrounded by
+double-quotes:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ &lt;contents of float&gt;
+ .LABEL "Fig. 1" CAPTION "Caption for Fig. 1"
+ .FLOAT OFF
+</span>
+Note that the
+<a href="#caption">CAPTION</a>
+macro by itself permits entering several strings, each output on
+a line by itself, whereas the <kbd>CAPTION</kbd> argument to
+<kbd>LABEL</kbd> accepts only a single string.
+</p>
+
+<h3 class="docs">SHORT_CAPTION</h3>
+
+<p>
+If your caption runs long and you&#8217;re including the
+float in a &#8220;List of ...&#8221;, (see
+<a href="#list-of">TO_LIST</a>, below)
+<kbd>SHORT_CAPTION</kbd> tells
+mom how you&#8217;d like the caption to appear in the List.
+</p>
+
+<h3 class="docs">TO_LIST</h3>
+
+<p>
+The optional argument <kbd>TO_LIST</kbd> tells mom to add the
+float&#8217;s label and attached caption, if present, to the specified
+<a href="#lists-of">list</a>,
+which may be one of <kbd>FIGURES</kbd>, <kbd>TABLES</kbd>, or
+<kbd>EQUATIONS</kbd>.
+</p>
+
+<p>
+If, for some reason, you want only the caption appended to the List,
+give <kbd>\&amp;</kbd> as the first argument to LABEL, followed by
+<kbd>CAPTION&nbsp;&#8220;caption&#8221;</kbd>:
+<br/>
+<span class="pre-in-pp">
+ .LABEL \&amp; \
+ CAPTION "caption"
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Tip:</span>
+<kbd>TO_LIST</kbd> can be used to handle situations where labelled
+floats need to go to a uniquely named &#8220;List of ...&#8221;.
+</p>
+
+<p class="tip-bottom">
+Suppose, for example, your document contains figures (e.g.
+<b>pic</b> output or pdf-images) and tables, and you need a
+&#8220;List of Examples&#8221; for floats labelled &#8220;Example
+n.n&#8221;. By changing the default title string for
+<a href="#lists-macros">LIST_OF_EQUATIONS</a>
+to &#8220;List of Examples&#8221;, you may include the float in your
+List of Examples with
+<br/>
+<span class="pre-in-pp">
+ .TO_FIGURES EQUATIONS
+</span>
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="caption" class="macro-id">CAPTION</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CAPTION</b>
+<kbd class="macro-args">"&lt;caption&gt;" \
+<br/>
+[ "&lt;additional line&gt;" [ "&lt;additional line&gt;"... ] ] \
+<br/>
+[ TO_LIST FIGURES | TABLES | EQUATIONS ]</kbd>
+</div>
+
+<p>
+The placement of a float&#8217;s caption depends on where you put it
+inside the float.
+</p>
+
+<p>
+If you want a caption at the top, put <kbd>CAPTION</kbd> immediately
+underneath
+<a href="#float">FLOAT</a>
+and follow it with the text of the caption surrounded by double-quotes:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ .CAPTION "Caption at top of float"
+</span>
+<b>CAPTION</b> can take multiple string arguments, allowing for
+captions that run to several lines. There is a caveat: the strings
+are not automatically broken into individual lines. You must
+provide strings that include literal breaks or spaces:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ .CAPTION "Caption" ".BR" "at top" ".BR" "of float"
+</span>
+or, easier to read:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ .CAPTION "Caption" \
+ ".BR" \
+ "at top" \
+ ".BR" \
+ "of float"
+</span>
+If you want a caption at the bottom, put <kbd>CAPTION</kbd> immediately
+before ending the float:
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ &lt;contents of float&gt;
+ .CAPTION "Caption at bottom of float"
+ .FLOAT OFF
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you want a caption attached to a label, do not use
+<b>CAPTION</b> by itself. Rather, invoke
+<a href="#label"><kbd>.LABEL</kbd></a>
+with the <kbd>CAPTION</kbd> argument.
+</p>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="preprocessor-support" class="docs">Preprocessor support</h2>
+
+<p>
+Mom offers full support for the <b>eqn</b> (equations), <b>pic</b>
+(diagrams), <b>grap</b> (graphs), <b>tbl</b> (tables) and
+<b>refer</b> (bibliographies/citations) preprocessors, including
+captions, labelling, autolabelling, and inclusion in the Lists of
+Equations, Figures, and Tables.
+</p>
+
+<p>
+Other than <b>refer</b>, which is discussed at length in the <a
+href="refer.html">Bibliographies and references</a> section, it is
+beyond the scope of this documentation to cover full preprocessor
+usage. Consult the manpages <b>eqn(1)</b>, <b>pic(1)</b>,
+<b>grap(1)</b> and <b>tbl(1)</b> for instructions.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Version 2.0-c changes</span>
+<br/>
+Preprocessor support has been revised and expanded as of version 2.0-c.
+Please read the following sections thoroughly and update any
+documents created with versions prior to 2.0-c as necessary.
+</p>
+</div>
+
+<h3 id="tbl" class="docs">tbl support</h3>
+
+<p>
+Mom documents can include tables generated with the groff
+preprocessor <b>tbl</b>. If you are unfamiliar with <b>tbl</b>, I
+recommend downloading a copy of
+<a href="http://plan9.bell-labs.com/10thEdMan/tbl.pdf">Tbl - A Program to Format Tables</a>,
+which, in addition to providing a thorough introduction, contains
+some fine examples. If you use <b>tbl</b>, you must pass groff or
+pdfmom the <b>-t</b> flag when you process the file.
+</p>
+
+<p>
+Tables formatted with <kbd>tbl</kbd> begin with the macro
+<kbd>.TS</kbd> (<b>T</b>able <b>S</b>tart) and end with
+<kbd>.TE</kbd> (<b>T</b>able <b>E</b>nd). Depending on where you
+want your tables output in a document, you may need to wrap
+your <kbd>tbl</kbd> code inside a
+<a href="#floats-intro">float</a>,
+or pass the <kbd>H</kbd> argument to <kbd>.TS</kbd>.
+</p>
+
+<p>
+If you put <kbd>tbl</kbd> code inside a float, the table will be
+output immediately if it fits on the page, or deferred to the top
+of the next page if it doesn&#8217;t. If you prefer a table to
+begin where you say and span over to the next page, or if you know
+for certain a boxed table will run to multiple pages, simply pass the
+<kbd>H</kbd> argument to <kbd>.TS</kbd>, along with a corresponding
+<a href="#th"><kbd>TH</kbd></a>
+and do not wrap the table inside a float.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If you create a boxed table that will span several pages, do not
+wrap the table inside a float. Boxed, multipage tables and FLOAT
+should be considered mutually exclusive. This restriction is
+imposed by the <kbd>tbl</kbd> preprocessor itself, not groff or
+mom. Unboxed tables that span several pages, however, are
+acceptable within FLOAT.
+</p>
+</div>
+
+<h4 id="tbl-placement" class="docs">tbl placement in mom docs</h4>
+
+<p>
+If you use <kbd>.TS</kbd> without the <kbd>H</kbd> argument (and
+therefore no <kbd>.TH</kbd>), tables that fit on the page are output
+in position. If there is not enough room to output the table,
+<kbd>tbl</kbd> will abort with message instructing you to use
+<kbd>.TS H/.TH</kbd>. Given that <kbd>.TS</kbd> without <kbd>H</kbd>
+may sometimes fail, it is advisable to begin all <b>tbl</b> blocks
+with <kbd>.TS H</kbd>.
+</p>
+
+<p>
+If you give <kbd>.TS</kbd> the <kbd>H</kbd> argument (with a
+corresponding <kbd>.TH</kbd>), tables will be output in position and
+span as many pages as necessary to complete output. A table header
+will be printed at the top of each page&#8217;s table output. In the
+event that there is not enough room to print the table header and
+at least one row of table data near the bottom of a page, mom will
+break to a new page before beginning table output, leaving a gap
+in
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+Boxed tables inside
+<a href="#floats-intro">floats</a>
+are output in position if they fit on the page. If not, they are
+deferred to the top of the next page without a break in running
+text. Boxed tables within floats may not, however, span multiple
+pages; mom will abort with a message should a boxed table in a float
+run longer than the page.
+</p>
+
+<p>
+Unboxed tables inside floats may span multiple pages provided the
+<kbd>SPAN</kbd> argument has been given to
+<a href="#float">FLOAT</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+The vertical spacing around unfloated tables may appear slightly
+unequal, especially if there are several tables on the page. This
+is a result of the
+<a href="docprocessing.html#shim">shimming</a>
+or
+<a href="docprocessing.html#flex">flex-spacing</a>
+that mom applies automatically after each table, depending on which
+<a href="docprocessing.html#vertical-whitespace-management">vertical whitespace management</a>
+is in effect. You may
+disable shimming or flex-spacing with
+<a href="docprocessing.html#no-shim">NO_SHIM</a>
+or
+<a href="docprocessing.html#no-flex">NO_FLEX</a>,
+or by passing the <kbd>NO_SHIM</kbd> or <kbd>NO_FLEX</kbd> argument
+to <kbd>.TS</kbd>. In either case, you will still likely want to
+adjust the spacing around with table with the <kbd>ADJUST</kbd>
+argument to <kbd>.TS</kbd>. Tables inside floats should be adjusted
+with the <kbd>ADJUST</kbd> argument to
+<a href="#float">FLOAT</a>,
+not the <kbd>ADJUST</kbd> argument to <kbd>.TS</kbd>.
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="ts-te" class= "macro-id">.TS / .TH / .TE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <a href="#ts"><b>TS</b></a>
+<kbd class="macro-args"><br/>
+Arguments:
+<br/>
+&nbsp;&nbsp;[ H ]
+<br/>
+&nbsp;&nbsp;[ BOXED ]
+<br/>
+&nbsp;&nbsp;[ CENTER ]
+<br/>
+&nbsp;&nbsp;[ NEEDS ]
+<br/>
+&nbsp;&nbsp;[ ADJUST +|-&lt;vertical adjustment&gt;]</kbd>
+<span style="font-size: 95%">
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+required)
+</span>
+<kbd class="macro-args"><br/>
+&nbsp;&nbsp;[ NO_SHIM ]
+<br/>
+&nbsp;&nbsp;[ NO_FLEX ]
+<br/>
+&nbsp;&nbsp;[ CAPTION "&lt;caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ SHORT_CAPTION "&lt;short caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ LABEL "&lt;label&gt;" ]
+<br/>
+&nbsp;&nbsp;[ TARGET "&lt;name&gt;" ]
+</kbd>
+<br/>
+Macro: <a href="#th"><b>TH</b></a> <kbd class="macro-args">(optional, only if .TS H)</kbd>
+<br/>
+Macro: <a href="#te"><b>TE</b></a> <kbd class="macro-args">[ SOURCE "&lt;text of table source&gt;" ]</kbd>
+</div>
+
+<p>
+Tables to be formatted with <kbd>tbl</kbd> begin with the macro
+<kbd>.TS</kbd> and end with <kbd>.TE</kbd>. Global <kbd>tbl</kbd>
+options (&#8220;flags&#8221;), formatting, and data (per
+<kbd>tbl(1)</kbd>) come between the two macros.
+<br/>
+<span class="pre-in-pp">
+ .TS
+ &lt;tbl options, formatting, and data&gt;
+ .TE
+</span>
+Tables may be wrapped inside a
+<a href="#float-intro">float</a>,
+in which case, the entire table will be output on the current page
+if it fits, or deferred to the next page if it doesn&#8217;t.
+<br/>
+<span class="pre-in-pp">
+ .FLOAT
+ .TS
+ &lt;tbl options, formatting, and data&gt;
+ .TE
+ .FLOAT OFF
+</span>
+</p>
+
+<div class="macro-id-overline">
+<h4 id="ts" class="docs" style="font-size: 100%; margin-top: .5em">The .TS macro</h4>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note: Version 2.0-c change</span>
+<br/>
+2.0-c introduces revisions to the handling of labels and/or
+captions, which, along with <kbd>NO_SHIM</kbd>, must now be given
+as arguments to <kbd>.TS</kbd> rather than <kbd>.TE</kbd>, as was
+the case formerly. Please read this section carefully if you have
+documents containing tables as they may need to be updated.
+</p>
+</div>
+
+<div class="box-important" style="margin-top: 1em">
+<p class="tip">
+<span class="important">IMPORTANT:</span>
+All arguments to <b>TS</b> must appear on the same line as
+<kbd>.TS</kbd>. Do not attempt to break them up with the
+&#8220;line-continued&#8221; backslash. You may want to set your
+text editor to &#8220;wrap&#8221; mode in order to see all your
+arguments. This annoyance stems from the preprocessor mechanism
+itself, not groff or mom.
+</p>
+</div>
+
+<p>
+The <b>TS</b> macro must be invoked before entering a <kbd>tbl</kbd>
+block. You may give as many or as few of its arguments as required,
+in any order, although it is advisable to put <kbd>CAPTION</kbd>,
+<kbd>SHORT_CAPTION</kbd>, and/or <kbd>LABEL</kbd> last.
+</p>
+
+<h5 id="h" class="docs" style="margin-top: 1em; text-transform: none">H</h5>
+
+<p>
+With the <b>H</b> argument, a table will span as many pages as
+necessary, with or without a running header. The placement of the
+corresponding
+<a href="#th"><kbd>.TH</kbd></a>,
+which is required whenever the <b>H</b> argument is given,
+determines what, if anything, goes in the header. Compare the
+following:
+<span class="pre-in-pp">
+ .TS H .TS H
+ c s s c s s
+ c s s c s s
+ c c c c c c
+ n n n. n n n.
+ Percent Increase .TH
+ 2002-2012 Percent Increase
+ .TH 2002-2012
+ &lt;tbl data&gt; &lt;tbl data&gt;
+ .TE .TE
+</span>
+The first example will create a table that spans multiple
+pages if necessary, with a running header (&#8220;Percent
+Increase&nbsp;/&nbsp;2002-2012&#8221;) for that table appearing at
+the top of each page until the table ends. The second example,
+equally, may run to several pages, but without the running header.
+See
+<a href="#th"><b>TH</b></a>
+for an explanation of <kbd>.TH</kbd> placement.
+</p>
+
+<div id="h-tip" class="box-tip">
+<p class="tip">
+<span class="note">Tip:</span>
+Generally speaking, it&#8217;s a good idea to get into the habit
+of using <kbd>.TS H</kbd> all the time, since there are no
+circumstances under which it fails, whereas <kbd>.TS</kbd> without
+<kbd>H</kbd> will fail on tables that exceed the page length.
+</p>
+</div>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">BOXED</h5>
+
+<p>
+If a table is to be boxed (i.e., <kbd>tbl</kbd> is given the flags
+<kbd>'box'</kbd> or <kbd>'allbox'</kbd>) you must pass the argument
+<kbd>BOXED</kbd> to <kbd>.TS</kbd>, as in this example:
+<br/>
+<span class="pre-in-pp">
+ .TS BOXED
+ allbox;
+ c s s
+ c c c
+ n n n.
+ &lt;tbl data&gt;
+ .TE
+</span>
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CENTER</h5>
+
+<p>
+If a table is to be centered on the page, (i.e., <kbd>tbl</kbd> is
+given the <kbd>'center'</kbd> flag), you must pass the argument
+<kbd>CENTER</kbd> to <kbd>.TS</kbd>, as in this example, which
+creates a (possibly) multipage boxed table, centered on the page,
+with a running header.
+<span class="pre-in-pp">
+ .TS H BOXED CENTER
+ allbox center;
+ c s s
+ c s s
+ c c c
+ n n n.
+ Percent Increase
+ 2002-2012
+ .TH
+ &lt;tbl data&gt;
+ .TE
+</span>
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NEEDS</h5>
+
+<p>
+If a table is not inside a float and you pass <kbd>.TS </kbd> the
+<kbd>H</kbd> argument (which you should; see the tip
+<a href="#h-tip">here</a>),
+mom begins output immediately where the table occurs in the
+input file <i>if there is enough room on the output page for the
+table header plus at least one row of table data</i>. If there
+isn&#8217;t enough room, mom breaks to a new page before beginning
+the table, leaving a gap in
+<a href="definitions.html#running">running text</a>
+at the bottom of the previous page. If, for aesthetic reasons,
+you would prefer that mom require more than one row of table data
+beneath the header near the bottom of a page, you may increase the
+number with the <kbd>NEEDS</kbd> argument, followed by the desired
+number of rows.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">ADJUST</h5>
+
+<p>
+<kbd>ADJUST</kbd> lets you raise (<kbd>-</kbd>) or lower
+(<kbd>+</kbd>) the table
+<span style="font-style: italic">within the space allotted for it</span>
+by the amount you specify. This is useful for achieving good
+optical centering between surrounding blocks of type. A unit of
+measure is required.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_SHIM</h5>
+
+<p>
+<kbd>NO_SHIM</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">shimming</a>
+after a table, which she will do automatically when shimming is
+enabled, which it is by default. Shimming ensures that running text
+after the table falls properly on the page&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+but can result in slightly unequal spacing above and below
+(correctable with the <kbd>ADJUST</kbd> argument).
+<kbd>NO_SHIM</kbd> is useful when you have several tables on the
+page and there are visible differences in the spacing beneath them
+as a result of shimming. To ensure a flush bottom margin, the last
+table on the page should be shimmed, i.e. should not be given the
+<kbd>NO_SHIM</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_FLEX</h5>
+
+<p>
+<kbd>NO_FLEX</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>
+after a table, which she will do automatically when flex-spacing is
+enabled. <kbd>NO_FLEX</kbd> is useful when you have several tables
+on the page and you want to distribute excess vertical
+whitespace on the page amongst other flex-spacing points on the
+page. If there are no others, the final table should be
+flex-spaced, i.e. not given the <kbd>NO_FLEX</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CAPTION</h5>
+
+<p>
+<kbd>CAPTION</kbd> allows you to give the table a caption. By
+default, the caption appears above the table, but may be attached to
+the label that appears beneath the table. See
+<a href="#caption-after-label">CAPTION_AFTER_LABEL</a>
+in
+<a href="#captions-and-labels">Captions and labels</a>.
+The text of the caption must be surrounded by double-quotes.
+</p>
+
+<p>
+Please note that if your table has a caption, you must invoke
+<kbd>TS</kbd> with the <kbd>H</kbd> flag, which also entails the use
+of
+<a href="#th">TH</a>.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SHORT_CAPTION</h5>
+
+<p>
+<kbd>SHORT_CAPTION</kbd> allows you to trim long captions for
+inclusion in the List of Tables. The text you supply, surrounded
+by double-quotes, is what will appear in the List.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">LABEL</h5>
+
+<p>
+<kbd>LABEL</kbd>, if given, appears beneath the table. The text you
+supply, surrounded by double-quotes, is how the table is labelled
+in both the document proper and the List of Tables. Mom provides
+an auto-labelling facility for tables (see
+<a href="#autolabel">AUTOLABEL</a>),
+which, if enabled, overrides the <kbd>LABEL</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">TARGET</h5>
+
+<p>
+<kbd>TARGET</kbd> followed by a unique name surrounded by
+double-quotes creates a PDF target for the table so that it may be
+linked to from other places in the file (with PDF_LINK; see
+<a href="version-2.html#mom-pdf">Producing PDFs with groff and mom</a>).
+</p>
+
+<p>
+<b><i>Please note:</i></b> The following functionality is available
+only with groff 1.22.4 or later.
+</p>
+
+<p>
+When
+<a href="#autolabel">autolabelling</a>
+is enabled and the document is processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+the target name can be used to generate the target&#8217;s label
+number in running text if it is entered as a groff string, i.e. of
+the form <kbd><span class="nobr">\*[name]</span></kbd>. For example, if you
+create a target called &#8220;foo&#8221; for a table whose autolabel
+number would be 3, entering
+<br/>
+<span class="pre-in-pp">
+ See
+ .PDF_LINK foo "Table \*[foo]"
+</span>
+anywhere in running text would result in a pdf link that reads
+&#8220;Table 3&#8221;. If chapter numbers are being prefixed to
+labels, the same string in, say, chapter 5 would produce the pdf
+link &#8220;Table 5.3&#8221;.
+</p>
+
+<div class="macro-id-overline">
+<h4 id="th" class="docs" style="font-size: 100%; margin-top: .5em">The .TH macro</h4>
+</div>
+
+<p>
+The <b>TH</b> macro (<b>T</b>able <b>H</b>eader), which is required
+when you begin a table with <kbd>.TS H</kbd>, allows you to
+determine what goes in a table&#8217;s running header if it spans
+multiple pages. Placing <kbd>.TH</kbd> under the first row of
+<kbd>tbl</kbd> data makes the first row the header. If placed under
+the second row, the first and second rows form the header, and so
+on.
+</p>
+
+<p>
+As there are sometimes reasons to run <kbd>.TS H</kbd> when
+you don&#8217;t, in fact, want a running header (e.g. when
+your table has a caption), you can suppress it by placing
+<kbd>.TH</kbd> immediately underneath your <kbd>tbl</kbd> formatting
+specifications, the last line of which always ends with a period
+(see <kbd>tbl(1)</kbd>).
+</p>
+
+<p>
+See the
+<kbd><a href="#h">H</a></kbd>
+argument to <kbd>.TS</kbd> for examples demonstrating <kbd>.TH</kbd>
+placement.
+</p>
+
+<div class="macro-id-overline">
+<h4 id="te" class="docs" style="font-size: 100%; margin-top: .5em">The .TE macro</h4>
+</div>
+
+<p>
+<kbd>tbl</kbd> blocks must be terminated with <kbd>.TE</kbd>,
+which, as of version 2.0-c, takes a single, optional argument,
+<kbd>SOURCE</kbd>. (Formerly, <kbd>TE</kbd> took a label/caption
+argument along with arguments controlling placement.) The argument
+is followed by the text of the table&#8217;s source, surrounded by
+double-quotes. The SOURCE argument may only be used if
+<a href="#mla">MLA</a>
+(Modern Language Association) style is enabled.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<h3 id="pic" class="docs">pic support</h3>
+
+<p>
+Mom documents can include diagrams generated with the groff
+preprocessor <b>pic</b>. If you are unfamiliar with <b>pic</b>, I
+recommend downloading a copy of
+<a href="http://www.kohala.com/start/troff/gpic.raymond.ps">Making Pictures with GNU PIC</a>
+which provides a thorough introduction and contains many examples.
+If you use <b>pic</b>, you must pass groff or pdfmom the <b>-p</b>
+flag when you process the file.
+
+</p>
+
+<p>
+Diagrams created with <kbd>pic</kbd> begin with the macro
+<kbd>.PS</kbd> (<b>P</b>ic <b>S</b>tart) and end with
+<kbd>.PE</kbd> (<b>P</b>ic <b>E</b>nd). Everything between them is
+interpreted by the preprocessor as pic instructions. Please note:
+<i>Making Pictures with GNU PIC</i> says that <kbd>.PF</kbd> can
+also be used to terminate a pic diagram, but this is not supported
+by mom.
+</p>
+
+<p>
+Pic diagrams are always centered. Note that this represents a
+change from version 2.0-b of mom, where centering diagrams required
+passing <kbd>-mpic</kbd> to <b>groff</b> or
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+on the command line.
+</p>
+
+<p>
+In addition, mom treats <b>pic</b> diagrams identically to
+<a href="#floats-intro">floats</a>,
+which is to say that if a diagram doesn&#8217;t fit on the output
+page, she will defer it to the top of the next page while continuing
+to process
+<a href="definitions.html#running">running text</a>.
+<kbd>ADJUST</kbd> is ignored whenever a diagram is deferred, except
+when moving from column to column on the same page, when the diagram
+may need to be optically adjusted. Subsequent diagrams that do not
+fit, if any, are output in order immediately after the first.
+</p>
+
+<p>
+Lastly, if your diagrams contain text, you may set all the type
+parameters for the text (family, font, size, leading) separately
+from the <b>pic</b> block with the macro
+<a href="#pic-text-style">PIC_TEXT_STYLE</a>.
+If you need to change the type parameters within the block
+on-the-fly, you must use <b>pic</b>&#8217;s native facilities for
+doing so.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="ps-pe" class= "macro-id">.PS / .PE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PS</b>
+<kbd class="macro-args">
+<br/>
+Arguments: [ &lt;width&gt;&nbsp;&lt;height&gt; ]
+<kbd class="macro-args">
+<br/>
+&nbsp;&nbsp;[ LEFT ]</kbd>
+<br/>
+&nbsp;&nbsp;[ ADJUST +|-&lt;vertical adjustment&gt;]</kbd>
+<span style="font-size: 95%">
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+required)
+</span>
+<kbd class="macro-args"><br/>
+&nbsp;&nbsp;[ NO_SHIM ]
+<br/>
+&nbsp;&nbsp;[ NO_FLEX ]
+<br/>
+&nbsp;&nbsp;[ CAPTION "&lt;caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ SHORT_CAPTION "&lt;short caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ LABEL "&lt;label&gt;" ]
+<br/>
+&nbsp;&nbsp;[ TARGET "&lt;name&gt;" ]
+</kbd>
+<br/>
+Macro: <b>PE</b> <span style="font-size: 95%">(no arguments; ends
+the <b>pic</b> block)</span>
+</div>
+
+<div class="box-important" style="margin-top: 1.5em">
+<p class="tip">
+<span class="important">IMPORTANT:</span>
+All arguments to <b>PS</b> must appear on the same line as
+<kbd>.PS</kbd>. Do not attempt to break them up with the
+&#8220;line-continued&#8221; backslash. You may want to set your
+text editor to &#8220;wrap&#8221; mode in order to see all your
+arguments. This annoyance stems from the preprocessor mechanism
+itself, not groff or mom.
+</p>
+</div>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">'width' and 'height'</h5>
+
+<p>
+The <kbd>width</kbd> and <kbd>height</kbd> arguments to
+<kbd>.PS</kbd> are idiosyncratic owing to the preprocessor itself.
+Both are optional and both expect a value in inches, so neither
+argument should have a
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended.
+</p>
+
+<p>
+If the <kbd>width</kbd> argument is supplied, the diagram, but
+not any text it contains, is scaled to the given width. If a
+literal width argument of <kbd>0</kbd> (zero) is given and a
+<kbd>height</kbd> argument is supplied, the diagram, but not any
+text it contains, will be scaled to the requested height. In the
+case of two non-zero arguments being given, only the height scaling
+is applied.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">LEFT</h5>
+
+<p>
+By default, pic diagrams are centred on the page. If you would
+prefer them to be flush left, pass <kbd>PS</kbd> the <kbd>LEFT</kbd>
+argument.
+</p>
+<h5 class="docs" style="margin-top: 1em; text-transform: none">ADJUST</h5>
+
+<p>
+<kbd>ADJUST</kbd> lets you raise (<kbd>-</kbd>) or lower
+(<kbd>+</kbd>) a diagram
+<span style="font-style: italic">within the space allotted for it</span>
+by the amount you specify. This is useful for achieving good
+optical centering between surrounding blocks of type. A unit of
+measure is required.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_SHIM</h5>
+
+<p>
+<kbd>NO_SHIM</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">shimming</a>
+after a <b>pic</b> diagram, which she will do automatically when
+shimming is enabled, which it is by default. Shimming ensures that
+running text after the diagram falls properly on the page&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+but can result in slightly unequal spacing above and below
+(correctable with the <kbd>ADJUST</kbd> argument).
+<kbd>NO_SHIM</kbd> is useful when you have several diagrams on the
+page and there are visible differences in the spacing beneath them
+as a result of shimming. To ensure a flush bottom margin, the last
+diagram on the page should be shimmed, i.e. should not be given the
+<kbd>NO_SHIM</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_FLEX</h5>
+
+<p>
+<kbd>NO_FLEX</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>
+after a <b>pic</b> diagram, which she will do automatically when
+flex-spacing is enabled. <kbd>NO_FLEX</kbd> is useful when you
+have several diagrams on the page and you want to distribute excess
+vertical whitespace on the page amongst other flex-spacing points
+on the page. If there are no others, the final diagram should be
+flex-spaced, i.e. not given the <kbd>NO_FLEX</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CAPTION</h5>
+
+<p>
+<kbd>CAPTION</kbd> allows you to give the diagram a caption. By
+default, the caption appears above the diagram, but may be attached to
+the label that appears beneath it. See
+<a href="#caption-after-label">CAPTION_AFTER_LABEL</a>
+in
+<a href="#captions-and-labels">Captions and labels</a>.
+The text of the caption must be surrounded by double-quotes.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SHORT_CAPTION</h5>
+
+<p>
+<kbd>SHORT_CAPTION</kbd> allows you to trim long captions for
+inclusion in the List of Figures. The text you supply, surrounded
+by double-quotes, is what will appear in the List.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">LABEL</h5>
+
+<p>
+<kbd>LABEL</kbd>, if given, appears beneath the diagram. The text you
+supply, surrounded by double-quotes, is how the diagram is labelled
+in both the document proper and the List of Figures. Mom provides
+an auto-labelling facility for diagrams (see
+<a href="#autolabel">AUTOLABEL</a>),
+which, if enabled, overrides the <kbd>LABEL</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">TARGET</h5>
+
+<p>
+<kbd>TARGET</kbd> followed by a unique name surrounded by
+double-quotes creates a PDF target for the diagram so that it may be
+linked to from other places in the file (with PDF_LINK; see
+<a href="version-2.html#mom-pdf">Producing PDFs with groff and mom</a>).
+</p>
+
+<p>
+<b><i>Please note:</i></b> The following functionality is available
+only with groff 1.22.4 or later.
+</p>
+
+<p>
+When
+<a href="#autolabel">autolabelling</a>
+is enabled and the document is processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+the target name can be used to generate the target&#8217;s label
+number in running text if it is entered as a groff string, i.e. of
+the form <kbd><span class="nobr">\*[name]</span></kbd>. For example, if you
+create a target called &#8220;foo&#8221; for a diagram whose
+autolabel number would be 3, entering
+<br/>
+<span class="pre-in-pp">
+ See
+ .PDF_LINK foo "Figure \*[foo]"
+</span>
+anywhere in running text would result in a pdf link that reads
+&#8220;Figure 3&#8221;. If chapter numbers are being prefixed to
+labels, the same string in, say, chapter 5 would produce the pdf
+link &#8220;Figure 5.3&#8221;.
+</p>
+
+<!-- PIC_TEXT_STYLE -->
+
+<div class="macro-id-overline">
+<h3 id="pic-text-style" class= "macro-id">PIC_TEXT_STYLE</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PIC_TEXT_STYLE</b> \
+<br/>
+<kbd class="macro-args">
+&nbsp;&nbsp;[ FAMILY ] "&lt;family&gt;" \
+<br/>
+&nbsp;&nbsp;[ FONT ] "&lt;font&gt;" \
+<br/>
+&nbsp;&nbsp;[ SIZE ] "+|-&lt;size&gt;" \
+<br/>
+&nbsp;&nbsp;[ AUTOLEAD ] "&lt;value&gt;"
+</kbd>
+</div>
+
+<p>
+Diagrams drawn with <b>pic</b> may contain text, and groff
+<a href="inlines.html#intro-inlines">inline escapes</a>
+may be used to alter the text parameters. A problem that arises
+from so doing is that, in many cases, it clutters up the <b>pic</b>
+code unnecessarily.
+</p>
+
+<p>
+PIC_TEXT_STYLE lets you establish the type parameters for text
+inside a <b>pic</b> block all at once in cases where so doing
+improves the readability of your mom source files.
+</p>
+
+<p>
+The arguments to PIC_TEXT_STYLE behave identically to the arguments
+to other control macros, explained
+<a href="docelement.html#control-macro-args">here</a>.
+They may be given in any order, and you may use as many or as few as
+you like.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Text within <b>pic</b> diagrams does not scale when you provide a
+scaling argument to <kbd>.PS</kbd>. This is a limitation of the
+preprocessor itself, not groff or mom.
+</p>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h3 id="grap" class="docs">grap support</h3>
+
+<p>
+Grap is a <b>pic</b> preprocessor for creating graphs. Grap
+usage is covered in the <kbd>grap(1)</kbd> manpage. Its mom
+implementation is the same as for <b>pic</b> except that instead of
+enclosing directives between
+<a href="#ps-pe">.PS&nbsp;/&nbsp;.PE</a>,
+they are enclosed between <b>.G1/.G2</b>. If you use <b>grap</b>,
+you must pass groff or pdfmom the <b>-G</b> flag when you process
+the file.
+
+</p>
+
+<p>
+<b>.G1</b> takes all the same arguments as
+<a href="#ps-pe">PS</a>
+with one exception: the argument <b>GRAP</b> must always be given to
+<b>.G1</b>. So, for example, a skeleton grap block raised 2 points
+and with a caption would be entered:
+<br/>
+<span class="pre-in-pp">
+ .G1 GRAP ADJUST +2p CAPTION "Graph caption"
+ &lt;grap directives&gt;
+ .G2
+</span>
+
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<h3 id="eqn" class="docs">eqn support</h3>
+
+<p>
+Support for <b>eqn</b> is provided via extensions to the standard
+<kbd>.EQ/.EN</kbd> macros. <kbd>eqn</kbd> usage itself is beyond
+the scope of this documentation, but is covered in the manpage
+<kbd>eqn(1)</kbd>. You can also download a copy of Ted
+Harding&#8217;s
+<a href="http://lists.gnu.org/archive/html/groff/2013-10/pdfTyBN2VWR1c.pdf">
+A Guide to Typesetting Mathematics Using GNU eqn
+</a>,
+which contains useful examples. If you use <b>eqn</b>, you must give groff or
+pdfmom the <b>-e</b> flag.
+
+</p>
+
+<div class="macro-id-overline">
+<h3 id="eq-en" class= "macro-id">.EQ / .EN</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <a href="#eq"><b>EQ</b></a>
+<br/>
+<kbd class="macro-args">Arguments:
+<br/>
+&nbsp;&nbsp;[ -L | -C | -I &lt;indent&gt; ]</kbd>
+<span style="font-size: 95%">
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+required)
+</span>
+<kbd class="macro-args"><br/>
+&nbsp;&nbsp;[ ADJUST +|-&lt;vertical adjustment&gt;]</kbd>
+<span style="font-size: 95%">
+(<a href="definitions.html#unitofmeasure">unit of measure</a>
+required)
+</span>
+<kbd class="macro-args"><br/>
+&nbsp;&nbsp;[ NO_SHIM ]
+<br/>
+&nbsp;&nbsp;[ NO_FLEX ]
+<br/>
+&nbsp;&nbsp;[ CAPTION "&lt;caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ LABEL "&lt;label&gt;" ]
+<br/>
+&nbsp;&nbsp;[ SHIFT_LABEL +|-&lt;vertical adjustment&gt; ]
+<br/>
+&nbsp;&nbsp;[ SHORT_CAPTION "&lt;short caption&gt;" ]
+<br/>
+&nbsp;&nbsp;[ TARGET "&lt;name&gt;" ]
+<br/>
+&nbsp;&nbsp;[ CONTINUED | CONT | ... ]</kbd>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note: Version 2.0-c change</span>
+<br/>
+2.0-c introduces revisions to <b>EQ</b>, including the addition
+of a dash (<kbd>-</kbd>) to the positioning arguments
+(<kbd>-L</kbd>, <kbd>-C</kbd>, and <kbd>-I</kbd>) and the removal of a
+default value for <kbd>-I</kbd>. Other changes include passing all
+options to <kbd>.EQ</kbd> (including the label) such that
+<kbd>.EN</kbd> takes only a single, optional argument saying whether
+the equation is to be continued at the next invocation of
+<kbd>.EQ</kbd>. Please read this section carefully if you have
+documents containing equations as they may need to be updated.
+</p>
+</div>
+
+<div class="box-important" style="margin-top: 1em">
+<p class="tip">
+<span class="important">IMPORTANT:</span>
+All arguments to <b>EQ</b> must appear on the same line as
+<kbd>.EQ</kbd>. Do not attempt to break them up with the
+&#8220;line-continued&#8221; backslash. You may want to set your
+text editor to &#8220;wrap&#8221; mode in order to see all your
+arguments. This annoyance stems from the preprocessor mechanism
+itself, not groff or mom.
+</p>
+</div>
+
+<div class="macro-id-overline" style="margin-top: .5em">
+<h4 id="eq" class="docs" style="font-size: 100%; margin-top: .5em">The .EQ macro</h4>
+</div>
+
+<p>
+Equations to be set with <b>eqn</b> begin with <kbd>.EQ</kbd>,
+followed by <b>eqn</b> code. Equations are centered by default,
+but may be set flush left or indented from the left margin
+if <kbd>-L</kbd> or <kbd>-I</kbd> are passed as arguments to
+<kbd>.EQ</kbd>.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">ADJUST</h5>
+
+<p>
+<kbd>ADJUST</kbd> lets you raise (<kbd>-</kbd>) or lower
+(<kbd>+</kbd>) an equation
+<span style="font-style: italic">within the space allotted for it</span>
+by the amount you specify. This is useful for achieving good
+optical centering between surrounding blocks of type. A unit of
+measure is required.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_SHIM</h5>
+
+<p>
+<kbd>NO_SHIM</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">shimming</a>
+after an equation, which she will do automatically when shimming is
+enabled, which it is by default. Shimming ensures that running text
+after the equation falls properly on the page&#8217;s
+<a href="definitions.html#baseline-grid">baseline grid</a>,
+but can result in slightly unequal spacing above and
+below (correctable with the <kbd>ADJUST</kbd> argument).
+<kbd>NO_SHIM</kbd> is useful when you have several equations on the
+page and there are visible differences in the spacing beneath them
+as a result of shimming. To ensure a flush bottom margin, the last
+equation on the page should be shimmed, i.e. should not be given the
+<kbd>NO_SHIM</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">NO_FLEX</h5>
+
+<p>
+<kbd>NO_FLEX</kbd> instructs mom not to apply
+<a href="docprocessing.html#shim-vs-flex">flex-spacing</a>
+after an equation, which she will do automatically when flex-spacing
+is enabled. <kbd>NO_FLEX</kbd> is useful when you have several
+equations on the page and you want to distribute excess vertical
+whitespace on the page amongst other flex-spacing points on
+the page. If there are no others, the final equation should be
+flex-spaced, i.e. not given the <kbd>NO_FLEX</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">CAPTION</h5>
+
+<p>
+<kbd>CAPTION</kbd> allows you to give the equation a caption.
+Equation captions always appear beneath the equation.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SHORT_CAPTION</h5>
+
+<p>
+<kbd>SHORT_CAPTION</kbd> allows you to trim long captions for
+inclusion in the List of Equations. The text you supply, surrounded
+by double-quotes, is what will appear in the List.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">LABEL</h5>
+
+<p>
+<kbd>LABEL</kbd>, if given, appears on the same baseline as the last line of the
+equation, flush with the left or right margin, depending on the
+equation&#8217;s horizontal position. The text you supply, surrounded by
+double-quotes, is how
+the equation is labelled in both the document proper and the List of
+Equations. Mom provides an auto-labelling facility for equations (see
+<a href="#autolabel">AUTOLABEL</a>),
+which, if enabled, overrides the <kbd>LABEL</kbd> argument.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">SHIFT_LABEL</h5>
+
+<p>
+<kbd>SHIFT_LABEL</kbd> allows you to raise (<kbd>-</kbd>) or lower
+(<kbd>+</kbd>) the equation label. It&#8217;s primary use is to
+center equation labels vertically on the equation rather than flush
+with the last line. Assuming a three-line equation,
+<kbd>.EQ&nbsp;SHIFT_LABEL&nbsp;-1v</kbd> would raise the label by
+one line, thus centering it vertically on the equation.
+</p>
+
+<h5 class="docs" style="margin-top: 1em; text-transform: none">TARGET</h5>
+
+<p>
+<kbd>TARGET</kbd> followed by a unique name surrounded by
+double-quotes creates a PDF target for the equation so that it may
+be linked to from other places in the file (with PDF_LINK; see
+<a href="version-2.html#mom-pdf">Producing PDFs with groff and mom</a>).
+</p>
+
+<p>
+<b><i>Please note:</i></b> The following functionality is available
+only with groff 1.22.4 or later.
+</p>
+
+<p>
+When
+<a href="#autolabel">autolabelling</a>
+is enabled and the document is processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+the target name can be used to generate the target&#8217;s label
+number in running text if it is entered as a groff string, i.e. of
+the form <kbd><span class="nobr">\*[name]</span></kbd>. For example, if you
+create a target called &#8220;foo&#8221; for an equation whose
+autolabel number would be 3, entering
+<br/>
+<span class="pre-in-pp">
+ See
+ .PDF_LINK foo "Equation \*[foo]"
+</span>
+anywhere in running text would result in a pdf link that reads
+&#8220;Equation 3&#8221;. If chapter numbers are being prefixed to
+labels, the same string in, say, chapter 5 would produce the pdf
+link &#8220;Equation 5.3&#8221;.
+</p>
+
+
+<div class="macro-id-overline" style="margin-top: .5em">
+<h4 id="en" class="docs" style="font-size: 100%; margin-top: .5em">The .EN macro</h4>
+</div>
+
+<p>
+A block of <b>eqn</b> code is terminated with <kbd>.EN</kbd>.
+</p>
+
+<p>
+If an equation needs to span multiple lines, possibly aligned
+with <b>eqn</b>&#8217;s <kbd>'mark'</kbd> and <kbd>'lineup'</kbd>
+directives, separate invocations of <kbd><span class="nobr">.EQ/.EN</span></kbd>
+are required for each line, and the optional argument,
+<kbd>CONTINUED</kbd> (or <kbd>CONT</kbd>, or <kbd>...</kbd> [three
+dots, an ellipsis]), must be passed to <kbd>.EN</kbd>.
+</p>
+
+<p>
+If <kbd>-L</kbd> or <kbd>-I</kbd> is given to the first
+<kbd>.EQ</kbd> of a multi-line equation, they remain in effect
+until an <kbd>.EN</kbd> without the <kbd>CONTINUED</kbd> argument
+is reached.
+</p>
+
+<p>
+Mom does not treat equations as floats, therefore it is possible to
+begin an equation on one page and terminate it on the next. If you
+wish to keep all lines of an equation together, you must wrap the
+equation, including all invocations of <kbd>.EQ/.EN</kbd>, inside
+a
+<a href="#floats-intro">float</a>.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<h3 id="refer" class="docs">refer support</h3>
+
+<p>
+<b>refer</b> support is covered in the section
+<a href="refer.html">Bibliographies and references</a>.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="captions-and-labels" class="docs">Captions and labels</h2>
+
+<ul>
+ <li><a href="#autolabel">AUTOLABEL</a></li>
+ <li><a href="#caption-after-label">CAPTION_AFTER_LABEL</a></li>
+ <li><a href="#mla">MLA</a>&mdash;MLA-style captioning and labelling</li>
+ <li><a href="#captions-labels-sources">Set style parameters for captions, labels, and sources</a></li>
+</ul>
+
+<p>
+Mom includes facilities for adding captions and labels to figures,
+tables, equations, and pdf images, including auto-labelling. If
+Lists of Figures, Tables, and Equations are desired, captions (if
+any) and labels (if any) are collected and output in the Lists with
+the appropriate page number.
+</p>
+
+<p>
+The distinction between a caption and a label is that labels are
+identifiers, e.g. &#8220;Fig. 1&#8221; or &#8220;Table 3&#8221;,
+while captions are descriptive or informative. For most types of
+writing, it is usual to provide both.
+</p>
+
+<p>
+By default, mom sets captions above figures (i.e. <b>pic</b> output and
+pdf images) and tables. This behaviour may be modified with the
+macro
+<a href="#caption-after-label">CAPTION_AFTER_LABEL</a>.
+Equations always have their captions set underneath. All aspects of
+the text style for captions may be set with the macro
+<a href="#captions-labels-sources">CAPTIONS</a>.
+</p>
+
+<p>
+Labels for tables are set underneath the table unless the
+<a href="#mla">MLA</a>
+macro has been invoked, in which case the label and caption appear
+above the table, per MLA style, and the source for the table, if
+any, appears underneath. Labels for figures are set underneath.
+Equation labels, by default, are set on the same baseline as the
+last line of the equation. Like captions, all aspects of text style
+for labels may be established with a single macro
+<a href="#labels">LABELS</a>.
+Furthermore, mom can autolabel figures, tables, and equations, with
+or without a prefixed chapter number.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="autolabel" class="macro-id">Autolabel</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>AUTOLABEL_EQUATIONS</b>
+<br/>
+Macro: <b>AUTOLABEL_IMAGES</b>
+<br/>
+Macro: <b>AUTOLABEL_PIC</b>
+<br/>
+Macro: <b>AUTOLABEL_TABLES</b>
+<br/>
+<kbd class="macro-args">Arguments:
+<br/>
+[ PREFIX "&lt;string&gt;"] [ SUFFIX "&lt;string&gt;"] [ PREFIX_CHAPTER [ &lt;n&gt; ] ]
+</kbd>
+</div>
+
+<p>
+<b>AUTOLABEL_&lt;type&gt;</b> takes care of labelling &lt;type&gt; by
+identifying each with a separate, incrementing numeric scheme, which
+is also collected for output in Lists of Figures, Equations, and
+Tables.
+</p>
+
+<p>
+Autolabelling may be disabled on-the-fly by giving any argument
+other than <kbd>PREFIX</kbd>, <kbd>SUFFIX</kbd>, or
+<kbd>PREFIX_CHAPTER</kbd> to the appropriate macro. For example,
+<br/>
+<span class="pre-in-pp">
+ .AUTOLABEL_IMAGES NO
+</span>
+would disable autolabelling of images.
+</p>
+
+<h4 class="docs" style="margin-top: -.5em">Prefixes and suffixes</h4>
+
+<p>
+By default, when <b>AUTOLABEL</b> is enabled, the label numbers are
+prefixed, and, in the case of equations, suffixed, with strings such
+that they appear for tables as &#8220;Table&nbsp;&lt;n&gt;&#8221;, for
+<b>pic</b> diagrams and pdf images as &#8220;Fig.&nbsp;&lt;n&gt;&#8221;,
+and for equations as &#8220;Eq.&nbsp;(&lt;n&gt;)&#8221;.
+</p>
+
+<p>
+You can use <kbd>PREFIX&nbsp;&lt;"string"&gt;</kbd> to change what
+comes before the automatic numbering. For example, if you are
+including musical excerpts in your document, MLA style requires that
+they be labelled &#8220;Ex.&nbsp;&lt;n&gt;&#8221;. Since musical
+excerpts are likely to be scanned images (in pdf format, don&#8217;t
+forget), you have to change the prefix string for pdf images:
+<br/>
+<span class="pre-in-pp">
+ .AUTOLABEL_IMAGES \
+ PREFIX "Ex. " \
+ SUFFIX ""
+</span>
+If you need a suffix after the automatic numbering, use
+<kbd>SUFFIX&nbsp;&lt;"string"&gt;</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ .AUTOLABEL_IMAGES \
+ PREFIX "(Fig. " \
+ SUFFIX ")"
+</span>
+Note from the above that both arguments, <kbd>PREFIX</kbd> and
+<kbd>SUFFIX</kbd>, are required should you want either. Two
+adjacent double-quotes leaves the string blank.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+In automatically formatted
+<a href="#lists-macros">&#8220;Lists of ...&#8221;</a>,
+label number prefixes are stripped when autolabelling is enabled.
+</p>
+</div>
+
+<h4 class="docs" style="margin-top: -.5em">Prefixing chapter numbers</h4>
+
+<p>
+If you would like mom to prefix chapter numbers to the label,
+pass <kbd>AUTOLABEL_&lt;type&gt;</kbd> the argument
+<kbd>PREFIX_CHAPTER</kbd>.
+</p>
+
+<p>
+If for some reason you need to specify the chapter number,
+you may do so by passing the number as an argument to
+<kbd>PREFIX_CHAPTER</kbd>. Subsequent chapters or major sections
+will increment by one as expected.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+For the purposes of labelling, mom treats
+<a href="docprocessing.html#doctype">DOCTYPE&nbsp;DEFAULT</a>
+as if it were <b>DOCTYPE&nbsp;CHAPTER</b>, hence, with
+<kbd>PREFIX_CHAPTER</kbd>, each collated <b>DEFAULT</b>
+doctype&#8217;s prefixed &#8220;chapter&#8221; number is
+incremented and the label number itself reset to &#8220;1&#8221;.
+If you do not supply the <kbd>PREFIX_CHAPTER</kbd> argument, the
+label number is <i>not</i> reset automatically. To reset it, invoke
+<kbd>.AUTOLABEL_&lt;type&gt;</kbd> after each
+<a href="docprocessing.html#collate">COLLATE</a>.
+</p>
+</div>
+
+<div id="set-autolabel" class="box-macro-args" style="margin-top: .5em">
+Macro: <b>SET_AUTOLABEL</b> <kbd class="macro-args">FIG | TBL | PIC | EQN &lt;n&gt;</kbd>
+</div>
+
+<p>
+You may sometimes need to set or reset the autolabel number for a
+particular type of pre-processor or for PDF images. This is likely
+to occur if you are using
+<a href="#float">FLOAT</a>
+in conjunction with the <kbd>TO_LIST</kbd> argument.
+</p>
+
+<p>
+For example, if your document has Figures (PDF images, pic diagrams)
+and you want your tables to be labelled as Figures as well, you have
+to wrap the tables inside a float and label the float manually as
+&#8220;Fig.&nbsp;n&#8221;, sending it to the List of Figures with
+<kbd>TO_LIST FIGURES</kbd>.
+</p>
+
+<p>
+Mom does not autolabel floats or assign them automatically
+to a list, so she doesn&#8217;t know you&#8217;ve interrupted the
+auto-incrementing label numbers. Use SET_AUTOLABEL get her back on
+track. The number you give as an argument after telling her which
+kind of label number to set is the one you want to appear next.
+<br/>
+<span class="pre-in-pp">
+ .SET_AUTOLABEL FIG 6
+</span>
+means the next autolabelled Figure will be &#8220;Fig. 6.&#8221;
+</p>
+
+<div class="macro-id-overline">
+<h3 id="caption-after-label" class="macro-id">Captions after labels</h3>
+</div>
+
+<div class="box-macro-args" style="margin-top: .5em">
+Macro: <b>CAPTION_AFTER_LABEL</b> <kbd class="macro-args">IMG | PIC | TBL | ALL [ &lt;anything&gt; ]</kbd>
+</div>
+
+<p>
+By default, mom sets captions above figures (<b>pic</b> output
+and pdf images) and tables; labels are always underneath.
+</p>
+
+<p>
+<kbd>.CAPTION_AFTER_LABEL</kbd>, with one of the required arguments,
+instructs mom to attach captions directly to the appropriate
+labels, beginning on the same line. Any argument after the first
+disables this behaviour, restoring caption placement to mom&#8217;s
+default. For example,
+<br/>
+<span class="pre-in-pp">
+ .CAPTION_AFTER_LABEL ALL
+</span>
+would enable captions after labels globally, while a subsequent
+<br/>
+<span class="pre-in-pp">
+ .CAPTION_AFTER_LABEL IMG OFF
+</span>
+would disable captions after labels for pdf images only.
+<kbd>OFF</kbd> can be anything you like (<kbd>X</kbd>,
+<kbd>NO</kbd>, etc).
+</p>
+
+<p>
+If
+<a href="#mla">MLA</a>
+is enabled, there&#8217;s no need to invoke
+<kbd>CAPTION_AFTER_LABEL</kbd> as this is implied.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+A separate invocation of <kbd>.CAPTION_AFTER_LABEL</kbd> is required
+for each one of the required first arguments. You cannot, for
+example, do
+<br/>
+<span class="pre-in-pp">
+ .CAPTION_AFTER_LABEL IMG TBL
+</span>
+Rather, you must do
+<br/>
+<span class="pre-in-pp">
+ .CAPTION_AFTER_LABEL IMG
+ .CAPTION_AFTER_LABEL TBL
+</span>
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="mla" class="macro-id">MLA-style captioning and labelling</h3>
+</div>
+
+<div class="box-macro-args" style="margin-top: .5em">
+Macro: <b>MLA</b> <kbd class="macro-args"> [ &lt;anything&gt; ]</kbd>
+</div>
+
+<p>
+Modern Language Association style dictates that captions should
+always go after labels. Furthermore, labels and captions for tables
+should go <i>above</i> the tables, with the source for the table, if
+any, underneath.
+</p>
+
+<p>
+Invoking <kbd>.MLA</kbd> by itself takes care of these details. If
+you need to disable MLA-style captioning and labelling mid-document,
+<kbd>.MLA&nbsp;OFF</kbd> does the trick. <kbd>OFF</kbd> can be
+anything you like (<kbd>X</kbd>, <kbd>NO</kbd>, etc).
+</p>
+
+<div class="macro-id-overline" style="margin-top: 1em">
+<h3 id="captions-labels-sources" class="macro-id">Style parameters for captions, labels and sources</h3>
+</div>
+
+<div class="box-macro-args" style="margin-top: .5em">
+Macro: <b>CAPTIONS</b> <kbd class="macro-args">EQN | IMG | PIC | TBL | FLOATING | ALL</kbd>
+<br/>
+Macro: <b>LABELS</b> <kbd class="macro-args">EQN | IMG | PIC | TBL | FLOATING | ALL</kbd>
+<br/>
+Macro: <b>SOURCES</b> <kbd class="macro-args">TBL</kbd>
+<br/>
+<kbd class="macro-args">Style arguments:
+<br/>
+&nbsp;&nbsp;FAMILY &lt;family&gt; \
+<br/>
+&nbsp;&nbsp;FONT &lt;font&gt; \
+<br/>
+&nbsp;&nbsp;SIZE +|-&lt;size&gt; \
+<br/>
+&nbsp;&nbsp;AUTOLEAD &lt;value&gt; \
+<br/>
+&nbsp;&nbsp;COLOR &lt;color&gt; \
+<br/>
+&nbsp;&nbsp;QUAD LEFT | CENTER | RIGHT [ ON_LL ] \
+<br/>
+&nbsp;&nbsp;INDENT &lt;indent&gt; \
+<br/>
+&nbsp;&nbsp;ADJUST +|-&lt;vertical adjustment&gt;
+</kbd>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Arguments may be broken into several lines using the
+&#8220;line-continued&#8221; backslash (<b>\</b>), as shown above.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Additional note:</span>
+Mom&#8217;s default style for labels, captions, and sources is
+the same as the style used for running text, with two exceptions:
+labels are set in bold, except for eqn which is roman medium, and
+the autolead value for all three is &#8220;2&#8221;, effectively
+tightening the lead. Furthermore, they are quadded left (except
+eqn, which is quadded right.)
+</p>
+</div>
+
+<p>
+With the exception of <kbd>ADJUST</kbd> and <kbd>QUAD</kbd> (which
+requires a bit of explanation), the style arguments to <kbd>CAPTIONS</kbd>,
+<kbd>LABELS</kbd>, and <kbd>SOURCES</kbd> (which is only available
+for tables) behave identically to the
+<a href="docelement.html#control-macro-args">arguments to control macros</a>.
+</p>
+
+<p>
+The first, required argument after <kbd>CAPTIONS</kbd>,
+<kbd>LABELS</kbd>, or <kbd>SOURCES</kbd> indicates the preprocessor
+type for which you are setting the parameters. (For convenience
+PDF_IMAGE&mdash;argument <kbd>IMG</kbd>&mdash;is here treated as a
+preprocessor.) <kbd>FLOATING</kbd> sets the style for the macros
+<a href="#caption">CAPTION</a>
+and
+<a href="#label">LABEL</a>,
+which are used to label floats, quotes, and blockquotes.
+</p>
+
+<p>
+An argument of <kbd>ALL</kbd> sets a unified style for all
+preprocessors, floats, quotes, and blockquotes. If the
+<kbd>ALL</kbd> argument is given, arguments to subsequent
+invocations of <kbd>CAPTIONS</kbd>, <kbd>LABELS</kbd>, or
+<kbd>SOURCES</kbd> overwrite only the explicitly named style
+parameters.
+</p>
+
+<h4 class="docs">QUAD &mdash; quadding of labels, captions, and sources</h4>
+
+<h5 class="docs" style="text-transform: none">&bull;&nbsp;pic, tbl, pdf images</h5>
+
+<p>
+By default, figures (<b>pic</b> output and pdf images) and tables
+have their captions and labels set quad left. Sources (for
+tables) are also set quad left. Equations have their labels
+set quad right, and their captions centered.
+</p>
+
+<p>
+Regardless of the quad direction, captions, labels and sources
+are set on the width of the figure, table, or pdf image
+unless you pass the optional <kbd>ON_LL</kbd> argument to
+<kbd><span class="nobr">QUAD&nbsp;&lt;direction&gt;</span></kbd>, in which case
+the prevailing document line length is used instead.
+</p>
+
+<h5 class="docs" style="text-transform: none">&bull;&nbsp;eqn</h5>
+
+<p>
+Equations behave differently. By default, equation labels are
+set flush right with the page&#8217;s right margin regardless of
+equation positioning, which is, again by default, centered. If the
+equation is positioned left, the label will appear at the right
+margin regardless of the direction you give to <kbd>QUAD</kbd>. If
+the equation is indented with the
+<kbd><span class="nobr">-I&nbsp;&lt;indent&gt;</span></kbd> option, a quad
+direction of <kbd>LEFT</kbd> is observed, but may overprint the last
+line of the equation.
+</p>
+
+<p>
+Note that there is no <kbd>CENTER</kbd> option for equation labels,
+and that captions are always quadded over the prevailing document
+line length.
+</p>
+
+<h5 class="docs" style="text-transform: none">&bull;&nbsp;quotes and blockquotes</h5>
+
+<p>
+Floating labels attached to <b>QUOTE</b>s are quadded on the
+prevailing document line length, and require the <kbd>INDENT</kbd>
+argument if you want to align them with the left and/or right edges
+the quote.
+</p>
+
+<p>
+Floating labels attached to <b>BLOCKQUOTE</b>s are always quadded on
+the indent and line length of the blockquote.
+</p>
+
+<h5 class="docs" style="text-transform: none">&bull;&nbsp;floats</h5>
+
+<p>
+Floating labels and captions attached to <b>FLOAT</b>s are always
+quadded over the prevailing document line length, and require the
+<kbd>INDENT</kbd> argument if you want to align them with the left
+and/or right edges of the float&#8217;s contents.
+</p>
+
+<h4 class="docs">INDENT</h4>
+
+<p>
+The <kbd>INDENT</kbd> argument may only be used if the label
+or caption type is <kbd>FLOATING</kbd>, and only applies to
+<b>FLOAT</b>s and <b>QUOTE</b>s, not <b>BLOCKQUOTE</b>s.
+</p>
+
+<p>
+It is not possible for mom to know the width of a float before
+setting a label or caption attached to a float. She therefore sets
+it on the prevailing document line length. While this isn&#8217;t
+much of an issue when the label or caption quad is <b>CENTER</b>,
+you may want to adjust the horizontal positioning when the quad is
+<b>LEFT</b> or <b>RIGHT</b>.
+</p>
+
+<p>
+<kbd>INDENT</kbd>, with a numeric value to which a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+is appended, allows you to indent a floating label or caption so
+it lines up with the left edge of a <b>FLOAT</b> or <b>QUOTE</b>.
+<kbd>INDENT&nbsp;RIGHT</kbd> (with a value) allows you to shorten the
+line length to the appropriate width. If you need both a left and
+right indent, invoke <kbd>LABELS</kbd> or <kbd>CAPTIONS</kbd> twice,
+one instance containing <kbd>INDENT&nbsp;&lt;indent&gt;</kbd> and
+the other <kbd>INDENT&nbsp;RIGHT&nbsp;&lt;indent&gt;</kbd>.
+</p>
+
+<h4 class="docs">ADJUST</h4>
+
+<p>
+The <kbd>ADJUST</kbd> argument allows you to add(<kbd>+</kbd>) or
+subtract (<kbd>-</kbd>) vertical space between labels and captions
+and the output to which they are attached. The argument requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example, if you find that table labels are a bit too close to
+the table itself,
+<br/>
+<span class="pre-in-pp">
+ .LABELS TBL ADJUST +3p
+</span>
+would put three extra points of space between the bottoms of tables
+and the labels that appear beneath them.
+</p>
+
+<h2 id="lists-of" class="docs">Lists of Figures, Tables, and Equations</h2>
+
+<p>
+Besides a
+<a href="tables-of-contents.html">Table of Contents</a>,
+mom can generate Lists of Figures, Tables, and Equations. Labels
+and captions are collected and concatenated, and output in lists
+with the appropriate page number, just like a Table of Contents.
+Including such lists in a document is as simple as adding whichever
+you need of
+<br/>
+<span class="pre-in-pp">
+ .LIST_OF_FIGURES
+ .LIST_OF_EQUATIONS
+ .LIST_OF_TABLES
+</span>
+to the end of your input file.
+</p>
+
+<p>
+Also like the Table of Contents, entries in the Lists&#8217; output
+are clickable PDF links when a document is viewed at the screen.
+</p>
+
+<h3 id="lists-placement" class="docs">Placement of Lists</h3>
+
+<p>
+Lists normally appear after the Table of Contents, and continue
+the page numbering scheme used for it. By default, the Table of
+Contents begins on roman-numeral page &#8220;i&#8221;.
+</p>
+
+<p>
+If you are using mom&#8217;s
+<a href="tables-of-contents.html#auto-relocate-toc">AUTO_RELOCATE_TOC</a>
+feature, you have two options for placement of the Lists within the
+document. If you want the Lists shifted to the top of the document
+along with the Table of Contents, invoke the Lists macros <i>after</i>
+<a href="tables-of-contents.html#toc"><kbd>.TOC</kbd></a>.
+If you prefer to have the Lists at the end of the document, invoke
+the Lists macros <i>before</i> <kbd>.TOC</kbd>.
+</p>
+
+<p>
+Lists shifted with the Table of Contents do not appear in the Table
+of Contents itself, but do appear as clickable links in the PDF
+outline typically available in the left panel of most PDF viewers.
+Lists that are not shifted with the Table of Contents appear in both
+the Table of Contents itself and the PDF outline.
+</p>
+
+<div class="macro-id-overline" style="margin-top: 1em">
+<h3 id="lists-macros" class="macro-id">Macros to generate Lists</h3>
+</div>
+
+<div class="box-macro-args" style="margin-top: .5em">
+Macro: <b>LIST_OF_EQUATIONS</b>
+<br/>
+Macro: <b>LIST_OF_FIGURES</b>
+<br/>
+Macro: <b>LIST_OF_TABLES</b>
+<br/>
+<kbd class="macro-args">Arguments:
+<br/>
+&nbsp;&nbsp;[ TITLE_STRING "&lt;string&gt;" ] [ START_PAGENUM &lt;page number&gt; ]
+</kbd>
+</div>
+
+<p>
+The first optional argument to the <kbd>LIST_OF_&lt;type&gt;</kbd>
+macros allows you to change the title that appears at the top of the
+page. This is useful not only for internationalization, or to meet
+the requirements of various style guides, but is also useful
+for, say, documents containing musical examples, which, per
+MLA-style, should be labelled &#8220;Example &#8221; or
+&#8220;Ex. &#8221;. When it comes time to output the List of
+Figures (to which musical examples, usually scanned pdf images, belong),
+<br/>
+<span class="pre-in-pp">
+ LIST_OF_FIGURES TITLE_STRING "List of Examples"
+</span>
+ensures that the title of the List is correct.
+</p>
+
+<p>
+The second optional argument allows you to give a starting page
+number for a list in cases where mom&#8217;s pagination scheme does
+not provide the List with the starting page number you want.
+</p>
+<h3 id="formatting-lists" class="docs">Formatting and style parameters for Lists</h3>
+
+<p>
+Like the Table of Contents, nearly every aspect of Lists can be
+designed independently of a document&#8217;s overall style. By
+default, Lists follow the formatting and style parameters of the
+Table of Contents, both mom&#8217;s defaults and any changes you may
+have made to the Table of Contents.
+</p>
+
+<p>
+If you wish to make changes to any aspect of Lists formatting
+or styling, the macro <kbd>LISTS_STYLE</kbd> provides all the
+tools necessary. It is unlikely that you&#8217;ll want the
+formatting of the various list types to differ one from the other,
+so <kbd>LISTS_STYLE</kbd> applies to all Lists. In the event that
+you do need to change some aspect of the formatting for different
+list types, simply invoke <kbd>LISTS_STYLE</kbd> immediately prior
+to each list whose formatting needs to be changed.
+</p>
+
+<div class="macro-id-overline" style="margin-top: 1em">
+<h3 id="lists-style" class="macro-id">Lists style</h3>
+</div>
+
+<div class="box-macro-args" style="margin-top: .5em">
+Macro: <b>LISTS_STYLE</b> <kbd class="macro-args">
+<br/>
+Arguments:
+<br/>
+&nbsp;&nbsp;FAMILY &lt;family&gt; \
+<br/>
+&nbsp;&nbsp;FONT &lt;font&gt; \
+<br/>
+&nbsp;&nbsp;PT_SIZE &lt;size&gt; \
+<br/>
+&nbsp;&nbsp;LEAD &lt;leading&gt; \
+<br/>
+&nbsp;&nbsp;TITLE_FAMILY &lt;family&gt; \
+<br/>
+&nbsp;&nbsp;TITLE_FONT &lt;font&gt; \
+<br/>
+&nbsp;&nbsp;TITLE_SIZE +|-&lt;size&gt; \
+<br/>
+&nbsp;&nbsp;TITLE_QUAD LEFT | CENTER | RIGHT \
+<br/>
+&nbsp;&nbsp;TOC_HEADER_UNDERSCORE default = none
+<br/>
+&nbsp;&nbsp;TITLE_COLOR &lt;color&gt; \
+<br/>
+&nbsp;&nbsp;PN_FAMILY &lt;family&gt; \
+<br/>
+&nbsp;&nbsp;PN_FONT &lt;font&gt; \
+<br/>
+&nbsp;&nbsp;PN_SIZE +|-&lt;size&gt; \
+<br/>
+&nbsp;&nbsp;EQN_PN_PADDING &lt;placeholders&gt; \
+<br/>
+&nbsp;&nbsp;FIG_PN_PADDING &lt;placeholders&gt; \
+<br/>
+&nbsp;&nbsp;TBL_PN_PADDING &lt;placeholders&gt; \
+<br/>
+&nbsp;&nbsp;PAGENUM_STYLE DIGIT | ROMAN | roman | ALPHA | alpha \
+<br/>
+&nbsp;&nbsp;NO_PAGINATION
+</kbd>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Arguments may be broken into several lines using the
+&#8220;line-continued&#8221; backslash (<b>\</b>), as shown above.
+</p>
+</div>
+
+<p>
+<kbd>FAMILY</kbd> is the family for the entirety of Lists pages.
+</p>
+
+<p>
+<kbd>FONT</kbd> is the font for the entirety of Lists pages.
+</p>
+
+<p>
+<kbd>PT_SIZE</kbd> is the base point size for the entirety of Lists
+pages.
+</p>
+
+<p>
+<kbd>LEAD</kbd> is the base leading for the entirety of Lists pages.
+</p>
+
+<p>
+<kbd>TITLE_FAMILY</kbd> is the family for the Lists titles if you
+want it different from the family otherwise used for the Lists
+pages.
+</p>
+
+<p>
+<kbd>TITLE_FONT</kbd> is the font for the Lists titles if you want
+it different from the font otherwise used for the Lists pages.
+</p>
+
+<p>
+<kbd>TITLE_SIZE</kbd> tells mom by how much to increase
+(<kbd>+</kbd>) or decrease (<kbd>-</kbd>) the point size of the
+titles relative to the overall point size of Lists pages.
+</p>
+
+<p>
+<kbd>TITLE_QUAD</kbd> tells mom how to position the title
+horizontally.
+</p>
+
+<p>
+<kbd>TITLE_COLOR</kbd> sets the colour for the titles. The colour
+must be pre-initialized with
+<a href="color.html#newcolor">NEWCOLOR</a>
+or
+<a href="color.html#xcolor">XCOLOR</a>.
+</p>
+
+<p>
+<kbd>PN_FAMILY</kbd> sets the family for entry pagenumbers.
+</p>
+
+<p>
+<kbd>PN_FONT</kbd> sets the font for entry pagenumbers.
+</p>
+
+<p>
+<kbd>PN_SIZE</kbd> tells mom by how much to increase (<kbd>+</kbd>)
+or decrease (<kbd>-</kbd>) the point size of entry pagenumbers
+relative to the overall point size of Lists pages.
+</p>
+
+<p>
+<kbd>EQN_PN_PADDING</kbd>, <kbd>FIG_PN_PADDING</kbd>, and
+<kbd>TBL_PN_PADDING</kbd> tells mom how many placeholders to reserve
+for the entry pagenumbers in their respective Lists. If, for example,
+a document with both tables and figures runs to over a hundred
+pages, but there are no tables after page 99,
+<br/>
+<span class="pre-in-pp">
+ LISTS_STYLE FIG_PN_PADDING 3
+ LISTS_STYLE TBL_PN_PADDING 2
+</span>
+would prevent an unneeded, reserved placeholder from putting too
+much space between the leader and the entry pagenumber in the List of
+Tables.
+</p>
+
+<p>
+The padding in effect, unless you change it, is whatever was set for
+the Tables of Contents; mom&#8217;s default is &#8220;3&#8221;.
+</p>
+
+<p>
+<kbd>PAGENUM_STYLE</kbd> tells mom which pagination format to use
+for the page numbers of the Lists pages themselves. By default,
+since Lists observe what is in effect for the Table of Contents, the
+pagination format is &#8220;roman&#8221;. Please note that the
+starting page number for any of the Lists is given as an argument to
+the
+<a href="#lists-of">LISTS_0F_&lt;type&gt;</a>
+macro.
+</p>
+
+<p>
+<kbd>NO_PAGINATION</kbd> disables pagination of Lists pages.
+</p>
+
+<h2 id="box-intro" class="docs">Shaded backgrounds and frames (boxes)</h2>
+
+<p>
+Mom lets you add shaded backgrounds and frames to text and other
+material. For convenience, she calls backgrounds and frames
+&#8220;boxes.&#8221; Entire passages may be boxed, or individual
+document elements like headings, quotes, or pre-processor output.
+Furthermore, boxes may be nested.
+</p>
+
+<p>
+Boxes start on the baseline where the boxed material would have
+started were it not for the box, subject to minor aesthetic
+corrections mom takes the liberty of making.
+</p>
+
+<p>
+Boxes extend from the current left margin to the current right
+margin, respecting any active left and/or right indents. There are
+two exceptions,
+<a href="docelement.html#epigraph">EPIGRAPH BLOCK</a>
+and
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>,
+which are discussed
+<a href="#quotes">here</a>.
+</p>
+
+<p>
+After a box is started, active left and right indents are
+cleared. The box&#8217;s inset determines the new left and right
+margins. Indents set inside a box are relative to the inset.
+When a box is stopped, formerly active left and right indents
+are restored.
+</p>
+
+<p>
+Frames are drawn from the perimeter inward. The inset is
+relative to the inner edge of the frame.
+</p>
+
+<p>
+If a box (including the bottom inset) can complete on a page, it
+does, even if there is no further room for type. This may, on
+occasion, result in slight deviations from normal bottom margin
+alignment.
+</p>
+
+<p>
+Boxes span pages whenever the boxed material continues on the next
+page. Spanning boxes extend fully to the bottom margin of the page
+on which they begin, leaving a slightly larger inset at the bottom
+than around the other sides.
+</p>
+
+<p>
+When there is not enough room to set at least one line of type
+inside a box, mom defers starting the box until the next page,
+leaving a gap.
+</p>
+
+<p>
+Boxed material is not
+<a href="docprocessing.html#shim-vs-flex">shimmed</a>
+or
+<a href="docprocessing.html#shim-vs-flex">flexed</a>.
+If either was active prior to the box, it is restored when the box
+ends and mom automatically shims or flexes whatever comes next.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="important">NOTE:</span>
+Shaded backgrounds and frames are not available when your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd> or when
+<a href="docprocessing.html#columns">COLUMNS</a> are enabled.
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="box" class= "macro-id">BOX</h3>
+</div>
+
+<div id="box-macro" class="box-macro-args" style="margin-top: .5em">
+Macro: <b>BOX</b> <kbd class="macro-args"> [ &lt;arguments&gt; ] | &lt;anything&gt;
+<br/>
+Arguments:
+<br/>
+[ SHADED &lt;color&gt; | OUTLINED &lt;colour&gt; ] \
+<br/>
+[ INSET &lt;dist&gt; ] \
+<br/>
+[ WEIGHT &lt;wt&gt; ] \
+<br/>
+[ ADJUST +|-&lt;amount&gt; ] \
+<br/>
+[ EQN | PIC | GRAP | IMG ]
+</kbd>
+</div>
+
+<p>
+Without arguments, BOX begins a shaded grey background.
+The material inside is inset by one
+<a href="definitions.html#picaspoints">pica</a>.
+Any other type of box requires at a minimum either
+<kbd>SHADED</kbd> or <kbd>OUTLINED</kbd>. In the case of boxes
+that are to contain pdf images or pre-processor material for
+<a href="#eqn">eqn</a>,
+<a href="#pic">pic</a>,
+or
+<a href="#grap">grap</a>,
+<kbd>IMG</kbd>, <kbd>EQN</kbd>, <kbd>PIC</kbd>, or <kbd>GRAP</kbd>
+must also be given. Note that
+<a href="#tbl">tbl</a>
+does not have this requirement.
+</p>
+
+<p>
+BOX is a
+<a href="definitions.html#toggle">toggle macro</a>,
+so any argument other than one in the list completes the box
+(<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc).
+</p>
+
+<p>
+Boxes should be started inside toggle macros like
+<a href="docelement.html#quote">QUOTE</a>
+or
+<a href="#float">FLOAT</a>
+just after the macro is called, and terminated just before toggling
+the macro off (unless you wish the box to enclose further material).
+</p>
+
+<p>
+Non-toggle macros like
+<a href="docelement.html#heading">HEADING</a>
+or
+<a href="docelement.html#pp">PP</a>
+require that the box be started beforehand. Boxed pre-processor
+material must be fully enclosed by BOX&nbsp;/&nbsp;BOX&nbsp;OFF, as
+in this recipe for a one-off boxed pic diagram:
+<span class="pre-in-pp">
+.BOX
+.PS
+&lt;pic commands&gt;
+.PE
+.BOX OFF
+</span>
+Arguments to BOX are not sticky. Each time you invoke BOX, you
+must invoke it with arguments unless you want mom&#8217;s default grey
+background. If all or several boxes in a document require the same
+arguments, create a macro at the top of the input file that calls
+BOX with the arguments you want, e.g.
+<span class="pre-in-pp">
+&nbsp;&nbsp;.de PINK_BOX
+&nbsp;&nbsp;.BOX \
+&nbsp;&nbsp;&nbsp;&nbsp;SHADED pink \
+&nbsp;&nbsp;&nbsp;&nbsp;OUTLINED darkred \
+&nbsp;&nbsp;&nbsp;&nbsp;WEIGHT 1p \
+&nbsp;&nbsp;&nbsp;&nbsp;INSET 9p
+&nbsp;&nbsp;..
+</span>
+<kbd>.PINK_BOX</kbd> may then be used instead of <kbd>.BOX</kbd> any
+time you want a box with those arguments.
+</p>
+
+<h3 class="docs">SHADED | OUTLINED</h3>
+
+<p>
+<kbd>SHADED</kbd> or <kbd>OUTLINED</kbd> are required. Both may
+be given, resulting in a shaded background with a frame, and both
+require a colour, e.g.
+<span class="pre-in-pp">
+&nbsp;&nbsp;.BOX SHADED blue OUTLINED black
+</span>
+The colour may be
+</p>
+
+<ul style="margin-top: -1em;">
+ <li>an xcolor name</li>
+ <li>a colour initialized with
+ <a href="color.html#newcolor">NEWCOLOR</a>
+ or
+ <a href="color.html#xcolor">XCOLOR</a>
+ </li>
+ <li>an RGB hexadecimal string beginning with (e.g. #FF0000)</li>
+</ul>
+
+<p>
+Note that without <kbd>SHADED</kbd>, the above would simply draw a
+black frame.
+</p>
+
+<h3 class="docs">WEIGHT</h3>
+
+<p>
+Mom&#8217;s default weight for <kbd>OUTLINED</kbd> is 1/2
+<a href="definitions.html#picaspoints">point</a>.
+If you&#8217;d like to change it, give <kbd>WEIGHT</kbd> the desired
+value with a unit of measure appended, typically points, e.g.
+<span class="pre-in-pp">
+&nbsp;&nbsp;.BOX OUTLINED black WEIGHT 1p
+</span>
+</p>
+
+<h3 class="docs">INSET</h3>
+
+<p>
+Mom&#8217;s default inset for boxes is one
+<a href="definitions.html#picaspoints">pica</a>
+on all sides. If you&#8217;d like a larger or smaller inset, give
+<kbd>INSET</kbd> the distance you want with a unit of measure
+appended, e.g.
+<span class="pre-in-pp">
+&nbsp;&nbsp;.BOX SHADED pink INSET 2m
+</span>
+</p>
+
+<h3 class="docs">ADJUST</h3>
+
+<p>
+If you are not happy with the starting position of a box, you can
+change it by giving <kbd>ADJUST</kbd> the distance you want it
+raised (-) or lowered (+) with a unit of measure appended. For
+example, to lower a box three points,
+<span class="pre-in-pp">
+&nbsp;&nbsp;.BOX OUTLINED black ADJUST +3p
+</span>
+To raise it,
+<span class="pre-in-pp">
+&nbsp;&nbsp;.BOX OUTLINED black ADJUST -3p
+</span>
+</p>
+
+<h3 class="docs">PIC / GRAP / EQN / IMG</h3>
+
+<p>
+The <kbd>PIC</kbd> argument must be given to BOX if the box contains
+any
+<a href="#pic">pic</a>
+diagrams. Likewise, graphs made with
+<a href="#grap">grap</a>,
+equations made with
+<a href="#eqn">eqn</a>,
+and
+<a href="#pdf-image">pdf images</a>
+require a corresponding <kbd>GRAP</kbd>, <kbd>EQN</kbd>, or
+<kbd>IMG</kbd> argument.
+</p>
+
+<p>
+If you&#8217;re boxing a single diagram, graph, or pdf image, wrap
+it in a float, like this:
+<span class="pre-in-pp">
+&nbsp;&nbsp;.FLOAT
+&nbsp;&nbsp;.BOX PIC &lt;other parameters&gt;
+&nbsp;&nbsp;.PS
+&nbsp;&nbsp;&lt;pic input&gt;
+&nbsp;&nbsp;.PE
+&nbsp;&nbsp;.BOX OFF
+&nbsp;&nbsp;.FLOAT OFF
+</span>
+Notice that in the case of pdf images, pic, and grap, this
+represents a change from the norm, where the use of FLOAT may be
+destructive and is discouraged.
+</p>
+
+<h2 id="box-notes" class="docs">Additional notes on BOX usage and behaviour</h2>
+
+<h3 id="qbef" class="docs">QUOTE, BLOCKQUOTE, EPIGRAPH, FLOAT</h3>
+
+<p>
+<a href="docelement.html#quote">QUOTE</a>,
+<a href="docelement.html#blockquote">BLOCKQUOTE</a>,
+<a href="docelement.html#epigraph">EPIGRAPH</a>,
+and
+<a href="images.html#float">FLOAT</a>
+require that boxes be started <i>after</i> they are
+invoked and stopped just before they are toggled off:
+<span class="pre-in-pp">
+&nbsp;&nbsp;.QUOTE
+&nbsp;&nbsp;.BOX &lt;parameters&gt;
+&nbsp;&nbsp;Text of quote
+&nbsp;&nbsp;.BOX OFF
+&nbsp;&nbsp;.QUOTE OFF
+</span>
+</p>
+
+<h3 id="code" class="docs">CODE</h3>
+
+<p>
+If you&#8217;re boxing
+<a href="docelement.html#code">CODE</a>
+that&#8217;s wrapped inside
+<a href="docelement.html#quote">QUOTE</a>,
+as described
+<a href="docelement.html#quote-code">here</a>,
+set the quote indent to &#8220;0&#8221; with
+<span class="pre-in-pp">
+&nbsp;&nbsp;.QUOTE_STYLE INDENT 0
+</span>
+so that the box&#8217;s leftmost inset is respected.
+</p>
+
+<p>
+Here&#8217;s a recipe for setting boxed code with an 18-point inset:
+<span class="pre-in-pp">
+&nbsp;&nbsp;.QUOTE_STYLE INDENT 0
+&nbsp;&nbsp;.QUOTE
+&nbsp;&nbsp;.CODE
+&nbsp;&nbsp;.BOX INSET 18p
+&nbsp;&nbsp;Hello, world.
+&nbsp;&nbsp;.BOX OFF
+&nbsp;&nbsp;.QUOTE OFF
+</span>
+Note that CODE, wrapped inside QUOTE, does not require a corresponding CODE OFF.
+</p>
+
+<h4 id="quotes" class="docs">Description of boxed BLOCKQUOTES and EPIGRAPH BLOCKS</h4>
+
+<p>
+When you box a BLOCKQUOTE, or an EPIGRAPH with the <kbd>BLOCK</kbd>
+argument, the box is centred on the page and is only as wide as the
+blockquote or epigraph plus the box&#8217;s inset.
+</p>
+
+<p>
+QUOTE and EPIGRAPH (without the <kbd>BLOCK</kbd> argument), on the
+other hand, set the box fully to the left and right margins.
+</p>
+
+<h4 id="leftover" class="docs">Leftover box syndrome</h4>
+
+<p>
+Boxed quotes and blockquotes sometimes exhibit leftover box
+syndrome, where the page after a fully terminated boxed quote or
+blockquote begins with an empty bit of box. Equally, you may
+sometimes see the lower edge of a quote&#8217;s or
+blockquote&#8217;s box falling slightly below the page&#8217;s
+bottom margin.
+</p>
+
+<p>
+The solution in both situations is to use the <kbd>ADJUST</kbd>
+argument to raise or lower the box&#8217;s starting position.
+Leftover box syndrome is usually fixed by raising the box slightly.
+When the box runs too deep, lowering it is generally recommended,
+although this will result in a widowed line at the top of the next
+page. In either case, some experimentation is necessary.
+</p>
+
+<h3 id="slides" class="docs">SLIDES</h3>
+
+<p>
+On a slide with no pauses, boxes behave as they do in printed
+documents.
+</p>
+
+<p>
+When a slide contains pauses, only the material up to the first
+pause is boxed. As subsequent material is revealed, the box changes
+location, moving down to surround each new item. This behaviour
+persists until the box is stopped, making it useful for highlighting
+material as it is revealed.
+</p>
+
+<h3 id="footnotes" class="docs">Footnotes</h3>
+
+<p>
+You don&#8217;t have to worry about boxes encroaching on footnotes.
+Mom makes sure they don&#8217;t.
+</p>
+
+<h2 id="page-color-intro" class="docs">Page colour</h2>
+
+<p>
+Mom lets you change the page (&#8220;paper&#8221;) colour
+from white to anything you like. While this has limited application
+in printed documents, it can be effective in
+<a href="docprocessing.html#slides">slide presentations</a>.
+</p>
+
+<div class="macro-id-overline">
+<h3 id="page-color" class= "macro-id">PAGE_COLOR</h3>
+</div>
+
+<div id="page-color-macro" class="box-macro-args" style="margin-top: .5em">
+Macro: <b>PAGE_COLOR</b> <kbd class="macro-args"> &lt;color&gt; | OFF | off</kbd>
+</div>
+<p class="requires" style="font-style: normal">
+<i>Aliased as</i> <kbd>PAGE_COLOUR</kbd>, <kbd>SLIDE_COLOR</kbd>,
+<i>and</i> <kbd>SLIDE_COLOUR</kbd>.
+</p>
+
+<p>
+When you invoke PAGE_COLOR with a <kbd>color</kbd> argument, the
+current and subsequent pages turn the colour you request. If
+more than one instance of PAGE_COLOR appears before a page break,
+including <kbd>PAGE_COLOR OFF</kbd>, only the last applies.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Unlike other
+<a href="definitions.html#toggle">toggle macros</a>,
+PAGE_COLOR requires the use of <kbd>OFF</kbd> or <kbd>off</kbd>
+to terminate it rather than an arbitrary string (<kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>, etc).
+</p>
+</div>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 20%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 46%; text-align: right;"><a href="headfootpage.html">Next: Page headers/footers, pagination</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/inlines.html b/contrib/mom/momdoc/inlines.html
new file mode 100644
index 0000000..8613161
--- /dev/null
+++ b/contrib/mom/momdoc/inlines.html
@@ -0,0 +1,1112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Inline escapes</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="color.html#top">Next: Coloured text</a></td>
+</tr>
+</table>
+
+<h1 id="inline-escapes" class="docs">Inline escapes</h1>
+
+<div style="text-align: center;">
+<a href="#index-inlines">List of inline escapes</a>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="intro-inlines" class="docs">Introduction</h2>
+<p>
+Inline escapes, as described in the
+<a href="definitions.html#inlines">groff terms</a>
+section of this manual, are typesetting commands that appear in text
+<a href="definitions.html#inputline">input lines</a>,
+as opposed to macros and other
+<a href="definitions.html#controllines">control lines</a>
+that must appear on lines by themselves.
+</p>
+
+<p>
+Aside from altering type parameters within a line, inlines also tell
+groff about special characters&mdash;em-dashes, bullets,
+<a href="definitions.html#figurespace">figure/digit-width spaces</a>,
+and so on. It is beyond the scope of this manual to provide
+a complete list of groff&#8217;s inline functions and special
+characters. I recommend having a look at the
+<a href="intro.html#canonical">canonical reference materials</a>
+should you need more information than is contained herein.
+</p>
+
+<p>
+In groff, the escape character is the backslash (<kbd>\</kbd>).
+Groff interprets everything following the backslash as instructions,
+not literal text, until the escape sequence is complete. Should
+you need the actual backslash character as part of a line of text,
+simply enter it twice (<kbd>\\</kbd>). Groff understands that this
+means &#8220;please print a backslash character.&#8221;
+</p>
+
+<p>
+You can also use <kbd>\e</kbd> to print a literal backslash, or use
+<a href="goodies.html#esc-char">ESC_CHAR</a> to change the escape
+character to something other than the backslash, which lets you
+use a single backslash as a literal backslash.
+</p>
+
+<p>
+Groff has a number of ways of recognizing what constitutes a
+complete escape sequence. This is both a boon and a curse; some
+escape sequences have no terminating delimiter and consequently
+become difficult to distinguish from real input text. Others
+require the use of an opening parenthesis with no corresponding
+closing parenthesis. Still others need to be enclosed in square
+brackets.
+</p>
+
+<p>
+Mom recognizes that certain escapes get used more often than others.
+For these, she has a consistent input style that takes the form
+<kbd><span class="nobr">\*[...]</span></kbd>, which makes them stand out well
+from the text of your documents. These escapes are the ones listed
+under
+<a href="#inlines-mom">Mom&#8217;s personal inline escapes</a>.
+</p>
+
+<p>
+Despite mom&#8217;s best intentions, there are still
+a number of typesetting functions that can only be accomplished
+with groff&#8217;s native inline escapes. I&#8217;ve listed the
+ones that strike me as essential, but there are many others. If you
+want to know what they are, please read the
+<a href="intro.html#canonical">canonical reference materials</a>
+pertaining to groff.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Helpful bit of information:</span>
+Inline escapes can be used in
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+that take
+<a href="definitions.html#stringargument">string arguments</a>.
+</p>
+</div>
+
+<div class="macro-list-container">
+<h3 id="index-inlines" class="macro-list">List of inline escapes</h3>
+
+<ul class="macro-list">
+<li id="inlines-mom"><a href="#inlines-mom-top">Mom&#8217;s personal inline escapes</a>
+<ul class="no-enumerator" style="margin-left: -1.5em;">
+ <li><a href="#inline-fonts-mom">Changing fonts</a></li>
+ <li><a href="#inline-size-mom">Changing point size</a></li>
+ <li><a href="#uc-lc">Capitalise a section of type</a></li>
+ <li><a href="#inline-kerning-mom">Pairwise kerning</a></li>
+ <li><a href="#inline-horizontal-mom">Horizontal movement</a></li>
+ <li><a href="#inline-vertical-mom">Vertical movement</a></li>
+ <li><a href="#inline-b-mom">Terminate a line without advancing on the page</a></li>
+ <li><a href="#tb-plus-mom">Call the next sequential tab without advancing on the page</a></li>
+ <li><a href="#inline-rule-mom">Full measure rules</a>
+ <ul class="sublist" style="font-size: 100%;">
+ <li><a href="#rule-weight">Macro to control the weight of rules</a></li>
+ </ul></li>
+</ul></li>
+<li id="inlines-groff"><a href="#inlines-groff-top">Commonly-used groff inline escapes</a>
+<ul class="no-enumerator" style="margin-left: -1.5em;">
+ <li><kbd>\f</kbd>&nbsp;<a href="#inline-fonts-groff">Font control</a></li>
+ <li><kbd>\h</kbd>&nbsp;<a href="#inline-horizontal-groff">Inline horizontal motions</a></li>
+ <li><kbd>\v</kbd>&nbsp;<a href="#inline-vertical-groff">Inline vertical motions</a></li>
+ <li><kbd>\w</kbd>&nbsp;<a href="#inline-stringwidth-groff">String width function</a></li>
+ <li><kbd>\l</kbd>&nbsp;<a href="#inline-linedrawing-groff">Horizontal line drawing function</a></li>
+ <li style="margin-left: 1.6em;"><a href="#inline-characters-groff">Special characters</a></li>
+</ul></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<!-- -INLINE_FONTS_MOM- -->
+
+<h2 id="inlines-mom-top" class="macro-group">Mom&#8217;s personal inline escapes</h2>
+
+<h3 id="inline-fonts-mom" class="docs">Changing fonts</h3>
+
+<p>
+Mom provides five escapes for changing fonts inline:
+<br/>
+<span class="pre-in-pp">
+ \*[ROM] Change to the medium roman font
+ \*[IT] Change to the medium italic font
+ \*[BD] Change to the bold roman font
+ \*[BDI] Change to the bold italic font
+ \*[PREV] Revert to the previous font (once only)*
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">*Note:</span>
+<kbd><span class="nobr">\*[PREV]</span></kbd> does not operate "stack
+style". It returns to the previous font once only, and
+afterwards has no effect. In other words, in the case of
+<kbd><span class="nobr">\*[PREV]\*[PREV]</span></kbd>, only the first
+<kbd><span class="nobr">\*[PREV]</span></kbd> is respected; the second one is silently
+ignored.
+</p>
+</div>
+
+<p>
+These escapes are provided for merely for convenience, legibility,
+and consistency when typesetting with mom. For more complete and
+flexible inline font control, please see
+<a href="#inline-fonts-groff">font control with <kbd>\f</kbd></a>.
+</p>
+
+<div class="box-notes">
+<h3 id="inlines-docprocessing-fonts" class="docs notes">Notes concerning document processing</h3>
+<p style="margin-top: .5em;">
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>,
+inline font changes remain in effect only for the duration of the
+current document element tag.
+</p>
+
+<p class="tip-bottom">
+Additionally, if you&#8217;re designing your own
+<a href="headfootpage.html#headfootpage-intro">HEADERS or FOOTERS</a>
+and want to use mom&#8217;s inline escapes for changing fonts as
+part of the left, centre and/or right strings, or in the strings
+for
+<a href="headfootpage.html#hdrftr-rectoverso">recto</a>
+and/or
+<a href="headfootpage.html#hdrftr-rectoverso">verso</a>
+HEADERS or FOOTERS, or in the strings passed to
+<a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a>,
+you must enter the inlines beginning with <kbd>\E*</kbd>
+rather than just <kbd><span class="nobr">\*</span></kbd>, e.g.
+<kbd><span class="nobr">\E*[BD]</span></kbd>. You may, in such cases, prefer to
+use the simpler groff inline escape
+<a href="#inline-fonts-groff"><kbd>\f</kbd></a>.
+</p>
+</div>
+
+<!-- -INLINE_SIZE_MOM- -->
+
+<h3 id="inline-size-mom" class="docs">Changing point size</h3>
+<p>
+Mom has two inline escapes for changing point size:
+<br/>
+<span class="pre-in-pp">
+ \*[SIZE &lt;size&gt;]
+</span>
+and
+<br/>
+<span class="pre-in-pp">
+ \*S[&lt;size&gt;]
+</span>
+where &#8220;size&#8221; is the new size you want. You can use
+either; they behave exactly the same way. For example, to change
+the point size of type inline to 12 points, you could enter either
+<br/>
+<span class="pre-in-pp">
+ \*[SIZE 12]
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ \*S[12]
+</span>
+Entering either <kbd><span class="nobr">\*[SIZE]</span></kbd> or
+<kbd><span class="nobr">\*S[]</span></kbd> with no argument reverts to the former
+point size.
+</p>
+
+<p>
+The advantage of the first form is that it&#8217;s easy to remember,
+and follows mom&#8217;s usual inline syntax. The advantage of the
+second is that it&#8217;s more concise.
+</p>
+
+<p>
+Notice that in both cases, the new size does not require a
+<a href="definitions.html#unitofmeasure">unit of measure</a>;
+<a href="definitions.html#picaspoints">points</a>
+is assumed. However, a unit of measure may be appended to the size
+if that&#8217;s what you wish. Fractional sizes are, of course,
+allowed.
+</p>
+
+<p>
+The size given to <kbd><span class="nobr">\*[SIZE&nbsp;&lt;size&gt;]</span></kbd>
+or <kbd><span class="nobr">\*S[&lt;size&gt;]</span></kbd> may be expressed in
+plus or minus terms, which can be very useful. In the following
+examples, the word &#8220;mom&#8221; will be output 2 points larger
+than the point size of the rest of the line.
+<br/>
+<span class="pre-in-pp">
+ While she isn't perfect, \*S[+2]mom\*S[-2] isn't half bad.
+ While she isn't perfect, \*[SIZE +2]mom\*[SIZE -2] isn't half bad.
+</span>
+Please note that inline size changes do not update the leading if
+<a href="typesetting.html#autolead">AUTOLEAD</a>
+is enabled.
+</p>
+
+<div class="box-notes">
+<h3 id="inline-docprocessing-ps" class="docs notes">NOTE CONCERNING DOCUMENT PROCESSING</h3>
+<p style="margin-top: .5em;">
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+and wish to design your own
+<a href="headfootpage.html#headfootpage-intro">HEADERS or FOOTERS</a>
+using mom&#8217;s inline escape for changing point size as part of
+the left, centre and/or right strings, or in the strings for
+<a href="headfootpage.html#hdrftr-rectoverso">recto</a>
+and/or
+<a href="headfootpage.html#hdrftr-rectoverso">verso</a>
+HEADERS or FOOTERS, or in the strings passed to
+<a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a>,
+you <i>must</i> use the form <kbd><span class="nobr">\*S[&lt;n&gt;]</span></kbd>
+and enter the inline beginning with <kbd>\E*</kbd>, like this:
+<kbd><span class="nobr">\E*S[&lt;+|-&gt;&lt;n&gt;]</span></kbd>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+If you&#8217;re accustomed to groff&#8217;s usual way of handling
+inline size requests <kbd>(\sN, \s±N, \s(NN, \s±(NN, \s[NNN],
+\s±[NNN]),</kbd> feel free to continue with your old habits. Mom
+doesn&#8217;t care.
+</p>
+</div>
+
+<!-- -CAPITALISATION- -->
+
+<h3 id="uc-lc" class="docs">Capitalise a section of type</h3>
+<p>
+If you need to capitalise a region of type inline,
+bracket the region of type with the inline escapes,
+<kbd><span class="nobr">\*[UC]</span></kbd> (Upper Case) and
+<kbd><span class="nobr">\*[LC]</span></kbd> (Lower Case), like this:
+<br/>
+<span class="pre-in-pp">
+ All work \*[UC]and\*[LC] no play makes Jack a dull boy.
+</span>
+The above produces, on output
+<br/>
+<span class="pre-in-pp">
+ All work AND no play makes Jack a dull boy.
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>\*[UC]</kbd> and <kbd>\*[LC]</kbd> must not be used inside the
+<a href="definitions.html#stringargument">string arguments</a>
+passed to the
+<a href="headfootpage.html#hdrftr-strings">HEADER_&lt;POSITION&gt;</a>
+macro. Instead, use the control macro
+<a href="headfootpage.html#_caps">HEADER_&lt;POSITION&gt;_CAPS.</a>
+For
+<a href="headfootpage.html#hdrftr-rectoverso">HEADER_RECTO</a>
+(or _VERSO) or
+<a href="headfootpage.html#hdrftr-rectoverso">FOOTER_RECTO</a>
+(or _VERSO), supply the <kbd>CAPS</kbd> option to the appropriate
+macro.
+</p>
+</div>
+
+<!-- -INLINE_KERNING_MOM- -->
+
+<h3 id="inline-kerning-mom" class="docs">Pairwise kerning</h3>
+<p>
+Pairwise kerning means moving specific letter pairs closer
+together or further apart (see
+<a href="definitions.html#kern">Typesetting terms, kerning</a>
+for more details).
+</p>
+
+<p>
+Mom permits inline pairwise kerning through the use of the inline
+escapes
+<br/>
+<span class="pre-in-pp">
+ \*[BU &lt;n&gt;]&nbsp;Closes the space between letters (Back Units).
+ \*[FU &lt;n&gt;]&nbsp;Opens the space between letters (Forward Units).
+</span>
+<b>&lt;n&gt;</b> is the number of
+<a href="definitions.html#kernunit">kern units</a>
+by which to close or open the space between letters.
+</p>
+
+<p>
+For example,
+<br/>
+<span class="pre-in-pp">
+ THE HUMAN COST OF COMMODIF\*[FU 1]YING FRESH W\*[BU 4]A\*[BU 5]TER
+</span>
+moves the letter Y in &#8220;COMMODIFYING&#8221; one kern unit away
+from the letter F, and the letter A in &#8220;WATER&#8221; four
+kern units closer to the letter W. Additionally, the letter T in
+&#8220;WATER&#8221; is moved five kern units closer to the letter A.
+</p>
+
+<p>
+For backward compatibility, the forms
+<br/>
+<span class="pre-in-pp">
+ \*[BU1]...\*[BU36]&nbsp;Move backward 1...36 <a href="definitions.html#kernunit">kern units</a>
+ \*[FU1]...\*[FU36]&nbsp;Move forward 1...36 <a href="definitions.html#kernunit">kern units</a>
+</span>
+also exist (i.e. with no space before the number of kern units desired,
+up to a limit of 36).
+</p>
+
+<p id="kernunit">
+The default size of a kern unit is 1/36 of the current point size;
+this may be changed by invoking the macro <kbd>.KERN_UNIT</kbd>
+with the desired value, which represents a fraction of the current
+point size. For example, to change the kern unit to 1/54 of the
+current point size,
+<br/>
+<span class="pre-in-pp">
+ .KERN_UNIT 54
+</span>
+To restore the kern unit to its default, invoke
+<kbd>.KERN_UNIT</kbd> with an argument of <kbd>DEFAULT</kbd>.
+</p>
+
+
+<div class="box-notes">
+<h3 id="inlines-docprocessing-kerning" class="docs notes">Notes concerning document processing</h3>
+<p style="margin-top: .5em;">
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+and wish to design your own
+<a href="headfootpage.html#headfootpage-intro">HEADERS or FOOTERS</a>
+using mom&#8217;s inline escapes for kerning as part of the left,
+centre and/or right strings, or in the strings for
+<a href="headfootpage.html#hdrftr-rectoverso">recto</a>
+and/or
+<a href="headfootpage.html#hdrftr-rectoverso">verso</a>
+HEADERS or FOOTERS, or in the strings passed to
+<a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a>,
+you <i>must</i> use the forms
+<kbd><span class="nobr">\E*[BU&lt;n&gt;]</span></kbd> and
+<kbd><span class="nobr">\E*[FU&lt;n&gt;]</span></kbd> (i.e. with no space),
+and enter the inline beginning with <kbd><span class="nobr">\E*</span></kbd>
+rather than just <kbd><span class="nobr">\*</span></kbd>, e.g.
+<kbd><span class="nobr">\E*[BU4]</span></kbd>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+Using the <kbd>BU</kbd> or <kbd>FU</kbd> escapes between characters
+pairs that are already automatically kerned (see
+<a href="typesetting.html#kern">KERN</a>)
+disables the automatic kerning and uses the value you give to
+<kbd>BU</kbd> or <kbd>FU</kbd> instead.
+</p>
+</div>
+
+<!-- -INLINE_HORIZONTAL_MOM- -->
+
+<h3 id="inline-horizontal-mom" class="docs">Horizontal inline movement</h3>
+<p>
+Sometimes, you may need to insert a specified amount of white
+space into an
+<a href="definitions.html#outputline">output line</a>,
+or&mdash;occasionally&mdash;back up to a previous position on an
+<a href="definitions.html#inputline">output</a>
+line in order to create special typographic effects.
+</p>
+
+<p>
+Mom&#8217;s inline escapes for these horizontal movements are
+<br/>
+<span id="bck" class="pre-in-pp">
+ \*[BCK &lt;n unit&gt;]&nbsp;&nbsp;Move backward inline the specified number of
+ <a href="definitions.html#unitofmeasure">units of measure</a>; decimal fractions are allowed.
+</span>
+and
+<span id="fwd" class="pre-in-pp">
+ \*[FWD &lt;n unit&gt;]&nbsp;&nbsp;Move forward inline the specified number of
+ <a href="definitions.html#unitofmeasure">units of measure</a>; decimal fractions are allowed.
+</span>
+</p>
+
+<p>
+For example,
+<br/>
+<span class="pre-in-pp">
+ 1.\*[FWD 12p]The Free Trade Play-Offs: WalMart 100, Mexico 0
+</span>
+puts 12 points of space between <kbd>1.</kbd> and
+<kbd>The</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+For backward compatibility, the forms
+<br/>
+<span class="pre-in-pp">
+ \*[BP.25]...\*[BP12.75]&nbsp;Move backward .25...12.75 points
+ \*[FP.25]...\*[FP12.75]&nbsp;Move forward .25...12.75 points
+</span>
+also exist (i.e. with no space before the digit and points being
+the unit of measure, hence no unit of measure required). Both
+accept quarter points, so it&#8217;s possible to do,
+for example, <kbd><span class="nobr">\*[FP.5]</span></kbd> or
+<kbd><span class="nobr">\*[BP1.25]</span></kbd> up to a limit of 12.75 points.
+</p>
+</div>
+
+<div class="box-notes">
+<h3 id="inlines-docprocessing-horizontal" class="docs notes">Note concerning document processing</h3>
+<p style="margin-top: .5em; padding-bottom: .5em;">
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+and wish to design your own
+<a href="headfootpage.html#headfootpage-intro">HEADERS or FOOTERS</a>
+using mom&#8217;s inline escapes for horizontal movements as part of
+the left, centre and/or right strings, or in the strings for
+<a href="headfootpage.html#hdrftr-rectoverso">recto</a>
+and/or
+<a href="headfootpage.html#hdrftr-rectoverso">verso</a>
+HEADERS or FOOTERS, or in the strings passed to
+<a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a>,
+you <i>must</i> use the forms
+<kbd><span class="nobr">\E*[BP&lt;n&gt;]</span></kbd> and
+<kbd><span class="nobr">\E*[FP&lt;n&gt;]</span></kbd> (i.e. with no space),
+and enter the inline beginning with <kbd><span class="nobr">\E*</span></kbd>
+rather than just <kbd><span class="nobr">\*</span></kbd>, e.g.
+<kbd><span class="nobr">\E*[BP.75]</span></kbd>. You may, in such cases, prefer
+to use the native groff inline escape
+<a href="#inline-horizontal-groff"><kbd>\h</kbd></a>.
+</p>
+</div>
+
+<!-- -INLINE_VERTICAL_MOM- -->
+
+<h3 id="inline-vertical-mom" class="docs">Vertical inline movement</h3>
+<p>
+If you need to move portions of type up or down on a line, mom
+provides the following inline escapes:
+<br/>
+<span id="down" class="pre-in-pp">
+ \*[DOWN &lt;n unit&gt;]&nbsp;Move down inline the specified number of
+ <a href="definitions.html#unitofmeasure">units of measure</a>
+
+ <span id="up">\*[UP &lt;n unit&gt;]&nbsp;Move up inline the specified number of
+ <a href="definitions.html#unitofmeasure">units of measure</a></span>
+</span>
+For example,
+<br/>
+<span class="pre-in-pp">
+ Tel: 905\*[UP 1p]-\*[DOWN 1p]4072
+</span>
+moves the hyphen in the telephone number up by 1 point, then
+moves back down by the same amount.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd><span class="nobr">\*[UP]</span></kbd> and
+<kbd><span class="nobr">\*[DOWN]</span></kbd>
+do not work in conjunction with the inline escape,
+<a href="#inline-rule-mom"><kbd><span class="nobr">\*[RULE]</span></kbd></a>.
+</p>
+
+<p>
+<span class="additional-note">Additional note:</span>
+For backward compatibility, the following are also available:
+<br/>
+<span class="pre-in-pp">
+ \*[ALD.25]...\*[ALD12.75] Advance lead .25...12.75 points (move downward)
+ \*[RLD.25]...\*[RLD12.75] Reverse lead .25...12.75 points (move upward)
+</span>
+</p>
+
+<p class="tip-bottom">
+Both <kbd><span class="nobr">\*[ALD]</span></kbd> and
+<kbd><span class="nobr">\*[RLD]</span></kbd> work in points, hence you
+mustn&#8217;t use a unit of measure.
+</p>
+</div>
+
+<div class="box-notes">
+<h3 id="inline-docprocessing-vertical" class="docs notes">Note concerning document processing</h3>
+<p style="margin-top: .5em; padding-bottom: .5em;">
+If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+and wish to design your own
+<a href="headfootpage.html#headfootpage-intro">HEADERS or FOOTERS</a>
+using mom&#8217;s inline escapes for vertical movements as part of
+the left, centre and/or right strings, or in the strings for
+<a href="headfootpage.html#hdrftr-rectoverso">recto</a>
+and/or
+<a href="headfootpage.html#hdrftr-rectoverso">verso</a>
+HEADERS or FOOTERS, or in the strings passed to
+<a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a>,
+you <i>must</i> use the forms
+<kbd><span class="nobr">\E*[ALD&lt;n&gt;]</span></kbd> and
+<kbd>\E*[RLD&lt;n&gt;]</kbd> (i.e. with no space), and enter the
+inline beginning with <kbd><span class="nobr">\E*</span></kbd> rather than just
+<kbd><span class="nobr">\*</span></kbd>,
+e.g. <kbd><span class="nobr">\E*[ALD.5]</span></kbd>.
+You may, in such cases, prefer to use the native groff inline
+escape
+<a href="#inline-vertical-groff"><kbd>\v</kbd></a>.
+
+</p>
+</div>
+
+<!-- -INLINE_B_MOM- -->
+
+<h3 id="inline-b-mom" class="docs">Terminate a line without advancing on the page</h3>
+<p>
+Sometimes, you want mom to break a line but not advance on the page.
+This can be accomplished with the macro
+<a href="typesetting.html#el">EL</a>
+or with the escape <kbd><span class="nobr">\*[B]</span></kbd>. Simply attach
+<kbd><span class="nobr">\*[B]</span></kbd> to the end of any input line. Using
+the example given in the document entry for EL, you&#8217;d use
+<kbd><span class="nobr">\*[B]</span></kbd> like this:
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .LS 12.5
+ A line of text.\*[B]
+ .ALD 24p
+ The next line of text.
+</span>
+
+<kbd>\*[B]</kbd> works reliably regardless of the current
+<a href="definitions.html#filled">fill mode</a>.
+</p>
+
+<!-- -INLINE_TB+_MOM- -->
+
+<h3 id="tb-plus-mom" class="docs">Call the next sequential tab without advancing on the page</h3>
+<p>
+Sometimes, you want mom to move to the next tab in sequence (e.g.
+from TAB 1 to TAB 2, or TAB 8 to TAB 9) without mom advancing on the
+page. (See the NOTE
+<a href="typesetting.html#note-tn">here</a>
+if you&#8217;re not clear how mom manages tabs and linebreaks.) To
+do so, simply attach the escape <kbd><span class="nobr">\*[TB+]</span></kbd> to
+the end of the input line in previous tab, like this:
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ Some text\*[TB+] \" In tab 1
+ Some more text \" In tab 2, same baseline.
+</span>
+
+<kbd><span class="nobr">\*[TB+]</span></kbd> works reliably regardless of the
+current
+<a href="definitions.html#filled">fill mode</a>.
+</p>
+
+<!-- -INLINE_RULE_MOM- -->
+
+<h3 id="inline-rule-mom" class="docs">Full measure rules</h3>
+<p>
+I find I often need rules drawn to the full measure of the
+current line or tab length. The official way to do this is
+<kbd><span class="nobr">\l'\n[.l]u'</span></kbd>, which is annoying to type,
+and doesn&#8217;t mean a whole heck of a lot if you&#8217;re new
+to groff. The inline, <kbd><span class="nobr">\*[RULE]</span></kbd>, is a
+simple replacement for <kbd><span class="nobr">\l'\n[.l]u'</span></kbd>. Use it
+whenever you need a rule drawn to the full measure of the current
+line or tab length, for example:
+<br/>
+<span class="pre-in-pp">
+ .LL 6P
+ \*[RULE]
+</span>
+
+The above draws a rule the full measure of the 6-pica line length.
+For another way to draw full measure rules, see the macro
+<a href="graphical.html#drh">DRH</a>.
+</p>
+
+<p>
+<kbd>\*[RULE]</kbd> must appear on an
+<a href="definitions.html#inputline">input line</a>
+by itself, and always causes a break when entered after a normal
+input line of text. It does not, however, deposit a break when used
+immediately after a macro.
+</p>
+
+<p>
+The weight of the rule drawn with <kbd><span class="nobr">\*[RULE]</span></kbd>
+is controlled with the macro
+<a href="#rule-weight">RULE_WEIGHT</a>.
+Mom&#8217;s default is 1/2 point.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd><span class="nobr">\*[RULE]</span></kbd> draws the rule to the full measure,
+hence it cannot be used to fill the remainder of a partial line with
+a rule in this way:
+<br/>
+<span class="pre-in-pp">
+ Signature__________________________________________
+</span>
+If you wish to accomplish this effect, you have to use
+<kbd>\*[RULE]</kbd> in conjunction with the
+<a href="goodies.html#pad">PAD</a>
+macro and
+<a href="typesetting.html#string-tabs">string tabs</a>.
+(See the
+<a href="goodies.html#pad-example">example</a>
+provided with PAD.)
+<a name="RULE_EXCEPTION"></a>
+</p>
+
+<p>
+Please also note that the inline escapes
+<a href="#up"><kbd><span class="nobr">\*[UP]</span></kbd></a>
+and
+<a href="#down"><kbd>\*[DOWN]</kbd></a>
+cannot be used in conjunction with <kbd><span class="nobr">\*[RULE]</span></kbd>.
+</p>
+
+<p>
+This <i>doesn&#8217;t</i> work:
+<br/>
+<span class="pre-in-pp">
+ \*[DOWN 2p]\*[RULE]\*[UP 2p]
+</span>
+whereas this does:
+<br/>
+<span class="pre-in-pp">
+ .ALD 2p
+ \*[RULE]
+ .RLD 2p
+</span>
+</p>
+
+<p class="tip-bottom">
+See groff&#8217;s
+<a href="#inline-linedrawing-groff">Horizontal line drawing function</a>
+for more information on drawing horizontal rules.
+</p>
+</div>
+
+<!-- -RULE_WEIGHT- -->
+
+<div id="rule-weight" class="box-macro-args">
+Macro: <b>RULE_WEIGHT</b> <kbd>&lt;weight in points&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Must <span class="normal">not</span> have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended.
+<br/>
+&nbsp;&nbsp;Argument must be greater than 0 and less than 100; decimal
+fractions are allowed.
+</p>
+
+<p>
+RULE_WEIGHT allows you to tell mom how heavy (in other words, how
+&#8220;thick&#8221;) you want the rules drawn with the inline
+escape,
+<a href="#inline-rule-mom"><kbd><span class="nobr">\*[RULE]</span></kbd></a>.
+It takes a single argument: the weight of the rule in
+<a href="definitions.html#picaspoints">points</a>
+<i>but without the</i>
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+<kbd>p</kbd> <i>attached</i>. Thus, to set the weight of rules
+drawn with <kbd><span class="nobr">\*[RULE]</span></kbd> to 1-1/4 points,
+you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ .RULE_WEIGHT 1.25
+</span>
+</p>
+
+<p>
+RULE_WEIGHT also sets the weight of rules drawn
+with
+<a href="graphical.html#drh"><kbd>.DRH</kbd></a>
+when DRH is not given any arguments.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<!-- -INLINE_FONT_GROFF- -->
+
+<h2 id="inlines-groff-top" class="macro-group">Commonly-used groff inline escapes</h2>
+
+<h3 id="inline-fonts-groff" class="docs">Font control (<kbd style="text-transform: none">\f</kbd>)</h3>
+
+<p>
+Groff&#8217;s basic mechanism for inline font control is the escape
+<kbd>\f[&lt;font&gt;]</kbd>.
+<br/>
+<span class="pre-in-pp">
+ \f[R] Change to the medium roman font (equivalent to mom's \*[ROM])
+ \f[I] Change to the medium italic font (equivalent to mom's \*[IT])
+ \f[B] Change to the bold roman font (equivalent to mom's \*[BD])
+ \f[BI] Change to the bold italic font (equivalent to mom's \*[BDI])
+ \f[P] Revert to the previous font (equivalent to mom's \*[PREV])
+</span>
+</p>
+
+<p>
+<kbd>\f[&lt;font&gt;]</kbd> can be used with any valid
+<a href="definitions.html#font">font style</a>
+registered with groff. (See
+<a href="appendices.html#style-extensions">here</a>
+for a list of pre-registered font styles provided by mom).
+</p>
+
+<p>
+<kbd>\f[&lt;family&gt;&lt;font&gt;]</kbd> can also take a complete valid
+family+font name combo. This is especially useful should you
+need to change both family and font inline. For example, if your
+prevailing family and font are Times Roman and you want a few words
+in Courier Bold Italic, you could do this:
+<br/>
+<span class="pre-in-pp">
+ .FAM T
+ .FT R
+ The command \f[CBI]ls -l\f[P] gives a "long" directory listing.
+</span>
+The Unix command <kbd>ls -l</kbd> will appear in Courier Bold Italic
+in a line that is otherwise in Times Roman.
+</p>
+
+<!-- -INLINE_HORIZONTAL_GROFF- -->
+
+<h3 id="inline-horizontal-groff" class="docs">Inline horizontal motions (<kbd style="text-transform: none;">\h</kbd>)</h3>
+
+<p>
+Whenever you need to move forward or backward on a line, use the
+inline
+<br/>
+<span class="pre-in-pp">
+ \h'&lt;distance&gt;'
+</span>
+In order to avoid unpleasant surprises, always append a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to <kbd>&lt;distance&gt;</kbd>. For example,
+<br/>
+<span class="pre-in-pp">
+ \h'1.25i'
+</span>
+moves you 1.25 inches to the right (forward) of the horizontal
+position on the current
+<a href="definitions.html#outputline">output line</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>\h'&lt;distance&gt;'</kbd> is exactly equivalent to a
+<a href="#fwd"><kbd><span class="nobr">\*[FWD&nbsp;n&lt;unit&gt;]</span></kbd></a>.
+</p>
+</div>
+
+<p>
+To move backwards by the same amount, do
+<br/>
+<span class="pre-in-pp">
+ \h'-1.25i'
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip" style="margin-top: -1em;">
+<span class="note">Note:</span>
+<kbd>\h'-&lt;distance&gt;'</kbd> is exactly equivalent to
+<a href="#bck"><kbd><span class="nobr">\*[BCK&nbsp;n&lt;unit&gt;]</span></kbd></a>.
+</p>
+</div>
+
+<!-- -INLINE_VERTICAL_GROFF- -->
+
+<h3 id="inline-vertical-groff" class="docs">Inline vertical motions (<kbd style="text-transform: none;">\v</kbd>)</h3>
+
+<p>
+If you need to raise or lower type on a line (say, for sub- or
+superscripts, or any other special effect), use
+<br/>
+<span class="pre-in-pp">
+ \v'&lt;distance&gt;'
+</span>
+In order to avoid unpleasant surprises, always append a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+to <kbd>&lt;distance&gt;</kbd>. For example,
+<br/>
+<span class="pre-in-pp">
+ \v'.6m'
+</span>
+moves you (approx.) 2/3 of an
+<a href="definitions.html#em">em</a>
+downward on the current
+<a href="definitions.html#outputline">output line</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>\v'&lt;distance&gt;'</kbd> is exactly equivalent to
+<a href="#down"><kbd><span class="nobr">\*[DOWN&nbsp;n&lt;unit&gt;]</span></kbd></a>.
+</p>
+</div>
+
+<p style="margin-top: -.5em;">
+To move upward an equivalent amount, do
+<br/>
+<span class="pre-in-pp">
+ \v'-.6m'
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1em;">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>\v'&lt;-distance&gt;'</kbd> is exactly equivalent to
+<a href="#up"><kbd><span class="nobr">\*[UP&nbsp;n&lt;unit&gt;]</span></kbd></a>.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+The vertical motion of <kbd>\v</kbd> only affects type on the
+current
+<a href="definitions.html#outputline">output line</a>.
+When groff breaks the output line, the effect of
+<kbd>\v</kbd> is cancelled; the baseline of the next output line
+is where it would be if you hadn&#8217;t used <kbd>\v</kbd>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+When using <kbd>\v</kbd> for occasional effects in a line,
+don&#8217;t forget to reverse it when you&#8217;ve done what you
+want to do. Otherwise, the remaining type will be set too high (if
+you used <kbd>\v</kbd> with the minus sign) or too low (if you used
+<kbd>\v</kbd> without the minus sign).
+</p>
+</div>
+
+<!-- -INLINE_STRINGWIDTH_GROFF- -->
+
+<h3 id="inline-stringwidth-groff" class="docs">String width function (<kbd style="text-transform: none;">\w</kbd>)</h3>
+
+<p>
+In the context of mom, the string width inline
+<kbd>\w'&lt;string&gt;'</kbd> primarily serves to let you establish the
+horizontal measure of something (e.g. indents) based on the length
+of a bit of text. For example, if you want a left indent the length
+of the word &#8220;Examples:&#8221; plus a space, you can set it with
+the <kbd>\w</kbd> inline escape:
+<br/>
+<span class="pre-in-pp">
+ .IL "\w'Examples: '"
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1em;">
+<p class="tip">
+<span class="note">Note:</span>
+Whenever you pass <kbd>\w'string'</kbd>
+to a macro that normally requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<i>do NOT add a unit of measure to the</i>
+<kbd>\w'string'</kbd> <i>argument.</i>
+</p>
+
+<p class="tip-bottom">
+Furthermore, if the <kbd>\w</kbd> is used in place of a
+<a href="definitions.html#numericargument">numeric argument</a>
+to a macro and <kbd>string</kbd> is composed of several words
+separated by spaces, you must surround the whole escape with double
+quotes, as in the example above.
+</p>
+</div>
+
+<!-- -INLINE_LINEDRAWING_GROFF- -->
+
+<h3 id="inline-linedrawing-groff" class="docs">Horizontal line drawing function (<kbd style="text-transform: none;">\l</kbd>)</h3>
+
+<p>
+The <kbd>\l'distance'</kbd> inline allows you to draw a horizontal
+rule of the specified distance. You must supply a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+Therefore, to set a 3-pica rule into a line of text, you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ A line of text with a superfluous \l'3P' 3-pica rule in it.
+</span>
+<kbd>\l'3P'</kbd>, above, not only draws the rule, but advances 3
+picas horizontally as well, just as you&#8217;d expect.
+</p>
+
+<p>
+For an easy way of drawing rules to the full measure of the current
+line or tab length, see
+<a href="#inline-rule-mom">Full measure rules</a>.
+</p>
+
+<p>
+The weight (thickness) of rules varies according to the point
+size in effect when you invoke <kbd>\l</kbd>, but you can&#8217;t fix
+the weight with any real precision. A point size of 12 produces
+a tastefully moderate rule weight of between one-half and one
+point (depending on your printer).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Besides <kbd>\l</kbd>, <b>groff</b> provides a number of more
+sophisticated &#8220;drawing&#8221; escapes. It is well beyond
+the scope of this documentation to demonstrate their usage; see
+<br/>
+<span class="pre-in-pp">
+ info groff \\D
+</span>
+for directions concerning their use. The drawing escapes can be a
+bit unwieldy, so mom provides &#8220;user-friendly&#8221; macros for
+the
+<a href="graphical.html#top">graphical objects</a>
+most commonly encountered in typesetting: horizontal and vertical
+rules, boxes, and circles (ellipses).
+</p>
+
+<p class="tip-bottom">
+Additionally, groff comes with two &#8220;preprocessors&#8221; that
+let you create ruled tables and vector diagrams (line drawings):
+<b>tbl</b> and <b>pic</b>. The documentation for <b>tbl</b> can be
+downloaded from
+<br/>
+ <a style="display: inline-block; margin-left: 2em; margin-top: .5em; margin-bottom: .5em" href="http://cm.bell-labs.com/cm/cs/doc/76/tbl.ps.gz">http://cm.bell-labs.com/cm/cs/doc/76/tbl.ps.gz</a>
+<br/>
+and <b>pic</b> from
+<br/>
+ <a style="display: inline-block; margin-left: 2em; margin-top: .5em; margin-bottom: .5em" href="http://www.kohala.com/start/troff/gpic.raymond.ps">http://www.kohala.com/start/troff/gpic.raymond.ps</a>
+<br/>
+Both are powerful tools, but they can be nasty to learn&mdash;at
+first, anyway. You may prefer to use a vector drawing program
+to create diagrams and tables; inserting the results into a
+document is easy enough with
+<a href="images.html#pdf-image">PDF_IMAGE</a>
+or
+<a href="images.html#pspic">PSPIC</a>.
+</p>
+</div>
+
+<!-- -INLINE_CHARACTERS_GROFF- -->
+
+<h3 id="inline-characters-groff" class="docs">Special characters and symbols</h3>
+<p>
+Here follows a short list of commonly-used special characters
+available via inline escapes. If you&#8217;re not sure of the
+meaning of some of these characters, consult the
+<a href="definitions.html#top">Definitions of Terms</a>.
+</p>
+
+<p>
+For a complete list of special characters and glyphs (i.e. just
+about anything you&#8217;d ever want to appear on the printed
+page, including mathematical symbols, accented characters, unusual
+ligatures and letters unique to various European languages), consult
+<kbd>man groff_char</kbd>.
+</p>
+
+<span class="pre">
+ CHARACTER ESCAPE SEQUENCE
+ --------- ---------------
+ Comment line \# or .\"
+ Fixed-width space \&lt;space&gt;
+ Unbreakable space \~
+ Digit-width (figure) space \0
+ Zero-width character \&amp;
+ Discretionary hyphen \%
+ Backslash \\ or \e
+ Plus&#47;minus (arithmetic) \[+-]
+ Subtract (arithmetic) \[mi]
+ Multiply (arithmetic) \[mu]
+ Divide (arithmetic) \[di]
+ Em-dash \[em]
+ En-dash \[en]
+ Left double-quote \[lq]
+ Right double-quote \[rq]
+ Open (left) single-quote \[oq]
+ Close (right) single-quote \[cq]
+ Bullet \[bu]
+ Ballot box \[sq]
+ One-quarter \[14]
+ One-half \[12]
+ Three-quarters \[34]
+ Degree sign \[de]
+ Dagger \[dg]
+ Foot mark \[fm]
+ Cent sign \[ct]
+ Registered trademark \[rg]
+ Copyright \[co]
+ Section symbol \[se]
+</span>
+<br/>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="color.html#top">Next: Coloured text</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/intro.html b/contrib/mom/momdoc/intro.html
new file mode 100644
index 0000000..3e25631
--- /dev/null
+++ b/contrib/mom/momdoc/intro.html
@@ -0,0 +1,487 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>What is mom?</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+ <tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="definitions.html#top">Next: Definitions</a></td>
+ </tr>
+ </table>
+
+<h1 id="intro" class="docs">What is mom?</h1>
+
+<div style="text-align: center;">
+<ul class="no-enumerator" style="margin-left: -2.5em;">
+ <li ><a href="#intro-intro">Who is mom meant for?</a></li>
+ <li ><a href="#intro-typesetting">Typesetting with mom</a></li>
+ <li ><a href="#intro-docprocessing">Document processing with mom</a></li>
+ <li ><a href="#intro-philosophy">Mom&#8217;s philosophy</a></li>
+ <li ><a href="#intro-documentation">A note on mom&#8217;s documentation</a></li>
+ <li ><a href="#canonical">Canonical reference materials</a></li>
+ <li ><a href="#macro-args">How to read macro arguments</a></li>
+</ul>
+</div>
+
+<div class="rule-short" style="margin-top: 18px;"><hr/></div>
+
+<h2 id="intro-intro" class="docs">Who is mom meant for?</h2>
+
+<p>
+Mom (&#8220;my own macros&#8221;, &#8220;my other macros&#8221;,
+&#8220;maximum overdrive macros&#8221;...) is a macro set for groff,
+designed to format documents in Portable Document Format (.pdf) and
+PostScript (.ps). She&#8217;s aimed at three kinds of users:
+</p>
+
+<ol style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>Typesetters who suspect groff might be the right
+ tool for the job but who are frustrated,
+ intimidated, or puzzled by groff&#8217;s terse,
+ not-always-typographically-intuitive
+ <a href="definitions.html#primitives">primitives</a>;
+ </li>
+ <li>Writers who need to format their work easily, with a
+ minimum of clutter;
+ </li>
+ <li>Newcomers to groff, typesetting, or document processing
+ who need a well-documented macro set to get them started.
+ </li>
+</ol>
+
+<p>
+Mom is actually two macro packages in one: a very complete set
+of typesetting macros, and an equally thorough set of document
+formatting macros. The typesetting macros afford fine-grained
+control over all visible aspects of page layout and design (margins,
+fonts, sizes, kerning, etc), while the document formatting macros
+focus on the logical structure of a document (titles, headings,
+paragraphs, lists, etc) and call on groff to render logical
+structure into pleasing type.
+</p>
+
+<h2 id="intro-typesetting" class="docs">Typesetting with mom</h2>
+
+<p>
+Mom&#8217;s typesetting macros control the basic parameters
+of type: margins, line lengths, type family, font, point size,
+linespacing, and so on. In addition, they allow you to move
+around on the page horizontally and vertically, and to set up
+tabs, indents, and columns. Finally, they let you adjust such
+typographic details as justification style, letter spacing, word
+spacing, hyphenation, and kerning.
+</p>
+
+<p>
+The typesetting macros also provide the means to create horizontal
+and vertical rules, rectangles (boxes, frames), and ellipses
+(circles).
+</p>
+
+<p>
+In terms of typographic control, the typesetting macros provide
+access to groff&#8217;s primitives in a way that&#8217;s consistent,
+sensible, and easy to use. With them, you can create individual
+pages designed from the ground up. Provided you have not signalled
+to mom that you want document processing (via the
+<a href="docprocessing.html#start">START</a>
+macro; see below), every typesetting macro is a literal command
+that remains in effect until you modify it or turn it off. This
+means that if you want to create flyers, surveys, tabulated forms,
+curricula vitae and so on, you may do so in the good old-fashioned
+way: one step at a time with complete control over every element on
+the page.
+</p>
+
+<p>
+Years of experience have convinced me that no program can ever
+replace the human eye and human input when it comes to high quality
+typesetting. Words and punctuation on the printed page are too
+variable, too fluid, to be rendered flawlessly by any algorithm,
+no matter how clever.
+</p>
+
+<p>
+Mom, therefore, does not try to guess solutions for issues like
+hanging punctuation, or left-margin adjustments for troublesome
+letters like T, V and W. Rather, she provides tools that allow
+knowledgeable typesetters to handle these typographic challenges in
+ways that are easier and more intuitive than manipulating groff at
+the primitive level.
+</p>
+
+<h2 id="intro-docprocessing" class="docs">Document processing with mom</h2>
+
+<p>
+Mom&#8217;s document processing macros let you format documents
+without having to worry about the typographic details. In this
+respect, mom is similar to other groff macro packages, as well as
+to html and LaTeX. Where mom differs is in the degree of control
+you have over the look and placement of the various elements of a
+document. For example, if you&#8217;d like your headings underlined,
+or in caps, or centred rather than flush left, you can make the
+changes easily and have them apply to the whole document. Temporary
+and one-off changes are easy, too.
+</p>
+
+<p>
+Mom has some features other macro sets don&#8217;t provide. For
+example, you can switch between draft-style and final-copy output.
+If you regularly make submissions to publishers and editors who
+insist on "typewritten, double-spaced," there&#8217;s a special
+macro&mdash;
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>&mdash;
+that changes typeset documents into ones that would make an
+old-school typing teacher proud. Footnotes, endnotes, tables of
+contents, multiple columns, nested lists, recto/verso printing and
+user designable headers and footers are also part of the fun.
+</p>
+
+<h2 id="intro-philosophy" class="docs">Mom&#8217;s philosophy</h2>
+
+<p>
+Formatting documents should be easy, from soup to nuts. Writers
+need to focus on what they&#8217;re writing, not on how it looks.
+From the moment you fire up an editor to the moment you add
+"FINIS" to your opus, nothing should interfere with the flow of
+your words. The commands needed to format your work should be
+easy to remember, comprehensible, and stand out well from the
+text. There shouldn&#8217;t be too much clutter. Your documents
+should be as readable inside a text editor as they are on the
+printed page.
+</p>
+
+<p>
+Unfortunately, in computerland, &#8220;easy,&#8221;
+&#8220;comprehensible,&#8221; and &#8220;readable&#8221; often
+mean &#8220;you&#8217;re stuck with what you get.&#8221; No
+document formatting system can give you exactly what you want all
+the time, every time. Documents always need to be tweaked, either
+to satisfy a typographic whim or to clarify some aspect of their
+content.
+</p>
+
+<p>
+Groff has traditionally solved the problem of formatting vs.
+tweaking by requiring users of the common macro packages (mm, ms,
+me and their offspring) to resort to groff
+<a href="definitions.html#primitives">primitives</a>
+and
+<a href="definitions.html#inlines">inline escapes</a>
+for their special typesetting needs. Not to put too fine a point
+on it, groff primitives tend toward the abstruse, and most inline
+escapes are about as readable as an encrypted password. This does
+not make for happy-camper writers, who either find themselves stuck
+with a formatting style they don&#8217;t like, or are forced to
+learn groff from the ground up&mdash;a daunting task, to say the
+least.
+</p>
+
+<p>
+Mom aims to make creating documents a simple matter, but with no
+corresponding loss of user control. The document processing macros
+provide an initial set of reasonable defaults, but anything that
+is not to your liking can be changed. In combination with the
+typesetting macros, you have all the tools you need to massage
+passages and tweak pages until they look utterly professional.
+</p>
+
+<p>
+One rarely hears the term &#8220;user interface&#8221; in
+conjunction with document processing. Since formatting takes
+place inside a text editor, little thought is given to the
+look and feel of the formatting commands. Mom attempts to
+rectify this by providing users with a consistent, readable
+&#8220;coding&#8221; style. Most of the macros (especially in
+the document processing set) have humanly-readable names. Not
+only does this speed up learning the macros, it makes the sense
+of what&#8217;s going on in a document easier to decipher,
+typographically and structurally.
+</p>
+
+<p>
+Mom does not try to be all things to all people. In contrast to
+the normal groff philosophy, she does not try to produce output
+that looks good no matter where it&#8217;s displayed. She&#8217;s
+designed for primarily for PDF or PostScript output, although
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>
+she produces acceptable terminal copy. No attempt is made to be
+compatible with older versions of troff.
+</p>
+
+<p>
+One special feature in mom&#8217;s design is the attention she pays
+to aligning the bottom margins of every page. Nothing screams
+shoddy in typeset documents louder than bottom margins that
+wander, or, in typesetter jargon, &#8220;hang.&#8221; There are,
+of course, situations where whitespace at the bottom of a page
+may be unavoidable (for example, you wouldn&#8217;t want a head
+to appear at the bottom of the page without some text underneath
+it), but in all cases where hanging bottom margins can be avoided,
+mom does avoid them, by clever adjustments to leading (&#8220;line
+spacing&#8221;) and the spacing between different elements on the
+page.
+</p>
+
+<h2 id="intro-documentation" class="docs">A note on mom&#8217;s documentation</h2>
+
+<p>
+Writing documentation is tough, no doubt about it. One is never
+quite sure of the user&#8217;s level of expertise. Is s/he new to
+the application, new to its underlying protocols and programs, new
+to the operating system? At some point, one has to decide for whom
+the documentation is intended. Making the wrong choice can mean the
+difference between a program that gets used and a program that gets
+tossed.
+</p>
+
+<p>
+Mom&#8217;s documentation assumes users know their way around
+their own operating system (basic file management, how to use
+the command line, how to use a text editor, etc). I run GNU/Linux,
+and while the documentation may exhibit a GNU/Linux bias, mom
+and groff can, in fact, be run on other platforms.
+</p>
+
+<p>
+The documentation further assumes users at least know what groff
+is, even if they don&#8217;t know much about it. Lastly,
+it assumes that everyone&mdash;groff newbies and experts
+alike&mdash;learns faster from a few well-placed examples than
+from manpage-style reference docs. What mom&#8217;s documentation
+doesn&#8217;t assume is that you know everything&mdash;not about
+groff, not about typesetting, not about document processing. Even
+experts have odd lacunae in their knowledge base. Therefore,
+whenever I suspect that a term or procedure will cause head
+scratching, I offer an explanation. And when explanations
+aren&#8217;t enough, I offer examples.
+</p>
+
+<h3 id="canonical" class="docs">Canonical reference materials</h3>
+
+<p>
+The canonical reference materials for groff are
+<strong>cstr54</strong> (a downloadable PostScript copy of which
+is available
+<a href="http://www.kohala.com/start/troff/cstr54.ps">here</a>)
+and the <strong>troff</strong> and <strong>groff_diff</strong>
+manpages. The most complete and up-to-date source of information is
+the groff info pages, available by typing <kbd>info groff</kbd> at
+the command line (assuming you have the TeXinfo standalone browser
+installed on your system, which is standard for most GNU/Linux
+distributions). And for inputting special characters, see <kbd>man
+groff_char</kbd>.
+</p>
+
+<p style="margin-top: 24px;">
+I&#8217;ve tried to avoid reiterating the information contained
+in these documents; however, in a few places, this has proved
+impossible. But be forewarned: I have no qualms about
+sidestepping excruciating completeness concerning groff usage;
+I&#8217;m more interested in getting mom users up and running.
+<i>Mea culpa.</i>
+</p>
+
+<p>
+Groff has ancillary programmes (pre-processors) for generating
+tables (<strong>tbl</strong>), diagrams (<strong>pic</strong>), and
+equations (<strong>eqn</strong>), which may be used in conjunction
+with mom. The manuals describing their usage are found at:
+<br/>
+<span style="display:block; margin-top: .5em">
+<kbd>&nbsp;&nbsp;tbl</kbd>&nbsp;<a href="http://www.kohala.com/start/troff/v7man/tbl/tbl.ps">http://www.kohala.com/start/troff/v7man/tbl/tbl.ps</a>
+<br/>
+<kbd>&nbsp;&nbsp;pic</kbd>&nbsp;<a href="http://www.kohala.com/start/troff/gpic.raymond.ps">http://www.kohala.com/start/troff/gpic.raymond.ps</a>
+<br/>
+<kbd>&nbsp;&nbsp;eqn</kbd>&nbsp;<a href="http://www.kohala.com/start/troff/v7man/eqn/eqn2e.ps">http://www.kohala.com/start/troff/v7man/eqn/eqn2e.ps</a>
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip-top" style="padding-bottom: 9px;">
+<b>Note:</b> Mom&#8217;s macro file (om.tmac) is heavily
+commented. Each macro is preceded by a description of its
+arguments, function and usage, which may give you information in
+addition to what&#8217;s contained in this documentation.
+</p>
+</div>
+
+<div class="rule-short" style="padding-top: 6px; padding-bottom: 3px;"><hr/></div>
+
+<h2 id="macro-args" class="docs">How to read macro arguments</h2>
+
+<p>
+The concise descriptions of macros in this documentation typically
+look like this:
+</p>
+
+<div class="box-macro-args">
+Macro: <b>MACRO_NAME</b> <kbd class="macro-args">arguments</kbd>
+</div>
+
+<p>
+<kbd>arguments</kbd> lists the macro&#8217;s
+arguments using conventions that should be familiar to anyone who
+has ever read a manpage. Briefly:
+</p>
+
+<ol>
+ <li>Macro arguments are separated from each other by spaces.</li>
+ <li>If an argument is surrounded by chevrons
+ (<kbd>&lt;&nbsp;&gt;</kbd>), it&#8217;s a description
+ of the argument, not the argument itself.
+ </li>
+ <li>If an argument begins with or is surrounded by double-quotes, the
+ double quotes must be included in the argument.
+ </li>
+ <li>If the user has a choice between several arguments, each of the
+ choices is separated by the pipe character
+ (<kbd>|</kbd>), which means &#8220;or.&#8221;
+ </li>
+ <li>Arguments that are optional are surrounded by square brackets.</li>
+ <li><kbd>&lt;off&gt;</kbd> or <kbd>&lt;anything&gt;</kbd> in an argument
+ list means that any argument other than those in the argument
+ list turns the macro off.
+ </li>
+</ol>
+
+<h3 id="toggle-macro" class="docs">Toggle macros</h3>
+
+<p>
+Some macros don&#8217;t require an argument. They simply start
+something. When you need to turn them off, the same macro with
+any argument will do the trick. That&#8217;s right: <em>any</em>
+argument (in caps, lowercase, or a mixture thereof). This permits
+choosing whatever works for you: <kbd>OFF</kbd>, <kbd>end</kbd>,
+<kbd>Quit</kbd>, <kbd>Q</kbd>, <kbd>X</kbd>, and so on.
+</p>
+
+<p>
+Since these macros toggle things on and off, the argument list
+simply reads <kbd>toggle</kbd>.
+</p>
+
+<div id="examples" class="examples-container">
+<h2 class="docs" style="margin-top: .5em;">Examples</h2>
+
+<div class="examples">Example 1: An argument requiring double-quotes</div>
+
+<div class="box-macro-args" style="max-width: 684px;">
+Macro: <b>TITLE</b> <kbd class="macro-args">&quot;&lt;title of document&gt;&quot;</kbd>
+</div>
+
+<p>
+The required argument to TITLE is the title of your document.
+Since it&#8217;s surrounded by double-quotes, you must include
+them in the argument, like this:
+<br/>
+<span class="pre-in-pp">
+ .TITLE "My Pulitzer Novel"
+</span>
+</p>
+
+<div class="examples" style="margin-top: -1em;">Example 2: A macro with required and optional arguments</div>
+
+<div class="box-macro-args" style="width: 684px;">
+Macro: <b>TAB_SET</b> <kbd class="macro-args">&lt;tab number&gt; &lt;indent&gt; &lt;length&gt; [ L | R | C | J [ QUAD ] ]&nbsp;</kbd>
+</div>
+
+<p>
+The first required argument is a number that identifies the tab
+(say, "3"). The second required argument is an indent from the
+left margin (say, 6 picas). The third required argument is the
+length of the tab (say, 3 picas). Therefore, at a minimum, when
+using this macro, you would enter:
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 3 6P 3P
+</span>
+The remaining two arguments are optional. The first is a
+single letter, either <kbd>L, R, C</kbd> or
+<kbd>J</kbd>. The second, which is itself
+optional after <kbd>L, R, C</kbd> or
+<kbd>J</kbd>, is the word <kbd>QUAD</kbd>.
+Therefore, depending on what additional information you wish to
+pass to the macro, you could enter:
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 3 6P 3P L
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 3 6P 3P L QUAD
+</span>
+</p>
+
+<div id="toggle-example" class="examples" style="margin-top: -1em;">Example 3: A sample toggle macro:</div>
+
+<div class="box-macro-args" style="max-width: 684px;">
+Macro: <b>QUOTE</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+<kbd>QUOTE</kbd> begins a section of quoted text
+in a document and doesn&#8217;t require an argument. When the
+quote&#8217;s finished, you have to tell mom it&#8217;s done.
+<span class="pre">
+ .QUOTE
+ So runs my dream, but what am I?
+ An infant crying in the night
+ An infant crying for the light
+ And with no language but a cry.
+ .QUOTE OFF
+</span>
+</p>
+
+<p>
+ Alternatively, you could have turned the quote off with
+ <kbd>END</kbd>, or <kbd>X</kbd>, or something else.
+ </p>
+</div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="definitions.html#top">Next: Definitions</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/letters.html b/contrib/mom/momdoc/letters.html
new file mode 100644
index 0000000..3021eb2
--- /dev/null
+++ b/contrib/mom/momdoc/letters.html
@@ -0,0 +1,577 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Writing letters</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="macrolist.html#top">Next: Quick reference guide</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Writing letters</h1>
+
+<div style="width: 33%; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#letters-intro">Introduction</a></li>
+ <li><a href="#letters-tutorial">Tutorial</a></li>
+ <li><a href="#letters-defaults">Mom&#8217;s default letter style</a></li>
+ <li><a href="#index-letters-macros">The letter macros</a></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="letters-intro" class="docs">Introduction</h2>
+
+<p>
+Mom&#8217;s simple but effective letter-writing macros are a subset
+of the
+<a href="docprocessing.html#docprocessing">document processing macros</a>,
+designed to ease the creation of correspondence.
+</p>
+
+<p>
+Because the letter macros are a subset of the document processing
+macros, you can use
+<a href="definitions.html#controlmacro">control macros</a>
+to design correspondence to your own specifications. However,
+mom makes no pretence of providing complete design flexibility in
+the matter of letters, which are, after all, simple communicative
+documents whose only real style requirements are that they be neat
+and professional-looking.
+</p>
+
+<div class="examples-container" style="margin-top: 1.5em; margin-bottom: 1.5em;">
+<h3 id="letters-tutorial" class="docs">Tutorial &ndash; writing letters</h3>
+
+<p>
+Mom letters begin, like all mom-processed documents, with
+<a href="docprocessing.html#reference-macros">reference macros</a>
+(in this case,
+<a href="docprocessing.html#author">AUTHOR</a>),
+a
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+(LETTER, obviously), the essential
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+macro, and
+<a href="docprocessing.html#start">START</a>,
+like this:
+<br/>
+<span class="pre-in-pp">
+ .AUTHOR "Yannick P. Guique"
+ .DOCTYPE LETTER
+ .PRINTSTYLE TYPESET
+ .START
+</span>
+PRINTSTYLE, above, could also be <kbd>TYPEWRITE</kbd>. Mom has no
+objection to creating letters that look like they were typed on an
+Underwood by a shapely secretary with 1940s gams.
+</p>
+
+<p>
+Please note that if you choose <kbd>PRINTSTYLE TYPEWRITE</kbd>,
+there&#8217;s no need to give the <kbd>SINGLESPACE</kbd> option, as
+this is the unalterable default for letters.
+</p>
+
+<p>
+After the START macro, you enter headers pertinent to your letter:
+the date, the addressee (in business correspondence, typically both
+name and address), the addresser (that&#8217;s you; in business
+correspondence, typically both name and address), and a greeting
+(in full, e.g. &#8220;Dear Mr. Smith,&#8221; or &#8220;Dear
+Mr. Smith:&#8221;).
+</p>
+
+<p>
+The macros for entering the headers are simple (they&#8217;re not even
+<a href="definitions.html#toggle">toggles</a>):
+<br/>
+<span class="pre-in-pp">
+ .DATE
+ .TO
+ .FROM
+ .GREETING
+</span>
+You may enter them in any order you like, except for GREETING, which
+must come last. Mom ignores any headers you omit and spaces the
+letter&#8217;s opening according to what you do include. See
+<a href="#letters-defaults">Default for letters</a>
+to find out how mom formats the headers.
+</p>
+
+<p>
+Once you&#8217;ve filled in what you need to get a letter started,
+simply type the letter, introducing each and every paragraph,
+including the first, with the
+<a href="docelement.html#pp">PP</a>
+macro.
+</p>
+
+<p>
+At the end of the letter, should you wish a closing (&#8220;Yours
+truly,&#8221; &#8220;Sincerely,&#8221; &#8220;Hugs and
+kisses&#8221;), invoke the macro <kbd>.CLOSING</kbd> on a line
+by itself, and follow it with the text of the closing. <b>N.B.</b>
+Don&#8217;t put your name here; mom supplies it automatically from
+<a href="docprocessing.html#author">AUTHOR</a>),
+with enough space to leave room for your signature. If you omit the
+closing, mom simply adds your name (from AUTHOR), again with enough
+space for your signature.
+</p>
+
+<p>
+Assuming our tutorial letter is for business correspondence,
+here&#8217;s what the complete letter looks like.
+<br/>
+<span class="pre-in-pp">
+ .AUTHOR "Yannick P. Guique"
+ .DOCTYPE LETTER
+ .PRINTSTYLE TYPESET
+ .START
+ .DATE
+ August 25, 2010
+ .TO
+ GUILLAUME BARRIÈRES
+ Minidoux Corporation
+ 5000 Pannes Drive
+ Redmond, Virginia
+ .FROM
+ Y.P. GUIQUE
+ 022 Umask Road
+ St-Sauveur-en-dehors-de-la-mappe, Québec
+ .GREETING
+ Dear Mr. Barrières,
+ .PP
+ It has come to my attention that you have once again been
+ lobbying the US government to prohibit the use of open source
+ software by endeavouring to outlaw so-called "warranty
+ free" applications.
+ .PP
+ I feel it is my duty to inform you that the success of your
+ operating system relies heavily on open source programs and
+ protocols, notably TCP/IP.
+ .PP
+ Therefore, in the interests of your corporation&#8217;s fiscal health,
+ I strongly advise that you withdraw support for any US
+ legislation that would cripple or render illegal open source
+ development.
+ .CLOSING
+ Sincerely,
+</span>
+This produces a letter with headers that follow the North American
+standard for business correspondence. If you&#8217;d prefer another style
+of correspondence, for example, British, you&#8217;d set up the same
+letter like this:
+<br/>
+<span class="pre-in-pp">
+ .AUTHOR "Yannick P. Guique"
+ .DOCTYPE LETTER
+ .PRINTSTYLE TYPESET
+ .START
+ .FROM
+ .RIGHT
+ Y.P. GUIQUE
+ 022 Umask Road
+ St-Sauveur-en-dehors-de-la-mappe, Québec
+ .TO
+ GUILLAUME BARRIÈRES
+ Minidoux Corporation
+ 5000 Pannes Drive
+ Redmond, Virginia
+ .DATE
+ .RIGHT
+ August 25, 2004
+ .GREETING
+ Dear Mr. Barrières,
+</span>
+Notice the use of <kbd>.RIGHT</kbd> after <kbd>.FROM</kbd> and
+<kbd>.DATE</kbd> in this example, used to change the default quad
+for these macros.
+</p>
+</div>
+
+<h2 id="letters-defaults" class="docs">Default letter style</h2>
+
+<p>
+In letters, if the order of header macros is
+</p>
+<ol style="margin-top: -.5em;">
+ <li><kbd>.DATE</kbd></li>
+ <li><kbd>.TO</kbd>&nbsp;&nbsp;(the addressee)</li>
+ <li><kbd>.FROM</kbd>&nbsp;&nbsp;(the addresser)</li>
+ <li><kbd>.GREETING</kbd>&nbsp;&nbsp;(&#8220;Dear Whoever,&#8221; &#8220;To Whom It May Concern,&#8221; etc.)</li>
+</ol>
+<p style="margin-top: -.5em;">
+mom sets
+</p>
+<ul style="margin-top: -.5em;">
+ <li>the date flush right, page right, at the top of page one,
+ with a gap of two linespaces underneath
+ </li>
+ <li>the addressee (<kbd>.TO</kbd>) in a block flush left, page
+ left, with a gap of one linespace underneath
+ </li>
+ <li>the addresser (<kbd>.FROM</kbd>) in a block flush left, page
+ left, with a gap of one linespace underneath
+ </li>
+ <li>the greeting flush left, with a gap of one linespace
+ underneath
+ </li>
+</ul>
+<p style="margin-top: -.5em;">
+which is the standard for North American business correspondence.
+</p>
+
+<p>
+If you switch the order of <kbd>.DATE</kbd>, <kbd>.TO</kbd> and/or
+<kbd>.FROM</kbd>, mom sets all the headers
+flush left, with a gap of one linespace underneath each. (The
+default left quad of any header can be changed by invoking the
+<kbd>.RIGHT</kbd> macro, on a line by itself, immediately before
+inputting the text of the header.)
+</p>
+
+<p>
+Following the headers, mom sets
+</p>
+<ul style="margin-top: -.5em;">
+ <li>the body of the letter justified</li>
+ <li>in multi-page letters:
+ <ul style="margin-left: -.5em;">
+ <li>a footer indicating there&#8217;s a next page (of the form <kbd>.../#</kbd>)</li>
+ <li>the page number at the top of every page after page one</li>
+ </ul></li>
+ <li>the closing/signature lines flush left, indented halfway across the page</li>
+</ul>
+
+<p>
+Other important style defaults are listed below, and may be changed
+via the
+<a href="typesetting.html#top">typesetting macros</a>
+or the document processing
+<a href="definitions.html#controlmacro">control macros</a>
+prior to
+<a href="docprocessing.html#start">START</a>.
+Assume that any style parameter not listed below is the same as for
+any document processed with
+<a href="docprocessing.html#typeset-defaults">PRINTSTYLE <kbd>TYPESET</kbd></a>
+or
+<a href="docprocessing.html#typewrite-defaults">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>.
+</p>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<span class="pre defaults">
+ PARAMETER PRINTSTYLE TYPESET PRINTSTYLE TYPEWRITE
+
+ Paper size 8.5 x 11 inches 8.5 x 11 inches
+ Left/right margins 1.125 inches 1.125 inches
+ Header margin 3.5 picas 3.5 picas
+ (for page numbers)
+ Header gap 3 picas 3 picas
+ (for page numbers)
+ Family Times Roman Courier
+ Font roman roman
+ Point size 12 12
+ Line space 13.5 12 (i.e. singlespaced)
+ Paragraph indent 3 ems 3 picas
+ Spaced paragraphs yes no
+ Footers* yes yes
+ Footer margin 3 picas 3 picas
+ Footer gap 3 picas 3 picas
+ Page numbers top, centred top, centred
+
+ *Footers contain a &quot;next page&quot; number of the form .../#
+</span>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+
+<div class="macro-list-container">
+<h3 id="index-letters-macros" class="macro-list">The letter macros</h3>
+<p style="margin-left: 9px; margin-top: -1.5em;">
+All letter macros must come after
+<a href="docprocessing.html#start">START</a>,
+except NO_SUITE, which must come after
+<a href="docprocessin.html#start">PRINTSTYLE</a>
+and before
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<ul class="macro-list" style="margin-top: -.75em;">
+ <li><a href="#date">DATE</a></li>
+ <li><a href="#to">TO</a></li>
+ <li><a href="#from">FROM</a></li>
+ <li><a href="#greeting">GREETING</a></li>
+ <li><a href="#closing">CLOSING</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#closing-indent">CLOSING_INDENT</a></li>
+ <li><a href="#signature-indent">SIGNATURE_INDENT</a></li>
+ </ul></li>
+ <li><a href="#no-suite">NO_SUITE</a> &ndash; turn the &#8220;next page&#8221; footer off</li>
+</ul>
+</div>
+
+<!-- -DATE- -->
+
+<div id="date" class="box-macro-args">
+Macro: <b>DATE</b>
+</div>
+
+<p>
+Invoke <kbd>.DATE</kbd> on a line by itself, with the date
+underneath, like this:
+<br/>
+<span class="pre-in-pp">
+ .DATE
+ October 31, 2012
+</span>
+If you wish to change the default quad direction for the date,
+enter <kbd>.LEFT</kbd> or <kbd>.RIGHT</kbd>, on a line by itself,
+immediately after <kbd>.DATE</kbd>.
+</p>
+
+<p>
+If you wish to insert additional space between the date and any
+letter header that comes after it, do so after inputting the date,
+not at the top of the next header macro, like this:
+<br/>
+<span class="pre-in-pp">
+ .DATE
+ October 31, 2012
+ .SPACE \"Or, more simply, .SP
+</span>
+If you wish to remove the default space,
+<br/>
+<span class="pre-in-pp">
+ .SPACE -1v \"Or, more simply, .SP -1v
+</span>
+will do the trick.
+</p>
+
+<!-- -TO- -->
+
+<div id="to" class="box-macro-args">
+Macro: <b>TO</b>
+</div>
+
+<p>
+Invoke <kbd>.TO</kbd> on a line by itself, with the name and address
+of the addressee underneath, like this:
+<br/>
+<span class="pre-in-pp">
+ .TO
+ JOHN SMITH
+ 10 Roberts Crescent
+ Bramladesh, Ont.
+</span>
+If you wish to change the default quad direction for the address,
+enter <kbd>.LEFT</kbd> or <kbd>.RIGHT</kbd>, on a line by itself,
+immediately after <kbd>.TO</kbd>.
+</p>
+
+<p>
+If you wish to insert additional space between the address and
+any letter header that comes after it, do so after inputting the
+address, not at the top of the next header macro, like this:
+<br/>
+<span class="pre-in-pp">
+ .TO
+ JOHN SMITH
+ 10 Roberts Crescent
+ Bramladesh, Ont.
+ .SPACE \"Or, more simply, .SP
+</span>
+If you wish to remove the default space,
+<br/>
+<span class="pre-in-pp">
+ .SPACE -1v \"Or, more simply, .SP -1v
+</span>
+will do the trick.
+</p>
+
+<!-- -FROM- -->
+
+<div id="from" class="box-macro-args">
+Macro: <b>FROM</b>
+</div>
+
+<p>
+Invoke <kbd>.FROM</kbd> on a line by itself, with the name and
+address of the addresser underneath, like this:
+<br/>
+<span class="pre-in-pp">
+ .FROM
+ JOE BLOW
+ 15 Brunette Road
+ Ste-Vieille-Andouille, Québec
+</span>
+If you wish to change the default quad direction for the address,
+enter <kbd>.LEFT</kbd> or <kbd>.RIGHT</kbd>, on a line by itself,
+immediately after <kbd>.FROM</kbd>.
+</p>
+
+<p>
+If you wish to insert additional space between the address and
+any letter header that comes after it, do so after inputting the
+address, not at the top of the next header macro, like this:
+<br/>
+<span class="pre-in-pp">
+ .FROM
+ JOE BLOW
+ 15 Brunette Road
+ Ste-Vieille-Andouille, Québec
+ .SPACE \"Or, more simply, .SP
+</span>
+If you wish to remove the default space,
+<br/>
+<span class="pre-in-pp">
+ .SPACE -1v \"Or, more simply, .SP -1v
+</span>
+will do the trick.
+</p>
+
+<!-- -GREETING- -->
+
+<div id="greeting" class="box-macro-args">
+Macro: <b>GREETING</b>
+</div>
+
+<p>
+Invoke <kbd>.GREETING</kbd> on a line by itself, with the full
+salutation you want for the letter underneath, like this:
+<br/>
+<span class="pre-in-pp">
+ .GREETING
+ Dear Mr. Smith,
+</span>
+</p>
+
+<!-- -CLOSING- -->
+
+<div id="closing" class="box-macro-args">
+Macro: <b>CLOSING</b>
+</div>
+
+<p>
+Invoke <kbd>.CLOSING</kbd> on a line by itself after the body of
+the letter, with the closing you&#8217;d like (e.g. &#8220;Yours
+truly,&#8221;) underneath, like this:
+<br/>
+<span class="pre-in-pp">
+ .CLOSING
+ Yours truly,
+</span>
+</p>
+
+<div class="box-tip" style="background-color: #E3D2B1;">
+<p class="tip">
+<span class="tip" style="display: inline-block; padding-bottom: .5em; color: #000056;">CLOSING control macros and defaults</span>
+<br/>
+Two macros control the behaviour of <kbd>.CLOSING</kbd>:
+</p>
+<ul style="margin-top: -1.25em;">
+ <li>CLOSING_INDENT</li>
+ <li>SIGNATURE_SPACE</li>
+</ul>
+
+<p id="closing-indent" style="margin-top: -.25em;">
+The first, CLOSING_INDENT, indicates the distance from the left
+margin you&#8217;d like to have your closing indented. It takes a
+single
+<a href="definitions.html#numericargument">numeric argument</a>
+and must have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it, unless you want an indent of 0 (zero). Mom&#8217;s
+default is one half the width of the letter&#8217;s line length
+(i.e. halfway across the page). If you wanted, instead, an indent of
+6
+<a href="definitions.html#picaspoints">picas</a>,
+you&#8217;d do it like this:
+<br/>
+<span class="pre-in-pp">
+ .CLOSING_INDENT 6P
+</span>
+Or, if you wanted to have no indent at all:
+<br/>
+<span class="pre-in-pp">
+ .CLOSING_INDENT 0
+</span>
+</p>
+
+<p id="signature-space" style="margin-top: -1.25em;">
+The second, SIGNATURE_SPACE, controls how much room to leave for the
+signature. It takes a single
+<a href="definitions.html#numericargument">numeric argument</a>
+and must have a
+<a href="definitions.html#unitofmeasure">unit of measure</a>
+appended to it. Mom&#8217;s default is 3 line spaces, but if you
+wanted to change that to, say, 2 line spaces, you&#8217;d do:
+<br/>
+<span class="pre-in-pp">
+ .SIGNATURE_SPACE 2v
+</span>
+</p>
+</div>
+
+<!-- -NO_SUITE- -->
+
+<div id="no-suite" class="box-macro-args" style="margin-top: 2em;">
+Macro: <b>NO_SUITE</b>
+</div>
+
+<p>
+If you don&#8217;t want mom to print a &#8220;next page&#8221;
+number at the bottom of multi-page letters, invoke
+<kbd>.NO_SUITE</kbd>, on a line by itself, prior to
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="macrolist.html">Next: Quick reference guide</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/macrolist.html b/contrib/mom/momdoc/macrolist.html
new file mode 100644
index 0000000..81ebd7c
--- /dev/null
+++ b/contrib/mom/momdoc/macrolist.html
@@ -0,0 +1,1529 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Quick reference guide</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page" style="width: 800px">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="appendices.html#top">Next: Appendices</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Quick reference guide</h1>
+
+<p>
+Once you know your way around mom, you may find this guide
+preferable to using the Table of Contents. It lists mom&#8217;s
+major user-space macros. The links point to references found
+elsewhere in the documentation.
+</p>
+
+<div class="macro-list-container" style="padding-left: 9px; padding-right: 9px; padding-bottom: 9px;">
+<h2 class="docs" style="text-align: center; padding-top: 15px;">Index to the quick reference guide</h2>
+<div style="width: 50%; float: left; margin-right: 9px;">
+<h3 class="docs" style="margin-top: 1.25em;">TYPESETTING MACROS</h3>
+<ul style="margin-top: .5em; margin-left: 0; padding-left: 0; list-style-type: none;">
+ <li><a href="#qr-1">Paper size, margins, line length</a></li>
+ <li><a href="#qr-2">Family, font, point size</a></li>
+ <li><a href="#qr-3">Font modifications</a></li>
+ <li><a href="#qr-4">Linespacing (leading)</a></li>
+ <li><a href="#qr-5">Justification, quad, breaking lines</a></li>
+ <li><a href="#qr-6">Hyphenation</a></li>
+ <li><a href="#qr-7">Word and sentence spacing</a></li>
+ <li><a href="#qr-8">Kerning, ligatures, smartquotes</a></li>
+ <li><a href="#qr-9">Horizontal/vertical motions, columns</a></li>
+ <li><a href="#qr-10">Indents</a></li>
+ <li><a href="#qr-11">Tabs</a></li>
+ <li><a href="#qr-12">Underscoring, underlining</a></li>
+ <li><a href="#qr-13">Superscipts</a></li>
+ <li><a href="#qr-14">Nested lists</a></li>
+ <li><a href="#qr-15">Colour</a></li>
+ <li><a href="#qr-16">Dropcaps</a></li>
+ <li><a href="#qr-56">Smallcaps</a></li>
+ <li><a href="#qr-17">Utilities</a></li>
+ <li><a href="#qr-18">Graphical objects and images</a></li>
+</ul>
+<h3 class="docs" style="margin-top: -.5em;">DOCUMENT PROCESSING MACROS</h3>
+<ul style="margin-top: .5em; margin-left: 0; padding-left: 0; list-style-type: none;">
+ <li><a href="#qr-19">Reference macros (metadata)</a></li>
+ <li><a href="#qr-20">Document type and initial defaults</a></li>
+ <li><a href="#qr-59">&nbsp;&nbsp;&ndash;&nbsp;Slides</a></li>
+ <li><a href="#qr-23">TYPEWRITE control macros</a></li>
+ <li><a href="#qr-57">Vertical whitespace management</a></li>
+ <li><a href="#qr-47">Document and section cover (title) pages</a></li>
+ <li><a href="#qr-22">Set documents in columns</a></li>
+ <li><a href="#qr-21">Line numbering</a></li>
+ <li><a href="#qr-24">Initiate document processing</a></li>
+</ul>
+</div>
+<ul style="margin-top: 1.75em; margin-left: 0; padding-left: 0; list-style-type: none;">
+ <li><a href="#qr-42">Global print style changes after START</a></li>
+ <li><a href="#qr-43">Managing the docheader</a></li>
+ <li><a href="#qr-25">Epigraphs</a></li>
+ <li><a href="#qr-26">Headings</a></li>
+ <li><a href="#qr-30">Paragraphs</a></li>
+ <li><a href="#qr-31">Quotes (line for line quotes)</a> </li>
+ <li><a href="#qr-32">Blockquotes (cited passages of text)</a></li>
+ <li><a href="#qr-33">Code snippets (inserting bits of programming code)</a></li>
+ <li><a href="#qr-34">Author linebreaks (section breaks)</a></li>
+ <li><a href="#qr-35">Document termination string</a></li>
+ <li><a href="#qr-36">Footnotes</a></li>
+ <li><a href="#qr-37">Endnotes</a></li>
+ <li><a href="#qr-38">Margin notes</a></li>
+ <li><a href="#qr-49">Floats</a></li>
+ <li><a href="#qr-53">Images and graphics</a></li>
+ <li><a href="#qr-60">Shaded backgrounds, frames, page colour</a></li>
+ <li><a href="#qr-51">eqn support</a></li>
+ <li><a href="#qr-52">pic support</a></li>
+ <li><a href="#qr-58">grap support</a></li>
+ <li><a href="#qr-50">tbl support</a></li>
+ <li><a href="#qr-54">Captions and labels</a></li>
+ <li><a href="#qr-39">Bibliographic references</a></li>
+ <li><a href="#qr-40">Tables of contents</a></li>
+ <li><a href="#qr-55">Lists of Figures, Tables, and Equations</a></li>
+ <li><a href="#qr-41">Letter (correspondence) macros</a></li>
+ <li><a href="#qr-44">Managing page headers and footers</a></li>
+ <li><a href="#qr-45">Recto/verso page headers and footers</a></li>
+ <li><a href="#qr-46">Pagination</a></li>
+ <li><a href="#qr-48">Utilities</a></li>
+</ul>
+</div>
+
+<h2 class="docs">Quick reference guide</h2>
+
+<div style="display: inline-block; margin-top: 1em; margin-bottom: .5em; border-bottom: 2px solid #302419;"><kbd>TYPESETTING MACROS</kbd></div>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-1" class="quick-ref" colspan="2">
+<a href="typesetting.html#page-setup-intro">+++ Paper size, margins, line length</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#paper">PAPER</a></td><td>-- set common paper sizes (letter, A4, etc)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#pagewidth">PAGEWIDTH</a></td><td>-- set a custom page width</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#pagelength">PAGELENGTH</a></td><td>-- set a custom page length</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#page">PAGE</a></td><td>-- set explicit page dimensions and margins</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#t-margin">T_MARGIN</a></td><td>-- set a top margin</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#b-margin">B_MARGIN</a></td><td>-- set a bottom margin</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#l-margin">L_MARGIN</a></td><td>-- set a left margin (page offset)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#r-margin">R_MARGIN</a></td><td>-- set a right margin</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#linelength">LL</a></td><td>-- set a line length</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr><th id="qr-2" class="quick-ref" colspan="2">
+<a href="typesetting.html#basic-params-intro">+++ Family, font, point size</a></th></tr>
+<tr>
+<td><a href="typesetting.html#family">FAMILY</a></td><td>-- set the family of type</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#font">FT</a></td><td>-- set the font style (roman, italic, etc)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#fallback-font">FALLBACK_FONT</a></td><td>-- establish a fallback font (for missing fonts)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ps">PT_SIZE</a></td><td>-- set the point size</td>
+</tr>
+<tr>
+<td><a href="inlines.html#inline-size-mom">\*[SIZE n]</a></td><td>-- change the point size inline</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-3" class="quick-ref" colspan="2">
+<a href="typesetting.html#modifications-intro">+++ Font modifications</a></th>
+</tr>
+<tr><td style="padding-left: 0;">Pseudo italic</td></tr>
+<tr>
+<td><a href="typesetting.html#setslant">SETSLANT</a></td><td>-- set the degree of slant</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#slant-inline">\*[SLANT]</a></td><td>-- invoke pseudo italic inline</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#slant-inline">\*[SLANTX]</a></td><td>-- turn off pseudo italic inline</td>
+</tr>
+<tr><td style="padding-left: 0;">Pseudo bold</td></tr>
+<tr>
+<td><a href="typesetting.html#setbolder">SETBOLDER</a></td><td>-- set the amount of emboldening</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#bolder-inline">\*[BOLDER]</a></td><td>-- invoke pseudo bold inline</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#bolder-inline">\*[BOLDERX]</a></td><td>-- turn off pseudo bold inline</td>
+</tr>
+<tr><td style="padding-left: 0;">Pseudo condensed</td></tr>
+<tr>
+<td><a href="typesetting.html#condense">CONDENSE</a></td><td>-- set the amount to pseudo condense</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#cond-inline">\*[COND]</a></td><td>-- invoke pseudo condensing inline</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#cond-inline">\*[CONDX]</a></td><td>-- turn off pseudo condensing inline</td>
+</tr>
+<tr><td style="padding-left: 0;">Pseudo extended</td></tr>
+<tr>
+<td><a href="typesetting.html#extend">EXTEND</a></td><td>-- set the amount to pseudo extend</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ext-inline">\*[EXT]</a></td><td>-- invoke pseudo extending inline</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ext-inline">\*[EXTX]</a></td><td>-- turn off pseudo condensing inline</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-4" class="quick-ref" colspan="2">
+<a href="typesetting.html#leading">+++ Linespacing (leading)</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#leading">LS</a></td><td>-- set the linespacing (leading)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#autolead">AUTOLEAD</a></td><td>-- set the linespacing relative to the point size</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-5" class="quick-ref" colspan="2">
+<a href="typesetting.html#justification-intro">+++ Justification, quad, line-by-line setting, breaking lines</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#justify">JUSTIFY</a></td><td>-- justify text to both margins</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#quad">QUAD</a></td><td>-- "justify" text left, centre, or right</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#lrc">LEFT</a></td><td>-- set line-by-line quad left</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#lrc">CENTER</a></td><td>-- set line-by-line quad centre</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#lrc">RIGHT</a></td><td>-- set line-by-line quad right</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#br">BR</a></td><td>-- break a justified line</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#spread">SPREAD</a></td><td>-- force justify a line</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#el">EL</a></td><td>-- break a line without advancing on the page</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-6" class="quick-ref" colspan="2">
+<a href="typesetting.html#hy">+++ Hyphenation</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#hy">HY</a></td><td>-- automatic hyphenation on/off</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#hy-set">HY_SET</a></td><td>-- set automatic hyphenation parameters</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-7" class="quick-ref" colspan="2">
+<a href="typesetting.html#ws">+++ Word and sentence spacing</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#ws">WS</a></td><td>-- set the minimum word space size</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ss">SS</a></td><td>-- set the sentence space size</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-8" class="quick-ref" colspan="2">
+<a href="typesetting.html#kern">+++ Kerning, ligatures, smartquotes</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#kern">KERN</a></td><td>-- automatic character pair kerning on/off</td>
+</tr>
+<tr>
+<td><a href="inlines.html#inline-kerning-mom">\*[BU n]</a></td><td>-- move characters pairs closer together inline</td>
+</tr>
+<tr>
+<td><a href="inlines.html#inline-kerning-mom">\*[FU n]</a></td><td>-- move character pairs further apart inline</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#rw">RW</a></td><td>-- uniformly tighten space between characters</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ew">EW</a></td><td>-- uniformly loosen space between characters</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#br-at-line-kern">BR_AT_LINE_KERN</a></td><td>-- break previous line when RW or EW is invoked</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ligatures">LIGATURES</a></td><td>-- automatic generation of ligatures on/off</td>
+</tr>
+<tr>
+<td><a href="goodies.html#smartquotes">SMARTQUOTES</a></td><td>-- smartquoting on/off</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-9" class="quick-ref" colspan="2">
+<a href="typesetting.html#aldrld-intro">+++ Horizontal and vertical movements, columnar setting</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#ald">ALD</a></td><td>-- move downards on the page</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#rld">RLD</a></td><td>-- move upwards on the page</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#space">SPACE</a></td><td>-- insert space between lines on a page</td>
+</tr>
+<tr>
+<td><a href="inlines.html#down">\*[DOWN n]</a></td><td>-- temporarily move downwards in a line</td>
+</tr>
+<tr>
+<td><a href="inlines.html#up">\*[UP n]</a></td><td>-- temporarily move upwards in a line</td>
+</tr>
+<tr>
+<td><a href="inlines.html#fwd">\*[FWD n]</a></td><td>-- move forward in a line</td>
+</tr>
+<tr>
+<td><a href="inlines.html#bck">\*[BCK n]</a></td><td>-- move backwards in a line</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#mco">MCO</a></td><td>-- multiple columns on</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#mcr">MCR</a></td><td>-- recto vertical position of column start</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#mcx">MCX</a></td><td>-- multiple columns off, advance past longest column</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-10" class="quick-ref" colspan="2">
+<a href="typesetting.html#indents-intro">+++ Indents</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#il">IL</a></td><td>-- set and turn on a left indent</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ir">IR</a></td><td>-- set and turn on a right indent</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ib">IB</a></td><td>-- set and turn on indents both left and right</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#iq">IQ</a></td><td>-- quit (exit) all indents</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#ti">TI</a></td><td>-- set and turn on a temporary (one line) indent</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#hi">HI</a></td><td>-- set and turn on a hanging indent</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#iq">ILX</a></td><td>-- left indents off</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#iq">IRX</a></td><td>-- right indents off</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#iq">IBX</a></td><td>-- both left and right indents off</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-11" class="quick-ref" colspan="2">
+<a href="typesetting.html#tabs-intro">+++ Tabs</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#tab-set">TAB_SET</a></td><td>-- set up a typesetting tab</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#tab">TAB &lt;n&gt;</a></td><td>-- call tab &lt;n&gt;</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#tq">TQ</a></td><td>-- quit (exit) tabs</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#inline-st">\*[ST&lt;n&gt;]...</a></td><td>-- string tabs (mark tab positions inline)</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#inline-st">\*[ST&lt;n&gt;X]</a></td>
+</tr>
+<tr>
+<td><a href="typesetting.html#tn">TN</a></td><td>-- move to tab&lt;n+1&gt; without advancing on the page</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#st">ST</a></td><td>-- set quad/fill for string tabs</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-12" class="quick-ref" colspan="2">
+<a href="goodies.html#underscore">+++ Underscoring, underlining</a></th>
+</tr>
+<tr>
+<td><a href="goodies.html#underscore">UNDERSCORE</a></td><td>-- underscore</td>
+</tr>
+<tr>
+<td><a href="goodies.html#underscore2">UNDERSCORE2</a></td><td>-- double underscore</td>
+</tr>
+<tr>
+<td><a href="goodies.html#underline">UNDERLINE</a></td><td>-- underline (fixed width fonts only)</td>
+</tr>
+<tr>
+<td><a href="goodies.html#ul">\*[UL]...</a></td><td>-- invoke underlining inline (fixed width fonts only)</td>
+</tr>
+<tr>
+<td><a href="goodies.html#ul">\*[ULX]</a></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-13" class="quick-ref" colspan="2">
+<a href="goodies.html#sup">+++ Superscipts</a></th>
+</tr>
+<tr>
+<td><a href="goodies.html#sup">\*[SUP]...\*[SUPX]</a></td><td>-- superscript</td>
+</tr>
+<tr>
+<td><a href="goodies.html#sup">\*[CONDSUP]...\*[CONDSUPX]</a></td><td>-- pseudo-condensed superscript</td>
+</tr>
+<tr>
+<td><a href="goodies.html#sup">\*[EXTSUP]...\*[EXTSUPX]</a></td><td>-- pseudo extended supercript</td>
+</tr>
+<tr>
+<td><a href="goodies.html#sup-raise">SUPERSCRIPT_RAISE_AMOUNT</a></td><td>-- vertical offset of superscripts</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-14" class="quick-ref" colspan="2">
+<a href="docelement.html#list-intro">+++ Nested lists</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#list">LIST</a></td><td>-- begin a list</td>
+</tr>
+<tr>
+<td><a href="docelement.html#item">ITEM</a></td><td>-- begin an item in a list</td>
+</tr>
+<tr>
+<td><a href="docelement.html#shift-list">SHIFT_LIST</a></td><td>-- change the indent of a list</td>
+</tr>
+<tr>
+<td><a href="docelement.html#reset-list">RESET_LIST</a></td><td>-- clear and reset a list&#8217;s enumerator</td>
+</tr>
+<tr>
+<td><a href="docelement.html#pad-list-digits">PAD_LIST_DIGITS</a></td><td>-- reserve space for digits</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-15" class="quick-ref" colspan="2">
+<a href="color.html#color-intro">+++ Colour</a></th>
+</tr>
+<tr>
+<td><a href="color.html#newcolor">NEWCOLOR</a></td><td>-- initialize (define) a colour</td>
+</tr>
+<tr>
+<td><a href="color.html#color">COLOR</a></td><td>-- begin using an initialized colour</td>
+</tr>
+<tr>
+<td><a href="color.html#xcolor">XCOLOR</a></td><td>-- initialize a "named" X colour</td>
+</tr>
+<tr>
+<td><a href="color.html#color-inline">\*[&lt;colorname&gt;]</a></td><td>-- begin using an initialized colour inline</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-16" class="quick-ref" colspan="2">
+<a href="goodies.html#dropcap">+++ Dropcaps</a></th>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap">DROPCAP</a></td><td>-- set a dropcap</td>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap-family">DROPCAP_FAMILY</a></td><td>-- set a dropcap&#8217;s family</td>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap-font">DROPCAP_FONT</a></td><td>-- set a dropcap&#8217;s font style</td>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap-color">DROPCAP_COLOR</a></td><td>-- set a dropcap&#8217;s colour</td>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap-adjust">DROPCAP_ADJUST</a></td><td>-- adjust size of a dropcap</td>
+</tr>
+<tr>
+<td><a href="goodies.html#dropcap-gutter">DROPCAP_GUTTER</a></td><td>-- adjust space between a dropcap and regular text</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-56" class="quick-ref" colspan="2">
+<a href="typesetting.html#smallcaps">+++ Smallcaps</a></th>
+</tr>
+<tr>
+<td><a href="typesetting.html#smallcaps">SMALLCAPS</a></td>
+</tr>
+<tr>
+<td><a href="typesetting.html#smallcaps-style">SMALLCAPS_STYLE</a></td>
+</tr>
+</table>
+
+
+<table class="quick-ref">
+<tr>
+<th id="qr-17" class="quick-ref" colspan="2">+++ Utilities</th>
+</tr>
+<tr>
+<td><a href="goodies.html#alias">ALIAS</a></td><td>-- give a macro a new name</td>
+</tr>
+<tr>
+<td><a href="goodies.html#caps">CAPS</a></td><td>-- set type all caps</td>
+</tr>
+<tr>
+<td><a href="goodies.html#silent">COMMENT</a></td><td>-- silently embed comments in a document</td>
+</tr>
+<tr>
+<td><a href="goodies.html#esc-char">ESC_CHAR</a></td><td>-- change the default escape character</td>
+</tr>
+<tr>
+<td><a href="goodies.html#leader">\*[LEADER]</a></td><td>-- insert leaders at the end of a line</td>
+</tr>
+<tr>
+<td><a href="goodies.html#leader-character">LEADER_CHARACTER</a></td><td>-- change the character used for leaders</td>
+</tr>
+<tr>
+<td><a href="typesetting.html#newpage">NEWPAGE</a></td><td>-- break to a new page</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#newslide">NEWSLIDE</a></td><td>-- break to a new slide</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#pause">PAUSE</a></td><td>-- pause slide presentation</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#transition">TRANSITION</a></td><td>-- transition effect for slides</td>
+</tr>
+<tr>
+<td><a href="goodies.html#pad">PAD</a></td><td>-- insert equalized whitespace into a line</td>
+</tr>
+<tr>
+<td><a href="goodies.html#pad-marker">PAD_MARKER</a></td><td>-- change the pad marker</td>
+</tr>
+<tr>
+<td><a href="inlines.html#inline-rule-mom">\*[RULE]</a></td><td>-- draw a full measure rule</td>
+</tr>
+<tr>
+<td><a href="goodies.html#sizespecs">SIZESPECS</a></td><td>-- cap-height, x-height, descender depth</td>
+</tr>
+<tr>
+<td><a href="goodies.html#silent">SILENT</a></td><td>-- output processing off or on</td>
+</tr>
+<tr>
+<td><a href="goodies.html#trap">TRAP</a></td><td>-- enable or disable page position traps</td>
+</tr>
+<tr>
+<td><a href="goodies.html#left-hang">LEFT_HANG / \*[HANG]</a></td><td>-- hanging punctuation</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-18" class="quick-ref" colspan="2">
+<a href="graphical.html#intro-graphical">+++ Graphical objects and images</a></th>
+</tr>
+<tr>
+<td><a href="graphical.html#drh">DRH</a></td><td>-- draw a horizontal rule</td>
+</tr>
+<tr>
+<td><a href="graphical.html#drv">DRV</a></td><td>-- draw a vertical rule</td>
+</tr>
+<tr>
+<td><a href="graphical.html#dbx">DBX</a></td><td>-- draw a box</td>
+</tr>
+<tr>
+<td><a href="graphical.html#dcl">DCL</a></td><td>-- draw a circle (ellipse)</td>
+</tr>
+<tr>
+<td><a href="inlines.html#rule-weight">RULE_WEIGHT</a></td><td>-- set weight of rules drawn with \*[RULE]</td>
+</tr>
+<tr>
+<td><a href="images.html#pdf-image">PDF_IMAGE</a></td><td>-- insert a PDF image</td>
+</tr>
+<tr>
+<td><a href="images.html#pspic">PSPIC</a></td><td>-- insert a PostScript image</td>
+</tr>
+</table>
+
+<div style="display: inline-block; margin-top: 1em; margin-bottom: .5em; border-bottom: 2px solid #302419;"><kbd>DOCUMENT PROCESSING MACROS</kbd></div>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-19" class="quick-ref" colspan="2">
+<a href="docprocessing.html#reference-macros">+++ Reference macros</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#title">TITLE</a></td><td>-- document title</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-title">DOCTITLE</a></td><td>-- document title (if different from TITLE)</td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnote-title">ENDNOTE_TITLE</a></td><td>-- document/chapter id string for endnotes</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#chapter">CHAPTER</a></td><td>-- chapter number</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#chapter-title">CHAPTER_TITLE</a></td><td>-- chapter title</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#chapter-string">CHAPTER_STRING</a></td><td>-- what to use in place of &#8220;Chapter&#8221;</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#subtitle">SUBTITLE</a></td><td>-- document subtitle</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#author">AUTHOR</a></td><td>-- document author(s)</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#covertitle">DOC_COVERTITLE</a></td><td>-- document title cover</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#covertitle">COVERTITLE</a></td><td>-- section cover title</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#copyright">COPYRIGHT</a></td><td>-- copyright</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#misc">MISC</a></td><td>-- miscellaneous cover information</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#draft">DRAFT</a></td><td>-- document&#8217;s draft number</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#draft-string">DRAFT_STRING</a></td><td>-- what to use in place of &#8220;Draft&#8221;</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#revision">REVISION</a></td><td>-- document&#8217;s revision number</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#revision-string">REVISION_STRING</a></td><td>-- what to use in place of &#8220;Revision&#8221;</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#pdftitle">PDF_TITLE</a></td><td>-- PDF viewer window title</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#toc-heading">TOC_HEADING</a></td><td>-- non-pagenumbered line inserted into the TOC</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-20" class="quick-ref" colspan="2">
+<a href="docprocessing.html#docstyle-macros">+++ General document formatting directives</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doctype">DOCTYPE</a></td><td>-- general document type</td>
+</tr>
+<tr>
+<td id="qr-59"><a href="docprocessing.html#slides">DOCTYPE SLIDES</a></td><td>-- create slide presentation</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#copystyle">COPYSTYLE</a></td><td>-- draft or final copy</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#printstyle">PRINTSTYLE</a></td><td>-- typeset or &#8220;typewritten&#8221;</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-21" class="quick-ref" colspan="2">
+<a href="docelement.html#number-lines-intro">+++ Line numbering</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#number-lines">NUMBER_LINES</a></td><td>-- automatic line numbering on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#number-quote-lines">NUMBER_QUOTE_LINES</a></td><td>-- numbering of QUOTE lines on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#number-blockquote-lines">NUMBER_BLOCKQUOTE_LINES</a></td><td>-- numbering of BLOCKQUOTE lines on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#number-lines-control">Control macros</a></td><td></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-22" class="quick-ref" colspan="2">
+<a href="docprocessing.html#columns-intro">+++ Set documents in columns</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#columns">COLUMNS</a></td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#col-next">COL_NEXT</a></td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#col-break">COL_BREAK</a></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-23" class="quick-ref" colspan="2">+++ TYPEWRITE control macros</th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#typewriter-family">TYPEWRITER_FAMILY</a></td><td>alternative to Courier</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#typewriter-size">TYPEWRITER_SIZE</a></td><td>point size of typewriter font</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#typewriter-underlining">UNDERLINE_ITALIC</a></td><td>-- underlining of italics on</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#printstyle-italics">UNDERLINE_QUOTES</a></td><td>-- underlining of QUOTEs on/off</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#printstyle-italics">ITALIC_MEANS_ITALIC</a></td><td>-- use real italics (not underlining)</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#typewriter-underlining">UNDERLINE_SLANT</a></td><td>-- underlining of pseudo-italics on</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#typewriter-underlining">SLANT_MEANS_SLANT</a></td><td>-- use pseudo italics (not underlining)</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-24" class="quick-ref" colspan="2">
+<a href="docprocessing.html#start-macro">+++ Initiate document processing</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#start">START</a></td><td>-- begin document processing</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-25" class="quick-ref" colspan="2">
+<a href="docelement.html#epigraph-intro">+++ Epigraphs</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#epigraph">EPIGRAPH</a></td><td>-- set an epigraph underneath the docheader</td>
+</tr>
+<tr>
+<td><a href="docelement.html#epigraph-control">Control macros</a></td><td>-- change default style of epigraphs</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-26" class="quick-ref" colspan="2">
+<a href="docelement.html#heading-intro">+++ Headings</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#heading">HEADING</a></td><td>-- hierarchical headings</td>
+</tr>
+<tr>
+<td><a href="docelement.html#heading-control">Control macros</a></td><td>-- style heading levels</td>
+</tr>
+<tr>
+<td><a href="docelement.html#heading-style">&nbsp;HEADING_STYLE</a></td><td>-- set style parameters for heading levels</td>
+</tr>
+<tr>
+<td><a href="docelement.html#prefix-chapter-number">&nbsp;PREFIX_CHAPTER_NUMBER</a></td><td>-- add chapter number to heading numbering</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-30" class="quick-ref" colspan="2">
+<a href="docelement.html#pp-intro">+++ Paragraphs</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#pp">PP</a></td><td>-- set a paragraph</td>
+</tr>
+<tr>
+<td><a href="docelement.html#pp-control">Control macros</a></td><td>-- managing paragraph style concerns</td>
+</tr>
+<tr>
+<td><a href="docelement.html#pp-font">&nbsp;PP_FONT</a></td><td>-- globally change font of regular paragraphs</td>
+</tr>
+<tr>
+<td><a href="docelement.html#para-indent">&nbsp;PARA_INDENT</a></td><td>-- set the paragraph first-line indent</td>
+</tr>
+<tr>
+<td><a href="docelement.html#para-indent-first">&nbsp;INDENT_FIRST_PARAS</a></td><td>-- indenting of paragraph first-lines on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#pp-space">&nbsp;PARA_SPACE</a></td><td>-- linespace between paragraphs on/off</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-31" class="quick-ref" colspan="2">
+<a href="docelement.html#quote-intro">+++ Quotes (line for line verbatim quotes)</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#quote">QUOTE</a></td><td>-- set quoted text line for line </td>
+</tr>
+<tr>
+<td><a href="docelement.html#quote-general">Control macros</a></td><td>-- change default style of quotes</td>
+</tr>
+<tr>
+<td><a href="docelement.html#always-fullspace-quotes">&nbsp;ALWAYS_FULLSPACE_QUOTES</a></td><td>-- control vertical space around quotes</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-32" class="quick-ref" colspan="2">
+<a href="docelement.html#blockquote-intro">+++ Blockquotes (cited passages of text)</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#blockquote">BLOCKQUOTE</a></td><td>-- set passages of cited text</td>
+</tr>
+<tr>
+<td><a href="docelement.html#blockquote-general">Control macros</a></td><td>-- change default blockquote style</td>
+</tr>
+<tr>
+<td><a href="docelement.html#always-fullspace-quotes">&nbsp;ALWAYS_FULLSPACE_BLOCKQUOTES</a></td><td>-- control vertical spacing</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-49" class="quick-ref" colspan="2">
+<a href="images.html#floats-intro">+++ Floats</a></th>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#float">FLOAT</a></td><td>-- keep blocks of input together, output on next page
+<br/>
+&nbsp;&nbsp;&nbsp;if necessary</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-53" class="quick-ref" colspan="2">
+<a href="images.html#images-intro">+++ Images and graphics</a></th>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#pdf">PDF_IMAGE</a></td><td>-- inserting pdf images</td>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#pdf-image-frame">&nbsp;PDF_IMAGE_FRAME</a></td><td>-- set parameters for pdf image frames</td>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#pspic">PSPIC</a></td><td>-- inserting PostScript images</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-60" class="quick-ref" colspan="2">
+<a href="images.html#box-intro">+++ Shaded backgrounds, frames, page colour</a></th>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#box-macro">BOX</a>&nbsp;-- shaded backgrounds and frames</td>
+</tr>
+<tr>
+<td style="vertical-align: top"><a href="images.html#page-color">PAGE_COLOR</a></td>
+</tr>
+
+</table>
+<table class="quick-ref">
+<tr>
+<th id="qr-51" class="quick-ref" colspan="2">
+<a href="images.html#eqn">+++ eqn support</a></th>
+</tr>
+<tr>
+<td><a href="images.html#eq-en">EQ</a></td><td>-- begin an eqn block</td>
+</tr>
+<tr>
+<td><a href="images.html#eq-en">EN</a></td><td>-- end an eqn block</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-52" class="quick-ref" colspan="2">
+<a href="images.html#pic">+++ pic support</a></th>
+</tr>
+<tr>
+<td><a href="images.html#ps-pe">PS</a></td><td>-- begin a pic block</td>
+</tr>
+<tr>
+<td><a href="images.html#ps-pe">PE</a></td><td>-- end a pic block</td>
+</tr>
+<tr>
+<td><a href="images.html#pic-text-style">PIC_TEXT_STYLE</a></td><td>-- set style for pic text</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-58" class="quick-ref" colspan="2">
+<a href="images.html#grap">+++ grap support</a></th>
+</tr>
+<tr>
+<td><a href="images.html#grap">G1</a></td><td>-- begin a grap block</td>
+</tr>
+<tr>
+<td><a href="images.html#grap">G2</a></td><td>-- end a grap block</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-50" class="quick-ref" colspan="2">
+<a href="images.html#tbl">+++ tbl support</a></th>
+</tr>
+<tr>
+<td><a href="images.html#ts-te">TS</a></td><td>-- begin a tbl block</td>
+</tr>
+<tr>
+<td><a href="images.html#ts-te">TH</a></td><td>-- running table header (after TS H)</td>
+</tr>
+<tr>
+<td><a href="images.html#ts-te">TE</a></td><td>-- end tbl block</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-54" class="quick-ref" colspan="2">
+<a href="images.html#captions-and-labels">+++ Captions and labels</a></th>
+</tr>
+<tr>
+<td><a href="images.html#autolabel">AUTOLABEL</a></td><td>-- auto-label figures, tables, equations</td>
+</tr>
+<tr>
+<td><a href="images.html#set-autolabel">SET_AUTOLABEL</a></td><td>-- set or reset autolabel numbers</td>
+</tr>
+<tr>
+<td><a href="images.html#caption-after-label">CAPTION_AFTER_LABEL</a></td><td>-- place captions after labels</td>
+</tr>
+<tr>
+<td><a href="images.html#mla">MLA</a></td><td>-- MLA-style labelling and captioning</td>
+</tr>
+<tr>
+<td><a href="images.html#caption">CAPTION</a></td><td>-- add a caption to a float or (block)quote</td>
+</tr>
+<tr>
+<td><a href="images.html#label">LABEL</a></td><td>-- add a label to a float or (block)quote</td>
+</tr>
+<tr>
+<td><a href="images.html#captions-labels-sources">CAPTIONS</a></td><td>-- set style for captions</td>
+</tr>
+<tr>
+<td><a href="images.html#captions-labels-sources">LABELS</a></td><td>-- set style for labels</td>
+</tr>
+<tr>
+<td><a href="images.html#captions-labels-sources">SOURCES</a></td><td>-- set style for sources (tbl only)</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-55" class="quick-ref" colspan="2">
+<a href="images.html#lists-of">+++ Lists of Figures, Tables, and Equations</a></th>
+</tr>
+<tr>
+<td><a href="images.html#lists-macros">LIST_OF_FIGURES</a></td><td>-- generate a List of Figures</td>
+</tr>
+<tr>
+<td><a href="images.html#lists-macros">LIST_OF_TABLES</a></td><td>-- generate a List of Tables</td>
+</tr>
+<tr>
+<td><a href="images.html#lists-macros">LIST_OF_EQUATIONS</a></td><td>-- generate a List of Equations</td>
+</tr>
+<tr>
+<td><a href="images.html#lists-style">LISTS_STYLE</a></td><td>-- set style parameters for Lists</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-33" class="quick-ref" colspan="2">
+<a href="docelement.html#code-intro">+++ Code snippets</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#code">CODE</a></td><td>-- set a code snippet</td>
+</tr>
+<tr>
+<td><a href="docelement.html#code-control">Control macros</a></td><td>-- change default style of code snippets</td>
+</tr>
+<tr>
+<td><a href="docelement.html#code-general">&nbsp;General</a></td><td>-- family, font, and colour</td>
+</tr>
+<tr>
+<td><a href="docelement.html#code-size">&nbsp;CODE_SIZE</a></td><td>-- code size as a percentage of prevailing text</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-34" class="quick-ref" colspan="2">
+<a href="docelement.html#linebreak-intro">+++ Author linebreaks (section breaks)</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#linebreak">LINEBREAK</a></td><td>-- insert an author linebreak (section break)</td>
+</tr>
+<tr>
+<td><a href="docelement.html#linebreak-control">Control macros</a></td><td>-- change default style of linebreaks</td>
+</tr>
+<tr>
+<td><a href="docelement.html#linebreak-char">&nbsp;LINEBREAK_CHAR</a></td><td>-- character to use for author linebreaks</td>
+</tr>
+<tr>
+<td><a href="docelement.html#linebreak-color">&nbsp;LINEBREAK_COLOR</a></td><td>-- colour of author linebreak character</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-35" class="quick-ref" colspan="2">
+<a href="docelement.html#finis-intro">+++ Document termination string</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#finis">FINIS</a></td><td>-- insert a document termination string</td>
+</tr>
+<tr>
+<td><a href="docelement.html#finis-control">Control macros</a></td><td>-- change default style finis string</td>
+</tr>
+<tr>
+<td><a href="docelement.html#finis-string">&nbsp;FINIS_STRING</a></td><td>-- set the document termination string</td>
+</tr>
+<tr>
+<td><a href="docelement.html#finis-string-caps">&nbsp;FINIS_STRING_CAPS</a></td><td>-- capitalization of termination string</td>
+</tr>
+<tr>
+<td><a href="docelement.html#finis-color">&nbsp;FINIS_COLOR</a></td><td>-- set the document termination string colour</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-36" class="quick-ref" colspan="2">
+<a href="docelement.html#footnote-intro">+++ Footnotes</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote">FOOTNOTE</a></td><td>-- set a footnote</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-general">Control macros</a></td><td>-- change default style of footnotes</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-markers">&nbsp;FOOTNOTE_MARKERS</a></td><td>-- footnote markers on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-marker-style">&nbsp;FOOTNOTE_MARKER_STYLE</a></td><td>-- type of footnote marker to use</td>
+</tr>
+<tr>
+<td><a href="docelement.html#reset-footnote-number">&nbsp;RESET_FOOTNOTE_NUMBER</a></td><td>-- reset footnote numbering</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-rule">&nbsp;FOOTNOTE_RULE</a></td><td>-- footnote separator rule on/off</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-rule-adj">&nbsp;FOOTNOTE_RULE_ADJ</a></td><td>-- adjust position of footnote rule</td>
+</tr>
+<tr>
+<td><a href="docelement.html#footnote-rule-length">&nbsp;FOOTNOTE_RULE_LENGTH</a></td><td>-- adjust length of footnote rule</td>
+</tr>
+<tr>
+<td style="vertical-align: top;"><a href="docelement.html#footnotes-run-on">&nbsp;FOOTNOTES_RUN_ON</a></td>
+ <td>-- instruct footnotes to be continuous</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-37" class="quick-ref" colspan="2">
+<a href="docelement.html#endnote-intro">+++ Endnotes</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#endnote">ENDNOTE</a></td><td>-- set an endnote</td>
+</tr>
+<tr>
+<td style="vertical-align: top;"><a href="docelement.html#en-mark">\*[EN-MARK]</a></td>
+ <td>-- mark initial line of a range of line numbers<br />
+&nbsp;&nbsp;&nbsp;(for use with line numbered endnotes)</td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes">ENDNOTES</a></td><td>-- output endnotes</td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnote-control">Control macros</a></td><td></td>
+</tr>
+</table>
+
+<table class="quick-ref" style="margin-top: -.5em; margin-left: 1em;">
+<tr>
+<td><a href="docelement.html#endnotes-general">General style control</a></td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes-pagination">Pagination</a></td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes-header-control">Header/footer control</a></td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes-header-string-control">Title control</a></td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes-doc-title">Document/section identification control</a></td>
+</tr>
+<tr>
+<td><a href="docelement.html#endnotes-numbering">Identification style</a></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-38" class="quick-ref" colspan="2">
+<a href="docelement.html#margin-notes-intro">+++ Margin notes</a></th>
+</tr>
+<tr>
+<td><a href="docelement.html#mn-init">MN_INIT</a></td><td>-- initialize margin notes</td>
+</tr>
+<tr>
+<td><a href="docelement.html#mn">MN</a></td><td>-- set a margin note</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-39" class="quick-ref" colspan="2">
+<a href="refer.html#intro-ref">+++ Bibliographic references</a></th>
+</tr>
+<tr>
+<td><a href="refer.html#ref">REF</a></td><td>-- begin a reference</td>
+</tr>
+<tr>
+<td><a href="refer.html#footnote-refs">FOOTNOTE_REFS</a></td><td>-- place references in footnotes</td>
+</tr>
+<tr>
+<td><a href="refer.html#endnote-refs">ENDNOTE_REFS</a></td><td>-- place references in endnotes</td>
+</tr>
+<tr>
+<td><a href="refer.html#bracket-refs">REF( / REF)</a></td><td>-- put parentheses around embedded references</td>
+</tr>
+<tr>
+<td><a href="refer.html#bracket-refs">REF[ / REF]</a></td><td>-- put square brackets around embedded references</td>
+</tr>
+<tr>
+<td><a href="refer.html#bracket-refs">REF{ / REF}</a></td><td>-- put curly braces around embedded references</td>
+</tr>
+<tr>
+<td><a href="refer.html#bibliography">BIBLIOGRAPHY</a></td><td>-- output a bibliography</td>
+</tr>
+<tr>
+<td><a href="refer.html#biblio-control">Control macros</a></td>
+</tr>
+</table>
+
+<table class="quick-ref" style="margin-top: -.5em; margin-left: 1em;">
+<tr>
+<td><a href="refer.html#bibliography-type">BIBLIOGRAPHY_TYPE</a>&nbsp;-- "plain" or enumerated list</td>
+</tr>
+<tr>
+<td><a href="refer.html#biblio-general">General style control</a></td>
+</tr>
+<tr>
+<td><a href="refer.html#biblio-header-control">Header/footer control</a></td>
+</tr>
+<tr>
+<td><a href="refer.html#biblio-main-title">Main head control</a></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-40" class="quick-ref" colspan="2">
+<a href="tables-of-contents.html">+++ Tables of contents</a></th>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc">TOC</a></td><td>-- output a table of contents</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#no-toc-entry">NO_TOC_ENTRY</a></td><td>-- omit a document section from the TOC</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#toc-heading">TOC_HEADING</a></td><td>-- insert a heading into the TOC</td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#index-toc-control">Control macros</a></td>
+</tr>
+</table>
+
+<table class="quick-ref" style="margin-top: -.5em; margin-left: 1em;">
+<tr>
+<td><a href="tables-of-contents.html#toc-general">General style control</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-pagenumbering">Page numbering</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-header">Header string control</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-style">Entries and reference page numbers style control</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-title-style">TOC_TITLE_STYLE</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-entry-style">TOC_ENTRY_STYLE</a></td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#toc-heading-style">TOC_HEADING_STYLE</a></td>
+</tr>
+<tr>
+<td><a href="tables-of-contents.html#toc-additional">Additional table of contents control macros</a></td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-41" class="quick-ref" colspan="2">
+<a href="letters.html">+++ Letter (correspondence) macros</a></th>
+</tr>
+<tr>
+<td><a href="letters.html#date">DATE</a></td><td>-- letter&#8217;s date</td>
+</tr>
+<tr>
+<td><a href="letters.html#from">FROM</a></td><td>-- letter&#8217;s addresser</td>
+</tr>
+<tr>
+<td><a href="letters.html#to">TO</a></td><td>-- letter&#8217;s addressee</td>
+</tr>
+<tr>
+<td><a href="letters.html#greeting">GREETING</a></td><td>-- letter&#8217;s salutation</td>
+</tr>
+<tr>
+<td><a href="letters.html#closing">CLOSING</a></td><td>-- letter&#8217;s closing salutation</td>
+</tr>
+<tr>
+<td><a href="letters.html#closing-indent">CLOSING_INDENT</a></td><td>-- indentation of the closing salutation</td>
+</tr>
+<tr>
+<td><a href="letters.html#signature-space">SIGNATURE_SPACE</a></td><td>-- room to leave for the signature</td>
+</tr>
+<tr>
+<td><a href="letters.html#no-suite">NO_SUITE</a></td><td>-- printing of &quot;next page number&quot; off or on</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-42" class="quick-ref" colspan="2">
+<a href="docprocessing.html#style-after-start">+++ Changing global print style parameters after START</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-left-margin">DOC_LEFT_MARGIN</a></td><td>-- left margin of everything on the page</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-right-margin">DOC_RIGHT_MARGIN</a></td><td>-- right margin of everything on the page</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-line-length">DOC_LINE_LENGTH</a></td><td>-- document&#8217;s base line length</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-family">DOC_FAMILY</a></td><td>-- document&#8217;s base family</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-pt-size">DOC_PT_SIZE</a></td><td>-- document&#8217;s base point size</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-lead">DOC_LEAD</a></td><td>-- document&#8217;s base lead</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-quad">DOC_QUAD</a></td><td>-- document&#8217;s base quad directions</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-43" class="quick-ref" colspan="2">
+<a href="docprocessing.html#docheader">+++ Managing a document&#8217;s first-page header</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#docheader">DOCHEADER</a></td><td>-- document first-page header on/off</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#index-docheader-control">Control macros</a></td><td>-- change default style of docheader elements</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-44" class="quick-ref" colspan="2">
+<a href="headfootpage.html#headfoot-management">+++ Managing page headers and footers</a></th>
+</tr>
+<tr>
+<td><a href="headfootpage.html#headers">HEADERS</a></td><td>-- page headers on/off</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#footers">FOOTERS</a></td><td>-- page footers on/off</td>
+</tr>
+<tr>
+<td style="vertical-align: top;"><a href="headfootpage.html#headers-and-footers">HEADERS_AND_FOOTERS</a></td><td>-- enable generation of both headers and<br/>
+&nbsp;&nbsp;&nbsp;footers</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#headfoot-control">Control macros</a></td>
+</tr>
+</table>
+
+<table class="quick-ref" style="margin-top: -.5em; margin-left: 1em;">
+<tr>
+<td><a href="headfootpage.html#hdrftr-strings">Strings</a></td><td>-- left-right-center strings</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-style">Style</a></td><td>-- change defaults for headers and/or footers</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-style-global">Global</a></td><td>-- global style changes</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-style-part">Part-by-part</a></td><td>-- part-by-part style changes</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#vertical-spacing">Vertical placement</a></td><td>-- adjust position of headers and/or footers</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-separator">Separator rule</a></td><td>-- manage the header/footer separator rule</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-45" class="quick-ref" colspan="2">
+<a href="rectoverso.html">+++ Recto/verso page headers and footers</a></th>
+</tr>
+<tr>
+<td><a href="rectoverso.html#recto-verso">RECTO_VERSO</a></td><td>-- recto/verso headers and/or footers on/off</td>
+</tr>
+<tr>
+<td><a href="rectoverso.html#force-recto">FORCE_RECTO</a></td><td>-- insert blank pages so chapters start recto</td>
+</tr>
+<tr>
+<td><a href="rectoverso.html#switch-hdrftr">SWITCH_HEADERS</a></td><td>-- switch recto or verso header</td>
+</tr>
+<tr>
+<td><a href="rectoverso.html#switch-hdrftr">SWITCH_FOOTERS</a></td><td>-- switch recto or verso footer</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-recto">HEADER_RECTO</a></td><td>-- string that constitutes a recto header</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-verso">HEADER_VERSO</a></td><td>-- string that constitutes a verso header</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-recto">FOOTER_RECTO</a></td><td>-- string that constitutes a recto footer</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#hdrftr-verso">FOOTER_VERSO</a></td><td>-- string that constitutes a recto footer</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-46" class="quick-ref" colspan="2">
+<a href="headfootpage.html#pagination-intro">+++ Pagination</a></th>
+</tr>
+<tr>
+<td><a href="headfootpage.html#paginate">PAGINATE</a></td><td>-- pagination on/off</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#index-paginate-control">Control macros</a></td><td>-- change default style for pagination</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#pagenumber">&nbsp;PAGENUMBER</a></td><td>-- user-defined (starting) page number</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#pagenum-style">&nbsp;PAGENUM_STYLE</a></td><td>-- digits, roman numerals, etc</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#pagenumber-string">&nbsp;PAGENUMBER_STRING</a></td><td>-- user-defined page numbering string</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#pagenum-on-first-page">&nbsp;PAGENUM_ON_FIRST_PAGE</a></td><td>-- when page numbering is at page top</td>
+</tr>
+<tr>
+<td style="vertical-align: top;"><a href="headfootpage.html#draft-with-pagenumber">&nbsp;DRAFT_WITH_PAGENUMBER</a></td><td>-- attach draft/revision to page number</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-57" class="quick-ref" colspan="2">
+<a href="docprocessing.html#vertical-whitespace-management">+++ Vertical whitespace management</a></th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#shim">SHIM</a></td><td>-- align to the baseline grid</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#flex">FLEX</a></td><td>-- insert flexible whitespace</td>
+</tr>
+</table>
+
+
+<table class="quick-ref">
+<tr>
+<th id="qr-47" class="quick-ref" colspan="2">
+<a href="cover.html">+++ Document and section cover (title) pages</a></th>
+</tr>
+<tr>
+<td><a href="cover.html#cover">DOC_COVER</a></td><td>-- information to include in a document cover</td>
+</tr>
+<tr>
+<td><a href="cover.html#cover">COVER</a></td><td>-- information to include in a section cover</td>
+</tr>
+<tr>
+<td><a href="cover.html#on-off">DOC_COVERS</a></td><td>-- printing of document covers on/off</td>
+</tr>
+<tr>
+<td><a href="cover.html#on-off">COVERS</a></td><td>-- printing of section covers on/off</td>
+</tr>
+<tr>
+<td><a href="cover.html#covertext">DOC_COVERTEXT</a></td><td>-- user-added text for document covers</td>
+</tr>
+<tr>
+<td><a href="cover.html#covertext">COVERTEXT</a></td><td>-- user-added text for section covers</td>
+</tr>
+<tr>
+<td><a href="cover.html#coverimage">DOC_COVER_IMAGE</a></td><td>-- add images to document covers</td>
+</tr>
+<tr>
+<td><a href="cover.html#coverimage">COVER_IMAGE</a></td><td>-- add images to document covers</td>
+</tr>
+<tr>
+<td><a href="cover.html#cover-control">Control macros</a></td><td>-- change style defaults for covers</td>
+</tr>
+</table>
+
+<table class="quick-ref">
+<tr>
+<th id="qr-48" class="quick-ref" colspan="2">+++ Utilities</th>
+</tr>
+<tr>
+<td><a href="docprocessing.html#add-space">ADD_SPACE</a></td><td>-- add space to the top of a page</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#add-space">RESTORE_SPACE</a></td><td>-- restore spacing at the top of a page</td>
+</tr>
+<tr>
+<td><a href="headfootpage.html#blank-pages">BLANKPAGE</a></td><td>-- output one or more blank pages</td>
+</tr>
+<tr>
+<td><a href="docprocessing.html#doc-lead-adjust">DOC_LEAD_ADJUST</a></td><td>-- adjust leading to fill pages</td>
+</tr>
+<tr>
+<td><a href="rectoverso.html#collate">COLLATE</a></td><td>-- join documents (chapters/sections)</td>
+</tr>
+<tr>
+<td><a href="goodies.html#center-block">CENTER_BLOCK</a></td><td>-- centre blocks of type</td>
+</tr>
+</table>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="appendices.html">Next: Appendices</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/rectoverso.html b/contrib/mom/momdoc/rectoverso.html
new file mode 100644
index 0000000..92cf80f
--- /dev/null
+++ b/contrib/mom/momdoc/rectoverso.html
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Recto/verso printing, collating</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="cover.html#top">Next: Cover pages</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Recto/verso printing, collating</h1>
+
+<div style="width: 50%; margin: auto;">
+<ul class="no-enumerator" style="margin-left: -1em;">
+ <li><a href="#rectoverso-intro">Introduction to recto/verso printing</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#rectoverso-list">Macro list</a></li>
+ </ul></li>
+ <li><a href="#collate-intro">Introduction to collating</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#collate">The COLLATE macro</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="rectoverso-intro" class="docs">Introduction to recto/verso printing</h2>
+
+<p>
+Recto/verso printing allows you to set up a mom document in such
+a way that it can be printed on both sides of a printer sheet and
+subsequently bound.
+</p>
+
+<p>
+With recto/verso, mom automatically takes control of the following
+aspects of alternating page layout:
+</p>
+<ul style="margin-top: -.5em; margin-left: -.5em; margin-bottom: -.5em;">
+ <li>switching left and right margins (if they&#8217;re not equal)</li>
+ <li>switching the left and right parts of the default 3-part
+ <a href="definitions.html#header">headers</a>
+ or
+ <a href="definitions.html#footer">footers</a>
+ (see the
+ <a href="headfootpage.html#description-general">General description of headers</a>)
+ </li>
+ <li>switching
+ <a href="headfootpage.html#hdrftr-recto">HEADER_RECTO</a>
+ and
+ <a href="headfootpage.html#hdrftr-recto">HEADER_VERSO</a>
+ if user-defined, single string recto/verso headers
+ or footers are used in place of the default 3-part
+ headers or footers
+ </li>
+ <li>switching the page number position (if page numbers are not centred)</li>
+</ul>
+<br/>
+
+<div class="macro-list-container">
+<h3 id="rectoverso-list" class="macro-list">Recto/verso macros</h3>
+<ul class="macro-list">
+ <li><a href="#recto-verso">RECTO_VERSO</a></li>
+ <li><a href="#force-recto">FORCE_RECTO</a></li>
+ <li><a href="#switch-hdrftr">SWITCH_HEADERS (also FOOTERS)</a>
+ &ndash; switch starting position of the header parts (left and right)
+ </li>
+</ul>
+</div>
+
+<!-- -RECTO_VERSO- -->
+
+<div id="recto-verso" class="box-macro-args">
+Macro: <b>RECTO_VERSO</b>
+</div>
+
+<p>
+If you want mom to set up alternating pages for recto/verso
+printing, simply invoke RECTO_VERSO, with no argument, anywhere in
+your document (most likely before
+<a href="docprocessing.html#start">START</a>).
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+Recto/verso always switches the left and right parts of
+<a href="definitions.html#header">headers</a>
+or
+<a href="definitions.html#footer">footers</a>
+on odd/even pages. However, it only switches the left and right
+margins if the margins aren&#8217;t equal. Consequently, it is
+your responsibility to set the appropriate differing left and right
+margins with
+<a href="typesetting.html#l-margin">L_MARGIN</a>
+and
+<a href="typesetting.html#r-margin">R_MARGIN</a>
+(prior to
+<a href="docprocessing.html#start">START</a>)
+or with
+<a href="docprocessing.html#doc-left-margin">DOC_LEFT_MARGIN</a>
+and
+<a href="docprocessing.html#doc-right-margin">DOC_RIGHT_MARGIN</a>
+(before or after START).
+</p>
+
+<p class="tip-bottom">
+Equally, recto/verso only switches the page number position if page
+numbers aren&#8217;t centred, which means you have to set the page
+number position with
+<a href="headfootpage.html#pagenum-pos">PAGENUM_POS</a>
+(before or after START).
+</p>
+</div>
+
+<!-- -FORCE_RECTO- -->
+
+<div id="force-recto" class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>FORCE_RECTO</b>
+</div>
+
+<p>
+It is a common convention with two-sided printing to ensure that
+cover pages, title pages, and chapters or major sections of a document
+always begin on the recto side of a page. This sometimes
+necessitates inserting a blank page before the start of a new
+chapter or major section.
+</p>
+
+<p>
+If you would like mom to take care of this for you automatically,
+simply invoke <kbd>FORCE_RECTO</kbd> before the first
+<a href="docprocessing.html#start">START</a>
+of the document.
+</p>
+
+<!-- -SWITCH_HDRFTR- -->
+
+<div id="switch-hdrftr" class="box-macro-args" style="margin-top: 1em;">
+Macro: <b>SWITCH_HEADERS</b>
+</div>
+
+<p>
+SWITCH_HEADERS switches the location of the header left string
+(by default, the author) and the header right string (by default,
+the document title). If you don&#8217;t like mom&#8217;s default
+placement of author and title, use SWITCH_HEADERS to reverse it.
+</p>
+
+<p>
+SWITCH_HEADERS can also be useful in conjunction with
+<a href="#recto-verso">RECTO_VERSO</a>.
+The assumption of RECTO_VERSO is that the first page of a document
+(i.e. recto/odd) represents the norm for header-left and header-right,
+meaning that the second (and all subsequent verso/even) pages of the
+document will reverse the order of header-left and header-right.
+</p>
+
+<p>
+If mom&#8217;s behaviour in this matter is not what you want, simply
+invoke SWITCH_HEADERS on the first page of your recto/verso document
+to reverse her default treatment of header parts. The remainder of
+your document (with respect to headers) will come out as you want.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<!-- ===================================================================== -->
+
+<h2 id="collate-intro" class="docs">Introduction to collating</h2>
+
+<p>
+Many people wisely keep chapters of a long work in separate
+files, previewing or printing them as needed during the draft
+phase. However, when it comes to the final version, mom requires
+a single, collated file in order to keep track of page numbering
+and recto/verso administration, generating tables of contents and
+endnotes, ensuring that
+<a href="definitions.html#docheader">docheaders</a>
+get printed correctly, and a host of other details.
+</p>
+
+<p>
+The COLLATE macro, which can be used with any
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+except <kbd>LETTER</kbd>, lets you glue mom-formatted input files
+together. You need only concatenate chapters into a single file
+(most likely with <kbd>cat(1)</kbd>), and put
+<kbd>.COLLATE</kbd> at the end of each concatenated chapter.
+Assuming all the files begin with the required
+<a href="docprocessing.html#reference-macros">reference macros</a>
+(metadata), style parameters, and
+<a href="docprocessing.html#start">START</a>,
+each chapter will begin on a fresh page and behave as expected.
+</p>
+
+<p>
+Even if you work with monolithic, multi-chapter files, every
+chapter and its associated metadata plus <kbd>.START</kbd>
+still needs to be preceded by <kbd>.COLLATE</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+COLLATE assumes you are collating documents/files with similar
+type-style parameters hence there&#8217;s no need for PRINTSTYLE
+to appear after COLLATE, although if you&#8217;re collating
+documents that were created as separate files, chances are the
+PRINTSTYLE&#8217;s already there.
+</p>
+</div>
+
+<div class="box-tip">
+<p id="caution" class="tip">
+<b>Two words of caution:</b>
+</p>
+<ol style="margin-top: -1.25em; padding-bottom: .5em;">
+ <li>Do not collate documents of differing
+ PRINTSTYLES (i.e., don&#8217;t try to
+ collate a <kbd>TYPESET</kbd> document and <kbd>TYPEWRITE</kbd>
+ document).
+ </li>
+ <li>Use <kbd>.DOC_FAMILY</kbd> instead of
+ <kbd>.FAMILY</kbd> if, for some reason, you want to
+ change the family of all the document elements after
+ <kbd>.COLLATE</kbd>. <kbd>.FAMILY</kbd>, by itself, will
+ change the family of paragraph text only.
+ </li>
+</ol>
+</div>
+
+<!-- -COLLATE- -->
+
+<div class="macro-id-overline">
+<h3 id="collate" class="macro-id">collate</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>COLLATE</b>
+</div>
+
+<p>
+The most basic (and most likely) collating situation looks like
+this:
+<br/>
+<span class="pre-in-pp">
+ .COLLATE
+ .CHAPTER 17
+ .START
+</span>
+A slightly more complex version of the same thing, for chapters
+that require their own titles, looks like this:
+<br/>
+<span class="pre-in-pp">
+ .COLLATE
+ .CHAPTER_TITLE "Geek Fatigue: Symptoms and Causes"
+ .START
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1em">
+<p class="tip">
+<span class="tip">Tip:</span>
+If the last line of text before <kbd>.COLLATE</kbd>
+falls too close to the bottom margin, or if the line is followed
+by a macro likely to cause a linebreak (e.g. <kbd>.LIST OFF</kbd> or
+<kbd>.IQ</kbd>), mom may output a superfluous blank page before
+the start of the following document.
+</p>
+
+<p class="tip-bottom" style="margin-top: -1em">
+In order to avoid this, insert
+<a href="docprocessing.html#EL"><kbd>.EL</kbd></a>
+after the last line of text, before <kbd>.COLLATE</kbd> and/or any
+concluding macros. For example,
+<br/>
+<span class="pre-in-pp">
+ some concluding text.\c
+ .EL
+ .COLLATE
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ some concluding text.\c
+ .EL
+ .LIST OFF
+ .COLLATE
+</span>
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+See the
+<a href="#caution">two words of caution</a>,
+above.
+</p>
+</div>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="cover.html">Next: Cover pages</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/refer.html b/contrib/mom/momdoc/refer.html
new file mode 100644
index 0000000..5f11814
--- /dev/null
+++ b/contrib/mom/momdoc/refer.html
@@ -0,0 +1,2129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document processing, bibliographies and references</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="letters.html#top">Next: Writing letters</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Bibliographies and references</h1>
+
+<div style="width: 75%; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#intro-ref">Introduction to bibliographies and references</a></li>
+ <li><a href="#tutorial-ref">Tutorial on <kbd>refer</kbd> usage with mom</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#db-ref">Create a <kbd>refer</kbd> database</a></li>
+ <li><a href="#rcommands-ref">Insert a <kbd>refer</kbd> block</a></li>
+ <li><a href="#placement-ref">Tell mom where you want your references (if footnotes or endnotes)</a></li>
+ <li><a href="#accessing-ref">Accessing references in the database</a></li>
+ <li><a href="#fn-en-recipe">Entering footnote/endnote references</a></li>
+ <li><a href="#parenthetical">Parenthetical insertions</a></li>
+ <li><a href="#bibliography-from-embedded">Generating a bibliography from parenthetical insertions</a></li>
+ <li><a href="#bibliography-recipe">Generating a comprehensive bibliography</a></li>
+ <li><a href="#invoking-ref">Invoking groff with mom and <kbd>refer</kbd></a></li>
+ </ul></li>
+ <li><a href="#mla">MLA (Modern Language Association) style</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#ref-styles">Types of references (endnote, footnote, or embedded in text)</a></li>
+ <li><a href="#parenthetical">Inserting parenthetical references into the text</a></li>
+ </ul></li>
+ <li><a href="#database">The <kbd>refer</kbd> database</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#database-intro">Introduction</a></li>
+ <li><a href="#database-rules">Rules</a></li>
+ <li><a href="#fields-quick">Quick guide to field identifiers (%A for author, %T for title, etc)</a></li>
+ <li><a href="#fields-specifics">Field identifiers: specifics, usage and examples</a></li>
+ </ul></li>
+ <li><a href="#index-ref">The bibliography and reference macros</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#biblio-control">Bibliography control macros and defaults</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="intro-ref" class="docs">Introduction to bibliographies and references</h2>
+
+<p>
+Mom provides the ability to format and generate bibliographies, as
+well as footnote or endnote references, in MLA (Modern Language
+Association) style. She accomplishes this by working in conjunction
+with a special groff program called <kbd>refer</kbd>.
+</p>
+
+<p>
+<kbd>Refer</kbd> requires first that you create a database of works
+that will be cited in your documents. Once that&#8217;s done, special
+macros let you briefly key in references to entries in the database
+and have mom format them with respect to order, punctuation and
+italicization in footnotes, endnotes, or a full bibliography.
+</p>
+
+<p>
+<kbd>Refer</kbd> has been around for a long time. It&#8217;s
+powerful and has many, many features. Unfortunately, the manpage
+(<kbd>man&nbsp;refer</kbd>), while complete and accurate, is
+dense and not a good introduction. (It&#8217;s a classic manpage
+Catch-22: the manpage is useful only after you know how to use the
+program.)
+</p>
+
+<p>
+In order to get mom users up and running with <kbd>refer</kbd>,
+this section of mom&#8217;s documentation focuses exclusively, in a
+recipe-like manner, on what you need to know to use <kbd>refer</kbd>
+satisfactorily in conjunction with mom. The instructions are not to
+be taken as a manual on full <kbd>refer</kbd> usage.
+</p>
+
+<p>
+If you&#8217;re already a <kbd>refer</kbd> user, the information
+herein will be useful for adapting your current <kbd>refer</kbd>
+usage to mom&#8217;s way of doing things. If you&#8217;ve never
+used <kbd>refer</kbd>, the information is essential, and, in many
+cases, may be all you need.
+</p>
+
+<p>
+I encourage anyone interested in what MLA style looks
+like&mdash;and, by extension, how your bibliographies and references
+will look after mom formats them&mdash;to check out
+<br/>
+<span class="pre-in-pp">
+ <a href="http://www.aresearchguide.com/12biblio.html">http://www.aresearchguide.com/12biblio.html</a>
+</span>
+or any other website or reference book on MLA style.
+</p>
+
+<div class="rule-short" style="margin-top: 1em;"><hr/></div>
+
+<div class="examples-container" style="margin-top: 1.5em; margin-bottom: 1.5em;">
+<h3 id="tutorial-ref" class="docs">Tutorial on refer usage with mom</h3>
+<ol style="margin-top: 1em; margin-bottom: -.5em;">
+ <li><a href="#db-ref">Create a <kbd>refer</kbd> database</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#example-refer-database">example <kbd>refer</kbd> database</a></li>
+ </ul></li>
+ <li><a href="#rcommands-ref">Insert a <kbd>refer</kbd> block</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#fn-en-block">refer block for footnotes/endnotes</a></li>
+ <li><a href="#in-text-block">refer block for parenthetical insertions into running text</a></li>
+ <li><a href="#bibliography-block">refer block for comprehensive bibliographies (reading lists)</a></li>
+ </ul></li>
+ <li><a href="#placement-ref">Tell mom where you want your references (if footnotes or endnotes)</a></li>
+ <li><a href="#accessing-ref">Accessing references in the database</a></li>
+ <li><a href="#fn-en-recipe">Entering footnote/endnote references</a></li>
+ <li><a href="#parenthetical-insertions">Parenthetical insertions</a></li>
+ <li><a href="#bibliography-from-embedded">Generating a bibliography from parenthetical insertions</a></li>
+ <li><a href="#bibliography-recipe">Generating a comprehensive bibliography</a></li>
+ <li><a href="#invoking-ref">Invoking groff with mom and <kbd>refer</kbd></a></li>
+</ol>
+
+<h4 id="db-ref" class="docs">1. Create a refer database</h4>
+
+<p>
+The first step in using <kbd>refer</kbd> with mom is creating a
+database. The database is a text file containing entries for the
+works you will be citing. You may set up separate databases for
+individual documents, or create a large database that can be
+accessed by many documents.
+</p>
+
+<p>
+Entries (&#8220;records&#8221; in refer-speak) in the database
+are separated from each other by a single, blank line. The records
+themselves are composed of single lines (&#8220;fields&#8221;) with
+no blank lines between them. Each field begins with a percent
+sign and a single letter (the &quot;field identifier&quot;)
+e.g. <kbd>%A</kbd> or <kbd>%T</kbd>. The letter identifies
+what part of a bibliographic entry the field refers to: Author,
+Title, Publisher, Date, etc. After the field identifier comes
+a single space, followed by the information appropriate to
+field.
+</p>
+
+<!-- Add rules for punctuation and italics -->
+
+<p>
+Here&#8217;s an example database containing two records so you can
+visualize what the above paragraph says.
+</p>
+
+<div id="example-refer-database" class="examples" style="margin-top: -.5em;">Example <kbd>refer</kbd> database</div>
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+%A Terry Pratchett
+%A Neil Gaiman
+%T Good Omens
+%C London
+%I Gollancz
+%D 1990
+
+%A Peter Schaffter
+%T The Schumann Proof
+%C Toronto
+%I RendezVous Press
+%D 2004
+</span>
+</div>
+
+<p>
+The order in which you enter fields doesn&#8217;t matter.
+<kbd>Refer</kbd> will re-arrange them for you.
+</p>
+
+<h4 id="rcommands-ref" class="docs">2. Insert a refer block</h4>
+
+<p>
+Having set up your database, you now need to put some
+<kbd>refer</kbd>-specific commands in your mom file.
+</p>
+
+<p>
+<kbd>Refer</kbd> commands are introduced by a single line
+containing <kbd>.R1</kbd>, and concluded with a single line
+containing <kbd>.R2</kbd>. What goes between the <kbd>.R1</kbd>
+and <kbd>.R2</kbd> lines is called a &#8220;refer block&#8221;.
+<kbd>Refer</kbd> commands in a refer block should be entered one per
+line, in lowercase letters, <i>with no initial period</i> (dot).
+The actual commands depend on whether you want your references
+</p>
+<ul>
+<li>in footnotes/endnotes</li>
+<li>parenthetically inserted (in abbreviated form) into running text,
+referring to a works-cited list (bibliography)</li>
+<li>to generate a comprehensive bibliography (a reading list)</li>
+</ul>
+
+<h5 id="fn-en-block" class="docs" style="font-size: 90%; margin-top: .25em;">Refer block for footnotes/endnotes</h5>
+
+<p style="margin-top: .5em;">
+If you want footnote or endnote references, place this block at
+the <i>top</i> of your mom file.
+</p>
+
+<div id="refer-block1" class="examples" style="margin-top: -.5em;">
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+.R1
+no-label-in-text
+no-label-in-reference
+join-authors " and " ", " ", and "
+database &lt;full path to database&gt;
+.R2
+</span>
+</div>
+</div>
+<p style="margin-top: .5em; font-size: 95%; line-height: 120%;">
+<kbd>&lt;full&nbsp;path&nbsp;to&nbsp;the&nbsp;database&gt;</kbd>
+means the full path including the filename, e.g.
+<kbd>/home/user/refer/my-database-file</kbd>.
+</p>
+
+<h5 id="in-text-block" class="docs" style="font-size: 90%; margin-top: .25em;">Refer block for parenthetical insertions into running text</h5>
+
+<p style="margin-top: .5em;">
+If you want short, parenthetical insertions into running text,
+referring to works cited in a bibliography, place this block at
+the <i>top</i> of your mom file.
+</p>
+
+<div id="refer-block2" class="examples" style="margin-top: -.5em;">
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+.R1
+label "(A.n|Q)"
+bracket-label " (" ")" ", "
+join-authors ", and " ", " ", and "
+move-punctuation
+reverse A1
+sort A1Q1T1B1E1
+database &lt;full path to database&gt;
+.R2
+</span>
+</div>
+</div>
+<p style="margin-top: .5em; font-size: 95%; line-height: 120%;">
+<kbd>&lt;full&nbsp;path&nbsp;to&nbsp;the&nbsp;database&gt;</kbd>
+means the full path including the filename, e.g.
+<kbd>/home/user/refer/my-database-file</kbd>.
+</p>
+
+<h5 id="bibliography-block" class="docs" style="font-size: 90%; margin-top: .25em;">Refer block for comprehensive bibliographies</h5>
+
+<p style="margin-top: .5em;">
+If you want to output an entire <kbd>refer</kbd> database, or
+generate a comprehensive bibliography (a reading list) from a
+database, place this block at the <i>bottom</i> of your mom file,
+either prior to or immediately after invoking
+<a href="#bibliography">BIBLIOGRAPHY</a>.
+</p>
+
+<div id="refer-block3" class="examples" style="margin-top: -.5em;">
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+.R1
+no-label-in-text
+no-label-in-reference
+join-authors ", and " ", " ", and "
+sort A1Q1T1B1E1
+reverse A1
+database &lt;full path to database&gt;
+.R2
+</span>
+</div>
+</div>
+
+<p style="margin-top: .5em; font-size: 95%; line-height: 120%;">
+<kbd>&lt;full&nbsp;path&nbsp;to&nbsp;the&nbsp;database&gt;</kbd>
+means the full path including the filename, e.g.
+<kbd>/home/user/refer/my-database</kbd>.
+</p>
+
+<h4 id="placement-ref" class="docs">3. Tell mom where you want your references</h4>
+
+<p>
+If you want references in footnotes, issue the instruction
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE_REFS
+</span>
+anywhere before the first citation in your file. Footnote markers
+will be inserted into the text, and the bibliographic information
+for the citation will appear as a footnote.
+</p>
+
+<p>
+If you want references in endnotes, issue the instruction
+<br/>
+<span class="pre-in-pp">
+ .ENDNOTE_REFS
+</span>
+anywhere before the first citation in your file. Endnote markers
+will be inserted into the text, and the bibliographic information
+for the citation will appear as an endnote entry.
+</p>
+
+<p>
+Note that if you want references parenthetically inserted
+into running text, referring to entries in a works-cited list
+(bibliography) that <kbd>mom</kbd> and <kbd>refer</kbd> assemble
+automatically, no special instructions are required. See
+<a href="#bibliography-from-embedded">Generating a bibliography from parenthetical insertions</a>
+for how to output the collected references.
+</p>
+
+<p>
+For outputting an entire <kbd>refer</kbd> database, or
+generating a comprehensive reading list from a database, see the
+macro
+<a href="#bibliography">BIBLIOGRAPHY</a>.
+</p>
+
+<h4 id="accessing-ref" class="docs">4. Accessing references in the database</h4>
+
+<p>
+References are accessed by putting keywords from the desired database
+record between two special <kbd>refer</kbd> commands:
+<br/>
+<span class="pre-in-pp">
+ .[
+</span>
+and
+<br/>
+<span class="pre-in-pp">
+ .]
+</span>
+Keywords are any word, or set of words, that identify a database
+record unambiguously. Thus, if you have only one database record for
+the author Ray Bradbury,
+<br/>
+<span class="pre-in-pp">
+ .[
+ bradbury
+ .]
+</span>
+is sufficient. However, if your database contains several records
+for books by Bradbury, say, <i>Fahrenheit 451</i> and <i>The
+Martian Chronicles</i>,
+&#8220;<kbd>bradbury&nbsp;451</kbd>&#8221; and
+&#8220;<kbd>bradbury&nbsp;martian</kbd>&#8221; would identify the two records unambiguously.
+</p>
+
+<p>
+A special database field identifier, <kbd>%K</kbd>, lets you create
+unique keywords for database records to help clear up any ambiguity.
+</p>
+
+<p>
+Notice that you don&#8217;t have to worry about capitalization when
+entering keywords.
+</p>
+
+<h4 id="fn-en-recipe" class="docs">5. Entering footnote/endnote references</h4>
+
+<p>
+Depending on which you have issued, a
+<kbd><a href="#footnote-refs">.FOOTNOTE_REFS</a></kbd>
+or an
+<kbd><a href="#endnote-refs">.ENDNOTE_REFS</a></kbd>
+command, entering references is done like this:
+<br/>
+<span class="pre-in-pp">
+ .REF
+ .[
+ keyword(s)
+ .]
+ .REF
+</span>
+If FOOTNOTE_REFS is in effect, the reference between the first
+and second <kbd>.REF</kbd> will be treated as a footnote. If
+ENDNOTE_REFS, it will be treated as an endnote. Endnote references
+must be explicitly output with
+<a href="docelement.html#ENDNOTES">ENDNOTES</a>
+at the end of your file, before
+<a href="tables-of-contents.html#TOC">TOC</a>.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+REF behaves identically to
+<a href="docelement.html#footnote">FOOTNOTE</a>
+and
+<a href="docelement.html#endnote">ENDNOTE</a>
+with respect to the use of the <kbd>\c</kbd> inline escape. Please
+read the
+<a href="docelement.html#footnote-note">HYPER IMPORTANT NOTE</a>
+found in the document entry for FOOTNOTE (which also applies to
+ENDNOTE).
+</p>
+</div>
+
+<h4 id="parenthetical-insertions" class="docs">6. Parenthetical insertions</h4>
+
+<p>
+See
+<a href="#parenthetical">Inserting parenthetical references into
+text</a>.
+</p>
+
+<h4 id="bibliography-from-embedded" class="docs">7. Generating a bibliography from parenthetical insertions</h4>
+
+<p>
+To generate a bibliography from works cited by parenthetical
+insertions in the text, put this at the end of your document, before
+<kbd><a href="tables-of-contest.html#TOC">.TOC</a></kbd>.
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY
+ .[
+ $LIST$
+ .]
+ .BIBLIOGRAPHY OFF
+</span>
+</p>
+
+<h4 id="bibliography-recipe" class="docs">8. Generating a comprehensive bibliography</h4>
+
+<p>
+You can also generate a comprehensive bibliography, which is to say a
+bibliography containing more works than are actually cited (a
+&#8220;reading list&#8221;), by placing references between
+<kbd><a href="#bibliography">.BIBLIOGRAPHY</a></kbd>
+and
+<kbd><a href="#bibliography">.BIBLIOGRAPHY&nbsp;OFF</a></kbd>.
+Once you have input the desired references, insert
+<br/>
+<span class="pre-in-pp">
+ .[
+ $LIST$
+ .]
+</span>
+and follow it with <kbd>.BIBLIOGRAPHY&nbsp;OFF</kbd>. Study the
+example below if you&#8217;re having trouble visualizing this.
+</p>
+
+<div id="example-bibliography" class="examples" style="margin-top: -.5em;">Example bibliography</div>
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+.BIBLIOGRAPHY
+.R1
+no-label-in-text
+no-label-in-reference
+join-authors ", and " ", " ", and "
+sort A1Q1T1B1E1
+reverse A1
+database &lt;full path to database&gt;
+.R2
+.[
+bradbury
+.]
+.[
+pratchett
+.]
+.[
+$LIST$
+.]
+.BIBLIOGRAPHY OFF
+</span>
+</div>
+
+<p>
+Alternatively, you can output an entire database as a
+bibliography. Do the following at the end of your document, before
+<kbd><a href="tables-of-contest.html#TOC">.TOC</a></kbd>.
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY
+ .R1
+ no-label-in-text
+ no-label-in-reference
+ join-authors ", and " ", " ", and "
+ sort A1Q1T1B1E1
+ reverse A1
+ bibliography &lt;full path to database&gt;
+ .R2
+ .BIBLIOGRAPHY OFF
+</span>
+</p>
+
+<h4 id="invoking-ref" class="docs">9. Invoking groff with mom and refer</h4>
+
+<p>
+So, now you&#8217;ve got a document formatted properly to use
+references processed with <kbd>refer</kbd>, what do you do to output
+the document?
+</p>
+
+<p>
+It&#8217;s simple. Pass the <kbd>-R</kbd> flag to pdfmom or groff,
+like this:
+<br/>
+<span class="pre-in-pp">
+ pdfmom -R &lt;filename&gt; ...
+</span>
+</p>
+</div>
+
+<div class="rule-medium" style="margin-top: 1em;"><hr/></div>
+
+<h2 id="mla" class="docs">MLA (Modern Language Association) style</h2>
+
+<h3 id="ref-styles" class="docs">Types of references (endnote, footnote, or embedded in text)</h3>
+
+<p>
+MLA allows for three types of references, or referencing styles:
+</p>
+<ul style="margin-top: -.5em;">
+ <li>short, parenthetical references in the text, linked to a
+ works-cited list (bibliography) at the end of the document</li>
+ <li>footnote references</li>
+ <li>endnote references</li>
+</ul>
+
+<p style="margin-top: -.5em;">
+There are significant differences between the way footnote/endnote
+references should be formatted, and the formatting style of
+bibliographies. One example is that footnote/endnote references
+should have their first lines indented, whereas bibliographic
+references should have their second lines indented. Fortunately,
+with mom, there&#8217;s no need to concern yourself with the differences;
+they&#8217;re taken care of automatically.
+</p>
+
+<p>
+In terms of inserting references into your documents,
+footnote/endnote references are input in a manner similar to
+entering any other kind of
+<a href="docelement.html#footnote-into">footnote</a>
+or
+<a href="docelement.html#endnote-into">endnote</a>.
+Parenthetical references, however, need to be handled differently.
+See the next section.
+</p>
+
+<h3 id="parenthetical" class="docs">Inserting parenthetical references into the text</h3>
+
+<p>
+MLA style prefers restricting the information in parenthetical
+references to the barest minimum needed to identify works
+in the works-cited list (the bibliography). Typically, a
+parenthetical insertion is just the author&#8217;s last name
+followed by the page number of the cited work (if only one work by
+that author is cited), or by the author, a shortened title of the
+work, and the page number (if more than one work is cited).
+</p>
+
+<p>
+This necessitates a slightly fiddly way of entering parenthetical
+references, though not by any means difficult or hard to make sense
+of.
+</p>
+
+<p>
+The <kbd>refer</kbd> block suggested
+<a href="#refer-block2">here</a>
+for parenthetical references prints only the author&#8217;s
+last name from the database record identified by your keywords
+(the <kbd>label</kbd> command), surrounded by parentheses (the
+<kbd>bracket-label</kbd> command). Therefore, assuming you are
+citing Ray Bradbury&#8217;s <i>The Martian Chronicles</i>, and it is
+the only work by Bradbury mentioned in the text,
+<br/>
+<span class="pre-in-pp">
+ ...end of sentence.
+ .[
+ martian chronicles
+ .]
+ A new sentence...
+</span>
+will insert &#8220;<span style="font-family: times; font-size: 105%; font-weight: bold">...end of sentence (Bradbury). A new sentence...</span>&#8221; into the text.
+<i>The Martian Chronicles</i> will be added
+to the works-cited list generated at the end of the document if it
+is not already present as the result of an earlier reference.
+</p>
+
+<p>
+If you need a page number to identify where in <i>The Martian
+Chronicles</i> to find a specific quote
+<br/>
+<span class="pre-in-pp">
+ "...aluminum roaches and iron crickets."
+ .[
+ [ martian chronicles
+ .] 168)
+ A new sentence...
+</span>
+results in <span style="font-family: times; font-size: 105%; font-weight: bold">&#8220;...aluminum roaches and iron crickets.&#8221; (Bradbury 168) A new sentence...</span>&#8221;
+(which is excruciatingly correct MLA style). The
+&#8220;<kbd>[</kbd>&#8221; before <kbd>martian&nbsp;chronicles</kbd> tells
+refer to print the opening parenthesis; any text immediately
+following the &#8220;<kbd>.]</kbd>&#8221;, including spaces,
+<i>replaces</i> the closing parenthesis. (Notice that you have to
+add the closing parenthesis yourself after the page number.)
+</p>
+
+<p>
+If your document cites more than one work by Bradbury and you need
+a title and page number in addition to the author&#8217;s name in
+the inline reference,
+<br/>
+<span class="pre-in-pp">
+ "...aluminum roaches and iron crickets."
+ .[
+ [ bradbury martian
+ .], \fIChronicles\fP 168)
+ A new sentence...
+</span>
+will produce &#8220;<span style="font-family: times; font-size: 105%; font-weight: bold">&#8220;...aluminum roaches and iron crickets.&#8221; (Bradbury, <i>Chronicles</i> 168) A new sentence...</span>&#8221;.
+</p>
+
+<div class="examples-container" style="margin-top: 1.5em; margin-bottom: 1.5em;">
+<h3 class="docs">The <span style="text-transform: none">&#8216;label&#8217;</span><span style="text-transform: uppercase"> and</span> <span style="text-transform: none">&#8216;bracket-label&#8217;</span><span style="text-transform: uppercase"> commands</span></h3>
+
+<p>
+The <kbd>label</kbd> and <kbd>bracket-label</kbd> commands in
+the refer block allow you to customize what information goes
+into parenthetical references, and how they should be formatted.
+<kbd>label</kbd> dictates which fields from the database record
+to print and how to punctuate them. <kbd>bracket-label</kbd>
+controls the bracketing style. Users are encouraged to consult
+<kbd>man&nbsp;refer</kbd> for usage.
+</p>
+
+<p>
+Here&#8217;s an example of how to set up APA-style references, which
+require the author and date of publication, optionally with a page
+number or range of pages.
+<br/>
+<span class="pre-in-pp">
+ .R1
+ label "(A.n|Q) ', ' D.y"
+ bracket-label " (" ")" ", "
+ join-authors ", and " ", " ", and "
+ move-punctuation
+ reverse A1
+ sort A1Q1T1B1E1
+ database /home/peter/Groff-mom/Testing/Refer/refer-database
+ .R2
+</span>
+Assuming a reference to a work by Ursula Leguin published in 1980
+<br/>
+<span class="pre-in-pp">
+ .[
+ leguin
+ .]
+</span>
+produces
+<span style="font-family: times; font-size: 105%; font-weight: bold">
+(Leguin, 1980)
+</span>.
+If a page number is also required
+<br/>
+<span class="pre-in-pp">
+ .[
+ [ leguin
+ .], p. 73)
+</span>
+produces
+<span style="font-family: times; font-size: 105%; font-weight: bold">(Leguin, 1980, p. 73)</span>.
+</p>
+</div>
+
+<div class="rule-medium" style="margin-top: 1em;"><hr/></div>
+
+<h2 id="database" class="docs">The refer database</h2>
+
+<h3 id="database-intro" class="docs">Introduction</h3>
+
+<p style="margin-top: .5em;">
+The heart and soul of <kbd>refer</kbd> is the bibliographic
+database. Knowing how to create records (i.e. the entries for works
+cited in a document) is largely a question matching data (author,
+title, publisher, etc) with the correct field identifier. For
+example, if you&#8217;re citing from a scholarly journal, you need to know
+that <kbd>%J</kbd> is the field identifier for journal names and
+<kbd>%N</kbd> is the field identifier for the journal number. Use
+the
+<a href="#fields-quick">Quick list of field identifiers</a>
+as your guide.
+</p>
+
+<h3 id="database-rules" class="docs">The rules</h3>
+
+<p style="margin-top: .5em;">
+Entering the data correctly is also important. Fortunately, there
+are very few rules, and those there are make sense. In a nutshell:
+</p>
+<ul style="margin-top: -.5em;">
+ <li>enter the data in each field in natural order; author John Smith is
+ &#8220;John Smith&#8221;, editor Jane Doe is &#8220;Jane Doe&#8221;</li>
+ <li>capitalize all proper nouns and words in titles as you expect
+ to see them; otherwise, use lowercase</li>
+ <li>use no terminating punctuation unless required; typically,
+ required punctuation is the period after a shortform
+ (&#8220;ed.&#8221; or &#8220;eds.&#8221;, &#8220;Jr.&#8221;,
+ etc) or a question mark or exclamation mark at the end of a
+ title</li>
+ <li>if part of a field needs to be set off in single-quotes, use
+ <kbd>\[oq]</kbd> and <kbd>\[cq]</kbd> (openquote, closequote) rather than the
+ single-quote (or apostrophe) character on your keyboard</li>
+ <li>if part of a field needs to be forced into italics, use the
+ escapes <kbd><span class="nobr">\*[IT]</span></kbd> and
+ <kbd><span class="nobr">\*[PREV]</span></kbd>; if the italicized portion
+ concludes the field, omit <kbd><span class="nobr">\*[PREV]</span></kbd></li>
+ <li>if you require characters with accents, ligatures or special
+ symbols, use groff&#8217;s &#8220;named&#8221; glyphs (e.g.
+ <kbd>\['e]</kbd> for <kbd>é</kbd>); a full list can be found in
+ <kbd>man groff_char</kbd></li>
+</ul>
+
+<h3 id="fields-quick" class="docs" style="margin-top: 1.25em; margin-bottom: .5em;">Quick guide to field identifiers <span style="text-transform: none;">(click on any that are links for more information)</span></h3>
+
+<div class="examples-container" style="padding-bottom: 1em;">
+<span class="pre">
+<a class="quick" href="#A">%A</a> author &ndash; records may contain multiple authors,
+ one per line
+<a class="quick" href="#Q">%Q</a> non-human author &ndash; corporate author, e.g. National Geographic;
+ may also be used for exceptional reference types
+<a class="quick" href="#m">%m</a> multiple authors &ndash; whenever "et al." is desirable
+<a class="quick" href="#i">%i</a> idem &ndash; multiple works by the same author
+<a class="quick" href="#p">%p</a> post-author &ndash; post-author information (e.g. appendix,
+ foreword, letter)
+%T title &ndash; primary title (of a book) or the
+ title of an article (within a scholarly
+ journal or a magazine)
+%B book title &ndash; when %T contains the title of an article;
+<a class="quick" href="#q">%q</a> force quote &ndash; force a title into double-quotes
+%t reprint title &ndash; if different from a work's original title
+%b main author &ndash; when citing a preface, foreword,
+ introduction, or afterword, the author of
+ the complete original work
+<a class="quick" href="#E">%E</a> editor &ndash; records may contain multiple editors,
+ one per line
+<a class="quick" href="#l">%l</a> translator &ndash; if more than one translator, all the
+ names
+%r translator &ndash; if tr. and ed. are one in the same
+ and editor
+%M magazine or &ndash; when %T contains the title of an article
+ newspaper
+%J journal &ndash; when %T contains the title of an article
+%e edition &ndash; number or name of an edition
+ (e.g. Second, 2nd, Collector's, etc.)
+%S series &ndash; series name of books or journals
+%V volume &ndash; volume number (of books)
+%N journal number &ndash; journal or magazine number
+%R report number &ndash; technical report number
+%G gov&#8217;t. &ndash; government ordering number
+<a class="quick" href="#O">%O</a> other &ndash; information for which there is no appropriate
+ field letter
+<a class="quick" href="#C">%C</a> city &ndash; city of publication
+%I publisher &ndash; publisher
+%D date &ndash; publication date
+<a class="quick" href="#d">%d</a> original
+ publication date &ndash; if different from date of publication
+<a class="quick" href="#P">%P</a> page(s) &ndash; page number or range
+<a class="quick" href="#n">%n</a> annotation &ndash; annotation to the reference
+%s site name &ndash; for internet references, the website name
+%c content &ndash; for internet references, the source of
+ the material (e.g. Web or Email); for websites,
+ the content, if unclear
+%o organization &ndash; for internet sites, the organization, group
+ or sponsor of the site
+%a access date &ndash; for internet sites, the date of access
+%u URL &ndash; for internet sites, the full URL
+<a class="quick" href="#K">%K</a> keywords &ndash; words that help clear up ambiguities in
+ the database
+</span>
+</div>
+
+<h3 id="fields-specifics" class="docs">Field identifiers: specifics, usage and examples</h3>
+
+<h4 id="A" class="docs fields">%A &ndash; author field</h4>
+
+<p>
+For multiple authors, enter each in a separate <kbd>%A</kbd>
+field in the order in which they should appear. If the author on
+the title page is the editor (say, a book of short stories edited by
+Ray Bradbury), add <kbd>, ed.</kbd> to the end of the
+<kbd>%A</kbd> field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Ray Bradbury, ed.
+</span>
+Do not use the <kbd>%E</kbd> field in these instances. If the work
+has several such editors, enter each in a separate <kbd>%A</kbd>
+field, as for multiple authors, and add <kbd>, eds.</kbd> to the
+last one, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Jane Dearborne
+ %A Bill Parsons, eds.
+</span>
+</p>
+
+<h4 id="Q" class="docs fields">%Q &ndash; exceptional entries</h4>
+
+<p>
+Sometimes, a work has no author or title information, for example a
+book review in a newspaper. In such cases, use <kbd>%Q</kbd>, like
+this:
+<br/>
+<span class="pre-in-pp">
+ %Q Rev. of \*[IT]Mean Streets Omnibus\*[PREV], ed. Raymond Hammett
+ %M Times Literary Supplement
+ %D 7 July 1972
+</span>
+</p>
+
+<h4 id="m" class="docs fields">%m &ndash; multiple authors (et al.)</h4>
+
+<p>
+Whenever it&#8217;s desirable to abbreviate a list of authors with
+&#8220;et al.&#8221; enter it in the <kbd>%m field</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Paul Lauter
+ %A Doug Scofield
+ %m et al.
+</span>
+</p>
+
+<h4 id="i" class="docs fields">%i &ndash; idem</h4>
+
+<p>
+Whenever there are several works by the same author, fill out the
+<kbd>%A</kbd> field with the author&#8217;s name and follow it with the
+<kbd>%i idem</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Jonathon Schmidt
+ %i idem
+</span>
+Per MLA style, the author&#8217;s name will be replaced by a long dash.
+</p>
+
+<p>
+If it&#8217;s necessary to state the role the author served (say,
+editor or translator), fill out the <kbd>%i</kbd> field with the
+information minus <kbd>idem</kbd>, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Ray Bradbury
+ %i ed.
+ %T Timeless Stories for Today and Tomorrow
+</span>
+</p>
+
+<h4 id="p" class="docs fields">%p &ndash; post-author information</h4>
+
+<p>
+When citing from a preface, foreword, introduction, afterword,
+or appendix, MLA requires that the information come between the
+author&#8217;s name and the work&#8217;s title, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Martin Packham, Jr.
+ %p appendix
+ %T Why the West was Won
+</span>
+Do not capitalize the first word in the <kbd>%p</kbd> field unless
+it is a proper noun.
+</p>
+
+<h4 id="q" class="docs fields">%q &ndash; force title into double-quotes</h4>
+
+<p>
+Occasionally, you may not be able to use <kbd>%T</kbd> for the
+title because doing so will cause it to come out in italics when
+double-quotes are called for. An example of this is when citing
+from a dissertation. Use <kbd>%q</kbd> to get around the problem,
+like this:
+<br/>
+<span class="pre-in-pp">
+ %A Carol Sakala
+ %q Maternity Care Policy in the United States
+ %O diss., Boston U, 1993
+</span>
+</p>
+
+<h4 id="E" class="docs fields">%E &ndash; editor</h4>
+
+<p>
+Use this only if the author and the editor are not one in the same,
+e.g.
+<br/>
+<span class="pre-in-pp">
+ %A Geoffrey Chaucer
+ %T The Works of Geoffrey Chaucer
+ %E F. W. Robinson
+</span>
+</p>
+
+<h4 id="l" class="docs fields">%l &ndash; translator</h4>
+
+<p>
+If there is more than one translator, enter all the names, with
+appropriate conjunctions and punctuation, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Feodor Dostoevsky
+ %T Crime and Punishment
+ %l Jessie Coulson, Marjorie Benton, and George Bigian
+</span>
+</p>
+
+<h4 id="O" class="docs fields">%O &ndash; other</h4>
+
+<p>
+Occasionally, MLA requires additional information after the title
+but before the publication data (city/publisher/date), for instance,
+the number of volumes in a series, or the fact that the work cited
+is a dissertation. Here are two examples:
+<br/>
+<span class="pre-in-pp">
+ %A Arthur M. Schlesinger
+ %T History of U.S. Political Parties
+ %O 4 vols.
+ %C New York
+ %I Chelsea
+ %D 1973
+
+ %A Carol Sakala
+ %q Maternity Care Policy in the United States
+ %O diss., Boston U, 1993
+</span>
+Do not capitalize the first word of the <kbd>%O</kbd> field unless
+it is a proper noun.
+</p>
+
+<p>
+Generally, consider <kbd>%O</kbd> a catch-all for information that
+does not match the criterion of any existing field identifier.
+</p>
+
+<h4 id="C" class="docs fields">%C &ndash; city</h4>
+
+<p>
+Normally, <kbd>%C</kbd> takes the name of the city of publication,
+and that&#8217;s all. In the case of a republished book, if new material
+has been added, put such information in the <kbd>%C</kbd>
+field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Theodore Dreiser
+ %T Sister Carrie
+ %d 1900
+ %C Introd. E. L. Doctorow, New York
+</span>
+</p>
+
+<h4 id="d" class="docs fields">%d &ndash; original date of publication</h4>
+
+<p>
+Normally, all that is required in the <kbd>%d</kbd> field is the
+original date of publication. However, if supplementary original
+publication data is desired, include it in the field, like this:
+<br/>
+<span class="pre-in-pp">
+ %A Kazuo Ishiguro
+ %T The Remains of the Day
+ %d London: Faber, 1989
+ %C New York
+ %I Knopf
+ %D 1990
+</span>
+</p>
+
+<h4 id="K" class="docs fields">%K &ndash; keywords</h4>
+
+<p>
+<kbd>Refer</kbd> hates ambiguity, and complains when encountering
+it. Ambiguities result from the duplication of any word in more
+than one database record when that word is used to identify a
+reference in your input file. Use <kbd>%K</kbd> to create unique
+keywords found nowhere else in the database.
+</p>
+
+<p>
+Imagine, for example, that your database contains records for
+Ray Bradbury&#8217;s <i>The Illustrated Man</i>, another record for
+<i>The Illustrated Bradbury</i> and a third for <i>Bradbury,
+Illustrated</i>. <kbd>%K</kbd> can be used to clear up any
+ambiguities by assigning a unique word to each record, for example
+<kbd>%K ill-man</kbd> for the first, <kbd>%K ill-brad</kbd> for the
+second, and <kbd>%K brad-ill</kbd> for the third.
+</p>
+
+<h4 id="P" class="docs fields">%P &ndash; pages</h4>
+
+<p>
+When citing page numbers, which is often the case with footnotes
+and endnotes, it is not necessary to put the numbers in the database
+records. The <kbd>%P</kbd> field can be added underneath the
+keyword(s) in the <kbd>.[</kbd> / <kbd>.]</kbd> entries in your
+input file, allowing you to recycle database records. For example,
+<br/>
+<span class="pre-in-pp">
+ %A Frye
+ %T Anatomy
+ %K frye-anat
+</span>
+could be your short record for Northrop Frye&#8217;s <i>The Anatomy of
+Criticism</i>. Any time you wanted to cite a particular page or
+range of pages from that work in a footnote or endnote, you can
+put
+<br/>
+<span class="pre-in-pp">
+ .REF
+ .[
+ frye-anat
+ %P 67-8
+ .]
+ .REF
+</span>
+in your input file, and have it show up with the correct page(s).
+</p>
+
+<h4 id="n" class="docs fields">%n &ndash; annotations</h4>
+
+<p>
+Annotations come at the very end of references. Capitalize all
+words that require it, including, for bibliographic references (but not
+for footnotes/endnotes) the first.
+</p>
+
+<div class="rule-short"><hr/></div>
+
+<div class="macro-list-container">
+<h3 id="index-ref" class="macro-list">The bibliography and reference macros</h3>
+<ul class="macro-list">
+ <li><a href="#ref">REF</a> &ndash; begin/end a <kbd>refer</kbd> reference that will go in a footnote or endnote</li>
+ <li><a href="#footnote-refs">FOOTNOTE_REFS</a> &ndash; instruct mom to put REFs in footnotes</li>
+ <li><a href="#endnote-refs">ENDNOTE_REFS</a> &ndash; instruct mom to put REFs in endnotes</li>
+ <li><a href="#indent-refs">INDENT_REFS</a> &ndash; manage indenting of references, per MLA standards</li>
+ <li><a href="#hyphenate-refs">HYPHENATE_REFS</a> &ndash; enable/disable hyphenation of references</li>
+ <li><a href="#bibliography">BIBLIOGRAPHY</a> &ndash; begin a bibliography</li>
+ <li><a href="#bibliography-type">BIBLIOGRAPHY_TYPE</a> &ndash; plain, or numbered list bibliography</li>
+ <li><a href="#biblio-control">Bibliography control macros and defaults</a></li>
+</ul>
+</div>
+
+<!-- -REF- -->
+
+<div class="macro-id-overline">
+<h3 id="ref" class="macro-id">Begin/end a reference that goes in a footnote or endnote</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>REF</b>
+</div>
+
+<p>
+The macro REF tells mom that what follows is
+<kbd>refer</kbd>-specific, a keyword-identified reference to a
+<kbd>refer</kbd> database record. Depending on whether you&#8217;ve issued
+a
+<kbd><a href="#footnote-refs">.FOOTNOTE_REFS</a></kbd>
+or
+<kbd><a href="#endnote-refs">.ENDNOTE_REFS</a></kbd>
+instruction, the reference will be formatted and placed in a
+footnote, or collected for output in the endnotes. Parenthetical
+insertion of references into the text do not require
+<kbd>.REF</kbd> (see
+<a href="#parenthetical">Inserting parenthetical references into the text</a>.)
+</p>
+
+<p>
+Before you use REF, you must create a <kbd>refer</kbd> block
+containing <kbd>refer</kbd> commands (see
+<a href="#rcommands-ref">Required refer commands</a>
+in the tutorial, above).
+</p>
+
+<p>
+REF usage always looks like this:
+<br/>
+<span class="pre-in-pp">
+ .REF
+ .[
+ keyword(s)
+ .]
+ .REF
+</span>
+Notice that REF &#8220;brackets&#8221; the <kbd>refer</kbd> instructions,
+and never takes an argument.
+</p>
+
+<p>
+What REF really is is a convenience. One could, for example, put a
+reference in a footnote by doing
+<br/>
+<span class="pre-in-pp">
+ .FOOTNOTE
+ .[
+ keyword(s)
+ .]
+ .FOOTNOTE OFF
+</span>
+However, if you have a lot of references going into footnotes (or
+endnotes), it&#8217;s much shorter to type <kbd>.REF/.REF</kbd>
+than <kbd>.FOOTNOTE/.FOOTNOTE&nbsp;OFF</kbd>. It also helps you
+distinguish&mdash;visually, in your input file&mdash;between
+footnotes (or endnotes) which are references, and footnotes (or
+endnotes) which are explanatory, or expand on the text.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+If you&#8217;re using REF to put references in footnotes and your
+footnotes need to be indented, you may (indeed, should) pass REF the
+same arguments used to indent footnotes. See
+<a href="docelement.html#footnote">FOOTNOTE</a>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+REF behaves identically to
+<a href="docelement.html#footnote">FOOTNOTE</a>
+or
+<a href="docelement.html#footnote">ENDNOTE</a>,
+so please read the HYPER IMPORTANT NOTE found in the document entry
+for
+<a href="docelement.html#footnote-note">FOOTNOTE</a>
+and/or
+<a href="docelement.html#endnote-note">ENDNOTE</a>
+for instructions on correct entry of text preceding and following REF.
+</p>
+</div>
+
+<!-- -FOOTNOTE_REFS- -->
+
+
+<div class="macro-id-overline">
+<h3 id="footnote-refs" class="macro-id">Instruct mom to put references in footnotes</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FOOTNOTE_REFS</b>
+</div>
+
+<p>
+FOOTNOTE_REFS is an instruction to
+<a href="#ref">REF</a>,
+saying, &#8220;put all subsequent references bracketed by the REF
+macro into footnotes.&#8221; You invoke it by itself, with no
+argument.
+</p>
+
+<p>
+When FOOTNOTE_REFS is in effect, regular footnotes, (i.e.
+those introduced with <kbd>.FOOTNOTE</kbd> and terminated with
+<kbd>.FOOTNOTE OFF</kbd>) continue to behave normally.
+</p>
+
+<p>
+You may switch between FOOTNOTE_REFS and
+<a href="#endnote-refs">ENDNOTE_REFS</a>
+at any time.
+</p>
+
+<p>
+By default, FOOTNOTE_REFS sets the
+<a href="docelement.html#footnote-marker-style">FOOTNOTE_MARKER_STYLE</a>
+to <kbd>NUMBER</kbd> (i.e. superscript numbers). You may change
+change that if you wish by invoking FOOTNOTE_MARKER_STYLE, with the
+argument you want, after FOOTNOTE_REFS.
+</p>
+
+<p>
+If you have a lot of footnote references, and are identifying
+footnotes by line number rather than by markers in the text, you may
+want to enable
+<a href="docelement.html#footnotes-run-on">FOOTNOTES_RUN_ON</a>
+in conjunctions with FOOTNOTE_REFS.
+</p>
+
+<!-- -ENDNOTE_REFS- -->
+
+<div class="macro-id-overline">
+<h3 id="endnote-refs" class="macro-id">Instruct mom to put references in endnotes</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ENDNOTE_REFS</b>
+</div>
+
+<p>
+ENDNOTE_REFS is an instruction to
+<a href="#ref">REF</a>,
+saying, &#8220;add all subsequent references bracketed by the REF
+macro to endnotes.&#8221; You invoke it by itself, with no argument.
+</p>
+
+<p>
+When ENDNOTE_REFS is in effect, mom continues to format regular
+endnotes, (i.e. those introduced with <kbd>.ENDNOTE</kbd> and
+terminated with <kbd>.ENDNOTE&nbsp;OFF</kbd>) in the normal way.
+</p>
+
+<p>
+You may switch between ENDNOTE_REFS and
+<a href="#footnote-refs">FOOTNOTE_REFS</a>
+at any time.
+</p>
+
+<!-- -INDENT_REFS- -->
+
+<div class="macro-id-overline">
+<h3 id="indent-refs" class="macro-id">Manage indenting of references, per MLA standards</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>INDENT_REFS</b> <kbd class="macro-args">FOOTNOTE | ENDNOTE | BIBLIO &lt;indent&gt; </kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;<kbd style="font-style: normal;">&lt;indent&gt;</kbd> requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+MLA-style requires that footnote or endnote references should
+have their first lines indented, whereas bibliographic references
+should have their second and subsequent lines indented. Thus, if
+you invoke INDENT_REFS with a first argument of <kbd>FOOTNOTE</kbd>
+or <kbd>ENDNOTE</kbd>, the value you give to
+<kbd>&lt;indent&gt;</kbd> sets the indent of the first line for
+those types of references; if you invoke it with <kbd>BIBLIO</kbd>,
+the value you give <kbd>&lt;indent&gt;</kbd> sets the indent of
+second and subsequent lines in bibliographies.
+</p>
+
+<p>
+By default, the indent for all three types of references is 1/2-inch
+for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>
+and 2
+<a href="definitions.html#em">ems</a>
+for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>.
+</p>
+
+<p>
+If you&#8217;d like to change the indent for footnote, endnote or
+bibliography references, just invoke <kbd>.INDENT_REFS</kbd> with
+a first argument saying which one you want the indent changed for, and
+a second argument saying what you&#8217;d like the indent to be.
+For example, if you want the second-line indent of references on a
+bibliography page to be 3
+<a href="definitions.html#picas-points">picas</a>,
+<br/>
+<span class="pre-in-pp">
+ .INDENT_REFS BIBLIO 3P
+</span>
+is how you&#8217;d set it up.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="tip">Tip:</span>
+If you are identifying endnotes by line number
+(<a href="docelement.html#endnote-marker-style">ENDNOTE_MARKER_STYLE&nbsp;<kbd>LINE</kbd></a>)
+and have instructed mom to put references bracketed by
+<kbd><a href="#ref">.REF</a></kbd>
+into endnotes (with
+<a href="#endnote-refs">ENDNOTE_REFS</a>),
+you will almost certainly want to adjust the second-line indent for
+references in endnotes, owing to the way mom formats line-numbered
+endnotes. Study the output of such documents to see whether an
+indent adjustment is required.
+</p>
+
+<p>
+The same advice applies to references in endnotes when you have enabled
+<br/>
+<span class="pre-in-pp">
+ <a href="docelement.html#endnote-numbers-align-left">.ENDNOTE_NUMBERS_ALIGN_LEFT</a>
+</span>
+in favour of mom&#8217;s default, which is to align them right.
+Study the output to determine what size of second-line indent works
+best.
+</p>
+
+<p class="tip-bottom">
+<i>(Frankly, endnote references formatted in MLA-style combined with
+left-aligned endnote numbers is a no-win situation, and so is best
+avoided. Wherever you set the indent, you&#8217;ll end up with the
+endnote numbers appearing to hang into the left margin, so you might
+as well have them hang, as is the case with
+<kbd style="font-style: normal;">.ENDNOTE_NUMBERS_ALIGN_RIGHT</kbd>.</i>&nbsp;&nbsp;&ndash;&nbsp;Ed.)
+</p>
+</div>
+
+<!-- -HYPHENATE_REFS- -->
+
+<div class="macro-id-overline">
+<h3 id="hyphenate-refs" class="macro-id">Enable/disable hyphenation of references</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>HYPHENATE_REFS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+If you have hyphenation turned on for a document (see
+<a href="typesetting.html#hy">HY</a>),
+and in most cases you probably do, mom will hyphenate references
+bracketed by the
+<a href="#ref">REF</a>
+macro. Since references typically contain quite a lot of proper
+names, which shouldn&#8217;t be hyphenated, you may want to disable
+hyphenation for references.
+</p>
+
+<p>
+HYPHENATE_REFS is a toggle macro; invoking it by itself will turn
+automatic hyphenation of REF-bracketed references on (the default).
+Invoking it with any other argument (<kbd>OFF</kbd>, <kbd>NO</kbd>,
+<kbd>X</kbd>, etc.) will disable automatic hyphenation for
+references bracketed by REF.
+</p>
+
+<p>
+An alternative to turning reference hyphenation off is to prepend
+to selected proper names in your <kbd>refer</kbd> database
+the groff
+<a href="definitions.html#discretionaryhyphen">discretionary hyphen</a>
+character, <kbd>\%</kbd>. (See
+<a href="#ref-disc-hy">here</a>
+in the tutorial for an example.)
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+References embedded in the body of a document are considered part of
+<a href="definitions.html#running">running text</a>,
+and are hyphenated (or not) according to whether hyphenation is
+turned on or off for running text. Therefore, if you want to
+disable hyphenation for such references, you must do so temporarily,
+with
+<a href="typesetting.html#hy">HY</a>,
+like this:
+<br/>
+<span class="pre-in-pp">
+ .HY OFF
+ .[
+ keyword(s)
+ .]
+ .HY
+</span>
+Alternatively, sprinkle your database fields liberally with
+<kbd>\%</kbd>.
+</p>
+</div>
+
+<!-- -BIBLIOGRAPHY- -->
+
+<div class="macro-id-overline">
+<h3 id="bibliography" class="macro-id">Begin a bibliography</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY</b> <kbd class="marco-args">toggle</kbd>
+</div>
+
+<p>
+To append a bibliography to your document, whether of references
+inserted parenthetically into text or a comprehensive reading list
+derived from a large <kbd>refer</kbd> database, all you need
+do is invoke <kbd>.BIBLIOGRAPHY</kbd>. <kbd>.BIBLIOGRAPHY</kbd>
+breaks to a new page, prints the title (BIBLIOGRAPHY by default, but
+that can be changed), and awaits <kbd>refer</kbd> instructions. How
+to create bibliographies is covered in the tutorial section,
+<a href="#bibliography-from-embedded">Generating a bibliography from parenthetical insertions</a>
+and
+<a href="#bibliography-recipe">Generating a comprehensive bibliography</a>.
+When all the required data has been entered, type
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY OFF
+</span>
+to complete the bibliography.
+</p>
+
+<p>
+See the
+<a href="#biblio-control">Bibliography control macros and defaults</a>
+for macros to tweak, design and control the appearance of
+bibliography pages.
+</p>
+
+<!-- -BIBLIOGRAPHY_TYPE- -->
+
+<div class="macro-id-overline">
+<h3 id="bibliography-type" class="macro-id">Plain, or numbered list bibliography</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_TYPE</b> <kbd class="macro-args">PLAIN | LIST [ &lt;list separator&gt; ] [ &lt;list prefix&gt; ]</kbd>
+</div>
+
+<p>
+Mom offers two styles of bibliography output: plain, or numbered
+list style. With the argument, <kbd>PLAIN</kbd>, bibliography entries are output
+with no enumerators. With the argument, <kbd>LIST</kbd>, each entry is numbered.
+</p>
+
+<p>
+The two optional arguments, <kbd>&lt;list&nbsp;separator&gt;</kbd>
+and <kbd>&lt;list&nbsp;prefix&gt;</kbd> have the same meaning as the
+equivalent arguments to
+<a href="docelement.html#list">LIST</a>
+(i.e. <kbd>&lt;separator&gt;</kbd> and <kbd>&lt;prefix&gt;</kbd>).
+</p>
+
+<p>
+You may enter the BIBLIOGRAPHY_TYPE either before or after
+<kbd>.BIBLIOGRAPHY</kbd>. It must, however, always come before
+any <kbd>refer</kbd> commands. See
+<a href="#bibliography-from-embedded">Generating a bibliography from parenthetical insertions</a>
+and
+<a href="#bibliography-recipe">Generating a comprehensive bibliography</a>.
+</p>
+
+<p>
+Mom&#8217;s default BIBLIOGRAPHY_TYPE is <kbd>PLAIN</kbd>.
+</p>
+
+<!-- -BIBLIO_CONTROL- -->
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="biblio-control" class="docs defaults">Bibliography control macros and defaults</h3>
+
+<p style="margin-top: .25em; margin-left: 9px;">
+Mom processes bibliography pages in a manner very similar to the
+way she processes endnotes pages. The bibliography page control
+macros, therefore, behave in the same way as their endnotes pages
+equivalents.
+</p>
+
+<ol style="margin-top: -.5em; padding-bottom: .5em;">
+ <li><a href="#biblio-general"><b>General bibliography style control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#biblio-style">Base family/font/quad</a></li>
+ <li><a href="#biblio-pt-size">Base point size</a></li>
+ <li><a href="#biblio-lead">Leading</a></li>
+ <li><a href="#biblio-spacing">Adjust the space between bibliography entries</a></li>
+ <li><a href="#singlespace-biblio">Singlespace bibliographies (for TYPEWRITE only)</a></li>
+ <li><a href="#biblio-no-columns">Turning off column mode during bibliography output</a></li>
+ </ul></li>
+ <li><a href="#biblio-pagination"><b>Pagination of bibliographies</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#biblio-pagenum-style">Page numbering style</a></li>
+ <li><a href="#biblio-first-pagenumber">Setting the first page number of bibliographies</a></li>
+ <li><a href="#biblio-no-first-pagenum">Omitting a page number on the first page of bibliographies</a></li>
+ <li><a href="#suspend-pagination">Suspending pagination during bibliography output</a></li>
+ </ul></li>
+ <li><a href="#biblio-header-control"><b>Header/footer control</b></a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#biblio-modify-hdrftr">Modifying what goes in bibliography headers/footers</a></li>
+ <li><a href="#biblio-hdrftr-center">Header/footer centre string when doctype is CHAPTER</a></li>
+ <li><a href="#biblio-allows-headers">Allow headers on bibliography pages</a></li>
+ </ul></li>
+ <li><a href="#biblio-main-title"><b>Bibliography first-page title control</b></a>
+ <ul>
+ <li><a href="#biblio-string">Title string</a></li>
+ <li><a href="#biblio-string-control">Title string control macros and defaults</a></li>
+ <li><a href="#biblio-string-placement">Title string placement</a></li>
+ <li><a href="#biblio-string-underline">Title string underscoring</a></li>
+ <li><a href="#biblio-string-caps">Title string capitalization</a></li>
+ </ul></li>
+</ol>
+</div>
+
+<h4 id="biblio-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. General bibliography page style control</h4>
+
+<h5 id="biblio-style" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Base family/font/quad</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+</p>
+<span class="pre defaults">
+.BIBLIOGRAPHY_FAMILY default = prevailing document family; default is Times Roman
+.BIBLIOGRAPHY_FONT default = roman
+.BIBLIOGRAPHY_QUAD* default = justified
+
+*Note: BIBLIOGRAPHY_QUAD must be set to either L (LEFT) or J (JUSTIFIED);
+ R (RIGHT) and C (CENTER) will not work.
+</span>
+</div>
+
+<!-- -BIBLIO_PT_SIZE- -->
+
+<h5 id="biblio-pt-size" class="docs" style="margin-top: -1.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Base point size</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_PT_SIZE</b> <kbd class="macro-args">&lt;base type size of bibliography&gt;</kbd>
+</div>
+
+<p>
+Unlike most other control macros that deal with size of document
+elements, BIBLIOGRAPHY_PT_SIZE takes as its argument an absolute
+value, relative to nothing. Therefore, the argument represents the
+size of bibliography type in
+<a href="definitions.html#picaspoints">points</a>,
+unless you append an alternative
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_PT_SIZE 12
+</span>
+sets the base point size of type on the bibliography page to 12
+points, whereas
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_PT_SIZE .6i
+</span>
+sets the base point size of type on the bibliography page to 1/6 of an
+inch.
+</p>
+
+<p>
+The type size set with BIBLIOGRAPHY_PT_SIZE is the size of type used
+for the text of the bibliographies, and forms the basis from which
+the point size of other bibliography page elements is calculated.
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+is 12.5 points (the same default size used in the body of the
+document).
+</p>
+
+<!-- -BIBLIO_LEAD- -->
+
+<h5 id="biblio-lead" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Leading</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_LEAD</b> <kbd class="macro-args">&lt;base leading of bibliographies&gt; [ ADJUST ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<p>
+Unlike most other control macros that deal with leading of document
+elements, BIBLIOGRAPHY_LEAD takes as its argument an absolute value,
+relative to nothing. Therefore, the argument represents the
+<a href="definitions.html#leading">leading</a>
+of bibliographies in
+<a href="definitions.html#picaspoints">points</a>
+unless you append an alternative
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_LEAD 14
+</span>
+sets the base leading of type on the bibliography page to 14
+points, whereas
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_LEAD .5i
+</span>
+sets the base leading of type on the bibliography page to 1/2 inch.
+</p>
+
+<p>
+If you want the leading of bibliographies adjusted to fill the page,
+pass BIBLIOGRAPHY_LEAD the optional argument,
+<kbd>ADJUST</kbd>. (See
+<a href="docprocessing.html#doc-lead-adjust">DOC_LEAD_ADJUST</a>
+for an explanation of leading adjustment.)
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+is the prevailing document lead (16 by default), adjusted.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Even if you give mom a <kbd>.DOC_LEAD_ADJUST&nbsp;OFF</kbd> command,
+she will still, by default, adjust bibliography leading. You
+<i>must</i> enter <kbd>BIBLIOGRAPHY_LEAD&nbsp;&lt;lead&gt;</kbd>
+with no <kbd>ADJUST</kbd> argument to disable this default
+behaviour.
+</p>
+</div>
+
+<!-- -BIBLIO_SPACING- -->
+
+<h5 id="biblio-spacing" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Adjust the space between bibliography entries</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_SPACING</b> <kbd class="macro-args">&lt;amount of space&gt; </kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, mom inserts no space between bibliography entries.
+If you&#8217;d prefer she add some, instruct her to do so with
+BIBLIOGRAPHY_SPACING. Say, for example, you want a half a linespace
+between entries,
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_SPACING .5v
+</span>
+would do the trick.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+As with endnotes pages, inserting space between bibliography entries
+will most likely result in hanging bottom margins.
+</p>
+</div>
+
+<!-- -SINGLESPACE_BIBLIO- -->
+
+<h5 id="singlespace-biblio" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Singlespace bibliography (TYPEWRITE only)</h5>
+
+<div class="box-macro-args">
+Macro: <b>SINGLESPACE_BIBLIOGRAPHY</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+If your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd> and you use TYPEWRITE&#8217;s default
+double-spacing, bibliographies are double-spaced. If your document
+is single-spaced, bibliographies are single-spaced.
+</p>
+
+<p>
+If, for some reason, you&#8217;d prefer that bibliographies be
+single-spaced in an otherwise double-spaced document (including
+double-spaced
+<a href="rectoverso.html#collate">collated</a>
+documents), invoke <kbd>.SINGLESPACE_BIBLIOGRAPHY</kbd> with no
+argument.
+</p>
+
+<!-- -BIBLIO_NO_COLUMNS- -->
+
+<h5 id="biblio-no-columns" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Turning off column mode during bibliography output</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_NO_COLUMNS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+By default, if your document is set in
+<a href="docprocessing.html#columns">columns</a>,
+mom sets the bibliographies in columns, too. However, if your
+document is set in columns and you&#8217;d like the bibliographies
+not to be, just invoke <kbd>.BIBLIOGRAPHY_NO_COLUMNS</kbd> with
+no argument. The bibliography pages will be set to the full page
+measure of your document.
+</p>
+
+<p>
+If you output bibliographies at the end of each document in a
+<a href="rectoverso.html#collate">collated</a>
+document set in columns, column mode will automatically be
+reinstated for each document, even with BIBLIOGRAPHY_NO_COLUMNS
+turned on. In such circumstances, you must re-enable
+BIBLIOGRAPHY_NO_COLUMNS for each separate collated document.
+</p>
+
+<h4 id="biblio-pagination" class="docs" style="margin-bottom: .5em;">2. Pagination of bibliographies</h4>
+
+<!-- -BIBLIO_PAGENUM_STYLE- -->
+
+<h5 id="biblio-pagenum-style" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Page numbering style</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_PAGENUM_STYLE</b> <kbd class="macro-args">DIGIT | ROMAN | roman | ALPHA | alpha</kbd>
+</div>
+
+<p>
+Use this macro to set the page numbering style of bibliography
+pages. The arguments are identical to those for
+<a href="headfootpage.html#pagenum-style">PAGENUM_STYLE</a>.
+The default is <kbd>digit</kbd>. You may want to change it to, say,
+<kbd>alpha</kbd>, which you would do with
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_PAGENUM_STYLE alpha
+</span>
+</p>
+
+<!-- -BIBLIO_FIRST_PAGENUMBER- -->
+
+<h5 id="biblio-first-pagenumber" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Setting the first page number of bibliographies</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBILOGRAPHY_FIRST_PAGENUMBER</b> <kbd class="macro-args">&lt;page # that appears on page 1 of bibliographies&gt;</kbd>
+</div>
+
+<p>
+Use this macro with caution. If the bibliography for a
+<a href="rectoverso.html#collate">collated</a>
+document is to be output at the document&#8217;s end,
+BIBLIOGRAPHY_FIRST_PAGENUMBER tells mom what page number to put on
+the first page of the bibliography.
+</p>
+
+<p>
+However, if you&#8217;re outputting a bibliography at the end of each
+section (chapter, article, etc) of a collated document,
+you have to reset every section&#8217;s first page number after
+<a href="rectoverso.html#collate">COLLATE</a>
+and before
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<!-- -BIBLIO_NO_FIRST_PAGENUN- -->
+
+<h5 id="biblio-no-first-pagenum" class="docs" style="margin-top: -.25em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Omitting a page number on the first page of bibliographies</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_NO_FIRST_PAGENUM</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+This macro is for use only if
+<a href="headfootpage.html#footers">FOOTERS</a>
+are on. It tells
+<kbd><a href="#bibliography">BIBLIOGRAPHY</a></kbd>
+not to print a page number on the first bibliography page.
+Mom&#8217;s default is to print the page number.
+</p>
+
+<!-- -SUSPEND_PAGINATION- -->
+
+<h5 id="suspend-pagination" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Suspending pagination during bibliography output</h5>
+
+<div class="box-macro-args" style="margin-bottom: 1em;">
+Macro: <b>SUSPEND_PAGINATION</b>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>RESTORE_PAGINATION</b>
+</div>
+
+<p>
+SUSPEND_PAGINATION doesn&#8217;t take an argument. Invoked
+immediately prior to
+<kbd><a href="#bibliography">BIBLIOGRAPHY</a></kbd>,
+it turns off pagination for the duration of the bibliography. Mom
+continues, however to increment page numbers silently.
+</p>
+
+<p>
+To restore normal document pagination after bibliographies, invoke
+<kbd>.RESTORE_PAGINATION</kbd> (again, with no argument) immediately
+after you&#8217;ve finished with your bibliography.
+</p>
+
+<h4 id="biblio-header-control" class="docs" style="margin-bottom: .5em;">3. Header/footer control</h4>
+
+<h5 id="biblio-modify-hdrftr" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Modifying what goes in the bibliography header/footer</h5>
+
+<p style="margin-top: 0">
+If you wish to modify what appears in the header/footer that appears
+on bibliography pages, make the changes before you invoke
+<a href="#bibliography"><kbd>.BIBLIOGRAPHY</kbd></a>,
+not afterwards.
+</p>
+
+<p>
+Except in the case of
+<a href="docprocessing.html#doctype">DOCTYPE <kbd>CHAPTER</kbd></a>,
+mom prints the same header or footer used throughout the document
+on bibliography pages. Chapters get treated differently in that,
+by default, mom does not print the header/footer centre string
+(normally the chapter number or chapter title.) In most cases, this
+is what you want. However, should you not want mom to remove the
+centre string from the bibliography pages&#8217; headers/footers, or
+you would like her to add one in cases where there hasn&#8217;t been
+one before (e.g. DOCTYPE DEFAULT) invoke
+<kbd><a href="#bibliography-hdrftr-center">.BIBLIOGRAPHY_HEADER_CENTER</a></kbd>
+with no argument.
+</p>
+
+<p>
+An important change you may want to make is to put the word
+&#8220;Bibliography&#8221; in the header/footer centre position. To
+do so, invoke
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .BIBLIOGRAPHY_HEADER_CENTER
+ .HEADER_CENTER "Bibliography"
+</span>
+or
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ .BIBLIOGRAPHY_FOOTER_CENTER
+ .FOOTER_CENTER "Bibliography"
+</span>
+prior to invoking <kbd>.BIBLIOGRAPHY</kbd>.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span>
+Unless you have a running centre string in your headers or footers, you must invoke
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ <a href="#endnotes-hdrftr-center">.BIBLIOGRAPHY_HEADER_CENTER</a>
+</span>
+or
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ <a href="#endnotes-hdrftr-center">.BIBLIOGRAPHY_FOOTER_CENTER</a>
+</span>
+in order for the centre string to appear, as demonstrated above.
+</p>
+</div>
+
+<h5 id="biblio-hdrftr-center" class="docs" style="margin-top: 0; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Header/footer centre string when doctype is CHAPTER</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_HEADER_CENTER</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+If your
+<a href="docprocessing.html#doctype">DOCTYPE</a>
+is <kbd>CHAPTER</kbd> and you want mom to include a centre
+string in the headers/footers that appear on bibliography
+pages, or if you do not have a running header/footer
+centre string in the body of the document, invoke
+<kbd>.BIBLIOGRAPHY_HEADER_CENTER</kbd> (or
+<kbd>.BIBLIOGRAPHY_FOOTER_CENTER</kbd>) with no argument before
+defining the centre string . Mom&#8217;s default is NOT to print the
+centre string.
+</p>
+
+<p>
+If, for some reason, having enabled the header/footer centre string
+on bibliography pages, you wish to disable it, invoke the same macro
+with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>Q</kbd>,
+<kbd>X</kbd>...).
+</p>
+
+<h5 id="biblio-allows-headers" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Allow headers on bibliography pages</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_ALLOWS_HEADERS</b> <kbd class="macro-args">&lt;none&gt; | ALL</kbd>
+</div>
+
+<p>
+By default, if HEADERS are on, mom prints page headers on all
+bibliography pages except the first. If you don&#8217;t want her to
+print headers on bibliography pages, do
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_ALLOWS_HEADERS OFF
+</span>
+If you want headers on every page including the first, do
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_ALLOWS_HEADERS ALL
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If FOOTERS are on, mom prints footers on every bibliography page.
+This is a style convention. In mom, there is no such beast as
+BIBLIOGRAPHY_ALLOWS_FOOTERS&nbsp;OFF.
+</p>
+</div>
+
+<h4 id="biblio-main-title" class="docs">4. Bibliography first-page title control</h4>
+
+<!-- -BIBLIO_STRING- -->
+
+<h5 id="biblio-string" class="docs" style="margin-top: 1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Title string</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_STRING</b> <kbd class="macro-args">&quot;&lt;title to print at the top of bibliography pages&gt;&quot;</kbd>
+</div>
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>BIBLIOGRAPHY_HEADER</b>
+</p>
+
+<p>
+By default, mom prints the word &#8220;BIBLIOGRAPHY&#8221; as a title
+at the top of the first page of a bibliography. If you want her to
+print something else, invoke <kbd>.BIBLIOGRAPHY_STRING</kbd> with
+the title you want, surrounded by double-quotes.
+</p>
+
+<p>
+If you don&#8217;t want a title at the top of the first bibliography
+page, invoke <kbd>.BIBLIOGRAPHY_STRING</kbd> with a blank argument
+(either two double-quotes side by
+side&mdash;<kbd>&quot;&quot;</kbd>&mdash;or no argument at all).
+</p>
+
+<!-- -BIBLIO_STRING_CONTROL- -->
+
+<h5 id="biblio-string-control" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Title string control macros and defaults</h5>
+
+<div class="defaults-container" style="padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="#control-macro-args">Arguments to the control macros</a>.
+</p>
+<span class="pre defaults">
+.BIBLIOGRAPHY_STRING_FAMILY default = prevailing document family; default is Times Roman
+.BIBLIOGRAPHY_STRING_FONT default = bold
+.BIBLIOGRAPHY_STRING_SIZE* default = +1
+.BIBLIOGRAPHY_STRING_QUAD default = centred
+
+*Relative to the size of the bibliography text (set with BIBLIOGRAPHY_PT_SIZE)
+</span>
+</div>
+
+<!-- -BIBLIOGRAPHY_STRING_ADVANCE- -->
+
+<h5 id="biblio-string-placement" class="docs" style="margin-top: -1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Title string placement</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_STRING_ADVANCE</b> <kbd class="macro-args">&lt;distance from top of page&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+By default, mom places the title (the docheader, as it were) of
+bibliographies (typically "BIBLIOGRAPHY") on the same
+<a href="definitions.html#baseline">baseline</a>
+that is used for the start of
+<a href="definitions.html#running">running text</a>.
+If you&#8217;d prefer another location, higher or lower on the page
+(thereby also raising or lowering the starting position of the
+bibliography itself), invoke <kbd>.BIBLIOGRAPHY_STRING_ADVANCE</kbd>
+with an argument stating the distance from the top edge of the page
+at which you&#8217;d like the title placed.
+</p>
+
+<p>
+The argument requires a unit of measure, so if you&#8217;d like the title
+to appear 1-1/2 inches from the top edge of the page, you&#8217;d tell
+mom about it like this:
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_STRING_ADVANCE 1.5i
+</span>
+</p>
+
+<!-- -BIBLIO_STRING_UNDERLINE- -->
+
+<h5 id="biblio-string-underline" class="docs" style="margin-top: -1em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Title string underscoring</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_STRING_UNDERSCORE</b> <kbd class="macro-args">[DOUBLE] [&lt;underline weight&gt; [&lt;underline gap&gt; [&lt;distance between double rules]]] | &lt;none&gt; | &lt;anything&gt;</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>BIBLIOGRAPHY_STRING_UNDERLINE</b>
+</p>
+
+<p class="requires">
+&bull;&nbsp;The argument
+<span style="font-style: normal"><kbd>&lt;underscore weight&gt;</kbd></span>
+must not have the
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<span style="font-style: normal;"><kbd>p</kbd></span>, appended to it
+</p>
+
+<p>
+Invoked without an argument,
+<kbd>.BIBLIOGRAPHY_STRING_UNDERSCORE</kbd> will place a single rule
+underneath the bibliography&#8217;s first-page title. Invoked with the
+argument, <kbd>DOUBLE</kbd>, BIBLIOGRAPHY_STRING_UNDERSCORE will
+double-underscore the title. Invoked with any other non-numeric
+argument, (e.g. <kbd>OFF</kbd>, <kbd>NO</kbd>, <kbd>X</kbd>, etc.)
+the macro disables underlining of the title.
+</p>
+
+<p>
+In addition, you can use BIBLIOGRAPHY_STRING_UNDERSCORE to control
+the weight of the underscore rule(s), the gap between the title and
+the underscore, and, in the case of double-underscores, the distance
+between the two rules.
+</p>
+
+<p>
+Some examples:
+<br/>
+<span class="pre-in-pp">
+ .BIBLIOGRAPHY_STRING_UNDERLINE 1
+ - turn underlining on; set the rule weight to 1 point
+
+ .BIBLIOGRAPHY_STRING_UNDERLINE 1 3p
+ - turn underlining on; set the rule weight to 1 point; set
+ the gap between the string and the underline to 3 points
+
+ .BIBLIOGRAPHY_STRING_UNDERLINE DOUBLE .75 3p
+ - turn double-underlining on; set the rule weight to 3/4 of
+ a point; set the gap between the string and the upper
+ underline to 3 points; leave the gap between the upper
+ and the lower underline at the default
+
+ .BIBLIOGRAPHY_STRING_UNDERLINE DOUBLE 1.5 1.5p 1.5p
+ - turn double-underlining on; set the rule weight to 1-1/2
+ points; set the gap between the string and the upper
+ underline to 1-1/2 points; set the gap between the upper
+ and the lower underline to 1-1/2 points
+</span>
+Note, from the above, that in all instances, underscoring (single or
+double) is enabled whenever BIBLIOGRAPHY_STRING_UNDERSCORE is used
+in this way.
+</p>
+
+<p>
+By default, mom double-underscores the title if your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd>.
+</p>
+
+<!-- -BIBLIO_STRING_CAPS- -->
+
+<h5 id="biblio-string-caps" class="docs" style="margin-top: -.5em; margin-bottom: .5em; margin-left: .5em;">&bull;&nbsp;Title string capitalization</h5>
+
+<div class="box-macro-args">
+Macro: <b>BIBLIOGRAPHY_STRING_CAPS</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+Invoked by itself, <kbd>.BIBLIOGRAPHY_STRING_CAPS</kbd> will
+automatically capitalize the bibliography first-page title. Invoked
+with any other argument, the macro disables automatic capitalization
+of the title.
+</p>
+
+<p>
+If you&#8217;re generating a table of contents, you may want the
+bibliography first-page title to be in caps, but the toc entry in
+caps/lower case. If the argument to
+<kbd><a href="#bibliography-string">BIBLIOGRAPHY_STRING</a></kbd>
+is in caps/lower case and BIBLIOGRAPHY_STRING_CAPS is
+on, this is exactly what will happen.
+</p>
+
+<p>
+Mom&#8217;s default is to capitalize the bibliography first-page
+title.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="letters.html">Next: Writing letters</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/reserved.html b/contrib/mom/momdoc/reserved.html
new file mode 100644
index 0000000..4cdab3b
--- /dev/null
+++ b/contrib/mom/momdoc/reserved.html
@@ -0,0 +1,2736 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Reserved words (macros, strings, registers)</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page" style="width: 800px;">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+</tr>
+</table>
+
+<h1 id="reserved-words" class="docs">List of reserved words (macros, strings, registers)</h1>
+
+<p>
+The following is a list of reserved words used by mom. Before
+changing the name of any macro or document element tag with
+<a href="goodies.html#ALIAS">ALIAS</a>,
+I strongly recommend doing a search of this page for your proposed
+new name. If you find it in the left hand column, choose something
+else instead.
+</p>
+
+<p>
+Anyone interested in hacking/patching mom&#8217;s macro file
+(om.tmac) will also find this list useful since it lists most of
+the macros, strings, diversions, aliases, and number registers
+mom uses, along with brief descriptions of their functions.
+</p>
+
+<p>
+The list is not exhaustive. PDF-related macros, strings, registers,
+and diversions, as well as those associated with preprocessor
+support and &#8220;Lists of&#8221; are not included.
+</p>
+
+<div class="rule-medium"><hr/></div>
+
+<span class="pre" style="scroll: none;">
+<span style="display: block; text-decoration: underline;">TYPESETTING</span>
+<span style="display: block; margin-top: -1em;">+++MACROS+++</span>
+<span style="display: block; margin-top: -1em; margin-bottom: -1em;">*Page layout</span>
+ PAGELENGTH Page width
+ PAGE Page width/length; left, right, top, bottom margins
+ PAGEWIDTH Page width
+ PAPER Letter, legal, or A4
+ B_MARGIN Space to leave at page bottom
+ L_MARGIN Page offset
+ R_MARGIN Line length as a function of
+ pagewidth minus pageoffset minus rightmargin
+ T_MARGIN Advance lead from page top
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Page control</span>
+ DO_B_MARGIN Margin at bottom of page; trap-invoked
+ DO_T_MARGIN Margin at top of page; trap-invoked
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Style</span>
+ COLOR Change color of text to predefined value
+ CONDENSE Set percentage of pseudo-condense (alias of
+ CONDENSE_OR_EXTEND)
+ EXTEND Set percentage of pseudo-extend (alias of
+ CONDENSE_OR_EXTEND)
+ FAMILY Family
+ FT Font
+ FALLBACK_FONT Font to use whenever FAMILY or FT errors occur
+ LL Line length
+ LS Leading (.vs)
+ NEWCOLOR Define a text color
+ PT_SIZE Point size
+ SETBOLDER Set degree of emboldening (pseudo-bold) in units
+ SETSLANT Set degree of pseudo-italic
+ XCOLOR Initialize a color from rgb.txt
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Autolead</span>
+ AUTOLEAD Always lead n points more than .PT_SIZE
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Quad, fill, justification</span>
+ JUSTIFY Justified text
+ QUAD Filled text, left, right, or centre
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Quad, no-fill</span>
+ CENTER Line-for-line, non-filled text, centre
+ LEFT Line-for-line, non-filled text, left
+ RIGHT Line-for-line, non-filled text, right
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Hyphenation</span>
+ HY Turn hyphenation on/off, or set LINES, MARGIN, SPACE
+ HY_SET Set LINES, MARGIN, SPACE in a single command
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Advanced style</span>
+ KERN Turn automatic kerning on or off
+ LIGATURES Turn ligatures on or off
+ SS Sentence space control
+ WS Word space control
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Line breaks</span>
+ BR Alias of br
+ EL Breaks line but doesn't advance
+ SPACE Alias of sp
+ SPREAD Alias of brp
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Vertical motions</span>
+ ALD Advance lead
+ RLD Reverse lead
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Indents</span>
+ HI Indent hang
+ IB Indent both
+ IBX Indent both off
+ IL Indent left
+ ILX Indent left off
+ IQ Indents off
+ IR Indent right
+ IRX Indent right off
+ IX Indents off -- deprecated
+ TI Indent temporary
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Tabs</span>
+ ST String tab
+ TAB_SET Tab Set
+ TN Tab Next
+ TQ Tab Quit
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Columnar tabs</span>
+ MCO Turn on multi-column mode
+ MCR Return to top of column
+ MCX Turn off multi-column mode
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Underscore</span>
+ UNDERSCORE Underscores words or phrases
+ UNDERSCORE2 Double underscores words or phrases
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Underline</span>
+ UNDERLINE Underlines whole passages (Courier only)
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Smart Quotes</span>
+ SMARTQUOTES Turns smart quotes on or off
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Graphical objects</span>
+ RULE_WEIGHT Weight of rules drawn with \*[RULE]
+ DBX Draw box
+ DCL Draw circle (ellipse)
+ DRH Draw horizontal rule
+ DRV Draw vertical rule
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Misc + Support</span>
+ BR_AT_LINE_KERN Deposit a break before RW and WE
+ CAPS Convert u/lc to UC
+ COMMENT Don't print lines till COMMENT OFF (alias of SILENT)
+ DROPCAP_ADJUST Points (poss. fractional) to add/subtract
+ from drop caps
+ DROPCAP Create drop cap
+ DROPCAP_FAMILY Drop cap family
+ DROPCAP_FONT Drop cap font
+ DROPCAP_GUTTER Drop cap gutter
+ DROPCAP_OFF Support only; restores .in if there was one
+ ESC_CHAR Alias for .ec
+ EW Extra white -- loosen overall line kern
+ (character spacing)
+ LEADER_CHARACTER Sets leader character
+ PAD Insert padding spaces at marked places
+ PADMARKER Sets character to use instead of # in PAD
+ PRINT Simply prints args passed to it; keeps my code
+ indented nicely
+ RW Reduce white -- tighten overall line kern
+ (character spacing)
+ SILENT Don't print lines till SILENT OFF
+ SIZESPECS Get cap-height, x-height and descender depth for
+ current point size
+ SUPERSCRIPT_RAISE_AMOUNT Change default vertical displacement of superscripts
+ TRAP Turn traps off or on
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++DIVERSIONS+++</span>
+
+ NO_FLASH Diverts output of SILENT or COMMENT so they don't print
+ NULL Diverts SIZESPECS in PRINT_HDRFTR so it doesn't screw up
+ FOOTER and FOOTNOTE processing when FOOTERS are on
+ PAD_STRING Diverts $PAD_STRING for processing
+ TYPESIZE Diverts SIZESPECS routine so it doesn't print
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++NUMBER REGISTERS+++</span>
+
+ #ABORT_FT_ERRORS Abort on FT errors? (boolean)
+ #ALD ALD value
+ #ARGS_TO_LIST Tells LIST whether LIST was invoked with a valid
+ arg; controls LIST OFF processing
+ #ARGS_TO_SQ Tells SMARTQUOTES whether it was invoked with a
+ valid arg; controls SMARTQUOTES OFF
+ processing
+ #AUTOLEAD_FACTOR Using FACTOR arg to AUTOLEAD? (boolean)
+ #AUTO_LEAD Using autolead? (boolean)
+ #AUTOLEAD_VALUE Auto leading value
+ #BL_INDENT Value of left indent when IB
+ #B_MARGIN Bottom margin
+ #B_MARGIN_SET Has a bottom margin been set with B_MARGIN? (boolean)
+ #BOLDER_UNITS Number of units to embolden type
+ #BR_AT_LINE_KERN Break when EW/RW are invoked? (boolean)
+ #BR_INDENT Value of right indent when IB
+ #BX_SOLID Draw box filled? (boolean)
+ c column mark
+ #CAPS_ON Is CAPS enabled? (boolean)
+ #CL_SOLID Draw circle filled? (boolean)
+ #CODE_FAM Use different family from Courier for CODE? (boolean)
+ #CODE_FT Use different font from roman for CODE? (boolean)
+ #CONDENSE Are we in pseudo-condense mode? (boolean)
+ #CONDENSE_WAS_ON For restoring \*[COND] in DROPCAP
+ #COND_WIDTH Width of pseudo-condensed type
+ (pointsize x $COND_PERCENT)
+ #CURRENT_HY \\n[.hy] when ref*normal-print called
+ #CURRENT_L_LENGTH Current line length at first invocation of LIST;
+ like #ORIG_L_LENGTH
+ #CURRENT_TAB Current tab number
+ #DC_COLOR Colorize dropcap? (boolean)
+ #DC_GUT Width of dropcap gutter
+ #DC_HEIGHT Dropcap height
+ #DC_LINES Number of lines for dropcap
+ #DEGREES # of degrees slant for pseudo-italic
+ #ENUMERATOR&lt;n&gt; Number register enumerator for depth &lt;n&gt; in lists
+ #EW Is EW in effect? (boolean)
+ #EXT_WIDTH Width of pseudo-extended type
+ (pointsize x $EXT_PERCENT)
+ #EXTEND Are we in pseudo-extend mode? (boolean)
+ #EXTEND_WAS_ON For restoring \*[EXT] in DROPCAP
+ #FILL_MODE Which fill mode are we in? ( \n[.j] )
+ #FILLED Are we in a fill mode? (boolean)
+ #H_INDENT Value of left indent when IH
+ #HL_INDENT&lt;n&gt; Hanging indent for LIST depth &lt;n&gt;
+ #HL_INDENT Value of the hang when IH
+ #HY_SET Did we manually set hyphenation parameters?
+ (boolean)
+ #HYPHEN_ADJ Amount by which to raise hyphens surrounding page
+ numbers
+ #HYPHENATE Hyphenation on? (boolean)
+ #IN_ITEM Are we in a list item? (boolean)
+ #IN_ITEM_L_INDENT Value passed to IL if #IN_ITEM=1
+ #IN_TAB Are we in a tab? (boolean)
+ Set in macro TAB; used in ST to determine
+ whether to add #ST_OFFSET to #ST&lt;n&gt;_OFFSET
+ #INDENT_ACTIVE Indicates whether an indent is active (boolean)
+ #INDENT_BOTH_ACTIVE Toggle
+ #INDENT_LEFT_ACTIVE Toggle
+ #INDENT_RIGHT_ACTIVE Toggle
+ #INDENT_STYLE_BOTH Indicates IB when #INDENT_ACTIVE=1 (boolean)
+ #INDENT_STYLE_HANG Indicates IH when #INDENT_ACTIVE=1 (boolean)
+ #INDENT_STYLE_LEFT Indicates IL when #INDENT_ACTIVE=1 (boolean)
+ #INDENT_STYLE_RIGHT Indicates IR when #INDENT_ACTIVE=1 (boolean)
+ #INDENT_STYLE_TEMP Indicates IT when #INDENT_ACTIVE=1 (boolean)
+ #IGNORE_COLUMNS Don't set document in columns (boolean)
+ #IN_DIVER Are we in a diversion? (boolean)
+ #IX_WARN Toggles to 1 the first time IX is user-invoked
+ #JUSTIFY In EW/RW, when BR_AT_LINE_KERN, whether to
+ break or break-spread preceding line (boolean)
+ #KERN Kern on? (boolean)
+ #KERN_UNIT Size of kern units (1/36 of current point size)
+ #KERN_WAS_ON Indicates kerning was on; used in list ITEMs (boolean)
+ #LAST_TAB Last tab number set in multi-columns
+ #LAST_FN_COUNT_FOR_COLS #FN_COUNT_FOR_COLS at top of HEADER
+ #LEAD Leading (alias)
+ #LIGATURES Ligatures on? (boolean)
+ #LIST_INDENT&lt;n&gt; Left indent of list &lt;n&gt;
+ #L_INDENT Value of left indent
+ #L_LENGTH Line length
+ #L_MARGIN Page offset if set with LMARGIN;
+ if .po used, \n[.o] returns page offset
+ #LOOP In EPIGRAPH, #LOOP=1 if a while loop executes;
+ otherwise 0. Elsewhere, an arbitrary incrementing
+ register used to read in strings
+ #MCX_ALD Amount to advance past end of longest column
+ #NEWPAGE Was NEWPAGE just invoked? (boolean)
+ #NEXT_DEPTH_BACK Next list level back in lists
+ #NEXT_TAB Current tab number + 1 (used in TN)
+ #NEXT_TAB Next tab in an n+1 sequence
+ #NOFILL Are we in a nofill mode? (boolean)
+ #NOFILL_MODE Nofill mode
+ #OLD_LEAD Lead in effect prior to changing it with .vs
+ in .LS or .AUTOLEAD
+ #OPEN_CLOSE Manipulates character " to print `` or ''
+ #ORIGINAL_L_LENGTH Used in LIST for IB processing; holds \n[.l]
+ p Output line horiz position at end of
+ $PAD_STRING
+ #PAD_COUNT Number of times # was included in arg to PAD
+ #PAD_LIST_DIGITS Pad list digits to the left? (boolean)
+ #PAD_SPACE Size of padding space
+ #PAGE_LENGTH Page length (alias)
+ #PAGE_WIDTH Page width
+ #PP_ACTIVE Are we in the context of a para? (boolean)
+ #PRINT_FOOTER_ON_PAGE_1 (boolean)
+ #PSEUDO_FILL Signals that LEFT, RIGHT or CENTER is
+ in effect (booleand off, i.e. to 0, when
+ QUAD &lt;arg&gt; or JUSTIFY is called)
+ #PT_SIZE Point size (fractional) in units (alias)
+ #Q_AT_TOP Does a quote start at the top of a new page?
+ (boolean)
+ #QUAD In autoquad mode? (boolean)
+ #QUIT Tells LIST whether to exit lists completely
+ (boolean)
+ #REMOVE Used in LIST OFF cleanup
+ #RESTORE_FILL Used to restore \[.u] state if temporarily changed
+ #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? (boolean)
+ #RESTORE_PT_SIZE Stores current point size (in units) prior
+ to underscore
+ #R_INDENT Value of right indent
+ #R_MARGIN Right margin
+ #RESTORE_PREV_INDENT Tells LIST OFF what kind of indent was active
+ prior to first invocation of LIST
+ #RESTORE_TRAP Did we have to disable traps? Used in
+ graphical object macros (boolean)
+ #RESTORE_SQ Instructs SMARTQUOTES to restore smartquotes if
+ SMARTQUOTES invoked without an arg
+ #RLD RLD value
+ #RULE_WEIGHT Weight given to RULE_WEIGHT
+ #RULE_WEIGHT_ADJ RULE_WEIGHT/2
+ #RW Is RW in effect? (boolean)
+ #SHIFT_LIST&lt;n&gt; Value to add to #LIST_INDENT&lt;n&gt; for shifted lists
+ #SILENT Is silent on? (boolean)
+ #SIZE_FOR_PAD Used to ensure that the size in effect prior
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
+ #SLANT_ON Is SLANT on? (boolean)
+ #SPACE_TO_END Whitespace at end of string passed to PAD
+ #SQ_WAS_ON Instructs CODE OFF to restore smartquotes if they
+ were on prior to CODE
+ #ST&lt;n&gt;_LENGTH Length of ST&lt;n&gt;; calculated during ST &lt;n&gt;
+ #ST&lt;n&gt;_MARK Page offset of autotab &lt;n&gt; at ST&lt;n&gt;X
+ #ST_NUM Incrementing counter for autotab identification
+ #ST&lt;n&gt;_OFFSET Offset (from current tab) to add to #ST&lt;n&gt;_OFFSET
+ when calculating string indents set from within
+ tabs
+ #ST&lt;n&gt;_OFFSET Indent of autotab &lt;n&gt; (page offset)
+ #STORED_L_INDENT Current left indent at first invocation of LIST
+ #STORED_R_INDENT Current right indent at first invocation of LIST
+ #STORED_BL_INDENT Current "both, left" indent at first invocation
+ of LIST
+ #STORED_BR_INDENT Current "both, right" indent at first invocation
+ of LIST
+ #STORED_HL_INDENT Current hanging indent at first invocation
+ of LIST
+ #STORED_T_INDENT Current temporary indent at first invocation
+ of LIST
+ #STR_LENGTH Holds string length derived from .length request
+ tbl Are we in a tbl? (boolean)
+ #T_INDENT Value of temporary indent
+ #T_MARGIN Top margin
+ #TAB_ACTIVE Are we in a tab? (boolean)
+ #TAB_NUMBER Tab number given to TAB_SET
+ #TAB_LENGTH Tab length given to TAB_SET
+ #TAB_OFFSET Tab indent given to TAB_SET
+ #TEXT_WIDTH Width of string to underscore
+ #TN Was TN (or \*[T+] called? (boolean)
+ #TOP Set to 1 in T_MARGIN, DO_T_MARGIN and ALD; tells
+ the first LS or AUTOLEAD on a page to maintain
+ the baseline position prior to the LS call
+ #TOP_BASELINE_ADJ Amount by which to adjust the baseline position
+ of the first line on the page if an LS or AUTOLEAD
+ request differs from the lead current at the end of
+ the previous page
+ #TOTAL_LISTS Total number of lists in a nest
+ #UNDERSCORE_WEIGHT Weight of underscores
+ #UNDERSCORE_WEIGHT_ADJ UNDERSCORE_WEIGHT/2
+ #USER_SET_L_LENGTH Did user invoke LL? (boolean)
+ #USER_SET_TITLE_ITEM Did user invoke TOC_TITLE_ENTRY?
+ #WEIGHT Weight given to #RULE_WEIGHT
+ #WEIGHT_ADJ RULE_WEIGHT/2
+ u Horiz position of start of underscore
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++STRINGS+++</span>
+
+ $ARG String holding substrings derived from .substring
+ request
+ $COND_PERCENT Percentage by which to pseudo-condense type
+ $COLOR_SCHEME Color scheme used in NEWCOLOR
+ $&lt;colorname&gt;_FILL XCOLOR "alias" with _FILL attached; used to determine if
+ the alias exists when the alias is passed to DBX SOLID
+ or DCL SOLID
+ $CURRENT_QUAD Restores current quad value in RULE
+ $CURRENT_TAB Current tab number
+ $DC_ADJUST +|- # of points to subtract from dropcap
+ $DC_FAM Drop cap family
+ $DC_FT Drop cap font
+ $DROPCAP The dropcap letter
+ $ENUMERATOR&lt;n&gt; String enumerator for depth &lt;n&gt; in lists
+ $ENUMERATOR_TYPE&lt;n&gt; Type of enumerator used in LIST&lt;n&gt;
+ $EW Value passed to EW
+ $EXT_PERCENT Percentage by which to pseudo-extend type
+ $FAMILY Family
+ $FAMILY_FOR_PAD Used to ensure that the family in effect prior
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
+ $FONT Font
+ $FONT_FOR_PAD Used to ensure that the font in effect prior
+ to PAD is restored at the start of every
+ iteration of $PAD_STRING
+ $PAD_MARKER Character to mark off padding in PAD
+ $PAD_STRING Arg passed to PAD
+ $PREFIX&lt;n&gt; Prefix for enumerator of LIST&lt;n&gt;
+ $QUAD_VALUE Quad value (left, right, centre, justify)
+ $QUOTE0 Open quotation marks
+ $QUOTE1 Close quotation marks
+ $RESTORE_COND Restores the pseudo-condense value in effect
+ prior to DROPCAP
+ $RESTORE_EXT Restores the pseudo-extend value in effect
+ prior to DROPCAP
+ $RESTORE_FAM Used to restore the family in effect
+ prior to DROPCAP
+ $RESTORE_FT Used to restore the font/fontstyle in effect
+ prior to DROPCAP
+ $RESTORE_PT_SIZE Used to restore the point size of normal
+ running text after a dropcap
+ $RESTORE_QUAD_VALUE Quad value for use in restoring L, R, C, J
+ (after tabs)
+ $RESTORE_SQ The smartquoting string last passed to SMARTQUOTES
+ $RULE_GAP Distance between underscore rules
+ $RW Value passed to RW
+ $SAVED_STYLE Current style, if there is one (used in FAMILY)
+ $SAVED_UNDERSCORE_GAP Temporarily holds string in $UNDERSCORE_GAP
+ $SEPARATOR&lt;n&gt; Separator for depth &lt;n&gt; in lists
+ $SS_VAR Holds + or - sentence space value
+ $ST&lt;n&gt;_FILL Always QUAD if QUAD passed to ST &lt;n&gt;
+ ST\n[#LOOP] Used to initialize string tab markers (1-19)
+ ST\n[#LOOP]X Used to initialize string tab markers (1-19)
+ $ST&lt;n&gt;_QUAD_DIR Quad direction supplied to ST for &lt;n&gt;
+ $SUP_LOWER Vertical displacement amount of superscripts
+ $SUP_RAISE Vertical displacement amount of superscripts
+ $SUP_RAISE_AMOUNT Argument passed to SUPERSCRIPT_RAISE_AMOUNT
+ $TAB_NUMBER Argument passed to TAB macro to call TAB# macro
+ created in TAB_SET
+ $UNDERSCORE_GAP Distance between text and underscore rule
+ $WS_CONSTANT 12; used to hold groff default wordspace
+ $WS Holds WS value; concatenation of WS_CONSTANT and
+ WS_VAR
+ $WS_VAR + or - value to add to $WS_CONSTANT
+ BLACK Pre-defined black color
+ black Pre-defined black color
+ WHITE Pre-defined white color
+ white Pre-defined white color
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++ALIASES+++</span>
+
+ ALIAS als
+ ALIASN aln
+ BR br
+ CENTRE CENTER
+ COLOUR COLOR
+ COMMENT SILENT
+ CONDENSE CONDENSE_OR_EXTEND
+ EXTEND CONDENSE_OR_EXTEND
+ FAM FAMILY
+ FT FONT
+ HYPHENATE HY
+ HYPHENATION HY
+ INCLUDE so
+ LIG LIGATURES
+ LL LINE_LENGTH
+ MAC de
+ NEW_PAGE bp
+ NEWCOLOUR NEWCOLOR
+ NEWPAGE NEW_PAGE
+ PAGELENGTH PAGE_LENGTH
+ PAGE_LENGTH pl
+ PAGEWIDTH PAGE_WIDTH
+ SPREAD brp
+ SP sp
+ STRING ds
+ TABSET TAB_SET
+ TB TAB
+ TI IT
+ UNDERSCORE_2 UNDERSCORE2
+ XCOLOUR XCOLOR
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++ALIASES FOR NUMBER REGISTERS+++</span>
+
+ #DIVER_DEPTH dn -- diversion depth
+ #DIVER_WIDTH dl -- diversion width
+ #INDENT .i -- value of current indent
+ #LEAD .v -- line space (.vs, not .ls)
+ #L_LENGTH .l -- line length
+ #NUM_ARGS .$ -- number of arguments passed to a macro
+ #PAGE_LENGTH .p -- page length
+ #PT_SIZE .ps -- current point size (fractional) in units
+ #TRAP_DISTANCE .t -- distance to next trap
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++INLINE ESCAPES+++</span>
+
+ ALD&lt;n&gt; Move down inline by &lt;n&gt; (between .25 and 12.75)
+ B Inline equivalent to .EL
+ BCK Inline backward horizontal movement
+ BD Bold font
+ BDI Bold italic font
+ BLACK Color
+ black color
+ BOLDER Pseudo-bold on
+ BOLDERX Pseudo-bold off
+ BP Back points (horizontal movement)
+ BP&lt;n&gt; Back points by &lt;n&gt; (between .25 and 12.75)
+ BU Back units (inline pairwise kerning)
+ BU&lt;n&gt; Back units by &lt;n&gt; (between 1 and 36)
+ COND Pseudo-condense type
+ COND_FOR_SUP Pseudo-condense string for use with superscripts
+ (called with CONDSUP)
+ COND_FOR_SUP Pseudo-extend string for use with superscripts (called
+ with EXTSUP)
+ CONDSUP Pseudo-condensed superscript (using value set with
+ CONDENSE)
+ CONDSUPX Pseudo-condensed superscript off
+ CONDX Pseudo-condense off
+ DOWN Inline downward vertical movement
+ EN-MARK Inline escape to indicate the beginning of a
+ range of lines used to identify an endnote
+ EXT Pseudo-extend type
+ EXTX Pseudo-extend off
+ EXTSUP Pseudo-extended superscript
+ EXTSUPX Pseudo-extended superscript off
+ FN-MARK Inline escape to indicate the beginning of a
+ range of lines used to identify a footnote
+ FP&lt;n&gt; Forward points by &lt;n&gt; (between .25 and 12.75)
+ FP Forward points (horizontal movement)
+ FU Forward units (inline pairwise kerning)
+ FU&lt;n&gt; Forward units by &lt;n&gt; (between 1 and 36)
+ FWD Inline forward horizontal movement
+ PREV Return to previous font in effect
+ RLD&lt;n&gt; Move up, inline, by &lt;n&gt; (between .25 and 12.75)
+ ROM Roman (medium) font
+ S Same \s
+ SLANT Slant (pseudo-italic on
+ SLANTX Slant off
+ ST&lt;n&gt; String tab end marker
+ ST&lt;n&gt; String tab start marker
+ SUP Superscript
+ SUPX Superscript off
+ TB+ Move to next tab number (n+1) without advancing on the page
+ UP Inline upward vertical movement
+ WHITE Color
+ white Color
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++SPECIAL CHARACTERS+++</span>
+
+ FOOT The foot character \(fm
+ INCH The inch character \(fm\(fm
+ LEADER Deposit leader to end of current LL or TAB
+ RULE Draw a rule to the full measure of the current line or
+ tab length
+<span style="display: block; margin-top: 1em; text-decoration: underline;">DOCUMENT PROCESSING</span>
+<span style="display: block; margin-top: -1em;">+++MACROS+++</span>
+<span style="display: block; margin-top: -1em; margin-bottom: -1em;">*Document info (reference macros)</span>
+ AUTHOR Author
+ CHAPTER Chapter number
+ CHAPTER_TITLE Chapter title
+ COPYRIGHT Copyright info (covers only)
+ DOCTITLE Overall doc title (for collated docs)
+ DRAFT Draft number
+ MISC Misc info (covers only)
+ REVISION Revision number
+ SUBTITLE Doc subtitle
+ TITLE Doc title
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Covers</span>
+ COVER What goes on cover
+ COVERS Whether covers get printed (boolean)
+ COVER_ADVANCE Set vertical start position of cover material
+ COVER_LEAD Overall leading of covers
+ COVERTITLE User-defined cover title string
+ DOC_COVER What goes on doc cover
+ DOC_COVERS Whether doc covers get printed
+ DOC_COVER_ADVANCE Set vertical start position of doc cover material
+ DOC_COVER_LEAD Overall leading of doc covers
+ DOC_COVERTITLE User-defined doc cover title string
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Document style</span>
+ 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
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Document tags and macros</span>
+ 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
+ EQ/EN eqn block
+ FINIS Prints --END--
+ FLOAT Keep material together as a block; defer output
+ to following page if not enough room to print
+ 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
+ SUBSUBHEAD Subsubheads
+ TH Running tbl header
+ TS/TE Begin/end a tbl block
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Headers/footers</span>
+ DO_FOOTER Prints footer (after footnote processing, if any)
+ FOOTER_ON_FIRST_PAGE Print footer on first page? (boolean)
+ FOOTER Trap-invoked footer macro
+ HEADER Trap-invoked header macro
+ PAGINATE Turns page numbering on or off (doc default=on)
+ PAGINATE_TOC Turns pagination of toc on or off (default=on)
+ RECTO_VERSO Enables switch HEADER_LEFT and HEADER_RIGHT on
+ alternate pages
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Control macros</span>
+-General-
+ ALWAYS_FULLSPACE_QUOTES Fullspace quotes instead of default
+ 1/2 spacing them.
+ ATTRIBUTE_STRING What to print before author (default is "by")
+ CHAPTER_STRING What to print whenever the word "chapter"
+ is required
+ COLUMNS Print in columns
+ DOC_FAMILY Overall doc family
+ DOCHEADER Print doc header?
+ DOCHEADER_ADVANCE Start position of docheader (relative to top
+ of page)
+ DOCHEADER_LEAD +|- value applied to #DOC_LEAD to in/decrease
+ leading of doc header
+ DOC_LEAD_ADJUST Adjust #DOC_LEAD to fill page to #B_MARGIN
+ DOC_LEAD Overall doc leading
+ DOC_LEFT_MARGIN Doc left margin
+ DOC_LINE_LENGTH Doc line length
+ DOC_PT_SIZE Overall doc point size
+ DOC_RIGHT_MARGIN Doc right margin
+ DOC_TITLE Overall doc title that gets printed in
+ headers/footers (mostly for use with collated
+ docs where each doc is an article with a
+ different title
+ DRAFT_STRING What to print whenever the word "draft" is
+ required
+ DRAFT_WITH_PAGENUMBER Attach draft/revision info to page number
+ (instead of putting it HEADER centre)
+ REVISION_STRING What to print whenever the word "revision"
+ is required
+
+-Covers-
+ COVER_ADVANCE Vertical place on page to start outputting
+ cover material
+ COVER_LEAD Lead in/decrease for cover pages
+ COVERS_COUNT_PAGES Whether to include cover pages in pagination scheme
+ DOC_COVER_ADVANCE Vertical place on page to start outputting
+ doc cover material
+ DOC_COVER_LEAD Lead in/decrease for doc cover pages
+ DOC_COVERS_COUNT_PAGES Whether to include doc cover pages in pagination
+ scheme
+
+-Epigraphs and finis-
+ EPIGRAPH_AUTOLEAD Autolead value for epigraphs
+ EPIGRAPH_INDENT Value by which to multiply PP_INDENT for
+ block epigraphs
+ FINIS_STRING What to print when FINIS is invoked
+ FINIS_STRING_CAPS Whether to capitalize the finis string
+
+-eqn-
+ EQ_INDENT Indent value if 'EQ I'
+
+-Footnotes-
+ 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
+ FOOTNOTE_SPACING Post endnotenote item spacing
+ ENDNOTE_STRING Endnotes page head
+ ENDNOTE_STRING_ADVANCE Distance of title string "ENDNOTES" from top
+ edge of page
+ ENDNOTE_STRING_CAPS Capitalize the endnotes string
+ ENDNOTE_STRING_UNDERLINE Underscoring of endnotes page head
+ ENDNOTE_TITLE Endnotes identifying title
+ ENDNOTE_TITLE_SPACE Distance from top of page to endnotest title
+ ENDNOTE_TITLE_UNDERLINE Underscoring of endnotes identifying title
+ ENDNOTES_ALLOWS_HEADERS Page headers on endnotes pages? (boolean)
+ 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_ADVANCE Distance of title string "BIBLIOGRAPHY" from
+ top edge of page
+ BIBLIOGRAPHY_STRING_CAPS Capitalize bib title string
+ BIBLIOGRAPHY_STRING_UNDERLINE Underscore bib title string
+ SINGLESPACE_BIBLIOGRAPHY Singlespace bibs if PRINTSTYLE TYPEWRITE
+
+-Headers and footers-
+ FOOTER_COLOR Footer color
+ FOOTER_GAP Distance between running text and footer
+ FOOTER_MARGIN Distance from footer to bottom of page
+ FOOTERS Turns footers on or off
+ HDRFTR_CENTER String to go in centre part of header/footer;
+ default doctype
+ HDRFTR_CENTER_CAPS Centre part of header/footer in caps? (boolean)
+ HDRFTR_CENTER_PAD Pad hdrftr CENTER left or right by specified
+ amount
+ HDRFTR_GAP Distance from header/footer to running text
+ HDRFTR_LEFT_CAPS Left part of header/footer in caps? (boolean)
+ HDRFTR_LEFT String to go in left part of header/footer;
+ default is AUTHOR_1
+ HDRFTR_LEFT The header/footer left string
+ HDRFTR_MARGIN Distance from top of page to header
+ HDRFTR_PLAIN Header/footer fam/ft/ps all same as running
+ text
+ HDRFTR_RECTO User-defined, single string recto
+ header/footer
+ HDRFTR_RIGHT_CAPS Right part of header/footer in caps? (boolean)
+ HDRFTR_RIGHT The header/footer right string
+ HDRFTR_RULE_GAP Space between header/footer and header/footer
+ rule
+ HDRFTR_RULE_INTERNAL Prints the header/footer rule
+ HDRFTR_RULE Turns header/footer rule on or off
+ When invoked internally, prints the rule.
+ HDRFTR_VERSO User-defined, single string verso
+ header/footer
+ HEADERS Turns headers on or off
+ HEADER_GAP Space between header and running text
+ HEADER_MARGIN Space from top of page to header
+ HEADERS_AND_FOOTERS Enables and permits the creation of
+ headers and footers that appear on the
+ same page
+ SWITCH_HDRFTR Switch HDRFTR_LEFT and HDRFTR_RIGHT
+
+-Page numbering-
+ PAGENUM_HYPHENS Turns on/off hyphens surrounding page numbers
+ PAGENUM_ON_FIRST_PAGE Print page number on first page when footers
+ are on (boolean)
+ PAGENUM_POS Controls placement of page numbers;
+ default=bottom/centred
+ PAGENUM_SIZE How much to in/decrease point size of page
+ numbers
+ PAGENUM_STYLE Page # in roman, Arabic, or alphabetic
+ RESTORE_PAGINATION Restore pagination after outputting non-
+ paginated endnotes.
+ SUSPEND_PAGINATION Suspend pagination prior to outputting
+ endnotes
+
+-Heads-
+ HEAD_CAPS Print section titles in caps? (boolean)
+ HEAD_SPACE Give HEADs 2 line-spaces before. If OFF,
+ only 1. Default is on.
+ HEAD_UNDERLINE Underline section titles? (boolean)
+ NUMBER_HEADS Print head numbers
+ RESET_HEAD_NUMBER Reset head number
+ HEAD_BASELINE_ADJUST Amount to raise head above baseline
+
+-Subheads-
+ NUMBER_SUBHEADS Print subhead numbers
+ RESET_SUBHEAD_NUMBER Reset subhead number
+ SUBHEAD_BASELINE_ADJUST Amount to raise subhead above baseline
+
+-Subsubheads-
+ NUMBER_SUBSUBHEADS Print subhead numbers
+ RESET_SUBSUBHEAD_NUMBER Reset subhead number
+ SUBSUBHEAD_BASELINE_ADJUST Amount to raise subhead above baseline
+
+-Para heads-
+ NUMBER_PARAHEADS Print parahead numbers
+ PARAHEAD_INDENT How much to indent paraheads
+ RESET_PARAHEAD_NUMBER Reset parahead number
+
+ PREFIX_CH_NUM_WARNING Macro to abort PREFIX_CHAPTER_NUMBER
+ with a warning if the arg to CHAPTER isn't
+ a digit, and user hasn't supplied a digit
+ to PREFIX_CHAPTER_NUMBER
+ PREFIX_CHAPTER_NUMBER Prefix the chapter number to numbered
+ heads, subheads and paraheads
+-Paragraphs-
+ INDENT_FIRST_PARAS Indent 1st paras? (doc default=not indented)
+ PARA_INDENT Size of para indent
+ 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
+
+-Printstyle TYPEWRITE-
+ ITALIC_MEANS_ITALIC For TYPEWRITE; render .FT I in italic.
+ SLANT_MEANS_SLANT In TYPEWRITE, render \*[SLANT] as slant
+ UNDERLINE_ITALIC In TYPEWRITE, render .FT I as underlined
+ UNDERLINE_QUOTES In TYPEWRITE, underline quotes? (boolean)
+ UNDERLINE_SLANT In TYPEWRITE, render \*[SLANT] as underlined
+
+-Table of contents-
+ TOC_APPENDS_AUTHORS Appends author(s) to toc doc title entries
+ TOC_LEAD Leading of toc pages
+ TOC_PADDING Number of placeholders for toc entries page
+ numbers
+ TOC_HEAD_INDENT Indent of toc head entries
+ TOC_HEADER_STRING TOC header string (default=Contents)
+ TOC_PAGENUM_STYLE Page numbering style (hdrftr nums) of
+ toc pages
+ TOC_RV_SWITCH Switch L/R margins of toc pages
+ TOC_PARAHEAD_INDENT Indent of toc parahead entries
+ TOC_SUBHEAD_INDENT Indent of toc subhead entries
+ TOC_TITLE_ENTRY User supplied toc doc title entry
+ TOC_TITLE_INDENT Indent of toc doc title entries
+
+<span style="display: block; margin-top: -.75em; margin-bottom: -1em;">*Aliases for header/footer control macros</span>
+ HEADER_SIZE HDRFTR_SIZE
+ HEADER_RIGHT_PS HDRFTR_RIGHT_SIZE
+ HEADER_RIGHT_SIZE HDRFTR_RIGHT_SIZE
+ HEADER_RIGHT_FAM HDRFTR_RIGHT_FAMILY
+ HEADER_RIGHT_FAMILY HDRFTR_RIGHT_FAMILY
+ HEADER_RIGHT_FONT HDRFTR_RIGHT_FONT
+ HEADER_RIGHT_FT HDRFTR_RIGHT_FONT
+ HEADER_LEFT_PS HDRFTR_LEFT_SIZE
+ HEADER_LEFT_SIZE HDRFTR_LEFT_SIZE
+ HEADER_LEFT_FAM HDRFTR_LEFT_FAMILY
+ HEADER_LEFT_FAMILY HDRFTR_LEFT_FAMILY
+ HEADER_LEFT_FONT HDRFTR_LEFT_FONT
+ HEADER_LEFT_FT HDRFTR_LEFT_FONT
+ HEADER_CENTRE_PS HDRFTR_CENTER_SIZE
+ HEADER_CENTRE_SIZE HDRFTR_CENTER_SIZE
+ HEADER_FAM HDRFTR_FAMILY
+ HEADER_FAMILY HDRFTR_FAMILY
+ HEADER_CENTRE_FAM HDRFTR_CENTER_FAMILY
+ HEADER_CENTRE_FAMILY HDRFTR_CENTER_FAMILY
+ HEADER_CENTRE_FONT HDRFTR_CENTER_FONT
+ HEADER_CENTRE_FT HDRFTR_CENTER_FONT
+ HEADER_CENTER_PS HDRFTR_CENTER_SIZE
+ HEADER_CENTER_SIZE HDRFTR_CENTER_SIZE
+ HEADER_CENTER_FAM HDRFTR_CENTER_FAMILY
+ HEADER_CENTER_FAMILY HDRFTR_CENTER_FAMILY
+ HEADER_CENTER_FONT HDRFTR_CENTER_FONT
+ HEADER_CENTER_FT HDRFTR_CENTER_FONT
+ FOOTER_SIZE HDRFTR_SIZE
+ FOOTER_RIGHT_PS HDRFTR_RIGHT_SIZE
+ FOOTER_RIGHT_SIZE HDRFTR_RIGHT_SIZE
+ FOOTER_RIGHT_FAM HDRFTR_RIGHT_FAMILY
+ FOOTER_RIGHT_FAMILY HDRFTR_RIGHT_FAMILY
+ FOOTER_RIGHT_FONT HDRFTR_RIGHT_FONT
+ FOOTER_RIGHT_FT HDRFTR_RIGHT_FONT
+ FOOTER_LEFT_PS HDRFTR_LEFT_SIZE
+ FOOTER_LEFT_SIZE HDRFTR_LEFT_SIZE
+ FOOTER_LEFT_FAM HDRFTR_LEFT_FAMILY
+ FOOTER_LEFT_FAMILY HDRFTR_LEFT_FAMILY
+ FOOTER_LEFT_FONT HDRFTR_LEFT_FONT
+ FOOTER_LEFT_FT HDRFTR_LEFT_FONT
+ FOOTER_CENTRE_PS HDRFTR_CENTER_SIZE
+ FOOTER_CENTRE_SIZE HDRFTR_CENTER_SIZE
+ FOOTER_FAM HDRFTR_FAMILY
+ FOOTER_FAMILY HDRFTR_FAMILY
+ FOOTER_CENTRE_FAM HDRFTR_CENTER_FAMILY
+ FOOTER_CENTRE_FAMILY HDRFTR_CENTER_FAMILY
+ FOOTER_CENTRE_FT HDRFTR_CENTER_FONT
+ FOOTER_CENTER_PS HDRFTR_CENTER_SIZE
+ FOOTER_CENTER_SIZE HDRFTR_CENTER_SIZE
+ FOOTER_CENTER_FAM HDRFTR_CENTER_FAMILY
+ FOOTER_CENTER_FAMILY HDRFTR_CENTER_FAMILY
+ FOOTER_CENTER_FONT HDRFTR_CENTER_FONT
+ FOOTER_CENTER_FT HDRFTR_CENTER_FONT
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++LETTER MACROS+++</span>
+
+ CLOSING Closing (i.e. Yours truly,)
+ CLOSING_INDENT Left indent of CLOSING
+ DATE Date for letters
+ FROM Addresser's name and address
+ GREETING Full salutation (e.g. Dear John Smith,)
+ NO_SUITE Remove suite page numbers from bottom of letter pages
+ SIGNATURE_SPACE Amount of room to leave for signature
+ TO Addressee's name and address
+ ALL_DONE .em (the "end macro") for letters
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++SUPPORT+++</span>
+
+ CHECK_INDENT Applies indents to doc elements inside ev's
+ (head, subhead, etc)
+ CLEANUP_DEFAULTS Removes selected rregisters and strings
+ from DEFAULTS after START
+ DO_COVER Formats and outputs covers
+ DO_DOC_COVER Formats and outputs doc covers
+ D0_QUOTE Outputs quotes with space adjustments before
+ and after
+ DIVER_FN_1_PRE -+
+ DIVER_FN_2_PRE | Manage footnotes called inside diversions
+ | QUOTE, BLOCKQUOTE and EPIGRAPH
+ DIVER_FN_2_POST -+
+ DIVERT_FN_LEFTOVER Diverts excess fn stored in FN_OVERFLOW into
+ FOOTNOTE
+ DIVERT_FN_OVERFLOW Diverts excess fn stored in FN_OVERFLOW when
+ FN_DEFER into FOOTNOTE
+ DO_EPIGRAPH Outputs epigraphs with space adjustments before
+ and after
+ FN_OVERFLOW_TRAP Fixed at B_MARGIN; if footnotes run longer than
+ B_MARGIN, diverts excess into FN_OVERFLOW
+ 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
+ NO_SHIM Disable SHIM
+ PRINT_FOOTNOTE_RULE An alias of PRINT_FOOTNOTE; prints footnote
+ separator rule
+ PRINT_HDRFTR Prints header/footer (trap invoked)
+ PRINT_PAGE_NUMBER Invoked in HEADER or FOOTER
+ PRINT_USERDEF_HDRFTR Prints user defined, single string recto/verso
+ header/footer
+ PROCESS_SHIM Calculates #SHIM when \n[.d] is lower on the
+ page than #T_MARGIN
+ 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 "valid" baseline
+ TBL*CLEANUP Remove selected registers and strings created
+ by TS/TH/TE
+ TBL*GET_QUAD Establish quad of tbl caption
+ tbl*float-warning If tbl in a float exceeds page limits
+ tbl*print-header Administrivia for printing tbl headers
+ tbl@top-hook Trap-invoked (HEADER); prints running tbl header
+ and moves FOOTER/FN_OVERFLOW_TRAP_POS traps
+ to accommodate tbl
+ TERMINATE .em that ensures deferred footnotes get output
+ on final pages
+ TRAPS Sets hdrftr traps; optionally adjusts #DOC_LEAD
+ to fill page to #B_MARGIN
+ TYPEWRITER Sets family (C), font (R) and point size (12)
+ for PRINTSTYLE TYPEWRITE
+ VFP_CHECK Trap-sprung macro, 1 valid baseline higher than
+ where FOOTER will be sprung; checks whether
+ there is, in fact, just enough room for
+ another line of running text to be added to
+ the page without jamming footnotes too close
+ to running text.
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++DIVERSIONS+++</span>
+
+ B_QUOTE Block (indented) quote text
+ CLOSING_TEXT Closing (i.e. Yours truly,)
+ EPI_TEXT Epigraph text
+ END_NOTES Endnotes text
+ FLOAT*DIV Float content
+ 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&lt;n&gt; Date, addresser, addressee or greeting;
+ &lt;n&gt; 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
+ tbl*header-div Running tbl header
+ TOC_ENTRIES TOC entries
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++NUMBER REGISTERS+++</span>
+
+ #ADJ_BIB_LEAD Adjust BIB_LEAD? (boolean)
+ #ADJ_DOC_LEAD Adjust DOC_LEAD? (boolean)
+ #ADJ_EN_LEAD Adjust EN_LEAD? (boolean)
+ #ADJ_TOC_LEAD Adjust TOC_LEAD? (boolean)
+ #ADVANCE_FROM_TOP Distance from page top to start of
+ running text if no docheader
+ #ARG_NUM Keeps track of number of args passed to a
+ macro
+ #ARGS_TO_LIST Was LIST passed some args? (boolean)
+ #ATTRIBUTE_COLOR Colorize attribute string? (boolean)
+ #AUTHOR_&lt;n&gt; Strings passed to AUTHOR
+ #AUTHOR_COLOR Colorize author(s)? (boolean)
+ #AUTHOR_COVER_NUM Incrementing register used in defining
+ $AUTHOR_COVER_&lt;n&gt; strings
+ #AUTHOR_DOCCOVER_NUM Incrementing register used in defining
+ $AUTHOR_COVER_&lt;n&gt; strings
+ #AUTHOR_NUM Keeps track of user-defined string
+ AUTHOR_&lt;n&gt; in AUTHOR
+ #AUTHORS Equals final value of AUTHOR_NUM;
+ used for authors in doc header
+ #BASELINE_MARK In PP, the vertical position on the page
+ (when paragraph spacing is on) after a
+ quote or blockquote has been output and
+ the post-quote space has been added.
+ #BMARG Position of unvarying bottom margin
+ during doc processing; required for
+ collecting footnotes inside diversions
+ #BIB_ALLOWS_HEADERS Put headers on bib pages? (boolean)
+ #BIB_ALLOWS_HEADERS_ALL Put headers on all bib pages? (boolean)
+ #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?
+ (boolean)
+ #BIB_LEAD Bibliography lead, expressed in points
+ #BIB_LIST Output bibs in list style? (boolean)
+ #BIB_NO_COLS De-columnize bibliographies? (boolean)
+ #BIB_NO_FIRST_PN Put a page number on the first page of
+ bibliographies? (boolean)
+ #BIB_SINGLESPACE Single-space TYPEWRITE bibliographies? (boolean)
+ #BIB_SPACE Post item space for bibliography pages
+ #BIB_STRING_ADVANCE Vertical position of "BIBLIOGRAPHY" string
+ (relative to the top edge of the page)
+ #BIB_STRING_CAPS Capitalize bib title? (boolean)
+ #BIB_STRING_UNDERLINE Underscore bib title? 0=no; 1=yes; 2=double
+ #BIB_STRING_UNDERLINE_WEIGHT Underline weight in units
+ #BIB_STRING_UNDERLINE_WEIGHT_ADJ Underline weight/2
+ #BIB_PS Base point size for bibliography pages expressed
+ in points
+ #BIBLIOGRAPHY Are we doing a bib page? (boolean)
+ #BQ_AUTOLEAD Register created by BLOCKQUOTE_AUTOLEAD
+ #BQ_LEAD Leading of blockquotes
+ #BQUOTE_COLOR Colorize blockquotes? (boolean)
+ #BQUOTE_LN Number blockquotes? (boolean)
+ #CAP_HEIGHT_ADJUST Tallest cap height of strings LEFT, CENTER,
+ and RIGHT in footers; used to place rule
+ over footer
+ #CAPS_WAS_ON In HDRFTR, to re-enable running text CAPS
+ (boolean)
+ #CENTER_CAP_HEIGHT Cap height of CENTER string in
+ headers/footers
+ #CH_NUM The chapter number obtained by
+ PREFIX_CHAPTER_NUMBER
+ #CHAPTER_CALLED Has CHAPTER been invoked? (boolean); used
+ by PREFIX_CHAPTER_NUMBER to see whether
+ to try to get the chapter number from
+ the arg passed to CHAPTER
+ #CHAPTER_TITLE_NUM Incrementing register used to define strings
+ $CHAPTER_TITLE_&lt;n&gt;
+ #CHAPTER_TITLE_COLOR Colorize chapter title? (boolean)
+ #CLOSING Is there a closing (for letters)? (boolean)
+ #CODE_COLOR Colorize CODE? (boolean)
+ #CODE_SIZE_ADJ Percentage by which to scale CODE font
+ #COL_L_LENGTH Line length of columns
+ #COL_&lt;n&gt;_L_MARGIN Left margin of column &lt;n&gt;
+ #COL_NEXT Was COL_NEXT invoked? (boolean; used in
+ FOOTER)
+ #COL_NUM Incrementing counter of num of columns;
+ for use with #COL_&lt;n&gt;_L_MARGIN
+ #COL_TOTAL #COL_L_LENGTH + #GUTTER; used to calculate
+ #COL_&lt;n&gt;_L_MARGIN
+ #COLLATE Are we performing a COLLATE? (boolean)
+ #COLLATED_DOC If 1, instructs TOC that this is a collated
+ doc
+ #COLUMNS Are columns turned on? (boolean)
+ #COLUMNS_WERE_ON Stores columnar state prior to outputting
+ endnotes in no-columns mode
+ #COPY_STYLE 1=draft, 2=final
+ #COUNTERS_RESET Tells FOOTNOTE if fn counters have
+ been reset because of footnotes gathered
+ inside a diversion
+ #COVER Print a COVER? (boolean)
+ #COVER_ATTRIBUTE_COLOR Colorize cover attribution string? (boolean)
+ #COVER_AUTHOR Put AUTHOR(s) on COVER? (boolean)
+ #COVER_AUTHOR_COLOR Colorize cover author(s)? (boolean)
+ #COVER_BLANKPAGE Output blankpage after COVER? (boolean)
+ #COVER_COLOR Colorize COVER? (boolean)
+ #COVER_COPYRIGHT Put copyright on COVER? (boolean)
+ #COVER_COPYRIGHT_COLOR Colorize cover copyright line? (boolean)
+ #COVER_DOCTYPE Put doctype on COVER? (boolean)
+ #COVER_DOCTYPE_COLOR Colorize cover doctype? (boolean)
+ #COVER_END Are we ending a COVER? (boolean)
+ #COVER_LEAD Cover leading
+ #COVER_MISC Put misc on COVER? (boolean)
+ #COVER_MISC_COLOR Colorize cover misc line? (boolean)
+ #COVER_RULE_WEIGHT Doctype underline weight on COVER
+ #COVER_RULE_WEIGHT_ADJ COVER_RULE_WEIGHT/2
+ #COVER_START_POS Vertical starting pos of cover material
+ #COVER_SUBTITLE Put subtitle on COVER? (boolean)
+ #COVER_TITLE Put title on COVER? (boolean)
+ #COVER_TITLE_NUM Number of cover title items
+ #COVER_TITLE_COLOR Colorize cover title? (boolean)
+ #COVER_SUBTITLE_COLOR Colorize cover subtitle? (boolean)
+ #COVER_UNDERLINE Underline doctype on COVER? (boolean)
+ #COVER_UNDERLINE_WEIGHT Doctype underline weight on COVER
+ #COVER_UNDERLINE_WEIGHT_ADJ COVER_UNDERLINE_WEIGHT/2
+ #CURRENT_V_POS \n[.d] ; used in SHIM
+ #COVERS Print covers? (boolean)
+ #COVERS_COUNT Include COVER in pagination scheme? (boolean)
+ #COVERS_OFF Don't print COVERs (boolean)
+ #DATE_FIRST Was .DATE invoked as first letter
+ header after .START? (boolean)
+ dc "mark" register for document columns
+ DD Vert. space before and after eqn blocks
+ defer / new-defer Appended to FLOAT*DIV: if float deferred
+ #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
+ #DEFER_SPACE_ADDED Was space added between two "first" footnotes that
+ appear on the same page? (boolean)
+ #DELAY_SHIM Instructs DO_QUOTE to delay SHIM when quote
+ falls at the top of a page
+ #DEPTH LIST depth
+ #DEPTH_1 Doc header depth with lead adjustment
+ (#DOCHEADER_LINES * #DOCHEADER_LEAD)
+ #DEPTH_2 Doc header depth without lead adjustment
+ (#DOCHEADER_LINES * #DOC_LEAD)
+ #DEPTH_TO_B_MARGIN Page length minus #B_MARGIN
+ D-float Depth of float containing/ending with
+ DRH, DRV, DBX, or DCL
+ DI eqn indent if EQ I
+ #DIVER_FN Register that tells FOOTNOTE whether to
+ "move" or "defer" a footnote collected
+ inside a diversion
+ #DIVERSIONS_HY_MARGIN A reasonable value for .hym applied to
+ QUOTE, BLOCKQUOTE and EPIGRAPH to
+ avoid excessive hyphenation if these are
+ set quad left
+ #DIVERTED Set to 1 in DIVERT_FN_OVERFLOW; reset
+ subsequently in FOOTNOTES when called by
+ PROCESS_FN_LEFTOVER to 2 or 3 for use by
+ FOOTER to decide whether to in/decrease
+ #FN_DEPTH when outputting footnotes
+ #DOC_COVER Are we doing a DOC_COVER? (boolean)
+ #DOC_COVER_AUTHOR Put AUTHOR(s) on DOC_COVER? (boolean)
+ #DOCCOVER_BLANKPAGE Output blank page after DOC_COVER? (boolean)
+ #DOC_COVER_CHAPTER_TITLE_COLOR Colorize CHAPTER_TITLE on DOC_COVER? (boolean)
+ #DOC_COVER_COPYRIGHT Put copyright on DOC_COVER? (boolean)
+ #DOC_COVER_DOCTYPE Put doctype on DOC_COVER? (boolean)
+ #DOCCOVER_END Are we finishing a DOC_COVER? (boolean)
+ #DOC_COVER_LEAD Doc cover leading
+ #DOC_COVER_MISC Put misc on DOC_COVER? (boolean)
+ #DOC_COVER_START_POS Vertical starting pos of doc cover material
+ #DOC_COVER_COLOR Colorize cover? (boolean)
+ #DOC_COVER_START_POS Vertical starting pos of cover material
+ #DOC_COVER_TITLE_COLOR Colorize doc cover title? (boolean)
+ #DOC_COVER_SUBTITLE_COLOR Colorize doc cover subtitle? (boolean)
+ #DOC_COVER_ATTRIBUTE_COLOR Colorize doc cover attribution string? (boolean)
+ #DOC_COVER_AUTHOR_COLOR Colorize doc cover author(s)? (boolean)
+ #DOC_COVER_DOCTYPE_COLOR Colorize doc cover doctype? (boolean)
+ #DOC_COVER_COPYRIGHT_COLOR Colorize doc cover copyright line? (boolean)
+ #DOC_COVER_MISC_COLOR Colorize doc cover misc line? (boolean)
+ #DOC_COVER_SUBTITLE Put subtitle on DOC_COVER? (boolean)
+ #DOC_COVER_TITLE Put title on DOC_COVER? (boolean)
+ #DOC_COVER_TITLE_NUM Number of doc cover title items
+ #DOC_COVERS Print doc covers? (boolean)
+ #DOC_COVERS_OFF Don't print DOC_COVERs (boolean)
+ #DOCCOVER_RULE_WEIGHT Doctype underline weight on DOC_COVER
+ #DOCCOVER_RULE_WEIGHT_ADJ DOCCOVER_RULE_WEIGHT/2
+ #DOCCOVER_UNDERLINE Underline doctype on DOC_COVER? (boolean)
+ #DOCCOVER_UNDERLINE_WEIGHT Doctype underline weight on DOC_COVER
+ #DOCCOVER_UNDERLINE_WEIGHT_ADJ DOCCOVER_UNDERLINE_WEIGHT/2
+ #DOCCOVERS_COUNT Include DOC_COVER in pagination scheme? (boolean)
+ #DOC_HEADER Whether to print a doc header (boolean)
+ #DOC_LEAD_ADJ Incrementing value (in units) added to
+ #DOC_LEAD to fill page to #B_MARGIN
+ #DOC_LEAD Leading used in body
+ #DOC_L_LENGTH Global L_LENGTH
+ #DOC_L_MARGIN Global L_MARGIN
+ #DOC_LR_MARGIN_TMP In HEADER, if RECTO_VERSO=1, temporarily
+ holds DOC_L_MARGIN during page margin switch
+ #DOC_PT_SIZE Point size used for body text
+ #DOC_R_MARGIN Global R_MARGIN
+ #DOC_TYPE 1=default, 2=chapter, 3=named, 4=letter
+ #DOCHEADER_ADVANCE Distance from top-of-page to baseline of
+ docheader
+ #DOCHEADER_COLOR Colorize docheader? (boolean)
+ #DOCHEADER_DEPTH Depth of docheader
+ #DOCHEADER_LEAD Lead of doc header
+ (#DOC_LEAD + #DOCHEADER_LEAD_ADJ)
+ #DOC_LEAD_ADJUST_OFF Don't adjust DOC_LEAD (boolean)
+ #DOCS Always 1 after START
+ #DOCTITLE_NUM Number of doctitle items
+ #DOCTYPE_COLOR Colorize doctype? (boolean)
+ #DOCTYPE_RULE_WEIGHT Doctype underline weight
+ #DOCTYPE_RULE_WEIGHT_ADJ DOCTYPE_RULE_WEIGHT/2
+ #DOCTYPE_UNDERLINE Underline doctype? (boolean)
+ #DOCTYPE_UNDERLINE_WEIGHT Weight of doctype underline
+ #DOCTYPE_UNDERLINE_WEIGHT_ADJ DOCTYPE_UNDERLINE_WEIGHT/2
+ #DOING_COVER Tells PRINT_AUTHORS that it's printing
+ the authors for a cover or doc cover
+ #DONE_ONCE Keeps track of how many times footnotes
+ have been collected inside the same diversion
+ #DONT_RULE_ME Rule this (apparent) first footnote? (boolean)
+ #DIVER_LN_OFF Turn linenumbering off in (block)quotes?
+ (boolean)
+ #DRAFT_WITH_PAGENUM Are we attaching draft/revision info to page
+ number? (boolean)
+ #EM_ADJUST Amount to raise \(em at END
+ #EN_ALLOWS_HEADERS Put page headers on endnotes pages? (boolean)
+ #EN_ALLOWS_HEADERS_ALL Put page headers on all endnotes pages?
+ (boolean)
+ #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? (boolean)
+ #EN_LEAD Lead of endnotes
+ #EN_LN_BRACKETS Are we using brackets for line-numbered
+ endnotes (boolean)
+ #EN_LN_SEP Are we using a separator for line-numbered
+ endnotes (boolean)
+ #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? (boolean)
+ #EN_NO_FIRST_PN Put pagenumber on 1st page of endnotes?
+ (boolean)
+ #EN_NUMBER Number of current endnote
+ #EN_NUMBER_PLACEHOLDERS Number of placeholders to reserve for endnotes
+ numbers
+ #EN_NUMBERS_ALIGN_RIGHT Hang and align endnote numbers right?
+ (boolean)
+ #EN_NUMBERS_ALIGN_LEFT Align endnote numbers with left margin?
+ (boolean)
+ #EN_NUMBERS_PLACEHOLDERS Number of placeholders when endnote numbers
+ hang and align right
+ #EN_NUMBER_L_LENGTH Line length for endnote numbers when they're
+ right aligned
+ #EN_PP_INDENT First line indent of paras in multi-para
+ endnotes
+ #EN_PP_SPACE Space multi-paras in endnotes? (boolean)
+ #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? (boolean)
+ #EN_SINGLESPACE Single space endnotes pages? (boolean)
+ #EN_STRING_ADVANCE Vertical position of "ENDNOTES" string (relative to
+ the top edge of the page)
+ #EN_STRING_CAPS Should ENDNOTES capitalize the endnotes
+ string? (boolean)
+ #EN_STRING_UNDERLINE Underscore endnotes page head? (boolean)
+ #EN_STRING_UNDERLINE_WEIGHT Weight of endnotes page title underscore
+ #EN_STRING_UNDERLINE_WEIGHT_ADJ EN_STRING_UNDERLINE_WEIGHT_ADJ/2
+ #EN_TEXT_INDENT Page offset for text of endnotes when
+ numbers right align
+ #EN_TITLE_UNDERLINE Underscore endnotes document identifier?
+ (boolean)
+ #EN_TITLE_UNDERLINE_WEIGHT Weight of endnotes document identification
+ underscore
+ #EN_TITLE_UNDERLINE_WEIGHT_ADJ #EN_STRING_UNDERLINE_WEIGHT_ADJ/2
+ #END_QUOTE For PP=0 indenting; did we just end a quote?
+ (boolean)
+ #ENDNOTE Are we in an endnote? (boolean)
+ #ENDNOTE_REFS Are REFs going to endnotes? (boolean)
+ #ENDNOTES Are we in an endnote (for FOOTERs; boolean)
+ #EPI_ACTIVE Are we in an epigraph? (boolean)
+ #EPI_AUTOLEAD Autolead value for epigraphs
+ #EPI_COLOR Colorize epigraphs? (boolean)
+ #EPI_DEPTH Depth of epigraph from first baseline to
+ last
+ #EPI_FITS Does epigraph fit on page/column? (boolean)
+ #EPIGRAPH Did we have an epigraph? (boolean)
+ #EPI_LEAD_DIFF Difference between #DOC_LEAD and #EPI_LEAD
+ #EPI_LEAD Leading of epigraph; set by AUTOLEAD
+ #EPI_LINES_EVEN Even # of lines at end of epi crossing page in
+ TYPEWRITE (d-spaced)?
+ #EPI_LINES Number of lines in the epigraph
+ #EPI_LINES_TO_END Number of epigraph lines remaining after
+ footer trap is sprung
+ #EPI_LINES_TO_TRAP Number of epigraph lines till footer trap is
+ sprung
+ #EPI_L_LENGTH Epigraph line length
+ #EPI_OFFSET Left margin of epigraphs
+ #EPI_OFFSET_VALUE Epigraph indent as a function of page offset
+ #EPI_ON Are we in an epigraph? (boolean)
+ #EPI_WHITESPACE Space after epigraph to compensate for
+ epigraph leading
+ #FIELD Incrementing register tacked onto LETTERHEAD
+ #FINIS Was FINIS invoked? (boolean)
+ #FINIS_STRING_CAPS Capitalize finis string? (boolean)
+ #FINIS_COLOR Colorize FINIS? (boolean)
+ #FIRST_DOC_TITLE_PN Page number of 1st (collated) doc (for TOC)
+ #FIRST_DOC_TOC_PN_PADDING Padding for 1st page number of 1st (collated) doc
+ (for TOC)
+ float*after-shim / \n[nl]; tests if SHIM has stayed on the same
+ float*before-shim baseline
+ float-span Float can run to multiple pages? (boolean)
+ float*with-tbl Float contains a tbl block
+ #FN_AUTOLEAD Autolead value of footnotes
+ #FN_BL_INDENT Left indent of INDENT BOTH in footnotes
+ #FN_BR_INDENT Right indent of INDENT BOTH in footnotes
+ #FN_COUNT Which fn marker to print; also to
+ tell mom to reserve space for and print
+ the rule above footnotes
+ #FN_COUNT_AT_FOOTER The FN_COUNT after FOOTNOTES has been
+ output in FOOTER
+ #FN_COUNT_FOR_COLS Holds a separate footnote count for columns
+ (so they don't reset to 0 1 until page break)
+ #FN_DEFER Defer footnote to next page/column? (boolean)
+ If 0, don't defer.
+ #FN_DEFER_SPACE Whether to deposit space before
+ footnote 1 because there's a deferred
+ footnote on the page
+ #FN_DEPTH Depth of footnote diversion(s)
+ #FN_FOR_EPI Signals to epigraph that a footnote is being
+ processed
+ #FN_GAP When there are footnotes on a page, the
+ difference between where FOOTER will be
+ sprung and the next valid baseline.
+ Used in VFP_CHECK.
+ #FN_LEAD Lead in footnotes after FN_AUTOLEAD is
+ applied
+ #FN_L_INDENT Left indent of INDENT LEFT in footnotes
+ #FN_LINES Number of lines in fn; used to calculate
+ fn depth
+ #FN_LN_BRACKETS Are footnote linenumber brackets being used?
+ (boolean)
+ #FN_LN_SEP Is a footnote linenumber separator being used?
+ (boolean)
+ #FN_MARK \n[ln] when \*[FN-MARK] is called
+ #FN_MARK_2 \n[nl] when FOOTNOTE is called
+ #FN_MARKER_STYLE 1=STAR; 2=NUMBER
+ #FN_MARKERS Print footnote markers? (boolean)
+ #FN_NUMBER The footnote number attached to running text
+ (and fns) when numbers instead of
+ star/dagger is being used for footnootes
+ numbers
+ #FN_OVERFLOW_DEPTH Depth of leftover from footnote processing
+ #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? (boolean)
+ #FN_RULE Print fn rule? (boolean)
+ #FN_RULE_ADJ # of points to raise footnote separator from
+ its baseline
+ #FN_RULE_LENGTH Length of footnote separator rule
+ #FN_RULE_WEIGHT Weight of the footnote separator rule
+ #FN_RULE_WEIGHT_ADJ FN_RULE_WEIGHT/2
+ #FN_WAS_DEFERED Tells HEADER about a deferred footnote
+ #FOOTER_DIFF In TRAPS, the difference between the
+ original #B_MARGIN and #VISUAL_B_MARGIN
+ #FOOTER_GAP Amount of space between end of text and
+ page #
+ #FOOTER_MARGIN Amount of space between page # and bottom
+ of page
+ #FOOTER_POS Position of footer trap (required for
+ collecting footnotes inside a diversion)
+ #FOOTER_RULE Print footer rule? (boolean)
+ #FOOTER_RULE_GAP Gap between footer and separator rule above
+ #FOOTER_RULE_WEIGHT Weight of footer rule
+ #FOOTER_RULE_WEIGHT_ADJ #FOOTER_RULE_WEIGHT/2
+ #FOOTERS_ON Are we using footers? (boolean)
+ #FOOTERS_WERE_ON Were footers on? - used in FINIS and BLANKPAGE
+ (boolean)
+ #FOOTNOTE_COLOR Colorize footnotes? (boolean)
+ #FORCE Force float? (boolean)
+ #FROM_BIB_STRING Tells UNDERSCORE it's underscoring $BIB_STRING
+ #FROM_COVER Tells UNDERSCORE it's underscoring on a cover
+ #FROM_DOC_COVER Tells UNDERSCORE it's underscoring on a doccover
+ #FROM_DOCTYPE Tells UNDERSCORE it's underscoring the doctype
+ #FROM_EN_STRING Tells UNDERSCORE it's underscoring $EN_STRING
+ #FROM_EN_TITLE Tells UNDERSCORE it's underscoring $EN_TITLE
+ #FROM_HEAD Tells UNDERSCORE it's underscoring a head
+ #FROM_DIVERT_FN Signals to FOOTNOTE, when run from
+ within DIVERT_FN_LEFTOVER, to set
+ #SPACE_REMAINING to the total area
+ allowable for running text
+ #FROM_FOOTER In col to col footnote processing, tells
+ FOOTNOTE that FOOTNOTES was output from
+ FOOTER.
+ #FROM_HEADER In col to col footnote processing, tells
+ FOOTNOTE that FOOTNOTES was output from
+ HEADER.
+ #FULLSPACE_QUOTES Should we fullspace quotes? (boolean)
+ #GET_DC_HEIGHT Used in routine to get the correct point size for
+ dropcaps
+ #GET_DEPTH Signals to FOOTNOTE that it should
+ measure the depth of current footnotes
+ plus the most recently added one, except
+ where the footnote is to be deferred to
+ the next page or column
+ #GUTTER Width of gutter between columns
+ #H_BASELINE_ADJ Vertical spacing adjustment for heads (default=0)
+ #HDRFTR_BOTH Are we setting both headers and footers? (boolean)
+ #HDRFTR_CENTER_CAPS CENTER part of header/footer in caps?
+ (boolean; default=off)
+ #HDRFTR_CENTER_COLOR Colorize header/footer center? (boolean)
+ #HDRFTR_COLOR Colorize headers/footers? (boolean)
+ #HDRFTR_CTR_PAD_LEFT Amount of hdrftr CENTER padding on the left
+ #HDRFTR_CTR_PAD_RIGHT Amount of hdrftr CENTER padding on the right
+ #HDRFTR_CTR_PAD_TMP Temp storage of left hdrftr CENTER padding
+ (for recto/verso switch)
+ #HDRFTR_HEIGHT Cap height of $HDRFTR_RECTO/$HDRFTR_VERSO
+ strings
+ #HDRFTR_LEFT_CAPS Left part of header/footer in caps?
+ (boolean; default=off)
+ #HDRFTR_LEFT_COLOR Colorize header/footer left? (boolean)
+ #HDRFTR_PT_SIZE Initial point size of headers/footers
+ #HDRFTR_RECTO_CAPS Header/footer recto caps? (boolean)
+ #HDRFTR_RIGHT_CAPS Right part of header/footer in caps?
+ (boolean; default=on)
+ #HDRFTR_RIGHT_COLOR Colorize header/footer right? (boolean)
+ #HDRFTR_RULE Print head/footer rule? (boolean)
+ #HDRFTR_RULE_COLOR Colorize header/footer rule? (boolean)
+ #HDRFTR_RULE_GAP Space between header/footer and
+ header/footer rule
+ #HDRFTR_RULE_WEIGHT Weight of header/footer rule
+ #HDRFTR_RULE_WEIGHT_ADJ HDRFTR_RULE_WEIGHT/2
+ #HDRFTR_TMP_CAPS_SWITCH Temporarily holds HDRFTR_LEFT_CAPS value if
+ #SWITCH_HDRFTR=1
+ #HDRFTR_VERSO_CAPS Header/footer verso caps? (boolean)
+ #HEAD 1=main/section head 2=subhead
+ #HEAD_CAPS Print section titles in caps? (boolean)
+ #HEAD_COLOR Colorize heads? (boolean)
+ #HEADER_GAP Distance from header to running text
+ #HEAD_NUM Head number
+ #HEAD_SPACE 2 line spaces before heads? (boolean)
+ #HEAD_UNDERLINE Underline heads? (boolean)
+ #HEAD_UNDERLINE_WEIGHT Head underline weight
+ #HEAD_UNDERLINE_WEIGHT_ADJ HEAD_UNDERLINE_WEIGHT/2
+ #HEADER_MARGIN Distance from top of page to header
+ #HEADER_RULE Print header rule? (boolean)
+ #HEADER_RULE_GAP Gap between header and header rule
+ #HEADER_RULE_WEIGHT Header rule weight
+ #HEADER_RULE_WEIGHT_ADJ HEADER_RULE_WEIGHT/2
+ #HEADERS_ON Headers on? (boolean)
+ #HEADER_STATE Saves header state in COLLATE for use in
+ START after COLLATE
+ #HEADERS_WERE_ON Were headers on? - used in BLANKPAGE (boolean)
+ #HF_OFF Has HEADERS_AND_FOOTERS been turned off? (boolean)
+ #HORIZ_MARK Horizontal
+ #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? (boolean)
+ #INDENT_FIRSTS Tells footnotes to leave INDENT_FIRST_PARAS
+ alone if it's on for running text.
+ #ITALIC_MEANS_ITALIC For TYPEWRITE. (boolean)
+ #ITEM Counter for removing _1, _2, _3... strings
+ in TITLE, CHAPTER_TITLE, etc.
+ #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
+ #LB_CHAR_ITERATIONS Number of linebreak character iterations
+ #LEFT_CAP_HEIGHT Cap height of left string in headers/footers
+ #VALID_BASELINE Calculates vert. position of next valid
+ baseline in SHIM
+ #LETTER_STYLE 1=BUSINESS 2=PERSONAL
+ #LINEBREAK Did we have a linebreak? (boolean)
+ #LINEBREAK_COLOR Colorize linebreak? (boolean)
+ #LINENUMBER_COLOR Colorize linenumbers? (boolean)
+ #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
+ #LN Test 1st arg to NUMBER_LINES for digit or string
+ MN-active Are we doing a margin note? (boolean)
+ MN-curr Current margin note
+ MN-div-&lt;n&gt;-depth Depth of margin note &lt;n&gt;
+ MN-hy Hyphenation flag of margin notes
+ #MNinit Have margin notes been initialized? (boolean)
+ #MNinit_DEFERRED Did we have to defer a margin note? (boolean)
+ MN-last-pos Baseline of previous margin note
+ MN-lead-adj Difference between the current DOC_LEAD and the
+ leading used in margin notes
+ MN-left Number of current left margin note
+ MN-left-start Horizontal start position of left margin note
+ MN-left-width Width of left margin note
+ MN-right Number of current right margin note
+ MN-right-start Horizontal start position of right margin note
+ MN-right-width Width of right margin note
+ MN-sep Gutter between margin notes and running text
+ MN-shifted Did we have to shift a margin note down?
+ (boolean)
+ MN-size Point size of margin notes
+ MN-spacing Leading of margin notes
+ #MISC_&lt;n&gt; Used to print "next" misc lines in DO_COVER
+ #MISC_COVER_NUM Number of cover misc items
+ #MISC_DOCCOVER_NUM Number od doc cover misc items
+ #MISC_NUM Number of MISC items
+ #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
+ had to be deferred, the VFP must be
+ raised by 1v (set in DIVER_FN_2_PRE)
+ #NEITHER Should we print no covers? (boolean)
+ #NEXT_AUTHOR Supplies correct digit to AUTHOR_&lt;n&gt;
+ 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
+ #NEXT_SUBTITLE Incrementing register used to print subtitles
+ #no-repeat-MN-left Don't repeat left margin note (boolean)
+ #no-repeat-MN-right Don't repeat right margin note (boolean)
+ #NO_BACK_UP Instructs FN_OVERFLOW_TRAP not to
+ subtract 1 line of footnote lead from
+ FN_OVERFLOW in a PREV_FN_DEFERRED
+ situation.
+ #NO_BREAK Set to 1 in COLLATE if last line of
+ text before COLLATE falls at the bottom
+ of the page; instructs NEWPAGE to use
+ 'br instead of .br
+ #NO_COLUMNS Don't print document in columns (boolean)
+ #NO_FN_MARKER Don't print footnote markers (boolean)
+ #NO_SHIM Should SHIM shim? (boolean)
+ #NO_SPACE When para spacing is active, instructs
+ PP not to add space after a quote or blockquote
+ #NO_TRAP_RESET Should we reset page traps? (boolean)
+ #NOT_YET_ADJUSTED Line on which a footnote was called has not yet
+ been adjusted by groff (boolean)
+ #NUM_AUTHORS # of authors mod 2 to test if odd or even
+ # of authors
+ #NUM_MISCS Number of args passed to MISC
+ #NUM_MISCS_COVER Number of args passed to MISC COVER
+ #NUM_MISCS_DOCCOVER Number of args passed to MISC DOC_COVER
+ #NUMBER_HEAD Are heads numbered? (boolean)
+ #NUMBER_PH Are paraheads numbered? (boolean)
+ #NUMBER_SH Are subheads numbered? (boolean)
+ #NUMBER_SSH Are subsubheads numbered? (boolean)
+ #NUM_COLS Number of columns per page
+ #NUMBERED If set to 1, lets PARAHEAD know that
+ main-, sub-, and subsubhead numbers have already been
+ prefixed to the parahead string
+ #NUM_FIELDS Incrementing register used to match
+ #TOTAL_FIELDS
+ #OK_PROCESS_LEAD Initial processing of TOC and endnote
+ leading is deferred until OK_PROCESS_LEAD=1
+ #ORIGINAL_B_MARGIN The value for #B_MARGIN as set by the
+ macro B_MARGIN
+ #ORIG_DOC_LEAD DOC_LEAD before endnotes, bibliographies, tocs
+ #ORIG_L_LENGTH \\n[.l] before starting LISTs
+ #ORIGINAL_DOC_LEAD The lead for PRINT_STYLE 1 as set in
+ PRINTSTYLE; required so that PRINT_STYLE 1
+ footnotes have an unadjusted lead of
+ 12 points
+ #OVERFLOW Signals to FOOTNOTE that some of the
+ footnote text won't fit on the page
+ #OVERFLOW_LEFT Does left margin note overflow? (boolean)
+ #OVERFLOW_RIGHT Does right margin note overflow? (boolean)
+ #P Page number for margin notes
+ #PAD_LIST_DIGITS&lt;n&gt; Pad LIST digits for LIST &lt;n&gt;? (boolean)
+ #PAGE_NUM_ADJ What to add to n% to get #PAGENUMBER
+ #PAGE_NUM_H_POS 1=left 2=CENTER 3=right; default=2
+ #PAGE_NUM_COLOR Colorize pagenumbers? (boolean)
+ #PAGE_NUM_HYPHENS Print hyphens surrounding page numbers?
+ (boolean)
+ #PAGE_NUM_HYPHENS_SET Did user set (or unset) hyphens around page
+ numbers? (boolean)
+ #PAGE_NUM_POS_SET Did user set page number position? (boolean)
+ #PAGE_NUM_SET Test if PAGE_1_NUM was used to set 1st page
+ number
+ #PAGE_NUM_V_POS 1=top 2=bottom; default=2
+ #PAGE_NUMS Print page numbers? (boolean)
+ #PAGE_POS Exact position on page during a diversion
+ (required for collecting footnotes inside
+ a diversion)
+ #PAGE_TOP \n[nl] after HEADER completes itself
+ #PAGENUM_STYLE_SET Did we set pagenumber style? (boolean)
+ #PAGENUMBER The page number
+ #PAGES Number of blank pages to output
+ #PAGINATE Are we paginating? (boolean)
+ #PAGINATE_TOC Is toc pagination on? (boolean)
+ #PAGINATE_WAS_ON Keeps track of pagination state while
+ outputting blank pages
+ #PAGINATION_STATE Saves pagination state in COLLATE for use in
+ START after a COLLATE
+ #PAGINATION_WAS_ON Was pagination on? - used in FINIS (boolean)
+ #PH_COLOR Colorize paraheads? (boolean)
+ #PH_INDENT Size of parahead indent
+ #PH_NUM Parahead number
+ #PP 0 at first para; auto-increments
+ #PP_AT_PAGE_BREAK # of last (incl. partial) para on page
+ #PP_INDENT How much to indent paras
+ #PP_SPACE Put space before paras? (boolean)
+ #PP_SPACE_SUSPEND Suspend para spacing for blockquotes and
+ epigraphs
+ #PP_STYLE_PREV In footnotes, stores PP style in effect
+ prior to invoking FOOTNOTE
+ #PP_STYLE Regular para=1; quote or epi para=2
+ #PRE_COLLATE Set to 1 in COLLATE; prevents FAMILY
+ from clobbering a user-set DOC_FAMILY
+ #PREFIX_CH_NUM Prefix the chapter number to numbered
+ heads, subheads and/or paraheads? (boolean)
+ #PREV_FN_DEFERRED Was previous footnote deferred? (boolean)
+ #PRINT_PAGENUM_ON_PAGE_1 Should we print the page number on first
+ page of doc when footers are on? (boolean)
+ #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?
+ (boolean)
+ #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 Colorize quotes (poetic)? (boolean)
+ #QUOTE_LN Linenumber quotes? (boolean)
+ #RECTO_VERSO Switch HEADER_LEFT and HEADER_RIGHT on
+ alternate pages? (boolean)
+ ref*suppress-period Suppress period at end of ref field? (boolean)
+ ref*type Kind of reference we're building
+ #REF Was REF called? (boolean)
+ #REF_HY Hyphenate REFs? (boolean)
+ #REF_WARNING Have we issued a ref warning? (boolean)
+ #REPEAT Number of times to repeat linebreak
+ character
+ #RERUN_TRAPS Should we invoke TRAPS? (boolean)
+ #RESERVED_SPACE Just enough room to put 1 more line of
+ footnotes on the page
+ #RESET_EN_PP Holds value of register #EN_PP_INDENT
+ #RESET_EN_PP_INDENT Holds value of register #EN_PP_INDENT
+ #RESET_FN_COUNTERS 1 = "moved" footnote collected in a diversion
+ 2 = "deferred" fn collected in a diversion
+ #RESET_FN_NUMBER Should fn# start at 1 on every page?
+ (boolean)
+ #RESET_L_LENGTH Stores current line length when necessary
+ #RESET_PARA_SPACE Holds current value of boolean register
+ #PP_SPACE
+ #RESET_PP_INDENT Stores value of PP_INDENT when needed
+ #RESET_QUOTE_SPACING Stores value of boolean register
+ #FULLSPACE_QUOTES (used in endnotes)
+ #RESTORE_ADJ_DOC_LEAD Stores value of #ADJ_DOC_LEAD whenever needed
+ #RESTORE_B_MARGIN Stores #B_MARGIN whenever needed
+ #RESTORE_DOC_LEAD Stores value of current doc lead (used in
+ endnotes)
+ #RESTORE_HY Restore hyphenation after .][? (boolean)
+ #RESTORE_INDENT Store \n[.i] whenever needed
+ #RESTORE_L_LENGTH Stores \n[.l] whenever needed
+ #RESTORE_LN_NUM Should we restore line numbering? (boolean)
+ #RESTORE_OFFSET Page offset at moment footer trap is sprung;
+ not currently used
+ #RESTORE_UNDERLINE Instructs CODE OFF to restore underlining of
+ italics (TYPEWRITE) if underlining was
+ formerly on
+ #RIGHT_CAP_HEIGHT Cap height of right string in
+ 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? (boolean)
+ #SAVED_DIVER_FN_COUNT In the case of a footnote inside a
+ diversion that should be treated as a
+ "normal" footnote, FOOTNOTE needs to
+ distinguish between a "normal" deferred
+ footnote (always the 1st footnote on the
+ page) and one that only looks as if
+ it should be deferred, when, in fact,
+ it's an overflow; this register lets
+ FOOTNOTE know whether the diversion
+ footnote is, in fact, the first on the
+ page.
+ #SAVED_DOC_LEAD Stored value of #DOC_LEAD (used in DEFAULTS after
+ a COLLATE)
+ #SAVED_FN_COUNT #FN_COUNT+1 prior to +#FN_COUNT; used
+ in FOOTNOTES while gathering fns inside
+ diversions
+ #SAVED_FN_COUNT_FOR_COLS #FN_COUNT_FOR_COLS+1 prior to
+ +#FN_COUNT_FOR_COLS; used in FOOTNOTES
+ while gathering fns inside diversions
+ #SAVED_FN_DEPTH_1 Footnote depth prior to adding footnote
+ diversion depth to FN_DEPTH; used when
+ footnote text will overflow
+ #SAVED_FN_DEPTH_2 Footnote depth after to adding footnote
+ diversion depth to FN_DEPTH; used when
+ footnote text will overflow
+ #SAVED_FN_NUMBER Stores current FN_NUMBER whenever needed
+ #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
+ PROCESS_FN_LEFTOVER or
+ PROCESS_FN_IN_DIVERSION; both the
+ diversion FOOTNOTES and the two macros
+ have, for PRINT_STYLE 2, an AUTOLEAD
+ call, which requires that an LS be
+ performed with the #SAVED_LEAD in
+ order to remove register #AUTO_LEAD or
+ #AUTO_LEAD_FACTOR.
+ #SAVED_UNDERSCORE_WEIGHT Stores underscore weight whenever needed
+ #SAVED_UNDERSCORE_WEIGHT_ADJ SAVED_UNDERSCORE_WEIGHT/2
+ #SAVED_VFP Store variable footer position whenever needed
+ #SAVED_WEIGHT Stores weight given to RULE_WEIGHT whenever needed
+ #SAVED_WEIGHT_ADJ SAVED_UNDERSCORE_WEIGHT/2
+ #SEP_TYPE Set to 1 if LIST separator is ( or [ or {
+ #SH_COLOR Colorize subheads? (boolean)
+ #SH_BASELINE_ADJ #DOC_LEAD/8 (TYPESET) or /5 (TYPEWRITE)
+ (used for subhead vertical spacing)
+ #SH_NUM Subhead number
+ #SHIM Amount of lead required to advance to
+ next valid baseline
+ #SILENT_BQUOTE_LN "Silently" linenumber blockquotes? (boolean)
+ #SILENT_QUOTE_LN "Silently" linenumber quotes? (boolean)
+ #SINGLE_SPACE Is TYPEWRITE in single space mode? (boolean)
+ #SKIP ENTRY If one, don't print the first entry (the
+ document title) in the TOC of uncollated docs.
+ #SKIP_FOOTER If 1, instructs DO_FOOTER to do nothing
+ if B_MARGIN falls below FOOTER_MARGIN
+ #SLANT_MEANS_SLANT For TYPEWRITE. (boolean)
+ #SLANT_WAS_ON Keeps track of SLANT when it needs to go off
+ for a while
+ #SPACE_REMAINING Space remaining to footer trap; used to
+ decide whether or not to defer a footnote
+ #SPACE_TO_FOOTER Distance to FOOTER trap; used to calculate
+ available space when FOOTNOTE is called inside
+ a diversion
+ #SR_ADJ_FACTOR An adjustment factor that compensates
+ for the fact that #SPACE_REMAINING
+ sometimes reports a fractionally larger
+ space than is actually available for
+ footnote text.
+ #SSH_BASELINE_ADJ #DOC_LEAD/8 (TYPESET) or /5 (TYPEWRITE)
+ (used for subsubhead vertical spacing)
+ #START If 1, signals completion of START
+ #START_FOR_FOOTERS Toggle set in START; signals to
+ PRINT_HDRFTR that START has been invoked,
+ allowing PRINT_HDRFTR to decide whether or
+ not to print a footer on page 1
+ #START_FOR_MNinit If 1, defer processing MN_INIT until #START
+ #STORED_PP_INDENT Temporarily holds value of #PP_INDENT
+ #SUBHEAD Was subhead the last macro invoked? (boolean)
+ Controls vert. space between SUBHEAD and
+ SUBSUBHEAD
+ #SUBTITLE_COLOR Colorize subtitle? (boolean)
+ #SUBTITLE_COVER_NUM Incrementing register used to define strings
+ $SUBTITLE_COVER_&lt;n&gt;
+ #SUBTITLE_DOCCOVER_NUM Incrementing register used to define strings
+ $SUBTITLE_DOCCOVER_&lt;n&gt;
+ #SUBTITLE_NUM Incrementing register used to define strings
+ $SUBTITLE_&lt;n&gt;
+ #SUBTITLES Holds number of subtitle items
+ #SUITE Current page number (for letters)
+ #SUP_PT_SIZE Point size of superscript
+ #SUSPEND_PAGINATION Suspend pagination prior to endnotes?
+ #SWITCH_HDRFTR Switch HDRFTR_LEFT and HDRFTR_RIGHT?
+ (boolean)
+ tbl*boxed tbl has box or allbox (boolean)
+ tbl*center-label-on-table Is tbl caption centered? (boolean)
+ tbl*have-header tbl has a running header (boolean)
+ tbl*header-ht Depth of tbl*header-div
+ tbl*left-label-on-table Is tbl caption quad left? (boolean)
+ tbl*move-fn-overflow-trap Whether to move FN_OVERFLOW_TRAP_POS
+ to accommodate tbl
+ tbl*move-fn-overflow Amount by which to change
+ FN_OVERFLOW_TRAP_POS to accommodate tbl
+ tbl*move-footer Amount by which to change FOOTER trap
+ to accommodate tbl
+ tbl*move-footer-trap Whether to move FOOTER trap to accommodate
+ tbl
+ tbl*no-shim Whether to SHIM tbl (boolean)
+ tbl*right-label-on-table Is tbl caption quad right? (boolean)
+ #T_MARGIN_LEAD_ADJ \n[.v]-12000; ensures critically accurate
+ placement of first lines on pages when
+ doc processing is not being used and
+ a T_MARGIN has been set
+ #TAB_OFFSET# "#" at the end is from $CURRENT_TAB
+ #TERMINATE Has TERMINATE been called? (boolean)
+ #TITLE_COLOR Colorize title? (boolean)
+ #TITLE_NUM Number of title items
+ #TOC_AUTHORS Whether to append author(s) to toc doc
+ title entries (boolean)
+ #TOC_ENTRY_PN Current page number when a toc entry is
+ collected
+ #TOC_FIRST_PAGE If 1, tells PRINT_PAGE_NUMBER that this
+ is the first page of the toc
+ #TOC_LEAD Leading of toc pages
+ #TOC_PN_PADDING Max. # of placeholders for toc entries
+ page numbers
+ #TOC_PS Point size of toc pages
+ #TOC_RV_SWITCH Switch L/R margins of toc pages
+ #TOC_HEAD_INDENT Indent of toc head entries
+ #TOC_HEAD_SIZE_CHANGE ps in/decrease of toc head entries
+ #TOC_PH_INDENT Indent of toc parahead entries
+ #TOC_PH_SIZE_CHANGE ps in/decrease of toc parahead entries
+ #TOC_SH_INDENT Indent of toc subhead entries
+ #TOC_SH_SIZE_CHANGE ps in/decrease of toc subhead entries
+ #TOC_TITLE_INDENT Indent of toc doc title entries
+ #TOC_TITLE_SIZE_CHANGE ps in/decrease of toc doc title entries
+ @TOP Controls .ns at page top;
+ trap-invoked (FOOTER); mostly trap-removed
+ (RR_@TOP)
+ #TOTAL_FIELDS Total number of letter header fields
+ #TRAP \n[.t]-1 (used in DO_QUOTE)
+ #TW Width of tbl block
+ #UNADJUSTED_DOC_LEAD Argument passed to DOC_LEAD prior to
+ adjusting (set in TRAPS)
+ #UNDERLINE_ITALIC For TYPEWRITE. (boolean)
+ #UNDERLINE_ON Was UNDERLINE called? (boolean)
+ #UNDERLINE_QUOTES Was UNDERLINE_QUOTES called? (boolean)
+ #UNDERLINE_QUOTE Underline pquotes? (boolean)
+ #UNDERLINE_SLANT For TYPEWRITE. (boolean)
+ #UNDERLINE_WAS_ON Was underlining on prior to the
+ invocation of current macro? (boolean)
+ #UNDERLINE_WAS_ON_FN As above, but for footnotes only
+ #USER_DEF_HDRFTR_CENTER Has user defined hdrftr center? (boolean)
+ #USER_DEF_HDRFTR_LEFT Has user defined hdrftr left? (boolean)
+ #USER_DEF_HDRFTR_RIGHT Has user defined hdrftr right? (boolean)
+ #USER_DEF_HEADER_CENTER User defined CENTER title? (boolean);
+ used in COPYSTYLE
+ #USER_DEF_HEADER_LEFT User defined CENTER title? (boolean);
+ used in COPYSTYLE
+ #USER_DEF_HEADER_RIGHT User defined CENTER title? (boolean)
+ used in COPYSTYLE
+ #USERDEF_HDRFTR User defined single string recto/verso
+ header/footer? (boolean)
+ #USERDEF_HDRFTR_RECTO_QUAD 1=left, 2=CENTER, 3=right
+ #USERDEF_HDRFTR_VERSO_QUAD 1=left, 2=CENTER, 3=right
+ #VARIABLE_FOOTER_POS Wandering trap position for processing
+ footnotes and footers; pos depends on number of
+ footnotes
+ #VISUAL_B_MARGIN Set in TRAPS, what \n[nl] would report
+ on the last line of running text before
+ FOOTER is sprung.
+ #VFP_DIFF #FN_DEPTH minus #SAVED_FN_DEPTH; the
+ number of footnote lines that will fit
+ on the page when there will be over, and
+ therefore the amount by which to raise
+ the VFP for footnotes with overflow after
+ the 1st footnote.
+ y Vertical position stored with mk in hdrftrs.
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++STRINGS+++</span>
+
+ $1ST_LETTER First letter of first arg to LIST
+ $ADJUST_BIB_LEAD 2nd arg to BIBLIOGRAPHY_LEAD; if not blank
+ adjust bib leading
+ $ADJUST_EN_LEAD 2nd arg to ENDNOTE_LEAD; if not blank adjust
+ endnote leading
+ $ADJUST_TOC_LEAD 2nd arg to TOC_LEAD; if not blank adjust
+ toc leading
+ $ATTRIBUTE_COLOR Attribution string color
+ $ATTRIBUTE_STRING Attribution string in doc header
+ $ATTRIBUTE_STRING_COVER Attribution string on cover
+ $ATTRIBUTE_STRING_DOCCOVER Attribution string on doc cover
+ $AUTHOR_&lt;n&gt; Document author(s)
+ $AUTHOR The author, or the first argument
+ passed to .AUTHOR ($AUTHOR_1)
+ $AUTHOR_COLOR Author color
+ $AUTHOR_COVER_&lt;n&gt; Author(s) on cover
+ $AUTHOR_DOCCOVER_&lt;n&gt; Author(s) on doc cover
+ $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
+ $AUTHORS Comma-separated concatenated
+ string of all args passed to .AUTHOR
+ $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_QUAD
+ $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_RULE_GAP Distance between the underscores when
+ BIB_STRING (bib first-page header) is
+ double-underlined
+ $BIB_STRING_SIZE_CHANGE Bib title size (+ or -)
+ $BIB_STRING_UNDERLINE_GAP Distance between BIB_STRING text and (first)
+ underline rule
+ $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
+ $BQUOTE_QUAD Quad value for blockquotes
+ $BQUOTE_SIZE_CHANGE ps in/decrease of blockquotes
+ $BX_COLOR Box color
+ $BX_DEPTH Box depth
+ $BX_INDENT Box left margin starting position
+ $BX_WEIGHT Box rule weight
+ $BX_WIDTH Box width
+ $CENTER_TITLE What to put in the middle of header
+ title
+ $CH_NUM Chapter number (as a string)
+ $CHAPTER The chapter number
+ $CHAPTER_STRING What to print whenever the word
+ "chapter" is required
+ $CHAPTER_TITLE Concatenated args passed to CHAPTER_TITLE
+ $CHAPTER_TITLE_&lt;n&gt; Chapter title items
+ $CHAPTER_TITLE_FAM Family of chapter title
+ $CHAPTER_TITLE_FT Font of chapter title
+ $CHAPTER_TITLE_SIZE_CHANGE ps in/decrease of chapter title
+ $CHAPTER_TITLE_PT_SIZE Absolute ps of chapter title
+ $CHAPTER_TITLE_COLOR Color of chapter title
+ $CL_COLOR Circle (ellipse) color
+ $CL_DEPTH Circle (ellipse) depth
+ $CL_INDENT Circle (ellipse) left margin starting
+ position
+ $CL_WEIGHT Circle (ellipse) rule weight
+ $CL_WIDTH Circle (ellipse) width
+ $CLOSE_INDENT Argument passed to CLOSING_INDENT
+ $CODE_FAM Family to use with CODE
+ $CODE_FT Font to use with CODE
+ $CODE_COLOR Color of CODE
+ $COLOR_SCHEME Color scheme arg passed to NEWCOLOR
+ $COPY_STYLE DRAFT or FINAL
+ $COPYRIGHT Copyright info
+ $COPYRIGHT_COVER Copyright info for cover
+ $COPYRIGHT_DOCCOVER Copyright info for doc cover
+ $COPYRIGHT_FAM Copyright line family
+ $COPYRIGHT_FT Copyright line font
+ $COPYRIGHT_PT_SIZE Base string to which $COPYRIGHT_SIZE_CHANGE
+ is appended
+ $COPYRIGHT_SIZE_CHANGE Copyright line size
+ $COPYRIGHT_COLOR Copyright line color
+ $COPYRIGHT_QUAD Copyright line quad direction
+ $COVER_ATTRIBUTE_COLOR Cover attribution string color
+ $COVER_AUTHOR_COLOR Cover author(s) color
+ $COVER_AUTHOR_FAM Cover author(s) family
+ $COVER_AUTHOR_FT Cover author(s) font
+ $COVER_AUTHOR_PT_SIZE Author point size on cover
+ $COVER_AUTHOR_SIZE_CHANGE Cover author(s) size
+ $COVER_CHAPTER_TITLE_COLOR Color of chapter title on cover
+ $COVER_CHAPTER_TITLE_PT_SIZE Size of chapter title on cover
+ $COVER_COLOR Overall cover color
+ $COVER_COPYRIGHT_PT_SIZE Size of copyright info on cover
+ $COVER_DOCTYPE_PT_SIZE Size of doctype on cover
+ $COVER_FAM Overall cover family
+ $COVER_LEAD_ADJ String appended to DOC_LEAD to arrive at
+ base leading of covers
+ $COVER_SUBTITLE_PT_SIZE Size of subtitle on cover
+ $COVER_TITLE_PT_SIZE Size of title on cover
+ $COVER_TITLE User-defined cover title string
+ $COVER_TITLE_&lt;n&gt; Cover title items
+ $COVER_TITLE_FAM Cover title family
+ $COVER_TITLE_FT Cover title font
+ $COVER_TITLE_SIZE_CHANGE Cover title size
+ $COVER_TITLE_COLOR Cover title color
+ $COVER_UNDERLINE_GAP Distance between baseline of the doctype
+ on covers and the underline
+ $COVER_SUBTITLE_FAM Cover subtitle family
+ $COVER_SUBTITLE_FT Cover subtitle font
+ $COVER_SUBTITLE_SIZE_CHANGE Cover subtitle size
+ $COVER_SUBTITLE_COLOR Cover subtitle color
+ $COVER_DOCTYPE_FAM Cover doctype family
+ $COVER_DOCTYPE_FT Cover doctype font
+ $COVER_DOCTYPE_SIZE_CHANGE Cover doctype size
+ $COVER_DOCTYPE_COLOR Cover doctype color
+ $COVER_COPYRIGHT_FAM Cover copyright family
+ $COVER_COPYRIGHT_FT Cover copyright font
+ $COVER_COPYRIGHT_SIZE_CHANGE Cover copyright size
+ $COVER_COPYRIGHT_COLOR Cover copyright color
+ $COVER_MISC_FAM Cover misc family
+ $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
+ $DC_COLOR Dropcap color
+ $DOC_COVER_ATTRIBUTE_COLOR Doc cover attribution string color
+ $DOC_COVER_AUTHOR_COLOR Doc cover author(s) color
+ $DOC_COVER_AUTHOR_FAM Doc cover author(s) family
+ $DOC_COVER_AUTHOR_FT Doc cover author(s) font
+ $DOC_COVER_AUTHOR_PT_SIZE Size of author on doc cover
+ $DOC_COVER_AUTHOR_SIZE_CHANGE Doc cover author(s) size
+ $DOC_COVER_CHAPTER_TITLE_COLOR Color of chapter title on doc cover
+ $DOC_COVER_CHAPTER_TITLE_PT_SIZE Size of chapter title on doc cover
+ $DOC_COVER_COLOR Overall doc cover color
+ $DOC_COVER_COPYRIGHT_COLOR Doc cover copyright color
+ $DOC_COVER_COPYRIGHT_FAM Doc cover copyright family
+ $DOC_COVER_COPYRIGHT_FT Doc cover copyright font
+ $DOC_COVER_COPYRIGHT_PT_SIZE Size of copyright info on doc cover
+ $DOC_COVER_COPYRIGHT_SIZE_CHANGE Doc cover copyright size
+ $DOC_COVER_DOCTYPE_COLOR Doc cover doctype color
+ $DOC_COVER_DOCTYPE_FAM Doc cover doctype family
+ $DOC_COVER_DOCTYPE_FT Doc cover doctype font
+ $DOC_COVER_DOCTYPE_PT_SIZE Size of doctype on doc cover
+ $DOC_COVER_DOCTYPE_SIZE_CHANGE Doc cover doctype size
+ $DOC_COVER_MISC_COLOR Doc cover misc color
+ $DOC_COVER_MISC_FAM Doc cover misc family
+ $DOC_COVER_MISC_FT Doc cover misc font
+ $DOC_COVER_MISC_SIZE_CHANGE Doc cover misc size
+ $DOC_COVER_FAM Overall doc cover family
+ $DOC_COVER_LEAD_ADJ String appended to DOC_LEAD to arrive at base
+ leading of doc covers
+ $DOC_COVER_SUBTITLE_FAM Doc cover subtitle family
+ $DOC_COVER_SUBTITLE_FT Doc cover subtitle font
+ $DOC_COVER_SUBTITLE_PT_SIZE Size of subtitle on doc cover
+ $DOC_COVER_SUBTITLE_SIZE_CHANGE Doc cover subtitle size
+ $DOC_COVER_SUBTITLE_COLOR Doc cover subtitle color
+ $DOC_COVER_TITLE User-defined doc cover title string
+ $DOC_COVER_TITLE_&lt;n&gt; Doc cover title items
+ $DOC_COVER_TITLE_COLOR Doc cover title color
+ $DOC_COVER_TITLE_FAM Doc cover title family
+ $DOC_COVER_TITLE_FT Doc cover title font
+ $DOC_COVER_TITLE_PT_SIZE Size of title on doc cover
+ $DOC_COVER_TITLE_SIZE_CHANGE Doc cover title size
+ $DOC_FAM Predominant font family used in the
+ document
+ $DOC_QUAD Quad used for body text (justified or
+ left)
+ $DOC_TITLE Concatenated args passed to DOCTITLE
+ $DOC_TITLE_&lt;n&gt; DOCTITLE items
+ $DOC_TYPE Document type (default, chapter, named,
+ letter)
+ $DOCCOVER_UNDERLINE_GAP Distance between baseline of doctype and the
+ underline on covers
+ $DOCHEADER_COLOR Color of docheader
+ $DOCHEADER_FAM Family used for all parts of the docheader
+ $DOCHEADER_QUAD Quad direction (LRC) of docheader
+ $DOCHEADER_LEAD_ADJ +|- value applied to #DOC_LEAD to
+ in/decrease leading of doc header
+ $DOCTYPE_COLOR Color of DOCTYPE string in doc header
+ $DOCTYPE_FAM Family to use for DOCTYPE string in
+ doc header
+ $DOCTYPE_FT Font to use for DOCTYPE string in
+ doc header
+ $DOCTYPE_SIZE_CHANGE ps in/decrease of DOCTYPE string in
+ doc header
+ $DOCTYPE_PT_SIZE Absolute ps of DOCTYPE
+ $DOCTYPE_UNDERLINE_GAP Distance between baseline of DOCTYPE and the
+ underline in doc header
+ $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_LEAD Leading of endnotes pages
+ $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_LN_SEP User-defined separator to use between line
+ number(s) and endnotes when endnotes are
+ identified by line number
+ $EN_LN_SIZE_CHANGE Size change (+ or -) for line-numbers in
+ line-number identified endnotes
+ $EN_OPEN_BRACKET Open bracket for line-number enumerated
+ endnotes
+ $EN_PN_STYLE Pagenumbering style for endnotes pages
+ $EN_QUAD Quad for endnotes
+ $EN_STRING Endnotes page head
+ $EN_STRING_FAM Endnotes page head family
+ $EN_STRING_FT Endnotes page head font
+ $EN_STRING_QUAD Endnotes page head quad direction
+ $EN_STRING_RULE_GAP Distance between rules when EN_STRING is
+ double-underlined
+ $EN_STRING_UNDERLINE_GAP Distance between baseline of EN_STRING and
+ underline rule
+ $EN_STRING_SIZE_CHANGE Endnotes page head size
+ $EN_TITLE Endnote document identifier
+ $EN_TITLE_FAM Endnote document identifier family
+ $EN_TITLE_FT Endnote document identifier font
+ $EN_TITLE_QUAD Endnote document identifier quad
+ direction
+ $EN_TITLE_SIZE_CHANGE Endnote document identifier size
+ $EN_TITLE_UNDERLINE_GAP Distance between baseline of EN_TITLE and
+ underline rule
+ $EN_NUMBER_FAM Endnote numbering family
+ $EN_NUMBER_FT Endnote numbering font
+ $EN_NUMBER_SIZE_CHANGE Endnote numbering size
+ $EPI_AUTOLEAD Autolead value (decimals ok) of
+ epigraphs
+ $EPI_COLOR Color of epigraphs
+ $EPI_FAM Family to use in epigraphs
+ $EPI_FT Font to use in epigraphs
+ $EPI_OFFSET_VALUE Arg passed to EPIGRAPH_INDENT if the
+ arg has a unit of measure appended to it
+ $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"
+ $EVAL_EI_ARG Temporary string to find out whether
+ the arg to EPIGRAPH_INDENT ended with
+ a unit of measure
+ $EVAL_QI_ARG Temporary string to find out whether
+ the arg to QUOTE_INDENT ended with
+ a unit of measure
+ eval*[B Used to get substring of \*([B
+ eval*[S Used to get substring of \*([S
+ eval*[s Used to get substring of \*([s
+ $FINIS_COLOR Color of FINIS string
+ $FINIS_STRING What to print when FINIS macro is
+ invoked
+ float-adj:bottom A + or - sign
+ float-adj:top A + or - sign
+ float*type Used with tbl; 'boxed' or 'table'
+ 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
+ $FN_SPACE Post footnote space
+ $FOOTNOTE_COLOR Footnote color
+ $FTR_RECTO_QUAD Quad direction of footer recto
+ $FTR_RECTO_STRING String for footer recto
+ $FTR_VERSO_QUAD Quad direction of footer verso
+ $FTR_VERSO_STRING String for footer verso
+ $HDR_RECTO_QUAD Quad of header recto
+ $HDR_RECTO_STRING String for header recto
+ $HDR_VERSO_QUAD Quad of header verso
+ $HDR_VERSO_STRING String for header verso
+
+<span style="display: block; border-top: 1px solid black; border-bottom: 1px solid black; padding-top: 2px;">**Note: "header", in the descriptions below, means either headers or footers</span>
+ $HDRFTR_CENTER What to put in CENTER part of headers;
+ default doctype
+ $HDRFTR_CENTER_COLOR Color of CENTER part of headers
+ $HDRFTR_CENTER_FAM Family of CENTER part of headers
+ $HDRFTR_CENTER_FT Font of centre part of headers
+ $HDRFTR_CENTER_NEW HDRFTR_CENTER after the start of TOC;
+ defined in HDRFTR_CENTER if
+ HDRFTR_CENTER is called as
+ FOOTER_CENTER
+ $HDRFTR_CENTER_OLD HDRFTR_CENTER just prior to start of
+ TOC; defined in HDRFTR_CENTER if
+ HDRFTR_CENTER is called as
+ FOOTER_CENTER
+ $HDRFTR_CENTER_SIZE_CHANGE ps in/decrease of centre title in
+ headers
+ $HDRFTR_COLOR Color of headers/footers
+ $HDRFTR_FAM Family to use in headers
+ $HDRFTR_LEFT_COLOR Color of LEFT part of headers
+ $HDRFTR_LEFT_FAM Family of left part of headers
+ $HDRFTR_LEFT_FT Font of left part of headers
+ $HDRFTR_LEFT_SIZE_CHANGE ps in/decrease of author in headers
+ $HDRFTR_LEFT What to put in left part of headers;
+ default author
+ $HDRFTR_RIGHT_COLOR Color of RIGHT part of headers
+ $HDRFTR_RIGHT_FAM Family of right part of headers
+ $HDRFTR_RIGHT_FT Font of right part of headers
+ $HDRFTR_RIGHT_SIZE_CHANGE ps in/decrease of right part of
+ headers
+ $HDRFTR_RIGHT What to put in right part of headers;
+ default title
+ $HDRFTR_RULE_COLOR Color of header rule
+ $HDRFTR_SIZE_CHANGE ps in/decrease of headers
+ $HDRFTR_TMP_SIZE_CHANGE_SWITCH Temporarily holds
+ HDRFTR_LEFT_SIZE_CHANGE if
+ #SWITCH_HDRFTRS=1
+ $HDRFTR_TMP_SWITCH Temporarily holds HDRFTR_LEFT if
+ #SWITCH_HDRFTRS=1
+ $HDRFTR_TMP_COLOR_SWITCH Temporarily holds HDRFTR_LEFT_COLOR if
+ #SWITCH_HDRFTRS=1
+ $HEAD_COLOR Head color
+ $HEAD_FAM Family to use for section titles
+ $HEAD_FT Font to use for section titles
+ $HEAD_QUAD Quad value of section titles
+ $HEAD_SIZE_CHANGE ps in/decrease of section titles
+ $HEAD_UNDERLINE_GAP Distance between a head and the underline
+ $HYPHEN Vertically adjusted hyphen used around page
+ numbers
+ $LHS Holds digits on the left side of the decimal
+ in weight arg passed to RULE_WEIGHT
+ $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_COLOR Linenumber color
+ $LN_FAMILY Linenumber family
+ $LN_FONT Linenumber font
+ $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
+ $LN_SIZE_CHANGE ps in/decrease of linenumbers
+ $MISC_&lt;n&gt; Position of args pass to MISC
+ $MISC_COLOR Misc color
+ $MISC_COVER_&lt;n&gt; Misc items for cover
+ $MISC_DOCCOVER_&lt;n&gt; Misc items for doc cover
+ $MISC_QUAD Misc quad direction
+ $MN-arg&lt;n&gt; Sequentially numbered args passed to MNinit
+ MN-color Color of margin note
+ MN-curr Number of current margin note
+ MN-dir Left or right margin note
+ MN-font Font of margin note
+ MN-left-ad Fill mode of margin note
+ PAGE# For use in hdrftr strings where page #
+ is needed; \*[PAGE]
+ $PAGENUM_COLOR Page number color
+ $PAGENUM_STYLE String passed to PAGENUM_STYLE
+ $PAGE_NUM_FAM Family of page numbers
+ $PAGE_NUM_FT Font of page numbers
+ $PAGE_NUM_SIZE_CHANGE ps in/decrease of page numbers
+ $PAPER Paper size (LETTER, A4, LEGAL);
+ default=LETTER
+ $PH_COLOR Parahead color
+ $PH_FAM Parahead family
+ $PH_FT Parahead font
+ $PH_SIZE_CHANGE ps in/decrease of paraheads
+ $PH_SPACE Amount of horizontal space between a parahead
+ and the start of paragraph text
+ $PP_FT Font used in paragraphs
+ $RESTORE_PAGENUM_STYLE Hold previous page numbering style
+ $ROMAN_WIDTH&lt;n&gt; The digit(s) appended by user to ROMAN or
+ roman when LIST is invoked
+ $Q_LN_GUTTER Gutter between linenumbers and quotes
+ in quotes
+ $Q_OFFSET_VALUE Arg passed to QUOTE_INDENT if the
+ arg has a unit of measure appended to it
+ $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*post-punct Final punctuation mark of references
+ ref*spec!&lt;n&gt; Holds fields required by differing reference
+ types
+ ref*string The data passed to a reference
+ $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
+ $REF_STYLE MLA bibliography-style or footnote/endnote
+ style; used in ref*add-&lt;x&gt;
+ $RESTORE_SS_VAR Saves \*[$SS_VAR] for use with ref*build
+ #REVISION The revision number (string valued)
+ $REVISION_STRING What to print whenever the word
+ "revision" is required
+ $RHS Holds digits on the right side of the decimal
+ in weight arg passed to RULE_WEIGHT
+ $RL_COLOR Rule color (DRH/DRV)
+ $RL_DEPTH Rule depth (DRH/DRV)
+ $RL_INDENT Left start position of rule (DRH/DRV)
+ $RL_LENGTH Rule length (DRH/DRV)
+ $RL_WEIGHT Rule weight (DRH/DRV)
+ $SAVED_COPYRIGHT Temporarily holds string in $COPYRIGHT
+ $SAVED_RULE_GAP Temporarily holds string in $RULE_GAP
+ $SAVED_DOC_FAM Document family in effect before COLLATE
+ $SAVED_PP_FT $PP_FT in effect at start of
+ .COLLATE; tested for and removed
+ in .PP
+ $SH_FAM Family to use in subheads
+ $SH_FT Font to use in subheads
+ $SH_SIZE_CHANGE ps in/decrease of subheads
+ $SH_COLOR Subhead color
+ $SIG_SPACE Arg passed to macro, SIGNATURE_SPACE
+ $SUBTITLE Concatenated args passed to SUBTITLE
+ $SUBTITLE_&lt;n&gt; Subtitle items for doc header
+ $SUBTITLE_COLOR Color of subtitle
+ $SUBTITLE_COVER_&lt;n&gt; Subtitle items for cover
+ $SUBTITLE_DOCCOVER_&lt;n&gt; Subtitle items for doc cover
+ $SUBTITLE_FAM Family to use for subtitle in doc
+ header
+ $SUBTITLE_FT Font to use for subtitle in doc header
+ $SUBTITLE_SIZE_CHANGE ps in/decrease of subtitle
+ $SUBTITLE_PT_SIZE Absolute ps of subtitle
+ $SUITE The #SUITE number register
+ tbl*center 'C' if set
+ tbl*label Text of tbl caption
+ tbl*needs # of rows of tbl data required to print
+ tbl near bottom of page
+ tbl*user-add-space User-added space before a tbl caption
+ $TITLE Concatenated args pass to TITLE
+ $TITLE_&lt;n&gt; Title items
+ $TITLE_COLOR Color of title
+ $TITLE_FAM Family to use for title in doc header
+ $TITLE_FT Font to use for title in doc header
+ $TITLE_PT_SIZE Absolute point size of title in docheader
+ $TITLE_SIZE_CHANGE ps in/decrease of title in doc header
+ $TOC_AUTHORS What to print after toc doc title entry
+ if #TOC_AUTHORS=1
+ $TOC_FAM Family to use on toc pages
+ $TOC_HEAD_FAM Family of toc head entries
+ $TOC_HEAD_FT Font of toc head entries
+ $TOC_HEAD_ITEM A head as collected for TOC_ENTRIES
+ $TOC_HEADER_FAM Family to use for "Contents"
+ $TOC_HEADER_FT Font to use for "Contents"
+ $TOC_HEADER_QUAD Quad direction of "Contents"
+ $TOC_HEADER_SIZE ps in/decrease of "Contents"****
+ $TOC_HEADER_STRING Header string of first toc page
+ $TOC_LEAD Leading of toc pages
+ $TOC_PH_ITEM Toc parahead entry
+ $TOC_PN Sets up toc leaders + entry pn
+ (typeset)
+ $TOC_PN_FAM Family for toc entries page numbers
+ $TOC_PN_FT Font for toc entries page numbers
+ $TOC_PN_SIZE_CHANGE ps in/decrease of toc entries page
+ numbers
+ $TOC_PN_STYLE Page-numbering style of toc pages
+ $TOC_PN_TYPEWRITE Sets up toc leaders + entry pn
+ (typewrite)
+ $TOC_PH_FAM Family of toc parahead entries
+ $TOC_PH_FT Font of toc parahead entries
+ $TOC_PARAHEAD_ITEM A parahead collected for TOC_ENTRIES
+ $TOC_SH_FAM Family of toc subhead entries
+ $TOC_SH_FT Font of toc subhead entries
+ $TOC_SH_ITEM A subhead collected for TOC_ENTRIES
+ $TOC_TITLE_FAM Family of toc doc title entries
+ $TOC_TITLE_FT Font of toc doc title entries
+ $TOC_TITLE_ITEM Toc document title item
+ $USER_SET_TITLE_ITEM User defined toc doc title entry as
+ set by TOC_TITLE_ENTRY
+ $UR_PAGINATION_STYLE Pagination style prior to endnotes
+ $USERDEF_HDRFTR_RECTO User defined header/footer recto string
+ $USERDEF_HDRFTR_VERSO User defined header/footer verso string
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++PREPROCESSOR KEYWORDS+++</span>
+
+ (eqn) EQ EN (grn) GS GE GF (pic) PS PE (refer) R1 R2 [ ]
+
+ (tbl) TS TE TH (grap) G1 G2 (ideal) IS IE (chem) cstart cend
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++ALIASES+++</span>
+
+<span style="display: block; border: 1px solid black; padding-left: 12px; padding-bottom: 9px;">
+<span style="display: block; margin-top: -1em;">Please note:</span>
+Prior to version 1.1.9, all macros that included the word COLOR had
+aliases that used COLOUR instead. This convenience has now been
+removed, in an effort to reduce the size of the om.tmac file.
+
+Furthermore, if you want the convenience, you&#8217;ll have to edit the
+om.tmac file. Simply aliasing, say, HEAD_COLOR as HEAD_COLOUR will
+not work, owing to significant changes in the handling of
+docelement control macros that end in _COLOR.
+</span>
+
+<span style="display: block; margin-top: -1.5em; margin-bottom: -2.5em;">+++These aliases are for convenience, and header/footer management+++</span>
+
+ BIBLIOGRAPHY_STRING_UNDERSCORE BIBLIOGRAPHY_STRING_UNDERLINE
+ CITATION BLOCKQUOTE
+ CITE BLOCKQUOTE
+ COL_BREAK COL_NEXT
+ DOC_FAM DOC_FAMILY
+ DOC_L_LENGTH DOC_LINE_LENGTH
+ DOC_L_LENGTH DOC_LINE_LENGTH
+ DOC_L_MARGIN DOC_LEFT_MARGIN
+ DOC_L_MARGIN DOC_LEFT_MARGIN
+ DOC_LS DOC_LEAD
+ DOC_PS DOC_PT_SIZE
+ DOC_R_MARGIN DOC_RIGHT_MARGIN
+ DOC_R_MARGIN DOC_RIGHT_MARGIN
+ ENDNOTE_STRING_UNDERSCORE ENDNOTE_STRING_UNDERLINE
+ ENDNOTE_TITLE_UNDERSCORE ENDNOTE_TITLE_UNDERLINE
+ FOOTER_CENTER_CAPS HDRFTR_CENTER_CAPS
+ FOOTER_CENTER HDRFTR_CENTER
+ FOOTER_CENTRE_CAPS HDRFTR_CENTER_CAPS
+ FOOTER_CENTRE HDRFTR_CENTER
+ FOOTER_LEFT_CAPS HDRFTR_LEFT_CAPS
+ FOOTER_LEFT HDRFTR_LEFT
+ FOOTER_PLAIN HDRFTR_PLAIN
+ FOOTER_RECTO HDRFTR_RECTO
+ FOOTER_RIGHT_CAPS HDRFTR_RIGHT_CAPS
+ FOOTER_RIGHT HDRFTR_RIGHT
+ FOOTER_RULE_GAP HDRFTR_RULE_GAP
+ FOOTER_RULE HDRFTR_RULE
+ FOOTER_VERSO HDRFTR_VERSO
+ HDRFTR_RULE_INTERNAL HDRFTR_RULE
+ HEADER_CENTER_CAPS HDRFTR_CENTER_CAPS
+ HEADER_CENTER HDRFTR_CENTER
+ HEADER_CENTRE_CAPS HDRFTR_CENTER_CAPS
+ HEADER_CENTRE HDRFTR_CENTER
+ HEADER_LEFT_CAPS HDRFTR_LEFT_CAPS
+ HEADER_LEFT HDRFTR_LEFT
+ HEADER_PLAIN HDRFTR_PLAIN
+ HEADER_RECTO HDRFTR_RECTO
+ HEADER_RIGHT_CAPS HDRFTR_RIGHT_CAPS
+ HEADER_RIGHT HDRFTR_RIGHT
+ HEADER_RULE_GAP HDRFTR_RULE_GAP
+ HEADER_RULE HDRFTR_RULE
+ HEADER_VERSO HDRFTR_VERSO
+ PAGENUM PAGENUMBER
+ PAGINATION PAGINATE
+ PP_FT PP_FONT
+ PRINT_FOOTNOTE_RULE FOOTNOTE_RULE
+ SWITCH_FOOTERS SWITCH_HDRFTR
+ SWITCH_HEADERS SWITCH_HDRFTR
+ TOC_LS TOC_LEAD
+ TOC_PS TOC_PT_SIZE
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++These aliases are used for docelement type-style control+++</span>
+
+ 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
+ DOCHEADER_QUAD _QUAD
+ 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
+ LINENUMBER_FAMILY _COLOR
+ LINENUMBER_FONT _COLOR
+ LINENUMBER_SIZE _COLOR
+ LINENUMBER_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
+
+<span style="display: block; margin-top: -.5em; margin-bottom: -2.5em;">+++These aliases are used to control underlining/underscoring weights+++</span>
+
+ UNDERSCORE_WEIGHT RULE_WEIGHT
+ HEAD_UNDERLINE_WEIGHT RULE_WEIGHT
+ HEADER_RULE_WEIGHT RULE_WEIGHT
+ FOOTER_RULE_WEIGHT RULE_WEIGHT
+ FOOTNOTE_RULE_WEIGHT RULE_WEIGHT
+ COVER_UNDERLINE_WEIGHT RULE_WEIGHT
+ DOC_COVER_UNDERLINE_WEIGHT RULE_WEIGHT
+ ENDNOTE_STRING UNDERLINE_WEIGHT RULE_WEIGHT
+ ENDNOTE_TITLE UNDERLINE_WEIGHT RULE_WEIGHT
+ BIBLIOGRAPHY_STRING UNDERLINE_WEIGHT RULE_WEIGHT
+</span>
+
+<div class="rule-long" style="margin-top: 2em;"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: right;"><a href="#top">Top</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/stylesheet.css b/contrib/mom/momdoc/stylesheet.css
new file mode 100644
index 0000000..9d9efa3
--- /dev/null
+++ b/contrib/mom/momdoc/stylesheet.css
@@ -0,0 +1,691 @@
+/* Copyright (C) 2004-2020 Free Software Foundation, Inc. */
+/* This file is part of mom, which is part of groff, a free software */
+/* project. */
+
+/* You can redistribute it and/or modify it under the terms of the */
+/* "GNU General Public License" as published by the "Free Software */
+/* Foundation", version 2.
+
+/* The license text is available in the internet at */
+/* <http://www.gnu.org/licenses/gpl-2.0.html> */
+
+/* stylesheet for the mom macros documentation */
+
+a:link { color: blue; text-decoration: none; }
+a:hover { color: red; text-decoration: underline; }
+a:visited { color: purple; text-decoration: none; }
+a:visited:hover { color: purple; text-decoration: underline; }
+a.header-link:visited { color: #6e70cc ; }
+a.header-link:visited:hover { color: #6e70cc ; }
+
+a:link.quick { text-decoration: underline; }
+.version /* version number for top of toc.html */
+{
+ font-size: 90% ;
+ text-align: center ;
+}
+
+.page /* Page setup: page color, size and border */
+{
+ width: 67% ;
+ position: relative ;
+ top: 12px ;
+ bottom: 12px ;
+ margin: auto ;
+ padding: 12px ;
+ border: solid 1px #ceac8d ;
+ color: #302419 ;
+ background-color: #ffffeb ;
+ font: 1em/1.5em arial,sans-serif ;
+ font-variant-ligatures: none;
+}
+
+.nobr /* Make <nobr> a class property */
+{
+ white-space: nowrap ;
+ hyphens: none ;
+}
+
+/* Heads */
+
+h1.docs
+{
+ font-family: arial,sans-serif ;
+ font-size: 125% ;
+ text-align: center ;
+ color: #002b56 ;
+ background-color: #e2f1ff ;
+ outline: solid 1px #99cccc ;
+ padding: 6px ;
+}
+h2.docs
+{
+ margin-bottom: -.25em ;
+ font-size: 105% ;
+ color: #000056 ;
+}
+h2.macro-group /* ie "Page setup" or "Indents" or "Multi-columns" */
+{
+ margin-top: 1em ;
+ font-size: 120% ;
+ color: #000056 ;
+ background-color: #dfccad ;
+ padding: 6px ;
+}
+h3.docs
+{
+ margin-bottom: -.5em ;
+ font-size: 95% ;
+ color: #000056 ;
+ text-transform: uppercase ;
+}
+h3.appendices
+{
+ font-size: 100% ;
+ text-transform: none ;
+}
+h3.notes
+{
+ display: inline-block ;
+ margin-top: .5em ;
+}
+h3.control
+{
+ padding-top: .5em ;
+ font-size: 100% ;
+ text-transform: none ;
+}
+h3.numbered
+{
+ font-size: 100% ;
+ margin-bottom: -.5em ;
+}
+h3.macro-id
+{
+ font-size: 105% ;
+ color: #000056 ;
+ text-transform: uppercase ;
+ margin-top: 3px ;
+ margin-bottom: 0px ;
+}
+h4.docs
+{
+ font-size: 95% ;
+ margin-bottom: -.5em ;
+ color: #000056 ;
+}
+h4.doc-param-macros
+{
+ margin-top: -.5em ;
+}
+h4.arg-list
+{
+ margin-top: -.5em ;
+}
+h4.fields
+{
+ color: #302419 ;
+}
+h5.docs
+{
+ margin-bottom: -.5em ;
+ font-size: 95% ;
+ color: #000056 ;
+ text-transform: uppercase ;
+}
+ul.doc-param-macros
+{
+ margin-top: .75em ;
+ margin-left: -.5em ;
+}
+.control-macros-header
+{
+ display: inline-block ;
+ margin-bottom: -.25em ;
+ padding: 2px 6px 0 6px ;
+ outline: 1px solid #000058 ;
+ font-size: 100% ;
+ background-color: #e2f1ff ;
+}
+.control-macro
+{
+ font-size: 100% ;
+ margin-bottom: -.75em ;
+ color: #2f2f71 ;
+}
+.macro-id-overline
+{
+ display: inline-block ;
+ border-top: solid 2px #8d8775 ;
+ margin-bottom: .5em ;
+}
+
+/* Paragraphs */
+
+p.no-indent
+{
+ text-indent: 0px ;
+}
+p.requires
+{
+ font-family: arial,sans-serif ;
+ font-style: italic ;
+ text-indent: 0px ;
+ margin-top: .25em ;
+}
+p.alias
+{
+ font-family: arial,sans-serif ;
+ font-style: normal ;
+ text-indent: 0px ;
+ margin-top: .25em ;
+}
+
+/* Horizontal rules */
+
+hr /* horizontal rules need a border to be colorized) */
+{
+ border: solid 1px #8d8775 ;
+}
+div.rule-short /* for section breaks; top/bottom margins set manually */
+{
+ display: block ;
+ width: 25% ;
+ margin: auto;
+ clear: both ;
+}
+div.rule-medium /* underneath mini-tocs; top/bottom margins set manually */
+{
+ display: block ;
+ width: 40% ;
+ margin: auto;
+ clear: both ;
+}
+div.rule-long /* precedes nav bar at bottom of page */
+{
+ display: block ;
+ width: 90% ;
+ margin: auto;
+}
+
+/* Boxed text */
+
+.box-macro-args /* Macro name+args */
+{
+ display: block ;
+ border: solid 1px #302419 ;
+ padding-top: 5px ;
+ padding-bottom: 3px ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ background-color: #ffffff ;
+ white-space: nowrap ;
+ overflow: auto ;
+}
+.box-code
+{
+ display: block ;
+ width: 100% ;
+ border: solid 1px #302419 ;
+ padding-top: 5px ;
+ padding-bottom: 18px ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ color: #6f614a ;
+ background-color: #ffffff ;
+ white-space: nowrap ;
+}
+.box-tip
+{
+ outline: solid 1px #ceac8d ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ text-align: justify ;
+ background-color: #f9f9d9 ;
+ margin-bottom: 1.5em ;
+ }
+.box-example-layout
+{
+ outline: solid 1px #ceac8d ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ text-align: justify ;
+ background-color: #f9f9d9 ;
+ margin-bottom: 2.5em ;
+ }
+.box-notes
+{
+ outline: solid 1px #ceac8d ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ text-align: justify ;
+ background-color: #f9f9d9 ;
+ margin-bottom: 1.5em ;
+ }
+.box-important
+{
+ outline: solid 1px #ce7a65 ;
+ padding-left: 15px ;
+ padding-right: 15px ;
+ text-align: justify ;
+ background-color: #f9f9d9 ;
+ margin-bottom: 1.5em ;
+}
+p.tip
+{
+ padding-top: 9px ;
+ padding-bottom: 9px ;
+ text-indent: 0px ;
+}
+p.tip-top
+{
+ padding-top: 9px ;
+ text-indent: 0px ;
+}
+p.tip-bottom
+{
+ padding-bottom: 9px ;
+ text-indent: 0px ;
+}
+
+/* Pre-formatted code */
+
+span.pre /* pre-formatted multi-line blocks; indent must be exactly 2 spaces */
+{
+ display: block ;
+ position: relative ;
+ top: -1em ;
+ margin-bottom: -1.5em ;
+ font-family: "Lucida Console",monospace ;
+ font-weight: bolder ;
+ font-size: 95% ;
+ white-space: pre ;
+ overflow: auto ;
+}
+span.defaults
+{
+ margin-left: 6px ;
+ padding-bottom: 1em ;
+ font-size: 95% ;
+}
+span.pre-in-pp
+{
+ display: block ;
+ position: relative ;
+ top: -1em ;
+ margin-bottom: -.5em ;
+ font-family: "Lucida Console",monospace ;
+ font-weight: bolder ;
+ font-size: 95% ;
+ white-space: pre ;
+ overflow: auto ;
+}
+span.important
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ color: #8b0000 ;
+}
+span.note
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ color: #443526 ;
+}
+span.additional-note
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ font-style: italic ;
+ color: #443526 ;
+}
+span.tip
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ color: #443526 ;
+}
+span.experts
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ color: #443526 ;
+}
+/* Mini-tocs (usually at top of page) */
+
+/* 1-column, centered mini-toc */
+ul.mini-toc-centered
+{
+ text-align: center ;
+ list-style-type: none ;
+ margin-left: -40px ;
+}
+
+/* 2-column mini-toc column defs*/
+.mini-toc-col-1
+{
+ float: left ;
+ width: 49% ;
+ margin-left: -10px ;
+}
+.mini-toc-col-2
+{
+ float: left ;
+ width: 51% ;
+ clear: right ;
+}
+
+/* 3-column mini-toc column defs */
+.col-1-definitions
+{
+ float: left ;
+ width: 32% ;
+ height: 55em ;
+ padding-bottom: 9px;
+ background-color: #ded4bd ;
+ margin-right: 2% ;
+}
+.col-2-definitions
+{
+ float: left ;
+ width: 32% ;
+ height: 55em ;
+ padding-bottom: 9px;
+ background-color: #ded4bd ;
+ margin-right: 2% ;
+}
+.col-3-definitions
+{
+ float: left ;
+ width: 32% ;
+ height: 55em ;
+ padding-bottom: 9px;
+ background-color: #ded4bd ;
+ margin-bottom: 24px ;
+}
+
+/* List styles */
+
+ul.toc
+{
+ margin-top: .5em ;
+}
+ul.no-enumerator
+{
+ list-style-type: none ;
+}
+.list-head
+{
+ font-family: arial,sans-serif ;
+ font-weight: bolder ;
+ font-size: 110% ;
+ color: #000056 ;
+}
+.list-head-goodies
+{
+ font-family: arial,sans-serif ;
+ font-weight: normal ;
+ font-size: 110% ;
+ color: #000056 ;
+}
+.no-anchor
+{
+ color: #302419 ;
+ font-weight: bold ;
+}
+.text-color
+{
+ color: #302419 ;
+}
+li.item
+{
+ font-family: arial,sans-serif ;
+ font-weight: normal ;
+ font-size: 100% ;
+ margin-left: -10px ;
+ list-style-type: disc ;
+}
+.mini-toc
+{
+ margin-top: -1em ;
+ font-size: 90% ;
+}
+.sublist
+{
+ margin-left: -1em ;
+ font-size: 90% ;
+ color: #302419 ;
+ list-style-type: disc ;
+}
+.sub
+{
+ list-style-type: circle ;
+}
+.normal
+{
+ font-style: normal ;
+ font-size: 100% ;
+}
+.normal-smaller
+{
+ font-weight: normal ;
+ color: #302419 ;
+ font-size: 90% ;
+}
+.normal-sub-sub
+{
+ font-weight: normal ;
+ color: #302419 ;
+ font-size: 90% ;
+}
+
+/* Macro lists / defaults */
+
+div.macro-list-container
+{
+ background-color: #ded4bd ;
+ margin-bottom: 1.5em ;
+}
+h3.macro-list
+{
+ font-size: 100% ;
+ color: #000056 ;
+ text-transform: uppercase ;
+ padding: 9px ;
+}
+ul.macro-list
+{
+ margin-left: -21px ;
+ padding-right: 12px ;
+ list-style-type: none ;
+ font-family: arial,sans-serif ;
+ margin-top: -1.25em ;
+ padding-bottom: 6px ;
+}
+ol.macro-list
+{
+ font-family: arial,sans-serif ;
+ margin-top: -1.25em ;
+ padding-bottom: 6px ;
+}
+
+.defaults-container
+{
+ background-color: #e3d2b1 ;
+ border: 1px solid #3f2c00 ;
+ margin-bottom: 2.5em ;
+}
+h3.defaults
+{
+ font-size: 100% ;
+ color: #000056 ;
+ text-transform: uppercase ;
+ padding: 9px ;
+}
+p.defaults
+{
+ margin-top: .25em ;
+ margin-left: 6px ;
+ margin-right: 12px ;
+ margin-bottom: 0 ;
+}
+#toc-title, #toc-head, #toc-subhead, #toc-parahead
+{
+ display: block ;
+ margin-top: -1em ;
+ margin-bottom: -1em ;
+}
+
+/* Bottom of page spacer */
+
+div.bottom-spacer
+{
+ display: block ;
+ height: 24px ;
+}
+
+/* General markup */
+
+kbd
+{
+ font-family: "Lucida Console",monospace ;
+ font-weight: bold ;
+ font-size: 98% ;
+}
+kbd.macro-args
+{
+ margin-right: .5em ;
+ color: #6f614a ;
+ white-space: nowrap ;
+ overflow: auto ;
+}
+
+/* tocs */
+
+h1.toc
+{
+ font-family: arial,sans-serif ;
+ font-size: 175% ;
+ text-align: center ;
+ color: #002b56 ;
+ background-color: #e2f1ff ;
+ outline: solid 1px #99cccc ;
+ padding: 6px ;
+}
+h2.toc
+{
+ font-size: 120% ;
+ color: #000056 ;
+}
+h3.toc
+{
+ margin-top: -.5em ;
+ margin-bottom: -.5em ;
+ font-size: 100% ;
+ color: #6e70cc ;
+}
+.highlight
+{
+ font-weight: bold ;
+}
+.fourth-level
+{
+ margin-left: -1.25em ;
+ list-style-type: none ;
+}
+ul.toc-docproc
+{
+ margin-left: -1em ;
+}
+.toc-docproc-header
+{
+ margin-top: -.5em ;
+ text-transform: uppercase ;
+}
+a.header-link
+{
+ color: #6e70cc ;
+ font-size: 95% ;
+}
+
+/* Examples */
+
+.examples-container
+{
+ border: solid 1px #917963 ;
+ background-color: #f9f9d9 ;
+ padding-left: 24px ;
+ padding-right: 24px ;
+ padding-top: 3px ;
+ padding-bottom: 3px ;
+}
+
+.examples
+{
+ font-weight: bolder ;
+ font-size: 98% ;
+ color: #524b3f ;
+ margin-top: 12px ;
+ margin-bottom: 3px ;
+}
+
+/* definitions.html */
+
+table.definitions /* mini-toc is set up as a table */
+{
+ margin-top: 12px ;
+ text-align: left ;
+ margin-left: 12px ;
+}
+th.definitions
+{
+ padding-bottom: 6px ;
+ font-size: 120% ;
+ color: #000056 ;
+}
+dt /* definition terms in italic*/
+{
+ font-style: italic ;
+}
+dt.no-italic
+{
+ font-style: normal ;
+}
+
+/* Tables */
+table.quick-ref
+{
+ margin-top: .25em ;
+}
+table.quick-ref, th.quick-ref
+{
+ padding-bottom: .25em ;
+ font-family: "Lucida Console",monospace ;
+ font-weight: bold ;
+ text-align: left ;
+}
+
+td
+{
+ padding: 0 ;
+ padding-left: .5em ;
+}
+
+/* Misc */
+
+span.book-title
+{
+ font-style: italic ;
+}
+
+dt.params
+{
+ font-style: normal ;
+ font-weight: bold ;
+}
+
+dd.cover-args
+{
+ margin-bottom: .25em;
+ margin-left: 1.25em ;
+}
diff --git a/contrib/mom/momdoc/tables-of-contents.html b/contrib/mom/momdoc/tables-of-contents.html
new file mode 100644
index 0000000..1f9affb
--- /dev/null
+++ b/contrib/mom/momdoc/tables-of-contents.html
@@ -0,0 +1,1224 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Document processing, tables of contents</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="refer.html#top">Next: Bibliographies and references</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Tables of contents</h1>
+
+<div style="width: 68%; margin: auto;">
+<ul class="no-enumerator">
+ <li><a href="#toc-intro">Introduction to tables of contents</a></li>
+ <li><a href="#toc-appearance">Tables of contents appearance and behaviour</a></li>
+ <li><a href="#pdf-output">PDF output</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#positioning">Positioning the table of contents</a></li>
+ <li><a href="#auto-relocate-toc">AUTO_RELOCATE_TOC</a></li>
+ <li><a href="#psselect"><kbd>psselect</kbd></a></li>
+ </ul></li>
+ <li><a href="#toc">The TOC macro</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#toc-heading">TOC_HEADING</a></li>
+ </ul></li>
+ <li><a href="#toc-control-top">Control macros for tables of contents</a>
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#index-toc-control">Table of contents control macros</a></li>
+ </ul></li>
+</ul>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="toc-intro" class="docs">Introduction to tables of contents</h2>
+
+<p>
+Want a table of contents for your document? Easy. Just enter
+<br/>
+<span class="pre-in-pp">
+ .TOC
+</span>
+as the very last macro of your input file. Mom will have picked
+up all document titles (in
+<a href="rectoverso.html#collate">collated</a>
+documents) and headings, as well as the endnotes section and
+bibliography, if they exist, and assigned them the appropriate page
+number. Talk about a no-brainer!
+</p>
+
+<p>
+That said, tables of contents have even more control macros than
+endnotes. As always, the reason for so many control macros is so
+that if you want to change just about any aspect of the table of
+contents&#8217; typographic appearance, you can.
+</p>
+
+<h2 id="toc-appearance" class="docs">Tables of contents appearance and behaviour</h2>
+
+<p>
+When you output a table of contents (with
+<kbd><a href="#toc">.TOC</a></kbd>),
+mom finishes processing the last page of your document then breaks
+to a new page for printing the table of contents.
+</p>
+
+<p>
+Mom follows standard typesetting conventions for tables of contents.
+To this end, if
+<a href="headfootpage.html#headers">HEADERS</a>
+are enabled for the document, the first page of the table of
+contents has no page header, but does have a first page number
+(roman numeral), always &#8220;i&#8221;, in the bottom margin. If
+<a href="headfootpage.html#footers">FOOTERS</a>
+are enabled for the document, the first page has neither a footer,
+nor a page number in the top margin. (If you absolutely must have
+a page footer on the first page of the table of contents, simply
+invoke
+<a href="headfootpage.html#footer-on-first-page"><kbd>.FOOTER_ON_FIRST_PAGE</kbd></a>
+immediately before <kbd>.TOC</kbd>.) Subsequent table of contents
+pages have both page headers or footers and a page number.
+</p>
+
+<p>
+Entries in a table of contents are hierarchically indented, as you
+would expect, and if headings are numbered in the body of the document,
+you can instruct mom to number them in the table of contents as
+well (see
+<a href="#toc-entry-numbers">TOC_ENTRY_NUMBERS</a>).
+</p>
+
+<p>
+Tables of contents are never set in columns, regardless of whether
+the rest of the document is. Lastly, if
+<a href="rectoverso.html#recto-verso">recto/verso</a>
+printing is enabled, the table of contents respects it. This
+sometimes leads to tables of contents that begin with the wrong
+margins, but the margins can be corrected either by outputting a
+<a href="headfootpage.html#blank-pages">BLANKPAGE</a>
+or by using the control macro
+<a href="#toc-rv-switch">TOC_RV_SWITCH</a>.
+</p>
+
+<p>
+The overall table of contents
+<a href="definitions.html#family">family</a>,
+<a href="definitions.html#ps">point size</a>
+and
+<a href="definitions.html#leading">lead</a>
+can be altered with
+<a href="definitions.html#controlmacro">control macros</a>,
+as can the family,
+<a href="definitions.html#font">font</a>,
+point size and indent of each level of entry. Furthermore, the page
+numbering style can be changed, as can the amount of visual space
+reserved for entry page numbers.
+</p>
+
+<h2 id="pdf-output" class="docs">PDF output</h2>
+
+<p>
+When files containing a table of contents are processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+entries in the table of contents are clickable links when the
+document is viewed at the screen. The colour of the links is the
+last <kbd>.PDF_LINK_COLOR</kbd> in effect, so if you wish another
+colour, it should be set just before issuing <kbd>.TOC</kbd>.
+</p>
+
+<p>
+When preparing files for printing, coloured links in both the table
+of contents and elsewhere in the document may not be desirable.
+You can disable the colour by passing
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+the <kbd>-c</kbd> option, like this: <br/>
+<span class="pre-in-pp">
+ pdfmom -c doc.mom &gt; doc.pdf
+</span>
+</p>
+
+<h3 id="positioning" class="docs">Positioning the Table of Contents</h3>
+
+<p>
+Because a table of contents can&#8217;t be generated until the
+end of a document (hence the last macro in the file), it is also
+the last page of the document. While this is desirable for some
+language conventions&mdash;French, for example&mdash;it is not
+desirable for others.
+</p>
+
+<h4 id="auto-relocate-toc" class="docs">Automatic PDF relocation of the Table of Contents</h4>
+
+<p>
+When
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+is used to process files with a table of contents, the macro
+<kbd>.AUTO_RELOCATE_TOC</kbd> can be used to reposition the table
+of contents to the top of the output document, with the presence
+of a cover and/or title page sensibly taken into account. Full
+AUTO_RELOCATE_TOC usage is described in the manual,
+<a href="https://www.schaffter.ca/mom/pdf/mom-pdf.pdf"><span class="book-title">Producing PDFs with groff and mom</span></a>.
+</p>
+
+<p>
+In order to take advantage of automatic table of contents
+repositioning, you must use
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>
+with groff&#8217;s native PDF driver (i.e. without the
+<strong>-Tps</strong> flag). Files that need to be processed with
+the <strong>-Tps</strong> flag require you to reposition the table
+of contents yourself with <strong>psselect</strong>, described
+below.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>AUTO_RELOCATE_TOC</kbd> must come before
+<a href="docprocessing.html#start">START</a>.
+</p>
+</div>
+
+<h4 id="psselect" class="docs"><span style="text-transform: none">Using psselect to relocate the Table of Contents in PostScript documents</span></h4>
+
+<p>
+To change the location of the table of contents in files
+processed with <kbd>pdfmom -Tps</kbd>, you have two choices:
+rearrange the pages by hand (okay for one or two hard copies),
+or use the <strong>psselect</strong> programme provided by the
+<strong>psutils</strong> suite of tools (which you may have to
+install as a package from your distribution if it is not already on
+your system).
+</p>
+
+<p>
+The procedure for using <strong>psselect</strong> to put the
+table of contents near the beginning of a document begins by
+you determining how many pages it contains. You can do this by
+previewing the document with the document viewer of your choice
+(gv, Okular, Evince, etc).
+</p>
+
+<p>
+Once you know the number of pages in the table of contents, you use
+<strong>psselect</strong> to place them where you want.
+</p>
+
+<p>
+Say, for example, the table of contents runs to just one page. The
+command to place a one-page table of contents at the start of a
+document is:
+<br/>
+<span class="pre-in-pp">
+ psselect -p _1,1-_2
+</span>
+The <kbd>-p</kbd> option instructs <kbd>psselect</kbd> that what
+follows is a comma-separated list of the order in which you want
+pages of a document rearranged. The underscore character means
+"counting backwards from the end of the document". Thus, the above
+says: "Put the last page first (i.e. the table of contents), followed
+by all pages from the original first page up to the second to last
+(i.e. the last page before the table of contents)."
+</p>
+
+<p>
+If your table of contents runs to two pages, the option to
+<kbd>psselect</kbd> would look like this:
+<br/>
+<span class="pre-in-pp">
+ psselect -p _1-_2,1-_3
+</span>
+If your table of contents runs to two pages and you have a cover
+page, the command would look like this:
+<br/>
+<span class="pre-in-pp">
+ psselect -p 1,_1-_2,2-_3
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>psselect</kbd> outputs to stdout, so you have to redirect the
+output to a new file.
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em">
+ psselect -p &lt;page list&gt; &lt;file&gt;.ps &gt; &lt;new-file&gt;.ps
+</span>
+</p>
+</div>
+
+<!-- -TOC- -->
+
+<div class="macro-id-overline">
+<h3 id="toc" class="macro-id">The TOC macro</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TOC</b> <kbd class="macro-args">[ INCLUDE_TITLE ]</kbd>
+</div>
+
+<p>
+If you want a table of contents, just place <kbd>.TOC</kbd> at the
+very end of your document. Mom takes care of the rest.
+</p>
+
+<p>
+The optional argument, <kbd>INCLUDE_TITLE</kbd>, is needed only
+if your document is standalone, i.e. is not collated, for example
+an essay. By default, mom does not include the title (and page
+number) of standalone documents in the Table of Contents since it
+is largely redundant. If you would like her to include the title,
+invoke <kbd>.TOC</kbd> with <kbd>INCLUDE_TITLE</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+If the last line of text in a document, before <kbd>.TOC</kbd>,
+falls too close to the bottom margin, or if the line is followed
+by a macro likely to cause a linebreak (e.g. <kbd>.LIST OFF</kbd> or
+<kbd>.IQ</kbd>), mom may output a superfluous blank page before the
+Table of Contents.
+</p>
+
+<p class="tip-bottom" style="margin-top: -1em">
+In order to avoid this, insert
+<a href="typesetting.html#el"><kbd>.EL</kbd></a>
+after the last line of text, before <kbd>.TOC</kbd> and/or any
+concluding macros. For example,
+<br/>
+<span class="pre-in-pp">
+ some concluding text.
+ .EL
+ .TOC
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ some concluding text.
+ .EL
+ .LIST OFF
+ .TOC
+</span>
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 class="macro-id">TOC heading</h3>
+</div>
+
+<div id="toc-heading" class="box-macro-args">
+Macro: <b>TOC_HEADING</b> <kbd class="macro-args">&quot;&lt;single line TOC heading&gt;&quot;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Argument must be enclosed in double-quotes
+</p>
+
+<p>
+You may sometimes want to insert a line of text into the table of
+contents without it referring to a page number, for example to
+identify a &#8220;Part I&#8221; and a &#8220;Part II&#8221;.
+</p>
+
+<p>
+Placed before any instance of the
+<a href="docprocessing.html#start">START</a>
+macro, TOC_HEADING inserts its text into the table of contents
+before the next section title or heading. A modest amount of
+whitespace is introduced above and beneath to distinguish it easily
+from table of contents entries.
+</p>
+
+<p>
+The appearance of the heading may be controlled with
+the macro
+<a href="docprocessing.html#toc-heading-style">TOC_HEADING_STYLE</a>.
+</p>
+
+
+<div class="rule-short"><hr/></div>
+
+<h2 id="toc-control-top" class="macro-group">Control macros for tables of contents</h2>
+
+<p>
+Aside from allowing you to set the style of table of contents
+entries on a per-level basis, the control macros let you design
+the table of contents as if they were a complete document unto
+themselves (overall family, headers/footers, pagination, etc).
+</p>
+
+<div class="defaults-container" style="background-color: #ded4bd; border: none;">
+<h3 id="index-toc-control" class="docs defaults">Table of contents control macros</h3>
+
+<ol style="margin-top: .5em; padding-bottom: .5em;">
+ <li><a href="#toc-general">General table of contents style control</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#toc-family">TOC_FAMILY</a> &ndash; base family for tables of contents</li>
+ <li><a href="#toc-pt-size">TOC_PT_SIZE</a> &ndash; base point size for tables of contents</li>
+ <li><a href="#toc-lead">TOC_LEAD</a> &ndash; leading of tables of contents</li>
+ </ul></li>
+ <li><a href="#toc-pagenumbering">Page numbering</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#paginate-toc">PAGINATE_TOC</a> &ndash; turn table of contents pagination on or off</li>
+ <li><a href="#toc-pagenum-style">TOC_PAGENUM_STYLE</a> &ndash; table of contents page numbering style</li>
+ </ul></li>
+ <li><a href="#toc-header">Header string (e.g. &#8220;Contents&#8221;) and style</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#toc-header-string">Changing the header string</a></li>
+ <li><a href="#toc-header-v-pos">Header string vertical placement</a></li>
+ <li><a href="#toc-header-style">Header string control macros and defaults</a></li>
+ </ul></li>
+ <li><a href="#toc-style">Entries and reference page number style</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#toc-pn">Reference page numbers style control</a></li>
+ <li><a href="#toc-title-style">Title entry style control</a></li>
+ <li><a href="#toc-entry-style">Heading entry style control</a></li>
+ <li>Numbering table of contents items
+ <ul style="margin-left: -.75em; list-style: disc">
+ <li><a href="#toc-prefix-ch-number">Prefix chapter/section numbers</a>
+ <ul style="margin-left: -.75em;">
+ <li><a href="#toc-pad-ch-numbers">Pad chapter/section numbers</a></li>
+ </ul></li>
+ <li><a href="#toc-entry-numbers">Numbering heading entries</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a href="#toc-additional">Additional table of contents control macros</a>
+ <ul style="margin-left: -.5em;">
+ <li><a href="#toc-appends-author">Append author(s) to table of contents title entries</a></li>
+ <li><a href="#toc-title-entry">Alter the wording of a table of contents title entry</a></li>
+ <li><a href="#space-toc-items">Space table of contents entries pleasingly</a></li>
+ <li><a href="#toc-padding">Establish the number of placeholders to leave for page reference numbers</a></li>
+ <li><a href="#toc-rv-switch">Switch tables of contents page margins</a></li>
+ </ul></li>
+ <li><a href="#toc-more">I still need more!</a></li>
+</ol>
+</div>
+
+<h4 id="toc-general" class="docs" style="margin-top: -1.5em; margin-bottom: .5em;">1. General tables of contents style control</h4>
+
+<!-- -TOC_FAMILY- -->
+
+<div id="toc-family" class="box-macro-args">
+Macro: <b>TOC_FAMILY</b> <kbd class="macro-args">&lt;family&gt;</kbd>
+</div>
+
+<p>
+TOC_FAMILY establishes the default family for every page element in
+a table of contents, including the table of contents&#8217; header
+string (by default, &#8220;Contents&#8221;) and the page
+number in the top or bottom margin. The default is the prevailing
+document family.
+</p>
+
+<p>
+All page elements in the table of contents also have their own
+_FAMILY control macros, which can be used on a case-by-case basis to
+override the default family set with TOC_FAMILY.
+</p>
+
+<!-- -TOC_PT_SIZE- -->
+
+<div id="toc-pt-size" class="box-macro-args">
+Macro: <b>TOC_PT_SIZE</b> <kbd class="macro-args">&lt;base type size of the toc&gt;</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<p>
+Unlike most other control macros that deal with size of document
+elements, TOC_PT_SIZE takes as its argument an absolute value,
+relative to nothing. (Compare this with the
+<a href="docelement.html#point-size">_SIZE</a>
+control macros.) The argument represents the base point size
+of tables of contents from which the size of all other table of
+contents elements are calculated.
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>
+is 12.5 points (the same default size used in the body of the
+document).
+</p>
+
+<!-- -TOC_LEAD- -->
+
+<div id="toc-lead" class="box-macro-args">
+Macro: <b>TOC_LEAD</b> <kbd class="macro-args">&lt;leading of the toc&gt; [ ADJUST ]</kbd>
+</div>
+
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>; points is assumed
+</p>
+
+<p>
+Unlike most other control macros that deal with leading of document
+elements, TOC_LEAD takes as its argument an absolute value, relative
+to nothing. Therefore, the argument represents the
+<a href="definitions.html#leading">leading</a>
+of tables of contents in
+<a href="definitions.html#picaspoints">points</a>
+unless you append an alternative
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .TOC_LEAD 14
+</span>
+sets the base leading of tables of contents to 14 points, whereas
+<br/>
+<span class="pre-in-pp">
+ .TOC_LEAD .5i
+</span>
+sets the base leading of tables of contents to 1/2 inch.
+</p>
+
+<p>
+If you want the leading of tables of contents adjusted to fill the
+page, pass TOC_LEAD the optional argument <kbd>ADJUST</kbd>. (See
+<a href="docprocessing.html#doc-lead-adjust">DOC_LEAD_ADJUST</a>
+for an explanation of leading adjustment.)
+</p>
+
+<p>
+The default for
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPESET</a>
+is the prevailing document lead (16 by default), adjusted.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Even if you give mom a <kbd>.DOC_LEAD_ADJUST&nbsp;OFF</kbd> command,
+she will still, by default, adjust the leading of the table of
+contents. You <i>must</i> enter
+<kbd>TOC_LEAD&nbsp;&lt;lead&gt;</kbd> with no <kbd>ADJUST</kbd>
+argument to disable this default behaviour.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+Tables of contents are always double-spaced in
+<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>,
+regardless of whether the body of the document is single-spaced.
+</p>
+</div>
+
+<h4 id="toc-pagenumbering" class="docs">2. Page numbering</h4>
+
+<p>
+The pagination style of tables of contents is controlled by the same
+macros that control
+<a href="headfootpage.html#pagination-intro">document page numbering</a>,
+except
+<a href="headfootpage.html#pagenum">PAGENUM</a>
+(tables of contents always start on page 1). The defaults are the
+same as for the rest of the document, with the exception that tables
+of contents, by default, have roman numeral page numbers.
+</p>
+
+<p>
+Therefore, if you wish to change some aspect of table of contents
+pagination style, use the
+<a href="headfootpage.html#index-pagination-control">document pagination control macros</a>
+immediately prior to <kbd>.TOC</kbd>.
+</p>
+
+<p>
+A special macro,
+<a href="#toc-pagenum-style">TOC_PAGENUM_STYLE</a>,
+controls the style of table of contents pagination (i.e. the actual
+table of contents pages&#8217; numbers, not the page number
+references of entries).
+</p>
+
+<!-- -PAGINATE_TOC- -->
+
+<div id="paginate-toc" class="box-macro-args">
+Macro: <b>PAGINATE_TOC</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+By default, mom paginates tables of contents. If you&#8217;d like
+her not to, do
+<br/>
+<span class="pre-in-pp">
+ .PAGINATE_TOC OFF
+</span>
+(or <kbd>NO, X,</kbd> etc).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+Simply invoking
+<kbd>.PAGINATION&nbsp;OFF</kbd>
+or
+<kbd>.PAGINATE&nbsp;OFF</kbd>
+disables table of contents pagination <i>for the first
+page of the table of contents only.</i> You must use
+<kbd>.PAGINATE_TOC&nbsp;OFF</kbd> to disable table of contents
+pagination completely, even if pagination is turned off elsewhere in
+your document.
+</p>
+</div>
+
+<!-- -TOC_PAGENUM_STYLE- -->
+
+<div id="toc-pagenum-style" class="box-macro-args">
+Macro: <b>TOC_PAGENUM_STYLE</b> <kbd class="macro-args">&lt;DIGIT | ROMAN | roman | ALPHA | alpha&gt;</kbd>
+</div>
+<p class="requires">
+See
+<a href="headfootpage.html#pagenum-style"><span style="font-style: normal;">PAGENUM_STYLE</span></a>
+for an explanation of the arguments.
+</p>
+
+<p>
+By default, mom uses roman numerals to number table of contents
+pages. Use TOC_PAGENUM_STYLE if you&#8217;d prefer something else.
+For example, to have standard digits instead of roman numerals, do
+the following:
+<br/>
+<span class="pre-in-pp">
+ .TOC_PAGENUM_STYLE DIGIT
+</span>
+</p>
+
+<h4 id="toc-header" class="docs" style="margin-top: -.5em;">3. Header string and style</h4>
+
+<p>
+The table of contents header string is the title that appears at the top of the
+table of contents. By default, it&#8217;s &#8220;Contents&#8221;.</p>
+
+<div id="toc-header-string" class="box-macro-args">
+Macro: <b>TOC_HEADER_STRING</b> <kbd class="macro-args">&lt;string&gt;</kbd>
+</div>
+
+<p>
+If you&#8217;d like the title of the table of contents to read
+something other than &#8220;Contents&#8221;, do, for
+example
+<br/>
+<span class="pre-in-pp">
+ .TOC_HEADER_STRING "Table of Contents"
+</span>
+</p>
+
+<h5 id="toc-header-v-pos" class="docs" style="margin-top: 1em; text-transform: none;">Header string vertical placement</h5>
+
+<div id="toc-header-v-pos1" class="box-macro-args" style="margin-top: 1em">
+Macro: <b>TOC_HEADER_V_POS</b> <kbd class="macro-args">&lt;distance from top of page&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+Normally, the TOC header string falls at the same vertical position
+as the
+<a href="definitions.html#docheader">docheader</a>.
+If you&#8217;d like it to fall at a different position, say 2 inches, use
+<br/>
+<span class="pre-in-pp">
+ .TOC_HEADER_V_POS 2i
+</span>
+</p>
+
+<h5 id="toc-header-style" class="docs" style="margin-top: -.5em; text-transform: none;">Header string control macros and defaults</h5>
+
+<div class="defaults-container" style="margin-top: 1em; padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>.
+<br/>
+The following TOC_HEADER control macros may also be
+<a href="#grouping">grouped</a>
+using TOC_HEADER_STYLE.
+</p>
+<span class="pre defaults">
+.TOC_HEADER_FAMILY default = prevailing doc family
+.TOC_HEADER_FONT default = bold
+.TOC_HEADER_SIZE default = +4
+.TOC_HEADER_QUAD default = left
+.TOC_HEADER_COLOR default = black
+.TOC_HEADER_CAPS default = no
+.TOC_HEADER_SMALLCAPS default = no
+.TOC_HEADER_UNDERSCORE default = none
+</span>
+</div>
+
+<h4 id="toc-style" class="docs" style="margin-top: -.5em;">4. Entries and reference page numbers style</h4>
+
+<p>
+&#8220;Entries&#8221; refers to the hierarchical arrangement of
+section titles (in
+<a href="rectoverso.html#collate-intro">collated</a>
+documents) and headings as they appear in the table of contents:
+<span class="pre-in-pp">
+ Section title
+ Head level 1
+ Head level 2
+ Head level 3
+ ...
+</span>
+The style for title entries (e.g. chapter numbers or titles) and
+heading levels is controlled by
+<a href="#toc-title-style">TOC_TITLE_STYLE </a>
+and
+<a href="#toc-entry-style">TOC_ENTRY_STYLE</a>
+respectively.
+</p>
+
+<p id="toc-pn">
+&#8220;Reference page numbers&#8221; means the page numbers
+associated with entries. Macros to control their style take the
+form <kbd>.TOC_PN_&lt;SPEC&gt;</kbd>, and the defaults are listed
+here.
+</p>
+
+<div class="defaults-container" style="margin-top: 1em; padding-bottom: 8px;">
+<p class="defaults" style="padding-top: 6px;">
+See
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>.
+
+<span class="pre defaults">
+.TOC_PN_FAMILY default = prevailing doc family
+.TOC_PN_FONT default = roman
+.TOC_PN_SIZE default = 0
+</span>
+</p>
+</div>
+
+<!-- -TOC_TITLE_STYLE- -->
+
+<div id="toc-title-style" class="box-macro-args">
+Macro: <b>TOC_TITLE_STYLE</b> <kbd class="macro-args">&lt;see below for args&gt;</kbd>
+</div>
+
+<p>
+TOC_TITLE_STYLE allows you to set all the style parameters for
+title entries in the tables of contents with one macro. The
+number of arguments can run long, so you may want to break them into
+several lines with the backslash character (<kbd>\</kbd>). The
+arguments are:
+<br/>
+<span class="pre-in-pp">
+ FAMILY &lt;family&gt;
+ FONT &lt;font&gt;
+ SIZE +|-&lt;n&gt;
+ COLOR &lt;color&gt;
+ INDENT &lt;amount&gt;
+ CAPS | NO_CAPS
+</span>
+The arguments may be entered in any order.
+</p>
+
+<p>
+The family, font, size, and color arguments behave identically
+to the individual control macros that govern other tags, therefore see
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for usage. Their defaults are the same as for paragraphs in
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+<kbd>INDENT</kbd> lets you indent title entries by the amount specified, and
+requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+The default is zero.
+</p>
+
+<p>
+<kbd>CAPS</kbd> instructs mom to capitalize title entries.
+Capitalization may be enabled or disabled on a per-entry-level
+basis.
+</p>
+
+<p>
+As an example, if you want title entries bold, slightly larger than other
+entries and capitalized, you could do either
+<br/>
+<span class="pre-in-pp">
+ .TOC_TITLE_ENTRY FONT B SIZE +.5 CAPS
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .TOC_TITLE_ENTRY \
+ FONT B \
+ SIZE +.5 \
+ CAPS
+</span>
+</p>
+
+<!-- -TOC_ENTRY_STYLE- -->
+
+<div id="toc-entry-style" class="box-macro-args">
+Macro: <b>TOC_ENTRY_STYLE</b> <kbd class="macro-args">&lt;level&gt; &lt;see below for remaining args&gt;</kbd>
+</div>
+
+<p>
+TOC_ENTRY_STYLE allows you to set individually all the style
+parameters for any level of entry (beneath titles) in the tables
+of contents. The number of arguments can run long, so you may
+want to break them into several lines with the backslash character
+(<kbd>\</kbd>).
+</p>
+
+<p>
+<kbd>&lt;level&gt;</kbd> corresponds to a
+<a href="docelement.html#heading">HEADING</a>
+level assigned in the body of the document. The remaining arguments
+are as follows.
+<br/>
+<span class="pre-in-pp">
+ FAMILY &lt;family&gt;
+ FONT &lt;font&gt;
+ SIZE +|-&lt;n&gt;
+ COLOR &lt;color&gt;
+ INDENT &lt;amount&gt;
+ CAPS | NO_CAPS
+</span>
+The arguments may be entered in any order.
+</p>
+
+<p>
+The family, font, size, and color arguments behave identically
+to the individual control macros that govern other tags, therefore see
+<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
+for usage. Their defaults are the same as for paragraphs in
+<a href="definitions.html#running">running text</a>.
+</p>
+
+<p>
+<kbd>INDENT</kbd> lets you indent entries by the amount specified, and
+requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+Mom sensibly indents and aligns all levels of entry. If you change
+the indent for any level, all levels beneath it are still indented
+according to mom&#8217;s normal arrangement, but with the indent
+assigned to <kbd>level</kbd> taken into account. When you use
+<kbd>INDENT</kbd>, the indent is measured from the left edge of
+the text of the previous level, including numbering, if any.
+</p>
+
+<p>
+<kbd>CAPS</kbd> instructs mom to capitalize title entries.
+Capitalization may be enabled or disabled on a per-title basis.
+</p>
+
+<p>
+As an example, if you want a particular entry level, say
+&#8220;2&#8221;, to be in Helvetica, italics, and slightly larger
+than other entries, you could do either
+<br/>
+<span class="pre-in-pp">
+ .TOC_ENTRY_STYLE 2 FAMILY H FONT I SIZE +.25
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .TOC_ENTRY_STYLE 2 \
+ FAMILY H
+ FONT I \
+ SIZE +.25
+</span>
+</p>
+
+<!-- -PREFIX_CHAPTER_NUMBERS- -->
+
+<div id="toc-prefix-ch-number" class="box-macro-args">
+Macro: <b>TOC_PREFIX_CHAPTER_NUMBER</b> <kbd class="macro-args">&lt;none&gt; &lt;anything&gt;</kbd>
+</div>
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>TOC_PREFIX_SECTION_NUMBER</b>
+</p>
+
+<p>
+By default, mom does not prefix a chapter number to chapters or
+section titles in the table of contents. If you would like her to
+do so, invoke <kbd>.TOC_PREFIX_CHAPTER_NUMBER</kbd> without an
+argument before
+<a href="docprocessing.html#start">START</a>.
+</p>
+
+<p>
+You may subsequently disable the prefixing of chapter numbers
+by supplying the macro with any argument (<kbd>OFF</kbd>,
+<kbd>QUIT</kbd>, <kbd>Q</kbd>, <kbd>X</kbd>...) prior to the
+<kbd>.START</kbd> that comes after
+<a href="rectoverso.html#collate"><kbd>.COLLATE</kbd></a>.
+</p>
+
+<p>
+This macro is useful you want chapters numbered in the table of
+contents but the chapters themselves are identified by title only.
+It can be used with both
+<a href="docprocessing.html#doctype">DOCTYPE CHAPTER</a>
+and
+<a href="docprocessing.html#doctype">DOCTYPE DEFAULT</a>.
+The alias <b>TOC_PREFIX_SECTION_NUMBER</b> may be preferable
+in the latter case.
+</p>
+
+<!-- -PAD_TOC_CHAPTER_NUMBERS- -->
+
+<div id="toc-pad-ch-numbers" class="box-macro-args">
+Macro: <b>PAD_TOC_CHAPTER_NUMBERS</b> <kbd class="macro-args">&lt;number of chapters&gt;</kbd>
+</div>
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>PAD_TOC_SECTION_NUMBERS</b>
+</p>
+
+
+<p>
+If the number of chapters or major sections
+(<a href="docprocessing.html#doctype">DOCTYPE DEFAULT</a>)
+exceeds 9, you can have mom pad the numbers so the rightmost
+numerals of the chapter numbers align. Simply invoke
+<kbd>PAD_TOC_CHAPTER_NUMBERS</kbd> with the number of chapters in
+the document.
+</p>
+
+<p>
+Without padding:
+<br/>
+<span class="pre-in-pp">
+ 9. Chapter Title.....................100
+ 10. Chapter Title....................123
+</span>
+With padding:
+<br/>
+<span class="pre-in-pp">
+ 9. Chapter Title....................100
+ 10. Chapter Title....................123
+</span>
+</p>
+
+<!-- -TOC_ENTRY_NUMBERS- -->
+
+<div id="toc-entry-numbers" class="box-macro-args">
+Macro: <b>TOC_ENTRY_NUMBERS</b> <kbd class="macro-args">&lt;FULL&gt; &lt;TRUNCATE&gt; &lt;NONE&gt;</kbd>
+</div>
+
+<p>
+If numbering is enabled for any level of
+<a href="docelement.html#heading">HEADING</a>,
+mom, by default, includes the numbering in that level&#8217;s
+entries in table of contents. If you would prefer that
+numbering not be included in the table of contents,
+issue <kbd>.TOC_ENTRY_NUMBERS&nbsp;NONE</kbd>. If
+you&#8217;d like to include numbering, but not the full,
+concatenated numbering used in the body of the document, issue
+<kbd>.TOC_ENTRY_NUMBERS&nbsp;TRUNCATE</kbd>.
+</p>
+
+<p>
+Assuming numbering is enabled for HEADINGs 1, 2, and 3,
+<kbd>.TOC_ENTRY_NUMBERS FULL</kbd> (mom&#8217;s default), would
+result in
+<br/>
+<span class="pre-in-pp">
+ 1. Level-1 entry
+ 1.1. Level-2 entry
+ 1.1.1. Level-3 entry
+ 2. Level-1 entry
+ 2.1. Level-2 entry
+ 2.1.1. Level-3 entry
+</span>
+whereas <kbd>.TOC_ENTRY_NUMBERS TRUNCATE</kbd> would produce
+<br/>
+<span class="pre-in-pp">
+ 1. Level-1 entry
+ 1. Level-2 entry
+ 1. Level-3 entry
+ 2. Level-1 entry
+ 1. Level-2 entry
+ 1. Level-3 entry
+</span>
+and <kbd>.TOC_ENTRY_NUMBERS NONE</kbd> would remove numbering
+completely.
+<br/>
+<span class="pre-in-pp">
+ Level-1 entry
+ Level-2 entry
+ Level-3 entry
+ Level-1 entry
+ Level-2 entry
+ Level-3 entry
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<kbd>.TOC_ENTRY_NUMBERS TRUNCATE</kbd> removes the numbering
+associated with table of contents chapter or section titles
+when
+<a href="docelement.html#prefix-chapter-number">PREFIX_CHAPTER_NUMBER</a>
+is enabled. To enable the numbering of chapter or section titles
+in this circumstance, use
+<a href="#toc-prefix-ch-number">TOC_PREFIX_CHAPTER_NUMBER</a>.
+</p>
+</div>
+
+<h4 id="toc-additional" class="docs" style="margin-top: -1em;">5. Additional table of contents control macros</h4>
+
+<p>
+The following five macros allow you to
+</p>
+<ul style="margin-top: -.5em; margin-left: -.5em;">
+ <li>instruct mom to <a href="#toc-appends-author">append author(s) to</a> <a href="docprocessing.html#title">TITLE</a> <a href="toc-appends-author">entries</a></li>
+ <li><a href="#toc-title-entry">alter the wording of</a> <a href="docprocessing.html#title">TITLE</a> <a href="#toc-title-entry">entries</a></li>
+ <li>instruct mom to <a href="#space-toc-items">space table of contents entries</a> pleasingly</li>
+ <li>establish <a href="#toc-padding">how many placeholders to leave for page number references</a></li>
+ <li><a href="#toc-rv-switch">switch table of contents page margins</a> should they be incorrect for recto/verso printing</li>
+</ul>
+
+<!-- -TOC_APPENDS_AUTHOR- -->
+
+<div id="toc-appends-author" class="box-macro-args">
+Macro: <b>TOC_APPENDS_AUTHOR</b> <kbd class="macro-args">&lt;none&gt; | &quot;&lt;name(s) of authors&gt;&quot;</kbd>
+</div>
+
+<p>
+In certain kinds of collated documents, different authors are
+responsible for the articles or stories contained within them. In
+such documents, you may wish to have the author or authors appended
+to the table of contents&#8217; title entry for each story or
+article.
+</p>
+
+<p>
+If you invoke <kbd>.TOC_APPENDS_AUTHOR</kbd> <i>without</i> an
+argument, mom appends the first argument you passed to
+<a href="docprocessing.html#author">AUTHOR</a>
+to table of contents title entries, separated by a front-slash.
+</p>
+
+<p>
+If you invoke <kbd>.TOC_APPENDS_AUTHOR</kbd> <i>with</i> an argument
+(surrounded by double-quotes), mom will append it to the table of
+contents title entries instead. This is useful if you have multiple
+authors you wish to identify by last name only. For example, if
+three authors&mdash;Joe Blough, Jane Doe, and John Deere&mdash;are
+responsible for a single article
+<br/>
+<span class="pre-in-pp">
+ .TOC_APPENDS_AUTHOR "Blough et al."
+</span>
+would be a good way to identify them in the table of contents.
+</p>
+
+<!-- -TOC_TITLE_ENTRY- -->
+
+<div id="toc-title-entry" class="box-macro-args">
+Macro: <b>TOC_TITLE_ENTRY</b> <kbd class="macro-args">&quot;&lt;alternate wording for a title entry in the toc&gt;&quot;</kbd>
+</div>
+
+<p>
+In
+<a href="rectoverso.html#collate">collated</a>
+documents, the title of each chapter appears in the table of
+contents. It may sometimes happen that you don&#8217;t want the
+title as it appears in the table of contents to be the same as what
+appears in the
+<a href="definitions.html#docheader">docheader</a>.
+You might, for example, want to shorten it. Or, in the case of
+chapters where the docheader contains both a chapter number and a
+chapter title, like this
+<br/>
+<span class="pre-in-pp">
+ Chapter 6
+ Burning Bush &mdash; Maybe God Was Right
+</span>
+you might want only the chapter title, not the chapter number, to
+show up in the table of contents. (By default, <kbd>.TOC</kbd>
+generates both.)
+</p>
+
+<p>
+If you want to change the wording of a title entry in the table of
+contents, simply invoke
+<br/>
+<span class="pre-in-pp">
+ .TOC_TITLE_ENTRY
+</span>
+with the desired wording, enclosed in double-quotes. Using the
+example, above,
+<br/>
+<span class="pre-in-pp">
+ .CHAPTER 6
+ .CHAPTER_TITLE "Burning Bush &mdash; Maybe God Was Right"
+ .TOC_TITLE_ENTRY "Burning Bush"
+ .DOCTYPE CHAPTER
+</span>
+
+would identify chapter 6 in the table of contents simply as
+&#8220;Burning Bush&#8221;.
+</p>
+
+<!-- -SPACE_TOC_ITEMS- -->
+
+<div id="space-toc-items" class="box-macro-args">
+Macro: <b>SPACE_TOC_ITEMS</b>
+</div>
+
+<p>
+If you&#8217;d like mom to add a small amount of space between table
+of contents entry levels, use <kbd>.SPACE_TOC_ITEMS</kbd>. Mom will
+visually group entry levels in a way that&#8217;s pleasing to the
+eye. The only catch to this macro is that the bottom margins of
+table of contents pages may not align perfectly.
+</p>
+
+<p>
+Please note that
+<kbd>SPACE_TOC_ITEMS</kbd> is only available with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPESET</a>.
+</p>
+
+
+<!-- -TOC_PADDING- -->
+
+<div id="toc-padding" class="box-macro-args">
+Macro: <b>TOC_PADDING</b> <kbd class="macro-args">&lt;number of placeholders to allow for page number listings&gt;</kbd>
+</div>
+
+<p>
+By default, mom allows room for 3 digits in the page number
+references of table of contents entries. If you&#8217;d like some
+other number of placeholders, say 2 (if your document runs to less
+than 100 pages), do
+<br/>
+<span class="pre-in-pp">
+ .TOC_PADDING 2
+</span>
+</p>
+
+<!-- -TOC_RV_SWITCH- -->
+
+<div id="toc-rv-switch" class="box-macro-args">
+Macro: <b>TOC_RV_SWITCH</b>
+</div>
+
+<p>
+TOC_RV_SWITCH doesn&#8217;t take an argument. It simply instructs
+mom to switch the left and right margins of the first table of
+contents page in
+<a href="rectoverso.html#recto-verso">recto/verso</a>
+documents should the table of contents happen to begin on an even
+page when you want an odd, or vice versa.
+</p>
+
+<p>
+The same result can be accomplished by outputting a
+<a href="headfootpage.html#blank-pages">BLANKPAGE</a>.
+</p>
+
+<h4 id="toc-more" class="docs" style="margin-top: -.5em;">6. I still need more!</h4>
+
+<p>
+If there is some aspect of Table of Contents formatting for which
+no TOC control macros are provided, mom has a special
+<a href="definitions.html#toggle">toggle macro</a>
+to help out: TOC_PAGE_SETTINGS.
+</p>
+
+<p>
+TOC_PAGE_SETTINGS allows you to enter extra formatting changes for
+the Table of Contents as if it were simply another collated section
+or chapter of a document. Because it&#8217;s a toggle macro,
+invoking it by itself begins collecting your formatting directives,
+and invoking it with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>,
+<kbd>END</kbd>...) stops the collection.
+</p>
+
+<p>
+TOC_PAGE_SETTINGS is special in that the formatting commands
+contained within it must be preceded by <kbd>\!</kbd> (that&#8217;s
+backslash-exclamation point).
+</p>
+
+<p id="toc-page-settings-example">
+For example, say you want to redesign the default page headers for
+the Tables of Contents so that it only contains the document title
+on the left and &#8220;Contents&#8221; in italics on the right, and
+furthermore adjust the footer margin and footer gap, this is how
+you&#8217;d do it:
+<br/>
+<span class="pre-in-pp">
+ .TOC_PAGE_SETTINGS
+ \!.HEADER_RECTO L "^\E*[$TITLE]#\*[IT]Contents\*[PREV]^"
+ \!.FOOTER_MARGIN 3P
+ \!.B_MARGIN 6P+3p
+ .TOC_PAGE_SETTINGS END
+</span>
+(For an explanation of why the example uses <kbd>.B_MARGIN</kbd> to
+set/change the footer gap, see
+<a href="headfootpage.html#gap-note">here</a>.)
+</p>
+
+<p>
+TOC_PAGE_SETTINGS can be put in the stylesheet section of a document
+(i.e. after
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+and before
+<a href="docprocessing.html#start">START</a>)
+or invoked just before
+<a href="#toc">TOC</a>.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 24%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 42%; text-align: right;"><a href="refer.html">Next: Bibliographies and references</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/toc.html b/contrib/mom/momdoc/toc.html
new file mode 100644
index 0000000..6273751
--- /dev/null
+++ b/contrib/mom/momdoc/toc.html
@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom, version 2.5_d -- Table of Contents</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div class="page">
+
+ <div class="version">
+ mom, version 2.5_d
+ </div>
+
+<h1 class="toc" style="margin-top: 9px;">Table of Contents</h1>
+
+ <p style="margin-left: 2.75em; margin-right: 2.75em; text-align:center ">
+ The table of contents is large. To ease navigation,
+ click on any link in the
+ <br/>
+ <a href="#quick-toc">Quick Table of Contents</a>
+ <br/>
+ which will take you to the corresponding entry in the
+ <br/>
+ <a href="#detailed-toc">Detailed Table of Contents</a>.
+ <br/>
+ If you&#8217;ve been using mom for a while, you may prefer the
+ <br/>
+ <a href="macrolist.html#top">Quick Reference Guide</a>,
+ <br/>
+ which gives a convenient, categorized list of mom&#8217;s
+ user-space macros with links to corresponding entries in the
+ documentation.
+ </p>
+
+<div class="rule-medium"><hr/></div>
+
+<!-- -QUICK TABLE OF CONTENTS- -->
+
+ <h2 id="quick-toc" class="toc" style="margin-top: 18px; text-align: center;">Quick Table of Contents</h2>
+
+ <div style="width: 50%; margin-top: .75em; margin-left: 12px; float: left;">
+ <h3 id="version-2" class="toc"><a style="color: #6e70cc" href="#v2-notes">VERSION 2.0 NOTES</a></h3>
+ <br/>
+
+ <h3 id="introductory" class="toc"><a style="color: #6e70cc" href="#what">INTRODUCTION TO MOM</a></h3>
+
+ <ul class="toc">
+ <li><a href="#what">What is mom?</a></li>
+ <li><a href="#defs">Definitions of terms used in this manual</a></li>
+ <li><a href="#using">Using mom</a></li>
+ </ul>
+
+ <h3 id="typesetting" class="toc"><a style="color: #6e70cc" href="#typeset">TYPESETTING WITH MOM</a></h3>
+
+ <ul class="toc">
+ <li><a href="#type-intro">Introduction to the typesetting macros</a></li>
+ <li><a href="#page">Page setup</a></li>
+ <li><a href="#param">Basic typesetting parameters</a></li>
+ <li><a href="#just">Justifying, quadding, etc.</a></li>
+ <li><a href="#refine">Refinements</a></li>
+ <li><a href="#mod">Modifying type</a></li>
+ <li><a href="#vert">Vertical movements</a></li>
+ <li><a href="#tab">Tabs</a></li>
+ <li><a href="#col">Multiple columns</a></li>
+ <li><a href="#ind">Indents</a></li>
+ <li><a href="#goodies">Goodies</a></li>
+ <li><a href="#escapes">Inline escapes</a></li>
+ <li><a href="#color">Coloured text</a></li>
+ <li><a href="#graphical">Graphical objects</a></li>
+ </ul>
+ </div>
+
+ <div style="margin-left: 332px;">
+ <h3 id="document-processing" class="toc" style="margin-top: 1.25em;"><a style="color: #6e70cc" href="#doc-proc">DOCUMENT PROCESSING WITH MOM</a></h3>
+
+ <ul class="toc" style="margin-left: 3em;">
+ <li><a href="#doc-proc">Introduction to document processing</a></li>
+ <li><a href="#doc-defaults">Document defaults</a></li>
+ <li><a href="#vert-ws">Vertical whitespace management</a></li>
+ <li><a href="#prelim">Preliminary document setup</a></li>
+ <li><a href="#typemacdoc">Behaviour of the typesetting macros during document processing</a></li>
+ <li><a href="#tags">The document element tags</a> &ndash; headings, paragraphs, quotes, etc.</li>
+ <li><a href="#images">Graphics, floats, and preprocessor support</a></li>
+ <li><a href="#box">Shaded backgrounds and frames</a></li>
+ <li><a href="#hdrftr">Page headers and footers</a></li>
+ <li><a href="#paginate">Pagination</a></li>
+ <li><a href="#rv">Recto/verso printing and collating</a></li>
+ <li><a href="#cover">Cover pages</a></li>
+ <li><a href="#tocs">Tables of contents</a></li>
+ <li><a href="#ref">Bibliographies and references</a></li>
+ <li><a href="#letter">Writing letters</a>
+ <ul style="list-style-type: none;">
+ <li style="display: inline-block; width: 212px; height: 0; margin-top: .5em; margin-left: -2.5em; border: solid 1px #8d8775;">&nbsp;</li>
+ </ul></li>
+ <li style="margin-top: -1em;"><a href="#quick">Quick reference guide</a></li>
+ <li><a href="#appendices">Appendices</a></li>
+ </ul>
+ </div>
+
+ <div class="rule-long" style="clear: both;"><hr/></div>
+
+<!-- -FULL TABLE OF CONTENTS- -->
+
+ <h2 id="detailed-toc" class="toc" style="margin-top: 24px; text-align: center;">Detailed Table of Contents</h2>
+
+ <div style="margin-left: 12px;">
+ <h3 id="v2-notes" class="toc"><a style="color: #6e70cc" href="version-2.html#top">VERSION 2.0 NOTES</a></h3>
+
+ <ul class="toc">
+ <li><a href="version-2.html#prefatory">Prefatory comments</a></li>
+ <li><a href="version-2.html#differences">Differences between 2.0 and 1.x</a>
+ <ul>
+ <li><a href="version-2.html#pdf-support">PDF Support</a></li>
+ <li><a href="version-2.html#covers">Covers</a></li>
+ <li><a href="version-2.html#headings">Headings</a></li>
+ <li><a href="version-2.html#margin-notes">Margin notes</a></li>
+ <li><a href="version-2.html#floats">Floats</a></li>
+ <li><a href="version-2.html#table-of-contents">Table of Contents</a></li>
+ </ul></li>
+ <li><a href="version-2.html#pdfmom">The <strong>pdfmom</strong> wrapper around groff</a></li>
+ <li><a href="version-2.html#install-font">The <strong>install-font</strong> script</a></li>
+ </ul>
+
+ <h3 id="what" class="toc"><a style="color: #6e70cc" href="intro.html#top">1. WHAT IS MOM?</a></h3>
+
+ <ul class="toc">
+ <li><a href="intro.html#intro-intro">1.1 Who is mom meant for?</a></li>
+ <li><a href="intro.html#intro-typesetting">1.2 Typesetting with mom</a></li>
+ <li><a href="intro.html#intro-docprocessing">1.3 Document processing with mom</a></li>
+ <li><a href="intro.html#intro-philosophy">1.4 Mom&#8217;s philosophy</a></li>
+ <li><a href="intro.html#intro-documentation">1.5 A note on mom&#8217;s documentation</a>
+ <ul>
+ <li><a href="intro.html#canonical">1.5.1 Canonical reference materials</a></li>
+ <li><a href="intro.html#macro-args">1.5.2 How to read macro arguments</a></li>
+ <li><a href="intro.html#toggle-macro">1.5.3 &#8220;Toggle&#8221; macros</a></li>
+ <li><a href="intro.html#examples">1.5.4 Examples</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <h3 id="defs" class="toc"><a style="color: #6e70cc" href="definitions.html#top">2. DEFINITIONS OF TERMS USED IN THIS MANUAL</a></h3>
+
+ <ul class="toc">
+ <li><a href="definitions.html#typesetting-terms">2.1 Typesetting terms</a></li>
+ <li><a href="definitions.html#groff-terms">2.2 Groff terms</a></li>
+ <li><a href="definitions.html#mom-terms">2.3 Mom&#8217;s document processing terms</a></li>
+ </ul>
+
+ <h3 id="using" class="toc"><a style="color: #6e70cc" href="using.html#top">3. USING MOM</a></h3>
+
+ <ul class="toc">
+ <li><a href="using.html#using-intro">3.1 Introduction</a></li>
+ <li><a href="using.html#using-macros">3.2 How to input mom&#8217;s macros</a></li>
+ <li><a href="using.html#viewing">3.3 Processing and viewing documents</a>
+ <ul>
+ <li><a href="using.html#pdf">Mom and pdf</a></li>
+ <li><a href="using.html#pdfmom">pdfmom</a></li>
+ </ul></li>
+ <li><a href="using.html#previewing">3.4 Automatic previewing of documents</a></li>
+ </ul>
+
+<!-- -TYPESETTING MACROS- -->
+
+ <h3 id="typeset" class="toc"><a style="color: #6e70cc" href="typesetting.html#top">4. TYPESETTING WITH MOM</a></h3>
+
+ <ul class="toc">
+ <li><a id="type-intro" href="typesetting.html#typesetting-intro">4.1 Introduction to the typesetting macros</a></li>
+ <li><a id="page" href="typesetting.html#page-setup-intro">4.2 Page setup</a> &ndash; paper size and page margins
+ <ul>
+ <li><a href="typesetting.html#index-page-setup">4.2.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="param" href="typesetting.html#basic-params-intro">4.3 Basic typesetting parameters</a> &ndash; family, font, fallback font, point size, line space, line length, autolead
+ <ul>
+ <li><a href="typesetting.html#index-basic">4.3.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="just" href="typesetting.html#justification-intro">4.4 Justifying, quadding, filling and breaking lines</a>
+ <ul>
+ <li><a href="typesetting.html#index-justification">4.4.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="refine" href="typesetting.html#refinements-intro">4.5 Refinements</a> &ndash; word space, sentence space, letter spacing (track kerning), hyphenation, kerning, ligatures
+ <ul>
+ <li><a href="typesetting.html#index-refinements">4.5.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="mod" href="typesetting.html#modifications-intro">4.6 Modifying Type</a> &ndash; pseudo-italic, -bold, -condensed, and -extended
+ <ul>
+ <li><a href="typesetting.html#index-modifications">4.6.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="vert" href="typesetting.html#aldrld-intro">4.7 Vertical Movements</a> &ndash; moving up and down on the page
+ <ul>
+ <li><a href="typesetting.html#index-aldrld">4.7.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="tab" href="typesetting.html#tabs-intro">4.8 Tabs</a>
+ <ul>
+ <li><a href="typesetting.html#typesetting-tabs">4.8.1 Typesetting tabs</a>
+ <ul>
+ <li><a href="typesetting.html#typesetting-tabs-tut">4.8.1.1 Quickie tutorial</a></li>
+ </ul></li>
+ <li><a href="typesetting.html#string-tabs">4.8.2 String tabs (autotabs)</a>
+ <ul>
+ <li><a href="typesetting.html#string-tabs-tut">4.8.2.1 Quickie tutorial</a></li>
+ </ul></li>
+ <li><a href="typesetting.html#index-tabs">4.8.3 Macro list</a></li>
+ </ul></li>
+ <li><a id="col" href="typesetting.html#multicolumns-intro">4.9 Multiple columns</a>
+ <ul>
+ <li><a href="typesetting.html#index-multicolumns">4.9.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="ind" href="typesetting.html#indents-intro">4.10 Indents</a>
+ <ul>
+ <li><a href="typesetting.html#indents-handling">4.10.1 A brief explanation of how mom handles indents</a></li>
+ <li><a href="typesetting.html#index-indents">4.10.2 Macro list</a></li>
+ </ul></li>
+ <li><a id="goodies" href="goodies.html#top">4.11 Goodies</a>
+ &ndash; aliases, transparent (comment) lines, smartquotes, caps,
+ underscoring/underlining, padding lines, leaders, drop
+ caps, superscripts, user-definable strings, changing the
+ escape character
+ <ul>
+ <li><a href="goodies.html#index-goodies">4.11.1 Macro list</a></li>
+ </ul></li>
+ <li><a id="escapes" href="inlines.html#top">4.12 Inline Escapes</a>
+ <ul>
+ <li><a href="inlines.html#intro-inlines">4.12.1 Introduction to inline escapes</a></li>
+ <li><a href="inlines.html#index-inlines">4.12.2 List of inline escapes</a></li>
+ <li><a href="inlines.html#inlines-mom-top">4.12.3 Mom&#8217;s personal inline escapes</a></li>
+ <li><a href="inlines.html#inlines-groff-top">4.12.4 Commonly-used groff inline escapes</a>
+ <ul>
+ <li><a href="inlines.html#inline-characters-groff">4.12.4.1 Special characters and symbols</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a id="color" href="color.html#top">4.13 Coloured text</a>
+ <ul>
+ <li><a href="color.html#intro-color">4.13.1 Introduction to coloured text</a></li>
+ <li><a href="color.html#index-color">4.13.2 Macro list</a></li>
+ </ul></li>
+ <li><a id="graphical" href="graphical.html#top">4.14 Graphical objects</a>
+ &ndash; horizontal and vertical rules, boxes, ellipses (circles)
+ <ul>
+ <li><a href="graphical.html#intro-graphical">4.14.1 Introduction to graphical objects</a></li>
+ <li><a href="graphical.html#index-graphical">4.13.2 Macro list</a></li>
+ </ul></li>
+ </ul>
+
+<!-- -DOCUMENT PROCESSING MACORS- -->
+
+ <h3 id="doc-proc" class="toc"><a style="color: #6e70cc" href="docprocessing.html#top">5. DOCUMENT PROCESSING WITH MOM</a></h3>
+ <ul class="toc">
+ <li><a href="docprocessing.html#docprocessing-intro">5.1 Introduction to document processing</a></li>
+ <li><a id="doc-defaults" href="docprocessing.html#defaults">5.2 Document defaults</a> &ndash; papersize, margins, etc.
+ <ul>
+ <li><a id="vert-ws" href="docprocessing.html#vertical-whitespace-management">5.2.1 Vertical whitespace management</a>
+ <ul>
+ <li><a href="docprocessing.html#shim">5.2.1.1 SHIM</a></li>
+ <li><a href="docprocessing.html#flex">5.2.1.2 FLEX</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a id="prelim" href="docprocessing.html#setup" class="highlight">5.3 PRELIMINARY DOCUMENT SETUP</a>
+ <ul>
+ <li><a href="docprocessing.html#docprocessing-tut">5.3.1 Tutorial</a> &ndash; setting up a mom document</li>
+ <li><a href="docprocessing.html#reference-macros">5.3.2 The reference macros</a> &ndash; metadata mom needs to do her job
+ <ul>
+ <li><a href="docprocessing.html#title">5.3.2.1 TITLE</a></li>
+ <li><a href="docprocessing.html#doc-title">5.3.2.2 DOCTITLE</a></li>
+ <li><a href="docprocessing.html#subtitle">5.3.2.3 SUBTITLE</a></li>
+ <li><a href="docprocessing.html#author">5.3.2.4 AUTHOR</a></li>
+ <li><a href="docprocessing.html#chapter">5.3.2.5 CHAPTER</a></li>
+ <li><a href="docprocessing.html#chapter-title">5.3.2.6 CHAPTER_TITLE</a></li>
+ <li><a href="docprocessing.html#draft">5.3.2.7 DRAFT</a></li>
+ <li><a href="docprocessing.html#revision">5.3.2.8 REVISION</a></li>
+ <li><a href="docprocessing.html#copyright">5.3.2.9 COPYRIGHT</a></li>
+ <li><a href="docprocessing.html#misc">5.3.2.10 MISC</a></li>
+ <li><a href="docprocessing.html#covertitle">5.3.2.11 COVERTITLE</a></li>
+ <li><a href="docprocessing.html#covertitle">5.3.2.12 DOC_COVERTITLE</a></li>
+ <li><a href="docprocessing.html#pdftitle">5.3.2.13 PDF_TITLE</a></li>
+ <li><a href="docprocessing.html#toc-heading">5.3.2.14 TOC_HEADING</a></li>
+ </ul></li>
+ <li><a href="docprocessing.html#docstyle-macros">5.3.3 The docstyle macros</a> &ndash; base templates; what kind of document you&#8217;re creating, how you want it to look overall
+ <ul>
+ <li><a href="docprocessing.html#doctype">5.3.3.1 DOCTYPE</a> &ndash; the kind of document (default, chapter, named, letter)
+ <ul style="list-style-type: circle">
+ <li><a href="docprocessing.html#slides">DOCTYPE SLIDES</a></li>
+ </ul></li>
+ <li><a href="docprocessing.html#printstyle">5.3.3.2 PRINTSTYLE</a> &ndash; typeset or &#8220;typewritten, double-spaced&#8221;</li>
+ <li><a href="docprocessing.html#copystyle">5.3.3.3 COPYSTYLE</a> &ndash; draft or final</li>
+ </ul></li>
+ <li><a href="docprocessing.html#start-macro">5.3.4 Initiate document processing</a>
+ <ul>
+ <li><a href="docprocessing.html#start">5.3.4.1 START</a> &ndash; the required macro to initiate document processing</li>
+ </ul></li>
+ <li><a href="docprocessing.html#docheader">5.3.5 Managing the DOCHEADER</a> &ndash; title, author, etc. on first page
+ <ul>
+ <li><a href="docprocessing.html#docheader-control">5.3.5.1 DOCHEADER control</a></li>
+ </ul></li>
+ <li><a href="docprocessing.html#columns-intro">5.3.6 Setting documents in columns</a></li>
+ <li><a href="docprocessing.html#style-before-start">5.3.7 Establishing type and formatting parameters <span style="font-style: italic">before</span> START</a>
+ <ul>
+ <li><a href="docprocessing.html#type-before-start">5.3.7.1 Use of the typesetting macros before START</a>
+ <ul class="fourth-level">
+ <li>&ndash; <a href="docprocessing.html#include">5.3.7.1.1 Including (sourcing) style sheets and files</a></li>
+ <li>&ndash; <a href="docprocessing.html#color">5.3.7.1.2 Initializing colours</a></li>
+ </ul></li>
+ <li><a href="docprocessing.html#doc-lead-adjust">5.3.7.2 DOC_LEAD_ADJUST</a> &ndash; adjust document
+ <a href="definitions.html#leading">leading</a>
+ to fill pages</li>
+ </ul></li>
+ <li><a href="docprocessing.html#style-after-start">5.3.8 Changing basic type and formatting parameters <span style="font-style: italic">after</span> START</a></li>
+ <li><ul>
+ <li><a id="typemacdoc" href="docprocessing.html#behaviour">5.3.8.1 Behaviour of the typesetting macros during document processing</a></li>
+ <li><a href="docprocessing.html#intro-doc-param">5.3.8.2 Post-START global style-change macros</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a id="tags" class="highlight" href="docelement.html#top">5.4 THE DOCUMENT ELEMENT TAGS</a>
+ <ul>
+ <li><a href="docelement.html#docelement-intro">5.4.1 Introduction to the document element tags</a>
+ <ul>
+ <li><a href="docelement.html#docelement-control">5.4.1.1 Control macros</a> &ndash; changing style defaults for document element tags</li>
+ <li><a href="docelement.html#control-macro-args">5.4.1.2 Arguments to the control macros</a></li>
+ </ul></li>
+ <li><a href="docelement.html#epigraph-intro">5.4.2 Epigraphs</a></li>
+ <li><a href="docelement.html#pp-intro">5.4.3 Paragraphs</a></li>
+ <li><a href="docelement.html#heading-intro">5.4.4 Headings</a></li>
+ <li><a href="docelement.html#linebreak-intro">5.4.5 Linebreaks</a> &ndash; author linebreaks (section breaks)</li>
+ <li><a href="docelement.html#quote-intro">5.4.6 Quotes</a> &ndash; line for line poetic quotes or unformatted, verbatim text (e.g. blocks of code)</li>
+ <li><a href="docelement.html#blockquote-intro">5.4.7 Blockquotes</a> &ndash; cited material</li>
+ <li><a href="docelement.html#code">5.4.8 Code</a> &ndash; inserting code snippets</li>
+ <li><a href="docelement.html#list-intro">5.4.9 Lists</a> &ndash; nested lists</li>
+ <li><a href="docelement.html#number-lines-intro">5.4.10 Line numbering</a></li>
+ <li><a href="docelement.html#footnote-intro">5.4.11 Footnotes</a></li>
+ <li><a href="docelement.html#endnote-intro">5.4.12 Endnotes</a></li>
+ <li><a href="docelement.html#margin-notes-intro">5.4.13 Margin notes</a></li>
+ <li><a href="docelement.html#finis-intro">5.4.14 Document termination string</a> &ndash; FINIS</li>
+ </ul></li>
+ <li><a id="images" class="highlight" href="images.html#top">5.5 GRAPHICS, FLOATS, AND PREPROCESSOR SUPPORT</a>
+ <ul>
+ <li><a href="images.html#images-intro">5.5.1 Inserting images and graphics</a></li>
+ <li><a href="images.html#converting">5.5.2 Image conversion and file processing</a></li>
+ <li><a href="images.html#pdf-image">5.5.3 PDF_IMAGE</a>
+ <ul>
+ <li><a href="images.html#pdf-image-frame">5.5.3.1 PDF_IMAGE_FRAME</a></li>
+ </ul></li>
+ <li><a href="images.html#pspic">5.5.4 PSPIC</a></li>
+ <li><a href="images.html#floats-intro">5.5.5 Floats</a>
+ <ul>
+ <li><a href="images.html#float">5.5.5.1 FLOAT</a></li>
+ </ul></li>
+ <li><a href="images.html#preprocessor-support">5.5.6 Preprocessor support</a>
+ <ul>
+ <li><a href="images.html#tbl">5.5.6.1 tbl support</a></li>
+ <li><a href="images.html#eqn">5.5.6.2 eqn support</a></li>
+ <li><a href="images.html#pic">5.5.6.3 pic support</a></li>
+ <li><a href="images.html#grap">5.5.6.4 grap support</a>
+ <ul style="list-style-type: disc">
+ <li><a href="images.html#pic-text-style">5.5.6.3.1 PIC_TEXT_STYLE</a></li>
+ </ul></li>
+ <li><a href="images.html#refer">5.5.6.4 refer support</a></li>
+ </ul></li>
+ <li><a href="images.html#captions-and-labels">5.5.7 Captions and labels</a>
+ <ul>
+ <li><a href="images.html#autolabel">5.5.7.1 AUTOLABEL</a></li>
+ <li><a href="images.html#caption-after-label">5.5.7.2 CAPTION_AFTER_LABEL</a></li>
+ <li><a href="images.html#captions-labels-sources">5.5.7.3 CAPTIONS / LABELS / SOURCES&mdash;set style parameters</a></li>
+ <li><a href="images.html#mla">5.5.7.4 MLA</a></li>
+ </ul></li>
+ <li><a href="images.html#lists-of">5.5.8 Lists of Figures, Tables, and Equations</a>
+ <ul>
+ <li><a href="images.html#lists-placement">5.5.8.1 Placement of Lists</a></li>
+ <li><a href="images.html#lists-macros">5.5.8.2 Macros to generate Lists</a></li>
+ <li><a href="images.html#formatting-lists">5.5.8.3 Formatting and style parameters for Lists</a>
+ <ul>
+ <li><a href="#lists-style">5.5.8.3.1 LISTS_STYLE</a></li>
+ </ul></li>
+ </ul></li>
+ </ul></li>
+ <li><a id="box" class="highlight" href="headfootpage.html#top">5.6 SHADED BACKGROUNDS AND FRAMES</a>
+ <ul>
+ <li><a href="images.html#box-intro">5.6.1 Introduction</a></li>
+ <li><a href="images.html#box-macro">5.6.2 The BOX macro</a></li>
+ <li><a href="images.html#box-notes">5.6.3 Additional notes on BOX usage and behaviour</a></li>
+ <li><a href="images.html#page-color">5.6.4 PAGE_COLOR</a></li>
+ </ul>
+ </li>
+ <li><a id="hdrftr" class="highlight" href="headfootpage.html#top">5.7 PAGE HEADERS AND FOOTERS</a>
+ <ul>
+ <li><a href="headfootpage.html#headfootpage-intro">5.7.1 Introduction</a></li>
+ <li><a href="headfootpage.html#description-general">5.7.2 General description of headers/footers</a></li>
+ <li><a href="headfootpage.html#header-style">5.7.3 Default specs for headers/footers</a></li>
+ <li><a href="headfootpage.html#vertical-spacing">5.7.4 Vertical placement and spacing of headers/footers</a></li>
+ <li><a href="headfootpage.html#headfoot-management">5.7.5 Managing page headers and footers</a></li>
+ <li><a href="headfootpage.html#headfoot-control">5.7.6 Control macros for headers/footers</a></li>
+ <li><a href="headfootpage.html#userdef-hdrftr-rv">5.7.7 User-defined, single string recto/verso headers/footers</a>
+ <ul>
+ <li><a href="headfootpage.html#userdef-hdrftr">5.7.7.1 User-defined, single string headers/footers (no recto/verso)</a></li>
+ </ul></li>
+ <li><a href="headfootpage.html#headers-and-footers-intro">5.7.8 Headers and footers on the same page</a></li>
+ </ul></li>
+ <li><a id="paginate" class="highlight" href="headfootpage.html#pagination-intro">5.8 PAGINATION</a>
+ <ul>
+ <li><a href="headfootpage.html#pagination">5.8.1 Introduction</a></li>
+ <li><a href="headfootpage.html#index-pagination">5.8.2 Pagination macros list</a></li>
+ <li><a href="headfootpage.html#blank-pages">5.8.3 Blank pages</a></li>
+ </ul></li>
+ <li><a id="rv" class="highlight" href="rectoverso.html#top">5.9 RECTO/VERSO PRINTING, COLLATING</a>
+ <ul>
+ <li><a href="rectoverso.html#rectoverso-intro">5.9.1 Introduction to recto/verso printing</a>
+ <ul>
+ <li><a href="rectoverso.html#rectoverso-list">5.9.1.1 Macro list</a></li>
+ </ul></li>
+ <li><a href="rectoverso.html#collate-intro">5.9.2 Introduction to collating</a>
+ <ul>
+ <li><a href="rectoverso.html#collate">5.9.2.1 The COLLATE macro</a></li>
+ </ul></li>
+ </ul></li>
+ <li><a id="cover" class="highlight" href="cover.html#top">5.10 COVER PAGES</a></li>
+ <li><a id="tocs" class="highlight" href="tables-of-contents.html#top">5.11 TABLES OF CONTENTS</a>
+ <ul>
+ <li><a href="tables-of-contents.html#toc-intro">5.11.1 Introduction</a> &ndash; the TOC macro</li>
+ <li><a href="tables-of-contents.html#toc-appearance">5.11.2 Table of contents appearance and behaviour</a></li>
+ <li><a href="tables-of-contents.html#pdf-output">5.11.3 PDF output</a></li>
+ <li><a href="tables-of-contents.html#positioning">5.11.4 Positioning the table of contents</a>
+ <ul>
+ <li><a href="tables-of-contents.html#auto-relocate-toc">5.11.2 Automatic PDF relocation of the Table of Contents</a></li>
+ <li><a href="tables-of-contents.html#psselect">5.11.2 Using psselect to relocate the TOC in PostScript documents</a></li>
+ </ul></li>
+ <li><a href="tables-of-contents.html#index-toc-control">5.11.5 Table of contents control macros</a></li>
+ </ul></li>
+ <li><a id="ref" class="highlight" href="refer.html#top">5.12 BIBLIOGRAPHIES AND REFERENCES</a></li>
+ <li><a id="letter" class="highlight" href="letters.html#top">5.13 WRITING LETTERS</a>
+ <ul>
+ <li><a href="letters.html#letters-intro">5.13.1 Introduction to writing letters</a></li>
+ <li><a href="letters.html#letters-tutorial">5.13.2 Tutorial on writing letters</a></li>
+ <li><a href="letters.html#letters-defaults">5.13.3 Default letter style</a></li>
+ <li><a href="letters.html#index-letters-macros">5.13.4 The letter macros</a></li>
+ </ul></li>
+ </ul>
+ <h3 id="quick" class="toc highlight"><a style="color: #6e70cc" href="macrolist.html#top">6. QUICK REFERENCE GUIDE</a></h3>
+ <h3 id="appendices" class="toc" style="margin-top: .5em;"><a style="color: #6e70cc" href="appendices.html#top">7. APPENDICES</a></h3>
+ <ul class="toc">
+ <li><a href="appendices.html#fonts">7.1 Adding fonts to groff</a>
+ <ul>
+ <li><a href="appendices.html#steps">7.1.1 Step-by-step instructions</a></li>
+ </ul></li>
+ <li><a href="appendices.html#codenotes">7.2 Some reflections on mom</a></li>
+ <li><a href="reserved.html">7.3 List of reserved words (macros, registers, strings)</a></li>
+ <li><a href="appendices.html#contact">7.4 Contact the author</a></li>
+ </ul>
+ </div>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/typesetting.html b/contrib/mom/momdoc/typesetting.html
new file mode 100644
index 0000000..51d199e
--- /dev/null
+++ b/contrib/mom/momdoc/typesetting.html
@@ -0,0 +1,4988 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Typesetting Macros</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="goodies.html#top">Next: Goodies</a></td>
+</tr>
+</table>
+
+<h1 id="typesetting" class="docs">The typesetting macros</h1>
+
+<div id="typesetting-macros-mini-toc" class="mini-toc">
+<div class="mini-toc-col-1">
+<ul class="no-enumerator">
+ <li class="list-head"><a href="#typesetting-macros">Introduction</a></li>
+ <li class="list-head"><a href="#page-setup-intro">Paper and page setup</a>
+ <ul>
+ <li class="item"><a href="#page-setup-note"><i>Important note on page dimensions &amp; papersize</i></a></li>
+ <li class="item"><a href="#index-page-setup">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#basic-params-intro">Basic typesetting parameters</a>
+ <ul>
+ <li class="item"><a href="#index-basic">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#justification-intro">Justification and quadding/
+ <br/>
+ <span style="margin-left: 1em;">breaking and joining lines</span></a>
+ <ul>
+ <li class="item"><a href="#index-justification">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#refinements-intro">Typographic refinements</a>
+ <ul>
+ <li class="item"><a href="#index-refinements">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#modifications-intro">Type modifications (pseudo font styles)</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="#index-modifications">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#aldrld-intro">Vertical movements</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="#index-aldrld">Macro list</a>
+ </li>
+ </ul></li>
+</ul>
+</div>
+<div class="mini-toc-col-2">
+ <ul class="no-enumerator">
+ <li class="list-head"><a href="#tabs-intro">Tabs</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="#typesetting-tabs">Typesetting tabs</a>
+ <ul style="margin-left: -.5em;">
+ <li class="item" style="margin-left: -.5em; list-style-type: circle;"><a href="#typesetting-tabs-tut">Quickie tutorial on typesetting tabs</a></li>
+ </ul></li>
+ <li class="item"><a href="#string-tabs">String tabs</a>
+ <ul style="margin-left: -.5em;">
+ <li class="item" style="margin-left: -.5em; list-style-type: circle;"><a href="#string-tabs-tut">Quickie tutorial on string tabs</a></li>
+ </ul></li>
+ <li class="item"><a href="#index-tabs">Macro list</a></li>
+ </ul></li>
+ <li class="list-head"><a href="#multicolumns-intro">Multiple columns</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="#index-multicolumns">Macro list</a>
+ </li>
+ </ul></li>
+ <li class="list-head"><a href="#indents-intro">Indents</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="#indents-handling">How mom handles indents</a></li>
+ <li class="item"><a href="#index-indents">Macro list</a>
+ </li>
+ </ul></li>
+ <li class="list-head"><a href="goodies.html#goodies">Goodies</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="goodies.html#goodies-macros">Macro list</a>
+ </li>
+ </ul></li>
+ <li class="list-head"><a href="inlines.html#top">Inline escapes</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="inlines.html#index-inlines">List of inline escapes</a>
+ </li>
+ </ul></li>
+ <li class="list-head"><a href="color.html">Coloured text</a>
+ <ul class="no-enumerator">
+ <li class="item"><a href="color.html#index-color">Macro list</a></li>
+ </ul></li>
+</ul>
+</div>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="typesetting-intro" class="docs">Introduction</h2>
+
+<p>
+Mom&#8217;s typesetting macros provide access to groff&#8217;s
+typesetting capabilities. Aside from controlling basic type
+parameters (family, font, line length, point size, leading),
+mom&#8217;s macros fine-tune wordspacing, letterspacing, kerning,
+hyphenation, and so on. In addition, mom has true typesetting tabs,
+string tabs, multiple indent styles, line padding, and a batch of
+other goodies.
+</p>
+
+<p>
+In some cases, mom&#8217;s typesetting macros merely imitate groff
+primitives. In others, they approach typesetting concerns in
+conceptually new ways (for groff, at least). This should present
+no problem for newcomers to groff who are learning mom. Old groff
+hands should be careful. Just because it looks like a duck and
+walks like a duck does not, in this instance, mean that it is a
+duck. When using mom, stay away from groff primitives if mom
+provides a macro that accomplishes the same thing.
+</p>
+
+<p>
+Mom&#8217;s typesetting macros can be used as a standalone package,
+independent of the
+<a href="docprocessing.html#top">document processing macros</a>.
+With them, you can typeset on-the-fly. Book covers, your best
+friend&#8217;s résumé, a poster for a lost dog&mdash;none of these
+requires structured document processing (page headers, paragraphs,
+headings, footnotes, etc). What they do demand is precise control over
+every element on the page. The typesetting macros give you that
+control.
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="page-setup-intro" class="macro-group">Paper and page setup: paper size &amp; page margins</h2>
+
+<p>
+The page setup macros establish the physical dimensions of your page
+and the margins you want it to have. The
+<a href="#paper">PAPER</a>
+macro provides a shortcut for setting the page to the correct
+dimensions for a number of common paper sizes. The
+<a href="#page">PAGE</a>
+macro provides a convenient way of setting the page dimensions and
+some or all of the page margins with a single macro.
+</p>
+
+<div class="box-notes">
+<h3 id="page-setup-note" class="docs notes">Important note on page dimensions and papersize</h3>
+
+<p style="margin-top: .5em;">
+When mom files are processed with
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+which is recommended (see
+<a href="http://www.schaffter.ca/mom/pdf/mom-pdf.pdf"><span class="book-title">Producing PDFs with groff and mom</span></a>),
+page dimensions are automatically passed to groff, and you
+don&#8217;t have to worry about them.
+</p>
+
+<p>
+Mom documents processed directly with <strong>groff</strong>, or with
+<strong>pdfroff</strong>, or with <strong>pdfmom&nbsp;&#8209;Tps</strong>, require
+that the papersize be given on the command line as well if the
+papersize is different from the default on your system. You can
+verify&mdash;or change&mdash;the default papersize by inspecting the
+files
+<br/>
+<span class="pre-in-pp">
+ &lt;path to groff&gt;/font/devps/DESC
+</span>
+and
+<br/>
+<span class="pre-in-pp">
+ &lt;path to groff&gt;/font/devpdf/DESC
+</span>
+(See <strong>man papersize</strong> for list of valid papersize
+names, as well as for instructions on how to enter a non-standard
+size.)
+</p>
+
+<p>
+If you occasionally need to print on sheets that do not
+conform to your default papersize, you must, in addition
+to setting the page dimensions in your mom file, pass the
+<kbd>-P-p&lt;papersize&gt;</kbd> option to <strong>groff</strong>,
+<strong>pdfroff</strong>, or <strong>pdfmom -Tps</strong>.
+</p>
+
+<p>
+For example, suppose your routine papersize is &#8220;letter&#8221;,
+and you need to print something on a legal-sized sheet. After
+telling mom about the legal-size sheet (with either
+<a href="#pagelength">PAGELENGTH</a>
+and
+<a href="#pagewidth">PAGEWIDTH</a>
+or
+<a href="#paper">PAPER</a>,
+or
+<a href="#page">PAGE</a>),
+you must include <kbd>-P-p&lt;papersize&gt;</kbd> on whichever
+command line you use, e.g.
+<br/>
+<span class="pre-in-pp">
+ pdfmom -Tps -mom -P-plegal
+</span>
+Remember, though, that
+<a href="using.html#pdfmom" style="font-weight: bold">pdfmom</a>,
+with no <kbd>-Tps</kbd> option, is smart enough to know the
+papersize from the dimensions provided in your mom file.
+</p>
+
+<p class="tip-bottom">
+Consult <kbd>man groff</kbd>, <kbd>man grops</kbd> and <kbd>man
+groff_font</kbd> for additional information concerning papersizes,
+as well as information on printing in &#8220;landscape&#8221;
+orientation.
+</p>
+</div>
+
+<div class="macro-list-container">
+<h3 id="index-page-setup" class="macro-list">Paper and page setup macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#pagewidth">PAGEWIDTH</a> &ndash; page width</li>
+ <li><a href="#pagelength">PAGELENGTH</a> &ndash; page length</li>
+ <li><a href="#paper">PAPER</a> &ndash; common paper sizes</li>
+ <li><a href="#l-margin">L_MARGIN</a> &ndash; left margin</li>
+ <li><a href="#r-margin">R_MARGIN</a> &ndash; right margin</li>
+ <li><a href="#t-margin">T_MARGIN</a> &ndash; top margin</li>
+ <li><a href="#b-margin">B_MARGIN</a> &ndash; bottom margin</li>
+ <li><a href="#page">PAGE</a> &ndash; page dimensions and margins all in one fell swoop</li>
+ <li><a href="#newpage">NEWPAGE</a> &ndash; start a new page</li>
+</ul>
+</div>
+
+<!-- -PAGEWIDTH- -->
+
+<div class="macro-id-overline">
+<h3 id="pagewidth" class="macro-id">Page width</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PAGEWIDTH</b> <kbd class="macro-args">&lt;width of printer sheet&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+The argument to PAGEWIDTH is the width of your printer sheet.
+PAGEWIDTH requires a unit of measure. Decimal fractions are
+allowed. Hence, to tell mom that the width of your printer sheet is
+8-1/2 inches, you enter
+<br/>
+<span class="pre-in-pp">
+ .PAGEWIDTH 8.5i
+</span>
+Please read the
+<a href="#page-setup-note">Important note on page dimensions and papersize</a>
+for information on ensuring groff respects your PAGEWIDTH.
+</p>
+
+<!-- -PAGELENGTH- -->
+
+<div class="macro-id-overline">
+<h3 id="pagelength" class="macro-id">Page length</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PAGELENGTH</b> <kbd class="macro-args">&lt;length of printer sheet&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+PAGELENGTH tells mom how long your printer sheet is. It works just
+like PAGEWIDTH. Therefore, to tell mom your printer sheet is 11
+inches long, you enter
+<br/>
+<span class="pre-in-pp">
+ .PAGELENGTH 11i
+</span>
+Please read the
+<a href="#page-setup-note">Important note on page dimensions and papersize</a>
+for information on ensuring groff respects your PAGELENGTH.
+</p>
+
+<!-- -PAPER- -->
+
+<div class="macro-id-overline">
+<h3 id="paper" class="macro-id">Paper</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PAPER</b> <kbd class="macro-args">&lt;paper type&gt; [ LANDSCAPE ]</kbd>
+</div>
+
+<p>
+PAPER provides a convenient way to set the dimensions for some
+common printer sheet sizes. <kbd>&lt;paper&nbsp;type&gt;</kbd> can
+be one of:
+<br/>
+<span class="pre-in-pp">
+ LETTER EXECUTIVE
+ LEGAL 10x14
+ STATEMENT A3
+ TABLOID A4
+ LEDGER A5
+ FOLIO B4
+ QUARTO B5
+</span>
+Say, for example, you have A4-sized sheets in your printer. It&#8217;s
+shorter (and easier) to enter
+<br/>
+<span class="pre-in-pp">
+ .PAPER A4
+</span>
+than to remember the correct dimensions and enter
+<br/>
+<span class="pre-in-pp">
+ .PAGEWIDTH 595p
+ .PAGELENGTH 842p
+</span>
+If you&#8217;d like landscape orientation for your paper type,
+pass PAPER the <kbd>LANDSCAPE</kbd> argument.
+</p>
+
+<p>
+Please read the
+<a href="#page-setup-note">Important note on page dimensions and papersize</a>
+for information on ensuring groff respects your PAPER size.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">Important:</span> If you need PAPER,
+it should always be placed at the very top of your file.
+</p>
+</div>
+
+<!-- -L_MARGIN- -->
+
+<div class="macro-id-overline">
+<h3 id="l-margin" class="macro-id">Left margin</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>L_MARGIN</b> <kbd class="macro-args">&lt;left margin&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+L_MARGIN establishes the distance from the left edge of the printer
+sheet at which you want your type to start.
+<a href="#il">Left indents</a>
+and
+<a href="#tabs">tabs</a>
+are calculated from the value you pass to L_MARGIN.
+If you use the macros
+<a href="#pagewidth">PAGEWIDTH</a>
+or
+<a href="#paper">PAPER</a>
+without setting L_MARGIN, mom automatically sets the left margin to
+1 inch.
+</p>
+
+<p>
+A unit of measure is required and decimal fractions are allowed.
+Therefore, to set the left margin at 3 picas (1/2 inch), you&#8217;d
+enter either
+<br/>
+<span class="pre-in-pp">
+ .L_MARGIN 3P
+</span>
+or
+<span class="pre-in-pp">
+ .L_MARGIN .5i
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> L_MARGIN behaves in a special way
+when you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+See
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>
+for an explanation.
+</p>
+</div>
+
+<!-- -R_MARGIN- -->
+
+<div class="macro-id-overline">
+<h3 id="r-margin" class="macro-id">Right margin</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>R_MARGIN</b> <kbd class="macro-args">&lt;right margin&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> R_MARGIN, if used, must
+come after
+<a href="#paper">PAPER</a>,
+<a href="#pagewidth">PAGEWIDTH</a>,
+<a href="#l-margin">L_MARGIN</a>
+and/or
+<a href="#page">PAGE</a>
+(if a right margin isn&#8217;t given to PAGE). The reason is that
+R_MARGIN calculates line length from the overall page dimensions and
+the left margin. Mom can&#8217;t make the calculation if
+she doesn&#8217;t know the page width and the left margin.
+</p>
+</div>
+
+<p>
+R_MARGIN establishes the amount of space you want between the end
+of typeset lines and the right hand edge of the printer sheet. In
+other words, it sets the line length. R_MARGIN requires a unit of
+measure. Decimal fractions are allowed.
+</p>
+
+<p>
+The line length macro
+(<a href="#linelength">LL</a>)
+can be used in place of R_MARGIN. In either case, the last one
+invoked sets the line length. The choice of which to use is up
+to you. In some instances, you may find it easier to think of a
+section of type as having a right margin. In others, giving a line
+length may make more sense.
+</p>
+
+<p>
+For example, if you&#8217;re setting a page of type you know should
+have 6-pica margins left and right, it makes sense to enter a left
+and right margin, like this:
+<br/>
+<span class="pre-in-pp">
+ .L_MARGIN 6P
+ .R_MARGIN 6P
+</span>
+That way, you don&#8217;t have to worry about calculating the line
+length. On the other hand, if you know the line length for a patch
+of type should be 17 picas and 3 points, entering the line length
+with LL is much easier than calculating the right margin, e.g.
+<br/>
+<span class="pre-in-pp">
+ .LL 17P+3p
+</span>
+If you use the macros
+<a href="#page">PAGE</a>,
+<a href="#pagewidth">PAGEWIDTH</a>
+or
+<a href="#paper">PAPER</a>
+without invoking <kbd>.R_MARGIN</kbd> afterwards, mom automatically
+sets R_MARGIN to 1 inch. If you set a line length after these
+macros (with
+<a href="#linelength">LL</a>),
+the line length calculated by R_MARGIN is, of course, overridden.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> R_MARGIN behaves in a special way when you&#8217;re
+using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+See
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>
+for an explanation.
+</p>
+</div>
+
+<!-- -T_MARGIN- -->
+
+<div class="macro-id-overline">
+<h3 id="t-margin" class="macro-id">Top margin</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>T_MARGIN</b> <kbd class="macro-args">&lt;top margin&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+T_MARGIN establishes the distance from the top of the printer
+sheet at which you want your type to start. It requires a unit of
+measure, and decimal fractions are allowed. To set a top margin of
+2-1/2 centimetres, you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .T_MARGIN 2.5c
+</span>
+T_MARGIN calculates the vertical position of the first line of type
+on a page by treating the top edge of the printer sheet as a
+<a href="definitions.html#baseline">baseline</a>. Therefore,
+<br/>
+<span class="pre-in-pp">
+ .T_MARGIN 1.5i
+</span>
+puts the baseline of the first line of type 1-1/2 inches beneath the
+top of the page.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> T_MARGIN means something slightly
+different when you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+See
+<a href="docprocessing.html#tb-margins">Top and bottom margins in document processing</a>
+for an explanation.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> T_MARGIN does two
+things: it establishes the top margin for pages that come after
+it <i>and</i> it moves to that position on the current page.
+Therefore, T_MARGIN should only be used at the top of a file (prior
+to entering text) or after
+<a href="#newpage">NEWPAGE</a>,
+like this:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .NEWPAGE
+ .T_MARGIN 6P
+ &lt;text&gt;
+</span>
+</p>
+</div>
+
+<!-- -B_MARGIN- -->
+
+<div class="macro-id-overline">
+<h3 id="b-margin" class="macro-id">Bottom margin</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>B_MARGIN</b> <kbd class="macro-args">&lt;bottom margin&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+B_MARGIN sets a nominal position at the bottom of the page beyond
+which you don&#8217;t want your type to go. When the bottom margin
+is reached, mom starts a new page. B_MARGIN requires a unit of
+measure. Decimal fractions are allowed. To set a nominal bottom
+margin of 3/4 inch, enter
+<br/>
+<span class="pre-in-pp">
+ .B_MARGIN .75i
+</span>
+Obviously, if you haven&#8217;t spaced the type on your pages so
+that the last lines fall perfectly at the bottom margin, the margin
+will vary from page to page. Usually, but not always, the last line
+of type that fits on a page before the bottom margin causes mom to
+start a new page.
+</p>
+
+<p>
+Occasionally, owing to a peculiarity in groff, an extra line will
+fall below the nominal bottom margin. If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>,
+this is unlikely to happen; the document processing macros are very
+hard-nosed about aligning bottom margins.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> The meaning of B_MARGIN is slightly
+different when you&#8217;re using the document processing macros.
+See
+<a href="docprocessing.html#tb-margins">Top and bottom margins in document processing</a>
+for an explanation.
+</p>
+</div>
+
+<!-- -PAGE- -->
+
+<div class="macro-id-overline">
+<h3 id="page" class="macro-id">Page</h3>
+</div>
+
+<div class="box-macro-args" style="overflow: auto;">
+Macro: <b>PAGE</b> <kbd class="macro-args">&lt;width&gt;&nbsp;[ &lt;length&gt; [ &lt;lm&gt; [ &lt;rm&gt; [ &lt;tm&gt; [ &lt;bm&gt; ] ] ] ] ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;All arguments require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>,
+PAGE must come after
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>.
+Otherwise, it should go at the top of a document, prior to any
+text. And remember, when you&#8217;re using the document processing
+macros, top margin and bottom margin mean something slightly
+different than when you&#8217;re using just the typesetting macros
+(see
+<a href="docprocessing.html#tb-margins">Top and bottom margins in document processing</a>).
+</p>
+</div>
+
+<p>
+PAGE lets you establish paper dimensions and page margins with a
+single macro. The only required argument is page width. The rest
+are optional, but they must appear in order and you can&#8217;t
+skip over any. <kbd>&lt;lm&gt;, &lt;rm&gt;, &lt;tm&gt;</kbd>, and
+<kbd>&lt;bm&gt;</kbd> refer to the left, right, top and bottom
+margins respectively.
+</p>
+
+<p>
+Assuming your page dimensions are 11 inches by 17 inches, and
+that&#8217;s all you want to set, enter
+<br/>
+<span class="pre-in-pp">
+ .PAGE 11i 17i
+</span>
+If you want to set the left margin as well, say, at 1 inch, PAGE
+would look like this:
+<br/>
+<span class="pre-in-pp">
+ .PAGE 11i 17i 1i
+</span>
+Now suppose you also want to set the top margin, say, at 1-1/2
+inches. &lt;tm&gt; comes after &lt;rm&gt; in the optional arguments,
+but you can&#8217;t skip over any arguments, therefore to set the
+top margin, you must also give a right margin. The PAGE macro would
+look like this:
+<br/>
+<span class="pre-in-pp">
+ .PAGE 11i 17i 1i 1i 1.5i
+ | |
+ required right---+ +---top margin
+ margin
+</span>
+Clearly, PAGE is best used when you want a convenient way to tell
+mom just the dimensions of your printer sheet (width and length), or
+when you want to tell her everything about the page (dimensions and
+all the margins), for example
+<br/>
+<span class="pre-in-pp">
+ .PAGE 8.5i 11i 45p 45p 45p 45p
+</span>
+This sets up an 8-1/2 by 11 inch page with margins of 45 points
+(5/8-inch) all around.
+</p>
+
+<p>
+Additionally, if you are not using the
+<a href="docprecessing.html">document processing macros</a>
+and invoke PAGE with a top margin argument, any macro you invoke
+after PAGE will likely move the
+<a href="definitions.html#baseline">baseline</a>
+of the first line of text down by one linespace. To compensate, do
+<br/>
+<span class="pre-in-pp">
+ .RLD 1v
+</span>
+immediately before entering any text.
+</p>
+
+<p>
+Please read the
+<a href="#page-setup-note">Important note on page dimensions and papersize</a>
+for information on ensuring groff respects your PAGE dimensions and
+margins.
+</p>
+
+<!-- -NEWPAGE- -->
+
+<div class="macro-id-overline">
+<h3 id="newpage" class="macro-id">Start a new page</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>NEWPAGE</b>
+</div>
+
+<p>
+Whenever you want to start a new page, use NEWPAGE, by itself with
+no argument. Mom will finish up processing the current page and move
+you to the top of a new one (subject to the top margin set with
+<a href="#t-margin">T_MARGIN</a>).
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="basic-params-intro" class="macro-group">Basic typesetting parameters</h2>
+
+<p>
+The basic typesetting parameter macros deal with fundamental
+requirements for setting type: family, font, point size, leading,
+and line length.
+</p>
+
+<p>
+If you&#8217;re using the typesetting macros only, the arguments
+passed to the basic parameter macros remain in effect until
+you change them. The document processing macros handle things
+differently. See
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>
+for an explanation.
+</p>
+
+<div id="index-basic" class="macro-list-container">
+<h3 class="macro-list">Basic parameter macros</h3>
+<ul class="macro-list">
+ <li><a href="#family">FAMILY</a> &ndash; type family</li>
+ <li><a href="#font">FT</a> &ndash; font</li>
+ <li><a href="#fallback-font">FALLBACK_FONT</a> &ndash; for invalid fonts</li>
+ <li><a href="#ps">PT_SIZE</a> &ndash; point size of type</li>
+ <li><a href="#leading">LS</a> &ndash; line spacing/leading</li>
+ <li><a href="#autolead">AUTOLEAD</a> &ndash; automatic line spacing</li>
+ <li><a href="#linelength">LL</a> &ndash; line length</li>
+</ul>
+</div>
+
+<!-- -FAMILY- -->
+
+<div class="macro-id-overline">
+<h3 id="family" class="macro-id">Type family</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FAMILY</b> <kbd class="macro-args">&lt;family&gt;</kbd>
+</div>
+<p class="alias">
+<i>Alias:</i> <b>FAM</b>
+</p>
+
+<p>
+FAMILY takes one argument: the name of the
+<a href="definitions.html#family">family</a>
+you want. Groff comes with a small set of basic families, each
+identified by a 1-, 2-or 3-letter mnemonic. The standard families
+are:
+<br/>
+<span class="pre-in-pp">
+ A = Avant Garde
+ BM = Bookman
+ H = Helvetica
+ HN = Helvetica Narrow
+ N = New Century Schoolbook
+ P = Palatino
+ T = Times Roman
+ ZCM = Zapf Chancery
+</span>
+The argument you pass to FAMILY is the identifier at left, above.
+For example, if you want Helvetica, enter
+<br/>
+<span class="pre-in-pp">
+ .FAMILY H
+</span>
+</p>
+
+<div class="box-tip" style="margin-top: -1em;">
+<p class="tip-top">
+<span class="note">Note:</span> The font macro
+(<a href="#font">FT</a>)
+lets you specify both the type family and the desired font with
+a single macro. While this saves a few keystrokes, I recommend
+using FAMILY for family, and FT for font, except where doing
+so is genuinely inconvenient. <kbd>ZCM</kbd>, for example,
+only exists in one style: Italic (<kbd>I</kbd>). Therefore,
+<kbd>.FT&nbsp;ZCMI</kbd> makes more sense than setting the family to
+<kbd>ZCM</kbd>, then setting the font to <kbd>I</kbd>.
+</p>
+
+<p>
+Furthermore, if you need to access a character from groff's Zapf
+Dingbats font directly, use <kbd>.FT&nbsp;ZD</kbd> or the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd>\f[ZD]</kbd>. Commonly-used dingbats are
+available without changing to the ZD font by using groff's
+pre-defined character escapes, e.g. <kbd>\[rh]</kbd> for a pointing
+right hand; see <kbd>man groff_char</kbd> for a complete list.
+Dingbats that have not been pre-defined must be accessed with the
+<kbd>\N</kbd> escape. For example, <kbd>\f[ZD]\N'37'</kbd> prints
+the (undefined) telephone dingbat.
+</p>
+
+<p id="fam-add-note" class="tip-bottom">
+<span class="additional-note">Additional note:</span>
+If you are running a version of groff lower than 1.19.2, you must
+follow all FAMILY requests with a FT request, otherwise mom will set
+all type up to the next FT request in the
+<a href="#fallback-font">fallback font</a>.
+</p>
+</div>
+
+<p style="margin-top: -.5em;">
+If you are running a version of groff greater than or
+equal to 1.19.2, when you invoke the FAMILY macro, mom
+&#8220;remembers&#8221; the font style (Roman, Italic, etc)
+currently in use (if the font style exists in the new family) and
+will continue to use the same font style in the new family. For
+example:
+<br/>
+<span class="pre-in-pp">
+ .FAMILY BM \" Bookman family
+ .FT I \" Medium Italic
+ &lt;some text&gt; \" Bookman Medium Italic
+ .FAMILY H \" Helvetica family
+ &lt;more text&gt; \" Helvetica Medium Italic
+</span>
+However, if the font style does not exist in the new family, mom
+will set all subsequent type in the
+<a href="#fallback-font">fallback font</a>
+(by default, Courier Medium Roman) until she encounters a
+<a href="#font">FT</a>
+request that&#8217;s valid for the family. For example, assuming
+you don&#8217;t have the font &#8220;Medium Condensed Roman&#8221;
+(mom extension &#8220;CD&#8221;) in the Helvetica family:
+<br/>
+<span class="pre-in-pp">
+ .FAMILY UN \" Univers family
+ .FT CD \" Medium Condensed
+ &lt;some text&gt; \" Univers Medium Condensed
+ .FAMILY H \" Helvetica family
+ &lt;more text&gt; \" Courier Medium Roman!
+</span>
+In the above example, you must follow
+<kbd>.FAMILY&nbsp;H</kbd> with a FT request
+that&#8217;s valid for Helvetica.
+</p>
+
+<p>
+Please see the Appendices,
+<a href="appendices.html#fonts">Adding fonts to groff</a>,
+for information on adding fonts and families to groff, as well as
+to see a list of the extensions mom provides to groff&#8217;s basic
+<b>R</b>, <b>I</b>, <b>B</b>, <b>BI</b> styles.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Suggestion:</span> When adding
+families to groff, I recommend following the established standard
+for the naming families and fonts. For example, if you add the
+Garamond family, name the font files
+<br/>
+<span class="pre-in-pp">
+ GARAMONDR
+ GARAMONDI
+ GARAMONDB
+ GARAMONDBI
+</span>
+GARAMOND then becomes a valid family name you can pass to FAMILY.
+(You could, of course, shorten GARAMOND to just G, or GD.) <b>R</b>,
+<b>I</b>, <b>B</b>, and <b>BI</b> after GARAMOND are the roman,
+italic, bold and bold-italic fonts respectively.
+</p>
+</div>
+
+<!-- -FT- -->
+
+<div class="macro-id-overline">
+<h3 id="font" class="macro-id">FT</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FT</b> <kbd class="macro-args">R | I | B | BI | &lt;any other valid font style&gt;</kbd>
+</div>
+<p class="alias">
+<i>Alias:</i> <b>FONT</b>
+</p>
+
+<p>
+By default, groff permits FT to take one of four possible arguments
+specifying the desired font:
+<br/>
+<span class="pre-in-pp">
+ R = (Medium) Roman
+ I = (Medium) Italic
+ B = Bold (Roman)
+ BI = Bold Italic
+</span>
+For example, if your
+<a href="definitions.html#family">family</a>
+is Helvetica, entering
+<br/>
+<span class="pre-in-pp">
+ .FT B
+</span>
+will give you the Helvetica bold
+<a href="definitions.html#font">font</a>.
+If your family were Palatino, you&#8217;d get the Palatino bold
+font.
+</p>
+
+<p>
+Mom considerably extends the range of arguments you can pass to FT,
+making it more convenient to add and access fonts of differing
+<a href="definitions.html#weight">weights</a>
+and
+<a href="definitions.html#shape">shapes</a>
+within the same family. Have a look
+<a href="appendices.html#style-extensions">here</a>
+for a list of the weight/style arguments mom allows. Be aware,
+though, that you must have the fonts, correctly installed and named,
+in order to use the arguments. (See
+<a href="appendices.html#fonts">Adding fonts to groff</a>
+for instructions and information.) Please also read the
+<a href="#fam-add-note">Additional note</a>
+found in the description of the FAMILY macro.
+</p>
+
+<p>
+How mom reacts to an invalid argument to FT depends on which version
+of groff you&#8217;re using. If your groff version is greater than
+or equal to 1.19.2, mom will issue a warning and, depending on how
+you&#8217;ve set up the
+<a href="#fallback-font">fallback font</a>,
+either continue processing using the fallback font, or abort
+(allowing you to correct the problem). If your groff version is
+less than 1.19.2, mom will silently continue processing, using
+either the fallback font or the font that was in effect prior to the
+invalid FT call.
+</p>
+
+<p>
+FT will also accept, as an argument, a full family+font name. For
+example,
+<br/>
+<span class="pre-in-pp">
+ .FT HB
+</span>
+will set subsequent type in Helvetica Bold. However, I strongly
+recommend keeping family and font separate except where doing so is
+genuinely inconvenient.
+</p>
+
+<p>
+For inline control of fonts, see
+<a href="inlines.html#inline-fonts-mom">Inline Escapes, font control</a>.
+</p>
+
+
+<!-- -FALLBACK_FONT- -->
+
+<div class="macro-id-overline">
+<h3 id="fallback-font" class="macro-id">Fallback font</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>FALLBACK_FONT</b> <kbd class="macro-args">&lt;fallback font&gt; [ ABORT | WARN ]</kbd>
+</div>
+
+<p>
+In the event that you pass an invalid argument to
+<a href="#font">.FAMILY</a>
+(i.e. a non-existent family), mom, by default, uses the fallback
+font, Courier Medium Roman (CR), in order to continue processing
+your file.
+</p>
+
+<p>
+If you&#8217;d prefer another fallback font, pass FALLBACK_FONT the
+full family+font name of the font you&#8217;d like. For example, if
+you&#8217;d rather the fallback font were Times Roman Medium Roman,
+<br/>
+<span class="pre-in-pp">
+ .FALLBACK_FONT TR
+</span>
+would do the trick.
+</p>
+
+<p>
+Mom issues a warning whenever a font style set with
+<a href="#font">FT</a>
+does not exist, either because you haven&#8217;t registered the
+style (see
+<a href="appendices.html#register-style">here</a>
+for instructions on registering styles), or because the font style
+does not exist in the current family set with
+<a href="#family">FAMILY</a>.
+By default, mom then aborts, which allows you to correct the
+problem.
+</p>
+
+<p>
+If you&#8217;d prefer that mom not abort on non-existent fonts,
+but rather continue processing using a fallback font, you can pass
+FALLBACK_FONT the argument <kbd>WARN</kbd>, either by itself, or in
+conjunction with your chosen fallback font.
+</p>
+
+<p>
+Some examples of invoking FALLBACK_FONT:
+</p>
+
+<ul class="no-enumerator" style="margin-left: -1em;">
+<li style="margin-top: -.5em;">
+<kbd>.FALLBACK_FONT WARN</kbd>
+<br/>
+mom will issue a warning whenever you try to access a non-existent
+font but will continue processing your file with the default
+fallback font, Courier Medium Roman.
+<br/>
+</li>
+<li style="margin-top: .5em;">
+<kbd>.FALLBACK_FONT TR WARN</kbd>
+<br/>
+mom will issue a warning whenever you try to access a non-existent
+font but will continue processing your file with a fallback font of
+Times Roman Medium Roman; additionally, &#8220;TR&#8221; will be
+the fallback font whenever you try to access a family that does not
+exist.
+</li>
+<li style="margin-top: .5em;">
+<kbd>.FALLBACK_FONT TR ABORT</kbd>
+<br/>
+mom will abort whenever you try to access a non-existent font, and
+will use the fallback font &#8220;TR&#8221; whenever you try to
+access a family that does not exist.
+</li>
+</ul>
+
+<p>
+If, for some reason, you want to revert to ABORT, just enter
+<kbd>.FALLBACK_FONT&nbsp;ABORT</kbd> and mom will once again abort
+on font errors.
+</p>
+
+<!-- -PT_SIZE- -->
+
+<div class="macro-id-overline">
+<h3 id="ps" class="macro-id">Point size of type</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>PT_SIZE</b> <kbd class="macro-args">&lt;size of type in points&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+PT_SIZE (Point Size) takes one argument: the size of type in points.
+Unlike most other macros that establish the size or measure of
+something, PT_SIZE does not require that you supply a unit of
+measure since it&#8217;s a near universal convention that type size
+is measured in points. Therefore, to change the type size to, say,
+11 points, enter
+<br/>
+<span class="pre-in-pp">
+ .PT_SIZE 11
+</span>
+Point sizes may be fractional (e.g. 10.25 or 12.5).
+</p>
+
+<p>
+If you invoke PT_SIZE without an argument, it reverts to its former
+value. For example, if your point size is 10 and you change it to
+12 with <kbd>.PT_SIZE&nbsp;12</kbd>, entering <kbd>.PT_SIZE</kbd>
+(i.e. without an argument) resets the point size to 10.
+</p>
+
+<p>
+You can prepend a plus or a minus sign to the argument to PT_SIZE,
+in which case the point size will be changed by + or - the original
+value. For example, if the point size is 12, and you want 14, you
+can do
+<br/>
+<span class="pre-in-pp">
+ .PT_SIZE +2
+</span>
+then later reset it to 12 with
+<span class="pre-in-pp">
+ .PT_SIZE -2
+</span>
+or, more simply, just
+<span class="pre-in-pp">
+ .PT_SIZE
+</span>
+The size of type can also be changed inline. See
+<a href="inlines.html#inline-size-mom">Inline Escapes, changing point size</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> It is unfortunate that the
+<kbd>pic</kbd> preprocessor has already taken the name,
+<kbd>PS</kbd>, and thus mom&#8217;s macro for setting point
+sizes can&#8217;t use it. However, if you aren&#8217;t using
+<kbd>pic</kbd>, you might want to
+<a href="goodies.html#alias">alias</a>
+PT_SIZE as PS, since there&#8217;d be no conflict. For example
+<br/>
+<span class="pre-in-pp">
+ .ALIAS PS PT_SIZE
+</span>
+would allow you to set point sizes with <kbd>.PS</kbd>.
+</p>
+</div>
+
+<!-- -LS- -->
+
+<div class="macro-id-overline">
+<h3 id="leading" class="macro-id">Line spacing / leading</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LS</b> <kbd class="macro-args">&lt;distance between lines&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+LS (Line Space) takes one argument: the distance you want, typically
+in points, from baseline to baseline of type. The argument may be
+fractional (e.g. 12.25 or 14.5). Like PT_SIZE, LS does not require
+a unit of measure, since
+<a href="definitions.html#leading">leading</a>
+is most often given in points. Therefore, to set the linespace to
+14 points, you would enter
+<br/>
+<span class="pre-in-pp">
+ .LS 14
+</span>
+However, if you wish, you may specify a unit of measure by appending
+it directly to the argument passed to LS. For example, if you want
+a linespace of 1/4 of an inch, enter
+<br/>
+<span class="pre-in-pp">
+ .LS .25i
+</span>
+You can prepend a plus or a minus sign to the argument to LS, in
+which case the line spacing will be changed by + or - the original
+value. For example, if the line spacing is 14 points, and you want
+17 points, you can do
+<br/>
+<span class="pre-in-pp">
+ .LS +3
+</span>
+then later reset it to 14 points with
+<br/>
+<span class="pre-in-pp">
+ .LS -3
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span> LS should not be confused with
+the groff primitive <kbd>.ls</kbd>. LS acts like
+<kbd>.vs</kbd>. mom does not provide a macro analogous to
+<kbd>.ls</kbd>.
+</p>
+</div>
+
+<!-- -AUTOLEAD- -->
+
+<div class="macro-id-overline">
+<h3 id="autolead" class="macro-id">Automatic line spacing</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>AUTOLEAD</b> <kbd class="macro-args">&lt;amount of automatic leading&gt; [FACTOR]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Does not require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+<br/>
+(Please see
+<a href="docprocessing.html#autolead">here</a>
+for information on using
+<span style="font-style: normal">AUTOLEAD</span> during document
+processing.)
+</p>
+
+<p>
+Without the <kbd>FACTOR</kbd> argument, AUTOLEAD calculates the
+linespace for you by adding its argument to the current point size
+of type. All subsequent
+<a href="#ps">PT_SIZE</a>
+requests automatically update the linespacing by the autolead amount.
+</p>
+
+<p>
+Used in this way, AUTOLEAD does not require a unit of measure;
+points is assumed. However, you may use an alternate unit of
+measure by appending it to the argument. The argument may be a
+decimal fraction (e.g. .5 or 2.75).
+</p>
+
+<p>
+As an example, if your current point size of type is 12, entering
+<br/>
+<span class="pre-in-pp">
+ .AUTOLEAD 2
+</span>
+changes the linespace to 14 points, regardless any linespacing
+already in effect. From here on, every change to the size of type
+(with PT_SIZE, not
+<a href="definitions.html#inlines">inline</a>)
+changes the linespace as well. If you decrease the type size to 9
+points, the leading decreases to 11 points. If you increase the
+type size to 16 points, the leading increases to 18 points.
+</p>
+
+<p>
+Automatic updating of the linespacing continues until you enter a
+&#8220;manual&#8221; line space value with
+<a href="#leading">LS</a>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span> Please note that the groff
+<a href="definitions.html#primitives">primitives</a>,
+<kbd>.vs</kbd> and <kbd>.ps</kbd>, are unaffected by, and have no
+effect, on AUTOLEAD.
+</p>
+</div>
+
+<p>
+If you give AUTOLEAD the optional FACTOR argument, AUTOLEAD
+calculates the line space as a factor of the
+<a href="definitions.html#numericargument">numeric argument</a>
+you gave AUTOLEAD. For example, if your point size is 12,
+<br/>
+<span class="pre-in-pp">
+ .AUTOLEAD 1.125 FACTOR
+</span>
+sets the leading at 13.5 points. If you change the point size to
+14, the leading automatically changes to 15.75 (14 x 1.125).
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> There&#8217;s no need to prepend a
+plus sign
+(<kbd>+</kbd>)
+to AUTOLEAD&#8217;s argument, although you may do so if you wish.
+</p>
+</div>
+
+<!-- -LL- -->
+
+<div class="macro-id-overline">
+<h3 id="linelength" class="macro-id">Line length</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LL</b> <kbd class="macro-args">&lt;line length&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+LL (Line Length) takes one argument: the distance from the left
+margin of the page to the maximum allowable point on the right at
+which groff should place type. The line length, in other words, as
+the macro suggests.
+</p>
+
+<p>
+LL requires a unit of measure. Therefore, to set the line length to
+39 picas, you would enter
+<br/>
+<span class="pre-in-pp">
+ .LL 39P
+</span>
+As with other macros that require a unit of measure, the argument to
+LL may be fractional. For example,
+<br/>
+<span class="pre-in-pp">
+ .LL 4.5i
+</span>
+sets the line length to 4-1/2 inches.
+</p>
+
+<p>
+Additionally, you may express a new line length relative to the
+current line length by prepending a plus or minus sign to the
+argument. Thus, if you wanted to increase the line length by 3
+<a href="definitions.html#picaspoints">points</a>, you could
+do
+<br/>
+<span class="pre-in-pp">
+ .LL +3p
+</span>
+This is especially handy when you want to &#8220;hang&#8221;
+punctuation outside the right margin since you can pass
+groff&#8217;s
+<a href="inlines.html#inline-stringwidth-groff"><kbd>\w</kbd></a>
+escape as the argument to LL, like this:
+<br/>
+<span class="pre-in-pp">
+ .LL +\w'.'u
+</span>
+The above example increases the current line length by the width of
+a period. Notice that you must append the
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+<b>u</b>, to the escape since LL requires a unit of measure.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> The right margin macro
+<a href="#r-margin">(R_MARGIN)</a>
+can also be used to set line length.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="justification-intro" class="macro-group">Justification and quadding/breaking and joining lines</h2>
+
+<p>
+The justification and quadding macros deal with how type aligns
+along the left and right margins. In a nutshell, type either aligns
+at the left margin, at the right margin, at both margins, or at
+neither margin (centred).
+</p>
+
+<p>
+These macros also determine whether or not
+<a href="definitions.html#inputline">input lines</a>
+are joined and
+<a href="definitions.html#filled">filled</a>
+during output.
+</p>
+
+<p>
+Additionally, macros that deal with how to break
+<a href="definitions.html#outputline">output lines</a>
+are covered in this section, as is the
+<a href="definitions.html#inlines">inline escape</a>
+for joining input lines.
+</p>
+
+<p>
+You may encounter some words here that are unfamiliar. Refer to
+<a href="definitions.html#typesetting">Typesetting terms</a>
+and
+<a href="definitions.html#groff">Groff terms</a>
+for an explanation.
+</p>
+
+<div id="index-justification" class="macro-list-container">
+<h3 class="macro-list">Justification and quadding/breaking and joining lines macros</h3>
+<ul class="macro-list">
+ <li>Fill modes
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#justify">JUSTIFY</a> &ndash; set lines justified</li>
+ <li><a href="#quad">QUAD</a> &ndash; set filled lines flush left, right or centred</li>
+ </ul></li>
+ <li>Nofill modes
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#lrc">LEFT</a> &ndash; set non-filled lines flush left</li>
+ <li><a href="#lrc">RIGHT</a> &ndash; set non-filled lines flush right</li>
+ <li><a href="#lrc">CENTER</a> &ndash; set non-filled lines centred</li>
+ </ul></li>
+ <li>Breaking lines
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#br">BR</a> &ndash; manually break an output line</li>
+ <li><a href="#el">EL</a> &ndash; break a line without advancing to the next output line</li>
+ <li><a href="#space">SPACE</a> &ndash; break a line and add space before the next output line</li>
+ <li><a href="#spread">SPREAD</a> &ndash; break and force-justify an output line</li>
+ </ul></li>
+ <li>Joining input lines in <a href="definitions.html#filled">nofill mode</a>
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#join">\c</a> inline escape</li>
+ </ul></li>
+</ul>
+</div>
+
+<!-- -JUSTIFY- -->
+
+<div class="macro-id-overline">
+<h3 id="justify" class="macro-id">Justify lines</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>JUSTIFY</b>
+</div>
+
+<p class="requires">
+(See
+<a href="definitions.html#filled">fill mode</a>
+for a definition of the difference between &#8220;fill&#8221; and
+&#8220;no-fill&#8221; modes.)
+</p>
+
+<p>
+JUSTIFY doesn&#8217;t take an argument.
+<a href="definitions.html#inputline">Input lines</a>
+after JUSTIFY are
+<a href="definitions.html#filled">filled</a>
+and
+<a href="definitions.html#just">justified</a>
+upon output.
+</p>
+
+<p>
+To break lines and prevent them from being filled and justified, use
+the
+<a href="#br">BR</a>
+macro.
+</p>
+
+<!-- -QUAD- -->
+
+<div class="macro-id-overline">
+<h3 id="quad" class="macro-id">Quad lines left, right, or centre</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>QUAD</b> <kbd class="macro-args">L | LEFT | R | RIGHT | C | CENTER | J | JUSTIFY</kbd>
+</div>
+
+<p class="alias" style="margin-bottom: 0;">
+<i>Alias:</i> <b>FILL</b>
+</p>
+
+<p class="requires">(See
+<a href="definitions.html#filled">fill mode</a>
+for a definition of the difference between &#8220;fill&#8221; and
+&#8220;no-fill&#8221; modes.)
+</p>
+
+<p>
+QUAD takes one argument: the direction in which lines should be
+<a href="definitions.html#quad">quadded</a>.
+<a href="definitions.html#inputline">Input lines</a>
+after QUAD are
+<a href="definitions.html#filled">filled</a>
+upon output.
+</p>
+
+<p>
+If <kbd>L</kbd> or <kbd>LEFT</kbd>, type is set flush along the left
+margin.
+</p>
+
+<p>
+If <kbd>R</kbd> or <kbd>RIGHT</kbd>, type is set flush along the
+right margin.
+</p>
+
+<p>
+If <kbd>C</kbd> or <kbd>CENTER</kbd> type is set centred on the
+current line length.
+</p>
+
+<p>
+<kbd>J</kbd> and <kbd>JUSTIFY</kbd> justify text, and are
+included as a convenience only. Obviously, if text is
+justified, it isn&#8217;t quadded. <kbd>.QUAD&nbsp;J</kbd> and
+<kbd>.QUAD&nbsp;JUSTIFY</kbd> have exactly the same effect as
+<a href="#justify">JUSTIFY</a>.
+</p>
+
+<p>
+To break lines and prevent them from being filled, use the
+<a href="#br">BR</a>
+macro.
+</p>
+
+<!-- -LEFT, RIGHT, CENTER- -->
+
+<div class="macro-id-overline">
+<h3 id="lrc" class="macro-id">Set lines flush left, right or centered in no-fill mode</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LEFT</b>
+<br/>
+Macro: <b>RIGHT</b>
+<br/>
+Macro: <b>CENTER</b> &nbsp;(alias CENTRE)
+</div>
+
+<p class="requires">
+(See
+<a href="definitions.html#filled">no-fill mode</a>
+for a definition of the difference between &#8220;fill&#8221; and
+&#8220;no-fill&#8221; modes.)
+</p>
+
+<p>
+LEFT, RIGHT, and CENTER let you enter text on a line for line basis
+without having to use the
+<a href="#br">BR</a>
+macro after each line. Consider the following:
+<br/>
+<span class="pre-in-pp">
+ .QUAD LEFT
+ So runs my dream, but what am I?
+ .BR
+ An infant crying in the night
+ .BR
+ An infant crying for the light
+ .BR
+ And with no language but a cry.
+ .BR
+</span>
+Because text after <kbd>.QUAD&nbsp;LEFT</kbd> is
+<a href="definitions.html#filled">filled</a>,
+you have to use the
+<a href="#br">BR</a>
+macro to prevent the lines from running together. Not only is this
+annoying to type, it&#8217;s awkward to read in a text editor. Much
+better to do
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ So runs my dream, but what am I?
+ An infant crying in the night
+ An infant crying for the light
+ And with no language but a cry.
+</span>
+</p>
+
+<div class="box-important" style="margin-top: -.5em;">
+<p class="tip">
+<span class="important">IMPORTANT:</span> Because LEFT,
+RIGHT, and CENTER are nofill modes, groff does not always respect the
+current line length.
+<a href="definitions.html#inputline">Input lines</a>
+that run long may exceed it, or get broken in undesirable ways.
+Therefore, when using these three macros, you should preview your
+work to ensure that all lines fit as expected.
+</p>
+</div>
+
+<!-- -BR- -->
+
+<div class="macro-id-overline">
+<h3 id="br" class="macro-id">Manually break lines</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>BR</b>
+</div>
+
+<p>
+When using
+<a href="#justify">JUSTIFY</a>
+or
+<a href="#quad">QUAD</a>,
+BR tells mom about partial lines that you want broken (as opposed to
+<a href="definitions.html#filled">filled</a>).
+Any partial
+<a href="definitions.html#outputline">output line</a>
+that immediately precedes BR will be
+<a href="definitions.html#quad">quadded</a>
+in the direction of the current quad, or set flush left if text is
+<a href="definitions.html#just">justified</a>.
+</p>
+
+<p>
+Most of the time, you won&#8217;t need the BR macro. In fill modes,
+mom tries to be sensible about where breaks are needed. If the
+nature of a macro is such that under most circumstances you&#8217;d
+expect a break, mom puts it in herself. Equally, in macros where a
+break isn&#8217;t normally desirable, no break occurs. This means
+text files don&#8217;t get cluttered with annoying BR&#8217;s.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> Lines of text in
+<a href="definitions.html#filled">nofill mode</a>
+never require a BR. Furthermore, in nofill mode, ALL macros cause a
+break. If a break is not desired, use the
+<a href="#join"><kbd>\c</kbd></a>
+<a href="definitions.html#inlines">inline escape</a>.
+</p>
+
+<p class="tip-bottom" style="margin-top: -1em">
+<span class="experts">Experts:</span> BR is an alias for
+<kbd>.br</kbd>. You can use either, or mix
+&#8217;n&#8217; match with impunity.
+</p>
+</div>
+
+<!-- -EL- -->
+
+<div class="macro-id-overline">
+<h3 id="el" class="macro-id">Manually break a line without advancing on the page</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>EL</b>
+</div>
+
+<p class="requires">
+In nofill modes
+<span style="font-style: normal;">
+(<a href="#left">LEFT</a>,
+<a href="#right">RIGHT</a>,
+<a href="#center">CENTER</a>)
+</span>
+you must terminate the line input preceding
+<span style="font-style: normal;">EL</span>
+with the
+<span style="font-style: normal;">
+<kbd>\c</kbd> inline escape.
+</span>
+</p>
+
+<p style="margin-top: -.5em">
+<i><b>Suggestion:</b> If you find remembering whether to put in the</i>
+<kbd>\c</kbd>
+<i>bothersome, you may prefer to use the</i>
+<a href="definitions.html#inlines">inline escape</a>
+<i>alternative to</i> EL,
+<a href="inlines.html#b"><kbd><span class="nobr">\*[B]</span></kbd></a>,
+<i>which works consistently regardless of the fill mode.
+</i>EL <i>does not work after the</i>
+<a href="goodies.html#pad">PAD</a>
+<i>macro. See</i>
+<a href="goodies.html#nobreak"><kbd>.PAD&nbsp;NOBREAK</kbd></a>
+<i>for the way around this.</i>
+</p>
+
+<p id="el-example">
+EL (&#8220;<span style="text-decoration: underline;">E</span>nd <span style="text-decoration: underline;">L</span>ine&#8221;)
+is conceptually equivalent to the notion of a carriage return with
+no linefeed. Its function is simple: it breaks a line without
+advancing on the page. As an example of where you might use it,
+imagine that you&#8217;re working from marked-up copy. The markup
+indicates 24 points of space between two given lines, but the
+prevailing line spacing is 12.5 points. You may find it more
+convenient to break the first line with EL and instruct mom to
+advance 24 points to the next line instead of calculating the lead
+that needs to be added to 12.5 to get 24. To demonstrate:
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .LS 12.5
+ A line of text.\c
+ .EL
+ .ALD 24p
+ The next line of text.
+</span>
+may be more intuitive than
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .LS 12.5
+ A line of text.
+ .ALD 11.5p
+ The next line of text.
+</span>
+The first example has the further advantage that should you wish to
+change the prevailing line space but keep the 24 points lead, you
+don&#8217;t have to recalculate the extra space.
+</p>
+
+<p>
+ALD in the above examples stands for
+&#8220;<span style="text-decoration: underline;">A</span>dvance
+<span style="text-decoration: underline;">L</span>ea<span style="text-decoration: underline;">D</span>&#8221;,
+which is covered in the section
+<a href="#aldrld-intro">Vertical movements</a>.
+</p>
+
+<!-- -SP- -->
+
+<div class="macro-id-overline">
+<h3 id="space" class="macro-id">Break lines and add space between</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SPACE</b> <kbd class="macro-args">[&lt;space to add between lines&gt;]</kbd>
+</div>
+<p class="alias">
+<i>Alias:</i> <b>SP</b>
+</p>
+
+<p>
+SPACE breaks a line, just like
+<a href="#br">BR</a>,
+then adds space after the line. With no argument, it adds an extra
+line space. If you pass it a numeric argument without supplying a
+<a href="definitions.html#unitofmeasure">unit of measure</a>,
+it advances that number of extra line spaces. For example:
+<br/>
+<span class="pre-in-pp">
+ .SPACE
+</span>
+breaks the line then adds an extra linespace, whereas
+<br/>
+<span class="pre-in-pp">
+ .SPACE 2
+</span>
+breaks the line and adds two extra linespaces.
+</p>
+
+<p>
+If you supply a unit of measure, SPACE breaks the line and advances
+the specified vertical distance, as in
+<br/>
+<span class="pre-in-pp">
+ .SPACE 6p
+</span>
+which breaks the line and advances six points further.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="tip">Tip:</span> SPACE and
+<a href="#ald">ALD</a>
+can be used interchangeably (<kbd>.SPACE&nbsp;6p</kbd> and
+<kbd>.ALD&nbsp;6p</kbd> are equivalent). However, ALD without an
+argument does nothing, whereas SPACE without an argument adds an
+extra line space. I recommend using SPACE when you want an extra
+line space (or multiple thereof), and ALD whenever you want some
+other value of space after a line.
+</p>
+
+<p>
+<span class="experts">Experts:</span> SPACE is an alias of
+<kbd>.sp</kbd>. You can use either, or mix &#8217;n&#8217; match
+with impunity. Because SPACE aliases <kbd>.sp</kbd>, it may be used
+with groff&#8217;s absolute position modifier
+&#8220;<kbd>|</kbd>&#8221; (the pipe
+character) to move to a specified vertical location on the page.
+Consult
+<span class="pre-in-pp">
+ info&nbsp;groff&nbsp;&#8220;Manipulating Spacing&#8221;
+</span>
+or, more simply,
+<span class="pre-in-pp">
+ info&nbsp;groff&nbsp;sp.
+</span>
+</p>
+</div>
+
+<!-- -SPREAD- -->
+
+<div class="macro-id-overline">
+<h3 id="spread" class="macro-id">Break and force justify (spread) lines</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SPREAD</b>
+</div>
+
+<p>
+Sometimes, you need to break a line of
+<a href="definitions.html#just">justified</a>
+text and have it come out fully justified, not
+<a href="definitions.html#quad">quadded</a>
+left the way it would be with the
+<a href="#br">BR</a>
+macro. An example of where you&#8217;d do this would be when you
+want to prevent a word at the end of a line from being hyphenated
+(say, a proper name). SPREAD is the macro that lets you break the
+line and have it came out fully justified.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="experts">Experts:</span> SPREAD is an alias for
+<kbd>.brp</kbd> You can use either, or mix &#8217;n&#8217; match
+with impunity.
+</p>
+</div>
+
+<!-- -JOIN- -->
+
+<div class="macro-id-overline">
+<h3 id="join" class="macro-id">Join input lines</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <kbd class="macro-args">\c</kbd>
+</div>
+
+<p>
+Sometimes, especially when in one of the
+<a href="definitions.html#filled">nofill modes</a>,
+a macro will cause a break where you don&#8217;t want one. In order
+to prevent this from happening (in other words, to join
+<a href="definitions.html#inputline">input lines</a>
+together, forming one
+<a href="definitions.html#outputline">output line</a>),
+use the groff
+<a href="definitions.html#inlines">inline escape</a>
+<kbd>\c</kbd> at the end of each input line to be
+joined to another, like this:
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .FAMILY T
+ .FT R
+ Some lines of text to be \c
+ .FAMILY H
+ .FT B
+ joined \c
+ .FAMILY T
+ .FT R
+ together.
+</span>
+Upon output, the lines will be joined together to read
+<br/>
+<span class="pre-in-pp">
+ Some lines of text to be joined together.
+</span>
+with the word &#8220;joined&#8221; in Helvetica bold. Note the
+spaces before <kbd>\c</kbd>. Without them, the last three words of
+the output line would read
+<br/>
+<span class="pre-in-pp">
+ bejoinedtogether
+</span>
+Please also note that had the example been in one of the
+<a href="definitions.html#filled">fill modes</a>,
+there&#8217;d have been no need for the <kbd>\c</kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<b>Addendum:</b> The example, above, is designed to demonstrate the
+use of <kbd>\c</kbd>. An easier and more intuitive way
+to accomplish the family/font change in the example would be with
+the groff
+<a href="definitions.html#inlines">inline escape</a>,
+<kbd><a href="inlines.html#inline-fonts-groff">\f</a></kbd>,
+like this:
+<br/>
+<span class="pre-in-pp" style="padding-bottom: 0px;">
+ Some lines of text to be \f[HB]joined\*[PREV] together.
+</span>
+</p>
+</div>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="refinements-intro" class="macro-group">Typographic refinements</h2>
+
+<p>
+The macros in this section help you tweak groff&#8217;s behaviour,
+ensuring that your documents look typographically professional.
+</p>
+
+<div id="index-refinements" class="macro-list-container">
+<h3 class="macro-list">Typographic refinements macros</h3>
+
+<ul class="macro-list">
+ <li>Word and sentence spacing
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#ws">WS</a> &ndash; word spacing</li>
+ <li><a href="#ss">SS</a> &ndash; sentence space</li>
+ </ul></li>
+ <li>Letter spacing (track kerning)
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#rw">RW</a> &ndash; reduce whitespace</li>
+ <li><a href="#ew">EW</a> &ndash; expand whitespace</li>
+ <li><a href="#br-at-line-kern">BR_AT_LINE_KERN</a></li>
+ </ul></li>
+ <li>Hyphenation
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#hy">HY</a> &ndash; turn auto hyphenation on/off, or set specific hyphenation parameters</li>
+ <li><a href="#hy-set">HY_SET</a> &ndash; set all hyphenation parameters</li>
+ </ul></li>
+ <li>Automatic kerning and ligatures
+ <ul style="list-style-type: none; margin-left: -1em;">
+ <li><a href="#kern">KERN</a> &ndash; turn automatic pairwise kerning on or off</li>
+ <li><a href="#ligatures">LIGATURES</a> &ndash; turn automatic generation of ligatures on or off</li>
+ </ul></li>
+</ul>
+</div>
+
+<!-- -WS- -->
+
+<div class="macro-id-overline">
+<h3 id="ws" class="macro-id">Word spacing</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>WS</b> <kbd class="macro-args">&lt;+|-wordspace&gt; | DEFAULT</kbd>
+</div>
+
+<p>
+WS (Word Space) increases or decreases the amount of space between
+words. In
+<a href="definitions.html#filled">nofill modes</a>,
+or if
+<a href="#quad">QUAD</a>
+is in effect, the space between words is fixed. Therefore, if you
+change the word spacing with WS, the change applies uniformly to the
+space between every word on every line. However, when text is
+<a href="definitions.html#just">justified</a>,
+the space between words varies from line to line (in order to
+justify the text). Consequently, the change you make with WS
+represents the minimum (and ideal) space groff will try to put
+between words before deciding whether to hyphenate a final word or
+to stretch the word spacing.
+</p>
+
+<p>
+Word space is relative to point size. Generally, in/decreasing the
+word space by a value of 1 or 2 produces a difference that in many
+cases is scarcely visible. In/decreasing by a value between 3 and 5
+produces a subtle but noticeable difference. In/decreasing by a
+value greater than 6 is almost always apparent. You should preview
+your work to assess the effect of WS.
+</p>
+
+<p id="ws-usage">
+WS takes as its argument a whole number preceded by a plus or minus
+sign. Therefore, to decrease the word space slightly, you might
+enter
+<br/>
+<span class="pre-in-pp">
+ .WS -2
+</span>
+To increase it by a noticeable amount, you might enter
+<br/>
+<span class="pre-in-pp">
+ .WS +6
+</span>
+You can reset the word spacing to its previous value by switching
+the plus or minus sign, like this:
+<br/>
+<span class="pre-in-pp">
+ .WS +2
+ A line of text
+ .WS -2
+</span>
+The <kbd>.WS&nbsp;-2</kbd> undoes the effect of
+<kbd>.WS&nbsp;+2</kbd>. You can also reset WS to its groff default
+by entering
+<br/>
+<span class="pre-in-pp">
+ .WS DEFAULT
+</span>
+This can be particularly useful if you&#8217;ve been playing around
+with plus and minus values, and can&#8217;t remember by how much to
+in/decrease the word space to get it back to normal.
+</p>
+
+<!-- -SS- -->
+
+<div class="macro-id-overline">
+<h3 id="ss" class="macro-id">Sentence space</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SS</b> <kbd class="macro-args">&lt;+sentence space&gt; | 0 | DEFAULT</kbd>
+</div>
+
+<p>
+SS (Sentence Space) tells groff how to treat double spaces it
+encounters between sentences in
+<a href="definitions.html#inputline">input lines</a>.
+If you use SS, input sentences with two spaces after them <i>and</i>
+input sentences that fall at the end of input lines all receive a
+normal word space plus an additional amount of space whose size is
+determined by the + value passed as an argument to SS. Thus,
+<br/>
+<span class="pre-in-pp">
+ .SS +2
+</span>
+means that input sentences with two spaces after them receive a
+normal word space PLUS the +2 value passed to SS.
+</p>
+
+<p>
+Like
+<a href="#ws">WS</a>,
+increasing the sentence space by a value of 1 or 2 produces a
+difference that in many cases is scarcely visible. Increasing by a
+value of 5 or so produces a subtle but noticeable difference (i.e.,
+the space between double-spaced input sentences will be slightly
+but visibly greater than the space between words). Increasing by a
+value greater than 10 is always apparent. You should preview your
+work to assess the effect of SS.
+</p>
+
+<p>
+There&#8217;s an additional argument you can pass SS: the number
+zero (without the plus sign). It&#8217;s the argument you&#8217;ll
+use most often. Typeset copy should never have two spaces between
+sentences, and the "zero" argument tells groff to give the extra
+spaces no space at all (effectively removing them). Therefore, if
+you double-space your sentences (as you should when writing in a
+text editor), get in the habit of putting
+<br/>
+<span class="pre-in-pp">
+ .SS 0
+</span>
+at the top of your files.
+</p>
+
+<p>
+If you do use SS for something other than ensuring that you
+don&#8217;t get unwanted sentence spaces in output copy, you can set
+or reset the sentence space to the groff default (the same width
+as a word space, i.e., double-spaced input sentences will appear
+double-spaced on output as well) with
+<br/>
+<span class="pre-in-pp">
+ .SS DEFAULT
+</span>
+If you&#8217;re using the
+<a href="docprocessing.html">document processing macros</a>
+and your
+<a href="docprocessing.html#printstyle">PRINTSTYLE</a>
+is <kbd>TYPEWRITE</kbd>, <kbd>.SS&nbsp;DEFAULT</kbd> is the
+default, because you do want double spaces between sentences in copy
+that imitates the look of a typewritten document.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> SS with an argument other
+than <kbd>0</kbd> (zero) should only be used if you&#8217;re of
+the old (and wise) school of typists that puts two spaces between
+sentences. If you ignore this advice and use SS when you habitually
+put only one space between sentences, you risk producing output
+where the space between sentences is not equal.
+</p>
+</div>
+
+<!-- -HY- -->
+
+<div class="macro-id-overline">
+<h3 id="hy" class="macro-id">Automatic hyphenation control</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>HY</b> <kbd class="macro-args">LINES &lt;max. number of consecutive hyphenated lines&gt;</kbd>
+ <br/>
+Macro: <b>HY</b> <kbd class="macro-args">MARGIN &lt;size of hyphenation margin&gt;</kbd>
+ <br/>
+Macro: <b>HY</b> <kbd class="macro-args">SPACE &lt;extra interword spacing to prevent hyphenation&gt;</kbd>
+ <br/>
+Macro: <b>HY</b> <kbd class="macro-args">DEFAULT</kbd>
+ <br/>
+Macro: <b>HY</b> <kbd class="macro-args">toggle</kbd>
+</div>
+<p class="alias">
+<i>Aliases:</i> <b>HYPHENATE, HYPHENATION</b>
+</p>
+
+<p>
+HY, as you can see, can be invoked with a number of arguments. In
+all cases, the aliases HYPHENATE or HYPHENATION can be used in place
+of HY. To aid in understanding the various arguments you can pass
+to HY, I&#8217;ve broken them down into separate sections.
+</p>
+
+<h3 class="docs">1.&nbsp;&nbsp;HY</h3>
+
+<p>
+HY by itself (i.e. with no argument) simply turns automatic
+hyphenation on. Any argument other than LINES, MARGIN, SPACE, or
+DEFAULT, turns automatic hyphenation off. For example, as explained
+in
+<a href="intro.html#macro-args">How to read macro arguments</a>,
+you could turn HY off by entering
+<br/>
+<span class="pre-in-pp">
+ .HY OFF
+</span>
+or
+<span class="pre-in-pp">
+ .HY X
+</span>
+or
+<span class="pre-in-pp">
+ .HY END
+</span>
+A subsequent call to HY restores hyphenation with the parameters for
+LINES, MARGIN, or SPACE that were formerly in effect (see below).
+</p>
+
+<p>
+HY observes the following default hyphenation rules:
+</p>
+<ul style="margin-top: -.5em; margin-left: 18px;">
+ <li>Last lines (i.e. ones that will spring a trap&mdash;typically
+ the last line on a page) will not be hyphenated.
+ </li>
+ <li>The first and last two characters of a word are never
+ split off.
+ </li>
+</ul>
+
+<h3 class="docs numbered">2.&nbsp;&nbsp;HY LINES</h3>
+
+<p>
+HY LINES sets the maximum number of consecutive hyphenated lines
+that will appear in output copy. 2 is a very good choice, and
+you&#8217;d set it with
+<br/>
+<span class="pre-in-pp">
+ .HY LINES 2
+</span>
+By default, when you turn automatic hyphenation on, there is no
+limit to the number of consecutive hyphenated lines.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span>
+<a href="definitions.html#discretionaryhyphen">Discretionary hyphens</a>
+count when groff is figuring out how many lines to hyphenate;
+explicit hyphens (i.e. the actual hyphen character) do not.
+</p>
+</div>
+
+<h3 class="docs numbered">3.&nbsp;&nbsp;HY MARGIN</h3>
+
+<p>
+HY MARGIN sets the amount of room allowed at the end of a line
+before hyphenation is tripped (e.g., if there&#8217;s only 6 points
+left at the end of a line, groff won&#8217;t try to hyphenate the
+next word). HY MARGIN only applies if you&#8217;re using
+<a href="#quad">QUAD</a>,
+and is really only useful if you&#8217;re using QUAD LEFT.
+</p>
+
+<p>
+As an example, if you don&#8217;t want groff to hyphenate words
+when there&#8217;s only 18 points of space left at the end of a
+left-quadded line, you&#8217;d enter
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em">
+ .HY MARGIN 18p
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> The numeric argument after HY
+MARGIN requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+</p>
+</div>
+
+<h3 class="docs numbered">4.&nbsp;&nbsp;HY SPACE</h3>
+
+<p>
+HY SPACE sets an amount of extra interword space that groff will
+try to put between words on a line in order to <i>prevent</i>
+hyphenation. HY SPACE applies only to
+<a href="definitions.html#just">justified lines</a>.
+Generally speaking, you&#8217;ll want this value to be quite small,
+since too big a value will result in lines with gaping holes between
+the words. A reasonable value might be half a point, or one point,
+which you&#8217;d set with
+<br/>
+<span class="pre-in-pp">
+ .HY SPACE .5p
+</span>
+or
+<span class="pre-in-pp" style="margin-bottom: -1em">
+ .HY SPACE 1p
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> The numeric argument after HY SPACE
+requires a
+<a href="definitions.html#unitofmeasure">unit of measure</a>.
+</p>
+</div>
+
+<h3 class="docs numbered">5.&nbsp;&nbsp;HY DEFAULT</h3>
+
+<p>
+HY DEFAULT resets automatic hyphenation to its default behaviour,
+cancelling any changes made with HY <kbd>LINES</kbd>, HY
+<kbd>MARGIN</kbd>, and/or HY <kbd>SPACE</kbd>.
+</p>
+
+<div class="box-notes">
+<h3 id="hyphenation-thoughts" class="docs notes">Thoughts on hyphenation in general</h3>
+
+<p style="margin-top: .5em">
+Hyphenation is a necessary evil. If it can be avoided, it
+should be. If it can&#8217;t be, it should occur infrequently.
+That&#8217;s the reason for the number of parameters you can set
+with HY.
+</p>
+
+<p class="tip-bottom">
+Furthermore, hyphenation in
+<a href="definitions.html#rag">rag</a>
+copy requires a great deal of attention. At best, it should be
+avoided completely by individually adjusting the number of words
+on consecutive lines to achieve a pleasing, natural-looking rag.
+Since such adjustments are often too fussy for document processing,
+I recommend playing around with HY MARGIN a bit if your copy looks
+hyphen-heavy.
+</p>
+</div>
+
+<!-- -HY_SET- -->
+
+<div class="macro-id-overline">
+<h3 id="hy-set" class="macro-id">Set hyphenation parameters all at once</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>HY_SET</b> <kbd class="macro-args">&lt;lines&gt; [ &lt;margin&gt; [ &lt;space&gt; ] ]</kbd>
+</div>
+
+<p class="alias">
+<i>Alias:</i> <b>HYSET</b>
+</p>
+
+<p>
+HY_SET lets you set the parameters for hyphenation
+with a single macro. <kbd>&lt;lines&gt;,</kbd>
+<kbd>&lt;margin&gt;</kbd>, and
+<kbd>&lt;space&gt;</kbd> correspond to the numeric
+values required by <kbd>LINES</kbd>,
+<kbd>MARGIN</kbd>, and <kbd>SPACE</kbd> as described
+<a href="#hy">above</a>.
+</p>
+
+<p>
+To set just the maximum number of consecutive hyphenated lines,
+you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .HY_SET 2
+</span>
+If you wanted the same number of maximum consecutive hyphenated
+lines and a hyphenation margin for use with
+<a href="definitions.html#rag">rag</a>
+copy,
+<br/>
+<span class="pre-in-pp">
+ .HY_SET 2 36p
+</span>
+would set the hyphenation margin to 36 points.
+</p>
+
+<p>
+If you wanted the same number of maximum consecutive hyphenated
+lines and a hyphenation space of 2 points for use with
+<a href="definitions.html#just">justified</a>
+copy,
+<br/>
+<span class="pre-in-pp">
+ .HYSET 2 0 2p
+</span>
+is how you&#8217;d do it.
+</p>
+
+<!-- -RW- -->
+
+<div class="macro-id-overline">
+<h3 id="rw" class="macro-id">Reduce whitespace</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>RW</b> <kbd class="macro-args">&lt;amount of whitespace reduction between letters&gt;</kbd>
+</div>
+
+<p>
+RW (<span style="text-decoration: underline;">R</span>educe <span style="text-decoration: underline;">W</span>hitespace)
+and its corresponding macro
+EW (<span style="text-decoration: underline;">E</span>xpand <span style="text-decoration: underline;">W</span>hitespace),
+allow you to tighten (or loosen)
+<a href="definitions.html#outputline">output lines</a>
+by uniformly reducing or expanding the space between characters.
+This is particularly useful when you want to squeeze or stretch
+lines on a narrow measure.
+</p>
+
+<p>
+The value passed to RW may be a whole number or a decimal fraction.
+Since a value of 1 produces a noticeable reduction in the space
+between letters at text sizes, you&#8217;ll most likely use small
+decimal values when tightening lines. For example,
+<br/>
+<span class="pre-in-pp">
+ .RW .1
+</span>
+or
+<span class="pre-in-pp">
+ .RW .2
+</span>
+may be just enough to squeeze an extra character or two on a line
+without the change in letter spacing being obvious. I highly
+recommend previewing your work to assess the effect of RW.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> By default, RW does not deposit a
+<a href="#br">break</a>
+when it&#8217;s invoked if you&#8217;re in one of the
+<a href="definitions.html#fill">fill</a>
+modes (i.e.
+<a href="#quad">QUAD</a>
+L, R, C, J, or
+<a href="#justify">JUSTIFY</a>).
+If you want
+RW to break at the ends of the previous
+<a href="definitions.html#inputline">input lines</a>
+while you&#8217;re in a fill mode, tell mom
+that&#8217;s what you want by invoking
+<kbd><a href="#br-at-line-kern">.BR_AT_LINE_KERN</a></kbd>.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span>
+RW (and its complement, EW, see below) only affects the current
+font, and remains in effect for that font every time it&#8217;s
+called, hence it must be reset to zero to cancel its effect
+(<kbd>.RW&nbsp;0</kbd>).
+</p>
+</div>
+
+<!-- -EW- -->
+
+<div class="macro-id-overline">
+<h3 id="ew" class="macro-id">Expand whitespace</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>EW</b> <kbd class="macro-args">&lt;amount of whitespace expansion between letters&gt;</kbd>
+</div>
+
+<p>
+EW (<span style="text-decoration: underline;">E</span>xpand <span style="text-decoration: underline;">W</span>hitespace)
+expands the amount of whitespace between letters, effectively
+&#8220;loosening&#8221; lines of type.
+</p>
+
+<p>
+The value passed to EW may be a whole number or a decimal fraction.
+Since a value of 1 produces a noticeable expansion in the space
+between letters at text sizes, you&#8217;ll most likely use small
+decimal values when loosening lines. For example,
+<br/>
+<span class="pre-in-pp">
+ .EW .1
+</span>
+or
+<span class="pre-in-pp">
+ .EW .2
+</span>
+may be just enough to open up a line without the change in letter
+spacing being obvious. I highly recommend previewing your work to
+assess the effect of EW.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> By default, EW does not deposit a
+<a href="#br">break</a>
+when it&#8217;s invoked if you&#8217;re in one of the
+<a href="definitions.html#fill">fill</a>
+modes (i.e.
+<a href="#quad">QUAD</a>
+L, R, C, J, or
+<a href="#justify">JUSTIFY</a>).
+If you want
+EW to break at the ends of the previous
+<a href="definitions.html#inputline">input lines</a>
+while you&#8217;re in a fill mode, tell mom that&#8217;s what you
+want by invoking the
+<kbd><a href="#br-at-line-kern">.BR_AT_LINE_KERN</a></kbd>
+toggle macro.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span>
+EW (and its complement, RW, see above) only affects the current
+font, and remains in effect for that font every time it&#8217;s
+called, hence it must be reset to zero to cancel its effect
+(<kbd>.RW&nbsp;0</kbd>).
+</p>
+</div>
+
+<!-- -BR_AT_LINE_KERN- -->
+
+<div class="macro-id-overline">
+<h3 id="br-at-line-kern" class="macro-id">Break before line kerning</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>BR_AT_LINE_KERN</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+By default, in
+<a href="definitions.html#filled">fill</a>
+modes (i.e.
+<a href="#quad">QUAD</a>
+L, R, C, J, or
+<a href="#justify">JUSTIFY</a>)
+mom does not break
+<a href="definitions.html#inputline">input lines</a>
+when you invoke
+<a href="#rw">RW</a>
+or
+<a href="#ew">EW</a>.
+If you&#8217;d like her to break input lines prior to RW or EW,
+invoke <kbd>.BR_AT_INPUT_LINE</kbd> without any argument. To
+disable the breaks, invoke <kbd>.BR_AT_INPUT_LINE</kbd> with any
+argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
+<kbd>X</kbd>...), like this
+<br/>
+<span class="pre-in-pp">
+ .BR_AT_LINE_KERN OFF
+</span>
+or
+<span class="pre-in-pp">
+ .BR_AT_LINE_KERN X
+</span>
+With QUAD L, R, or C, mom simply breaks the line. With QUAD J (or
+just JUSTIFY, which is the same thing), she breaks and
+<a href="definitions.html#force">force justifies</a>
+the line prior to <kbd>.EW</kbd> or <kbd>.RW</kbd>.
+</p>
+
+<!-- -KERN- -->
+
+<div class="macro-id-overline">
+<h3 id="kern" class="macro-id">Automatic kerning</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>KERN</b> <kbd class="macro-args">toggle</kbd>
+</div>
+
+<p>
+By itself (i.e. with no argument), KERN turns automatic pairwise
+<a href="definitions.html#kern">kerning</a>
+on. With any argument (e.g. <kbd>OFF</kbd>, <kbd>Q</kbd>,
+<kbd>X</kbd>), pairwise kerning is turned off.
+</p>
+
+<p>
+Kerning of individual character pairs can be controlled with the two
+<a href="definitions.html#inlines">inline escapes</a>
+<br/>
+<kbd>\*[BU&nbsp;&lt;n&gt;]</kbd> and
+<kbd>\*[FU&nbsp;&lt;n&gt;]</kbd>. See
+<a href="inlines.html#inline-kerning-mom">Inline Escapes, kerning</a>.
+</p>
+
+<!-- -LIGATURES- -->
+
+<div class="macro-id-overline">
+<h3 id="ligatures" class="macro-id">Automatic ligature generation</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>LIGATURES</b> <kbd class="macro-args">toggle</kbd>
+</div>
+<p class="alias">
+<i>Alias:</i> <b>LIG</b>
+</p>
+
+<p>
+Provided your current font has
+<a href="definitions.html#ligatures">ligatures</a>,
+LIGATURES, by itself, turns on automatic generation of ligatures.
+When automatic ligature generation is on, simply typing the letters
+of a ligature combination will produce the correct ligature upon
+output. For example, if you type the word &#8220;finally&#8221;,
+the fi combination will be output as an fi ligature. Generally
+speaking, ligatures are A Good Thing, hence mom has them on by
+default.
+</p>
+
+<p>
+LIGATURES with any argument turns automatic ligature generation off.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> Not all fonts support ligatures.
+</p>
+</div>
+
+<div class="rule-short"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="modifications-intro" class="macro-group">Type modifications (pseudo font styles)</h2>
+
+<p>
+It sometimes happens that a
+<a href="definitions.html#family">family</a>
+doesn&#8217;t contain all the fonts you need. You might, for
+example, be missing an italic font, or a bold font. Or you might
+not be able to get your hands on the condensed version. That&#8217;s
+where these macros and inline escapes come in. With them, you
+can fake the fonts you&#8217;re missing. A word of caution,
+though: &#8220;faked&#8221; fonts are just that&mdash;faked. You
+should only use them as a last resort, and then only sparingly. A
+word or two or a line or two in a faked font will pass unnoticed;
+large patches of type in a faked font look typographically cheap.
+</p>
+
+<div id="index-modifications" class="macro-list-container">
+<h3 class="macro-list">Type modifications macros</h3>
+
+<ul class="macro-list">
+ <li>Pseudo italic
+ <ul style="list-style: none; margin-left: -1em;">
+ <li><a href="#setslant">SETSLANT</a> &ndash; degree of pseudo-italicizing</li>
+ <li><a href="#slant-inline">\*[SLANT]</a> &ndash; inline escape for pseudo-italicizing type</li>
+ </ul></li>
+ <li>Pseudo bold
+ <ul style="list-style: none; margin-left: -1em;">
+ <li><a href="#setbolder">SETBOLDER</a> &ndash; amount of emboldening</li>
+ <li><a href="#bolder-inline">\*[BOLDER]</a> &ndash; inline escape for emboldening type</li>
+ </ul></li>
+ <li>Pseudo condensed
+ <ul style="list-style: none; margin-left: -1em;">
+ <li><a href="#condense">CONDENSE</a> &ndash; percentage for pseudo-condensed type</li>
+ <li><a href="#cond-inline">\*[COND]</a> &ndash; inline escape for pseudo-condensed type</li>
+ </ul></li>
+ <li>Pseudo extended
+ <ul style="list-style: none; margin-left: -1em;">
+ <li><a href="#extend">EXTEND</a> &ndash; percentage for pseudo-extended type</li>
+ <li><a href="#ext-inline">\*[EXT]</a> &ndash; inline escape for pseudo-extending</li>
+ </ul></li>
+ <li>Smallcaps
+ <ul style="list-style: none; margin-left: -1em;">
+ <li><a href="#smallcaps">SMALLCAPS</a> &ndash; enable smallcaps</li>
+ <li><a href="#smallcaps-style">SMALLCAPS_STYLE</a> &ndash; size, weight, and width of smallcaps</li>
+ </ul></li>
+</ul>
+</div>
+
+<!-- -SETSLANT- -->
+
+<div class="macro-id-overline">
+<h3 id="setslant" class="macro-id">Set degree of slant for pseudo-italicizing</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SETSLANT</b> <kbd class="macro-args">&lt;degrees to slant type&gt; | RESET</kbd>
+</div>
+
+<p>
+Pseudo-italicizing of type is accomplished by slanting a roman font
+a certain number of degrees to the right. SETSLANT lets you fix the
+number of degrees. Mom&#8217;s default is 15, which produces an
+acceptable approximation of an italic font. If you want another
+value&mdash;say, 13 degrees&mdash;you&#8217;d set it by entering
+<br/>
+<span class="pre-in-pp">
+ .SETSLANT 13
+</span>
+If you change the degree of slant and later want to set it back to
+the mom default, do
+<br/>
+<span class="pre-in-pp">
+ .SETSLANT RESET
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> By itself, SETSLANT will not start
+pseudo-italicizing type; it merely tells mom what degree of slant
+you want. To start pseudo-italicizing, use the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd>\*[SLANT]</kbd>.
+</p>
+</div>
+
+<!-- -\*[SLANT]- -->
+
+<div class="macro-id-overline">
+<h3 id="slant-inline" class="macro-id">Pseudo italic on/off</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <kbd class="macro-args">\*[SLANT]</kbd>
+<br/>
+Inline: <kbd class="macro-args">\*[SLANTX</kbd>]
+</div>
+
+<p>
+<kbd class="macro-args">\*[SLANT]</kbd> begins pseudo-italicizing. <kbd class="macro-args"><span class="nobr">\*[SLANTX]</span></kbd> turns
+the feature off. Both are <a href="definitions.html#inlines">inline
+escapes</a>,
+therefore they should not appear as separate lines, but rather be
+embedded in text lines, like this:
+<br/>
+<span class="pre-in-pp">
+ Not \*[SLANT]everything\*[SLANTX] is as it seems.
+</span>
+Alternatively, if you wanted the whole line pseudo-italicized,
+you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ \*[SLANT]Not everything is as it seems.\*[SLANTX]
+</span>
+Once <kbd><span class="nobr">\*[SLANT]</span></kbd> is invoked, it remains in
+effect until turned off.
+</p>
+
+<div class="box-tip" style="margin-top: .5em;">
+<p class="tip">
+<span class="note">Note:</span> If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom underlines pseudo-italics by default. To change this behaviour,
+use the special macro
+<a href="docprocessing.html#typewrite-control">SLANT_MEANS_SLANT</a>.
+</p>
+</div>
+
+<!-- -SETBOLDER- -->
+
+<div class="macro-id-overline">
+<h3 id="setbolder" class="macro-id">Set amount of emboldening</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SETBOLDER</b> <kbd class="macro-args">&lt;amount of emboldening, in machine units&gt; | RESET</kbd>
+</div>
+
+<p>
+Emboldening of type is accomplished by printing characters twice;
+the second printing is slightly offset from the first, effectively
+&#8220;thickening&#8221; the character. SETBOLDER lets you set the
+number of
+<a href="definitions.html#units">machine units</a>
+for the offset. Mom&#8217;s default is 700 units, which produces an
+acceptable approximation of a bold font. If you want another
+value&mdash;say, 500 units&mdash;you&#8217;d set it by entering
+<br/>
+<span class="pre-in-pp">
+ .SETBOLDER 500
+</span>
+If you change the emboldening offset and later want to set it back
+to the mom default, do
+<br/>
+<span class="pre-in-pp">
+ .SETBOLDER RESET
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> By itself, SETBOLDER will not start
+emboldening type; it merely tells mom what you want the emboldening
+offset to be. To start emboldening, use the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[BOLDER]</span></kbd>.
+</p>
+</div>
+
+<!-- -\*[BOLDER]- -->
+
+<div class="macro-id-overline">
+<h3 id="bolder-inline" class="macro-id">Emboldening on/off</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <kbd class="macro-args">\*[BOLDER]</kbd>
+<br/>
+Inline: <kbd class="macro-args">\*[BOLDERX]</kbd>
+</div>
+
+<p>
+<kbd class="macro-args">\*[BOLDER]</kbd> begins emboldening type.
+<kbd class="macro-args"><span class="nobr">\*[BOLDERX]</span></kbd> turns the
+feature off. Both are
+<a href="definitions.html#inlines">inline escapes</a>,
+therefore they should not appear as separate lines, but rather be
+embedded in text lines, like this:
+<br/>
+<span class="pre-in-pp">
+ Not \*[BOLDER]everything\*[BOLDERX] is as it seems.
+</span>
+Alternatively, if you wanted the whole line emboldened,
+you&#8217;d do
+<br/>
+<span class="pre-in-pp">
+ \*[BOLDER]Not everything is as it seems.\*[BOLDERX]
+</span>
+Once <kbd><span class="nobr">\*[BOLDER]</span></kbd> is invoked, it remains in
+effect until turned off.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom ignores <kbd>\*[BOLDER]</kbd> requests.
+</p>
+</div>
+
+<!-- -CONDENSE- -->
+
+<div class="macro-id-overline">
+<h3 id="condense" class="macro-id">Set percentage for pseudo-condensed type</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>CONDENSE</b> <kbd class="macro-args">&lt;pseudo-condense percentage&gt;</kbd>
+</div>
+
+<p>
+Pseudo-condensing of type is accomplished by reducing the width of
+characters at a given point size without reducing their height,
+effectively narrowing them so they look like condensed type.
+CONDENSE tells mom what percentage of the normal character width you
+want the characters to be condensed.
+</p>
+
+<p>
+Mom has no default value for CONDENSE, therefore you must set it
+before using the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><a href="#cond-inline"><span class="nobr">\*[COND]</span></a></kbd>.
+80 percent of the normal character width is a good value, and
+you&#8217;d set it like this:
+<br/>
+<span class="pre-in-pp">
+ .CONDENSE 80
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> By itself, CONDENSE will not start
+pseudo-condensing type; it merely tells mom what percentage of the
+normal character width you want characters to be condensed. To
+start pseudo-condensing, use the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[COND]</span></kbd>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span> Make sure that
+pseudo-condensing is off (with
+<kbd><a href="#cond-inline"><span class="nobr">\*[CONDX]</span></a></kbd>)
+before making any changes to the pseudo-condense percentage
+with CONDENSE.
+</p>
+</div>
+
+<!-- -\*[COND]- -->
+
+<div class="macro-id-overline">
+<h3 id="cond-inline" class="macro-id">Pseudo-condensing on/off</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <kbd class="macro-args">\*[COND]</kbd>
+<br/>
+Inline: <kbd class="macro-args">\*[CONDX]</kbd>
+</div>
+
+<p>
+<kbd>\*[COND]</kbd> begins pseudo-condensing type.
+<kbd><span class="nobr">\*[CONDX]</span></kbd> turns the feature off. Both are
+<a href="definitions.html#inlines">inline escapes</a>,
+therefore they should not appear as separate lines, but rather be
+embedded in text lines, like this:
+<br/>
+<span class="pre-in-pp">
+ \*[COND]Not everything is as it seems.\*[CONDX]
+</span>
+<kbd><span class="nobr">\*[COND]</span></kbd> remains in effect until you turn it
+off with <kbd><span class="nobr">\*[CONDX]</span></kbd>.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> You must turn
+<kbd><span class="nobr">\*[COND]</span></kbd> off before making any changes to
+the point size of your type, either via the
+<a href="#ps">PT_SIZE</a>
+macro or with the <kbd>\s</kbd> inline escape. If you wish
+the new point size to be pseudo-condensed, simply re-invoke
+<kbd><span class="nobr">\*[COND]</span></kbd> afterwards. Equally,
+<kbd><span class="nobr">\*[COND]</span></kbd> must be turned off before changing
+the condense percentage with
+<kbd><a href="#condense">.CONDENSE</a></kbd>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom ignores <kbd>\*[COND]</kbd> requests.
+</p>
+</div>
+
+<!-- -EXTEND- -->
+
+<div class="macro-id-overline">
+<h3 id="extend" class="macro-id">Set percentage for pseudo-extended type</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>EXTEND</b> <kbd class="macro-args">&lt;pseudo-extend percentage&gt;</kbd>
+</div>
+
+<p>
+Pseudo-extending of type is accomplished by increasing the width of
+characters at a given point size without increasing their height,
+effectively widening them so they look like extended type. EXTEND
+tells mom what percentage of the normal character width you want the
+characters to be extended.
+</p>
+
+<p>
+Mom has no default value for EXTEND, therefore you must set it
+before using the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><a href="#ext-inline"><span class="nobr">\*[EXT]</span></a></kbd>. 120% of
+the normal character width is a good value, and you&#8217;d set it
+like this:
+<br/>
+<span class="pre-in-pp">
+ .EXTEND 120
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> By itself, EXTEND will not start
+pseudo-extending type; it merely tells mom what percentage of the
+normal character width you want characters to be extended. To start
+pseudo-extending, use the
+<a href="definitions.html#inlines">inline escape</a>
+<kbd><span class="nobr">\*[EXT]</span></kbd>.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span> Make sure that
+pseudo-extending is off (with
+<a href="#ext-inline"><kbd>\*[EXTX]</kbd></a>)
+before making any changes to the pseudo-extend percentage
+with EXTEND.
+</p>
+</div>
+
+<!-- -\*[EXT]- -->
+
+<div class="macro-id-overline">
+<h3 id="ext-inline" class="macro-id">Pseudo-extending on/off</h3>
+</div>
+
+<div class="box-macro-args">
+Inline: <kbd class="macro-args">\*[EXT]</kbd>
+<br/>
+Inline: <kbd class="macro-args">\*[EXTX]</kbd>
+</div>
+
+<p>
+<kbd>\*[EXT]</kbd> begins pseudo-extending type.
+<kbd><span class="nobr">\*[EXTX]</span></kbd> turns the feature off. Both are
+<a href="definitions.html#inlines">inline escapes</a>,
+therefore they should not appear as separate lines, but rather be
+embedded in text lines, like this:
+<br/>
+<span class="pre-in-pp">
+ \*[EXT]Not everything is as it seems.\*[EXTX]
+</span>
+<kbd>\*[EXT]</kbd> remains in effect until you turn it off with
+<kbd><span class="nobr">\*[EXTX]</span></kbd>.
+</p> <div class="box-important"> <p class="tip">
+<span class="important">IMPORTANT:</span> You must turn
+<kbd><span class="nobr">\*[EXT]</span></kbd> off before making any changes to the
+point size of your type, either via the
+<a href="#ps">PT_SIZE</a>
+macro or with the <kbd>\s</kbd> inline escape. If you wish
+the new point size to be pseudo-extended, simply re-invoke
+<kbd><span class="nobr">\*[EXT]</span></kbd> afterwards. Equally,
+<kbd><span class="nobr">\*[EXT]</span></kbd> must be turned off before changing
+the extend percentage with
+<a href="#extend">EXTEND</a>.
+</p>
+</div>
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> If you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom ignores <kbd><span class="nobr">\*[EXT]</span></kbd> requests.
+</p>
+</div>
+
+<!-- SMALLCAPS -->
+
+<div class="macro-id-overline">
+<h3 id="smallcaps" class="macro-id">Smallcaps</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SMALLCAPS</b> <kbd class="macro-args">&lt;toggle&gt;</kbd>
+</div>
+
+<p>
+To begin setting type in pseudo-smallcaps, simply invoke
+<kbd>.SMALLCAPS</kbd>. When you no longer want them, invoke
+<kbd>SMALLCAPS&nbsp;OFF</kbd> (or <kbd>END</kbd>, <kbd>STOP</kbd>,
+<kbd>DONE</kbd>, etc). If you are currently in a
+<a href="definitions.html#filled">no-fill mode</a>,
+(i.e.
+<a href="#lrc">LEFT</a>,
+<a href="#lrc">CENTER</a>,
+or
+<a href="#lrc">RIGHT</a>)
+and you want the smallcaps to continue on the same line,
+append a <kbd>\c</kbd> to the line, like this
+<br/>
+<span class="pre-in-pp">
+ A line of type\c
+ .SMALLCAPS
+ with a few words in smallcaps.
+ .SMALLCAPS OFF
+</span>
+The line preceding <kbd>.SMALLCAPS&nbsp;OFF</kbd> should also have a
+<kbd>\c</kbd> appended to it if you wish it to continue unbroken.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span>
+SMALLCAPS does not have an inline equivalent to
+<a href="inlines.html#uc-lc">
+<span class="nobr"><kbd>\*[UC]</kbd> / <kbd>\*[LC]</kbd></span>
+</a>.
+Furthermore, if you&#8217;re using the
+<a href="docprocessing.html#docprocessing">document processing macros</a>
+with
+<a href="docprocessing.html#printstyle">PRINTSTYLE TYPEWRITE</a>,
+mom ignores SMALLCAPS.
+</p>
+
+<p class="tip-bottom">
+Additionally, be aware that no automatic
+<a href="definitions.html#kern">kerning</a>
+takes place while pseudo-smallcaps are in effect.
+</p>
+</div>
+
+<div class="macro-id-overline">
+<h3 id="smallcaps-style" class="macro-id">Set size, weight, and width of smallcaps</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>SMALLCAPS_STYLE</b> <kbd class="macro-args">SIZE &lt;percentage&gt; WEIGHT_ADJ &lt;percentage&gt; EXTEND &lt;percentage&gt;</kbd>
+</div>
+
+<p>
+True smallcaps are not a font effect, but, like designer cuts of
+bold, condensed, and extended, actual fonts provided with some
+families. It is highly recommended that you acquire real smallcaps
+fonts rather than relying on mom&#8217;s pseudo version.
+</p>
+
+<p>
+To achieve a reasonable facsimile of designer-cut smallcaps fonts,
+mom needs to know the percentage of regular caps at a given point
+size by which to reduce the small caps. To make adjustments for
+the difference in weight and width of the smaller caps, she also
+needs to know by how much to embolden (&#8220;fatten&#8221;) the
+smallcaps, and by how much to increase their width.
+</p>
+
+<p>
+All three arguments to SMALLCAPS_STYLE reflect a
+percentage of the point size in effect when
+<a href="#smallcaps">SMALLCAPS</a>
+is invoked. Mom&#8217;s defaults for pseudo-smallcaps are:
+<br/>
+<span class="pre-in-pp">
+ SIZE = 74%
+ WEIGHT_ADJ = .3%
+ EXTEND = 5%
+</span>
+To change any or all of the defaults, you might enter
+<br/>
+<span class="pre-in-pp">
+ .SMALLCAPS_STYLE SIZE 80 WEIGHT_ADJ .25 EXTEND 3
+</span>
+or, more readably,
+<br/>
+<span class="pre-in-pp">
+ .SMALLCAPS_STYLE
+ SIZE 80 \
+ WEIGHT_ADJ .25 \
+ EXTEND 3
+</span>
+Note that you do not have to give SMALLCAPS_STYLE all three
+arguments, and that the arguments may be entered in any order. Any
+arguments you omit will remain at their former value.
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="aldrld-intro" class="macro-group">Vertical movements</h2>
+
+The two macros in this section allow you to move down or up on the
+page relative to the current
+<a href="definitions.html#baseline">baseline</a>.
+
+<div id="index-aldrld" class="macro-list-container">
+<h3 class="macro-list">Vertical movements macros</h3>
+<ul class="macro-list">
+ <li><a href="#ald">ALD</a> &ndash; Advance Lead</li>
+ <li><a href="#rld">RLD</a> &ndash; Reverse Lead</li>
+ <li>(see also <a href="#space">SPACE</a>)</li>
+</ul>
+</div>
+
+<!-- -ALD- -->
+
+<div class="macro-id-overline">
+<h3 id="ald" class="macro-id">Advance Lead (move downward)</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ALD</b> <kbd class="macro-args">&lt;distance to move downward&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+ALD takes one argument: the distance to move downward on the page
+relative to the current vertical position.
+</p>
+
+<p>
+ALD causes a line break, which means the argument is added to the
+current
+<a href="definitions.html#leading">leading</a>.
+For example, if your current leading is 12 points, a line of type
+after <kbd>.ALD 6p</kbd> will be 18 points distant from the previous
+line.
+</p>
+
+<p>
+If you wish to advance the argument's distance <i>from the
+current baseline,</i> it should be preceded by
+<a href="#el">EL</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .LS 12
+ First line.
+ Second line.\c
+ .EL
+ .ALD 15p
+ Third line.
+</span>
+would place the third line exactly 15 points beneath the second.
+</p>
+
+<p>
+ALD requires a unit of measure. Decimal fractions are allowed, and
+values may be combined. Therefore, to move down on the page by 1/4
+of an inch, you could enter either
+<br/>
+<span class="pre-in-pp">
+ .ALD .25i
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ .ALD 1P+6p
+</span>
+As the mnemonic
+(<span style="text-decoration: underline;">A</span>dvance <span style="text-decoration: underline;">L</span>ea<span style="text-decoration: underline;">D</span>)
+suggests, you&#8217;ll most often use ALD with
+<a href="definitions.html#picaspoints">points</a>
+of lead.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> if you want to use ALD at the top
+of a page (i.e. to advance to the starting position of type on a
+page), combine the value you want with <kbd>-1v</kbd> (minus one
+line space), like this:
+<br/>
+<span class="pre-in-pp">
+ .ALD 1i-1v
+</span>
+At the top of a page, this will advance one inch from the top edge
+of the paper. Without the -1v, the same command would advance one
+inch from the top of the page plus the distance of one line space.
+</p>
+</div>
+
+<!-- -RLD- -->
+
+<div class="macro-id-overline">
+<h3 id="rld" class="macro-id">Reverse Lead (move upward)</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>RLD</b> <kbd class="macro-args">&lt;distance to move upward&gt;</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+RLD takes one argument: the distance to move upward on the page
+relative to the current vertical position.
+</p>
+
+<p>
+RLD causes a line break, which means the argument is subtracted from
+the current
+<a href="definitions.html#leading">leading</a>.
+For example, if your current leading is 12 points, a line of type
+after <kbd>.RLD 6p</kbd> will be 6 points distant from the previous
+line.
+</p>
+
+<p>
+If you wish to move upward <i>from the current baseline</i> by the
+argument's distance, RLD should be preceded by
+<a href="#el">EL</a>.
+For example,
+<br/>
+<span class="pre-in-pp">
+ .LEFT
+ .LS 18
+ First line.
+ Second line.\c
+ .EL
+ .RLD 3p
+ Third line.
+</span>
+would raise the third line by 3 points relative to the baseline of
+the second line. Put another way, if the <kbd>.RLD</kbd> in the
+example were 18p, the third line would fall on the same baseline as
+the second.
+</p>
+
+<p>
+RLD requires a unit of measure. Decimal fractions are allowed, and
+values may be combined. Therefore, to move up on the page by 1/4 of
+an inch, you could enter either
+<br/>
+<span class="pre-in-pp">
+ .RLD .25i
+</span>
+or
+<span class="pre-in-pp">
+ .RLD 1P+6p
+</span>
+As the mnemonic
+(<span style="text-decoration: underline;">R</span>everse <span style="text-decoration: underline;">L</span>ea<span style="text-decoration: underline;">D</span>)
+suggests, you&#8217;ll most often use RLD with
+<a href="definitions.html#picaspoints">points</a>
+of lead.
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="tabs-intro" class="macro-group">Tabs</h2>
+
+<p>
+Mom provides two different kinds of tab setup: typesetting tabs
+and string tabs. Neither one has anything to do with the tab key
+on your keyboard, and both are utterly divorced from groff&#8217;s
+notion of tabs. I recommend reading this section carefully in order
+to understand how mom handles tabs.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> see the section
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>
+for reassuring information on the use of tabs during
+<a href="docprocessing.html#docprocessing">document processing</a>.
+</p>
+</div>
+
+<h3 id="typesetting-tabs" class="docs">Typesetting tabs</h3>
+
+<p>
+Typesetting tabs are defined by both an indent from the left margin
+and a line length. This is quite different from typewriter-style
+tab stops (the groff norm) that only define the left indent. In
+conjunction with the
+<a href="#multicolumns-intro">multi-column macros</a>,
+typesetting tabs significantly facilitate tabular and columnar work.
+</p>
+
+<p>
+Typesetting tabs are created with the
+<a href="#tab-set">TAB_SET</a>
+macro. TAB_SET identifies the tab (by number), establishes its left
+indent and line length, and optionally sets a quad direction and
+fill mode. After tabs have been created with TAB_SET, they can be
+called at any time with the
+<a href="#tab">TAB</a>
+macro.
+</p>
+
+<div class="examples-container">
+<h3 id="typesetting-tabs-tut" class="docs notes">Quickie tutorial on typesetting tabs</h3>
+
+<p style="margin-top: .5em;">
+Say you want to set up three tabs to produce an employee evaluation
+that looks something like this:
+</p>
+
+<div class="box-code" style="padding-bottom: 0;">
+<span id="typsetting-tabs-sample" class="pre-in-pp" style="color: #302419">
+CRITERION EVALUATION COMMENTS
+
+Service Good Many clients specifically request
+ support from Joe by name.
+
+Punctuality Satisfactory Tends to arrive after 8:00am, but
+ often works through lunch hour.
+
+Team spirit Needs work Persistently gives higher priority
+ to helping clients than respecting
+ organizational hierarchy.
+</span>
+</div>
+
+<p>
+You want the first tab, CRITERION,
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>to begin at the left margin of the page &ndash; i.e. no indent</li>
+<li>to have a line length of 5 picas</li>
+<li>to be set flush left</li>
+</ul>
+
+<p>
+Tabs must be numbered, and each has to be set up with a separate
+<a href="#tab-set">TAB_SET</a>
+line. Therefore, to set up tab 1, you enter
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 1 0 5P L
+ | | | |
+ tab #--+ | | +--direction
+ | |
+ indent--+ +--length
+</span>
+You want the second tab, EVALUATION,
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>to begin 8 picas from the left margin</li>
+<li>to have a length of 9 picas</li>
+<li>to be set centered</li>
+</ul>
+
+<p>
+You set it up like this:
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 2 8P 9P C
+ | | | |
+ tab #--+ | | +--direction
+ | |
+ indent--+ +--length
+</span>
+You want the third tab, COMMENTS,
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>to begin 19 picas from the left margin</li>
+<li>to have a length of 17 picas</li>
+<li>to be set flush left, <a href="definitions.html#filled">filled</a></li>
+</ul>
+
+<p>
+The setup looks like this:
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 3 19P 17P L QUAD
+ | | | | |
+ | | | | +--fill output lines
+ | | | |
+ tab #--+ | | +--direction
+ | |
+ indent--+ +--length
+</span>
+Once the tabs are set up, you can call them in one of two ways:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>with <kbd><a href="#tab">.TAB</a></kbd> (passing the tab
+ number as an argument), which breaks the current line,
+ advances one linespace and calls the tab.</li>
+<li>with <kbd><a href="#tn">.TN</a></kbd> (Tab Next), which keeps
+ you on the current line and moves over to the next
+ tab in sequence (i.e. from 1 to 2, 2 to 3, etc.), or, more
+ conveniently, with the
+ <kbd><a href="#tn">\*[TB+]</a></kbd>
+ <a href="definitions.html#inlines">inline escape</a></li>
+</ul>
+
+<p>
+To exit from tabs and restore your original left margin, line
+length, quad direction and fill mode, use
+<kbd><a href="#tq">.TQ</a></kbd>
+(Tab Quit).
+</p>
+
+<p>
+Here&#8217;s how the input for our sample employee evaluation looks
+(with some introductory parameters):
+</p>
+
+<div class="examples" style="margin-bottom: 0px;">Code:</div>
+<div class="box-code" style="height: 324px; padding-bottom: 18px; overflow: auto;">
+<span class="pre-in-pp">
+.PAGE 8.5i 11i 1i 1i 1i
+.FAMILY T
+.FT R
+.PT_SIZE 14
+.LS 16
+.QUAD LEFT
+.KERN
+.HY OFF
+.SS 0
+.TAB_SET 1 0 5P L
+.TAB_SET 2 8P 9P C
+.TAB_SET 3 19P 17P L QUAD
+.TAB 1
+CRITERION\*[TB+]
+EVALUATION\*[TB+]
+COMMENTS
+.SP
+.TAB 1
+Service\*[TB+]
+Good\*[TB+]
+Many clients specifically request support from Joe by name.
+.SP
+.TAB 1
+Punctuality\*[TB+]
+Satisfactory\*[TB+]
+Tends to arrive after 8:00am, but often works through lunch hour.
+.SP
+.TAB 1
+Team spirit\*[TB+]
+Needs work\*[TB+]
+Persistently gives higher priority to helping clients
+than respecting organizational hierarchy.
+.TQ
+</span>
+</div>
+
+<p>
+Try setting this up and processing it with
+<br/>
+<span class="pre-in-pp">
+ pdfmom filename.mom &gt; filename.pdf
+</span>
+then previewing the .pdf file. Notice how <kbd>.TN</kbd>
+simply moves over to the next tab, while the combination
+<kbd>.SP/.TAB&nbsp;1</kbd> breaks the line, advances by one extra
+linespace, and calls the first tab.
+</p>
+
+<p>
+Notice, too, how the <kbd>QUAD</kbd> argument passed to tab 3 means
+you don&#8217;t have to worry about the length of
+<a href="definitions.html#inputline">input lines</a>;
+mom
+<a href="definitions.html#filled">fills</a>
+the tab and sets the type flush left.
+</p>
+</div>
+
+<h3 id="string-tabs" class="docs">String tabs (autotabs)</h3>
+
+<p>
+String tabs let you mark off tab positions with
+<a href="definitions.html#inlines">inline escapes</a>
+embedded in
+<a href="definitions.html#inputline">input lines</a>.
+Left indents and line lengths are calculated from the beginning and
+end positions of the marks. This is especially useful when tab
+indents and lengths need to be determined from the text that goes in
+each tab.
+</p>
+
+<p>
+Setting up string tabs is a two-step procedure. First, you enter an
+input line in which you mark off where you want tabs to begin and
+end. (This is often best done in conjunction with the
+<a href="goodies.html#silent">SILENT</a>
+macro.)
+</p>
+
+<p>
+Next, you invoke the
+<a href="#st">ST</a>
+macro for every string tab you defined, and optionally pass quad and
+fill information to it. That done, string tabs are called with the
+<a href="#tab">TAB</a>
+macro, just like typesetting tabs.
+</p>
+
+<p>
+In combination with the
+<a href="goodies.html#pad">PAD</a>
+macro and the groff inline escape
+<kbd><a href="inlines.html#inline-horizontal-groff">\h</a></kbd>
+(move horizontally across the page) or mom&#8217;s
+<kbd><a href="inlines.html#inline-horizontal-mom">\*[FWD&nbsp;&lt;distance&gt;]</a></kbd>
+(move forward) inline, string tabs provide tremendous flexibility in
+setting up complex tab structures.
+</p>
+
+<div class="examples-container">
+<h3 id="string-tabs-tut" class="docs notes">Quickie tutorial on string tabs</h3>
+<p style="margin-top: .5em;">
+Say you want to set up tabs for the
+<a href="#typsetting-tabs-sample">employee evaluation form</a>
+used as an example in the
+<a href="#typesetting-tabs-tut">typesetting tabs tutorial</a>.
+This time, though, you want to play around with the point size of
+type, so you can&#8217;t know exactly how long the tabs will be or
+where they should start. All you know is
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>CRITERION is the longest line in tab 1</li>
+<li>EVALUATION is the longest line in tab 2</li>
+<li>tab 3 should extend to the current right margin</li>
+<li>you want a 1 pica gutter between each tab</li>
+</ul>
+
+<p>
+This is an ideal job for string tabs.
+</p>
+
+<p>
+The first thing you need for string tabs is an
+<a href="definitions.html#inputline">input line</a>
+with tab positions marked on it. Tabs are marked with the
+<a href="definitions.html#inlines">inline escapes</a>
+<a href="#inline-st"><kbd><span class="nobr">\*[ST&lt;n&gt;]</span></kbd></a>
+and
+<a href="#inline-st"><kbd><span class="nobr">\*[ST&lt;n&gt;X]</span></kbd></a>,
+where <kbd>&lt;n&gt;</kbd>
+is the number you want the tab to have. (In this example, we
+enclose the input line with the
+<a href="goodies.html#silent">SILENT</a>
+macro so the line doesn&#8217;t print. We also use the
+<a href="goodies.html#pad">PAD</a>
+macro to permit defining tab 3 as simply &#8220;the amount of space
+remaining on the input line.&#8221;)
+</p>
+
+<p>
+The setup looks like this:
+</p>
+
+<div class="examples" style="margin-bottom: 0px;">Code:</div>
+
+<div class="box-code">
+<span class="pre-in-pp">
+.SILENT
+.PAD "\*[ST1]CRITERION\*[ST1X]\*[FWD 12p]\*[ST2]EVALUATION\*[ST2X]\*[FWD 12p]\*[ST3]#\*[ST3X]"
+.SILENT OFF
+</span>
+</div>
+
+<p>
+The long line after <kbd>.PAD</kbd> looks scary, but
+it isn&#8217;t really. Here&#8217;s what it means when broken down
+into its component parts:
+</p>
+<ul style="margin-bottom: -1em;">
+<li>The longest line in tab 1 is &#8220;CRITERION&#8221;, so we
+ enclose CRITERION with begin/end markers for string tab 1:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -.25em;">
+ \*[ST1]CRITERION\*[ST1X]
+</span>
+</li>
+<li>We want a 1 pica (12 points) gutter between tab 1 and 2,
+ so we insert 12 points of space with <span class="nobr">\*[FWD&nbsp;12p]:</span>
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -.25em;">
+ \*[FWD 12p]
+</span>
+</li>
+<li>The longest line in tab 2 is &#8220;EVALUATION&#8221;, so
+ we enclose EVALUATION with begin/end markers for string
+ tab 2:
+<span class="pre-in-pp" style="margin-bottom: -.25em;">
+ \*[ST2]EVALUATION\*[ST2X]
+</span>
+</li>
+<li>We want 1 pica (12 points) between tab 2 and 3, so we
+ insert it with:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -.25em;">
+ \*[FWD 12p]
+</span>
+</li>
+<li>We want tab 3 to be as long as whatever space remains on
+ the current line length, so we enclose the
+ <a href="goodies.html#pad-marker">pad marker</a>
+ (#) with begin/end markers for string tab 3:
+<span class="pre-in-pp">
+ \*[ST3]#\*[ST3X]
+</span>
+ </li>
+</ul>
+
+<p>
+The tabs are now defined, but they require
+<a href="definitions.html#quad">quad direction</a>
+and
+<a href="definitions.html#filled">fill</a>
+information. For each string tab defined above, enter a separate
+<kbd><a href="#st">.ST</a></kbd>
+line, like this:
+<br/>
+<span class="pre-in-pp">
+ .ST 1 L
+ .ST 2 L
+ .ST 3 L QUAD
+ | | |
+ | | +--fill output lines
+ | |
+tab #--+ +--direction
+</span>
+From here on in, you call the tabs with
+<kbd><a href="#tab">.TAB</a></kbd>,
+<kbd><a href="#tn">.TN</a></kbd>,
+or
+<a href="#tn"><kbd><span class="nobr">\*[TB+]</span></kbd></a>
+just like typesetting tabs (see
+<a href="#typesetting-tabs-tut">typesetting tabs tutorial</a>).
+</p>
+
+<p>
+Here&#8217;s the complete setup and entry for the sample employee
+evaluation form utilizing string tabs.
+</p>
+
+<div class="examples" style="margin-bottom: 0px;">Code:</div>
+<div class="box-code" style="height: 324px; padding-bottom: 18px; overflow: scroll;">
+<span class="pre-in-pp">
+.PAGE 8.5i 11i 1i 1i 1i
+.FAMILY T
+.FT R
+.PT_SIZE 14
+.LS 16
+.QUAD LEFT
+.KERN
+.HY OFF
+.SS 0
+.SILENT
+.PAD "\*[ST1]CRITERION\*[ST1X]\*[FWD 12p]\*[ST2]EVALUATION\*[ST2X]\*[FWD 12p]\*[ST3]#\*[ST3X]"
+.SILENT OFF
+.ST 1 L
+.ST 2 L
+.ST 3 L QUAD
+.TAB 1
+CRITERION\*[TB+]
+EVALUATION\*[TB+]
+COMMENTS
+.SP
+.TAB 1
+Service\*[TB+]
+Good\*[TB+]
+Many clients specifically request support from Joe by name.
+.SP
+.TAB 1
+Punctuality\*[TB+]
+Satisfactory\*[TB+]
+Tends to arrive after 8:00am, but often works through lunch hour.
+.SP
+.TAB 1
+Team spirit\*[TB+]
+Needs work\*[TB+]
+Persistently gives higher priority to helping clients
+than respecting organizational hierarchy.
+.TQ
+</span>
+</div>
+
+<p>
+Try setting this up and processing it with
+<br/>
+<span class="pre-in-pp">
+ pdfmom filename.mom &gt; filename.pdf
+</span>
+and previewing the .pdf file.
+</p>
+
+<p>
+Now, change the point size of the above sample to 12 and preview it
+again. You&#8217;ll see that the tab structure remains identical
+(tab 1=CRITERION, tab 2=EVALUATION, tab 3=space remaining, and the
+gutter between tabs is still 1 pica), while the position and length
+of the tabs have altered because of the new point size.
+</p>
+
+<p>
+Now try increasing the gutters to 2 picas
+(<kbd><span class="nobr">\*[FWD&nbsp;24p]</span></kbd> or
+<kbd><span class="nobr">\*[FWD&nbsp;2P]</span></kbd> instead of
+<kbd><span class="nobr">\*[FWD&nbsp;12p]</span></kbd>). Preview the file again,
+and notice how the tab structure remains the same, but the gutters
+are wider.
+</p>
+</div>
+
+<div id="index-tabs" class="macro-list-container">
+<h3 class="macro-list">Tabs macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#tab-set">TAB_SET</a> &ndash; create typesetting tabs</li>
+ <li><a href="#inline-st">\*[ST]...\*[STX]</a> &ndash; inline escapes for marking String Tabs</li>
+ <li><a href="#st">ST</a> &ndash; set String Tabs</li>
+ <li><a href="#tab">TAB</a> &ndash; call tabs</li>
+ <li><a href="#tn">TN</a> &ndash; Tab Next; call next tab in sequence</li>
+ <li><a href="#tn">\*[TB+]</a> &ndash; inline escape to call next tab in sequence</li>
+ <li><a href="#tq">TQ</a> &ndash; Tab Quit</li>
+</ul>
+
+</div>
+
+<!-- -TAB_SET- -->
+
+<div class="macro-id-overline">
+<h3 id="tab-set" class="macro-id">Set up typesetting tabs</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TAB_SET</b> <kbd class="macro-args">&lt;tab number&gt; &lt;indent&gt; &lt;length&gt; L | R | C | J [ QUAD ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;<kbd style="font-style: normal;">&lt;indent&gt;</kbd> and <kbd style="font-style: normal;">&lt;length&gt;</kbd> require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p style="margin-bottom: -.5em;">
+TAB_SET creates typesetting tabs that later can be called with
+<kbd><a href="#tab">.TAB</a></kbd>.
+Typesetting tabs are numbered, and defined by an indent, a length,
+and a quad direction, hence TAB_SET has four required arguments:
+</p>
+<ul style="margin-top: .5em; margin-bottom: -.5em;">
+<li>a tab number</li>
+<li>an indent (measured from the left margin of the page,
+ or, if you&#8217;re already in a tab, from the left margin of the tab)</li>
+<li>a length</li>
+<li>a direction</li>
+</ul>
+
+<p>
+To set up a centred tab 6 picas long and 9 points from the left
+margin, you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .TAB_SET 1 9p 6P C
+</span>
+The tab number in the above (&#8221;1&#8221;) is simply an
+identifier. It could have been 4, or 17, or 296. There&#8217;s no
+need to set up tabs in numerical sequence.
+</p>
+
+<p>
+By default, tabs are in
+<a href="definitions.html#filled">nofill</a>
+mode, meaning you can enter text in tabs on a line-for-line basis
+without having to use the
+<a href="#br">BR</a>
+macro. If you want a tab to be
+<a href="definitions.html#filled">filled</a>,
+pass the optional argument <kbd>QUAD</kbd>,
+which will make the tab behave as if you&#8217;d entered
+<kbd class="bold">.QUAD&nbsp;L&nbsp;|&nbsp;R&nbsp;|&nbsp;C</kbd>.
+</p>
+
+<p>
+For
+<a href="definitions.html#just">justified</a>
+tabs, simply pass the argument J (without the QUAD argument), like
+this:
+<br/>
+<span class="pre-in-pp">
+ .TAB 1 9p 6P J
+</span>
+Once tabs are set, they can be called at any time with the
+<a href="#tab">TAB&nbsp;&lt;n&gt;</a>
+macro, where &lt;n&gt; is the number of the desired tab.
+</p>
+
+<p>
+You can set up any number of typesetting tabs. However, be aware
+that
+<a href="#string-tabs">string tabs</a>
+are also called with TAB&nbsp;&lt;n&gt;, so be careful that you
+don&#8217;t set up a typesetting tab numbered, say, 4, when you
+already have a string tab numbered 4. Every tab, typesetting or
+string, must have a unique numeric identifier.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> If you use TAB_SET while
+you&#8217;re currently inside a tab, the indent argument is the
+distance from the tab&#8217;s left margin, not the left margin of
+the page. Therefore, you should exit tabs (with
+<kbd><a href="#tq">.TQ</a></kbd>)
+before creating new tabs (unless, of course, you want to set up a
+tab structure within the confines of an existing tab).
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> Turn all indents off (see
+<a href="#indents">Indents</a>)
+before setting up tabs with TAB_SET, or mom may get confused.
+</p>
+</div>
+
+<!-- -INLINE_ST- -->
+
+<div class="macro-id-overline">
+<h3 id="inline-st" class="macro-id">Mark positions of string tabs</h3>
+</div>
+
+<div class="box-macro-args">
+Inlines: <kbd class="macro-args">\*[ST&lt;number&gt;]...\*[ST&lt;number&gt;X]</kbd>
+</div>
+
+<p class="requires">
+The <a href="definitions.html#quad">quad</a>
+direction must be
+<span style="font-style: normal">LEFT</span>
+or
+<span style="font-style: normal">JUSTIFY</span>
+(see
+<a href="#quad"><span style="font-style: normal">QUAD</span></a>
+and
+<a href="#justify"><span style="font-style: normal">JUSTIFY</span></a>)
+or the
+<a href="definitions.html#filled">no-fill mode</a>
+set to
+<a href="#lrc"><span style="font-style: normal">LEFT</span></a>
+in order for these inlines to function properly. Please see
+<a href="#important1"><span style="font-style: normal">IMPORTANT</span></a>,
+below.
+</p>
+
+<p>
+String tabs need to be marked off with
+<a href="definitions.html#inlines">inline escapes</a>
+before being set up with the
+<a href="#st">ST</a>
+macro. Any input line may contain string tab markers. <kbd
+class="bold">&lt;number&gt;</kbd>, above, means the numeric
+identifier of the tab. The following shows a sample input line with
+string tab markers.
+<br/>
+<span class="pre-in-pp">
+ \*[ST1]Now is the time\*[ST1X] for all \*[ST2]good men\*ST2X] to come to the aid of the party.
+</span>
+String tab 1 begins at the start of the line and ends after the word
+&#8220;time&#8221;. String tab 2 starts at &#8220;good&#8221; and
+ends after &#8220;men&#8221;. Inline escapes (e.g. font or point
+size changes, or horizontal movements, including
+<a href="goodies.html#pad">padding</a>)
+are taken into account when mom determines the position and length
+of string tabs.
+</p>
+
+<p>
+Up to nineteen string tabs may be marked (not necessarily all on the
+same line, of course), and they must be numbered between 1 and 19.
+</p>
+
+<p>
+Once string tabs have been marked in input lines, they have to be
+&#8220;set&#8221; with
+<kbd><a href="#st">.ST</a></kbd>,
+after which they may be called, by number, with
+<kbd><a href="#tab">.TAB</a></kbd>.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> Lines with string tabs marked off
+in them are normal input lines, i.e., they get printed, just like
+any input line. If you want to set up string tabs without the line
+printing, use the
+<a href="goodies.html#silent">SILENT</a>
+macro.
+</p>
+</div>
+
+<div class="box-important">
+<p class="tip-top">
+<span id="important1" class="important">IMPORTANT:</span>
+Owing to the way groff processes
+<a href="definitions.html#inputline">input lines</a>
+and turns them into
+<a href="definitions.html#outputline">output lines</a>,
+it is not possible for mom to &#8220;guess&#8221; the correct
+starting position of string tabs marked off in lines that are
+centered or set flush right.
+</p>
+
+<p>
+Equally, she cannot guess the starting position if a line is fully
+justified and broken with
+<a href="#spread">SPREAD</a>.
+</p>
+
+<p>
+In other words, in order to use string tabs,
+<a href="#lrc">LEFT</a>
+must be active, or, if
+<a href="#quad">QUAD&nbsp;LEFT</a>
+or
+<a href="#justify">JUSTIFY</a>
+are active, the line on which the string tabs are marked must be
+broken &#8220;manually&#8221; with
+<kbd><a href="#br">.BR</a></kbd>
+(but not
+<kbd><a href="#spread">.SPREAD</a></kbd>).
+</p>
+
+<p class="tip-bottom">
+To circumvent this behaviour, I recommend using the
+<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 rule. Rather than this,
+<br/>
+<span class="pre-in-pp">
+ .CENTER
+ \*[ST1]A line of text\*[ST1X]\c
+ .EL
+ .ST 1
+ .TAB 1
+ .PT_SIZE 24
+ .ALD 3p
+ \*[RULE]
+ .RLD 3p
+ .TQ
+</span>
+you should do:
+<br/>
+<span class="pre-in-pp">
+ .QUAD CENTER
+ .PAD "#\*[ST1]A line of text\*[ST1X]#"
+ .EL
+ .ST 1
+ .TAB 1
+ .PT_SIZE 24
+ .ALD 3p
+ \*[RULE] \" Note that you can&#8217;t use \*[UP ] or \*[DOWN] with \*[RULE]
+ .RLD 3p
+ .TQ
+</span>
+</p>
+</div>
+
+<!-- -ST- -->
+
+<div class="macro-id-overline">
+<h3 id="st" class="macro-id">Set string tabs</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>ST</b> <kbd class="macro-args">&lt;tab number&gt; L | R | C | J [ QUAD ]</kbd>
+</div>
+
+<p>
+After string tabs have been marked off on an input line (see
+<a href="#inline-st"><kbd><span class="nobr">\*[ST]...\*[STX]</span></kbd></a>),
+you need to &#8220;set&#8221; them by giving them a direction and,
+optionally, the <kbd>QUAD</kbd> argument. In this respect, ST is
+like
+<a href="#tab-set">TAB_SET</a>
+except that you don&#8217;t have to give ST an indent or a
+line length (that&#8217;s already taken care of, inline, by
+<kbd><span class="nobr">\*[ST]...\*[STX]</span></kbd>). If you want string tab 1
+to be left, enter
+<br/>
+<span class="pre-in-pp">
+ .ST 1 L
+</span>
+If you want it to be left and
+<a href="definitions.html#filled">filled</a>, enter
+<br/>
+<span class="pre-in-pp">
+ .ST 1 L QUAD
+</span>
+If you want it to be justified, enter
+<br/>
+<span class="pre-in-pp">
+ .ST 1 J
+</span>
+See the
+<a href="#string-tabs-tut">Quickie tutorial on string tabs</a>
+for a full explanation of setting up string tabs.
+</p>
+
+<!-- -TAB- -->
+
+<div class="macro-id-overline">
+<h3 id="tab" class="macro-id">Call tabs</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TAB</b> <kbd class="macro-args">&lt;tab number&gt;</kbd>
+</div>
+<p class="alias">
+<i>Alias:</i> <b>TB</b>
+</p>
+
+<p>
+After tabs have been defined (either with
+<a href="#tab-set">TAB_SET</a>
+or
+<a href="#st">ST</a>),
+TAB moves to whatever tab number you pass it as an argument. For
+example,
+<br/>
+<span class="pre-in-pp">
+ .TAB 3
+</span>
+moves you to tab 3.
+</p>
+
+<div id="note-tn" class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> TAB breaks the line preceding it and
+advances 1 linespace. Hence,
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ A line of text in tab 1.
+ .TAB 2
+ A line of text in tab 2.
+</span>
+produces, on output
+<br/>
+<span class="pre-in-pp">
+ A line of text in tab 1.
+ A line of text in tab 2.
+</span>
+If you want the tabs to line up, use
+<a href="#tn">TN</a>
+(Tab Next)
+or, more conveniently, the inline escape
+<a href="#tn"><span class="nobr">\*[TB+]</span></a>:
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ A line of text in tab 1.\*[TB+]
+ A line of text in tab 2.
+</span>
+which produces
+<br/>
+<span class="pre-in-pp">
+ A line of text in tab 1. A line of text in tab 2.
+</span>
+If the text in your tabs runs to several lines, and you want the
+first lines of each tab to align, you must use the
+<a href="#multicolumns-intro">multi-column</a> macros.
+</p>
+
+<p id="tab-add-note" class="tip-bottom">
+<span class="additional-note">Additional note:</span> Any indents
+in effect prior to calling a tab are automatically turned off by
+TAB. If you were happily zipping down the page with a left indent
+of 2 picas turned on, and you call a tab whose indent from the left
+margin is 6 picas, your new distance from the left margin will be 6
+picas, not 6 picas plus the 2 pica indent.
+</p>
+</div>
+
+<!-- -TN- -->
+
+<div class="macro-id-overline">
+<h3 id="tn" class="macro-id">Tab Next</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TN</b>
+<br/>Inline escape: <b>\*[TB+]</b>
+</div>
+
+<p>
+TN moves over to the next tab in numeric sequence (tab n+1) without
+advancing on the page. See the
+<a href="#note-tn">NOTE</a>
+in the description of the TAB macro for an example of how TN works.
+</p>
+
+<p>
+In tabs that aren&#8217;t given the <kbd class="normal">QUAD</kbd>
+argument when they&#8217;re set up with
+<a href="#tab-set" class="normal">TAB&nbsp;SET</a>
+or
+<a href="#st" class="normal">ST</a>,
+you must terminate the line preceding <kbd class="normal">.TN</kbd>
+with the <kbd class="normal">\c</kbd> inline escape. Conversely,
+if you did give a <kbd>QUAD</kbd> argument to TAB_SET or ST, the
+<kbd>\c</kbd> must not be used.
+</p>
+
+<p>
+If you find remembering whether to put in the
+<kbd class="normal">\c</kbd> bothersome, you may prefer to use the
+<a href="definitions.html#inlines" class="normal">inline escape</a>
+alternative to
+<kbd class="normal">.TN</kbd>,
+<a href="inlines.html#tb-plus-mom"><kbd class="normal"><span class="nobr">\*[TB+]</span></kbd></a>,
+which works consistently regardless of the fill mode.
+</p>
+
+<div id="tn-note" class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> You must put text in the
+<a href="definitions.html#inputline">input line</a>
+immediately after TN. Stacking of TN&#8217;s is not
+allowed. In other words, you cannot do
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ Some text\c
+ .TN
+ Some more text\c
+ .TN
+ .TN
+ Yet more text
+</span>
+The above example, assuming tabs numbered from 1 to 4, should be entered
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ Some text\c
+ .TN
+ Some more text\c
+ .TN
+ \&amp;\c
+ .TN
+ Yet more text
+</span>
+
+<kbd>\&amp;</kbd> is a zero-width, non-printing character that groff
+recognizes as valid input, hence meets the requirement for input
+text following <kbd>.TN</kbd>.
+</p>
+</div>
+
+<!-- -TQ- -->
+
+<div class="macro-id-overline">
+<h3 id="tq" class="macro-id">Tab Quit</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TQ</b>
+</div>
+
+<p>
+TQ takes you out of whatever tab you were in, advances 1 linespace,
+and restores the left margin, line length, quad direction and
+<a href="definitions.html#filled">fill mode</a>
+that were in effect prior to invoking any tabs.
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="multicolumns-intro" class="macro-group">Multiple columns</h2>
+
+<p>
+Tabs are not by nature columnar, which is to say that if the text
+inside a tab runs to several lines, calling another tab does not
+automatically move to the
+<a href="definitions.html#baseline">baseline</a>
+of the first line in the previous tab. To demonstrate:
+<br/>
+<span class="pre-in-pp">
+ .TAB 1
+ Carrots
+ Potatoes
+ Broccoli
+ .TAB 2
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+</span>
+produces, on output
+<br/>
+<span class="pre-in-pp">
+ Carrots
+ Potatoes
+ Broccoli
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+</span>
+The multi-column macros allow you to set tabs in columnar fashion,
+rather than line by line. When you invoke multi-column mode (with
+<kbd><a href="#mco">.MCO</a></kbd> &ndash;
+<span style="text-decoration: underline">M</span>ulti-<span style="text-decoration: underline">C</span>olumn <span style="text-decoration: underline">O</span>n),
+mom saves the position of the current baseline.
+<kbd><a href="#mcr">.MCR</a></kbd>
+(<span style="text-decoration: underline">M</span>ulti-<span style="text-decoration: underline">C</span>olumn <span style="text-decoration: underline">R</span>eturn)
+at any point while multi-columns are on returns you to the saved
+position. Exiting multi-columns
+(<kbd><a href="#mcx">.MCX</a></kbd> &ndash;
+<span style="text-decoration: underline">M</span>ulti-<span style="text-decoration: underline">C</span>olumn e<span style="text-decoration: underline">X</span>it)
+quits the current tab (if you&#8217;re in one) and moves you to the
+bottom of the longest column. (Note that you do not have to use
+multi-columns in conjunction with tabs.)
+</p>
+
+<p>
+Using our example above, but setting it in multi-column mode,
+<br/>
+<span class="pre-in-pp">
+ .MCO
+ .TAB 1
+ Carrots
+ Potatoes
+ Broccoli
+ .MCR
+ .TAB 2
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+ .MCX
+</span>
+produces
+<br/>
+<span class="pre-in-pp">
+ Carrots $1.99/5 lbs
+ Potatoes $0.25/lb
+ Broccoli $0.99/bunch
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> Do not confuse MCO with
+the
+<a href="docprocessing.html#columns">COLUMNS</a>
+macro in the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+</p>
+</div>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Additional Note:</span>
+Do not use multi-columns with
+<a href="docprocessing.html#slide">DOCTYPE&nbsp;SLIDES</a>
+because MCX uses the lowest line on the page to determine column
+depth. Owing to the fact that both headers and footers are printed
+prior to slides receiving text, MCX will always go to the
+footer position. If you need functionality similar to MCO/MCX, use
+the groff requests <kbd>.mk</kbd> and <kbd>.rt</kbd>. See
+<kbd>info groff mk</kbd>.
+</p>
+</div>
+
+<div id="index-multicolumns" class="macro-list-container">
+<h3 class="macro-list">Multi-columns macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#mco">MCO</a> &ndash; begin multi-column setting</li>
+ <li><a href="#mcr">MCR</a> &ndash; return to top of column</li>
+ <li><a href="#mcx">MCX</a> &ndash; exit multi-columns</li>
+</ul>
+</div>
+
+<!-- -MCO- -->
+
+<div class="macro-id-overline">
+<h3 id="mco" class="macro-id">Begin multi-column setting</h3>
+</div>
+
+<div class="box-macro-args">
+ Macro: <b>MCO</b>
+</div>
+
+<p>
+MCO (<span style="text-decoration: underline;">M</span>ulti-<span style="text-decoration: underline;">C</span>olumn <span style="text-decoration: underline;">O</span>n) is the macro you use to begin multi-column
+setting. It marks the current
+<a href="definitions.html#baseline">baseline</a>
+as the top of your columns, for use later with
+<a href="#mcr">MCR</a>.
+See the
+<a href="#multicolumns-intro">introduction to columns</a>
+for an explanation of multi-columns and some sample
+input.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> Do not confuse MCO with
+the
+<a href="docprocessing.html#columns">COLUMNS</a>
+macro in the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+</p>
+</div>
+
+<!-- -MCR- -->
+
+<div class="macro-id-overline">
+<h3 id="mcr" class="macro-id">Return to top of column</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>MCR</b>
+</div>
+
+<p>
+Once you&#8217;ve turned multi-columns on (with
+<kbd><a href="#mco">.MCO</a></kbd>),
+<kbd>.MCR</kbd>, at any time, returns you to the top of
+your columns.
+</p>
+
+<!-- -MCX- -->
+
+<div class="macro-id-overline">
+<h3 id="mcx" class="macro-id">Exit multi-columns</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>MCX</b> <kbd class="macro-args">[ &lt;distance to advance below longest column&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;Optional argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+MCX takes you out of any tab you were in (by silently invoking
+<kbd><a href="#tq">.TQ</a></kbd>)
+and advances to the bottom of the longest column.
+</p>
+
+<p>
+Without an argument, MCX advances 1 linespace below the longest
+column. Linespace, in this instance, is the
+<a href="definitions.html#leading">leading</a>
+in effect at the moment MCX is invoked.
+</p>
+
+<p>
+If you pass the <kbd>&lt;distance&gt;</kbd> argument to MCX, 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 an extra 6 points below where MCX
+would normally place you, you&#8217;d enter
+<br/>
+<span class="pre-in-pp">
+ .MCX 6p
+</span>
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> If you wish to advance a precise
+distance below the
+<a href="definitions.html#baseline">baseline</a>
+of the longest column, use MCX with an argument of 0 (zero; no unit
+of measure required) in conjunction with the
+<a href="#ald">ALD</a>
+macro, like this:
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -12px;">
+ .MCX 0
+ .ALD 24p
+</span>
+</p>
+</div>
+
+<p>
+The above advances to precisely 24 points below the baseline
+of the longest column.
+</p>
+
+<div class="rule-short" style="margin-bottom: 24px;"><hr/></div>
+
+<!-- ==================================================================== -->
+
+<h2 id="indents-intro" class="macro-group">Indents</h2>
+
+<p>
+With mom&#8217;s indents, you can indent from the left, the right,
+or both margins. In addition, mom provides temporary left indents
+(i.e., only one line is indented, as at the start of a paragraph)
+and &#8220;hanging&#8221; left indents (the reverse of a temporary
+indent; the first line isn&#8217;t indented, subsequent lines are).
+</p>
+
+<h3 id="indents-handling" class="docs">How mom handles indents</h3>
+
+<p>
+Mom provides five kinds of indents: left, right, both, temporary,
+and hanging. Each is invoked by its own name:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>IL &ndash; Indent Left</li>
+<li>IR &ndash; Indent Right</li>
+<li>IB &ndash; Indent Both</li>
+<li>HI &ndash; Hanging Indent</li>
+<li>TI &ndash; Temporary Indent</li>
+</ul>
+
+<p>
+In addition, there are four macros to control exiting from
+indents:
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+<li>IQ &ndash; quit all active indents</li>
+<li>ILX &ndash; exit indent style left</li>
+<li>IRX &ndash; exit indent style right</li>
+<li>IBX &ndash; exit indent style both</li>
+</ul>
+
+<p>
+This section deals exclusively with IL, IR, and IB. For an
+explanation of hanging and temporary indents&mdash;how they work and
+how to use them&mdash;see
+<a href="#hi">Hanging indents</a>
+and
+<a href="#ti">Temporary indents</a>.
+</p>
+
+<p>
+The first time you invoke any of mom&#8217;s indents, you must
+supply a measure. For example,
+<br/>
+<span class="pre-in-pp">
+ .IL 2P
+</span>
+indents text 2 picas from the left margin (or current tab indent).
+</p>
+
+<p>
+When you want to exit the above indent, use either
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -1em;">
+ .IQ
+</span>
+or
+<span class="pre-in-pp" style="margin-top: -.5em;">
+ .ILX
+</span>
+The next time you want the same indent, invoke it without the
+argument, like this:
+<br/>
+<span class="pre-in-pp">
+ .IL
+</span>
+As you can see, once you&#8217;ve supplied a measure to an indent
+macro, mom stores the value, obviating the need to repeat it on
+subsequent invocations. And mom doesn&#8217;t just store the
+measure&mdash;she hangs on to it tenaciously. Arguments passed to
+IL, IR, and IB are additive. Consider the following:
+<br/>
+<span class="pre-in-pp">
+ .LL 20P
+ .IR 2P \"Indent right by 2 picas
+ A first block of text...
+ ...
+ ...
+ .IQ \"Turn indent off
+ A second block of text...
+ ...
+ ...
+ .IR 2P \"Indent right by an additional 2 picas (i.e. 4 picas)
+ A third block of text...
+ ...
+ ...
+</span>
+The first block of text is right indented by 2 picas (i.e. the line
+length is shortened by 2 picas to 18 picas). The second block of
+text, after IQ, is, as you&#8217;d expect, set to the full measure.
+The third block of text&mdash;the one to pay attention to&mdash;is
+not right indented by 2 picas, but rather by 4 picas. Mom adds
+the value of arguments to IL, IR, and IB to whatever value is already
+in effect.
+</p>
+
+<p>
+If you wanted the third block of text in the example above to be
+right indented by just 2 picas (the original measure given to IR),
+you would enter <kbd>.IR</kbd> without an argument.
+</p>
+
+<p>
+Because indent arguments are additive, putting a minus sign in front
+of the argument can be used to subtract from the current value.
+In the following example, the first line is indented 18 points,
+the second is indented 36 points (18 + 18), and the third is again
+indented 18 points (36 - 18).
+<br/>
+<span class="pre-in-pp">
+ .IL 18p \"Indent left by 18 points = 18 points
+ Now is the time
+ .IL 18p \"Indent left by 18 points more = 36 points
+ for all good men to come
+ .IL -18p \"Indent left by 18 points less = 18 points
+ to the aid of the party.
+</span>
+Sometimes, you may want to clear out the stored indent
+values&mdash;let mom start indenting with a clean slate, as it
+were. Giving the optional argument <kbd>CLEAR</kbd> to any of the
+&#8220;indent quit&#8221; macros resets them to zero.
+</p>
+<ul style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>IQ CLEAR &ndash; quit and clear all indents</li>
+ <li>ILX CLEAR &ndash; quit and clear indent style left</li>
+ <li>IRX CLEAR &ndash; quit and clear indent style right</li>
+ <li>IBX CLEAR &ndash; quit and clear indent style both</li>
+</ul>
+
+<p>
+Indent styles may be combined and manipulated separately. You
+could, for example, have a left indent of 4 picas and a right indent
+of 6 picas and control each separately, as in the following example.
+<br/>
+<span class="pre-in-pp">
+ .IL 4P \"Indent left 4 picas
+ .IR 6P \"Indent right 6 picas
+ Some text
+ .IRX \"Turn off the right indent only
+ More text \"Text is still indented 4 picas left
+</span>
+If, at <kbd>.IRX</kbd>, you wanted the text afterwards to have no
+indents (either left or right), you would enter <kbd>.IQ</kbd>,
+which exits all indent styles at once.
+</p>
+
+<p>
+A word of advice: Indents are best used only when you have a
+compelling reason not to change the current left margin or line
+length. In many instances where indents might seem expedient,
+it&#8217;s better to use tabs, or actually change the left margin
+or the line length. Mom&#8217;s indenting macros are flexible and
+powerful, but easy to get tangled up in.
+</p>
+
+<div class="box-tip">
+<p class="tip">
+<span class="note">Note:</span> see the section
+<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>
+for information and advice on using indents with the
+<a href="docprocessing.html#docprocessing">document processing macros</a>.
+</p>
+</div>
+
+<div id="index-indents" class="macro-list-container">
+<h3 class="macro-list">Indents macros</h3>
+
+<ul class="macro-list">
+ <li><a href="#il">IL</a> &ndash; Indent left</li>
+ <li><a href="#ir">IR</a> &ndash; Indent right</li>
+ <li><a href="#ib">IB</a> &ndash; Indent both</li>
+ <li><a href="#ti">TI</a> &ndash; Temporary indent, left</li>
+ <li><a href="#hi">HI</a> &ndash; Hanging Indent
+ <ul style="margin-left: -.5em; list-style-type: disc;">
+ <li><a href="#num-lists">Recipe: a numbered list using hanging indents</a></li>
+ </ul></li>
+ <li><a href="#iq">IQ</a> &ndash; Quit indents, all</li>
+ <li><a href="#iq">ILX</a> &ndash; Exit indent style left</li>
+ <li><a href="#iq">IRX</a> &ndash; Exit indent style right</li>
+ <li><a href="#iq">IBX</a> &ndash; Exit indent style both</li>
+</ul>
+</div>
+
+<!-- -IL- -->
+
+<div class="macro-id-overline">
+<h3 id="il" class="macro-id">Indent left</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>IL</b> <kbd class="macro-args">[ &lt;measure&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The optional argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+IL indents text from the left margin of the page, or if you&#8217;re
+in a tab, from the left edge of the tab. Once IL is on, the left
+indent is applied uniformly to every subsequent line of text, even
+if you change the line length.
+</p>
+
+<p>
+The first time you invoke <kbd>.IL</kbd>, you must give it a
+measure. Subsequent invocations with a measure add to the previous
+measure. A minus sign may be prepended to the argument to subtract
+from the current measure. The
+<kbd><a href="inlines.html#inline-stringwidth-groff">\w</a></kbd>
+<a href="definitions.html#inlines">inline escape</a>
+may be used to specify a text-dependent measure, in which case no
+unit of measure is required. For example,
+<br/>
+<span class="pre-in-pp">
+ .IL \w'margarine'
+</span>
+indents text by the width of the word &#8220;margarine&#8221;.
+</p>
+
+<p>
+With no argument, IL after an ILX indents by its last active value. See the
+<a href="#indents-handling">explanation of how mom handles indents</a>
+for more details.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> Calling a tab (with
+<kbd><a href="#tab">.TAB&nbsp;&lt;n&gt;</a></kbd>)
+automatically cancels any active indents.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span> Invoking IL
+automatically turns off IB.
+</p>
+</div>
+
+<!-- -IR- -->
+
+<div class="macro-id-overline">
+<h3 id="ir" class="macro-id">Indent right</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>IR</b> <kbd class="macro-args">[ &lt;measure&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The optional argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+IR indents text from the right margin of the page, or if
+you&#8217;re in a tab, from the end of the tab.
+</p>
+
+<p>
+The first time you invoke <kbd>.IR</kbd>, you must give it a
+measure. Subsequent invocations with a measure add to the previous
+indent measure. A minus sign may be prepended to the argument to
+subtract from the current indent measure. The
+<kbd><a href="inlines.html#inline-stringwidth-groff">\w</a></kbd>
+<a href="definitions.html#inlines">inline escape</a>
+may be used to specify a text-dependent measure, in which case no
+unit of measure is required. For example, <br/>
+<span class="pre-in-pp">
+ .IR \w'jello'
+</span>
+indents text by the width of the word &#8220;jello&#8221;.
+</p>
+
+<p>
+With no argument, IR after an IRX indents by its last active value. See the
+<a href="#indents-handling">explanation of how mom handles indents</a>
+for more details.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> Calling a tab (with
+<kbd><a href="#tab">.TAB&nbsp;&lt;n&gt;</a></kbd>)
+automatically cancels any active indents.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span> Invoking IR
+automatically turns off IB.
+</p>
+</div>
+
+<!-- -IB- -->
+
+<div class="macro-id-overline">
+<h3 id="ib" class="macro-id">Indent both</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>IB</b> <kbd class="macro-args">[ &lt;indent-1&gt; &lt;indent-2&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The optional arguments require a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+IB allows you to set or invoke a left and a right indent at the same
+time.
+</p>
+
+<p>
+If you supply only an <kbd>indent-1</kbd> argument, the argument is
+the amount to indent from both the left and right margins. If you
+give both <kbd>indent-1</kbd> and <kbd>indent-2</kbd>, the first is
+the indent from the left margin and the second is the indent from
+the right margin.
+</p>
+
+<p>
+As with IL and IR, the measures are added to the values previously
+passed to the macro. Hence, if you wish to change just one of the
+values, you must give an argument of zero to the other. (A word of
+advice: If you need to manipulate left and right indents separately,
+use a combination of IL and IR instead of IB. You&#8217;ll save
+yourself a lot of grief.)
+</p>
+
+<p>
+A minus sign may be prepended to the arguments to subtract from
+their current values. The
+<a href="inlines.html#inline-stringwidth-groff"><kbd>\w</kbd></a>
+<a href="definitions.html#inlines">inline escape</a>
+may be used to specify text-dependent measures, in which case no
+unit of measure is required. For example,
+<br/>
+<span class="pre-in-pp">
+ .IB \w&#8217;margarine&#8217; \w'jello'
+</span>
+left indents text by the width of the word &#8220;margarine&#8221;
+and right indents by the width of &#8220;jello&#8221;.
+</p>
+
+<p>
+Like IL and IR, IB with no argument after an IBX indents by its
+last active values. See the
+<a href="#indents-handling">explanation of how mom handles indents</a>
+for more details.
+</p>
+
+<div class="box-tip">
+<p class="tip-top">
+<span class="note">Note:</span> Calling a tab (with
+<a href="#tab"><kbd>.TAB&nbsp;&lt;n&gt;</kbd></a>)
+automatically cancels any active indents.
+</p>
+
+<p class="tip-bottom">
+<span class="additional-note">Additional note:</span> Invoking IB
+automatically turns off IL and IR.
+</p>
+</div>
+
+<!-- -TI- -->
+
+<div class="macro-id-overline">
+<h3 id="ti" class="macro-id">Temporary (left) indent</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>TI</b> <kbd class="macro-args">[ &lt;measure&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The optional argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+A temporary indent is one that applies only to the first line of
+text that comes after it. Its chief use is indenting the first line
+of paragraphs. (Mom&#8217;s
+<a href="docelement.html#pp">PP</a>
+macro, for example, uses a temporary indent.)
+</p>
+
+<p>
+The first time you invoke <kbd>.TI</kbd>, you must give
+it a measure. If you want to indent the first line of a paragraph
+by, say, 2
+<a href="definitions.html#em">ems</a>,
+do
+<br/>
+<span class="pre-in-pp">
+ .TI 2m
+</span>
+Subsequent invocations of TI do not require you to supply a measure;
+mom keeps track of the last measure you gave it.
+</p>
+
+<p>
+Because temporary indents are temporary, there&#8217;s no need to
+turn them off.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> Unlike IL, IR, and IB,
+measures given to TI are <i>not</i> additive. In the following
+example, the second <kbd>.TI&nbsp;2P</kbd> is exactly 2 picas.
+<br/>
+<span class="pre-in-pp" style="margin-bottom: -18px;">
+ .TI 1P
+ The beginning of a paragraph...
+ .TI 2P
+ The beginning of another paragraph...
+</span>
+</p>
+</div>
+
+<!-- -HI- -->
+
+<div class="macro-id-overline">
+<h3 id="hi" class="macro-id">Hanging indent</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>HI</b> <kbd class="macro-args">[ &lt;measure&gt; ]</kbd>
+</div>
+<p class="requires">
+&bull;&nbsp;The optional argument requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
+</p>
+
+<p>
+A hanging indent looks like this:
+<br/>
+<span class="pre-in-pp">
+ The thousand injuries of Fortunato I had borne as best I
+ could, but when he ventured upon insult, I vowed
+ revenge. You who so well know the nature of my soul
+ will not suppose, however, that I gave utterance to a
+ threat, at length I would be avenged...
+</span>
+The first line of text &#8220;hangs&#8221; outside the left margin.
+</p>
+
+<p>
+In order to use hanging indents, you must first have a left indent
+active (set with either
+<kbd><a href="#il">.IL</a></kbd>
+or
+<kbd><a href="#ib">.IB</a></kbd>).
+Mom will not hang text outside the left margin set with
+<kbd><a href="#l-margin">.L_MARGIN</a></kbd>
+or outside the left margin of a tab.
+</p>
+
+<p>
+The first time you invoke <kbd>.HI</kbd>, you must give
+it a measure. If you want the first line of a paragraph to hang by,
+say, 1 pica, do
+<br/>
+<span class="pre-in-pp">
+ .IL 1P
+ .HI 1P
+</span>
+Subsequent invocations of HI do not require you to supply a measure;
+mom keeps track of the last measure you gave it.
+</p>
+
+<p>
+Generally speaking, you should invoke HI immediately prior to the
+line you want hung (i.e. without any intervening
+<a href="definitions.html#controllines">control lines</a>).
+And because hanging indents affect only one line, there&#8217;s no
+need to turn them off.
+</p>
+
+<div class="box-important">
+<p class="tip">
+<span class="important">IMPORTANT:</span> Unlike IL, IR, and IB,
+measures given to HI are NOT additive. Each time you pass a measure
+to HI, the measure is treated literally.
+</p>
+</div>
+
+<h4 id="num-lists" class="macro-id">Recipe: A numbered list using hanging indents</h4>
+
+<div class="box-tip" style="margin-top: -.5em; margin-bottom: -.5em;">
+<p class="tip">
+<span class="note">Note:</span> mom has macros for setting lists (see
+<a href="docelement.html#list-intro">Nested lists</a>).
+This recipe exists to demonstrate the use of hanging indents only.
+</p>
+</div>
+
+<p style="margin-top: 1.5em;">
+<span class="pre-in-pp">
+ .PAGE 8.5i 11i 1i 1i 1i 1i
+ .FAMILY T
+ .FT R
+ .PT_SIZE 12
+ .LS 14
+ .JUSTIFY
+ .KERN
+ .SS 0
+ .IL \w'\0\0.'
+ .HI \w'\0\0.'
+ 1.\0The most important point to be considered is whether the
+ answer to the meaning of Life, the Universe, and Everything
+ really is 42. We have no-one&#8217;s word on the subject except
+ Mr. Adams&#8217;.
+ .HI
+ 2.\0If the answer to the meaning of Life, the Universe,
+ and Everything is indeed 42, what impact does this have on
+ the politics of representation? 42 is, after all not a
+ prime number. Are we to infer that prime numbers don&#8217;t
+ deserve equal rights and equal access in the universe?
+ .HI
+ 3.\0If 42 is deemed non-exclusionary, how do we present it
+ as the answer and, at the same time, forestall debate on its
+ exclusionary implications?
+</span>
+First, we invoke a left indent with a measure equal to the width of
+2
+<a href="definitions.html#figurespace">figures spaces</a>
+plus a period (using the
+<a href="inlines.html#inline-stringwidth-groff"><kbd>\w</kbd></a>
+inline escape). At this point, the left indent is active; text
+afterwards would normally be indented. However, we invoke a
+hanging indent of exactly the same width, which hangs the first
+line (and first line only!) to the left of the indent by the
+same distance (in this case, that means &#8220;out to the left
+margin&#8221;). Because we begin the first line with a number,
+a period, and a figure space, the actual text (&#8220;The most
+important point...&#8221;) starts at exactly the same spot as the
+indented lines that follow.
+</p>
+
+<p>
+Notice that subsequent invocations of <kbd>.HI</kbd> don&#8217;t
+require a measure to be given.
+</p>
+
+<p>
+Paste the example above into a file and preview it with
+<br/>
+<span class="pre-in-pp">
+ pdfmom filename.mom &gt; filename.pdf
+</span>
+to see hanging indents in action.
+</p>
+
+<!-- -IX- -->
+
+<div class="macro-id-overline">
+<h3 id="iq" class="macro-id">Quitting indents</h3>
+</div>
+
+<div class="box-macro-args">
+Macro: <b>IQ</b> <kbd class="macro-args">[ CLEAR ]</kbd> (quit any/all indents &mdash; see IMPORTANT NOTE)
+</div>
+<br/>
+
+Macro: <b>ILX</b> <kbd class="macro-args">[ CLEAR ]</kbd> (exit Indent Left)
+<br/>
+
+Macro: <b>IRX</b> <kbd class="macro-args">[ CLEAR ]</kbd> (exit Indent Right)
+<br/>
+
+Macro: <b>IBX</b> <kbd class="macro-args">[ CLEAR ]</kbd> (exit Indent Both)
+
+<div class="box-important">
+<p class="tip-top">
+<span class="important">IMPORTANT NOTE:</span> The original macro
+for quitting all indents was IX. This usage has been deprecated in
+favour of IQ. IX will continue to behave as before, but mom will
+issue a warning to stderr indicating that you should update your
+documents.
+</p>
+
+<p class="tip-bottom">
+As a consequence of this change, ILX, IRX and IBX may now also be
+invoked as ILQ, IRQ and IBQ. Both forms are acceptable.
+</p>
+</div>
+
+<p>
+Without an argument, the macros to quit indents merely restore your
+original margins and line length. The measures stored in the indent
+macros themselves are saved so you can call them again without
+having to supply a measure.
+</p>
+
+<p>
+If you pass these macros the optional argument <kbd>CLEAR</kbd>,
+they not only restore your original left margin and line length, but
+also clear any values associated with a particular indent style.
+The next time you need an indent of the same style, you have to
+supply a measure again.
+</p>
+
+<p>
+<kbd>.IQ&nbsp;CLEAR</kbd>, as you&#8217;d suspect,
+quits and clears the values for all indent styles at once.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="goodies.html#top">Next: Goodies</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/using.html b/contrib/mom/momdoc/using.html
new file mode 100644
index 0000000..c93e385
--- /dev/null
+++ b/contrib/mom/momdoc/using.html
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Using mom</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+ <tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="typesetting.html#top">Next: The typesetting macros</a></td>
+ </tr>
+ </table>
+
+<h1 id="using" class="docs">Using mom</h1>
+
+<div style="text-align: left; margin-left: 33%">
+<ul class="no-enumerator" style="margin-left: -2.5em;">
+ <li><a href="#using-intro">Introduction</a></li>
+ <li><a href="#using-macros">How to input mom&#8217;s macros</a></li>
+ <li><a href="#viewing">Processing and viewing documents</a>
+ <ul>
+ <li class="item"><a href="#pdf">Mom and PDF</a></li>
+ <li class="item"><a href="#pdfmom">pdfmom</a></li>
+ </ul></li>
+ <li><a href="#previewing">Automatic previewing of documents</a></li>
+</ul>
+</div>
+
+<div class="rule-short" style="margin-top: 18px;"><hr/></div>
+
+<h2 id="using-intro" class="docs">Introduction</h2>
+
+<p>
+As explained in the section
+<a href="intro.html#top">What is mom?</a>,
+mom can be used in two ways: for straightforward typesetting or for
+document processing. The difference between the two is that in
+straightforward typesetting, every macro is a literal instruction
+that determines precisely how text following it will look. Document
+processing, on the other hand, uses markup tags (e.g. <kbd>.PP</kbd>
+for paragraphs, <kbd>.HEADING</kbd> for different levels of heads,
+<kbd>.FOOTNOTE</kbd> for footnotes, etc.) that perform typesetting
+operations automatically.
+</p>
+
+<p>
+You tell mom that you want to use the document processing macros
+with the
+<a href="docprocessing.html#start">START</a>
+macro. After START, mom determines the appearance of
+text following the markup tags automatically, although you, the
+user, can easily change how the tags are interpreted.
+</p>
+
+<h2 id="using-macros" class="docs">How to input mom&#8217;s macros</h2>
+
+<p>
+Regardless of whether you&#8217;re preparing a term paper or making a
+flyer for your lost dog, the following apply.
+</p>
+
+<ol style="margin-top: -.5em; margin-bottom: -.5em;">
+ <li>
+ You need a good text editor for inputting mom files.
+ <br/>
+ <span style="display: block; margin-top: .25em; margin-bottom: .5em;">
+ I cannot recommend highly enough that you use an editor that
+ lets you write syntax highlighting rules for mom&#8217;s
+ macros and
+ <a href="definitions.html#inlines">inline escapes</a>.
+ Simply colourizing macros and inlines to half-intensity can be
+ enough to make text stand out clearly from formatting commands.
+ Mom herself comes with a complete set of syntax highlighting
+ rules for the vim editor. A number of freely available editors
+ come with groff syntax highlighting rules, which are sufficient
+ for mom files, though not as colourful or complete as the vim
+ rules that ship with mom.
+ </span>
+ </li>
+ <li>
+ Macros begin with a period (dot) at the left margin of your text
+ editor&#8217;s screen, and must be entered in upper case (capital)
+ letters.
+ </li>
+ <li>
+ Macro
+ <a href="definitions.html#arguments">arguments</a>
+ are separated from the macro itself by spaces. Multiple
+ arguments to the same macro are separated from each
+ other by spaces. Any number of spaces may be used.
+ </li>
+ <li>
+ Arguments to a macro must appear on the same line as the
+ macro.
+ <br/>
+ <span style="display: block; margin-top: .25em; margin-bottom: .5em;">
+ If the argument list is very long, you may use the
+ backslash character (<kbd>\</kbd>) to break the line visually.
+ From groff&#8217;s point of view, the backslash and newline are
+ invisible. Thus, for example,
+ <span class="pre" style="margin-bottom: -2.25em">
+ .HEADING_STYLE 1 FAMILY Garamond FONT B SIZE +2
+ </span>
+ and
+ <span class="pre" style="margin-bottom: -2.25em">
+ .HEADING_STYLE 1 \
+ FAMILY Garamond \
+ FONT B \
+ SIZE +2
+ </span>
+ </span>
+ are exactly equivalent.
+ </li>
+ <li>
+ Any argument (except a
+ <a href="definitions.html#stringargument">string argument</a>)
+ that is not a digit must be entered in upper case
+ (capital) letters.
+ </li>
+ <li>
+ Any argument that requires a plus or minus sign must
+ have the plus or minus sign prepended to the argument
+ with no intervening space (e.g. <kbd>+2</kbd>).
+ </li>
+ <li>
+ Any argument that requires a
+ <a href="definitions.html#unitofmeasure">unit of measure</a>
+ must have the unit appended directly to the argument, with no
+ intervening space (e.g. <kbd>.5i</kbd>).
+ </li>
+ <li>
+ <a href="definitions.html#stringargument">String arguments</a>,
+ in the sense of this manual, must be surrounded by double-quotes
+ (e.g. <kbd>"text"</kbd>). Multiple
+ string arguments are separated from each other by spaces (with
+ each argument surrounded by double-quotes).
+ <br/>
+ <span style="display: block; margin-top: .25em; margin-bottom: .5em;">
+ If a string argument becomes
+ uncomfortably long, you may break it into two or more lines
+ with the backslash character.
+ <span class="pre">
+ .SUBTITLE "An In-Depth Consideration of the \
+ Implications of Forty-Two as the Answer to Life, \
+ The Universe, and Everything"
+ </span>
+ </span>
+ </li>
+</ol>
+
+<div class="box-tip">
+<p class="tip">
+<span class="tip">Tip:</span>
+It&#8217;s important that your documents be easy to read and
+understand in a text editor. One way to achieve this is to group
+macros that serve a similar purpose together, and separate them from
+other groups of macros with a comment line. In groff, that&#8217;s
+done with <kbd>\#</kbd> (backslash-pound) or <kbd>.\"</kbd>
+(period-backslash-doublequote) on a line by itself. Either
+instructs groff to ignore the remainder of the line, which may or
+may not contain text. Consider the following, which is a template
+for starting the chapter of a book.
+<br/>
+<span class="pre-in-pp">
+ \# Reference/meta-data
+ .TITLE "My Pulitzer Novel"
+ .AUTHOR "Joe Blow"
+ .CHAPTER 1
+ \# Template
+ .DOCTYPE CHAPTER
+ .PRINTSTYLE TYPESET
+ \# Type style
+ .FAM P
+ .PT_SIZE 10
+ .LS 12
+ \#
+ .START
+</span>
+You may also, if you wish, add a comment to the end of a line with
+<kbd>\"</kbd> (no period), like this:
+<br/>
+<span class="pre-in-pp">
+ .FAMILY P \" Maybe Garamond instead?
+</span>
+</p>
+</div>
+
+<h2 id="viewing" class="docs">Processing and viewing documents</h2>
+
+<p>
+The most basic command-line usage for processing a file formatted
+with the mom macros is
+<br/>
+<span class="pre-in-pp">
+ groff -mom filename.mom &gt; filename.ps
+</span>
+which processes the .mom file and dumps the output into a
+viewable/printable PostScript file.
+</p>
+
+<h3 id="pdf" class="docs">Mom and PDF</h3>
+
+<p>
+Adobe&#8217;s Portable Document Format (PDF) has largely supplanted
+PostScript, of which it is a subset, as the standard for typeset
+documents. While printed versions of documents in either format
+will be identical, PDF documents, when viewed at the screen, may
+also contain clickable links and a number of other special features.
+</p>
+
+<p>
+As of version 2.0, mom supports full PDF integration. The creation
+and processing of mom files into PostScript documents remains
+unchanged from 1.x, but the expected and recommended format of final
+documents is now PDF.
+</p>
+
+<p>
+The manual,
+<a href="http://www.schaffter.ca/mom/pdf/mom-pdf.pdf"><span class="book-title">Producing PDFs with groff and mom</span></a>,
+explains and demonstrates the PDF-specific macros that are available
+in mom, as well as the use of <strong>pdfmom</strong>, the
+recommended way to process mom files.
+</p>
+
+<h4 id="pdfmom" class="docs">pdfmom</h4>
+
+<p>
+Groff provides more than one way to generate PDF documents,
+but when processing files formatted with the mom macros,
+<strong>pdfmom</strong> is the recommended and most robust way to do
+it:
+<br/>
+<span class="pre-in-pp">
+ pdfmom filename.mom &gt; filename.pdf
+</span>
+<strong>pdfmom</strong> is a wrapper around groff, and accepts all
+groff&#8217;s command-line options as listed in the groff manpage.
+Full usage is explained in the manual,
+<a href="http://www.schaffter.ca/mom/pdf/mom-pdf.pdf"><span class="book-title">Producing PDFs with groff and mom</span></a>.
+</p>
+
+<p>
+PDF links in a document, including linked entries in the
+Table of Contents, are identified by colour. When printing
+documents with links, you will most likely not want the link
+text coloured. The groff option, <kbd>-c</kbd>, disables colour
+throughout a document; thus, when preparing a document for printing,
+you should use:
+<br/>
+<span class="pre-in-pp">
+ pdfmom -c filename.mom &gt; filename.pdf
+</span>
+<strong>pdfmom</strong> tends to produce large files. You may
+reduce their size by piping them through ps2pdf:
+<br/>
+<span class="pre-in-pp">
+ pdfmom -c filename.mom | ps2pdf - filename.pdf
+</span>
+Be aware, though, that files piped through ps2pdf will lose some pdf
+metadata, notably the document window title set with PDF_TITLE.
+</p>
+
+<h2 id="previewing" class="docs">Automatic previewing of documents</h2>
+
+<p>
+Most PDF viewers have a &#8220;Watch File&#8221; option, which
+automatically updates a displayed document whenever there&#8217;s
+a change. This is useful when preparing documents that require
+judgment calls. I recommend creating a keymapping in your
+text editor that both saves the mom file and processes it with
+<strong>pdfmom</strong>. The displayed PDF then automatically
+reflects whatever changes you save to the mom file.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+ <tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 33%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 33%; text-align: right;"><a href="typesetting.html#top">Next: The typesetting macros</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>
diff --git a/contrib/mom/momdoc/version-2.html b/contrib/mom/momdoc/version-2.html
new file mode 100644
index 0000000..bd1cb8d
--- /dev/null
+++ b/contrib/mom/momdoc/version-2.html
@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004-2020 Free Software Foundation, Inc.
+Written by Peter Schaffter (peter@schaffter.ca).
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.
+
+A copy of the Free Documentation License is included as a file called
+FDL in the main directory of the groff source package.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
+ <title>Mom -- Version 2.0 notes</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body style="background-color: #f5faff;">
+
+<!-- ==================================================================== -->
+
+<div id="top" class="page">
+
+<!-- Navigation links -->
+<table style="width: 100%;">
+<tr>
+ <td><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="text-align: right;"><a href="intro.html#top">Next: Introduction to mom</a></td>
+</tr>
+</table>
+
+<h1 class="docs">Version 2.0 notes</h1>
+
+<div style="width: 70%; margin: auto;">
+<ol style="margin-left: -1em;">
+ <li><a href="#prefatory">Prefatory comments</a></li>
+ <li><a href="#differences">Differences between 2.0 and 1.x</a>
+ <ul class="no-enumerator" style="padding-left: 0">
+ <li><a href="#pdf-support">2.1 PDF support</a>
+ <ul class="no-enumerator" style="padding-left: 1em">
+ <li><a href="#mom-pdf">2.1.1 The manual, <span class="book-title">Producing PDFs with groff and mom</span></a></li>
+ <li><a href="#pdf-image">2.1.2 PDF_IMAGE</a></li>
+ </ul></li>
+ <li><a href="#covers">2.2 Covers</a></li>
+ <li><a href="#headings">2.3 Headings</a></li>
+ <li><a href="#margin-notes">2.4 Margin notes</a></li>
+ <li><a href="#floats">2.5 Floats</a></li>
+ <li><a href="#table-of-contents">2.5 Tables of contents</a></li>
+ </ul></li>
+ <li><a href="#v2.1-changes">Version 2.1 changes</a></li>
+ <li><a href="#v2.2-changes">Version 2.2 changes</a></li>
+ <li><a href="#v2.5-changes">Version 2.5 changes</a></li>
+ <li><a href="#pdfmom">The <strong>pdfmom</strong> wrapper around groff</a></li>
+ <li><a href="#install-font">The <strong>install-font.sh</strong> script</a></li>
+</ol>
+</div>
+
+<div class="rule-medium"><hr/></div>
+
+<h2 id="prefatory" class="docs">1. Prefatory comments</h2>
+
+<p>
+Version 2.0 comes about as a result of Deri James&#8217;
+contribution of <strong>gropdf</strong> to <strong>groff</strong>,
+and his subsequent work integrating the device with
+<strong>mom</strong>.
+</p>
+
+<p>
+Whereas the 1.x releases were oriented toward PostScript output,
+2.0 focuses on PDF output, a bias reflected throughout this
+documentation. Users are strongly encouraged to process their files
+with
+<a href="#pdfmom"><strong>pdfmom</strong></a>,
+a wrapper around <strong>groff&nbsp;-Tpdf</strong>, in order to take
+full advantage of all PDF has to offer.
+</p>
+
+<p>
+While portions of mom have been rewritten, and new features
+introduced, 2.0 is backwardly compatible with 1.x releases. Changes
+are either transparent, or accompanied by notifications on stderr.
+</p>
+
+<p>
+The implementation of nested heads has been completely rethought,
+as has the manner of styling of them. There are no limits on
+how deep the nesting can go. The 1.x macros <kbd>HEAD</kbd>,
+<kbd>SUBHEAD</kbd>, and <kbd>SUBSUBHEAD</kbd> may still be used, but
+must be re-designed with the new <kbd>HEADING_STYLE</kbd> macro
+if their 1.x defaults are not desired.
+</p>
+
+<p>
+In conjunction with the changes to nested heads, Table of Contents
+generation has also been rethought. Greater flexibility in the
+inclusion of toc entry numbering been added. Like nested heads,
+there&#8217;s a new macro <kbd>TOC_ENTRY_STYLE</kbd> that permits
+styling of each level in the toc hierarchy separately. The default
+overall layout has also been significantly improved, achieving a
+level of typographical elegance formerly lacking. Best of all, the
+Table of Contents can now be repositioned to the correct spot at the
+top of a document from within the mom source file.
+</p>
+
+<p>
+When mom files are processed with <strong>pdfmom</strong>, a PDF
+outline for the Contents panel of PDF viewers is automatically
+generated. In addition, entries in the Table of Contents
+are clickable links when a document is viewed at the screen.
+<strong>pdfmom</strong> also permits setting a document&#8217;s
+papersize within the source file without the corresponding need for
+<kbd>-P-p&lt;papersize&gt;</kbd> on the command line.
+</p>
+
+<p>
+Lastly, while not strictly part of mom, a bash script,
+<strong>install-font.sh</strong>, has been posted at the
+<a href="https://www.schaffter.ca/mom/">mom site</a>.
+The script significantly eases the installation of new
+groff families and fonts, with conversion to .pfa
+and .t42 being performed by <strong>fontforge</strong>.
+</p>
+
+<h2 id="differences" class="docs">2. Differences between v2.0 and v1.x</h2>
+
+<h3 id="pdf-support" class="docs">2.1. PDF support</h3>
+
+<p>
+PDF support has been added, with features including the automatic
+generation of PDF outlines, embedding of images in PDF format (via
+the
+<a href="images.html#pdf-image">PDF_IMAGE</a>
+macro) and PDF linking (internal and external).
+</p>
+
+<h4 id="mom-pdf" class="docs">2.1.1. Producing PDFs with groff and mom</h4>
+
+<p>
+A manual in PDF format,
+<span class="book-title">Producing PDFs with groff and mom</span>,
+has been added to the documentation. The file,
+<strong>mom-pdf.pdf</strong> can be found in
+<br/>
+<span class="pre-in-pp">
+ /usr/local/share/doc/groff-&lt;version&gt;/pdf/
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ /usr/share/doc/groff-base/pdf/
+</span>
+or at
+<br/>
+<span class="pre-in-pp">
+ <a href="http://www.schaffter.ca/mom/momdoc/mom-pdf.pdf">http://www.schaffter.ca/mom/momdoc/mom-pdf.pdf</a>
+</span>
+PDF usage, and all associated macros except
+<a href="#pdf-image">PDF_IMAGE</a>,
+are fully explained in the manual, which should be considered an
+integral part of the present documentation. In addition, the mom
+source file for the manual can be found in
+<br/>
+<span class="pre-in-pp">
+ /usr/local/share/doc/groff-&lt;version&gt;/examples/mom
+</span>
+or
+<br/>
+<span class="pre-in-pp">
+ /usr/share/doc/groff-base/examples/mom/
+</span>
+and provides an excellent demonstration of mom usage.
+</p>
+
+<h4 id="pdf-image" class="docs">2.1.2. PDF_IMAGE</h4>
+
+<p>
+A new macro for embedding PDF images has been added,
+<a href="images.html#pdf-image">PDF_IMAGE</a>.
+</p>
+
+<p>
+PDF_IMAGE functions similarly to PSPIC and accepts the same
+arguments. Differences in implementation are that PDF_IMAGE
+requires the image dimensions (the bounding box) to be supplied.
+Instructions for getting the bounding box are included in the
+documentation entry for PDF_IMAGE. Two additional options,
+<kbd>SCALE</kbd> and <kbd>ADJUST</kbd>, allow scaling of the image
+and optical centering.
+</p>
+
+<h3 id="covers" class="docs">2.2. Covers</h3>
+
+<p>
+Arguments to
+<a href="cover.html#cover">COVER</a>
+and
+<a href="cover.html#doc-cover">DOC_COVER</a>
+may now be given in any order.
+</p>
+
+<h3 id="headings" class="docs">2.3. Headings</h3>
+
+<p>
+The 1.x macros HEAD, SUBHEAD, SUBSUBHEAD, are now deprecated and
+have been replaced by the single macro
+<a href="docelement.html#heading">HEADING <kbd>&lt;n&gt;</kbd></a>,
+where <kbd>&lt;n&gt;</kbd> is the heading level. The deprecated
+macros may still be used, and conform in style to their original
+defaults; they are, however, wrappers around HEADING levels 1
+&#8211; 3. Both the wrappers and HEADING itself can take a
+<kbd>NAMED&nbsp;&lt;id&gt;</kbd> argument, specifying a PDF link
+destination.
+</p>
+
+<p>
+Styling of headings is managed by the single macro <a
+href="docelement.html#heading">HEADING_STYLE &lt;n&gt;</a> where
+<kbd>&lt;n&gt;</kbd> conforms to a heading level. The control
+macros for HEAD, SUBHEAD and SUBSUBHEAD have been removed. Users
+wishing to style the wrappers must use HEADING_STYLE.
+</p>
+
+<p>
+PARAHEAD is no longer valid. Paragraph heads in 2.0 are created
+by passing the <kbd>PARAHEAD</kbd> argument to HEADING. Mom
+will abort with an informational message whenever she encounters
+<kbd>.PARAHEAD</kbd>.
+</p>
+
+<h3 id="margin-notes" class="docs">2.4. Margin notes</h3>
+
+<p>
+The macro for setting margin note parameters,
+<a href="docelement.html#mn-init">MN_INIT</a>,
+has been re-written such that each parameter now has the form
+<kbd>&lt;PARAMETER&gt; &lt;value&gt;</kbd>. This differs
+from 1.x where parameters were entered without a preceding
+<kbd>&lt;PARAMETER&gt;</kbd> flag. Parameters may be entered in any
+order. Any that are skipped are set to default values. Documents
+created with 1.x will have to have their <kbd>MN_INIT</kbd> updated
+accordingly.
+</p>
+
+<h3 id="floats" class="docs">2.5. Floats</h3>
+
+<p>
+A
+<a href="images.html#floats-intro">FLOAT</a>
+macro has been added, which functions similarly to the <kbd>ms</kbd>
+macros&#8217; <kbd>.KF/.KE</kbd>, i.e., the contents of the float are
+output immediately if there&#8217;s room on the page, otherwise
+normal text processing continues and the contents are output at the
+top of the next page. An <kbd>ADJUST</kbd> argument to FLOAT allows
+for optical centering.
+</p>
+
+<h3 id="table-of-contents" class="docs">2.6. Tables of contents</h3>
+
+<p>
+The default look of the Table of Contents has been overhauled to
+produce a more typographically pleasing result. All control macros
+for TOC title and entry styles have been removed, replaced by
+<a href="tables-of-contents.html#toc-title-style">TOC_TITLE_STYLE</a>
+and
+<a href="tables-of-contents.html#toc-title-style">TOC_ENTRY_STYLE <kbd>&lt;n&gt;</kbd></a>
+where <kbd>&lt;n&gt;</kbd> corresponds to a heading level. Both
+macros permit setting any or all of the style parameters for TOC
+titles (i.e. chapters or major sections/divisions of a collated
+document) and TOC entries (nested heading levels) at once.
+Documents created with 1.x that contain TOCs will need to have their
+TOC style updated if the new defaults are unsatisfactory.
+</p>
+
+<p>
+Two new TOC control macros have been added,
+<a href="tables-of-contents.html#space-toc-items">SPACE_TOC_ITEMS</a>
+and
+<a href="tables-of-contents.html#auto-relocate-toc">AUTO_RELOCATE_TOC</a>.
+SPACE_TOC_ITEMS groups TOC entry levels and separates them with a
+discrete amount of whitespace. This leads to improved legibility,
+and is highly recommended even though it is not mom&#8217;s
+default. AUTO_RELOCATE_TOC intelligently repositions the Table
+of Contents to the top of a document when the mom source file is
+processed with
+<a href="pdfmom">pdfmom</a>.
+</p>
+
+<h2 id="v2.1-changes" class="docs">3. Version 2.1 changes</h2>
+<p> Version 2.1 adds these features: </p> <ul style="margin-top: -.5em; width: 90%">
+ <li>expansion of cover, docheader, page header, and heading
+ control macros to permit caps, smallcaps, color, and
+ underscoring</li>
+ <li>the ability to style every element appearing in docheaders and
+ automatically-generated cover/title pages separately</li>
+ <li>macros to place images on cover/title pages</li>
+ <li>a new macro COVERTEXT that allows adding text (e.g. an
+ Abstract) to automatically-generated cover/title pages or to
+ create cover/title pages entirely by hand</li>
+ <li>separate indent control macros for QUOTES and BLOCKQUOTES</li>
+ <li>pseudo-smallcaps, including a control macro to choose the
+ size, weight, and width of the small caps</li>
+ <li>new &lt;element&gt;_STYLE macros that allow setting
+ parameters for &lt;element&gt; with a single macro using
+ keyword/value pairs</li>
+</ul>
+
+<p>
+The following changes have been made:
+</p>
+
+<ul style="margin-top: -.5em; width: 90%">
+ <li>MISC_AUTOLEAD (including COVER_MISC_AUTOLEAD and
+ DOC_COVER_MISC_AUTOLEAD) has been replaced in favour of MISC_LEAD,
+ which takes an absolute leading value rather than one derived
+ from the point size.</li>
+ <li>COVER_UNDERLINE and DOC_COVER_UNDERLINE have been
+ removed in favour of COVER_DOCTYPE_UNDERLINE and
+ DOC_COVER_DOCTYPE_UNDERLINE.</li>
+ <li>DOCTYPE NAMED <kbd>&lt;string&gt;</kbd> no longer accepts a
+ <kbd>color</kbd> argument; setting the colour for
+ <kbd>&lt;string&gt;</kbd> is accomplished with DOCTYPE_COLOR
+ <kbd>&lt;color&gt;</kbd>. In addition, the string now has a
+ complete set of control macros.</li>
+ <li>Default underscoring of the DOCTYPE NAMED string has been
+ removed, both in the docheader and on cover/title pages.</li>
+ <li>No cover/title page data persists, however formatting for the
+ elements on them does.</li>
+</ul>
+
+<h2 id="v2.2-changes" class="docs">4. Version 2.2 changes</h2>
+
+<p>
+Version 2.2 adds these features:
+</p>
+<ul style="margin-top: -.5em; width: 90%">
+ <li>flex-spacing, an alternative to mom&#8217;s default shimming
+ policy; flex-spacing balances vertical whitespace on the page by
+ distributing any excess equally at sensible points so that running
+ text always fills the page to the bottom margin (see
+ <a href="docprocessing.html#vertical-whitespace-management">
+ vertical whitespace management</a>)
+ </li>
+ <li>improvements to auto-labelling, such that it is now possible
+ to link symbolically to auto-labelled preprocessor material and
+ PDF images (note that you must be running groff 1.22.4 or higher
+ for this feature)
+ </li>
+</ul>
+
+<h2 id="v2.5-changes" class="docs">5. Version 2.5 changes</h2>
+
+<p>
+Version 2.5 adds shaded backgrounds and frames that span pages
+appropriately when necessary, and a macro to set page or slide
+background colour.
+</p>
+
+<h2 id="pdfmom" class="docs">6. pdfmom</h2>
+
+<p>
+Deri James has provided <strong>pdfmom</strong>, a wrapper around
+groff that processes mom source files with all the PDF bells and
+whistles. Its use is highly recommended. Usage is explained in the
+manual,
+<a href="http://www.schaffter.ca/mom/pdf/mom-pdf.pdf">
+ <span class="book-title">Producing PDFs with groff and mom</span>
+</a>.
+A significant convenience of pdfmom is that it can, with the
+<kbd>-Tps</kbd> flag, be used to pass processing over to Keith
+Marshall&#8217;s <strong>pdfroff</strong>. This is useful when
+processing files that contain PostScript images embedded with
+<a href="images.html#pspic">PSPIC</a>.
+pdfmom, without the flag, uses groff&#8217;s PDF device
+(<strong>gropdf</strong>), which only recognizes PDF images that
+have been embedded with
+<a href="images.html#pdf-image">PDF_IMAGE</a>.
+</p>
+
+<h2 id="install-font" class="docs">7. install-font.sh</h2>
+
+<p>
+A bash script, <strong>install-font.sh</strong>, has been posted at the
+<a href="http://www.schaffter.ca/mom/mom-01.html">mom site</a>.
+There&#8217;s nothing mom-specific about the script, and it is not
+an official part of groff.
+</p>
+
+<p>
+Installing groff fonts is a multi-step procedure, which, while not
+difficult, can be a nuisance. install-font.sh takes
+care of all the details, including converting fonts to formats
+acceptable to <strong>grops</strong> and <strong>gropdf</strong>,
+creating and installing the groff fonts in the appropriate
+directories, updating the download files, and installing the
+original fonts in a system-wide directory, if desired.
+</p>
+
+<div class="rule-long"><hr/></div>
+
+<!-- Navigation links -->
+<table style="width: 100%; margin-top: 12px;">
+<tr>
+ <td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
+ <td style="width: 20%; text-align: center;"><a href="#top">Top</a></td>
+ <td style="width: 46%; text-align: right;"><a href="intro.html">Next: Introduction to mom</a></td>
+</tr>
+</table>
+
+</div>
+
+<div class="bottom-spacer"><br/></div>
+
+</body>
+</html>