summaryrefslogtreecommitdiff
path: root/contrib/mom/momdoc/typesetting.html
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/mom/momdoc/typesetting.html')
-rw-r--r--contrib/mom/momdoc/typesetting.html3726
1 files changed, 3726 insertions, 0 deletions
diff --git a/contrib/mom/momdoc/typesetting.html b/contrib/mom/momdoc/typesetting.html
new file mode 100644
index 00000000..6bce803a
--- /dev/null
+++ b/contrib/mom/momdoc/typesetting.html
@@ -0,0 +1,3726 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
+<title>Mom -- Typesetting Macros</title>
+</head>
+<body bgcolor="#dfdfdf">
+
+<!====================================================================>
+
+<a href="goodies.html#TOP">Next</a>&nbsp;&nbsp;
+<a href="definitions.html#TOP">Prev</a>&nbsp;&nbsp;
+<a href="toc.html">Back to Table of Contents</a>
+
+<a name="TOP"></a>
+<a name="MACROS_TYPESETTING">
+ <h1 align="center"><u>THE TYPESETTING MACROS</u></h1>
+</a>
+
+<a href="#INTRO_MACROS_TYPESETTING">Introduction to the typesetting macros</a>
+<br>
+<ul>
+ <li><strong>PAGE SETUP</strong>
+ <ul>
+ <li><a href="#INTRO_SETUP">Introduction to Page Setup</a>
+ <li><a href="#INDEX_SETUP">List of macros</a>
+ </ul>
+ <li><strong>BASIC TYPESETTING PARAMETERS</strong>
+ <ul>
+ <li><a href="#INTRO_BASIC_PARAMS">Introduction to Basic Parameters</a>
+ <li><a href="#INDEX_BASIC">List of macros</a>
+ </ul>
+ <li><strong>JUSTIFYING, QUADDING, FILLING, BREAKING LINES</strong>
+ <ul>
+ <li><a href="#INTRO_JUST_QUAD_FILL">Introduction to justify, quad, fill, break</a>
+ <li><a href="#INDEX_JUST">List of macros</a>
+ </ul>
+ <li><strong>TYPOGRAPHIC REFINEMENTS</strong>
+ <ul>
+ <li><a href="#INTRO_REFINEMENTS">Introduction to typographic refinements</a>
+ <li><a href="#INDEX_REFINEMENTS">List of macros</a>
+ </ul>
+ <li><strong>TYPE MODIFICATIONS -- pseudo italic, bold, condense, extend</strong>
+ <ul>
+ <li><a href="#INTRO_MODIFICATIONS">Introduction to type modifications</a>
+ <li><a href="#INDEX_MODIFICATIONS">List of macros</a>
+ </ul>
+ <li><strong>VERTICAL MOVEMENTS</strong>
+ <ul>
+ <li><a href="#INTRO_ALDRLD">Introduction to vertical movements</a>
+ <li><a href="#INDEX_ALDRLD">List of macros</a>
+ </ul>
+ <li><strong>TABS</strong>
+ <ul>
+ <li><a href="#INTRO_TABS">Introduction to tabs</a>
+ <li><a href="#TYPESETTING_TABS">Typesetting tabs</a>
+ <li><a href="#STRING_TABS">String tabs</a>
+ <li><a href="#INDEX_TABS">List of macros</a>
+ </ul>
+ <li><strong>MULTI-COLUMNS</strong>
+ <ul>
+ <li><a href="#INTRO_MULTI_COLUMNS">Introduction to multi-columns</a>
+ <li><a href="#INDEX_MULTI_COLUMNS">List of macros</a>
+ </ul>
+ <li><strong>INDENTS</strong>
+ <ul>
+ <li><a href="#INTRO_INDENTS">Introduction to indents</a>
+ <li><a href="#INDEX_INDENTS">List of macros</a>
+ </ul>
+ <li><strong>GOODIES</strong>
+ <ul>
+ <li><a href="goodies.html#INTRO_GOODIES">Introduction to goodies</a>
+ <li><a href="goodies.html#INDEX_GOODIES">List of macros</a>
+ </ul>
+ <li><strong>INLINE ESCAPES</strong>
+ <ul>
+ <li><a href="inlines.html#INLINE_ESCAPES_INTRO">Introduction to inline escapes</a>
+ <li><a href="inlines.html#INDEX_INLINES">List of inline escapes</a>
+ </ul>
+</ul>
+<hr>
+
+<h2><a name="INTRO_MACROS_TYPESETTING"><u>Introduction to the typesetting macros</u></a></h2>
+
+<strong>Mom</strong>'s typesetting macros provide access to
+groff's typesetting capabilities. Aside from controlling basic
+type parameters (family, font, line length, point size, leading),
+<strong>mom</strong>'s macros fine-tune wordspacing, letterspacing,
+kerning, hyphenation, and so on. In addition, <strong>mom</strong>
+has true typesetting tabs, string tabs, multiple indent styles,
+line padding, and a batch of other goodies.
+<p>
+In some cases, <strong>mom</strong>'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 <strong>mom</strong>.
+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 <strong>mom</strong>, stay away from groff
+primitives if <strong>mom</strong> provides a macro that accomplishes
+the same thing.
+<p>
+<strong>Mom</strong>'s typesetting macros can be used as a standalone
+package, independent of the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+With them, you can typeset on-the-fly. Document covers, your best
+friend's résumé, a poster for a lost dog -- none of these requires
+structured document processing (page headers, paragraphs, heads,
+footnotes, etc). What they do demand is precise control over every
+element on the page. The typesetting macros give you that control.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_SETUP"></a>
+
+<a name="PAGE_MARGINS">
+ <h2><u>Page setup: paper size and page margins</u></h2>
+</a>
+
+The page setup macros establish the physical dimensions of your
+page and the margins you want it to have. <strong>Groff</strong>
+has defaults for these, but I recommend setting them at the top
+of your files anyway unless you're using <strong>mom</strong>'s
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
+and are content with her defaults.
+<p>
+The
+<a href="#PAPER">PAPER</a>
+macro provides a shortcut for setting the page to the correct
+dimensions for letter, legal, and A4 printer sheets. 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.
+<br>
+
+<a name="INDEX_SETUP">
+ <h3><u>Page setup macros list</u></h3>
+</a>
+
+<ul>
+ <li><a href="#PAGEWIDTH">PAGEWIDTH</a> (page width)
+ <li><a href="#PAGELENGTH">PAGELENGTH</a> (page length)
+ <li><a href="#PAPER">PAPER</a> (common paper sizes)
+ <li><a href="#L_MARGIN">L_MARGIN</a> (left margin)
+ <li><a href="#R_MARGIN">R_MARGIN</a> (right margin)
+ <li><a href="#T_MARGIN">T_MARGIN</a> (top margin)
+ <li><a href="#B_MARGIN">B_MARGIN</a> (bottom margin)
+ <li><a href="#PAGE">PAGE</a> (page dimensions and margins all in one fell swoop)
+ <li><a href="#NEWPAGE">NEWPAGE</a> (start a new page)
+</ul>
+
+<!---PAGEWIDTH--->
+
+<hr width="66%" align="left">
+ <a name="PAGEWIDTH"><h3><u>Page width</u></h3></a>
+<br>
+Macro: <strong>PAGEWIDTH</strong> <var>&lt;width of printer sheet&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+The argument to <strong>PAGEWIDTH</strong> is the width of your
+printer sheet. <strong>PAGEWIDTH</strong> requires a unit of measure.
+Decimal fractions are allowed. Hence, to tell <strong>mom</strong>
+the width of your printer sheet is 8-1/2 inches, you enter
+<p>
+<pre>
+ .PAGEWIDTH 8.5i
+</pre>
+
+<!---PAGELENGTH--->
+
+<hr width="66%" align="left">
+ <a name="PAGELENGTH"><h3><u>Page length</u></h3></a>
+<br>
+Macro: <strong>PAGELENGTH</strong> <var>&lt;length of printer sheet&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>PAGELENGTH</strong> tells <strong>mom</strong> how long your
+printer sheet is. It works just like
+<strong>PAGEWIDTH</strong>. Therefore, to tell
+<strong>mom</strong> your printer sheet is 11 inches long, you
+enter
+<p>
+<pre>
+ .PAGELENGTH 11i
+</pre>
+
+<!---PAPER--->
+
+<hr width="66%" align="left">
+ <a name="PAPER"><h3><u>Paper</u></h3></a>
+<br>
+Macro: <strong>PAPER</strong> <var>&lt;paper type&gt;</var>
+
+<p>
+<strong>PAPER</strong> provides a convenient way to set the page
+dimensions for some common printer sheet sizes. <var>&lt;paper
+type&gt;</var> can be one of:
+<p>
+<pre>
+ LETTER
+ LEGAL
+ STATEMENT
+ TABLOID
+ LEDGER
+ FOLIO
+ QUARTO
+ 10x14
+ EXECUTIVE
+ A3
+ A4
+ A5
+ B4
+ B5
+</pre>
+
+Say, for example, you have A4-sized sheets in your printer.
+It's shorter (and easier) to enter
+<p>
+<pre>
+ .PAPER A4
+</pre>
+
+than to remember the correct dimensions and enter
+<p>
+<pre>
+ .PAGEWIDTH 595p
+ .PAGELENGTH 842p
+</pre>
+
+<!---L_MARGIN--->
+
+<hr width="66%" align="left">
+ <a name="L_MARGIN"><h3><u>Left margin</u></h3></a>
+<br>
+Macro: <strong>L_MARGIN</strong> <var>&lt;left margin&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>L_MARGIN</strong> establishes the distance from the left edge
+of the printer sheet at which you want your type to start. It may
+be used any time, and remains in effect until you enter a new value.
+<p>
+<a href="#IL">Left indents</a>
+and
+<a href="#TABS">tabs</a>
+are calculated from the value you pass to <strong>L_MARGIN</strong>,
+hence it's always a good idea to invoke it before starting any serious
+typesetting. A unit of measure is required. Decimal fractions are
+allowed. Therefore, to set the left margin at 3 picas (1/2 inch),
+you'd enter either
+<p>
+<pre>
+ .L_MARGIN 3P
+ &nbsp;&nbsp;or
+ .L_MARGIN .5i
+</pre>
+
+If you use the macros
+<a href="#PAGE">PAGE</a>,
+<a href="#PAGEWIDTH">PAGEWIDTH</a>
+or
+<a href="#PAPER">PAPER</a>
+without invoking <strong>L_MARGIN</strong> (either before
+or afterwards), <strong>mom</strong> automatically sets
+</strong>L_MARGIN</strong> to 1 inch.
+<p>
+<strong>NOTE:</strong> L_MARGIN behaves in a special way when you're
+using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+See
+<a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
+for an explanation.
+<br>
+
+<!---R_MARGIN--->
+
+<hr width="66%" align="left">
+ <a name="R_MARGIN"><h3><u>Right margin</u></h3></a>
+<br>
+Macro: <strong>R_MARGIN</strong> <var>&lt;right margin&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>R_MARGIN</strong> 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.
+<strong>R_MARGIN</strong> requires a unit of measure. Decimal
+fractions are allowed.
+<p>
+The <a href="#LINELENGTH">line length macro</a> (<strong>LL</strong>) can
+be used in place of <strong>R_MARGIN</strong>. 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>
+For example, if you'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:
+<p>
+<pre>
+ .L_MARGIN 6P
+ .R_MARGIN 6P
+</pre>
+
+That way, you don'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 <strong>LL</strong> is much easier than calculating the
+right margin.
+<p>
+<pre>
+ .LL 17P+3p
+</pre>
+
+If you use the macros
+<a href="#PAGE">PAGE</a>,
+<a href="#PAGEWIDTH">PAGEWIDTH</a>
+or
+<a href="#PAPER">PAPER</a>
+without invoking <strong>R_MARGIN</strong> afterwards,
+<strong>mom</strong> automatically sets <strong>R_MARGIN</strong>
+to 1 inch. If you set a line length after these macros (with
+<a href="#LINELENGTH">LL</a>),
+the line length calculated by <strong>R_MARGIN</strong> is, of course,
+overridden.
+<p>
+<strong>IMPORTANT: R_MARGIN</strong>, 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't given to <strong>PAGE</strong>).
+The reason is that <strong>R_MARGIN</strong> calculates line
+length from the overall page dimensions and the left margin.
+Obviously, it can't make the calculation if it doesn't know the page
+width and the left margin.
+<p>
+<strong>NOTE:</strong> R_MARGIN behaves in a special way
+when you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+See
+<a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
+for an explanation.
+<br>
+
+<!---T_MARGIN--->
+
+<hr width="66%" align="left">
+ <a name="T_MARGIN"><h3><u>Top margin</u></h3></a>
+<br>
+Macro: <strong>T_MARGIN</strong> <var>&lt;top margin&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>T_MARGIN</strong> 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 centimeters, you'd enter
+<p>
+<pre>
+ .T_MARGIN 2.5c
+</pre>
+
+<strong>T_MARGIN</strong> 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#TERMS_BASELINE">baseline</a>. Therefore,
+<p>
+<pre>
+ .T_MARGIN 1.5i
+</pre>
+
+puts the baseline of the first line of type 1-1/2 inches beneath
+the top of the page.
+<p>
+<strong>IMPORTANT:</strong> <strong>T_MARGIN</strong> does two
+things: it establishes the top margin for pages that come after
+it AND it moves to that position on the current page. Therefore,
+<strong>T_MARGIN</strong> should only be used at the top of a file
+(prior to entering text) or after
+<a href="#NEWPAGE">NEWPAGE</a>,
+like this:
+<p>
+<pre>
+ .NEWPAGE
+ .T_MARGIN 6P
+ &lt;text&gt;
+</pre>
+
+<strong>NOTE:</strong> <strong>T_MARGIN</strong> means something
+slightly different when you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+See
+<a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>
+for an explanation.
+<br>
+
+<!---B_MARGIN--->
+
+<hr width="66%" align="left">
+ <a name="B_MARGIN"><h3><u>Bottom margin</u></h3></a>
+<br>
+Macro: <strong>B_MARGIN</strong> <var>&lt;bottom margin&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>B_MARGIN</strong> sets a nominal position at the bottom
+of the page beyond which you don't want your type to go. When the
+bottom margin is reached, <strong>mom</strong> starts a new page.
+<strong>B_MARGIN</strong> requires a unit of measure. Decimal
+fractions are allowed. To set a nominal bottom margin of 3/4 inch,
+enter
+<p>
+<pre>
+ .B_MARGIN .75i
+</pre>
+
+Obviously, if you haven'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 <em>before</em> the bottom margin causes
+<strong>mom</strong> to start a new page.
+<p>
+Occasionally, owing to a peculiarity in <strong>groff</strong>,
+an extra line will fall below the nominal bottom margin. If you'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>
+<strong>NOTE:</strong> The meaning of <strong>B_MARGIN</strong> is
+slightly different when you're using the document processing macros.
+See
+<a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>
+for an explanation.
+<br>
+
+<!---PAGE--->
+
+<hr width="66%" align="left">
+ <a name="PAGE"><h3><u>Page</u></h3></a>
+<br>
+Macro: <strong>PAGE</strong>
+<var>&lt;width&gt;&nbsp;[ &lt;length&gt; [ &lt;lm&gt; [ &lt;rm&gt; [ &lt;tm&gt; [ &lt;bm&gt; ] ] ] ] ]</var>
+<br>
+<em>*All arguments require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>PAGE</strong> lets you establish paper dimensions and page
+margins with a single macro. The only required argument is page width.
+The rest are optional, <strong>but they must appear in order and you can't
+skip over any.</strong> <var>&lt;lm&gt;, &lt;rm&gt;, &lt;tm&gt;</var>
+and <var>&lt;bm&gt;</var> refer to the left, right, top and bottom
+margins respectively.
+<p>
+Assuming your page dimensions are 11 inches by 17 inches, and that's
+all you want to set, enter
+<p>
+<pre>
+ .PAGE 11i 17i
+</pre>
+
+If you want to set the left margin as well, say, at 1 inch,
+<strong>PAGE</strong> would look like this:
+<p>
+<pre>
+ .PAGE 11i 17i 1i
+</pre>
+
+Now suppose you also want to set the top margin, say, at 1-1/2
+inches. <var>&lt;tm&gt;</var> comes after <var>&lt;rm&gt;</var>
+in the optional arguments, but you can't skip over any arguments,
+therefore to set the top margin, you must also give a right margin.
+The <strong>PAGE</strong> macro would look like this:
+<p>
+<pre>
+ .PAGE 11i 17i 1i 1i 1.5i
+ | |
+ required right___| |___top margin
+ margin
+</pre>
+
+Clearly, <strong>PAGE</strong> is best used when you want a convenient
+way to tell <strong>mom</strong> 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
+<p>
+<pre>
+ .PAGE 8.5i 11i 45p 45p 45p 45p
+</pre>
+
+This sets up an 8-1/2 by 11 inch page with margins of 45 points
+(5/8-inch) all around.
+<p>
+<strong>NOTE:</strong> Only use <strong>PAGE</strong> at the
+start of a document, before entering any text. And remember,
+when you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>,
+top margin and bottom margin mean something slightly different than
+when you're using just the typesetting macros (see
+<a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>).
+<p>
+Additionally, if you invoke <strong>PAGE</strong> with a top margin
+argument, any macros you invoke after <strong>PAGE</strong> will
+almost certainly move the
+<a href="definitions.html#TERMS_BASELINE">baseline</a>
+of the first line of text down by one linespace. To compensate, do
+<p>
+<pre>
+ .RLD 1v
+</pre>
+
+immediately before entering any text, or, if it's feasible, make
+<strong>PAGE</strong> the last macro you invoke prior to entering text.
+<br>
+
+<!---NEWPAGE--->
+
+<hr width="66%" align="left">
+<a name="NEWPAGE"><h3><u>Start a new page</u></h3></a>
+<br>
+Macro: <strong>NEWPAGE</strong>
+
+<p>
+Whenever you want to start a new page, use <strong>NEWPAGE</strong>, by
+itself with no argument. <strong>Mom</strong> 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>
+<strong>Experts:</strong> <strong>NEWPAGE</strong> is an alias of
+<strong>.bp</strong>. You can use either, or mix 'n' match with
+impunity.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_BASIC_PARAMS"></a>
+
+<a name="BASIC_PARAMS">
+ <h2><u>Basic Typesetting Parameters</u></h2>
+</a>
+
+Basic parameter macros deal with the fundamental requirements
+for setting type: family, font, point size, leading and line length.
+<p>
+If you'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="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
+for an explanation.
+<br>
+
+<a name="INDEX_BASIC"><h3><u>Basic parameter macros list</u></h3></a>
+<ul>
+ <li><a href="#FAMILY">FAMILY</a> (type family)
+ <li><a href="#FONT">FONT</a> (font)
+ <li><a href="#PS">PS</a> (point size of type)
+ <li><a href="#LEADING">LS</a> (line spacing/leading)
+ <li><a href="#AUTOLEAD">AUTOLEAD</a> (automatic line spacing)
+ <li><a href="#LINELENGTH">LL</a> (line length)
+</ul>
+
+<!---FAMILY--->
+
+<hr width="66%" align="left">
+<a name="FAMILY"><h3><u>Type family</u></h3></a>
+<br>
+Macro: <strong>FAMILY</strong> <var>&lt;family&gt;</var>
+<br>
+Alias: <strong>FAM</strong>
+
+<p>
+<strong>FAMILY</strong> takes one argument: the name of the type family
+you want. Groff comes with a number of PostScript families, each
+identified by a 1-, 2- or 3-letter mnemonic. The standard families
+are:
+<table valign="baseline" summary="family">
+<tr><td width="15"><td><strong>A</strong><td>Avant Garde
+<tr><td><td><strong>BM</strong> <td>Bookman
+<tr><td><td><strong>H</strong><td>Helvetica
+<tr><td><td><strong>N</strong><td>New Century Schoolbook
+<tr><td><td><strong>P</strong><td>Palatino
+<tr><td><td><strong>T</strong><td>Times Roman</td></tr>
+</table>
+<p>
+The argument you pass to <strong>FAMILY</strong> is the identifier at
+left above. For example, if you want Helvetica, enter
+<p>
+<pre>
+ .FAMILY H
+</pre>
+
+<strong>NOTE:</strong> The <a href="#FONT">font macro</a>
+(<strong>FT</strong>) lets you to specify both the type family
+and the desired font with a single macro. While this saves a few
+keystrokes, I recommend using <strong>FAMILY</strong> for family,
+and <strong>FT</strong> for font, except where doing so is genuinely
+inconvenient.
+<p>
+<strong>Experts:</strong>
+<br>
+If you add other PostScript families to groff's /font/devps directory,
+be sure to follow the groff standard for naming families and fonts.
+For example, if you add the Garamond family, name the font files
+<p>
+<pre>
+ GARAMONDR
+ GARAMONDI
+ GARAMONDB
+ GARAMONDBI
+</pre>
+
+GARAMOND then becomes a legal family name you can pass to
+<strong>FAMILY</strong>. (You could, of course, shorten GARAMOND to just
+G, or GD.) R, I, B, and BI after GARAMOND are the roman, italic,
+bold and bold-italic fonts respectively.
+<br>
+
+<!---FT--->
+
+<hr width="66%" align="left">
+<a name="FONT"><h3><u>Font</u></h3></a>
+<br>
+Macro: <strong>FT</strong> <var>R | I | B | BI</var>
+
+<p>
+<strong>FT</strong> takes one of four possible arguments specifying the
+desired font:
+<table valign="baseline" summary="font">
+<tr><td width="15"><td><strong>R</strong><td> = <td>roman
+<tr><td><td><strong>I</strong><td> = <td>italic
+<tr><td><td><strong>B</strong><td> = <td>bold
+<tr><td><td><strong>BI</strong><td> = <td>bold-italic</td></tr>
+</table>
+<p>
+For example, if your family is Helvetica, entering
+<p>
+<pre>
+ .FT B
+</pre>
+
+will give you the Helvetica bold font. If your family were
+Palatino, you'd get the Palatino bold font.
+<p>
+You can specify both family and font in the <strong>FT</strong> macro.
+As an example,
+<p>
+<pre>
+ .FT HB
+</pre>
+
+sets the font to Helvetica bold. I strongly recommend keeping
+family and font separate.
+<p>
+Fonts can also be changed inline. See
+<a href="inlines.html#INLINE_FONTS_MOM">Inline Escapes, font control</a>.
+<br>
+
+<!---PS--->
+
+<hr width="66%" align="left">
+<a name="PS"><h3><u>Point size of type</u></h3></a>
+<br>
+Macro: <strong>PS</strong> <var>&lt;size of type in points&gt;</var>
+<br>
+<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>PS</strong> (Point Size) takes one argument: the size of type
+in points. Unlike most other macros that establish the size or measure
+of something, <strong>PS</strong> does not require that you supply a
+unit of measure since it's a near universal convention that type size
+is measured in points. Therefore, to change the type size to, say,
+11 points, enter
+<p>
+<pre>
+ .PS 11
+</pre>
+
+Point sizes may be fractional (e.g. 10.25 or 12.5).
+<p>
+You can prepend a plus or a minus sign to the argument to
+<strong>PS</strong>, 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
+<p>
+<pre>
+ .PS +2
+</pre>
+
+then later reset it to 12 with
+<p>
+<pre>
+ .PS -2
+</pre>
+
+The size of type can also be changed inline. See
+<a href="inlines.html#INLINE_SIZE_MOM">Inline Escapes, changing point size</a>.
+<br>
+
+<!---LS--->
+
+<hr width="66%" align="left">
+<a name="LEADING"><h3><u>Line spacing/leading</u></h3></a>
+<br>
+Macro: <strong>LS</strong> <var>&lt;distance between lines&gt;</var>
+<br>
+<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>LS</strong> (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 <strong>PS</strong>,
+<strong>LS</strong> does not require a unit of measure, since
+<a href="definitions.html#TERMS_LEADING">leading</a>
+is most often given in points. Therefore, to set the linespace to
+14 points, you would enter
+<p>
+<pre>
+ .LS 14
+</pre>
+
+However, if you wish, you may specify a unit of measure by appending
+it directly to the argument passed to <strong>LS</strong>. For example,
+if you want a linespace of 1/4 of an inch, enter
+<p>
+<pre>
+ .LS .25i
+</pre>
+
+You can prepend a plus or a minus sign to the argument to
+<strong>LS</strong>, 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
+<p>
+<pre>
+ .LS +3
+</pre>
+
+then later reset it to 14 points with
+<p>
+<pre>
+ .LS -3
+</pre>
+
+<strong>Experts:</strong>
+<br>
+<strong>LS</strong> should not be confused with the groff primitive
+<strong>ls</strong>. <strong>LS</strong> acts like <strong>vs</strong>.
+<strong>mom</strong> does not provide a macro analogous to
+<strong>ls</strong>.
+<br>
+
+<!---AUTOLEAD--->
+
+<hr width="66%" align="left">
+<a name="AUTOLEAD"><h3><u>Automatic line spacing</u></h3></a>
+<br>
+Macro: <strong>AUTOLEAD</strong> <var>&lt;amount of automatic leading&gt; [FACTOR]</var>
+<br>
+<em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+Without the <strong>FACTOR</strong> argument, <strong>AUTOLEAD</strong>
+calculates the linespace for you by adding its argument to the
+current point size of type. All subsequent <strong>PS</strong>
+requests automatically update the linespacing by the autolead amount.
+<p>
+Used in this way, <strong>AUTOLEAD</strong> 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>
+As an example, if your current point size of type is 12, entering
+<p>
+<pre>
+ .AUTOLEAD 2
+</pre>
+
+changes the linespace to 14 points, regardless any linespacing
+already in effect. From here on, every change to the size of type
+(with <strong>PS</strong>, not
+<a href="definitions.html#TERMS_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>
+Automatic updating of the linespacing continues until you enter a
+&quot;manual&quot; line space value with <strong>LS</strong>.
+<p>
+If you give <strong>AUTOLEAD</strong> the optional
+<strong>FACTOR</strong> argument, <strong>AUTOLEAD</strong>
+calculates the line space as a factor of the
+<a href="definitions.html#TERMS_NUMERICARGUMENT">numeric argument</a>
+you gave <strong>AUTOLEAD</strong>. For example, if your point
+size is 12,
+<p>
+<pre>
+ .AUTOLEAD 1.125 FACTOR
+</pre>
+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>
+<strong>NOTE:</strong> There's no need to prepend a plus sign (+)
+to <strong>AUTOLEAD</strong>'s argument, although you may do so if you
+wish.
+<br>
+
+<!---LL--->
+
+<hr width="66%" align="left">
+<a name="LINELENGTH"><h3><u>Line length</u></h3></a>
+<br>
+Macro: <strong>LL</strong> <var>&lt;line length&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>LL</strong> (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>
+<strong>LL</strong> requires a unit of measure. Therefore, to set the line
+length to 39 picas, you would enter
+<p>
+<pre>
+ .LL 39P
+</pre>
+
+As with other macros that require a unit of measure, the argument to
+<strong>LL</strong> may be fractional. For example,
+<p>
+<pre>
+ .LL 4.5i
+</pre>
+
+sets the line length to 4-1/2 inches.
+
+<p>
+<strong>NOTE:</strong> The <a href="#R_MARGIN">right margin
+macro</a> (<strong>R_MARGIN</strong>) can also be used to set line
+length.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_JUST_QUAD_FILL"></a>
+
+<a name="JUST_QUAD_FILL">
+ <h2><u>Justifying, quadding, filling and breaking lines</u></h2>
+</a>
+
+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
+(centered).
+<p>
+These macros also determine whether or not
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a> are joined and
+<a href="definitions.html#TERMS_FILLED">filled</a> during output.
+<p>
+Additionally, macros that deal with how to break
+<a href="definitions.html#TERMS_OUTPUTLINE">output lines</a> are covered in this
+section, as is the
+<a href="definitions.html#TERMS_INLINES">inline escape</a> for joining output lines.
+<p>
+You may encounter some words here that are unfamiliar. Refer to
+<a href="definitions.html#TERMS_TYPESETTING">Typesetting terms</a> and
+<a href="definitions.html#TERMS_GROFF">Groff terms</a> for an explanation.
+
+<a name="INDEX_JUST"><h3><u>Justification, quad, fill, and break macro list</u></h3></a>
+
+<ul>
+ <li><strong>Fill modes</strong>
+ <ul>
+ <li><a href="#JUSTIFY">JUSTIFY</a> (set lines justified)
+ <li><a href="#QUAD">QUAD</a> (set filled lines flush left, right or centered)
+ </ul>
+ <li><strong>Nofill modes</strong>
+ <ul>
+ <li><a href="#LRC">LEFT</a> (set non-filled lines flush left)
+ <li><a href="#LRC">RIGHT</a> (set non-filled lines flush right)
+ <li><a href="#LRC">CENTER</a> (set non-filled lines centered)
+ </ul>
+ <li><strong>Breaking lines</strong>
+ <ul>
+ <li><a href="#BR">BR</a> (manually break an output line)
+ <li><a href="#EL">EL</a> (break a line without advancing to the next output line)
+ <li><a href="#SPACE">SPACE</a> (break a line and add space before the next output line)
+ <li><a href="#SPREAD">SPREAD</a> (break and force-justify an output line)
+ </ul>
+ <li><strong>Joining lines</strong>
+ <ul>
+ <li><a href="#JOIN">\c</a> inline escape
+ </ul>
+</ul>
+
+<!---JUSTIFY--->
+
+<hr width="66%" align="left">
+<a name="JUSTIFY"><h3><u>Justify lines</u></h3></a>
+<br>
+Macro: <strong>JUSTIFY</strong>
+<br>
+<a href="definitions.html#TERMS_FILLED"><em>Fill mode</em></a>
+
+<p>
+<strong>JUSTIFY</strong> doesn't take an argument.
+<a href="definitions.html#TERMS_INPUTLINE">Input lines</a>
+after <strong>JUSTIFY</strong> are
+<a href="definitions.html#TERMS_FILLED">filled</a> and
+<a href="definitions.html#TERMS_JUST">justified</a>
+upon output.
+<p>
+To break lines and prevent them from being filled and justified,
+use the
+<a href="#BR">BR</a> macro.
+<br>
+
+<!---QUAD--->
+
+<hr width="66%" align="left">
+<a name="QUAD"><h3><u>Quad lines left, right, or center</u></h3></a>
+<br>
+Macro: <strong>QUAD</strong> <var>L | LEFT | R | RIGHT | C | CENTER | J | JUSTIFY</var>
+<br>
+Alias: <strong>FILL</strong>
+<br>
+<a href="definitions.html#TERMS_FILLED"><em>Fill mode</em></a>
+
+<p>
+<strong>QUAD</strong> takes one argument: the direction in which lines
+should be
+<a href="definitions.html#TERMS_QUAD">quadded</a>.
+<a href="definitions.html#TERMS_INPUTLINE">Input lines</a>
+after <strong>QUAD</strong> are
+<a href="definitions.html#TERMS_FILLED">filled</a>
+upon output.
+<p>
+If <strong>L</strong> or <strong>LEFT</strong>, type is set flush
+along the left margin.
+<p>
+If <strong>R</strong> or <strong>RIGHT</strong>, type is
+set flush along the right margin.
+<p>
+If <strong>C</strong> or <strong>CENTER</strong> type is set centered
+on the current line length.
+<p>
+<strong>J</strong> and <strong>JUSTIFY</strong> justify text,
+and are included as a convenience only. Obviously, if text is
+justified, it isn't quadded. <strong>QUAD J</strong> and
+<strong>QUAD JUSTIFY</strong> have exactly the same effect as <a
+href="#JUSTIFY">JUSTIFY</a>.
+<p>
+To break lines and prevent them from being filled, use the
+<a href="#BR">BR</a> macro.
+<br>
+
+<!---LEFT, RIGHT, CENTER--->
+
+<hr width="66%" align="left">
+<a name="LRC"><h3><u>Set non-filled lines flush left, right, or centered</u></h3></a>
+<br>
+Macro: <strong>LEFT</strong>
+&nbsp;&nbsp;Macro: <strong>RIGHT</strong>
+&nbsp;&nbsp;Macro: <strong>CENTER</strong>
+&nbsp;(alias <strong>CENTRE</strong>)
+<br>
+<a href="definitions.html#TERMS_NOFILL"><em>Nofill mode</em></a>
+
+<p>
+<strong>LEFT</strong>, <strong>RIGHT</strong> and
+<strong>CENTER</strong> 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:
+<p>
+<pre>
+ .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
+</pre>
+
+Because text after <strong>QUAD</strong> is
+<a href="definitions.html#TERMS_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's awkward to read in a text editor. Much better
+to do
+<p>
+<pre>
+ .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.
+</pre>
+
+<strong>IMPORTANT:</strong> Because <strong>LEFT</strong>,
+<strong>RIGHT</strong> and <strong>CENTER</strong> are nofill
+modes, groff does not always respect the current line length.
+<a href="definitions.html#TERMS_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.
+<br>
+
+<!---BR--->
+
+<hr width="66%" align="left">
+<a name="BR"><h3><u>Manually break lines</u></h3></a>
+<br>
+Macro: <strong>BR</strong>
+
+<p>
+When using <strong>JUSTIFY</strong> or <strong>QUAD</strong>,
+<strong>BR</strong> tells <strong>mom</strong> about partial lines
+that you want broken (as opposed to
+<a href="definitions.html#TERMS_FILLED">filled</a>).
+Any partial
+<a href="definitions.html#TERMS_OUTPUTLINE">output line</a>
+that immediately precedes <strong>BR</strong> will be
+<a href="definitions.html#TERMS_QUAD">quadded</a>
+in the direction of the current quad, or set flush left if text is
+<a href="definitions.html#TERMS_JUST">justified</a>.
+
+<p>
+Most of the time, you won't need the <strong>BR</strong> macro.
+In fill modes, <strong>mom</strong> tries to be sensible about
+where breaks are needed. If the nature of a macro is such that under
+most circumstances you'd expect a break, <strong>mom</strong> puts
+it in herself. Equally, in macros where a break isn't normally
+desirable, no break occurs. This means text files don't get cluttered
+with annoying <strong>BR</strong>'s.
+<p>
+<strong>NOTE:</strong> Lines of text in
+<a href="definitions.html#TERMS_NOFILL">nofill mode</a>
+never require a <strong>BR</strong>. Furthermore, in nofill mode,
+ALL macros cause a break. If a break is not desired, use the
+<a href="#JOIN">\c</a>
+<a href="definitions.html#TERMS_INLINES">inline escape</a>.
+
+<p>
+<strong>Experts: BR</strong> is an alias for <strong>br</strong>.
+You can use either, or mix 'n' match with impunity.
+<br>
+
+<!---EL--->
+
+<hr width="66%" align="left">
+<a name="EL"><h3><u>Manually break a line without advancing on the page</u></h3></a>
+<br>
+Macro: <strong>EL</strong>
+
+<p>
+The mnemonic "EL" is borrowed from old Compugraphic typesetting
+systems, where it stood for "End Line." Conceptually,
+<strong>EL</strong> is equivalent to the notion of a carriage return
+with no linefeed.
+
+<p>
+Every once in a while, the need arises for breaking a line without
+advancing on the page. Imagine, for example, that you'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
+<strong>EL</strong> and instruct <strong>mom</strong> to advance 24
+points to the next line, rather than calculating the lead that needs
+to be added to 12.5 to get 24. To demonstrate:
+<p>
+<pre>
+ .LS 12.5
+ A line of text.
+ .EL
+ .ALD 24p
+ The next line of text.
+</pre>
+
+may be more instuitive than
+<p>
+<pre>
+ .LS 12.5
+ A line of text.
+ .ALD 11.5p
+ The next line of text.
+</pre>
+
+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't have to recalculate the extra space.
+<p>
+"ALD" in the above examples stands for "<strong>A</strong>dvance
+<strong>L</strong>ea<strong>D</strong>" (another mnemonic borrowed
+from Compugraphic), which is covered in the section
+<a href="#ALDRLD">Vertical movement</a>.
+<p>
+<strong>IMPORTANT:</strong>
+<strong>EL</strong> does not work as advertised on the last
+<a name="TERMS_OUTPUTLINE">output line</a>
+of pages that contain a footer trap (e.g. one set with
+<a href="#B_MARGIN">B_MARGIN</a>
+or in documents formatted using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>).
+The reason is that the <strong>EL</strong> macro itself deposits
+a line break that trips the trap (hey, I like that --
+&quot;trips the trap&quot;), and once the trap has been sprung,
+<strong>mom</strong> can't recover. She places the line after
+the <strong>EL</strong> on the next page.
+<p>
+If you need <strong>EL</strong> functionality on the last line of
+a page with a footer trap, turn the trap off with
+<a href="goodies.html#TRAP">TRAP</a>,
+as in this example:
+<p>
+<pre>
+ 3.
+ .TRAP OFF
+ .EL
+ .TRAP
+ \*[FP12]Establish, once and for all, if 42 really is the answer.
+</pre>
+
+The above looks something like this upon output:
+<p>
+<pre>
+ 3. Establish, once and for all, if 42 really is the answer.
+</pre>
+
+with &quot;3.&quot; flush at the left margin, and &quot;Establish,
+once and for all...&quot; on the same line as &quot;3.&quot; but
+starting 12 points in from the left margin.
+<p>
+If you hadn't turned the trap off for <kbd>.EL</kbd>,
+&quot;3.&quot; would have appeared at the bottom of the page by
+itself, with &quot;Establish, once and for all...&quot;
+appearing at the top of the next page.
+<br>
+
+<!---SP--->
+
+<hr width="66%" align="left">
+<a name="SPACE"><h3><u>Break lines and add space between</u></h3></a>
+<br>
+Macro: <strong>SPACE</strong> <var>&lt;space to add between lines&gt;</var>
+<br>
+Alias: <strong>SP</strong>
+
+<p>
+<strong>SPACE</strong> breaks a line, just like
+<strong>BR</strong>, 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#TERMS_UNITOFMEASURE">unit of measure</a>,
+it advances that number of extra line spaces. For example:
+<p>
+<pre>
+ .SPACE
+</pre>
+
+breaks the line then adds an extra linespace, whereas
+<p>
+<pre>
+ .SPACE 2
+</pre>
+
+breaks the line and adds two extra linespaces.
+
+<p>
+If you supply a unit of measure, <strong>SPACE</strong> breaks the
+line then adds the specified amount of extra space to the current
+linespace, as in
+<p>
+<pre>
+ .SPACE 6p
+</pre>
+
+which breaks the line then adds six points of space to the current
+linespace.
+
+<p>
+<strong>SUGGESTION: SPACE</strong> and
+<a href="#ALD">ALD</a>
+can be used interchangeably (<code>.SPACE&nbsp;6p</code> and
+<code>.ALD&nbsp;6p</code> are equivalent). However,
+<strong>ALD</strong> without an argument does nothing, whereas
+<strong>SPACE</strong> without an argument adds an extra line
+space. I recommend using <strong>SPACE</strong> when you
+want an extra line space (or multiple thereof), and
+<strong>ALD</strong> whenever you want some other value of space
+after a line.
+
+<p>
+<strong>Experts: SPACE</strong> is an alias of <strong>sp</strong>.
+You can use either, or mix 'n' match with impunity.
+<br>
+
+<!---SPREAD--->
+
+<hr width="66%" align="left">
+<a name="SPREAD"><h3><u>Break and force justify (spread) lines</u></h3></a>
+<br>
+Macro: <strong>SPREAD</strong>
+
+<p>
+Sometimes, you need to break a line of
+<a href="definitions.html#TERMS_JUST">justified</a>
+text and have it come out fully justified, not
+<a href="definitions.html#TERMS_QUAD">quadded</a>
+left the way it would be with the <strong>BR</strong> macro.
+An example of where you'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).
+<strong>SPREAD</strong> is the macro that lets you break the line
+and have it came out fully justified.
+
+<p>
+<strong>Experts: SPREAD</strong> is an alias for <strong>brp</strong>.
+You can use either, or mix 'n' match with impunity.
+<br>
+
+<!---JOIN--->
+
+<hr width="66%" align="left">
+<a name="JOIN"><h3><u>Join input lines</u></h3></a>
+<br>
+Inline: <strong>\c</strong>
+
+<p>
+Sometimes, especially when in one of the
+<a href="definitions.html#TERMS_NOFILL">nofill modes</a>,
+a macro will cause a break where you don't want one. In order
+to prevent this from happening (in other words, to join
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a>
+together, forming one
+<a href="definitions.html#TERMS_OUTPUTLINE">output line</a>),
+use the groff
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<strong>\c</strong> at the end of each input line to
+be joined to another, like this:
+<p>
+<pre>
+ .LEFT
+ .FAMILY T
+ .FT R
+ Some lines of text to be \c
+ .FAMILY H
+ .FT B
+ joined \c
+ .FAMILY T
+ .FT R
+ together.
+</pre>
+
+Upon output, the lines will be joined together to read
+<p>
+<pre>
+ Some lines of text to be joined together.
+</pre>
+
+with the word &quot;joined&quot; in Helvetica bold. Note the
+space before <strong>\c</strong>. Without it, the last three
+words of the output line would read
+<p>
+<pre>
+ bejoinedtogether
+</pre>
+
+Please also note that had the example been in one of the
+<a href="definitions.html#TERMS_FILLED">fill modes</a>,
+there'd have been no need for the <strong>\c</strong>.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_REFINEMENTS"></a>
+
+<a name="REFINEMENTS">
+ <h2><u>Typographic refinements</u></h2>
+</a>
+
+The macros in this section help you tweak groff's behaviour,
+ensuring that your documents look typographically professional.
+<br>
+
+<a name="INDEX_REFINEMENTS">
+ <h3><u>Typographic refinements macro list</u></h3>
+</a>
+
+<ul>
+ <li><strong>Word and sentence spacing</strong>
+ <ul>
+ <li><a href="#WS">WS</a> (word spacing)
+ <li><a href="#SS">SS</a> (sentence space)
+ </ul>
+ <li><strong>Letter spacing (track kerning)</strong>
+ <ul>
+ <li><a href="#RW">RW</a> (reduce whitespace)
+ <li><a href="#EW">EW</a> (expand whitespace)
+ <li><a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
+ </ul>
+ <li><strong>Hyphenation</strong>
+ <ul>
+ <li><a href="#HY">HY</a> (turn auto hyphenation on/off, or set specific hyphenation parameters)
+ <li><a href="#HY_SET">HY_SET</a> (set all hyphenation parameters)
+ </ul>
+ <li><strong>Automatic kerning and ligatures</strong>
+ <ul>
+ <li><a href="#KERN">KERN</a> (turn automatic pairwise kerning on or off)
+ <li><a href="#LIGATURES">LIGATURES</a> (turn automatic generation of ligatures on or off)
+ </ul>
+</ul>
+
+<!---WS--->
+
+<hr width="66%" align="left">
+<a name="WS"><h3><u>Word spacing</u></h3></a>
+<br>
+Macro: <strong>WS</strong> <var>&lt;+|-wordspace&gt; | DEFAULT</var>
+
+<p>
+<strong>WS</strong> (Word Space) increases or decreases the amount
+of space between words. In
+<a href="definitions.html#TERMS_NOFILL">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 <strong>WS</strong>, the change applies
+uniformly to the space between every word on every line. However,
+when text is
+<a href="definitions.html#TERMS_JUST">justified</a>,
+the space between words varies from line to line (in order to justify
+the text). Consequently, the change you make with <strong>WS</strong>
+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>
+Word space is relative to type size. Knowing how it's calculated is
+unimportant. What matters is having a sense of how the value passed
+to <strong>WS</strong> affects the look of your type. 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 of 5
+or so produces a subtle but noticeable difference; and in/decreasing
+by a value greater than 10 is always apparent. You should preview
+your work to assess the effect of <strong>WS</strong>.
+
+<p>
+<a name="WS_USAGE"><strong>WS</strong></a>
+takes as its argument a whole number preceded by a plus or minus sign.
+Therefore, to decrease the word space slightly, you might enter
+<p>
+<pre>
+ .WS -4
+</pre>
+
+To increase it by a noticeable amount, you might enter
+<p>
+<pre>
+ .WS +12
+</pre>
+
+You can reset the word spacing to its previous value by switching
+the plus or minus sign, like this:
+<p>
+<pre>
+ .WS +4
+ A line of text
+ .WS -4
+</pre>
+
+The <code>.WS -4</code> undoes the effect of <code>.WS
++4</code>. You can also reset <strong>WS</strong> to
+its groff default by entering
+<p>
+<pre>
+ .WS DEFAULT
+</pre>
+
+This can be particularly useful if you've been playing around
+with plus and minus values, and can't remember by how much you
+have to in/decrease the word space to get it back to normal.
+<br>
+
+<!---SS--->
+
+<hr width="66%" align="left">
+<a name="SS"><h3><u>Sentence space</u></h3></a>
+<br>
+Macro: <strong>SS</strong> <var>&lt;+sentence space&gt; | 0 | DEFAULT</var>
+
+<p>
+<strong>SS</strong> (Sentence Space) tells groff how to treat double
+spaces it encounters between sentences in
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a>.
+If you use <strong>SS</strong>, input sentences with two spaces
+after them AND 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
+<strong>SS</strong>. Thus,
+<p>
+<pre>
+ .SS +2
+</pre>
+
+means that input sentences with two spaces after them receive a normal
+word space PLUS the +2 value passed to <strong>SS</strong>.
+<p>
+Like
+<strong>WS</strong>, 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); and
+increasing by a value greater than 10 is always apparent. You should
+preview your work to assess the effect of <strong>SS</strong>.
+<p>
+There's an additional argument you can pass <strong>SS</strong>:
+the number zero (without the + sign). It's the argument you'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
+<p>
+<pre>
+ .SS 0
+</pre>
+
+at the top of your files.
+
+<p>
+If you do use <strong>SS</strong> for something other than ensuring
+that you don'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
+<p>
+<pre>
+ .SS DEFAULT
+</pre>
+
+If you're using the
+<a href="docprocessing.html">document processing macros</a>
+and your
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE</a>
+is <strong>TYPEWRITE</strong>, <code>.SS DEFAULT</code> is the default,
+because you <em>do</em> want double spaces between sentences in copy
+that imitates the look of a typewritten document.
+<p>
+<strong>IMPORTANT: SS</strong> with an argument other than
+&quot;0&quot; should only be used if you're of the old (and wise)
+school of typists that puts two spaces between sentences. If you
+ignore this advice and use <strong>SS</strong> when you habitually
+put only one space between sentences, you risk producing output where
+the space between sentences is not equal.
+<br>
+
+<!---HY--->
+
+<hr width="66%" align="left">
+<a name="HY"><h3><u>Automatic hyphenation control</u></h3></a>
+<br>
+Macro: <strong>HY</strong> <var>toggle</var>
+<br>
+Macro: <strong>HY</strong> <var>LINES &lt;max. number of consecutive hyphenated lines&gt;</var>
+<br>
+Macro: <strong>HY</strong> <var>MARGIN &lt;size of hyphenation margin&gt;</var>
+<br>
+Macro: <strong>HY</strong> <var>SPACE &lt;extra interword spacing to prevent hyphenation&gt;</var>
+<br>
+Macro: <strong>HY</strong> <var>DEFAULT</var>
+<br>
+Aliases: <strong>HYPHENATE, HYPHENATION</strong>
+
+<p>
+<strong>HY</strong>, as you can see, can be invoked with a number of
+arguments. In all cases, the aliases <strong>HYPHENATE</strong>
+or <strong>HYPHENATION</strong> can be used in place of
+<strong>HY</strong>. To aid in understanding the various arguments
+you can pass to <strong>HY</strong>, I've broken them down into
+separate sections.
+
+<h3><u>1. HY</u></h3>
+
+<p>
+<strong>HY</strong> by itself (i.e. with no argument) simply turns
+automatic hyphenation on. Any argument other than <strong>LINES,
+MARGIN, SPACE</strong> or <strong>DEFAULT</strong>, <strong>HY</strong>
+turns automatic hyphenation off. For example, as explained in
+<a href="intro.html#MACRO_ARGS">How to read macro arguments</a>,
+you could turn <strong>HY</strong> off by entering
+<p>
+<pre>
+ .HY OFF
+ or
+ .HY X
+ or
+ .HY END
+</pre>
+
+<strong>HY</strong> observes the following default hyphenation rules:
+<br>
+<ol>
+ <li>Last lines (i.e. ones that will spring a trap -- typically
+ the last line on a page) will not be hyphenated.
+ <li>The first and last two characters of a word are never
+ split off.
+</ol>
+
+<h3><u>2. HY LINES</u></h3>
+
+<p>
+<strong>HY LINES</strong> sets the maximum number of consecutive
+hyphenated lines that will appear in output copy. 2 is a very
+good choice, and you'd set it with
+<p>
+<pre>
+ .HY LINES 2
+</pre>
+
+By default, when you turn automatic hyphenation on, there is no
+limit to the number of consecutive hyphenated lines.
+
+<p>
+<strong>NOTE:</strong>
+<a href="definitions.html#TERMS_DISCRETIONARYHYPHEN">Discretionary hyphens</a>
+count when groff is figuring out how many lines to hyphenate;
+explicit hyphens do not.
+
+<h3><u>3. HY MARGIN</u></h3>
+
+<p>
+<strong>HY MARGIN</strong> sets the amount of room allowed at
+the end of a line before hyphenation is tripped (e.g. if there's
+only 6 points left at the end of a line, groff won't try to hyphenate
+the next word). <strong>HY MARGIN</strong> only applies if you're
+using
+<a href="#QUAD">QUAD</a>, and is really only useful if you're
+using <strong>QUAD LEFT</strong>.
+
+<p>
+As an example, if you don't want groff to hyphenate words when there's
+only 18 points of space left at the end of a left-quadded line,
+you'd enter
+<p>
+<pre>
+ .HY MARGIN 18p
+</pre>
+
+<strong>NOTE:</strong> The numeric argument after <strong>HY
+MARGIN</strong> requires a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+
+<h3><u>4. HY SPACE</u></h3>
+
+<p>
+<strong>HY SPACE</strong> sets an amount of extra interword
+space that groff will <em>try</em> to put between words on a
+line in order to PREVENT hyphenation. <strong>HY SPACE</strong>
+applies only to
+<a href="definitions.html#TERMS_JUST">justified lines</a>. Generally speaking,
+you'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'd set with
+<p>
+<pre>
+ .HY SPACE .5p
+ or
+ .HY SPACE 1p
+</pre>
+
+<strong>NOTE:</strong> The numeric argument after <strong>HY
+SPACE</strong> requires a
+<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
+
+<h3><u>4. HY DEFAULT</u></h3>
+
+<p>
+<strong>HY DEFAULT</strong> resets automatic hyphenation to its
+default behaviour, cancelling any changes made with <strong>LINES,
+MARGIN,</strong> and/or <strong>SPACE</strong>.
+
+<h3><u>A note on hyphenation in general</u></h3>
+
+<p>
+Hyphenation is a necessary evil. If it can be avoided, it should be.
+If it can't be, it should occur infrequently. That's the reason for
+number of parameters you can set with <strong>HY</strong>.
+
+<p>
+Furthermore, hyphenation in
+<a href="definitions.html#TERMS_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 <strong>HY MARGIN</strong>
+a bit if your copy looks hyphen-heavy.
+<br>
+
+<!---HY_SET--->
+
+<hr width="66%" align="left">
+<a name="HY_SET"><h3><u>Set hyphenation parameters all at once</u></h3></a>
+<br>
+Macro: <strong>HY_SET</strong> <var>&lt;lines&gt; [ &lt;margin&gt; [ &lt;space&gt; ] ]</var>
+<br>
+Alias: <strong>HYSET</strong>
+
+<p>
+<strong>HY_SET</strong> lets you set the parameters for hyphenation
+with a single macro. &lt;lines&gt;, &lt;margin&gt; and &lt;space&gt;
+correspond to the numeric values required by
+<strong>LINES</strong>, <strong>MARGIN</strong> and
+<strong>SPACE</strong> as described
+<a href="#HY">above</a>.
+
+<p>
+To set just the maximum number of consecutive hyphenated lines,
+you'd enter
+<p>
+<pre>
+ .HY_SET 2
+</pre>
+
+If you wanted the same number of maximum consecutive hyphenated lines
+and a hyphenation margin for use with
+<a href="definitions.html#TERMS_RAG">rag</a>
+copy,
+<p>
+<pre>
+ .HY_SET 2 36p
+</pre>
+
+would set the hyphenation margin to 36 points.
+
+<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#TERMS_JUST">justified</a>
+copy,
+<p>
+<pre>
+ .HYSET 2 0 2p
+</pre>
+
+is how you'd do it.
+<br>
+
+<!---RW--->
+
+<hr width="66%" align="left">
+<a name="RW"><h3><u>Reduce whitespace</u></h3></a>
+<br>
+Macro: <strong>RW</strong> <var>&lt;amount of whitespace reduction between letters&gt;</var>
+<br>
+
+<p>
+<strong>RW</strong> (Reduce Whitespace) and its corresponding macro,
+<strong>EW</strong> (Expand Whitespace), allow you to tighten
+(or loosen)
+<a href="definitions.html#TERMS_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>
+The value passed to <strong>RW</strong> 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'll most likely use
+small decimal values when tightening lines. For example,
+<p>
+<pre>
+ .RW .1
+ or
+ .RW .2
+</pre>
+
+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
+<strong>RW</strong>.
+
+<p>
+<p>
+<strong>IMPORTANT:</strong> <strong>RW</strong> affects all
+<a href="definitions.html#TERMS_FONT">fonts</a>
+in the
+<a href="definitions.html#TERMS_FAMILY">family</a>
+current at the time it's invoked. It must be reset to zero to
+cancel its effect (<code>.RW 0</code>) on those fonts, or reinvoked
+(possibly with a different value) if you change family.
+<p>
+<strong>NOTE:</strong> By default, <strong>RW</strong> does not deposit a
+<a href="#BR">break</a>
+(<strong>BR</strong>) when it's invoked. If you want
+<strong>RW</strong> to break at the ends of the previous
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a>,
+you can tell <strong>mom</strong> that's what you want by invoking the
+<a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
+toggle macro.
+<br>
+
+<!---EW--->
+
+<hr width="66%" align="left">
+<a name="EW"><h3><u>Expand whitespace</u></h3></a>
+<br>
+Macro: <strong>EW</strong> <var>&lt;amount of whitespace expansion between letters&gt;</var>
+<br>
+
+<p>
+<strong>EW</strong> (Expand Whitespace) expands the amount of
+whitespace between letters, effectively &quot;loosening&quot; lines
+of type.
+
+<p>
+The value passed to <strong>EW</strong> 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'll most likely use
+small decimal values when loosening lines. For example,
+<p>
+<pre>
+ .EW .1
+ or
+ .EW .2
+</pre>
+
+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 <strong>EW</strong>.
+
+<p>
+<strong>NOTE:</strong> By default, <strong>EW</strong> does not deposit a
+<a href="#BR">break</a>
+(<strong>BR</strong>) when it's invoked. If you want
+<strong>EW</strong> to break at the ends of the previous
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a>,
+you can tell <strong>mom</strong> that's what you want by invoking the
+<a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
+toggle macro.
+<br>
+
+<!---BR_AT_LINE_KERN--->
+
+<hr width="66%" align="left">
+<a name="BR_AT_LINE_KERN"><h3><u>Break before line kerning</u></h3></a>
+<br>
+Macro: <strong>BR_AT_LINE_KERN</strong> <var>toggle</var>
+<br>
+
+<p>
+By default, <strong>mom</strong> does not break
+<a href="definitions.html#TERMS_INPUTLINE>input lines</a>
+when you invoke <strong>RW</strong> or <strong>EW</strong>.
+If you'd like <strong>mom</strong> to break input lines prior
+to <strong>RW</strong> or <strong>EW</strong>, invoke
+<strong>BR_AT_INPUT_LINE</strong> without any argument. To
+disable the breaks, invoke <strong>BR_AT_INPUT_LINE</strong>
+with any argument (<strong>OFF, QUIT, Q, X</strong>...), like
+this
+<p>
+<pre>
+ .BR_AT_LINE_KERN OFF
+ or
+ .BR_AT_LINE_KERN X
+</pre>
+<br>
+
+<!---KERN--->
+
+<hr width="66%" align="left">
+<a name="KERN"><h3><u>Automatic kerning</u></h3></a>
+<br>
+Macro: <strong>KERN</strong> <var>toggle</var>
+<br>
+
+<p>
+By itself (i.e. with no argument), <strong>KERN</strong> turns
+automatic pairwise
+<a href="definitions.html#TERMS_KERN">kerning</a>
+on. With any argument (e.g. OFF, Q, X), pairwise kerning is turned
+off.
+<p>
+Kerning of individual character pairs can be controlled with the
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>
+<strong>\*[BU#]</strong> and <strong>\*[FU#]</strong>. See
+<a href="inlines.html#INLINE_KERNING_MOM">Inline Escapes, kerning</a>.
+<br>
+
+<!---LIGATURES--->
+
+<hr width="66%" align="left">
+<a name="LIGATURES"><h3><u>Automatic ligature generation</u></h3></a>
+<br>
+Macro: <strong>LIGATURES</strong> <var>toggle</var>
+<br>
+Alias: <strong>LIG</strong>
+
+<p>
+Provided your current font has
+<a href="definitions.html#TERMS_LIGATURES">ligatures</a>,
+<strong>LIGATURES</strong>, 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 &quot;finally&quot;, the fi combination will be
+output as an fi ligature. Generally speaking, ligatures are A
+Good Thing, hence <strong>mom</strong> has them on by default.
+<p>
+<strong>LIGATURES</strong> with any argument turns automatic
+ligature generation off.
+<p>
+<strong>NOTE:</strong> Not all fonts support ligatures.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_MODIFICATIONS"></a>
+
+<a name="MODIFICATIONS">
+ <h2><u>Type modifications: pseudo-italic, -bold, -condensed, -extended</u></h2>
+</a>
+
+It sometimes happens that a PostScript
+<a href="definitions.html#TERMS_FAMILY">family</a>
+doesn'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 a condensed family. That's where these macros
+and inline escapes come in. With them, you can fake the fonts
+you're missing. A word of caution, though: &quot;faked&quot;
+fonts are just that -- 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.
+<br>
+
+<a name="INDEX_MODIFICATIONS">
+ <h3><u>Type modifications macro list</u></h3>
+</a>
+
+<ul>
+ <li><strong>Pseudo italic</strong>
+ <ul>
+ <li><a href="#SETSLANT">SETSLANT</a> -- degree of pseudo-italicising
+ <li><a href="#SLANT_INLINE">\*[SLANT]</a> -- inline escape for pseudo-italicising type
+ </ul>
+ <li><strong>Pseudo bold</strong>
+ <ul>
+ <li><a href="#SETBOLDER">SETBOLDER</a> -- amount of emboldening
+ <li><a href="#BOLDER_INLINE">\*[BOLDER]</a> -- inline escape for emboldening type
+ </ul>
+ <li><strong>Pseudo condensed</strong>
+ <ul>
+ <li><a href="#CONDENSE">CONDENSE</a> -- percentage for pseudo-condensed type
+ <li><a href="#COND_INLINE">\*[COND]</a> -- inline escape for pseudo-condensed type
+ </ul>
+ <li><strong>Pseudo extended</strong>
+ <ul>
+ <li><a href="#EXTEND">EXTEND</a> -- percentage for pseudo-extended type
+ <li><a href="#EXT_INLINE">\*[EXT]</a> -- inline escape for pseudo-extending
+ </ul>
+</ul>
+
+<!---SETSLANT--->
+
+<hr width="66%" align="left">
+<a name="SETSLANT"><h3><u>Set degree of slant for pseudo-italicising</u></h3></a>
+<br>
+Macro: <strong>SETSLANT</strong> <var>&lt;degrees to slant type&gt; | RESET</var>
+
+<p>
+Pseudo-italicising of type is accomplished by slanting a roman font
+a certain number of degrees to the right. <strong>SETSLANT</strong>
+lets you fix the number of degrees. <strong>Mom</strong>'s
+default is 15, which produces an acceptable approximation of an
+italic font. If you want another value -- say, 13 degrees --
+you'd set it by entering
+<p>
+<pre>
+ .SETSLANT 13
+</pre>
+
+If you change the degree of slant and later want to set it back
+to the <strong>mom</strong> default, do
+<p>
+<pre>
+ .SETSLANT RESET
+</pre>
+
+<strong>NOTE:</strong> By itself, <strong>SETSLANT</strong>
+will not start pseudo-italicising type; it merely tells
+<strong>mom</strong> what degree of slant you want. To start
+pseudo-italicising, use the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<strong>\*[SLANT]</strong>.
+<br>
+
+<!---\*[SLANT]--->
+
+<hr width="66%" align="left">
+<a name="SLANT_INLINE"><h3><u>Pseudo italic on/off</u></h3></a>
+<br>
+Inline: <strong>\*[SLANT] -- turn pseudo-italic on</strong>
+<br>
+Inline: <strong>\*[SLANTX] -- turn pseudo-italic off</strong>
+
+<p>
+<strong>\*[SLANT]</strong> begins pseudo-italicising type.
+<strong>\*[SLANTX]</strong> turns the feature off. Both are
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>,
+therefore they should not appear as separate lines, but rather
+be embedded in text lines, like this:
+<p>
+<pre>
+ Not \*[SLANT]everything\*[SLANTX] is as it seems.
+</pre>
+
+Alternatively, if you wanted the whole line pseudo-italicised,
+you'd do
+<p>
+<pre>
+ \*[SLANT]Not everything is as it seems.\*[SLANTX]
+</pre>
+
+Once <strong>\*[SLANT]</strong> is invoked, it remains in effect
+until turned off.
+
+<p>
+<strong>NOTE:</strong> If you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
+with
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+<strong>mom</strong> underlines pseudo-italics by default. To
+change this behaviour, use the special macro
+<a href="docprocessing.html#SLANT_MEANS_SLANT">SLANT_MEANS_SLANT</a>.
+<br>
+
+<!---SETBOLDER--->
+
+<hr width="66%" align="left">
+<a name="SETBOLDER"><h3><u>Set amount of emboldening</u></h3></a>
+<br>
+Macro: <strong>SETBOLDER</strong> <var>&lt;amount of emboldening, in machine units&gt; | RESET</var>
+
+<p>
+Emboldening of type is accomplished by printing characters
+twice; the second printing is slightly offset from the first,
+effectively &quot;thickening&quot; the character.
+<strong>SETBOLDER</strong> lets you set the number of
+<a href="definitions.html#TERMS_UNITS">machine units</a>
+for the offset. <strong>Mom</strong>'s default is 700 units, which
+produces an acceptable approximation of a bold font. If you want
+another value -- say, 500 units -- you'd set it by entering
+<p>
+<pre>
+ .SETBOLDER 500
+</pre>
+
+If you change the emboldening offset and later want to set it back
+to the <strong>mom</strong> default, do
+<p>
+<pre>
+ .SETBOLDER RESET
+</pre>
+
+<strong>NOTE:</strong> By itself, <strong>SETBOLDER</strong>
+will not start emboldening type; it merely tells
+<strong>mom</strong> what you want the emboldening offset to be.
+To start emboldening, use the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<strong>\*[BOLDER]</strong>.
+<br>
+
+<!---\*[BOLDER]--->
+
+<hr width="66%" align="left">
+<a name="BOLDER_INLINE"><h3><u>Emboldening on/off</u></h3></a>
+<br>
+Inline: <strong>\*[BOLDER] -- turn emboldening on</strong>
+<br>
+Inline: <strong>\*[BOLDERX] -- turn emboldening off</strong>
+
+<p>
+<strong>\*[BOLDER]</strong> begins emboldening type.
+<strong>\*[BOLDERX]</strong> turns the feature off. Both are
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>,
+therefore they should not appear as separate lines, but rather
+be embedded in text lines, like this:
+<p>
+<pre>
+ Not \*[BOLDER]everything\*[BOLDERX] is as it seems.
+</pre>
+
+Alternatively, if you wanted the whole line emboldened,
+you'd do
+<p>
+<pre>
+ \*[BOLDER]Not everything is as it seems.\*[BOLDERX]
+</pre>
+
+Once <strong>\*[BOLDER]</strong> is invoked, it remains in effect
+until turned off.
+
+<p>
+<strong>NOTE:</strong> If you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
+with
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+<strong>mom</strong> ignores <strong>\*[BOLDER]</strong>
+requests.
+<br>
+
+<!---CONDENSE--->
+
+<hr width="66%" align="left">
+<a name="CONDENSE"><h3><u>Set percentage for pseudo-condensed type</u></h3></a>
+<br>
+Macro: <strong>CONDENSE</strong> <var>&lt;pseudo-condense percentage&gt;</var>
+
+<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.
+<strong>CONDENSE</strong> tells <strong>mom</strong> what
+percentage of the normal character width you want the characters
+to be condensed.
+<p>
+<strong>Mom</strong> has no default value for
+<strong>CONDENSE</strong>, therefore you must set it before using the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<a href="#COND_INLINE">\*[COND]</a>.
+80 percent of the normal character width is a good value, and
+you'd set it like this:
+<p>
+<pre>
+ .CONDENSE 80
+</pre>
+
+<strong>NOTE:</strong> By itself, <strong>CONDENSE</strong>
+will not start pseudo-condensing type; it merely tells
+<strong>mom</strong> what percentage of the normal character
+width you want characters to be condensed.
+To start pseudo-condensing, use the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<strong>\*[COND]</strong>.
+<p>
+<strong>Additional note:</strong> Make sure that pseudo-condensing
+is off (with
+<a href="#COND_INLINE">\*[CONDX]</a>)
+before before making any changes to the pseudo-condense percentage
+with <strong>CONDENSE</strong>.
+<br>
+
+<!---\*[COND]--->
+
+<hr width="66%" align="left">
+<a name="COND_INLINE"><h3><u>Pseudo-condensing on/off</u></h3></a>
+<br>
+Inline: <strong>\*[COND] -- turn pseudo-condensing on</strong>
+<br>
+Inline: <strong>\*[CONDX] -- turn pseudo-condensing off</strong>
+
+<p>
+<strong>\*[COND]</strong> begins pseudo-condensing type.
+<strong>\*[CONDX]</strong> turns the feature off. Both are
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>,
+therefore they should not appear as separate lines, but rather
+be embedded in text lines, like this:
+<p>
+<pre>
+ \*[COND]Not everything is as it seems.\*[CONDX]
+</pre>
+
+<strong>\*[COND]</strong> remains in effect until you turn it
+off with <strong>\*[CONDX]</strong>.
+
+<p>
+<strong>IMPORTANT:</strong> You MUST turn <strong>\*[COND]</strong>
+off before making any changes to the point size of your type, either
+via the
+<a href="#PS">PS</a>
+macro or with the <strong>\s</strong> inline escape. If you wish
+the new point size to be pseudo-condensed, simply reinvoke
+<strong>\*[COND]</strong> afterwards. Equally,
+<strong>\*[COND]</strong> must be turned off before changing the
+condense percentage with <a href="#CONDENSE">CONDENSE</a>.
+
+<p>
+<strong>NOTE:</strong> If you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
+with
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+<strong>mom</strong> ignores <strong>\*[COND]</strong>
+requests.
+<br>
+
+<!---EXTEND--->
+
+<hr width="66%" align="left">
+<a name="EXTEND"><h3><u>Set percentage for pseudo-extended type</u></h3></a>
+<br>
+Macro: <strong>EXTEND</strong> <var>&lt;pseudo-extend percentage&gt;</var>
+
+<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.
+<strong>EXTEND</strong> tells <strong>mom</strong> what
+percentage of the normal character width you want the characters
+to be extended.
+<p>
+<strong>Mom</strong> has no default value for
+<strong>EXTEND</strong>, therefore you must set it before using the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<a href="#EXT_INLINE">\*[EXT]</a>.
+120 percent of the normal character width is a good value, and
+you'd set it like this:
+<p>
+<pre>
+ .EXTEND 120
+</pre>
+
+<strong>NOTE:</strong> By itself, <strong>EXTEND</strong>
+will not start pseudo-extending type; it merely tells
+<strong>mom</strong> what percentage of the normal character
+width you want characters to be extended.
+To start pseudo-extending, use the
+<a href="definitions.html#TERMS_INLINES">inline escape</a>
+<strong>\*[EXT]</strong>.
+
+<p>
+<strong>Additional note:</strong> Make sure that
+pseudo-extending is off (with
+<a href="#EXT_INLINE">\*[EXTX]</a>)
+before before making any changes to the pseudo-extend percentage
+with <strong>EXTEND</strong>.
+<br>
+
+<!---\*[EXT]--->
+
+<hr width="66%" align="left">
+<a name="EXT_INLINE"><h3><u>Pseudo-extending on/off</u></h3></a>
+<br>
+Inline: <strong>\*[EXT] -- turn pseudo-extending on</strong>
+<br>
+Inline: <strong>\*[EXTX] -- turn pseudo-extending off</strong>
+
+<p>
+<strong>\*[EXT]</strong> begins pseudo-extending type.
+<strong>\*[EXTX]</strong> turns the feature off. Both are
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>,
+therefore they should not appear as separate lines, but rather
+be embedded in text lines, like this:
+<p>
+<pre>
+ \*[EXT]Not everything is as it seems.\*[EXTX]
+</pre>
+
+<strong>\*[EXT]</strong> remains in effect until you turn it
+off with <strong>\*[EXTX]</strong>.
+
+<p>
+<strong>IMPORTANT:</strong> You MUST turn <strong>\*[EXT]</strong>
+off before making any changes to the point size of your type, either
+via the
+<a href="#PS">PS</a>
+macro or with the <strong>\s</strong> inline escape. If you wish
+the new point size to be pseudo-extended, simply reinvoke
+<strong>\*[EXT]</strong> afterwards. Equally,
+<strong>\*[EXT]</strong> must be turned off before changing the
+extend percentage with <a href="#EXTEND">EXTEND</a>.
+
+<p>
+<strong>NOTE:</strong> If you're using the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
+with
+<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
+<strong>mom</strong> ignores <strong>\*[EXT]</strong>
+requests.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_ALDRLD"></a>
+
+<a name="ALDRLD">
+ <h2><u>Vertical movement</u></h2>
+</a>
+
+The two macros in this section allow you to move down or up on the page
+relative to the current
+<a href="definitions.html#TERMS_BASELINE">baseline</a>.
+
+<a name="INDEX_ALDRLD">
+ <h3><u>Vertical movement macro list</u></h3>
+</a>
+<ul>
+ <li><a href="#ALD">ALD</a> -- Advance Lead
+ <li><a href="#RLD">RLD</a> -- Reverse Lead
+</ul>
+
+<!---ALD--->
+
+<hr width="66%" align="left">
+ <a name="ALD"><h3><u>Advance Lead (move downward)</u></h3></a>
+<br>
+Macro: <strong>ALD</strong> <var>&lt;distance to move downward&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>ALD</strong> takes one argument: the distance to move downward
+on the page relative to the current vertical position.
+<p>
+Used by itself, or preceded by
+<a href="#BR">BR</a>,
+<strong>ALD</strong> will advance by one line space plus the
+distance you specify. Preceded by
+<a href="#EL">EL</a>,
+it will advance by exactly the distance you specify.
+<p>
+<strong>ALD</strong> 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
+<p>
+<pre>
+ .ALD .25i
+ or
+ .ALD 1P+6p
+</pre>
+
+As the mnemonic (<strong>A</strong>dvance
+<strong>L</strong>ea<strong>D</strong>) suggests, you'll most often
+use <strong>ALD</strong> with
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>
+of lead.
+
+<p>
+<strong>NOTE:</strong> if you want to use <strong>ALD</strong>
+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 -1v (minus
+one line space), like this:
+<p>
+<pre>
+ .ALD 1i-1v
+</pre>
+
+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>
+<strong>Important:</strong> Do NOT use <strong>ALD</strong> in this
+way if you have set a top margin with
+<a href="#T_MARGIN">T_MARGIN</a>
+or
+<a href="#PAGE">PAGE</a>.
+<br>
+
+<!---RLD--->
+
+<hr width="66%" align="left">
+ <a name="RLD"><h3><u>Reverse Lead (move upward)</u></h3></a>
+<br>
+Macro: <strong>RLD</strong> <var>&lt;distance to move upward&gt;</var>
+<br>
+<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>RLD</strong> takes one argument: the distance to move
+upward on the page relative to the current vertical position.
+<p>
+Used by itself, or preceded by
+<a href="#BR">BR</a>,
+<strong>RLD</strong> will advance by one line space, then
+reverse by the distance you specify. Preceded by
+<a href="#EL">EL</a>,
+it will reverse by exactly the distance you specify.
+<p>
+<strong>RLD</strong> 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
+<p>
+<pre>
+ .RLD .25i
+ or
+ .RLD 1P+6p
+</pre>
+
+As the mnemonic (<strong>R</strong>dvance
+<strong>L</strong>ea<strong>D</strong>) suggests, you'll most often
+use <strong>RLD</strong> with
+<a href="definitions.html#TERMS_PICASPOINTS">points</a>
+of lead.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_TABS"></a>
+
+<a name="TABS">
+ <h2><u>Tabs</u></h2>
+</a>
+
+<strong>Mom</strong> 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's notion of tabs. I recommend reading this
+section carefully in order to understand how
+<strong>mom</strong> handles tabs.
+
+<a name="TYPESETTING_TABS"><h3><u>Typesetting tabs</u></h3></a>
+<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 multi-column macros, typesetting tabs significantly facilitate
+tabular and columnar work.
+<p>
+Typesetting tabs are created with the <strong>TAB_SET</strong>
+macro. <strong>TAB_SET</strong> 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
+<strong>TAB_SET</strong>, they can be called at any time with the
+<strong>TAB</strong> macro.
+<p>
+<strong>NOTE:</strong> see the section
+<a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
+for information and advice on using tabs with the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+
+<a name="TYPESETTING_TABS_TUT"><h3><u>Quickie tutorial on typesetting tabs</u></h3></a>
+<p>
+Say you want to set up three tabs to produce an employee evaluation
+that looks something like this:
+<p>
+<a name="TYPSETTING_TABS_SAMPLE"></a>
+<pre>
+ 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.
+</pre>
+
+You want the first tab (&quot;CRITERION&quot;)
+<br>
+<ul>
+ <li>to begin at the left margin of the page (i.e. no indent)
+ <li>to have a line length of 5 picas
+ <li>to be set flush left
+</ul>
+<br>
+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
+<p>
+<pre>
+ .TAB_SET 1 0 5P L
+ | | | |
+ tab #__| | | |__direction
+ | |
+ indent__| |__length
+</pre>
+
+You want the second tab (&quot;EVALUATION&quot;)
+<br>
+<ul>
+ <li>to begin 8 picas from the left margin
+ <li>to have a length of 9 picas
+ <li>to be set centered.
+</ul>
+<br>
+You set it up like this:
+<p>
+<pre>
+ .TAB_SET 2 8P 9P C
+ | | | |
+ tab #__| | | |__direction
+ | |
+ indent__| |__length
+</pre>
+
+You want the third tab (&quot;COMMENTS&quot;)
+<br>
+<ul>
+ <li>to begin 19 picas from the left margin
+ <li>to have a length of 17 picas
+ <li>to be set flush left, <a href="definitions.html#TERMS_FILLED">filled</a>
+</ul>
+<br>
+The setup looks like this:
+<p>
+<pre>
+ .TAB_SET 3 19P 17P L QUAD
+ | | | | |
+ | | | | |__fill output lines
+ | | | |
+ tab #__| | | |__direction
+ | |
+ indent__| |__length
+</pre>
+
+Once the tabs are set up, you can call them in one of two ways:
+<br>
+<ul>
+ <li><a href="#TAB">TAB</a> (with the tab
+ number as an argument) breaks the current line,
+ advances one linespace, and calls the tab.
+ <li><a href="#TN">TN</a> (Tab Next) 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.).
+</ul>
+<br>
+To exit from tabs and restore your original left margin, line length,
+quad direction and fill mode, use
+<a href="#TQ">TQ</a>
+(Tab Quit).
+<p>
+Here's how the input for our sample employee evaluation looks
+(with some introductory parameters):
+<p>
+<pre>
+ .PAGE 8.5i 11i 1i 1i 1i
+ .FAMILY T
+ .FT R
+ .PS 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
+ .TN
+ EVALUATION
+ .TN
+ COMMENTS
+ .SP
+ .TAB 1
+ Service
+ .TN
+ Good
+ .TN
+ Many clients specifically request support from Joe by name.
+ .SP
+ .TAB 1
+ Punctuality
+ .TN
+ Satisfactory
+ .TN
+ Tends to arrive after 8:00am, but often works through lunch hour.
+ .SP
+ .TAB 1
+ Team spirit
+ .TN
+ Needs work
+ .TN
+ Persistently gives higher priority to helping clients
+ than respecting organizational hierarchy.
+ .TQ
+</pre>
+
+Try setting this up and previewing it with
+<p>
+<pre>
+ groff -mom -X &lt;filename&gt;
+</pre>
+
+Notice how <kbd>.TN</kbd> simply moves over to the next tab,
+while the combination <kbd>.SP/.TAB 1</kbd> breaks the
+line, advances by one extra linespace, and calls the first tab.
+<p>
+Notice, too, how the <kbd>QUAD</kbd> argument passed to
+tab 3 means you don't have to worry about the length of
+<a href="definitions.html#TERMS_INPUTLINE">input lines</a>;
+<strong>mom</strong>
+<a href="definitions.html#TERMS_FILLED">fills</a>
+the tab and sets the type flush left.
+
+<a name="STRING_TABS"><h3><u>String tabs (autotabs)</u></h3></a>
+<p>
+String tabs let you mark off tab positions inline. 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>
+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>
+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>
+In combination with the
+<a href="goodies.html#PAD">PAD</a>
+macro and the groff inline escape
+<a href="inlines.html#INLINE_HORIZONTAL_GROFF">\h</a>
+(move horizontally across the page) or <strong>mom</strong>'s
+<a href="inlines.html#INLINE_HORIZONTAL_MOM">\*[FP#]</a>
+(Forward Points) inline, string tabs provide
+tremendous flexibility in setting up complex tab structures.
+
+<a name="STRING_TABS_TUT"><h3><u>Quickie tutorial on string tabs</u></h3></a>
+<p>
+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't know exactly how long the tabs will be or where
+they should start. All you know is
+<br>
+<ul>
+ <li>CRITERION is the longest line in tab 1
+ <li>EVALUATION is the longest line in tab 2
+ <li>tab 3 should extend to the current right margin
+ <li>you want a 1 pica gutter between each tab
+</ul>
+<br>
+This is an ideal job for string tabs.
+<p>
+The first thing you need for string tabs is an
+<a href="definitions.html#TERMS_INPUTLINE">input line</a>
+with tab positions marked on it. Tabs are marked with the
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>
+<strong>\*[ST#]</strong> and <strong>\*[ST#X]</strong>. (In this
+example, we enclose the input line with the
+<a href="goodies.html#SILENT">SILENT</a>
+macro so the line doesn't print. We also use the
+<a href="goodies.html#PAD">PAD</a>
+macro to permit defining tab 3 as simply &quot;the amount of
+space remaining on the input line.&quot;)
+<p>
+The setup looks like this:
+<p>
+<pre>
+ .SILENT
+ .PAD "\*[ST1]CRITERION\*[ST1X]\*[FP12]\*[ST2]EVALUATION\*[ST2X]\*[FP12]\*[ST3]#\*[ST3X]"
+ .SILENT OFF
+</pre>
+
+The long line after <kbd>.PAD</kbd> looks scary, but it isn't.
+Here's what it means when broken down into its component parts:
+<br>
+<ul>
+ <li>The longest line in tab 1 is &quot;CRITERION&quot;, so we
+ enclose CRITERION with begin/end markers for string tab 1:
+ <p>
+ <kbd>\*[ST1]CRITERION\*[ST1X]</kbd>
+ <br>
+ <li>We want a 1 pica (12 points) gutter between tab 1 and 2,
+ so we insert 12 points of space with \*[FP12]
+ (<strong>F</strong>orward <strong>P</strong>oints 12):
+ <p>
+ <kbd>\*[FP12]</kbd>
+ <br>
+ <li>The longest line in tab 2 is &quot;EVALUATION&quot;, so
+ we enclose EVALUATION with begin/end markers for string
+ tab 2:
+ <p>
+ <kbd>\*[ST2]EVALUATION\*[ST2X]</kbd>
+ <br>
+ <li>We want 1 pica (12 points) between tab 2 and 3, so we
+ insert 12 points of space with another \*[FP12]:
+ <p>
+ <kbd>\*[FP12]</kbd>
+ <br>
+ <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:
+ <p>
+ <kbd>\*[ST3]#\*[ST3X]</kbd>
+ <br>
+</ul>
+<br>
+The tabs are now defined, but they require
+<a href="definitions.html#TERMS_QUAD">quad direction</a>
+and
+<a href="definitions.html#TERMS_FILLED">fill</a>
+information. For each string tab defined above, enter a
+separate
+<a href="#ST">ST</a>
+line, like this:
+<p>
+<pre>
+ .ST 1 L
+ .ST 2 L
+ .ST 3 L QUAD
+ | | |
+ | | |__fill output lines
+ | |
+ tab__| |__direction
+ number
+</pre>
+
+From here on in, you call the tabs with
+<a href="#TAB">TAB</a>
+and
+<a href="#TN">TN</a>
+just like typesetting tabs (see
+<a href="#TYPESETTING_TABS_TUT">typesetting tabs tutorial</a>).
+<p>
+Here's the complete setup and entry for the sample employee
+evaluation form utilising string tabs.
+<p>
+<pre>
+ .PAGE 8.5i 11i 1i 1i 1i
+ .FAMILY T
+ .FT R
+ .PS 14
+ .LS 16
+ .QUAD LEFT
+ .KERN
+ .HY OFF
+ .SS 0
+ .SILENT
+ .PAD "\*[ST1]CRITERION\*[ST1X]\*[FP12]\*[ST2]EVALUATION\*[ST2X]\*[FP12]\*[ST3]#\*[ST3X]"
+ .SILENT OFF
+ .ST 1 L
+ .ST 2 L
+ .ST 3 L QUAD
+ .TAB 1
+ CRITERION
+ .TN
+ EVALUATION
+ .TN
+ COMMENTS
+ .SP
+ .TAB 1
+ Service
+ .TN
+ Good
+ .TN
+ Many clients specifically request support from Joe by name.
+ .SP
+ .TAB 1
+ Punctuality
+ .TN
+ Satisfactory
+ .TN
+ Tends to arrive after 8:00am, but often works through lunch hour.
+ .SP
+ .TAB 1
+ Team spirit
+ .TN
+ Needs work
+ .TN
+ Persistently gives higher priority to helping clients
+ than respecting organizational hierarchy.
+ .TQ
+</pre>
+
+Try setting this up and previewing it with
+<p>
+<pre>
+ groff -mom -X &lt;filename&gt;
+</pre>
+
+Now, change the point size of the above sample to 12 and preview
+it again. You'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>
+Now try increasing the gutters to 2 picas (put an additional
+<kbd>\*[FP12]</kbd> after each <kbd>\*[FP12]</kbd>). Preview the
+file again, and notice how the tab structure remains the same, but
+the gutters are wider.
+
+
+<a name="INDEX_TABS">
+ <h3><u>Tabs macro list</u></h3>
+</a>
+
+<ul>
+ <li><a href="#TAB_SET">TAB_SET</a> (create typesetting tabs)
+ <li><a href="#INLINE_ST">\*[ST]...\*[STX]</a> (inline escapes for marking String Tabs)
+ <li><a href="#ST">ST</a> (set String Tabs)
+ <li><a href="#TAB">TAB</a> (call tabs)
+ <li><a href="#TN">TN</a> (Tab Next; call next tab in a sequence)
+ <li><a href="#TQ">TQ</a> (Tab Quit)
+</ul>
+
+<!---TAB_SET--->
+
+<hr width="66%" align="left">
+ <a name="TAB_SET"><h3><u>Set up typsetting tabs</u></h3></a>
+<br>
+Macro: <strong>TAB_SET</strong> <var>&lt;tab number&gt; &lt;indent&gt; &lt;length&gt; L | R | C | J [ QUAD ]</var>
+<br>
+Alias: <strong>TS</strong>
+<br>
+<em>*&lt;indent&gt; and &lt;length&gt; require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>TAB_SET</strong> creates typesetting tabs that later can be
+called with
+<a href="#TAB">TAB</a>.
+Typesetting tabs are numbered, and defined by an indent, a length,
+and a &quot;direction&quot;, hence <strong>TAB_SET</strong> has
+four required arguments:
+<br>
+<ul>
+ <li>a tab number
+ <li>an indent (measured from the left margin of the page,
+ or, if you're already in a tab, from the left margin of the tab)
+ <li>a length
+ <li>a direction
+</ul>
+<br>
+To set up a centered tab 6 picas long and 9 points from the left
+margin, you'd enter
+<p>
+<pre>
+ .TAB_SET 1 9p 6P C
+</pre>
+
+The tab number in the above (&quot;1&quot;) is simply an
+identifier. It could have been 4, or 17, or 296. There's no
+need to set up tabs in numerical sequence.
+<p>
+By default, tabs are in
+<a href="definitions.html#TERMS_NOFILL">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#TERMS_FILLED">filled</a>,
+pass the optional argument <strong>QUAD</strong>, which will
+make the tab behave as if you'd entered <kbd>.QUAD L | R |
+C</kbd>.
+<p>
+For
+<a href="definitions.html#TERMS_JUST">justified</a>
+tabs, simply pass the argument <strong>J</strong> (without the
+<strong>QUAD</strong> argument), like this:
+<p>
+<pre>
+ .TAB 1 9p 6P J
+</pre>
+
+Once tabs are set, they can be called at any time with the
+<a href="#TAB">TAB #</a>
+macro, where &quot;#&quot; is the number of the desired tab.
+<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 <strong>TAB #</strong>, so be careful that you
+don'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>
+<strong>NOTE:</strong> If you use <strong>TAB_SET</strong> while
+you're currently inside a tab, the indent argument is the distance from
+the tab's left margin, not the left margin of the page. Therefore,
+you should exit tabs (with
+<a href="#TQ">TQ</a>)
+before creating new tabs (unless, of course, you want to set
+up a tab structure within the confines of an existing tab).
+<p>
+<strong>IMPORTANT:</strong> Turn all indents off (see
+<a href="#INDENTS">Indents</a>)
+before setting up tabs with <strong>TAB_SET</strong>, or
+<strong>mom</strong> may get confused.
+<br>
+
+<!---INLINE_ST--->
+
+<hr width="66%" align="left">
+ <a name="INLINE_ST"><h3><u>Mark positions of string tabs</u></h3></a>
+<br>
+Inlines: <strong>\*[ST&lt;number&gt;]...\*[ST&lt;number&gt;X]</strong>
+
+<p>
+String tabs need to be marked off with
+<a href="definitions.html#TERMS_INLINES">inline escapes</a>
+before being set up with the
+<a href="#ST">ST</a>
+macro. Any input line may contain string tab markers.
+<i>&lt;number&gt;</i>, above, means the numeric identifier of
+the tab. The following shows a sample input line with string
+tab markers.
+<p>
+<pre>
+ \*[ST1]Now is the time\*[ST1X] for all \*[ST2]good men\*ST2X] to come to the aid of the party.
+</pre>
+
+String tab 1 begins at the start of the line and ends after the word
+&quot;time&quot;. String tab 2 starts at &quot;good&quot; and ends
+after &quot;men&quot;. 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 <strong>mom</strong> determines the
+position and length of string tabs.
+<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>
+Once string tabs have been marked in input lines, they have to
+be &quot;set&quot; with
+<a href="#ST">ST</a>,
+after which they may be called, by number, with
+<a href="#TAB">TAB</a>.
+<p>
+<strong>NOTE:</strong> 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="#SILENT">SILENT</a>
+macro.
+<p>
+<strong>IMPORTANT:</strong> Do not try to set up string tabs on
+a line that is broken with
+<a href="#SPREAD">SPREAD</a>.
+<strong>Mom</strong> calculates string tab positions and lengths
+as she reads the input line, not after the line has undergone
+manipulations to the word spacing.
+<br>
+
+<!---ST--->
+
+<hr width="66%" align="left">
+ <a name="ST"><h3><u>Set string tabs</u></h3></a>
+<br>
+Macro: <strong>ST</strong> <var>&lt;tab number&gt; L | R | C | J [ QUAD ]</var>
+
+<p>
+After string tabs have been marked off on an input line (see
+<a href="#INLINE_ST">\*[ST]...\*[STX]</a>),
+you need to &quot;set&quot; them by giving them a direction
+and, optionally, the <strong>QUAD</strong> argument. In this
+respect, <strong>ST</strong> is like
+<a href="#TAB_SET">TAB_SET</a>
+except that you don't have to give <strong>ST</strong> an indent
+or a line length (that's already taken care of, inline, by
+<kbd>\*[ST]...\*[STX]</kbd>). If you want string tab 1 to be
+left, enter
+<p>
+<pre>
+ .ST 1 L
+</pre>
+
+If you want it to be left and
+<a href="definitions.html#TERMS_FILLED">filled</a>, enter
+<p>
+<pre>
+ .ST 1 L QUAD
+</pre>
+
+If you want it to be justified, enter
+<p>
+<pre>
+ .ST 1 J
+</pre>
+
+See the
+<a href="#STRING_TABS_TUT">Quickie tutorial on string tabs</a>
+for a full explanation of setting up string tabs.
+<br>
+
+<!---TAB--->
+
+<hr width="66%" align="left">
+<a name="TAB"><h3><u>Call tabs</u></h3></a>
+<br>
+Macro: <strong>TAB</strong> <var>&lt;tab number&gt;</var>
+<br>
+Alias: <strong>TB</strong>
+<p>
+After tabs have been defined (either with
+<a href="#TAB_SET">TAB_SET</a>
+or
+<a href="#ST">ST</a>),
+<strong>TAB</strong> moves to whatever tab number you pass it as
+an argument. For example,
+<p>
+<pre>
+ .TAB 3
+</pre>
+
+moves you to tab 3.
+<p>
+<a name="NOTE_TN"></a>
+<strong>NOTE:</strong> <strong>TAB</strong> breaks the line preceding
+it and advances 1 linespace. Hence,
+<p>
+<pre>
+ .TAB 1
+ A line of text in tab 1.
+ .TAB 2
+ A line of text in tab 2.
+</pre>
+
+produces, on output
+<p>
+<pre>
+ A line of text in tab 1.
+ A line of text in tab 2.
+</pre>
+
+If you want the tabs to line up, use
+<a href="#TN">TN</a>
+(Tab Next), like this:
+<p>
+<pre>
+ .TAB 1
+ A line of text in tab 1.
+ .TN
+ A line of text in tab 2.
+</pre>
+
+which produces
+<p>
+<pre>
+ A line of text in tab 1. A line of text in tab 2.
+</pre>
+
+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="#MULTI_COLUMNS">multi-column</a> macros.
+<p>
+<strong>ADDITIONAL NOTE:</strong> Any indents in effect prior to
+calling a tab are automatically turned off by <strong>TAB</strong>.
+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.
+<br>
+
+<!---TN--->
+
+<hr width="66%" align="left">
+<a name="TN"><h3><u>Tab Next</u></h3></a>
+<br>
+Macro: <strong>TN</strong>
+<br>
+
+<p>
+<strong>TN</strong> 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 <strong>TAB</strong> macro for an
+example of how <strong>TN</strong> works.
+<p>
+<strong>NOTE:</strong> <strong>TN</strong> is like
+<a href="#EL">EL</a>
+in that it doesn't work as advertised on the last line before a
+footer trap is sprung. If you need to use <strong>TN</strong>
+on the last line of a page with a footer trap, turn the trap off with
+<a href="goodies.html#TRAP">TRAP</a>,
+as in this example:
+<p>
+<pre>
+ .TAB_SET 1 0 1P L
+ .TAB_SET 2 1P 20P L
+ .TAB 1
+ .TRAP OFF
+ 1.
+ .TN
+ The first rule of survival is &quot;make and keep good friends.&quot;
+ .TRAP
+</pre>
+
+The above, at the bottom of a page, will look something like this:
+<p>
+<pre>
+ 1. The first rule of survival is &quot;make and keep good friends.&quot;
+</pre>
+
+If you hadn't turned the trap off before <kbd>.TN</kbd>,
+&quot;1.&quot; would have appeared as the last line on the page,
+with &quot;The first rule of survival...&quot; being the first
+line on the next page.
+<br>
+
+<!---TQ--->
+
+<hr width="66%" align="left">
+<a name="TQ"><h3><u>Tab Quit</u></h3></a>
+<br>
+Macro: <strong>TQ</strong>
+<br>
+
+<p>
+<strong>TQ</strong> 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#TERMS_FILLED">fill mode</a>
+that were in effect prior to invoking any tabs.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_MULTI_COLUMNS"></a>
+
+<a name="MULTI_COLUMNS">
+ <h2><u>Multi-Columns</u></h2>
+</a>
+
+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#TERMS_BASELINE">baseline</a>
+of the first line in the previous tab. To demonstrate:
+<p>
+<pre>
+ .TAB 1
+ Carrots
+ Potatoes
+ Broccoli
+ .TAB 2
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+</pre>
+
+produces, on output
+<p>
+<pre>
+ Carrots
+ Potatoes
+ Broccoli
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+</pre>
+
+The multi-column macros allow you to set tabs in columnar
+fashion, rather than line by line. When you invoke multi-column
+mode (with
+<a href="#MCO">MCO</a>),
+<strong>mom</strong> saves the position of the current baseline.
+<a href="#MCR">MCR</a>
+(Multi-column return) at any point while multi-columns are on
+returns you to the saved position. Exiting multi-columns
+(<a href="#MCX">MCX</a>)
+quits the current tab (if you'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>
+Using our example above, but setting it in multi-column mode,
+<p>
+<pre>
+ .MCO
+ .TAB 1
+ Carrots
+ Potatoes
+ Broccoli
+ .MCR
+ .TAB 2
+ $1.99/5 lbs
+ $0.25/lb
+ $0.99/bunch
+ .MCX
+</pre>
+
+produces
+<p>
+<pre>
+ Carrots $1.99/5 lbs
+ Potatoes $0.25/lb
+ Broccoli $0.99/bunch
+</pre>
+
+<strong>NOTE:</strong> Do not confuse <strong>MCO</strong> with
+the
+<a href="docprocessing.html#COLUMNS">COLUMNS</a>
+macro in the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+
+<a name="INDEX_MULTI_COLUMNS">
+ <h3><u>Columns macro list</u></h3>
+</a>
+<ul>
+ <li><a href="#MCO">MCO (begin multi-column setting)</a>
+ <li><a href="#MCR">MCR (return to top of column)</a>
+ <li><a href="#MCX">MCX (exit multi-columns)</a>
+</ul>
+
+<!---MCO--->
+
+<hr width="66%" align="left">
+<a name="MCO"><h3><u>Begin multi-column setting</u></h3></a>
+<br>
+Macro: <strong>MCO</strong>
+<br>
+
+<p>
+<strong>MCO</strong>
+(<strong>M</strong>ulti-<strong>C</strong>olumn <strong>O</strong>n)
+is the macro you use to begin multi-column setting. It marks
+the current
+<a href="definitions.html#TERMS_BASELINE">baseline</a>
+as the top of your columns, for use late with
+<a href="#MCR">MCR</a>. See the
+<a href="#MULTI_COLUMNS">introduction to columns</a>
+for an explanation of multi-columns and some sample
+input.
+<p>
+<strong>NOTE:</strong> Do not confuse <strong>MCO</strong> with
+the
+<a href="docprocessing.html#COLUMNS">COLUMNS</a>
+macro in the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+<br>
+
+<!---MCR--->
+
+<hr width="66%" align="left">
+<a name="MCR"><h3><u>Return to top of column</u></h3></a>
+<br>
+Macro: <strong>MCR</strong>
+<br>
+
+<p>
+Once you've turned multi-columns on (with
+<a href="#MCO">MCO</a>),
+<strong>MCR</strong>, at any time, returns you to the top of
+your columns.
+<br>
+
+<!---MCX--->
+
+<hr width="66%" align="left">
+<a name="MCX"><h3><u>Exit multi-columns</u></h3></a>
+<br>
+Macro: <strong>MCX</strong> <var>[ &lt;distance to advance below longest column&gt; ]</var>
+<br>
+<em>*Optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>MCX</strong> takes you out of any tab you were in (by silently
+invoking
+<a href="#TQ">TQ</a>) and advances to the bottom of the longest
+column.
+<p>
+Without an argument, <strong>MCX</strong> advances 1 linespace
+below the longest column. Linespace, in this instance, is the
+<a href="definitions.html#TERMS_LEADING">leading</a>
+in effect <em>at the moment <strong>MCX</strong> is
+invoked.</em>
+<p>
+If you pass the <var>&lt;distance&gt;</var> argument to
+<strong>MCX</strong>, it advances 1 linespace below the longest
+column (see above) PLUS the distance specified by the argumemnt.
+The argument requires a unit of measure; therefore, to advance
+an extra 6 points below where <strong>MCX</strong> would
+normally place you, you'd enter
+<p>
+<pre>
+ .MCX 6p
+</pre>
+
+<strong>NOTE:</strong> If you wish to advance a precise distance
+below the
+<a href="definitions.html#TERMS_BASELINE">baseline</a>
+of the longest column, use <strong>MCX</strong> with an
+argument of 0 (zero; no unit of measure required) in conjunction
+with the
+<a href="#ALD">ALD</a>
+macro, like this:
+<p>
+<pre>
+ .MCX 0
+ .ALD 24p
+</pre>
+
+The above advances to precisely 24 points below the baseline
+of the longest column.
+<br>
+<hr>
+
+<!====================================================================>
+
+<a name="INTRO_INDENTS"></a>
+
+<a name="INDENTS">
+ <h2><u>Indents</u></h2>
+</a>
+
+With <strong>mom</strong>'s indents, you can indent from the left,
+the right, or both margins. In addition, <strong>mom</strong>
+provides temporary left indents (i.e. only one line is indented,
+as at the start of a paragraph) and &quot;hanging&quot; left indents
+(the reverse of a temporary indent; the first line isn't indented,
+subsequent lines are).
+
+<a name="INDENTS_TUT"><h3><u>A brief explanation of how mom handles indents</u></h3></a>
+<p>
+<strong>Mom</strong> provides five kinds of indents: left, right,
+both, temporary, and hanging. Each is invoked by its own name:
+<br>
+<ul>
+ <li><strong>IL</strong> = <strong>I</strong>ndent <strong>L</strong>eft
+ <li><strong>IR</strong> = <strong>I</strong>ndent <strong>R</strong>ight
+ <li><strong>IB</strong> = <strong>I</strong>ndent <strong>B</strong>oth
+ <li><strong>HI</strong> = <strong>H</strong>anging <strong>I</strong>ndent
+ <li><strong>TI</strong> = <strong>T</strong>emporary <strong>I</strong>ndent
+</ul>
+<br>
+In addition, there are four macros to control exiting from
+indents:
+<br>
+<ul>
+ <li><strong>IX</strong>&nbsp;&nbsp;= exit all active indents
+ <li><strong>ILX</strong>&nbsp;= exit indent style left
+ <li><strong>IRX</strong>&nbsp;= exit indent style right
+ <li><strong>IBX</strong>&nbsp;= exit indent style both
+</ul>
+<br>
+This section deals exclusively with <strong>IL, IR</strong> and
+<strong>IB</strong>. For an explanation
+of hanging and temporary indents -- how they work and how to use
+them -- see
+<a href="#HI">Hanging indents</a>
+and
+<a href="#TI">Temporary indents</a>.
+<p>
+The first time you invoke any of <strong>mom</strong>'s indents,
+you must supply a measure. For example,
+<p>
+<pre>
+ .IL 2P
+</pre>
+
+indents text 2 picas from the left margin (or current tab
+indent).
+<p>
+When you want to exit the above indent, use either
+<p>
+<pre>
+ .IX
+ or
+ .ILX
+</pre>
+
+The next time you want the same indent, invoke it without the
+argument, like this:
+<p>
+<pre>
+ .IL
+</pre>
+
+As you can see, once you've supplied a measure to an indent macro
+<strong>mom</strong> stores the value, obviating the need to repeat
+it on subsequent invocations. And <strong>mom</strong> doesn't just
+store the measure -- she hangs on to it tenaciously. Arguments passed
+to <strong>IL, IR</strong> and <strong>IB</strong> are additive.
+Consider the following:
+<p>
+<pre>
+ .LL 20P
+ .IR 2P \"Indent right by 2 picas
+ A first block of text...
+ ...
+ ...
+ .IX \"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...
+ ...
+ ...
+</pre>
+
+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 <strong>IX</strong>, is, as you'd expect, set to the full
+measure. The third block of text -- the one to pay attention to --
+is not right indented by 2 picas, but rather by 4 picas.
+<strong>Mom</strong> adds the value of arguments to <strong>IL,
+IR</strong> and <strong>IB</strong> to whatever value is already
+in effect.
+<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
+<strong>IR</strong>), you would enter <kbd>.IR</kbd> without an
+argument.
+<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).
+<p>
+<pre>
+ .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.
+</pre>
+
+Sometimes, you may want to clear out the stored indent values -- let
+<strong>mom</strong> start indenting with a clean slate, as it were.
+Giving the optional argument <kbd>CLEAR</kbd> to any of the
+&quot;indent quit&quot; macros resets them to zero.
+<br>
+<ul>
+ <li><strong>IX CLEAR</strong>&nbsp;&nbsp;= quit and clear all indents
+ <li><strong>ILX CLEAR</strong>&nbsp;= quit and clear indent style left
+ <li><strong>IRX CLEAR</strong>&nbsp;= quit and clear indent style right
+ <li><strong>IBX CLEAR</strong>&nbsp;= quit and clear indent style both
+</ul>
+<br>
+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.
+<p>
+<pre>
+ .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
+</pre>
+
+If, at <kbd>.IRX</kbd>, you wanted the text afterward to have no
+indents (either left or right), you would enter <kbd>.IX</kbd>,
+which exits all indent styles at once.
+<p>
+<strong>A word of advice:</strong> 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's better to use tabs, or actually change the left margin or the
+line length. <strong>Mom</strong>'s indenting macros are flexible
+and powerful, but easy to get tangled up in. Personally, I don't
+use them much, except for cutarounds and multi-level lists à la html,
+at which they excel.
+<p>
+<strong>NOTE:</strong> see the section
+<a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
+for information and advice on using idents with the
+<a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
+
+<a name="INDEX_INDENTS"><h3><u>Indents macro list</u></h3>
+<ul>
+ <li><a href="#IL">IL</a>&nbsp;&nbsp;(Indent left)
+ <li><a href="#IR">IR</a>&nbsp;&nbsp;(Indent right)
+ <li><a href="#IB">IB</a>&nbsp;&nbsp;(Indent both)
+ <li><a href="#TI">TI</a>&nbsp;&nbsp;(Temporary indent, left)
+ <li><a href="#HI">HI</a>&nbsp;&nbsp;(Hanging Indent)
+ <ul>
+ <li><a href="#NUM_LISTS">A recipe for numbered lists</a>
+ </ul>
+ <li><a href="#IX">IX</a>&nbsp;&nbsp;(Exit indents, all)
+ <li><a href="#IX">ILX</a>&nbsp;(Exit indent style left)
+ <li><a href="#IX">IRX</a>&nbsp;(Exit indent style right)
+ <li><a href="#IX">IBX</a>&nbsp;(Exit indent style both)
+</ul>
+
+<!---IL--->
+
+<hr width="66%" align="left">
+<a name="IL"><h3><u>Indent left</u></h3></a>
+<br>
+Macro: <strong>IL</strong> <var>[ &lt;measure&gt; ]</var>
+<br>
+<em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>IL</strong> indents text from the left margin of the page,
+or if you're in a tab, from the left edge of the tab. Once
+<strong>IL</strong> is on, the left indent is applied uniformly to
+every subsequent line of text, even if you change the line length.
+<p>
+The first time you invoke <strong>IL</strong>, 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
+<a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
+<a href="definitions.html#TERMS_INLINES">inline esacpe</a>
+may be used to specify a text-dependent measure, in which case
+no unit of measure is required. For example,
+<p>
+<pre>
+ .IL \w'margarine'
+</pre>
+
+indents text by the width of the word &quot;margarine&quot;.
+<p>
+With no argument, <strong>IL</strong> indents by its last
+active value. See the
+<a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
+for more details.
+<p>
+<strong>NOTE:</strong> Calling a tab (with
+<a href="#TAB">TAB</a>)
+automatically cancels any active indents.
+<p>
+<strong>ADDITIONAL NOTE:</strong> Invoking <strong>IL</strong>
+automtically turns off <strong>IB</strong>.
+<br>
+
+<!---IR--->
+
+<hr width="66%" align="left">
+<a name="IR"><h3><u>Indent right</u></h3></a>
+<br>
+Macro: <strong>IR</strong> <var>[ &lt;measure&gt; ]</var>
+<br>
+<em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>IR</strong> indents text from the right margin of the
+page, or if you're in a tab, from the end of the tab.
+<p>
+The first time you invoke <strong>IR</strong>, 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
+<a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
+<a href="definitions.html#TERMS_INLINES">inline esacpe</a>
+may be used to specify a text-dependent measure, in which case
+no unit of measure is required. For example,
+<p>
+<pre>
+ .IR \w'jello'
+</pre>
+
+indents text by the width of the word &quot;jello&quot;.
+<p>
+With no argument, <strong>IR</strong> indents by its last
+active value. See the
+<a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
+for more details.
+<p>
+<strong>NOTE:</strong> Calling a tab (with
+<a href="#TAB">TAB</a>)
+automatically cancels any active indents.
+<p>
+<strong>ADDITIONAL NOTE:</strong> Invoking <strong>IR</strong>
+automtically turns off <strong>IB</strong>.
+<br>
+
+<!---IB--->
+
+<hr width="66%" align="left">
+<a name="IB"><h3><u>Indent both</u></h3></a>
+<br>
+Macro: <strong>IB</strong> <var>[ &lt;left measure&gt; &lt;right measure&gt; ]</var>
+<br>
+<em>*The optional arguments require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+<strong>IB</strong> allows you to set or invoke a left and a right
+indent at the same time.
+<p>
+At its first invocation, you must supply a measure for both indents;
+at subsequent invocations when you wish to supply a measure, both must
+be given again. As with <strong>IL</strong> and <strong>IR</strong>,
+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.
+<p>
+<strong>A word of advice:</strong> If you need to manipulate left and
+right indents separately, use a combination of <strong>IL</strong>
+and <strong>IR</strong> instead of <strong>IB</strong>. You'll
+save yourself a lot of grief.
+<p>
+A minus sign may be prepended to the arguments to subtract from their
+current values. The
+<a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
+<a href="definitions.html#TERMS_INLINES">inline esacpe</a>
+may be used to specify text-dependent measures, in which case
+no unit of measure is required. For example,
+<p>
+<pre>
+ .IB \w'margaraine' \w'jello'
+</pre>
+
+left indents text by the width of the word &quot;margarine&quot;
+and right indents by the width of &quot;jello&quot;.
+<p>
+Like <strong>IL</strong> and <strong>IR</strong>, <strong>IB</strong>
+with no argument indents by its last active values. See the
+<a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
+for more details.
+<p>
+<strong>NOTE:</strong> Calling a tab (with
+<a href="#TAB">TAB</a>)
+automatically cancels any active indents.
+<p>
+<strong>ADDITIONAL NOTE:</strong> Invoking <strong>IB</strong>
+automtically turns off <strong>IL</strong> and
+<strong>IR</strong>.
+<br>
+
+<!---TI--->
+
+<hr width="66%" align="left">
+<a name="TI"><h3><u>Temporary (left) indent</u></h3></a>
+<br>
+Macro: <strong>TI</strong> <var>[ &lt;measure&gt; ]</var>
+<br>
+<em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+A temporary indent is one that applies only to the first line of
+text that comes after it. It's chief use is indenting the first
+line of paragraphs. (<strong>Mom</strong>'s
+<a href="docprocessing.html#PP">PP</a>
+macro, for example, uses a temporary indent.)
+<p>
+The first time you invoke <strong>TI</strong>, you must give it
+a measure. If you want to indent the first line of a
+paragraph by, say, 2
+<a href="definitions.html#TERMS_EM">ems</a>,
+do
+<p>
+<pre>
+ .TI 2m
+</pre>
+
+Subsequent invocations of <strong>TI</strong> do not require you
+to supply a measure; <strong>mom</strong> keeps track of the
+last measure you gave it.
+<p>
+Because temporary indents are temporary, there's no need to turn
+them off.
+<p>
+<strong>IMPORTANT:</strong> Unlike <strong>IL, IR</strong> and
+<strong>IB</strong>, measures given to <strong>TI</strong>
+are NOT additive. In the following example, the second <kbd>.TI
+2P</kbd> is exactly 2 picas.
+<p>
+<pre>
+ .TI 1P
+ The beginning of a paragraph...
+ .TI 2P
+ The beginning of another paragraph...
+</pre>
+
+<!---HI--->
+
+<hr width="66%" align="left">
+<a name="HI"><h3><u>Hanging indent</u></h3></a>
+<br>
+Macro: <strong>HI</strong> <var>[ &lt;measure&gt; ]</var>
+<br>
+<em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
+
+<p>
+A hanging indent looks like this:
+<p>
+<pre>
+ 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...
+</pre>
+
+The first line of text &quot;hangs&quot; outside the left
+margin.
+<p>
+In order to use hanging indents, you must first have a left indent
+active (set with either
+<a href="#IL">IL</a>
+or
+<a href="#IB">IB</a>).
+<strong>Mom</strong> will not hang text outside the left margin set with
+<a href="#L_MARGIN">L_MARGIN</a>
+or outside the left margin of a tab.
+<p>
+The first time you invoke <strong>HI</strong>, you must give it
+a measure. If you want the first line of a paragraph to hang by,
+say, 1 pica, do
+<p>
+<pre>
+ .IL 1P
+ .HI 1P
+</pre>
+
+Subsequent invocations of <strong>HI</strong> do not require you
+to supply a measure; <strong>mom</strong> keeps track of the
+last measure you gave it.
+<p>
+Generally speaking, you should invoke <strong>HI</strong> immediately
+prior to the line you want hung (i.e. without any intervening
+<a href="definitions.html#TERMS_CONTROLLINES">control lines</a>).
+And because hanging indents affect only one line, there's no need to turn
+them off.
+
+<a name="NUM_LISTS"><h3><u>A recipe for numbered lists</u></h3></a>
+<p>
+A common use for hanging indents is setting numbered lists.
+Consider the following example:
+<p>
+<pre>
+ .PAGE 8.5i 11i 1i 1i 1i 1i
+ .FAMILY T
+ .FT R
+ .PS 12
+ .LS 14
+ .JUSTIFY
+ .KERN
+ .SS 0
+ .IL \w'\0\0.' \"Indent left by 2 figure spaces and a period
+ .HI \w'\0\0.' \"Hang first line of text back by 2 figure spaces and a period
+ 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's word on the subject except
+ Mr. Adams'.
+ .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'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?
+</pre>
+
+First, we invoke a left indent with a measure equal to the width
+of 2
+<a href="definitions.html#TERMS_FIGURESPACE">figures spaces</a>
+plus a period (using the
+<a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
+inline escape). At this point, the left indent is active; text
+afterward 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 &quot;out to the left margin&quot;).
+Because we begin the first line with a number, a period, and a
+figure space, the actual text (&quot;The most important point...&quot;)
+starts at exactly the same spot as the indented lines that
+follow.
+<p>
+Notice that subsequent invocations of <strong>HI</strong> without a
+measure produce exactly the same effect.
+<p>
+Paste the example above into a file and preview it with <kbd>groff -mom -X
+&lt;filename&gt;</kbd> to see hanging indents in action.
+<p>
+<strong>IMPORTANT:</strong> Unlike <strong>IL, IR</strong> and
+<strong>IB</strong>, measures given to <strong>HI</strong>
+are NOT additive. Each time you pass a measure to
+<strong>HI</strong>, the measure is treated literally.
+<br>
+
+<!---IX--->
+
+<hr width="66%" align="left">
+<a name="IX"><h3><u>Quitting indents</u></h3></a>
+<br>
+Macro: <strong>IX</strong>&nbsp;&nbsp;<var>[ CLEAR ]</var> (quit any/all indents)
+<br>
+Macro: <strong>ILX</strong>&nbsp;<var>[ CLEAR ]</var> (quit <strong>IL</strong>)
+<br>
+Macro: <strong>IRX</strong>&nbsp;<var>[ CLEAR ]</var> (quit <strong>IR</strong>)
+<br>
+Macro: <strong>IBX</strong>&nbsp;<var>[ CLEAR ]</var> (quit <strong>IB</strong>)
+
+<p>
+Without an argument, the macros to quit indents merely restore your
+original left margin 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>
+If you pass these macros the optional argument <strong>CLEAR</strong>,
+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>
+<strong>IX CLEAR</strong>, as you'd suspect, quits and clears
+the values for all indent styles at once.
+
+<p>
+<hr>
+<a href="goodies.html#TOP">Next</a>&nbsp;&nbsp;
+<a href="definitions.html#TOP">Prev</a>&nbsp;&nbsp;
+<a href="#TOP">Top</a>&nbsp;&nbsp;
+<a href="toc.html">Back to Table of Contents</a>
+</body>
+</html>