Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / groff / contrib / mom / momdoc / typesetting.html
1 <html>
2 <head>
3 <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
4 <title>Mom -- Typesetting Macros</title>
5 </head>
6 <body bgcolor="#dfdfdf">
7
8 <!====================================================================>
9
10 <a href="goodies.html#TOP">Next</a>&nbsp;&nbsp;
11 <a href="definitions.html#TOP">Prev</a>&nbsp;&nbsp;
12 <a href="toc.html">Back to Table of Contents</a>
13
14 <a name="TOP"></a>
15 <a name="MACROS_TYPESETTING">
16         <h1 align="center"><u>THE TYPESETTING MACROS</u></h1>
17 </a>
18
19 <a href="#INTRO_MACROS_TYPESETTING">Introduction to the typesetting macros</a>
20 <br>
21 <ul>
22         <li><strong>PAGE SETUP</strong>
23         <ul>
24                 <li><a href="#INTRO_SETUP">Introduction to Page Setup</a>
25                 <li><a href="#INDEX_SETUP">List of macros</a>
26         </ul>
27         <li><strong>BASIC TYPESETTING PARAMETERS</strong>
28         <ul>
29                 <li><a href="#INTRO_BASIC_PARAMS">Introduction to Basic Parameters</a>
30                 <li><a href="#INDEX_BASIC">List of macros</a>
31         </ul>
32         <li><strong>JUSTIFYING, QUADDING, FILLING, BREAKING LINES</strong>
33         <ul>
34                 <li><a href="#INTRO_JUST_QUAD_FILL">Introduction to justify, quad, fill, break</a>
35                 <li><a href="#INDEX_JUST">List of macros</a>
36         </ul>
37         <li><strong>TYPOGRAPHIC REFINEMENTS</strong>
38         <ul>
39                 <li><a href="#INTRO_REFINEMENTS">Introduction to typographic refinements</a>
40                 <li><a href="#INDEX_REFINEMENTS">List of macros</a>
41         </ul>
42         <li><strong>TYPE MODIFICATIONS -- pseudo italic, bold, condense, extend</strong>
43         <ul>
44                 <li><a href="#INTRO_MODIFICATIONS">Introduction to type modifications</a>
45                 <li><a href="#INDEX_MODIFICATIONS">List of macros</a>
46         </ul>
47         <li><strong>VERTICAL MOVEMENTS</strong>
48         <ul>
49                 <li><a href="#INTRO_ALDRLD">Introduction to vertical movements</a>
50                 <li><a href="#INDEX_ALDRLD">List of macros</a>
51         </ul>
52         <li><strong>TABS</strong>
53         <ul>
54                 <li><a href="#INTRO_TABS">Introduction to tabs</a>
55                 <li><a href="#TYPESETTING_TABS">Typesetting tabs</a>
56                 <ul>
57                     <li><a href="#TYPESETTING_TABS_TUT">Quickie tutorial</a>
58                 </ul>
59                 <li><a href="#STRING_TABS">String tabs</a>
60                 <ul>
61                     <li><a href="#STRING_TABS_TUT">Quickie tutorial</a>
62                 </ul>
63                 <li><a href="#INDEX_TABS">List of macros</a>
64         </ul>
65         <li><strong>MULTI-COLUMNS</strong>
66         <ul>
67                 <li><a href="#INTRO_MULTI_COLUMNS">Introduction to multi-columns</a>
68                 <li><a href="#INDEX_MULTI_COLUMNS">List of macros</a>
69         </ul>
70         <li><strong>INDENTS</strong>
71         <ul>
72                 <li><a href="#INTRO_INDENTS">Introduction to indents</a>
73                 <li><a href="#INDEX_INDENTS">List of macros</a>
74         </ul>
75         <li><strong>GOODIES</strong>
76         <ul>
77                 <li><a href="goodies.html#GOODIES">Introduction to goodies</a>
78                 <li><a href="goodies.html#INDEX_GOODIES">List of macros</a>
79         </ul>
80         <li><strong>INLINE ESCAPES</strong>
81         <ul>
82                 <li><a href="inlines.html#INLINE_ESCAPES_INTRO">Introduction to inline escapes</a>
83                 <li><a href="inlines.html#INDEX_INLINES">List of inline escapes</a>
84         </ul>
85 </ul>
86 <hr>
87
88 <h2><a name="INTRO_MACROS_TYPESETTING"><u>Introduction to the typesetting macros</u></a></h2>
89
90 <strong>Mom</strong>'s typesetting macros provide access to
91 groff's typesetting capabilities.  Aside from controlling basic
92 type parameters (family, font, line length, point size, leading),
93 <strong>mom</strong>'s macros fine-tune wordspacing, letterspacing,
94 kerning, hyphenation, and so on.  In addition, <strong>mom</strong>
95 has true typesetting tabs, string tabs, multiple indent styles,
96 line padding, and a batch of other goodies.
97 <p>
98 In some cases, <strong>mom</strong>'s typesetting macros merely imitate
99 groff primitives.  In others, they approach typesetting concerns in
100 conceptually new ways (for groff, at least).  This should present no
101 problem for newcomers to groff who are learning <strong>mom</strong>.
102 Old groff hands should be careful.  Just because it looks like a
103 duck and walks like a duck does not, in this instance, mean that it
104 is a duck.  When using <strong>mom</strong>, stay away from groff
105 primitives if <strong>mom</strong> provides a macro that accomplishes
106 the same thing.
107 <p>
108 <strong>Mom</strong>'s typesetting macros can be used as a standalone
109 package, independent of the
110 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
111 With them, you can typeset on-the-fly.  Document covers, your best
112 friend's résumé, a poster for a lost dog -- none of these requires
113 structured document processing (page headers, paragraphs, heads,
114 footnotes, etc).  What they do demand is precise control over every
115 element on the page.  The typesetting macros give you that control.
116 <br>
117 <hr>
118
119 <!====================================================================>
120
121 <a name="INTRO_SETUP"></a>
122
123 <a name="PAGE_MARGINS">
124         <h2><u>Page setup: paper size and page margins</u></h2>
125 </a>
126
127 The page setup macros establish the physical dimensions of your
128 page and the margins you want it to have.  <strong>Groff</strong>
129 has defaults for these, but I recommend setting them at the top
130 of your files anyway unless you're using <strong>mom</strong>'s
131 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
132 and are content with her defaults.
133 <p>
134 The
135 <a href="#PAPER">PAPER</a>
136 macro provides a shortcut for setting the page to the correct dimensions
137 for a number of well-known, established paper sizes.  The
138 <a href="#PAGE">PAGE</a>
139 macro provides a convenient way of setting the page dimensions and
140 some or all of the page margins with a single macro.
141 <br>
142
143 <a name="INDEX_SETUP">
144         <h3><u>Page setup macros list</u></h3>
145 </a>
146
147 <ul>
148         <li><a href="#PAGEWIDTH">PAGEWIDTH</a> (page width)
149         <li><a href="#PAGELENGTH">PAGELENGTH</a> (page length)
150         <li><a href="#PAPER">PAPER</a> (common paper sizes)
151         <li><a href="#L_MARGIN">L_MARGIN</a> (left margin)
152         <li><a href="#R_MARGIN">R_MARGIN</a> (right margin)
153         <li><a href="#T_MARGIN">T_MARGIN</a> (top margin)
154         <li><a href="#B_MARGIN">B_MARGIN</a> (bottom margin)
155         <li><a href="#PAGE">PAGE</a> (page dimensions and margins all in one fell swoop)
156         <li><a href="#NEWPAGE">NEWPAGE</a> (start a new page)
157 </ul>
158
159 <!---PAGEWIDTH--->
160
161 <hr width="66%" align="left">
162         <a name="PAGEWIDTH"><h3><u>Page width</u></h3></a>
163 <br>
164 Macro: <strong>PAGEWIDTH</strong> <var>&lt;width of printer sheet&gt;</var>
165 <br>
166 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
167
168 <p>
169 The argument to <strong>PAGEWIDTH</strong> is the width of your
170 printer sheet.  <strong>PAGEWIDTH</strong> requires a unit of measure.
171 Decimal fractions are allowed.  Hence, to tell <strong>mom</strong>
172 the width of your printer sheet is 8-1/2 inches, you enter
173 <p>
174 <pre>
175         .PAGEWIDTH 8.5i
176 </pre>
177
178 <!---PAGELENGTH--->
179
180 <hr width="66%" align="left">
181         <a name="PAGELENGTH"><h3><u>Page length</u></h3></a>
182 <br>
183 Macro: <strong>PAGELENGTH</strong> <var>&lt;length of printer sheet&gt;</var>
184 <br>
185 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
186
187 <p>
188 <strong>PAGELENGTH</strong> tells <strong>mom</strong> how long your
189 printer sheet is.  It works just like
190 <strong>PAGEWIDTH</strong>.  Therefore, to tell
191 <strong>mom</strong> your printer sheet is 11 inches long, you
192 enter
193 <p>
194 <pre>
195         .PAGELENGTH 11i
196 </pre>
197
198 <!---PAPER--->
199
200 <hr width="66%" align="left">
201         <a name="PAPER"><h3><u>Paper</u></h3></a>
202 <br>
203 Macro: <strong>PAPER</strong> <var>&lt;paper type&gt;</var>
204
205 <p>
206 <strong>PAPER</strong> provides a convenient way to set the page
207 dimensions for some common printer sheet sizes.  <var>&lt;paper
208 type&gt;</var> can be one of:
209 <p>
210 <pre>
211         LETTER
212         LEGAL
213         STATEMENT
214         TABLOID
215         LEDGER
216         FOLIO
217         QUARTO
218         10x14
219         EXECUTIVE
220         A3
221         A4
222         A5
223         B4
224         B5 
225 </pre>
226
227 Say, for example, you have A4-sized sheets in your printer.
228 It's shorter (and easier) to enter
229 <p>
230 <pre>
231         .PAPER A4
232 </pre>
233
234 than to remember the correct dimensions and enter
235 <p>
236 <pre>
237         .PAGEWIDTH  595p
238         .PAGELENGTH 842p
239 </pre>
240
241 <!---L_MARGIN--->
242
243 <hr width="66%" align="left">
244         <a name="L_MARGIN"><h3><u>Left margin</u></h3></a>
245 <br>
246 Macro: <strong>L_MARGIN</strong> <var>&lt;left margin&gt;</var>
247 <br>
248 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
249
250 <p>
251 <strong>L_MARGIN</strong> establishes the distance from the left edge
252 of the printer sheet at which you want your type to start.  It may
253 be used any time, and remains in effect until you enter a new value.
254 <p>
255 <a href="#IL">Left indents</a>
256 and
257 <a href="#TABS">tabs</a>
258 are calculated from the value you pass to <strong>L_MARGIN</strong>,
259 hence it's always a good idea to invoke it before starting any serious
260 typesetting.  A unit of measure is required.  Decimal fractions are
261 allowed.  Therefore, to set the left margin at 3 picas (1/2 inch),
262 you'd enter either
263 <p>
264 <pre>
265         .L_MARGIN 3P
266         &nbsp;&nbsp;or
267         .L_MARGIN .5i
268 </pre>
269
270 If you use the macros
271 <a href="#PAGE">PAGE</a>,
272 <a href="#PAGEWIDTH">PAGEWIDTH</a>
273 or
274 <a href="#PAPER">PAPER</a>
275 without invoking <strong>L_MARGIN</strong> (either before
276 or afterwards), <strong>mom</strong> automatically sets
277 </strong>L_MARGIN</strong> to 1 inch.
278 <p>
279 <strong>NOTE:</strong> L_MARGIN behaves in a special way when you're
280 using the
281 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
282 See
283 <a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
284 for an explanation.
285 <br>
286
287 <!---R_MARGIN--->
288
289 <hr width="66%" align="left">
290         <a name="R_MARGIN"><h3><u>Right margin</u></h3></a>
291 <br>
292 Macro: <strong>R_MARGIN</strong> <var>&lt;right margin&gt;</var>
293 <br>
294 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
295
296 <p>
297 <strong>R_MARGIN</strong> establishes the amount of space you
298 want between the end of typeset lines and the right hand edge
299 of the printer sheet.  In other words, it sets the line length.
300 <strong>R_MARGIN</strong> requires a unit of measure.  Decimal
301 fractions are allowed.
302 <p>
303 The <a href="#LINELENGTH">line length macro</a> (<strong>LL</strong>) can
304 be used in place of <strong>R_MARGIN</strong>.  In either case, the
305 last one invoked sets the line length.  The choice of which to use is
306 up to you.  In some instances, you may find it easier to think of a
307 section of type as having a right margin.  In others, giving a line
308 length may make more sense.
309 <p>
310 For example, if you're setting a page of type you know should have
311 6-pica margins left and right, it makes sense to enter a left and
312 right margin, like this:
313 <p>
314 <pre>
315         .L_MARGIN 6P
316         .R_MARGIN 6P
317 </pre>
318
319 That way, you don't have to worry about calculating the line
320 length.  On the other hand, if you know the line length for a
321 patch of type should be 17 picas and 3 points, entering the line
322 length with <strong>LL</strong> is much easier than calculating the
323 right margin.
324 <p>
325 <pre>
326         .LL 17P+3p
327 </pre>
328
329 If you use the macros
330 <a href="#PAGE">PAGE</a>,
331 <a href="#PAGEWIDTH">PAGEWIDTH</a>
332 or
333 <a href="#PAPER">PAPER</a>
334 without invoking <strong>R_MARGIN</strong> afterwards,
335 <strong>mom</strong> automatically sets <strong>R_MARGIN</strong>
336 to 1 inch.  If you set a line length after these macros (with
337 <a href="#LINELENGTH">LL</a>),
338 the line length calculated by <strong>R_MARGIN</strong> is, of course,
339 overridden.
340 <p>
341 <strong>IMPORTANT: R_MARGIN</strong>, if used, MUST come after
342 <a href="#PAPER">PAPER</a>,
343 <a href="#PAGEWIDTH">PAGEWIDTH</a>,
344 <a href="#L_MARGIN">L_MARGIN</a>
345 and/or
346 <a href="#PAGE">PAGE</a>
347 (if a right margin isn't given to <strong>PAGE</strong>).
348 The reason is that <strong>R_MARGIN</strong> calculates line
349 length from the overall page dimensions and the left margin.
350 Obviously, it can't make the calculation if it doesn't know the page
351 width and the left margin.
352 <p>
353 <strong>NOTE: R_MARGIN</strong> behaves in a special way
354 when you're using the
355 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
356 See
357 <a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
358 for an explanation.
359 <br>
360
361 <!---T_MARGIN--->
362
363 <hr width="66%" align="left">
364         <a name="T_MARGIN"><h3><u>Top margin</u></h3></a>
365 <br>
366 Macro: <strong>T_MARGIN</strong> <var>&lt;top margin&gt;</var>
367 <br>
368 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
369
370 <p>
371 <strong>T_MARGIN</strong> establishes the distance from the top of
372 the printer sheet at which you want your type to start.  It requires
373 a unit of measure, and decimal fractions are allowed.  To set a top
374 margin of 2-1/2 centimeters, you'd enter
375 <p>
376 <pre>
377         .T_MARGIN 2.5c
378 </pre>
379
380 <strong>T_MARGIN</strong> calculates the vertical position of the
381 first line of type on a page by treating the top edge of the printer
382 sheet as a <a href="definitions.html#TERMS_BASELINE">baseline</a>.  Therefore,
383 <p>
384 <pre>
385         .T_MARGIN 1.5i
386 </pre>
387
388 puts the baseline of the first line of type 1-1/2 inches beneath
389 the top of the page.
390 <p>
391 <strong>IMPORTANT:</strong> <strong>T_MARGIN</strong> does two
392 things: it establishes the top margin for pages that come after
393 it AND it moves to that position on the current page.  Therefore,
394 <strong>T_MARGIN</strong> should only be used at the top of a file
395 (prior to entering text) or after
396 <a href="#NEWPAGE">NEWPAGE</a>,
397 like this:
398 <p>
399 <pre>
400         .NEWPAGE
401         .T_MARGIN 6P
402         &lt;text&gt;
403 </pre>
404
405 <strong>NOTE:</strong> <strong>T_MARGIN</strong> means something
406 slightly different when you're using the
407 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
408 See
409 <a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>
410 for an explanation.
411 <br>
412
413 <!---B_MARGIN--->
414
415 <hr width="66%" align="left">
416         <a name="B_MARGIN"><h3><u>Bottom margin</u></h3></a>
417 <br>
418 Macro: <strong>B_MARGIN</strong> <var>&lt;bottom margin&gt;</var>
419 <br>
420 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
421
422 <p>
423 <strong>B_MARGIN</strong> sets a nominal position at the bottom
424 of the page beyond which you don't want your type to go.  When the
425 bottom margin is reached, <strong>mom</strong> starts a new page.
426 <strong>B_MARGIN</strong> requires a unit of measure.  Decimal
427 fractions are allowed.  To set a nominal bottom margin of 3/4 inch,
428 enter
429 <p>
430 <pre>
431         .B_MARGIN .75i
432 </pre>
433
434 Obviously, if you haven't spaced the type on your pages so that
435 the last lines fall perfectly at the bottom margin, the margin will
436 vary from page to page.  Usually, but not always, the last line of
437 type that fits on a page <em>before</em> the bottom margin causes
438 <strong>mom</strong> to start a new page.
439 <p>
440 Occasionally, owing to a peculiarity in <strong>groff</strong>,
441 an extra line will fall below the nominal bottom margin.  If you're
442 using the
443 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>,
444 this is unlikely to happen; the document processing macros are very
445 hard-nosed about aligning bottom margins.
446 <p>
447 <strong>NOTE:</strong> The meaning of <strong>B_MARGIN</strong> is
448 slightly different when you're using the document processing macros.
449 See
450 <a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>
451 for an explanation.
452 <br>
453
454 <!---PAGE--->
455
456 <hr width="66%" align="left">
457         <a name="PAGE"><h3><u>Page</u></h3></a>
458 <br>
459 Macro: <strong>PAGE</strong>
460 <var>&lt;width&gt;&nbsp;[ &lt;length&gt; [ &lt;lm&gt; [ &lt;rm&gt; [ &lt;tm&gt; [ &lt;bm&gt; ] ] ] ] ]</var>
461 <br>
462 <em>*All arguments require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
463
464 <p>
465 <strong>PAGE</strong> lets you establish paper dimensions and page
466 margins with a single macro.  The only required argument is page width.
467 The rest are optional, <strong>but they must appear in order and you can't
468 skip over any.</strong>  <var>&lt;lm&gt;, &lt;rm&gt;, &lt;tm&gt;</var>
469 and <var>&lt;bm&gt;</var> refer to the left, right, top and bottom
470 margins respectively.
471 <p>
472 Assuming your page dimensions are 11 inches by 17 inches, and that's
473 all you want to set, enter
474 <p>
475 <pre>
476         .PAGE 11i 17i
477 </pre>
478
479 If you want to set the left margin as well, say, at 1 inch,
480 <strong>PAGE</strong> would look like this:
481 <p>
482 <pre>
483         .PAGE 11i 17i 1i
484 </pre>
485
486 Now suppose you also want to set the top margin, say, at 1-1/2
487 inches.  <var>&lt;tm&gt;</var> comes after <var>&lt;rm&gt;</var>
488 in the optional arguments, but you can't skip over any arguments,
489 therefore to set the top margin, you must also give a right margin.
490 The <strong>PAGE</strong> macro would look like this:
491 <p>
492 <pre>
493         .PAGE 11i 17i 1i 1i 1.5i
494                          |   |
495         required right___|   |___top margin
496                 margin
497 </pre>
498
499 Clearly, <strong>PAGE</strong> is best used when you want a convenient
500 way to tell <strong>mom</strong> just the dimensions of your printer
501 sheet (width and length), or when you want to tell her everything
502 about the page (dimensions and all the margins), for example
503 <p>
504 <pre>
505         .PAGE 8.5i 11i 45p 45p 45p 45p
506 </pre>
507
508 This sets up an 8-1/2 by 11 inch page with margins of 45 points
509 (5/8-inch) all around.
510 <p>
511 <strong>NOTE:</strong> Only use <strong>PAGE</strong> at the
512 start of a document, before entering any text.  And remember,
513 when you're using the
514 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>,
515 top margin and bottom margin mean something slightly different than
516 when you're  using just the typesetting macros (see
517 <a href="typemacdoc.html#TB_MARGINS">Top and bottom margins in document processing</a>).
518 <p>
519 Additionally, if you invoke <strong>PAGE</strong> with a top margin
520 argument, any macros you invoke after <strong>PAGE</strong> will
521 almost certainly move the
522 <a href="definitions.html#TERMS_BASELINE">baseline</a>
523 of the first line of text down by one linespace.  To compensate, do
524 <p>
525 <pre>
526         .RLD 1v
527 </pre>
528
529 immediately before entering any text, or, if it's feasible, make
530 <strong>PAGE</strong> the last macro you invoke prior to entering text.
531 <br>
532
533 <!---NEWPAGE--->
534
535 <hr width="66%" align="left">
536 <a name="NEWPAGE"><h3><u>Start a new page</u></h3></a>
537 <br>
538 Macro: <strong>NEWPAGE</strong>
539
540 <p>
541 Whenever you want to start a new page, use <strong>NEWPAGE</strong>, by
542 itself with no argument.  <strong>Mom</strong> will finish up
543 processing the current page and move you to the top of a new one
544 (subject to the top margin set with
545 <a href="#T_MARGIN">T_MARGIN</a>.
546 <p>
547 <strong>Experts:</strong> <strong>NEWPAGE</strong> is an alias of
548 <strong>.bp</strong>.  You can use either, or mix 'n' match with
549 impunity.
550 <br>
551 <hr>
552
553 <!====================================================================>
554
555 <a name="INTRO_BASIC_PARAMS"></a>
556
557 <a name="BASIC_PARAMS">
558         <h2><u>Basic Typesetting Parameters</u></h2>
559 </a>
560
561 Basic parameter macros deal with the fundamental requirements
562 for setting type: family, font, point size, leading and line length.
563 <p>
564 If you're using the typesetting macros only, the arguments passed
565 to the basic parameter macros remain in effect until you change them.
566 The document processing macros handle things differently.  See
567 <a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
568 for an explanation.
569 <br>
570
571 <a name="INDEX_BASIC"><h3><u>Basic parameter macros list</u></h3></a>
572 <ul>
573         <li><a href="#FAMILY">FAMILY</a> (type family)
574         <li><a href="#FONT">FONT</a> (font)
575         <li><a href="#PS">PT_SIZE</a> (point size of type)
576         <li><a href="#LEADING">LS</a> (line spacing/leading)
577         <li><a href="#AUTOLEAD">AUTOLEAD</a> (automatic line spacing)
578         <li><a href="#LINELENGTH">LL</a> (line length)
579 </ul>
580
581 <!---FAMILY--->
582
583 <hr width="66%" align="left">
584 <a name="FAMILY"><h3><u>Type family</u></h3></a>
585 <br>
586 Macro: <strong>FAMILY</strong> <var>&lt;family&gt;</var>
587 <br>
588 Alias: <strong>FAM</strong>
589
590 <p>
591 <strong>FAMILY</strong> takes one argument: the name of the type family
592 you want.  Groff comes with a number of PostScript families, each
593 identified by a 1-, 2- or 3-letter mnemonic.  The standard families
594 are:
595 <table valign="baseline" summary="family">
596 <tr><td width="15"><td><strong>A</strong><td>Avant Garde
597 <tr><td><td><strong>BM</strong> <td>Bookman
598 <tr><td><td><strong>H</strong><td>Helvetica
599 <tr><td><td><strong>N</strong><td>New Century Schoolbook
600 <tr><td><td><strong>P</strong><td>Palatino
601 <tr><td><td><strong>T</strong><td>Times Roman</td></tr>
602 </table>
603 <p>
604 The argument you pass to <strong>FAMILY</strong> is the identifier at
605 left above.  For example, if you want Helvetica, enter
606 <p>
607 <pre>
608         .FAMILY H
609 </pre>
610
611 <strong>NOTE:</strong> The <a href="#FONT">font macro</a>
612 (<strong>FT</strong>) lets you to specify both the type family
613 and the desired font with a single macro.  While this saves a few
614 keystrokes, I recommend using <strong>FAMILY</strong> for family,
615 and <strong>FT</strong> for font, except where doing so is genuinely
616 inconvenient.
617 <p>
618 <strong>Experts:</strong>
619 <br>
620 If you add other PostScript families to groff's /font/devps directory,
621 be sure to follow the groff standard for naming families and fonts.
622 For example, if you add the Garamond family, name the font files
623 <p>
624 <pre>
625         GARAMONDR
626         GARAMONDI
627         GARAMONDB
628         GARAMONDBI
629 </pre>
630
631 GARAMOND then becomes a legal family name you can pass to
632 <strong>FAMILY</strong>.  (You could, of course, shorten GARAMOND to just
633 G, or GD.)  R, I, B, and BI after GARAMOND are the roman, italic,
634 bold and bold-italic fonts respectively.
635 <br>
636
637 <!---FT--->
638
639 <hr width="66%" align="left">
640 <a name="FONT"><h3><u>Font</u></h3></a>
641 <br>
642 Macro: <strong>FT</strong> <var>R | I | B | BI</var>
643
644 <p>
645 <strong>FT</strong> takes one of four possible arguments specifying the
646 desired font:
647 <table valign="baseline" summary="font">
648 <tr><td width="15"><td><strong>R</strong><td> = <td>roman
649 <tr><td><td><strong>I</strong><td> = <td>italic
650 <tr><td><td><strong>B</strong><td> = <td>bold
651 <tr><td><td><strong>BI</strong><td> = <td>bold-italic</td></tr>
652 </table>
653 <p>
654 For example, if your family is Helvetica, entering
655 <p>
656 <pre>
657         .FT B
658 </pre>
659
660 will give you the Helvetica bold font.  If your family were
661 Palatino, you'd get the Palatino bold font.
662 <p>
663 You can specify both family and font in the <strong>FT</strong> macro.
664 As an example,
665 <p>
666 <pre>
667         .FT HB
668 </pre>
669
670 sets the font to Helvetica bold.  I strongly recommend keeping
671 family and font separate.
672 <p>
673 Fonts can also be changed inline.  See
674 <a href="inlines.html#INLINE_FONTS_MOM">Inline Escapes, font control</a>.
675 <br>
676
677 <!---PT_SIZE--->
678
679 <hr width="66%" align="left">
680 <a name="PS"><h3><u>Point size of type</u></h3></a>
681 <br>
682 Macro: <strong>PT_SIZE</strong> <var>&lt;size of type in points&gt;</var>
683 <br>
684 <em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
685
686 <p>
687 <strong>PT_SIZE</strong> (Point Size) takes one argument: the size of type
688 in points.  Unlike most other macros that establish the size or measure
689 of something, <strong>PT_SIZE</strong> does not require that you supply a
690 unit of measure since it's a near universal convention that type size
691 is measured in points.  Therefore, to change the type size to, say,
692 11 points, enter
693 <p>
694 <pre>
695         .PT_SIZE 11
696 </pre>
697
698 Point sizes may be fractional (e.g.  10.25 or 12.5).
699 <p>
700 You can prepend a plus or a minus sign to the argument to
701 <strong>PT_SIZE</strong>, in which case the point size will be changed by +
702 or - the original value.  For example, if the point size is 12,
703 and you want 14, you can do
704 <p>
705 <pre>
706         .PT_SIZE +2
707 </pre>
708
709 then later reset it to 12 with
710 <p>
711 <pre>
712         .PT_SIZE -2
713 </pre>
714
715 The size of type can also be changed inline.  See
716 <a href="inlines.html#INLINE_SIZE_MOM">Inline Escapes, changing point size</a>.
717 <br>
718
719 <!---LS--->
720
721 <hr width="66%" align="left">
722 <a name="LEADING"><h3><u>Line spacing/leading</u></h3></a>
723 <br>
724 Macro: <strong>LS</strong> <var>&lt;distance between lines&gt;</var>
725 <br>
726 <em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
727
728 <p>
729 <strong>LS</strong> (Line Space) takes one argument: the distance you want, typically
730 in points, from baseline to baseline of type.  The argument may
731 be fractional (e.g. 12.25 or 14.5).  Like <strong>PT_SIZE</strong>,
732 <strong>LS</strong> does not require a unit of measure, since
733 <a href="definitions.html#TERMS_LEADING">leading</a>
734 is most often given in points.  Therefore, to set the linespace to
735 14 points, you would enter
736 <p>
737 <pre>
738         .LS 14
739 </pre>
740
741 However, if you wish, you may specify a unit of measure by appending
742 it directly to the argument passed to <strong>LS</strong>.  For example,
743 if you want a linespace of 1/4 of an inch, enter
744 <p>
745 <pre>
746         .LS .25i
747 </pre>
748
749 You can prepend a plus or a minus sign to the argument to
750 <strong>LS</strong>, in which case the line spacing will be changed
751 by + or - the original value.  For example, if the line spacing is
752 14 points, and you want 17 points, you can do
753 <p>
754 <pre>
755         .LS +3
756 </pre>
757
758 then later reset it to 14 points with
759 <p>
760 <pre>
761         .LS -3
762 </pre>
763
764 <strong>Experts:</strong>
765 <br>
766 <strong>LS</strong> should not be confused with the groff primitive
767 <strong>ls</strong>.  <strong>LS</strong> acts like <strong>vs</strong>.
768 <strong>mom</strong> does not provide a macro analogous to
769 <strong>ls</strong>.
770 <br>
771
772 <!---AUTOLEAD--->
773
774 <hr width="66%" align="left">
775 <a name="AUTOLEAD"><h3><u>Automatic line spacing</u></h3></a>
776 <br>
777 Macro: <strong>AUTOLEAD</strong> <var>&lt;amount of automatic leading&gt; [FACTOR]</var>
778 <br>
779 <em>*Does not require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
780
781 <p>
782 Without the <strong>FACTOR</strong> argument, <strong>AUTOLEAD</strong>
783 calculates the linespace for you by adding its argument to the
784 current point size of type. All subsequent <strong>PT_SIZE</strong>
785 requests automatically update the linespacing by the autolead amount.
786 <p>
787 Used in this way, <strong>AUTOLEAD</strong> does not require a unit
788 of measure; points is assumed.  However, you may use an alternate
789 unit of measure by appending it to the argument.  The argument may
790 be a decimal fraction (e.g. .5 or 2.75).
791 <p>
792 As an example, if your current point size of type is 12, entering
793 <p>
794 <pre>
795         .AUTOLEAD 2
796 </pre>
797
798 changes the linespace to 14 points, regardless any linespacing
799 already in effect.  From here on, every change to the size of type
800 (with <strong>PT_SIZE</strong>, not
801 <a href="definitions.html#TERMS_INLINES">inline</a>)
802 changes the linespace as well.  If you decrease the type size to 9
803 points, the leading decreases to 11 points.  If you increase the type
804 size to 16 points, the leading increases to 18 points.
805 <p>
806 Automatic updating of the linespacing continues until you enter a
807 &quot;manual&quot; line space value with <strong>LS</strong>.
808 <p>
809 If you give <strong>AUTOLEAD</strong> the optional
810 <strong>FACTOR</strong> argument, <strong>AUTOLEAD</strong>
811 calculates the line space as a factor of the
812 <a href="definitions.html#TERMS_NUMERICARGUMENT">numeric argument</a>
813 you gave <strong>AUTOLEAD</strong>.  For example, if your point
814 size is 12,
815 <p>
816 <pre>
817         .AUTOLEAD 1.125 FACTOR
818 </pre>
819 sets the leading at 13.5 points.  If you change the point size
820 to 14, the leading automatically changes to 15.75 (14 x 1.125).
821 <p>
822 <strong>NOTE:</strong> There's no need to prepend a plus sign (+)
823 to <strong>AUTOLEAD</strong>'s argument, although you may do so if you
824 wish.
825 <br>
826
827 <!---LL--->
828
829 <hr width="66%" align="left">
830 <a name="LINELENGTH"><h3><u>Line length</u></h3></a>
831 <br>
832 Macro: <strong>LL</strong> <var>&lt;line length&gt;</var>
833 <br>
834 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
835
836 <p>
837 <strong>LL</strong> (Line Length) takes one argument: the distance from the
838 left margin of the page to the maximum allowable point on the
839 right at which groff should place type.  The line length, in
840 other words, as the macro suggests.
841 <p>
842 <strong>LL</strong> requires a unit of measure.  Therefore, to set the line
843 length to 39 picas, you would enter
844 <p>
845 <pre>
846         .LL 39P
847 </pre>
848
849 As with other macros that require a unit of measure, the argument to
850 <strong>LL</strong> may be fractional.  For example,
851 <p>
852 <pre>
853         .LL 4.5i
854 </pre>
855
856 sets the line length to 4-1/2 inches.
857
858 <p>
859 <strong>NOTE:</strong> The <a href="#R_MARGIN">right margin
860 macro</a> (<strong>R_MARGIN</strong>) can also be used to set line
861 length.
862 <br>
863 <hr>
864
865 <!====================================================================>
866
867 <a name="INTRO_JUST_QUAD_FILL"></a>
868
869 <a name="JUST_QUAD_FILL">
870         <h2><u>Justifying, quadding, filling and breaking lines</u></h2>
871 </a>
872
873 The justification and quadding macros deal with how type aligns along
874 the left and right margins.  In a nutshell, type either aligns at the
875 left margin, at the right margin, at both margins, or at neither margin
876 (centered).
877 <p>
878 These macros also determine whether or not
879 <a href="definitions.html#TERMS_INPUTLINE">input lines</a> are joined and
880 <a href="definitions.html#TERMS_FILLED">filled</a> during output.
881 <p>
882 Additionally, macros that deal with how to break
883 <a href="definitions.html#TERMS_OUTPUTLINE">output lines</a> are covered in this
884 section, as is the
885 <a href="definitions.html#TERMS_INLINES">inline escape</a> for joining output lines.
886 <p>
887 You may encounter some words here that are unfamiliar.  Refer to
888 <a href="definitions.html#TERMS_TYPESETTING">Typesetting terms</a> and
889 <a href="definitions.html#TERMS_GROFF">Groff terms</a> for an explanation.
890
891 <a name="INDEX_JUST"><h3><u>Justification, quad, fill, and break macro list</u></h3></a>
892
893 <ul>
894         <li><strong>Fill modes</strong>
895         <ul>
896                 <li><a href="#JUSTIFY">JUSTIFY</a> (set lines justified)
897                 <li><a href="#QUAD">QUAD</a> (set filled lines flush left, right or centered)
898         </ul>
899         <li><strong>Nofill modes</strong>
900         <ul>
901                 <li><a href="#LRC">LEFT</a> (set non-filled lines flush left)
902                 <li><a href="#LRC">RIGHT</a> (set non-filled lines flush right)
903                 <li><a href="#LRC">CENTER</a> (set non-filled lines centered)
904         </ul>
905         <li><strong>Breaking lines</strong>
906         <ul>
907                 <li><a href="#BR">BR</a> (manually break an output line)
908                 <li><a href="#EL">EL</a> (break a line without advancing to the next output line)
909                 <li><a href="#SPACE">SPACE</a> (break a line and add space before the next output line)
910                 <li><a href="#SPREAD">SPREAD</a> (break and force-justify an output line)
911         </ul>
912         <li><strong>Joining lines</strong>
913         <ul>
914                 <li><a href="#JOIN">\c</a> inline escape
915         </ul>
916 </ul>
917
918 <!---JUSTIFY--->
919
920 <hr width="66%" align="left">
921 <a name="JUSTIFY"><h3><u>Justify lines</u></h3></a>
922 <br>
923 Macro: <strong>JUSTIFY</strong>
924 <br>
925 <a href="definitions.html#TERMS_FILLED"><em>Fill mode</em></a>
926
927 <p>
928 <strong>JUSTIFY</strong> doesn't take an argument. 
929 <a href="definitions.html#TERMS_INPUTLINE">Input lines</a>
930 after <strong>JUSTIFY</strong> are
931 <a href="definitions.html#TERMS_FILLED">filled</a> and
932 <a href="definitions.html#TERMS_JUST">justified</a>
933 upon output.
934 <p>
935 To break lines and prevent them from being filled and justified,
936 use the
937 <a href="#BR">BR</a> macro.
938 <br>
939
940 <!---QUAD--->
941
942 <hr width="66%" align="left">
943 <a name="QUAD"><h3><u>Quad lines left, right, or center</u></h3></a>
944 <br>
945 Macro: <strong>QUAD</strong> <var>L | LEFT | R | RIGHT | C | CENTER | J | JUSTIFY</var>
946 <br>
947 Alias: <strong>FILL</strong>
948 <br>
949 <a href="definitions.html#TERMS_FILLED"><em>Fill mode</em></a>
950
951 <p>
952 <strong>QUAD</strong> takes one argument: the direction in which lines
953 should be
954 <a href="definitions.html#TERMS_QUAD">quadded</a>.
955 <a href="definitions.html#TERMS_INPUTLINE">Input lines</a>
956 after <strong>QUAD</strong> are 
957 <a href="definitions.html#TERMS_FILLED">filled</a>
958 upon output.
959 <p>
960 If <strong>L</strong> or <strong>LEFT</strong>, type is set flush
961 along the left margin.
962 <p>
963 If <strong>R</strong> or <strong>RIGHT</strong>, type is
964 set flush along the right margin.
965 <p>
966 If <strong>C</strong> or <strong>CENTER</strong> type is set centered
967 on the current line length.
968 <p>
969 <strong>J</strong> and <strong>JUSTIFY</strong> justify text,
970 and are included as a convenience only.  Obviously, if text is
971 justified, it isn't quadded.  <strong>QUAD J</strong> and
972 <strong>QUAD JUSTIFY</strong> have exactly the same effect as <a
973 href="#JUSTIFY">JUSTIFY</a>.
974 <p>
975 To break lines and prevent them from being filled, use the
976 <a href="#BR">BR</a> macro.
977 <br>
978
979 <!---LEFT, RIGHT, CENTER--->
980
981 <hr width="66%" align="left">
982 <a name="LRC"><h3><u>Set non-filled lines flush left, right, or centered</u></h3></a>
983 <br>
984 Macro: <strong>LEFT</strong>
985 &nbsp;&nbsp;Macro: <strong>RIGHT</strong>
986 &nbsp;&nbsp;Macro: <strong>CENTER</strong>
987 &nbsp;(alias <strong>CENTRE</strong>)
988 <br>
989 <a href="definitions.html#TERMS_NOFILL"><em>Nofill mode</em></a>
990
991 <p>
992 <strong>LEFT</strong>, <strong>RIGHT</strong> and
993 <strong>CENTER</strong> let you enter text on a line for line basis
994 without having to use the
995 <a href="#BR">BR</a> macro after each line.
996 Consider the following:
997 <p>
998 <pre>
999         .QUAD LEFT
1000         So runs my dream, but what am I?
1001         .BR
1002         An infant crying in the night
1003         .BR
1004         An infant crying for the light
1005         .BR
1006         And with no language but a cry.
1007         .BR
1008 </pre>
1009
1010 Because text after <strong>QUAD</strong> is
1011 <a href="definitions.html#TERMS_FILLED">filled</a>, you have to use the
1012 <a href="#BR">BR</a>
1013 macro to prevent the lines from running together.  Not only is this
1014 annoying to type, it's awkward to read in a text editor.  Much better
1015 to do
1016 <p>
1017 <pre>
1018         .LEFT
1019         So runs my dream, but what am I?
1020         An infant crying in the night
1021         An infant crying for the light
1022         And with no language but a cry.
1023 </pre>
1024
1025 <strong>IMPORTANT:</strong> Because <strong>LEFT</strong>,
1026 <strong>RIGHT</strong> and <strong>CENTER</strong> are nofill
1027 modes, groff does not always respect the current line length.
1028 <a href="definitions.html#TERMS_INPUTLINE">Input lines</a>
1029 that run long may exceed it, or get broken in undesirable ways.
1030 Therefore, when using these three macros, you should preview your
1031 work to ensure that all lines fit as expected.
1032 <br>
1033
1034 <!---BR--->
1035
1036 <hr width="66%" align="left">
1037 <a name="BR"><h3><u>Manually break lines</u></h3></a>
1038 <br>
1039 Macro: <strong>BR</strong>
1040
1041 <p>
1042 When using <strong>JUSTIFY</strong> or <strong>QUAD</strong>,
1043 <strong>BR</strong> tells <strong>mom</strong> about partial lines
1044 that you want broken (as opposed to
1045 <a href="definitions.html#TERMS_FILLED">filled</a>).
1046 Any partial
1047 <a href="definitions.html#TERMS_OUTPUTLINE">output line</a>
1048 that immediately precedes <strong>BR</strong> will be
1049 <a href="definitions.html#TERMS_QUAD">quadded</a>
1050 in the direction of the current quad, or set flush left if text is
1051 <a href="definitions.html#TERMS_JUST">justified</a>.
1052
1053 <p>
1054 Most of the time, you won't need the <strong>BR</strong> macro.
1055 In fill modes, <strong>mom</strong> tries to be sensible about
1056 where breaks are needed.  If the nature of a macro is such that under
1057 most circumstances you'd expect a break, <strong>mom</strong> puts
1058 it in herself.  Equally, in macros where a break isn't normally
1059 desirable, no break occurs.  This means text files don't get cluttered
1060 with annoying <strong>BR</strong>'s.
1061 <p>
1062 <strong>NOTE:</strong> Lines of text in
1063 <a href="definitions.html#TERMS_NOFILL">nofill mode</a>
1064 never require a <strong>BR</strong>.  Furthermore, in nofill mode,
1065 ALL macros cause a break.  If a break is not desired, use the
1066 <a href="#JOIN">\c</a>
1067 <a href="definitions.html#TERMS_INLINES">inline escape</a>.
1068
1069 <p>
1070 <strong>Experts: BR</strong> is an alias for <strong>br</strong>.
1071 You can use either, or mix 'n' match with impunity.
1072 <br>
1073
1074 <!---EL--->
1075
1076 <hr width="66%" align="left">
1077 <a name="EL"><h3><u>Manually break a line without advancing on the page</u></h3></a>
1078 <br>
1079 Macro: <strong>EL</strong>
1080
1081 <p>
1082 The mnemonic "EL" is borrowed from old Compugraphic typesetting
1083 systems, where it stood for "End Line."  Conceptually,
1084 <strong>EL</strong> is equivalent to the notion of a carriage return
1085 with no linefeed.
1086
1087 <p>
1088 Every once in a while, the need arises for breaking a line without
1089 advancing on the page.  Imagine, for example, that you're working from
1090 marked-up copy.  The markup indicates 24 points of space between
1091 two given lines, but the prevailing line spacing is 12.5 points.
1092 You may find it more convenient to break the first line with
1093 <strong>EL</strong> and instruct <strong>mom</strong> to advance 24
1094 points to the next line, rather than calculating the lead that needs
1095 to be added to 12.5 to get 24.  To demonstrate:
1096 <p>
1097 <pre>
1098         .LS 12.5
1099         A line of text.
1100         .EL
1101         .ALD 24p
1102         The next line of text.
1103 </pre>
1104
1105 may be more instuitive than
1106 <p>
1107 <pre>
1108         .LS 12.5
1109         A line of text.
1110         .ALD 11.5p
1111         The next line of text.
1112 </pre>
1113
1114 The first example has the further advantage that should you wish
1115 to change the prevailing line space but keep the 24 points lead,
1116 you don't have to recalculate the extra space.
1117 <p>
1118 "ALD" in the above examples stands for "<strong>A</strong>dvance
1119 <strong>L</strong>ea<strong>D</strong>" (another mnemonic borrowed
1120 from Compugraphic), which is covered in the section
1121 <a href="#ALDRLD">Vertical movement</a>.
1122 <p>
1123 <strong>IMPORTANT:</strong>
1124 <strong>EL</strong> does not work as advertised on the last
1125 <a name="TERMS_OUTPUTLINE">output line</a>
1126 of pages that contain a footer trap (e.g. one set with
1127 <a href="#B_MARGIN">B_MARGIN</a>
1128 or in  documents formatted using the
1129 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>).
1130 The reason is that the <strong>EL</strong> macro itself deposits
1131 a line break that trips the trap (hey, I like that --
1132 &quot;trips the trap&quot;), and once the trap has been sprung,
1133 <strong>mom</strong> can't recover.  She places the line after
1134 the <strong>EL</strong> on the next page.
1135 <p>
1136 If you need <strong>EL</strong> functionality on the last line of
1137 a page with a footer trap, turn the trap off with
1138 <a href="goodies.html#TRAP">TRAP</a>,
1139 as in this example:
1140 <p>
1141 <pre>
1142         3.
1143         .TRAP OFF
1144         .EL
1145         .TRAP
1146         \*[FP12]Establish, once and for all, if 42 really is the answer.
1147 </pre>
1148
1149 The above looks something like this upon output:
1150 <p>
1151 <pre>
1152         3.  Establish, once and for all, if 42 really is the answer.
1153 </pre>
1154
1155 with &quot;3.&quot; flush at the left margin, and &quot;Establish,
1156 once and for all...&quot; on the same line as &quot;3.&quot; but
1157 starting 12 points in from the left margin.
1158 <p>
1159 If you hadn't turned the trap off for <kbd>.EL</kbd>,
1160 &quot;3.&quot; would have appeared at the bottom of the page by
1161 itself, with &quot;Establish, once and for all...&quot;
1162 appearing at the top of the next page.
1163 <br>
1164
1165 <!---SP--->
1166
1167 <hr width="66%" align="left">
1168 <a name="SPACE"><h3><u>Break lines and add space between</u></h3></a>
1169 <br>
1170 Macro: <strong>SPACE</strong> <var>&lt;space to add between lines&gt;</var>
1171 <br>
1172 Alias: <strong>SP</strong>
1173
1174 <p>
1175 <strong>SPACE</strong> breaks a line, just like
1176 <strong>BR</strong>, then adds space after the line.  With no
1177 argument, it adds an extra line space.  If you pass it a numeric
1178 argument without supplying a
1179 <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>,
1180 it advances that number of extra line spaces.  For example:
1181 <p>
1182 <pre>
1183         .SPACE
1184 </pre>
1185
1186 breaks the line then adds an extra linespace, whereas
1187 <p>
1188 <pre>
1189         .SPACE 2
1190 </pre>
1191
1192 breaks the line and adds two extra linespaces.
1193
1194 <p>
1195 If you supply a unit of measure, <strong>SPACE</strong> breaks the
1196 line then adds the specified amount of extra space to the current
1197 linespace, as in
1198 <p>
1199 <pre>
1200         .SPACE 6p
1201 </pre>
1202
1203 which breaks the line then adds six points of space to the current
1204 linespace.
1205
1206 <p>
1207 <strong>SUGGESTION: SPACE</strong> and
1208 <a href="#ALD">ALD</a>
1209 can be used interchangeably (<code>.SPACE&nbsp;6p</code> and
1210 <code>.ALD&nbsp;6p</code> are equivalent).  However,
1211 <strong>ALD</strong> without an argument does nothing, whereas
1212 <strong>SPACE</strong> without an argument adds an extra line
1213 space.  I recommend using <strong>SPACE</strong> when you
1214 want an extra line space (or multiple thereof), and
1215 <strong>ALD</strong> whenever you want some other value of space
1216 after a line.
1217
1218 <p>
1219 <strong>Experts: SPACE</strong> is an alias of <strong>sp</strong>.
1220 You can use either, or mix 'n' match with impunity.
1221 <br>
1222
1223 <!---SPREAD--->
1224
1225 <hr width="66%" align="left">
1226 <a name="SPREAD"><h3><u>Break and force justify (spread) lines</u></h3></a>
1227 <br>
1228 Macro: <strong>SPREAD</strong>
1229
1230 <p>
1231 Sometimes, you need to break a line of
1232 <a href="definitions.html#TERMS_JUST">justified</a>
1233 text and have it come out fully justified, not
1234 <a href="definitions.html#TERMS_QUAD">quadded</a>
1235 left the way it would be with the <strong>BR</strong> macro.
1236 An example of where you'd do this would be when you want to prevent a
1237 word at the end of a line from being hyphenated (say, a proper name).
1238 <strong>SPREAD</strong> is the macro that lets you break the line
1239 and have it came out fully justified.
1240
1241 <p>
1242 <strong>Experts: SPREAD</strong> is an alias for <strong>brp</strong>.
1243 You can use either, or mix 'n' match with impunity.
1244 <br>
1245
1246 <!---JOIN--->
1247
1248 <hr width="66%" align="left">
1249 <a name="JOIN"><h3><u>Join input lines</u></h3></a>
1250 <br>
1251 Inline: <strong>\c</strong>
1252
1253 <p>
1254 Sometimes, especially when in one of the
1255 <a href="definitions.html#TERMS_NOFILL">nofill modes</a>,
1256 a macro will cause a break where you don't want one.  In order
1257 to prevent this from happening (in other words, to join
1258 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>
1259 together, forming one
1260 <a href="definitions.html#TERMS_OUTPUTLINE">output line</a>),
1261 use the groff
1262 <a href="definitions.html#TERMS_INLINES">inline escape</a>
1263 <strong>\c</strong> at the end of each input line to
1264 be joined to another, like this:
1265 <p>
1266 <pre>
1267         .LEFT
1268         .FAMILY T
1269         .FT R
1270         Some lines of text to be \c
1271         .FAMILY H
1272         .FT B
1273         joined \c
1274         .FAMILY T
1275         .FT R
1276         together.
1277 </pre>
1278
1279 Upon output, the lines will be joined together to read
1280 <p>
1281 <pre>
1282         Some lines of text to be joined together.
1283 </pre>
1284
1285 with the word &quot;joined&quot; in Helvetica bold.  Note the
1286 space before <strong>\c</strong>.  Without it, the last three
1287 words of the output line would read
1288 <p>
1289 <pre>
1290         bejoinedtogether
1291 </pre>
1292
1293 Please also note that had the example been in one of the
1294 <a href="definitions.html#TERMS_FILLED">fill modes</a>,
1295 there'd have been no need for the <strong>\c</strong>.  
1296 <br>
1297 <hr>
1298
1299 <!====================================================================>
1300
1301 <a name="INTRO_REFINEMENTS"></a>
1302
1303 <a name="REFINEMENTS">
1304         <h2><u>Typographic refinements</u></h2>
1305 </a>
1306
1307 The macros in this section help you tweak groff's behaviour,
1308 ensuring that your documents look typographically professional.
1309 <br>
1310
1311 <a name="INDEX_REFINEMENTS">
1312         <h3><u>Typographic refinements macro list</u></h3>
1313 </a>
1314
1315 <ul>
1316         <li><strong>Word and sentence spacing</strong>
1317         <ul>
1318                 <li><a href="#WS">WS</a> (word spacing)
1319                 <li><a href="#SS">SS</a> (sentence space)
1320         </ul>
1321         <li><strong>Letter spacing (track kerning)</strong>
1322         <ul>
1323                 <li><a href="#RW">RW</a> (reduce whitespace)
1324                 <li><a href="#EW">EW</a> (expand whitespace)
1325                 <li><a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
1326         </ul>
1327         <li><strong>Hyphenation</strong>
1328         <ul>
1329                 <li><a href="#HY">HY</a> (turn auto hyphenation on/off, or set specific hyphenation parameters)
1330                 <li><a href="#HY_SET">HY_SET</a> (set all hyphenation parameters)
1331         </ul>
1332         <li><strong>Automatic kerning and ligatures</strong>
1333         <ul>
1334                 <li><a href="#KERN">KERN</a> (turn automatic pairwise kerning on or off)
1335                 <li><a href="#LIGATURES">LIGATURES</a> (turn automatic generation of ligatures on or off)
1336         </ul>
1337 </ul>
1338
1339 <!---WS--->
1340
1341 <hr width="66%" align="left">
1342 <a name="WS"><h3><u>Word spacing</u></h3></a>
1343 <br>
1344 Macro: <strong>WS</strong> <var>&lt;+|-wordspace&gt; | DEFAULT</var>
1345
1346 <p>
1347 <strong>WS</strong> (Word Space) increases or decreases the amount
1348 of space between words.  In
1349 <a href="definitions.html#TERMS_NOFILL">nofill modes</a>,
1350 or if
1351 <a href="#QUAD">QUAD</a>
1352 is in effect, the space between words is fixed.  Therefore, if you
1353 change the word spacing with <strong>WS</strong>, the change applies
1354 uniformly to the space between every word on every line.  However,
1355 when text is
1356 <a href="definitions.html#TERMS_JUST">justified</a>,
1357 the space between words varies from line to line (in order to justify
1358 the text).  Consequently, the change you make with <strong>WS</strong>
1359 represents the minimum (and ideal) space groff will try to put between
1360 words before deciding whether to hyphenate a final word or to stretch
1361 the word spacing.
1362
1363 <p>
1364 Word space is relative to type size.  Knowing how it's calculated is
1365 unimportant. What matters is having a sense of how the value passed
1366 to <strong>WS</strong> affects the look of your type.  Generally,
1367 in/decreasing the word space by a value of 1 or 2 produces a difference
1368 that in many cases is scarcely visible; in/decreasing by a value of 5
1369 or so produces a subtle but noticeable difference; and in/decreasing
1370 by a value greater than 10 is always apparent.  You should preview
1371 your work to assess the effect of <strong>WS</strong>.
1372
1373 <p>
1374 <a name="WS_USAGE"><strong>WS</strong></a>
1375 takes as its argument a whole number preceded by a plus or minus sign.
1376 Therefore, to decrease the word space slightly, you might enter
1377 <p>
1378 <pre>
1379         .WS -4
1380 </pre>
1381
1382 To increase it by a noticeable amount, you might enter
1383 <p>
1384 <pre>
1385         .WS +12
1386 </pre>
1387
1388 You can reset the word spacing to its previous value by switching
1389 the plus or minus sign, like this:
1390 <p>
1391 <pre>
1392         .WS +4
1393         A line of text
1394         .WS -4
1395 </pre>
1396
1397 The <code>.WS -4</code> undoes the effect of <code>.WS
1398 +4</code>.  You can also reset <strong>WS</strong> to
1399 its groff default by entering
1400 <p>
1401 <pre>
1402         .WS DEFAULT
1403 </pre>
1404
1405 This can be particularly useful if you've been playing around
1406 with plus and minus values, and can't remember by how much you
1407 have to in/decrease the word space to get it back to normal.
1408 <br>
1409
1410 <!---SS--->
1411
1412 <hr width="66%" align="left">
1413 <a name="SS"><h3><u>Sentence space</u></h3></a>
1414 <br>
1415 Macro: <strong>SS</strong> <var>&lt;+sentence space&gt; | 0 | DEFAULT</var>
1416
1417 <p>
1418 <strong>SS</strong> (Sentence Space) tells groff how to treat double
1419 spaces it encounters between sentences in
1420 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>.
1421 If you use <strong>SS</strong>, input sentences with two spaces
1422 after them AND input sentences that fall at the end of input lines
1423 all receive a normal word space plus an additional amount of space
1424 whose size is determined by the + value passed as an argument to
1425 <strong>SS</strong>.  Thus,
1426 <p>
1427 <pre>
1428         .SS +2
1429 </pre>
1430
1431 means that input sentences with two spaces after them receive a normal
1432 word space PLUS the +2 value passed to <strong>SS</strong>.
1433 <p>
1434 Like
1435 <strong>WS</strong>, increasing the sentence space by a value of
1436 1 or 2 produces a difference that in many cases is scarcely visible;
1437 increasing by a value of 5 or so produces a subtle but noticeable
1438 difference (i.e. the space between double-spaced input sentences will
1439 be slightly but visibly greater than the space between words); and
1440 increasing by a value greater than 10 is always apparent.  You should
1441 preview your work to assess the effect of <strong>SS</strong>.
1442 <p>
1443 There's an additional argument you can pass <strong>SS</strong>:
1444 the number zero (without the + sign).  It's the argument you'll
1445 use most often.  Typeset copy should never have two spaces between
1446 sentences, and the "zero" argument tells groff to give the extra
1447 spaces no space at all (effectively removing them).  Therefore,
1448 if you double-space your sentences (as you should when writing in a
1449 text editor), get in the habit of putting
1450 <p>
1451 <pre>
1452         .SS 0
1453 </pre>
1454
1455 at the top of your files.
1456
1457 <p>
1458 If you do use <strong>SS</strong> for something other than ensuring
1459 that you don't get unwanted sentence spaces in output copy, you
1460 can set or reset the sentence space to the groff default (the same
1461 width as a word space, i.e. double-spaced input sentences will appear
1462 double-spaced on output as well) with
1463 <p>
1464 <pre>
1465         .SS DEFAULT
1466 </pre>
1467
1468 If you're using the
1469 <a href="docprocessing.html">document processing macros</a>
1470 and your
1471 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE</a>
1472 is <strong>TYPEWRITE</strong>, <code>.SS DEFAULT</code> is the default,
1473 because you <em>do</em> want double spaces between sentences in copy
1474 that imitates the look of a typewritten document.
1475 <p>
1476 <strong>IMPORTANT: SS</strong> with an argument other than
1477 &quot;0&quot; should only be used if you're of the old (and wise)
1478 school of typists that puts two spaces between sentences.  If you
1479 ignore this advice and use <strong>SS</strong> when you habitually
1480 put only one space between sentences, you risk producing output where
1481 the space between sentences is not equal.
1482 <br>
1483
1484 <!---HY--->
1485
1486 <hr width="66%" align="left">
1487 <a name="HY"><h3><u>Automatic hyphenation control</u></h3></a>
1488 <br>
1489 Macro: <strong>HY</strong> <var>toggle</var>
1490 <br>
1491 Macro: <strong>HY</strong> <var>LINES &lt;max. number of consecutive hyphenated lines&gt;</var>
1492 <br>
1493 Macro: <strong>HY</strong> <var>MARGIN &lt;size of hyphenation margin&gt;</var>
1494 <br>
1495 Macro: <strong>HY</strong> <var>SPACE &lt;extra interword spacing to prevent hyphenation&gt;</var>
1496 <br>
1497 Macro: <strong>HY</strong> <var>DEFAULT</var>
1498 <br>
1499 Aliases: <strong>HYPHENATE, HYPHENATION</strong>
1500
1501 <p>
1502 <strong>HY</strong>, as you can see, can be invoked with a number of
1503 arguments.  In all cases, the aliases <strong>HYPHENATE</strong>
1504 or <strong>HYPHENATION</strong> can be used in place of
1505 <strong>HY</strong>.  To aid in understanding the various arguments
1506 you can pass to <strong>HY</strong>, I've broken them down into
1507 separate sections.
1508
1509 <h3><u>1. HY</u></h3>
1510
1511 <p>
1512 <strong>HY</strong> by itself (i.e. with no argument) simply turns
1513 automatic hyphenation on.  Any argument other than <strong>LINES,
1514 MARGIN, SPACE</strong> or <strong>DEFAULT</strong>, turns automatic
1515 hyphenation off.  For example, as explained in
1516 <a href="intro.html#MACRO_ARGS">How to read macro arguments</a>,
1517 you could turn <strong>HY</strong> off by entering
1518 <p>
1519 <pre>
1520         .HY OFF
1521            or
1522         .HY X
1523            or
1524         .HY END
1525 </pre>
1526
1527 <strong>HY</strong> observes the following default hyphenation rules:
1528 <br>
1529 <ol>
1530         <li>Last lines (i.e. ones that will spring a trap -- typically
1531         the last line on a page) will not be hyphenated.
1532         <li>The first and last two characters of a word are never
1533         split off.
1534 </ol>
1535
1536 <h3><u>2. HY LINES</u></h3>
1537
1538 <p>
1539 <strong>HY LINES</strong> sets the maximum number of consecutive
1540 hyphenated lines that will appear in output copy.  2 is a very
1541 good choice, and you'd set it with
1542 <p>
1543 <pre>
1544         .HY LINES 2
1545 </pre>
1546
1547 By default, when you turn automatic hyphenation on, there is no
1548 limit to the number of consecutive hyphenated lines.
1549
1550 <p>
1551 <strong>NOTE:</strong>
1552 <a href="definitions.html#TERMS_DISCRETIONARYHYPHEN">Discretionary hyphens</a>
1553 count when groff is figuring out how many lines to hyphenate;
1554 explicit hyphens do not.
1555
1556 <h3><u>3. HY MARGIN</u></h3>
1557
1558 <p>
1559 <strong>HY MARGIN</strong> sets the amount of room allowed at
1560 the end of a line before hyphenation is tripped (e.g. if there's
1561 only 6 points left at the end of a line, groff won't try to hyphenate
1562 the next word).  <strong>HY MARGIN</strong> only applies if you're
1563 using
1564 <a href="#QUAD">QUAD</a>, and is really only useful if you're
1565 using <strong>QUAD LEFT</strong>.
1566
1567 <p>
1568 As an example, if you don't want groff to hyphenate words when there's
1569 only 18 points of space left at the end of a left-quadded line,
1570 you'd enter
1571 <p>
1572 <pre>
1573         .HY MARGIN 18p
1574 </pre>
1575
1576 <strong>NOTE:</strong> The numeric argument after <strong>HY
1577 MARGIN</strong> requires a
1578 <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
1579
1580 <h3><u>4. HY SPACE</u></h3>
1581
1582 <p>
1583 <strong>HY SPACE</strong> sets an amount of extra interword
1584 space that groff will <em>try</em> to put between words on a
1585 line in order to PREVENT hyphenation.  <strong>HY SPACE</strong>
1586 applies only to
1587 <a href="definitions.html#TERMS_JUST">justified lines</a>.  Generally speaking,
1588 you'll want this value to be quite small, since too big a value
1589 will result in lines with gaping holes between the words.  A reasonable
1590 value might be half a point, or one point, which you'd set with
1591 <p>
1592 <pre>
1593         .HY SPACE .5p
1594             or
1595         .HY SPACE 1p
1596 </pre>
1597
1598 <strong>NOTE:</strong> The numeric argument after <strong>HY
1599 SPACE</strong> requires a
1600 <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>.
1601
1602 <h3><u>4. HY DEFAULT</u></h3>
1603
1604 <p>
1605 <strong>HY DEFAULT</strong> resets automatic hyphenation to its
1606 default behaviour, cancelling any changes made with <strong>LINES,
1607 MARGIN,</strong> and/or <strong>SPACE</strong>.
1608
1609 <h3><u>A note on hyphenation in general</u></h3>
1610
1611 <p>
1612 Hyphenation is a necessary evil.  If it can be avoided, it should be.
1613 If it can't be, it should occur infrequently.  That's the reason for
1614 number of parameters you can set with <strong>HY</strong>.
1615
1616 <p>
1617 Furthermore, hyphenation in
1618 <a href="definitions.html#TERMS_RAG">rag</a>
1619 copy requires a great deal of attention.  At best, it should be
1620 avoided completely by individually adjusting the number of words
1621 on consecutive lines to achieve a pleasing, natural-looking rag.  
1622 Since such adjustments are often too fussy for document
1623 processing, I recommend playing around with <strong>HY MARGIN</strong>
1624 a bit if your copy looks hyphen-heavy.
1625 <br>
1626
1627 <!---HY_SET--->
1628
1629 <hr width="66%" align="left">
1630 <a name="HY_SET"><h3><u>Set hyphenation parameters all at once</u></h3></a>
1631 <br>
1632 Macro: <strong>HY_SET</strong> <var>&lt;lines&gt; [ &lt;margin&gt; [ &lt;space&gt; ] ]</var>
1633 <br>
1634 Alias: <strong>HYSET</strong>
1635
1636 <p>
1637 <strong>HY_SET</strong> lets you set the parameters for hyphenation
1638 with a single macro.  &lt;lines&gt;, &lt;margin&gt; and &lt;space&gt;
1639 correspond to the numeric values required by
1640 <strong>LINES</strong>, <strong>MARGIN</strong> and
1641 <strong>SPACE</strong> as described
1642 <a href="#HY">above</a>.
1643
1644 <p>
1645 To set just the maximum number of consecutive hyphenated lines,
1646 you'd enter
1647 <p>
1648 <pre>
1649         .HY_SET 2
1650 </pre>
1651
1652 If you wanted the same number of maximum consecutive hyphenated lines
1653 and a hyphenation margin for use with
1654 <a href="definitions.html#TERMS_RAG">rag</a>
1655 copy,
1656 <p>
1657 <pre>
1658         .HY_SET 2 36p
1659 </pre>
1660
1661 would set the hyphenation margin to 36 points.
1662
1663 <p>
1664 If you wanted the same number of maximum consecutive hyphenated
1665 lines and a hyphenation space of 2 points for use with
1666 <a href="definitions.html#TERMS_JUST">justified</a>
1667 copy, 
1668 <p>
1669 <pre>
1670         .HYSET 2 0 2p
1671 </pre>
1672
1673 is how you'd do it.
1674 <br>
1675
1676 <!---RW--->
1677
1678 <hr width="66%" align="left">
1679 <a name="RW"><h3><u>Reduce whitespace</u></h3></a>
1680 <br>
1681 Macro: <strong>RW</strong> <var>&lt;amount of whitespace reduction between letters&gt;</var>
1682 <br>
1683
1684 <p>
1685 <strong>RW</strong> (Reduce Whitespace) and its corresponding macro,
1686 <strong>EW</strong> (Expand Whitespace), allow you to tighten
1687 (or loosen)
1688 <a href="definitions.html#TERMS_OUTPUTLINE">output lines</a>
1689 by uniformly reducing or expanding the space between characters.
1690 This is particularly useful when you want to squeeze or stretch
1691 lines on a narrow measure.
1692
1693 <p>
1694 The value passed to <strong>RW</strong> may be a whole number or a
1695 decimal fraction.  Since a value of 1 produces a noticeable reduction
1696 in the space between letters at text sizes, you'll most likely use
1697 small decimal values when tightening lines.  For example,
1698 <p>
1699 <pre>
1700         .RW .1
1701           or
1702         .RW .2
1703 </pre>
1704
1705 may be just enough to squeeze an extra character or two on a
1706 line without the change in letter spacing being obvious.  I
1707 highly recommend previewing your work to assess the effect of
1708 <strong>RW</strong>.
1709
1710 <p>
1711 <p>
1712 <strong>IMPORTANT:</strong> <strong>RW</strong> affects all
1713 <a href="definitions.html#TERMS_FONT">fonts</a>
1714 in the
1715 <a href="definitions.html#TERMS_FAMILY">family</a>
1716 current at the time it's invoked.  It must be reset to zero to
1717 cancel its effect (<code>.RW 0</code>) on those fonts, or reinvoked
1718 (possibly with a different value) if you change family.
1719 <p>
1720 <strong>NOTE:</strong> By default, <strong>RW</strong> does not deposit a 
1721 <a href="#BR">break</a>
1722 (<strong>BR</strong>) when it's invoked.  If you want
1723 <strong>RW</strong> to break at the ends of the previous
1724 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>,
1725 you can tell <strong>mom</strong> that's what you want by invoking the
1726 <a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
1727 toggle macro.
1728 <br>
1729
1730 <!---EW--->
1731
1732 <hr width="66%" align="left">
1733 <a name="EW"><h3><u>Expand whitespace</u></h3></a>
1734 <br>
1735 Macro: <strong>EW</strong> <var>&lt;amount of whitespace expansion between letters&gt;</var>
1736 <br>
1737
1738 <p>
1739 <strong>EW</strong> (Expand Whitespace) expands the amount of
1740 whitespace between letters, effectively &quot;loosening&quot; lines
1741 of type.
1742
1743 <p>
1744 The value passed to <strong>EW</strong> may be a whole number or a
1745 decimal fraction.  Since a value of 1 produces a noticeable
1746 expansion in the space between letters at text sizes, you'll most likely use
1747 small decimal values when loosening lines.  For example,
1748 <p>
1749 <pre>
1750         .EW .1
1751           or
1752         .EW .2
1753 </pre>
1754
1755 may be just enough to open up a line without the change in letter
1756 spacing being obvious.  I highly recommend previewing your work to
1757 assess the effect of <strong>EW</strong>.
1758
1759 <p>
1760 <strong>NOTE:</strong> By default, <strong>EW</strong> does not deposit a 
1761 <a href="#BR">break</a>
1762 (<strong>BR</strong>) when it's invoked.  If you want
1763 <strong>EW</strong> to break at the ends of the previous
1764 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>,
1765 you can tell <strong>mom</strong> that's what you want by invoking the
1766 <a href="#BR_AT_LINE_KERN">BR_AT_LINE_KERN</a>
1767 toggle macro.
1768 <br>
1769
1770 <!---BR_AT_LINE_KERN--->
1771
1772 <hr width="66%" align="left">
1773 <a name="BR_AT_LINE_KERN"><h3><u>Break before line kerning</u></h3></a>
1774 <br>
1775 Macro: <strong>BR_AT_LINE_KERN</strong> <var>toggle</var>
1776 <br>
1777
1778 <p>
1779 By default, <strong>mom</strong> does not break
1780 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>
1781 when you invoke <strong>RW</strong> or <strong>EW</strong>.
1782 If you'd like <strong>mom</strong> to break input lines prior
1783 to <strong>RW</strong> or <strong>EW</strong>, invoke
1784 <strong>BR_AT_INPUT_LINE</strong> without any argument.  To
1785 disable the breaks, invoke <strong>BR_AT_INPUT_LINE</strong>
1786 with any argument (<strong>OFF, QUIT, Q, X</strong>...), like
1787 this
1788 <p>
1789 <pre>
1790         .BR_AT_LINE_KERN OFF
1791             or
1792         .BR_AT_LINE_KERN X
1793 </pre>
1794 <br>
1795
1796 <!---KERN--->
1797
1798 <hr width="66%" align="left">
1799 <a name="KERN"><h3><u>Automatic kerning</u></h3></a>
1800 <br>
1801 Macro: <strong>KERN</strong> <var>toggle</var>
1802 <br>
1803
1804 <p>
1805 By itself (i.e. with no argument), <strong>KERN</strong> turns
1806 automatic pairwise
1807 <a href="definitions.html#TERMS_KERN">kerning</a>
1808 on.  With any argument (e.g. OFF, Q, X), pairwise kerning is turned
1809 off.
1810 <p>
1811 Kerning of individual character pairs can be controlled with the
1812 <a href="definitions.html#TERMS_INLINES">inline escapes</a>
1813 <strong>\*[BU #]</strong> and <strong>\*[FU #]</strong>.  See
1814 <a href="inlines.html#INLINE_KERNING_MOM">Inline Escapes, kerning</a>.
1815 <br>
1816
1817 <!---LIGATURES--->
1818
1819 <hr width="66%" align="left">
1820 <a name="LIGATURES"><h3><u>Automatic ligature generation</u></h3></a>
1821 <br>
1822 Macro: <strong>LIGATURES</strong> <var>toggle</var>
1823 <br>
1824 Alias: <strong>LIG</strong>
1825
1826 <p>
1827 Provided your current font has
1828 <a href="definitions.html#TERMS_LIGATURES">ligatures</a>,
1829 <strong>LIGATURES</strong>, by itself, turns on automatic
1830 generation of ligatures.  When automatic ligature generation is
1831 on, simply typing the letters of a ligature combination will
1832 produce the correct ligature upon output.  For example, if you
1833 type the word &quot;finally&quot;, the fi combination will be
1834 output as an fi ligature.  Generally speaking, ligatures are A
1835 Good Thing, hence <strong>mom</strong> has them on by default.
1836 <p>
1837 <strong>LIGATURES</strong> with any argument turns automatic
1838 ligature generation off.
1839 <p>
1840 <strong>NOTE:</strong> Not all fonts support ligatures.
1841 <br>
1842 <hr>
1843
1844 <!====================================================================>
1845
1846 <a name="INTRO_MODIFICATIONS"></a>
1847
1848 <a name="MODIFICATIONS">
1849         <h2><u>Type modifications: pseudo-italic, -bold, -condensed, -extended</u></h2>
1850 </a>
1851
1852 It sometimes happens that a PostScript 
1853 <a href="definitions.html#TERMS_FAMILY">family</a>
1854 doesn't contain all the fonts you need.  You might, for example,
1855 be missing an italic font, or a bold font.  Or you might not be able
1856 to get your hands on a condensed family.  That's where these macros
1857 and inline escapes come in.  With them, you can fake the fonts
1858 you're missing.  A word of caution, though: &quot;faked&quot;
1859 fonts are just that -- faked.  You should only use them as a
1860 last resort, and then only sparingly.  A word or two or a line
1861 or two in a faked font will pass unnoticed; large patches of
1862 type in a faked font look typographically cheap.
1863 <br>
1864
1865 <a name="INDEX_MODIFICATIONS">
1866         <h3><u>Type modifications macro list</u></h3>
1867 </a>
1868
1869 <ul>
1870         <li><strong>Pseudo italic</strong>
1871         <ul>
1872                 <li><a href="#SETSLANT">SETSLANT</a> -- degree of pseudo-italicising
1873                 <li><a href="#SLANT_INLINE">\*[SLANT]</a> -- inline escape for pseudo-italicising type
1874         </ul>
1875         <li><strong>Pseudo bold</strong>
1876         <ul>
1877                 <li><a href="#SETBOLDER">SETBOLDER</a> -- amount of emboldening
1878                 <li><a href="#BOLDER_INLINE">\*[BOLDER]</a> -- inline escape for emboldening type
1879         </ul>
1880         <li><strong>Pseudo condensed</strong>
1881         <ul>
1882                 <li><a href="#CONDENSE">CONDENSE</a> -- percentage for pseudo-condensed type
1883                 <li><a href="#COND_INLINE">\*[COND]</a> -- inline escape for pseudo-condensed type
1884         </ul>
1885         <li><strong>Pseudo extended</strong>
1886         <ul>
1887                 <li><a href="#EXTEND">EXTEND</a> -- percentage for pseudo-extended type
1888                 <li><a href="#EXT_INLINE">\*[EXT]</a> -- inline escape for pseudo-extending
1889         </ul>
1890 </ul>
1891
1892 <!---SETSLANT--->
1893
1894 <hr width="66%" align="left">
1895 <a name="SETSLANT"><h3><u>Set degree of slant for pseudo-italicising</u></h3></a>
1896 <br>
1897 Macro: <strong>SETSLANT</strong> <var>&lt;degrees to slant type&gt; | RESET</var>
1898
1899 <p>
1900 Pseudo-italicising of type is accomplished by slanting a roman font
1901 a certain number of degrees to the right.  <strong>SETSLANT</strong>
1902 lets you fix the number of degrees.  <strong>Mom</strong>'s
1903 default is 15, which produces an acceptable approximation of an
1904 italic font.  If you want another value -- say, 13 degrees --
1905 you'd set it by entering
1906 <p>
1907 <pre>
1908         .SETSLANT 13
1909 </pre>
1910
1911 If you change the degree of slant and later want to set it back
1912 to the <strong>mom</strong> default, do
1913 <p>
1914 <pre>
1915         .SETSLANT RESET
1916 </pre>
1917
1918 <strong>NOTE:</strong> By itself, <strong>SETSLANT</strong>
1919 will not start pseudo-italicising type; it merely tells
1920 <strong>mom</strong> what degree of slant you want.  To start
1921 pseudo-italicising, use the
1922 <a href="definitions.html#TERMS_INLINES">inline escape</a>
1923 <strong>\*[SLANT]</strong>.
1924 <br>
1925
1926 <!---\*[SLANT]--->
1927
1928 <hr width="66%" align="left">
1929 <a name="SLANT_INLINE"><h3><u>Pseudo italic on/off</u></h3></a>
1930 <br>
1931 Inline: <strong>\*[SLANT] -- turn pseudo-italic on</strong>
1932 <br>
1933 Inline: <strong>\*[SLANTX] -- turn pseudo-italic off</strong>
1934
1935 <p>
1936 <strong>\*[SLANT]</strong> begins pseudo-italicising type.
1937 <strong>\*[SLANTX]</strong> turns the feature off.  Both are
1938 <a href="definitions.html#TERMS_INLINES">inline escapes</a>,
1939 therefore they should not appear as separate lines, but rather
1940 be embedded in text lines, like this:
1941 <p>
1942 <pre>
1943         Not \*[SLANT]everything\*[SLANTX] is as it seems.
1944 </pre>
1945
1946 Alternatively, if you wanted the whole line pseudo-italicised,
1947 you'd do
1948 <p>
1949 <pre>
1950         \*[SLANT]Not everything is as it seems.\*[SLANTX]
1951 </pre>
1952
1953 Once <strong>\*[SLANT]</strong> is invoked, it remains in effect
1954 until turned off.
1955
1956 <p>
1957 <strong>NOTE:</strong> If you're using the
1958 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
1959 with
1960 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
1961 <strong>mom</strong> underlines pseudo-italics by default.  To
1962 change this behaviour, use the special macro
1963 <a href="docprocessing.html#SLANT_MEANS_SLANT">SLANT_MEANS_SLANT</a>.
1964 <br>
1965
1966 <!---SETBOLDER--->
1967
1968 <hr width="66%" align="left">
1969 <a name="SETBOLDER"><h3><u>Set amount of emboldening</u></h3></a>
1970 <br>
1971 Macro: <strong>SETBOLDER</strong> <var>&lt;amount of emboldening, in machine units&gt; | RESET</var>
1972
1973 <p>
1974 Emboldening of type is accomplished by printing characters
1975 twice; the second printing is slightly offset from the first,
1976 effectively &quot;thickening&quot; the character.
1977 <strong>SETBOLDER</strong> lets you set the number of
1978 <a href="definitions.html#TERMS_UNITS">machine units</a>
1979 for the offset.  <strong>Mom</strong>'s default is 700 units, which
1980 produces an acceptable approximation of a bold font.  If you want
1981 another value -- say, 500 units -- you'd set it by entering
1982 <p>
1983 <pre>
1984         .SETBOLDER 500
1985 </pre>
1986
1987 If you change the emboldening offset and later want to set it back
1988 to the <strong>mom</strong> default, do
1989 <p>
1990 <pre>
1991         .SETBOLDER RESET
1992 </pre>
1993
1994 <strong>NOTE:</strong> By itself, <strong>SETBOLDER</strong>
1995 will not start emboldening type; it merely tells
1996 <strong>mom</strong> what you want the emboldening offset to be.
1997 To start emboldening, use the
1998 <a href="definitions.html#TERMS_INLINES">inline escape</a>
1999 <strong>\*[BOLDER]</strong>.
2000 <br>
2001
2002 <!---\*[BOLDER]--->
2003
2004 <hr width="66%" align="left">
2005 <a name="BOLDER_INLINE"><h3><u>Emboldening on/off</u></h3></a>
2006 <br>
2007 Inline: <strong>\*[BOLDER] -- turn emboldening on</strong>
2008 <br>
2009 Inline: <strong>\*[BOLDERX] -- turn emboldening off</strong>
2010
2011 <p>
2012 <strong>\*[BOLDER]</strong> begins emboldening type.
2013 <strong>\*[BOLDERX]</strong> turns the feature off.  Both are
2014 <a href="definitions.html#TERMS_INLINES">inline escapes</a>,
2015 therefore they should not appear as separate lines, but rather
2016 be embedded in text lines, like this:
2017 <p>
2018 <pre>
2019         Not \*[BOLDER]everything\*[BOLDERX] is as it seems.
2020 </pre>
2021
2022 Alternatively, if you wanted the whole line emboldened,
2023 you'd do
2024 <p>
2025 <pre>
2026         \*[BOLDER]Not everything is as it seems.\*[BOLDERX]
2027 </pre>
2028
2029 Once <strong>\*[BOLDER]</strong> is invoked, it remains in effect
2030 until turned off.
2031
2032 <p>
2033 <strong>NOTE:</strong> If you're using the
2034 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
2035 with
2036 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
2037 <strong>mom</strong> ignores <strong>\*[BOLDER]</strong>
2038 requests.
2039 <br>
2040
2041 <!---CONDENSE--->
2042
2043 <hr width="66%" align="left">
2044 <a name="CONDENSE"><h3><u>Set percentage for pseudo-condensed type</u></h3></a>
2045 <br>
2046 Macro: <strong>CONDENSE</strong> <var>&lt;pseudo-condense percentage&gt;</var>
2047
2048 <p>
2049 Pseudo-condensing of type is accomplished by reducing the width of
2050 characters at a given point size without reducing their height,
2051 effectively narrowing them so they look like condensed type.
2052 <strong>CONDENSE</strong> tells <strong>mom</strong> what
2053 percentage of the normal character width you want the characters
2054 to be condensed.
2055 <p>
2056 <strong>Mom</strong> has no default value for
2057 <strong>CONDENSE</strong>, therefore you must set it before using the
2058 <a href="definitions.html#TERMS_INLINES">inline escape</a>
2059 <a href="#COND_INLINE">\*[COND]</a>.
2060 80 percent of the normal character width is a good value, and
2061 you'd set it like this:
2062 <p>
2063 <pre>
2064         .CONDENSE 80
2065 </pre>
2066
2067 <strong>NOTE:</strong> By itself, <strong>CONDENSE</strong>
2068 will not start pseudo-condensing type; it merely tells
2069 <strong>mom</strong> what percentage of the normal character
2070 width you want characters to be condensed.
2071 To start pseudo-condensing, use the
2072 <a href="definitions.html#TERMS_INLINES">inline escape</a>
2073 <strong>\*[COND]</strong>.
2074 <p>
2075 <strong>Additional note:</strong> Make sure that pseudo-condensing
2076 is off (with
2077 <a href="#COND_INLINE">\*[CONDX]</a>)
2078 before before making any changes to the pseudo-condense percentage
2079 with <strong>CONDENSE</strong>.
2080 <br>
2081
2082 <!---\*[COND]--->
2083
2084 <hr width="66%" align="left">
2085 <a name="COND_INLINE"><h3><u>Pseudo-condensing on/off</u></h3></a>
2086 <br>
2087 Inline: <strong>\*[COND] -- turn pseudo-condensing on</strong>
2088 <br>
2089 Inline: <strong>\*[CONDX] -- turn pseudo-condensing off</strong>
2090
2091 <p>
2092 <strong>\*[COND]</strong> begins pseudo-condensing type.
2093 <strong>\*[CONDX]</strong> turns the feature off.  Both are
2094 <a href="definitions.html#TERMS_INLINES">inline escapes</a>,
2095 therefore they should not appear as separate lines, but rather
2096 be embedded in text lines, like this:
2097 <p>
2098 <pre>
2099         \*[COND]Not everything is as it seems.\*[CONDX]
2100 </pre>
2101
2102 <strong>\*[COND]</strong> remains in effect until you turn it
2103 off with <strong>\*[CONDX]</strong>.
2104
2105 <p>
2106 <strong>IMPORTANT:</strong> You MUST turn <strong>\*[COND]</strong>
2107 off before making any changes to the point size of your type, either
2108 via the
2109 <a href="#PS">PT_SIZE</a>
2110 macro or with the <strong>\s</strong> inline escape.  If you wish
2111 the new point size to be pseudo-condensed, simply reinvoke
2112 <strong>\*[COND]</strong> afterwards.  Equally,
2113 <strong>\*[COND]</strong> must be turned off before changing the
2114 condense percentage with <a href="#CONDENSE">CONDENSE</a>.
2115
2116 <p>
2117 <strong>NOTE:</strong> If you're using the
2118 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
2119 with
2120 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
2121 <strong>mom</strong> ignores <strong>\*[COND]</strong>
2122 requests.
2123 <br>
2124
2125 <!---EXTEND--->
2126
2127 <hr width="66%" align="left">
2128 <a name="EXTEND"><h3><u>Set percentage for pseudo-extended type</u></h3></a>
2129 <br>
2130 Macro: <strong>EXTEND</strong> <var>&lt;pseudo-extend percentage&gt;</var>
2131
2132 <p>
2133 Pseudo-extending of type is accomplished by increasing the width of
2134 characters at a given point size without increasing their height,
2135 effectively widening them so they look like extended type.
2136 <strong>EXTEND</strong> tells <strong>mom</strong> what
2137 percentage of the normal character width you want the characters
2138 to be extended.
2139 <p>
2140 <strong>Mom</strong> has no default value for
2141 <strong>EXTEND</strong>, therefore you must set it before using the
2142 <a href="definitions.html#TERMS_INLINES">inline escape</a>
2143 <a href="#EXT_INLINE">\*[EXT]</a>.
2144 120 percent of the normal character width is a good value, and
2145 you'd set it like this:
2146 <p>
2147 <pre>
2148         .EXTEND 120
2149 </pre>
2150
2151 <strong>NOTE:</strong> By itself, <strong>EXTEND</strong>
2152 will not start pseudo-extending type; it merely tells
2153 <strong>mom</strong> what percentage of the normal character
2154 width you want characters to be extended.
2155 To start pseudo-extending, use the
2156 <a href="definitions.html#TERMS_INLINES">inline escape</a>
2157 <strong>\*[EXT]</strong>.
2158
2159 <p>
2160 <strong>Additional note:</strong> Make sure that
2161 pseudo-extending is off (with
2162 <a href="#EXT_INLINE">\*[EXTX]</a>)
2163 before before making any changes to the pseudo-extend percentage
2164 with <strong>EXTEND</strong>.
2165 <br>
2166
2167 <!---\*[EXT]--->
2168
2169 <hr width="66%" align="left">
2170 <a name="EXT_INLINE"><h3><u>Pseudo-extending on/off</u></h3></a>
2171 <br>
2172 Inline: <strong>\*[EXT] -- turn pseudo-extending on</strong>
2173 <br>
2174 Inline: <strong>\*[EXTX] -- turn pseudo-extending off</strong>
2175
2176 <p>
2177 <strong>\*[EXT]</strong> begins pseudo-extending type.
2178 <strong>\*[EXTX]</strong> turns the feature off.  Both are
2179 <a href="definitions.html#TERMS_INLINES">inline escapes</a>,
2180 therefore they should not appear as separate lines, but rather
2181 be embedded in text lines, like this:
2182 <p>
2183 <pre>
2184         \*[EXT]Not everything is as it seems.\*[EXTX]
2185 </pre>
2186
2187 <strong>\*[EXT]</strong> remains in effect until you turn it
2188 off with <strong>\*[EXTX]</strong>.
2189
2190 <p>
2191 <strong>IMPORTANT:</strong> You MUST turn <strong>\*[EXT]</strong>
2192 off before making any changes to the point size of your type, either
2193 via the
2194 <a href="#PS">PT_SIZE</a>
2195 macro or with the <strong>\s</strong> inline escape.  If you wish
2196 the new point size to be pseudo-extended, simply reinvoke
2197 <strong>\*[EXT]</strong> afterwards.  Equally,
2198 <strong>\*[EXT]</strong> must be turned off before changing the
2199 extend percentage with <a href="#EXTEND">EXTEND</a>.
2200
2201 <p>
2202 <strong>NOTE:</strong> If you're using the
2203 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>
2204 with
2205 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>,
2206 <strong>mom</strong> ignores <strong>\*[EXT]</strong>
2207 requests.
2208 <br>
2209 <hr>
2210
2211 <!====================================================================>
2212
2213 <a name="INTRO_ALDRLD"></a>
2214
2215 <a name="ALDRLD">
2216         <h2><u>Vertical movement</u></h2>
2217 </a>
2218
2219 The two macros in this section allow you to move down or up on the page
2220 relative to the current
2221 <a href="definitions.html#TERMS_BASELINE">baseline</a>.
2222
2223 <a name="INDEX_ALDRLD">
2224         <h3><u>Vertical movement macro list</u></h3>
2225 </a>
2226 <ul>
2227         <li><a href="#ALD">ALD</a> -- Advance Lead
2228         <li><a href="#RLD">RLD</a> -- Reverse Lead
2229 </ul>
2230
2231 <!---ALD--->
2232
2233 <hr width="66%" align="left">
2234         <a name="ALD"><h3><u>Advance Lead (move downward)</u></h3></a>
2235 <br>
2236 Macro: <strong>ALD</strong> <var>&lt;distance to move downward&gt;</var>
2237 <br>
2238 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
2239
2240 <p>
2241 <strong>ALD</strong> takes one argument: the distance to move downward
2242 on the page relative to the current vertical position.
2243 <p>
2244 Used by itself, or preceded by
2245 <a href="#BR">BR</a>,
2246 <strong>ALD</strong> will advance by one line space plus the
2247 distance you specify.  Preceded by
2248 <a href="#EL">EL</a>,
2249 it will advance by exactly the distance you specify.
2250 <p>
2251 <strong>ALD</strong> requires a unit of measure.  Decimal fractions
2252 are allowed, and values may be combined.  Therefore, to move down
2253 on the page by 1/4 of an inch, you could enter either
2254 <p>
2255 <pre>
2256         .ALD .25i
2257             or
2258         .ALD 1P+6p
2259 </pre>
2260
2261 As the mnemonic (<strong>A</strong>dvance
2262 <strong>L</strong>ea<strong>D</strong>) suggests, you'll most often
2263 use <strong>ALD</strong> with
2264 <a href="definitions.html#TERMS_PICASPOINTS">points</a>
2265 of lead.
2266
2267 <p>
2268 <strong>NOTE:</strong> if you want to use <strong>ALD</strong>
2269 at the top of a page (i.e. to advance to the starting position
2270 of type on a page), combine the value you want with -1v (minus
2271 one line space), like this:
2272 <p>
2273 <pre>
2274         .ALD 1i-1v
2275 </pre>
2276
2277 At the top of a page, this will advance one inch from the
2278 top edge of the paper.  Without the -1v, the same command would
2279 advance one inch from the top of the page plus the distance of
2280 one line space.
2281 <p>
2282 <strong>Important:</strong> Do NOT use <strong>ALD</strong> in this
2283 way if you have set a top margin with
2284 <a href="#T_MARGIN">T_MARGIN</a>
2285 or
2286 <a href="#PAGE">PAGE</a>.
2287 <br>
2288
2289 <!---RLD--->
2290
2291 <hr width="66%" align="left">
2292         <a name="RLD"><h3><u>Reverse Lead (move upward)</u></h3></a>
2293 <br>
2294 Macro: <strong>RLD</strong> <var>&lt;distance to move upward&gt;</var>
2295 <br>
2296 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
2297
2298 <p>
2299 <strong>RLD</strong> takes one argument: the distance to move
2300 upward on the page relative to the current vertical position.
2301 <p>
2302 Used by itself, or preceded by
2303 <a href="#BR">BR</a>,
2304 <strong>RLD</strong> will advance by one line space, then
2305 reverse by the distance you specify.  Preceded by
2306 <a href="#EL">EL</a>,
2307 it will reverse by exactly the distance you specify.
2308 <p>
2309 <strong>RLD</strong> requires a unit of measure.  Decimal fractions
2310 are allowed, and values may be combined.  Therefore, to move up
2311 on the page by 1/4 of an inch, you could enter either
2312 <p>
2313 <pre>
2314         .RLD .25i
2315             or
2316         .RLD 1P+6p
2317 </pre>
2318
2319 As the mnemonic (<strong>R</strong>dvance
2320 <strong>L</strong>ea<strong>D</strong>) suggests, you'll most often
2321 use <strong>RLD</strong> with
2322 <a href="definitions.html#TERMS_PICASPOINTS">points</a>
2323 of lead.
2324 <br>
2325 <hr>
2326
2327 <!====================================================================>
2328
2329 <a name="INTRO_TABS"></a>
2330
2331 <a name="TABS">
2332         <h2><u>Tabs</u></h2>
2333 </a>
2334
2335 <strong>Mom</strong> provides two different kinds of tab setup:
2336 typesetting tabs and string tabs.  Neither one has anything to
2337 do with the tab key on your keyboard, and both are utterly
2338 divorced from groff's notion of tabs.  I recommend reading this
2339 section carefully in order to understand how
2340 <strong>mom</strong> handles tabs.
2341
2342 <a name="TYPESETTING_TABS"><h3><u>Typesetting tabs</u></h3></a>
2343 <p>
2344 Typesetting tabs are defined by both an indent from the left margin and
2345 a line length.  This is quite different from typewriter-style tab stops
2346 (the groff norm) that only define the left indent.  In conjunction
2347 with the multi-column macros, typesetting tabs significantly facilitate
2348 tabular and columnar work.
2349 <p>
2350 Typesetting tabs are created with the <strong>TAB_SET</strong>
2351 macro. <strong>TAB_SET</strong> identifies the tab (by number),
2352 establishes its left indent and line length, and optionally sets
2353 a quad direction and fill mode.  After tabs have been created with
2354 <strong>TAB_SET</strong>, they can be called at any time with the
2355 <strong>TAB</strong> macro.
2356 <p>
2357 <strong>NOTE:</strong> see the section
2358 <a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
2359 for information and advice on using tabs with the
2360 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
2361
2362 <a name="TYPESETTING_TABS_TUT"><h3><u>Quickie tutorial on typesetting tabs</u></h3></a>
2363 <p>
2364 Say you want to set up three tabs to produce an employee evaluation
2365 that looks something like this:
2366 <p>
2367 <a name="TYPSETTING_TABS_SAMPLE"></a>
2368 <pre>
2369         CRITERION       EVALUATION     COMMENTS
2370
2371         Service           Good         Many clients specifically request
2372                                        support from Joe by name.
2373
2374         Punctuality    Satisfactory    Tends to arrive after 8:00am, but
2375                                        often works through lunch hour.
2376
2377         Team spirit     Needs work     Persistently gives higher priority
2378                                        to helping clients than respecting
2379                                        organizational hierarchy.
2380 </pre>
2381
2382 You want the first tab (&quot;CRITERION&quot;)
2383 <br>
2384 <ul>
2385         <li>to begin at the left margin of the page (i.e. no indent)
2386         <li>to have a line length of 5 picas
2387         <li>to be set flush left
2388 </ul>
2389 <br>
2390 Tabs must be numbered, and each has to be set up with a separate
2391 <a href="#TAB_SET">TAB_SET</a>
2392 line.  Therefore, to set up tab 1, you enter
2393 <p>
2394 <pre>
2395    .TAB_SET  1  0  5P  L
2396              |  |  |   |
2397       tab #__|  |  |   |__direction
2398                 |  |
2399         indent__|  |__length
2400 </pre>
2401
2402 You want the second tab (&quot;EVALUATION&quot;)
2403 <br>
2404 <ul>
2405         <li>to begin 8 picas from the left margin
2406         <li>to have a length of 9 picas
2407         <li>to be set centered.
2408 </ul>
2409 <br>
2410 You set it up like this:
2411 <p>
2412 <pre>
2413    .TAB_SET  2  8P  9P  C
2414              |  |   |   |
2415       tab #__|  |   |   |__direction
2416                 |   |
2417         indent__|   |__length
2418 </pre>
2419
2420 You want the third tab (&quot;COMMENTS&quot;)
2421 <br>
2422 <ul>
2423         <li>to begin 19 picas from the left margin
2424         <li>to have a length of 17 picas
2425         <li>to be set flush left, <a href="definitions.html#TERMS_FILLED">filled</a>
2426 </ul>
2427 <br>
2428 The setup looks like this:
2429 <p>
2430 <pre>
2431    .TAB_SET  3  19P  17P  L  QUAD
2432              |   |    |   |    |
2433              |   |    |   |    |__fill output lines
2434              |   |    |   |
2435       tab #__|   |    |   |__direction
2436                  |    |
2437          indent__|    |__length
2438 </pre>
2439
2440 Once the tabs are set up, you can call them in one of two ways:
2441 <br>
2442 <ul>
2443         <li><a href="#TAB">TAB</a> (with the tab
2444                 number as an argument) breaks the current line,
2445                 advances one linespace, and calls the tab.
2446         <li><a href="#TN">TN</a> (Tab Next) keeps
2447                 you on the current line and moves over to the next
2448                 tab in sequence (i.e. from 1 to 2, 2 to 3, etc.).
2449 </ul>
2450 <br>
2451 To exit from tabs and restore your original left margin, line length,
2452 quad direction and fill mode,  use
2453 <a href="#TQ">TQ</a>
2454 (Tab Quit).
2455 <p>
2456 Here's how the input for our sample employee evaluation looks
2457 (with some introductory parameters):
2458 <p>
2459 <pre>
2460         .PAGE 8.5i 11i 1i 1i 1i
2461         .FAMILY  T
2462         .FT      R
2463         .PT_SIZE 14
2464         .LS      16
2465         .QUAD    LEFT
2466         .KERN
2467         .HY OFF
2468         .SS 0
2469         .TAB_SET 1 0   5P  L
2470         .TAB_SET 2 8P  9P  C
2471         .TAB_SET 3 19P 17P L QUAD
2472         .TAB 1
2473         CRITERION
2474         .TN
2475         EVALUATION
2476         .TN
2477         COMMENTS
2478         .SP
2479         .TAB 1
2480         Service
2481         .TN
2482         Good
2483         .TN
2484         Many clients specifically request support from Joe by name.
2485         .SP
2486         .TAB 1
2487         Punctuality
2488         .TN
2489         Satisfactory
2490         .TN
2491         Tends to arrive after 8:00am, but often works through lunch hour.
2492         .SP
2493         .TAB 1
2494         Team spirit
2495         .TN
2496         Needs work
2497         .TN
2498         Persistently gives higher priority to helping clients
2499         than respecting organizational hierarchy.
2500         .TQ
2501 </pre>
2502
2503 Try setting this up and previewing it with
2504 <p>
2505 <pre>
2506         groff -mom -X &lt;filename&gt;
2507 </pre>
2508
2509 Notice how <kbd>.TN</kbd> simply moves over to the next tab,
2510 while the combination <kbd>.SP/.TAB 1</kbd> breaks the
2511 line, advances by one extra linespace, and calls the first tab.
2512 <p>
2513 Notice, too, how the <kbd>QUAD</kbd> argument passed to
2514 tab 3 means you don't have to worry about the length of
2515 <a href="definitions.html#TERMS_INPUTLINE">input lines</a>;
2516 <strong>mom</strong>
2517 <a href="definitions.html#TERMS_FILLED">fills</a>
2518 the tab and sets the type flush left.
2519
2520 <a name="STRING_TABS"><h3><u>String tabs (autotabs)</u></h3></a>
2521 <p>
2522 String tabs let you mark off tab positions inline.  Left indents
2523 and line lengths are calculated from the beginning and end positions of
2524 the marks.  This is especially useful when tab indents and lengths
2525 need to be determined from the text that goes in each tab.
2526 <p>
2527 Setting up string tabs is a two-step procedure.  First, you enter an
2528 input line in which you mark off where you want tabs to begin and end.
2529 (This is often best done in conjunction with the
2530 <a href="goodies.html#SILENT">SILENT</a>
2531 macro.)
2532 <p>
2533 Next, you invoke the
2534 <a href="#ST">ST</a>
2535 macro for every string tab you defined, and optionally pass quad and
2536 fill information to it.  That done, string tabs are called with
2537 the
2538 <a href="#TAB">TAB</a>
2539 macro, just like typesetting tabs.
2540 <p>
2541 In combination with the
2542 <a href="goodies.html#PAD">PAD</a>
2543 macro and the groff inline escape
2544 <a href="inlines.html#INLINE_HORIZONTAL_GROFF">\h</a>
2545 (move horizontally across the page) or <strong>mom</strong>'s
2546 <a href="inlines.html#INLINE_HORIZONTAL_MOM">\*[FP#]</a>
2547 (Forward Points) inline, string tabs provide
2548 tremendous flexibility in setting up complex tab structures.
2549
2550 <a name="STRING_TABS_TUT"><h3><u>Quickie tutorial on string tabs</u></h3></a>
2551 <p>
2552 Say you want to set up tabs for the
2553 <a href="#TYPSETTING_TABS_SAMPLE">employee evaluation form</a>
2554 used as an example in the
2555 <a href="#TYPESETTING_TABS_TUT">typesetting tabs tutorial</a>.
2556 This time, though, you want to play around with the point size of
2557 type, so you can't know exactly how long the tabs will be or where
2558 they should start.  All you know is
2559 <br>
2560 <ul>
2561         <li>CRITERION is the longest line in tab 1
2562         <li>EVALUATION is the longest line in tab 2
2563         <li>tab 3 should extend to the current right margin
2564         <li>you want a 1 pica gutter between each tab
2565 </ul>
2566 <br>
2567 This is an ideal job for string tabs.
2568 <p>
2569 The first thing you need for string tabs is an
2570 <a href="definitions.html#TERMS_INPUTLINE">input line</a>
2571 with tab positions marked on it.  Tabs are marked with the
2572 <a href="definitions.html#TERMS_INLINES">inline escapes</a>
2573 <strong>\*[ST#]</strong> and <strong>\*[ST#X]</strong>.  (In this
2574 example, we enclose the input line with the
2575 <a href="goodies.html#SILENT">SILENT</a>
2576 macro so the line doesn't print.  We also use the
2577 <a href="goodies.html#PAD">PAD</a>
2578 macro to permit defining tab 3 as simply &quot;the amount of
2579 space remaining on the input line.&quot;)
2580 <p>
2581 The setup looks like this:
2582 <p>
2583 <pre>
2584         .SILENT
2585         .PAD "\*[ST1]CRITERION\*[ST1X]\*[FP12]\*[ST2]EVALUATION\*[ST2X]\*[FP12]\*[ST3]#\*[ST3X]"
2586         .SILENT OFF
2587 </pre>
2588
2589 The long line after <kbd>.PAD</kbd> looks scary, but it isn't.
2590 Here's what it means when broken down into its component parts:
2591 <br>
2592 <ul>
2593         <li>The longest line in tab 1 is &quot;CRITERION&quot;, so we
2594                 enclose CRITERION with begin/end markers for string tab 1:
2595                 <p>
2596                 <kbd>\*[ST1]CRITERION\*[ST1X]</kbd>
2597                 <br>
2598         <li>We want a 1 pica (12 points) gutter between tab 1 and 2,
2599                 so we insert 12 points of space with \*[FP12]
2600                 (<strong>F</strong>orward <strong>P</strong>oints 12):
2601                 <p>
2602                 <kbd>\*[FP12]</kbd>
2603                 <br>
2604         <li>The longest line in tab 2 is &quot;EVALUATION&quot;, so
2605                 we enclose EVALUATION with begin/end markers for string
2606                 tab 2:
2607                 <p>
2608                 <kbd>\*[ST2]EVALUATION\*[ST2X]</kbd>
2609                 <br>
2610         <li>We want 1 pica (12 points) between tab 2 and 3, so we
2611                 insert 12 points of space with another \*[FP12]:
2612                 <p>
2613                 <kbd>\*[FP12]</kbd>
2614                 <br>
2615         <li>We want tab 3 to be as long as whatever space remains on
2616                 the current line length, so we enclose the
2617                 <a href="goodies.html#PAD_MARKER">pad marker</a>
2618                 (#) with begin/end markers for string tab 3:
2619                 <p>
2620                 <kbd>\*[ST3]#\*[ST3X]</kbd>
2621                 <br>
2622 </ul>
2623 <br>
2624 The tabs are now defined, but they require
2625 <a href="definitions.html#TERMS_QUAD">quad direction</a>
2626 and
2627 <a href="definitions.html#TERMS_FILLED">fill</a>
2628 information.  For each string tab defined above, enter a
2629 separate
2630 <a href="#ST">ST</a>
2631 line, like this:
2632 <p>
2633 <pre>
2634         .ST  1  L
2635         .ST  2  L
2636         .ST  3  L  QUAD
2637              |  |   |
2638              |  |   |__fill output lines
2639              |  |
2640         tab__|  |__direction
2641         number
2642 </pre>
2643
2644 From here on in, you call the tabs with
2645 <a href="#TAB">TAB</a>
2646 and
2647 <a href="#TN">TN</a>
2648 just like typesetting tabs (see
2649 <a href="#TYPESETTING_TABS_TUT">typesetting tabs tutorial</a>).
2650 <p>
2651 Here's the complete setup and entry for the sample employee
2652 evaluation form utilising string tabs.
2653 <p>
2654 <pre>
2655         .PAGE 8.5i 11i 1i 1i 1i
2656         .FAMILY  T
2657         .FT      R
2658         .PT_SIZE 14
2659         .LS      16
2660         .QUAD    LEFT
2661         .KERN
2662         .HY OFF
2663         .SS 0
2664         .SILENT
2665         .PAD "\*[ST1]CRITERION\*[ST1X]\*[FP12]\*[ST2]EVALUATION\*[ST2X]\*[FP12]\*[ST3]#\*[ST3X]"
2666         .SILENT OFF
2667         .ST  1  L
2668         .ST  2  L
2669         .ST  3  L  QUAD
2670         .TAB 1
2671         CRITERION
2672         .TN
2673         EVALUATION
2674         .TN
2675         COMMENTS
2676         .SP
2677         .TAB 1
2678         Service
2679         .TN
2680         Good
2681         .TN
2682         Many clients specifically request support from Joe by name.
2683         .SP
2684         .TAB 1
2685         Punctuality
2686         .TN
2687         Satisfactory
2688         .TN
2689         Tends to arrive after 8:00am, but often works through lunch hour.
2690         .SP
2691         .TAB 1
2692         Team spirit
2693         .TN
2694         Needs work
2695         .TN
2696         Persistently gives higher priority to helping clients
2697         than respecting organizational hierarchy.
2698         .TQ
2699 </pre>
2700
2701 Try setting this up and previewing it with
2702 <p>
2703 <pre>
2704         groff -mom -X &lt;filename&gt;
2705 </pre>
2706
2707 Now, change the point size of the above sample to 12 and preview
2708 it again.  You'll see that the tab structure remains identical (tab
2709 1=CRITERION, tab 2=EVALUATION, tab 3=space remaining, and the gutter
2710 between tabs is still 1 pica), while the position and length 
2711 of the tabs have altered because of the new point size.
2712 <p>
2713 Now try increasing the gutters to 2 picas (put an additional
2714 <kbd>\*[FP12]</kbd> after each <kbd>\*[FP12]</kbd>).  Preview the
2715 file again, and notice how the tab structure remains the same, but
2716 the gutters are wider.
2717
2718
2719 <a name="INDEX_TABS">
2720         <h3><u>Tabs macro list</u></h3>
2721 </a>
2722
2723 <ul>
2724         <li><a href="#TAB_SET">TAB_SET</a> (create typesetting tabs)
2725         <li><a href="#INLINE_ST">\*[ST]...\*[STX]</a> (inline escapes for marking String Tabs)
2726         <li><a href="#ST">ST</a> (set String Tabs)
2727         <li><a href="#TAB">TAB</a> (call tabs)
2728         <li><a href="#TN">TN</a> (Tab Next; call next tab in a sequence)
2729         <li><a href="#TQ">TQ</a> (Tab Quit)
2730 </ul>
2731
2732 <!---TAB_SET--->
2733
2734 <hr width="66%" align="left">
2735         <a name="TAB_SET"><h3><u>Set up typsetting tabs</u></h3></a>
2736 <br>
2737 Macro: <strong>TAB_SET</strong> <var>&lt;tab number&gt; &lt;indent&gt; &lt;length&gt;  L | R | C | J [ QUAD ]</var>
2738 <br>
2739 <em>*&lt;indent&gt; and &lt;length&gt; require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
2740
2741 <p>
2742 <strong>TAB_SET</strong> creates typesetting tabs that later can be
2743 called with
2744 <a href="#TAB">TAB</a>.
2745 Typesetting tabs are numbered, and defined by an indent, a length,
2746 and a &quot;direction&quot;, hence <strong>TAB_SET</strong> has
2747 four required arguments:
2748 <br>
2749 <ul>
2750         <li>a tab number
2751         <li>an indent (measured from the left margin of the page,
2752         or, if you're already in a tab, from the left margin of the tab)
2753         <li>a length
2754         <li>a direction
2755 </ul>
2756 <br>
2757 To set up a centered tab 6 picas long and 9 points from the left
2758 margin, you'd enter
2759 <p>
2760 <pre>
2761         .TAB_SET 1 9p 6P C
2762 </pre>
2763
2764 The tab number in the above (&quot;1&quot;) is simply an
2765 identifier.  It could have been 4, or 17, or 296.  There's no
2766 need to set up tabs in numerical sequence.
2767 <p>
2768 By default, tabs are in
2769 <a href="definitions.html#TERMS_NOFILL">nofill</a>
2770 mode, meaning you can enter text in tabs on a line for line basis
2771 without having to use the
2772 <a href="#BR">BR</a>
2773 macro.  If you want a tab to be
2774 <a href="definitions.html#TERMS_FILLED">filled</a>,
2775 pass the optional argument <strong>QUAD</strong>, which will
2776 make the tab behave as if you'd entered <kbd>.QUAD L | R |
2777 C</kbd>.
2778 <p>
2779 For
2780 <a href="definitions.html#TERMS_JUST">justified</a>
2781 tabs, simply pass the argument <strong>J</strong> (without the
2782 <strong>QUAD</strong> argument), like this:
2783 <p>
2784 <pre>
2785         .TAB 1 9p 6P J
2786 </pre>
2787
2788 Once tabs are set, they can be called at any time with the
2789 <a href="#TAB">TAB #</a>
2790 macro, where &quot;#&quot; is the number of the desired tab.
2791 <p>
2792 You can set up any number of typesetting tabs.  However, be
2793 aware that
2794 <a href="#STRING_TABS">string tabs</a>
2795 are also called with <strong>TAB #</strong>, so be careful that you
2796 don't set up a typesetting tab numbered, say, 4, when you already
2797 have a string tab numbered 4.  Every tab, typesetting or string,
2798 must have a unique numeric identifier.
2799 <p>
2800 <strong>NOTE:</strong> If you use <strong>TAB_SET</strong> while
2801 you're currently inside a tab, the indent argument is the distance from
2802 the tab's left margin, not the left margin of the page.  Therefore,
2803 you should exit tabs (with
2804 <a href="#TQ">TQ</a>)
2805 before creating new tabs (unless, of course, you want to set
2806 up a tab structure within the confines of an existing tab).
2807 <p>
2808 <strong>IMPORTANT:</strong> Turn all indents off (see
2809 <a href="#INDENTS">Indents</a>)
2810 before setting up tabs with <strong>TAB_SET</strong>, or
2811 <strong>mom</strong> may get confused.
2812 <br>
2813
2814 <!---INLINE_ST--->
2815
2816 <hr width="66%" align="left">
2817         <a name="INLINE_ST"><h3><u>Mark positions of string tabs</u></h3></a>
2818 <br>
2819 Inlines: <strong>\*[ST&lt;number&gt;]...\*[ST&lt;number&gt;X]</strong>
2820
2821 <p>
2822 String tabs need to be marked off with
2823 <a href="definitions.html#TERMS_INLINES">inline escapes</a>
2824 before being set up with the
2825 <a href="#ST">ST</a>
2826 macro.  Any input line may contain string tab markers.
2827 <i>&lt;number&gt;</i>, above, means the numeric identifier of
2828 the tab.  The following shows a sample input line with string
2829 tab markers.
2830 <p>
2831 <pre>
2832         \*[ST1]Now is the time\*[ST1X] for all \*[ST2]good men\*ST2X] to come to the aid of the party.
2833 </pre>
2834
2835 String tab 1 begins at the start of the line and ends after the word
2836 &quot;time&quot;.  String tab 2 starts at &quot;good&quot; and ends
2837 after &quot;men&quot;.  Inline escapes (e.g. font or point size
2838 changes, or horizontal movements, including
2839 <a href="goodies.html#PAD">padding</a>)
2840 are taken into account when <strong>mom</strong> determines the
2841 position and length of string tabs.
2842 <p>
2843 Up to nineteen string tabs may be marked (not necessarily all on
2844 the same line, of course), and they must be numbered between 1
2845 and 19.
2846 <p>
2847 Once string tabs have been marked in input lines, they have to
2848 be &quot;set&quot; with
2849 <a href="#ST">ST</a>,
2850 after which they may be called, by number, with
2851 <a href="#TAB">TAB</a>.
2852 <p>
2853 <strong>NOTE:</strong> Lines with string tabs marked off in them
2854 are normal input lines, i.e. they get printed, just like any
2855 input line.  If you want to set up string tabs without the line
2856 printing, use the
2857 <a href="#SILENT">SILENT</a>
2858 macro.
2859 <p>
2860 <strong>IMPORTANT:</strong> Do not try to set up string tabs on
2861 a line that is broken with
2862 <a href="#SPREAD">SPREAD</a>.
2863 <strong>Mom</strong> calculates string tab positions and lengths
2864 as she reads the input line, not after the line has undergone
2865 manipulations to the word spacing.
2866 <br>
2867
2868 <!---ST--->
2869
2870 <hr width="66%" align="left">
2871         <a name="ST"><h3><u>Set string tabs</u></h3></a>
2872 <br>
2873 Macro: <strong>ST</strong> <var>&lt;tab number&gt;  L | R | C | J [ QUAD ]</var>
2874
2875 <p>
2876 After string tabs have been marked off on an input line (see
2877 <a href="#INLINE_ST">\*[ST]...\*[STX]</a>),
2878 you need to &quot;set&quot; them by giving them a direction
2879 and, optionally, the <strong>QUAD</strong> argument.  In this
2880 respect, <strong>ST</strong> is like
2881 <a href="#TAB_SET">TAB_SET</a>
2882 except that you don't have to give <strong>ST</strong> an indent
2883 or a line length (that's already taken care of, inline, by
2884 <kbd>\*[ST]...\*[STX]</kbd>).  If you want string tab 1 to be
2885 left, enter
2886 <p>
2887 <pre>
2888         .ST 1 L
2889 </pre>
2890
2891 If you want it to be left and
2892 <a href="definitions.html#TERMS_FILLED">filled</a>, enter
2893 <p>
2894 <pre>
2895         .ST 1 L QUAD
2896 </pre>
2897
2898 If you want it to be justified, enter
2899 <p>
2900 <pre>
2901         .ST 1 J
2902 </pre>
2903
2904 See the
2905 <a href="#STRING_TABS_TUT">Quickie tutorial on string tabs</a>
2906 for a full explanation of setting up string tabs.
2907 <br>
2908
2909 <!---TAB--->
2910
2911 <hr width="66%" align="left">
2912 <a name="TAB"><h3><u>Call tabs</u></h3></a>
2913 <br>
2914 Macro: <strong>TAB</strong> <var>&lt;tab number&gt;</var>
2915 <br>
2916 Alias: <strong>TB</strong>
2917 <p>
2918 After tabs have been defined (either with
2919 <a href="#TAB_SET">TAB_SET</a>
2920 or
2921 <a href="#ST">ST</a>),
2922 <strong>TAB</strong> moves to whatever tab number you pass it as
2923 an argument.  For example,
2924 <p>
2925 <pre>
2926         .TAB 3
2927 </pre>
2928
2929 moves you to tab 3.
2930 <p>
2931 <a name="NOTE_TN"></a>
2932 <strong>NOTE:</strong> <strong>TAB</strong> breaks the line preceding
2933 it and advances 1 linespace.  Hence,
2934 <p>
2935 <pre>
2936         .TAB 1
2937         A line of text in tab 1.
2938         .TAB 2
2939         A line of text in tab 2.
2940 </pre>
2941
2942 produces, on output
2943 <p>
2944 <pre>
2945         A line of text in tab 1.
2946                                    A line of text in tab 2.
2947 </pre>
2948
2949 If you want the tabs to line up, use
2950 <a href="#TN">TN</a>
2951 (Tab Next), like this:
2952 <p>
2953 <pre>
2954         .TAB 1
2955         A line of text in tab 1.
2956         .TN
2957         A line of text in tab 2.
2958 </pre>
2959
2960 which produces
2961 <p>
2962 <pre>
2963         A line of text in tab 1.   A line of text in tab 2.
2964 </pre>
2965
2966 If the text in your tabs runs to several lines, and you want the
2967 first lines of each tab to align, you must use the
2968 <a href="#MULTI_COLUMNS">multi-column</a> macros.
2969 <p>
2970 <strong>ADDITIONAL NOTE:</strong> Any indents in effect prior to
2971 calling a tab are automatically turned off by <strong>TAB</strong>.
2972 If you were happily zipping down the page with a left indent of 2
2973 picas turned on, and you call a tab whose indent from the left margin
2974 is 6 picas, your new distance from the left margin will be 6 picas,
2975 not 6 picas plus the 2 pica indent.
2976 <br>
2977
2978 <!---TN--->
2979
2980 <hr width="66%" align="left">
2981 <a name="TN"><h3><u>Tab Next</u></h3></a>
2982 <br>
2983 Macro: <strong>TN</strong>
2984 <br>
2985
2986 <p>
2987 <strong>TN</strong> moves over to the next tab in numeric
2988 sequence (tab n+1) without advancing on the page.  See the
2989 <a href="#NOTE_TN">NOTE</a>
2990 in the description of the <strong>TAB</strong> macro for an
2991 example of how <strong>TN</strong> works.
2992 <p>
2993 <strong>NOTE:</strong> <strong>TN</strong> is like
2994 <a href="#EL">EL</a>
2995 in that it doesn't work as advertised on the last line before a
2996 footer trap is sprung.  If you need to use <strong>TN</strong>
2997 on the last line of a page with a footer trap, turn the trap off with
2998 <a href="goodies.html#TRAP">TRAP</a>,
2999 as in this example:
3000 <p>
3001 <pre>
3002         .TAB_SET 1 0  1P  L
3003         .TAB_SET 2 1P 20P L
3004         .TAB 1
3005         .TRAP OFF
3006         1.
3007         .TN
3008         The first rule of survival is &quot;make and keep good friends.&quot;
3009         .TRAP
3010 </pre>
3011
3012 The above, at the bottom of a page, will look something like this:
3013 <p>
3014 <pre>
3015         1.  The first rule of survival is &quot;make and keep good friends.&quot;
3016 </pre>
3017
3018 If you hadn't turned the trap off before <kbd>.TN</kbd>,
3019 &quot;1.&quot; would have appeared as the last line on the page,
3020 with &quot;The first rule of survival...&quot; being the first
3021 line on the next page.
3022 <br>
3023
3024 <!---TQ--->
3025
3026 <hr width="66%" align="left">
3027 <a name="TQ"><h3><u>Tab Quit</u></h3></a>
3028 <br>
3029 Macro: <strong>TQ</strong>
3030 <br>
3031
3032 <p>
3033 <strong>TQ</strong> takes you out of whatever tab you were in,
3034 advances 1 linespace, and restores the left margin, line length,
3035 quad direction and
3036 <a href="definitions.html#TERMS_FILLED">fill mode</a>
3037 that were in effect prior to invoking any tabs.
3038 <br>
3039 <hr>
3040
3041 <!====================================================================>
3042
3043 <a name="INTRO_MULTI_COLUMNS"></a>
3044
3045 <a name="MULTI_COLUMNS">
3046         <h2><u>Multi-Columns</u></h2>
3047 </a>
3048
3049 Tabs are not by nature columnar, which is to say that if the text
3050 inside a tab runs to several lines, calling another tab does not
3051 automatically move to the
3052 <a href="definitions.html#TERMS_BASELINE">baseline</a>
3053 of the first line in the previous tab.  To demonstrate:
3054 <p>
3055 <pre>
3056         .TAB 1
3057         Carrots
3058         Potatoes
3059         Broccoli
3060         .TAB 2
3061         $1.99/5 lbs
3062         $0.25/lb
3063         $0.99/bunch
3064 </pre>
3065
3066 produces, on output
3067 <p>
3068 <pre>
3069         Carrots
3070         Potatoes
3071         Broccoli
3072                    $1.99/5 lbs
3073                    $0.25/lb
3074                    $0.99/bunch
3075 </pre>
3076
3077 The multi-column macros allow you to set tabs in columnar
3078 fashion, rather than line by line.  When you invoke multi-column
3079 mode (with
3080 <a href="#MCO">MCO</a>),
3081 <strong>mom</strong> saves the position of the current baseline.
3082 <a href="#MCR">MCR</a>
3083 (Multi-column return) at any point while multi-columns are on
3084 returns you to the saved position.  Exiting multi-columns
3085 (<a href="#MCX">MCX</a>)
3086 quits the current tab (if you're in one) and moves you to the
3087 bottom of the longest column.  (Note that you do not have to use
3088 multi-columns in conjunction with tabs.)
3089 <p>
3090 Using our example above, but setting it in multi-column mode,
3091 <p>
3092 <pre>
3093         .MCO
3094         .TAB 1
3095         Carrots
3096         Potatoes
3097         Broccoli
3098         .MCR
3099         .TAB 2
3100         $1.99/5 lbs
3101         $0.25/lb
3102         $0.99/bunch
3103         .MCX
3104 </pre>
3105
3106 produces
3107 <p>
3108 <pre>
3109         Carrots   $1.99/5 lbs
3110         Potatoes  $0.25/lb
3111         Broccoli  $0.99/bunch
3112 </pre>
3113
3114 <strong>NOTE:</strong> Do not confuse <strong>MCO</strong> with
3115 the
3116 <a href="docprocessing.html#COLUMNS">COLUMNS</a>
3117 macro in the
3118 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
3119
3120 <a name="INDEX_MULTI_COLUMNS">
3121         <h3><u>Columns macro list</u></h3>
3122 </a>
3123 <ul>
3124         <li><a href="#MCO">MCO (begin multi-column setting)</a>
3125         <li><a href="#MCR">MCR (return to top of column)</a>
3126         <li><a href="#MCX">MCX (exit multi-columns)</a>
3127 </ul>
3128
3129 <!---MCO--->
3130
3131 <hr width="66%" align="left">
3132 <a name="MCO"><h3><u>Begin multi-column setting</u></h3></a>
3133 <br>
3134 Macro: <strong>MCO</strong>
3135 <br>
3136
3137 <p>
3138 <strong>MCO</strong>
3139 (<strong>M</strong>ulti-<strong>C</strong>olumn <strong>O</strong>n)
3140 is the macro you use to begin multi-column setting.  It marks
3141 the current
3142 <a href="definitions.html#TERMS_BASELINE">baseline</a>
3143 as the top of your columns, for use late with
3144 <a href="#MCR">MCR</a>.  See the
3145 <a href="#MULTI_COLUMNS">introduction to columns</a>
3146 for an explanation of multi-columns and some sample
3147 input.
3148 <p>
3149 <strong>NOTE:</strong> Do not confuse <strong>MCO</strong> with
3150 the
3151 <a href="docprocessing.html#COLUMNS">COLUMNS</a>
3152 macro in the
3153 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
3154 <br>
3155
3156 <!---MCR--->
3157
3158 <hr width="66%" align="left">
3159 <a name="MCR"><h3><u>Return to top of column</u></h3></a>
3160 <br>
3161 Macro: <strong>MCR</strong>
3162 <br>
3163
3164 <p>
3165 Once you've turned multi-columns on (with
3166 <a href="#MCO">MCO</a>),
3167 <strong>MCR</strong>, at any time, returns you to the top of
3168 your columns.
3169 <br>
3170
3171 <!---MCX--->
3172
3173 <hr width="66%" align="left">
3174 <a name="MCX"><h3><u>Exit multi-columns</u></h3></a>
3175 <br>
3176 Macro: <strong>MCX</strong> <var>[ &lt;distance to advance below longest column&gt; ]</var>
3177 <br>
3178 <em>*Optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3179
3180 <p>
3181 <strong>MCX</strong> takes you out of any tab you were in (by silently
3182 invoking
3183 <a href="#TQ">TQ</a>) and advances to the bottom of the longest
3184 column.
3185 <p>
3186 Without an argument, <strong>MCX</strong> advances 1 linespace
3187 below the longest column.  Linespace, in this instance, is the
3188 <a href="definitions.html#TERMS_LEADING">leading</a>
3189 in effect <em>at the moment <strong>MCX</strong> is
3190 invoked.</em>
3191 <p>
3192 If you pass the <var>&lt;distance&gt;</var> argument to
3193 <strong>MCX</strong>, it advances 1 linespace below the longest
3194 column (see above) PLUS the distance specified by the argumemnt.
3195 The argument requires a unit of measure; therefore, to advance
3196 an extra 6 points below where <strong>MCX</strong> would
3197 normally place you, you'd enter
3198 <p>
3199 <pre>
3200         .MCX 6p
3201 </pre>
3202
3203 <strong>NOTE:</strong> If you wish to advance a precise distance
3204 below the
3205 <a href="definitions.html#TERMS_BASELINE">baseline</a>
3206 of the longest column, use <strong>MCX</strong> with an
3207 argument of 0 (zero; no unit of measure required) in conjunction
3208 with the
3209 <a href="#ALD">ALD</a>
3210 macro, like this:
3211 <p>
3212 <pre>
3213         .MCX 0
3214         .ALD 24p
3215 </pre>
3216
3217 The above advances to precisely 24 points below the baseline
3218 of the longest column.
3219 <br>
3220 <hr>
3221
3222 <!====================================================================>
3223
3224 <a name="INTRO_INDENTS"></a>
3225
3226 <a name="INDENTS">
3227         <h2><u>Indents</u></h2>
3228 </a>
3229
3230 With <strong>mom</strong>'s indents, you can indent from the left,
3231 the right, or both margins.  In addition, <strong>mom</strong>
3232 provides temporary left indents (i.e. only one line is indented,
3233 as at the start of a paragraph) and &quot;hanging&quot; left indents
3234 (the reverse of a temporary indent; the first line isn't indented,
3235 subsequent lines are).
3236
3237 <a name="INDENTS_TUT"><h3><u>A brief explanation of how mom handles indents</u></h3></a>
3238 <p>
3239 <strong>Mom</strong> provides five kinds of indents: left, right,
3240 both, temporary, and hanging.  Each is invoked by its own name:
3241 <br>
3242 <ul>
3243         <li><strong>IL</strong> = <strong>I</strong>ndent <strong>L</strong>eft
3244         <li><strong>IR</strong> = <strong>I</strong>ndent <strong>R</strong>ight
3245         <li><strong>IB</strong> = <strong>I</strong>ndent <strong>B</strong>oth
3246         <li><strong>HI</strong> = <strong>H</strong>anging <strong>I</strong>ndent
3247         <li><strong>TI</strong> = <strong>T</strong>emporary <strong>I</strong>ndent
3248 </ul>
3249 <br>
3250 In addition, there are four macros to control exiting from
3251 indents:
3252 <br>
3253 <ul>
3254         <li><strong>IQ</strong>&nbsp;&nbsp;= quit all active indents
3255         <li><strong>ILX</strong>&nbsp;= exit indent style left
3256         <li><strong>IRX</strong>&nbsp;= exit indent style right
3257         <li><strong>IBX</strong>&nbsp;= exit indent style both
3258 </ul>
3259 <br>
3260 This section deals exclusively with <strong>IL, IR</strong> and
3261 <strong>IB</strong>.  For an explanation
3262 of hanging and temporary indents -- how they work and how to use
3263 them -- see
3264 <a href="#HI">Hanging indents</a>
3265 and
3266 <a href="#TI">Temporary indents</a>.
3267 <p>
3268 The first time you invoke any of <strong>mom</strong>'s indents,
3269 you must supply a measure.  For example,
3270 <p>
3271 <pre>
3272         .IL 2P
3273 </pre>
3274
3275 indents text 2 picas from the left margin (or current tab
3276 indent).
3277 <p>
3278 When you want to exit the above indent, use either
3279 <p>
3280 <pre>
3281         .IQ
3282          or
3283         .ILX
3284 </pre>
3285
3286 The next time you want the same indent, invoke it without the
3287 argument, like this:
3288 <p>
3289 <pre>
3290         .IL
3291 </pre>
3292
3293 As you can see, once you've supplied a measure to an indent macro
3294 <strong>mom</strong> stores the value, obviating the need to repeat
3295 it on subsequent invocations.  And <strong>mom</strong> doesn't just
3296 store the measure -- she hangs on to it tenaciously.  Arguments passed
3297 to <strong>IL, IR</strong> and <strong>IB</strong> are additive.
3298 Consider the following:
3299 <p>
3300 <pre>
3301         .LL 20P
3302         .IR 2P    \"Indent right by 2 picas
3303         A first block of text...
3304         ...
3305         ...
3306         .IQ       \"Turn indent off
3307         A second block of text...
3308         ...
3309         ...
3310         .IR 2P    \"Indent right by an additional 2 picas (i.e. 4 picas)
3311         A third block of text...
3312         ...
3313         ...
3314 </pre>
3315
3316 The first block of text is right indented by 2 picas (i.e. the line
3317 length is shortened by 2 picas to 18 picas).  The second block of
3318 text, after <strong>IQ</strong>, is, as you'd expect, set to the full
3319 measure.  The third block of text -- the one to pay attention to --
3320 is not right indented by 2 picas, but rather by 4 picas.
3321 <strong>Mom</strong> adds the value of arguments to <strong>IL,
3322 IR</strong> and <strong>IB</strong> to whatever value is already
3323 in effect. 
3324 <p>
3325 If you wanted the third block of text in the example above to
3326 be right indented by just 2 picas (the original measure given to
3327 <strong>IR</strong>), you would enter <kbd>.IR</kbd> without an
3328 argument.
3329 <p>
3330 Because indent arguments are additive, putting a minus sign in front
3331 of the argument can be used to subtract from the current value.
3332 In the following example, the first line is indented 18 points, the
3333 second is indented 36 points (18+18), and the third is again indented
3334 18 points (36-18).
3335 <p>
3336 <pre>
3337         .IL 18p     \"Indent left by 18 points      = 18 points
3338         Now is the time
3339         .IL 18p     \"Indent left by 18 points more = 36 points
3340         for all good men to come
3341         .IL -18p    \"Indent left by 18 points less = 18 points
3342         to the aid of the party.
3343 </pre>
3344
3345 Sometimes, you may want to clear out the stored indent values -- let
3346 <strong>mom</strong> start indenting with a clean slate, as it were.
3347 Giving the optional argument <kbd>CLEAR</kbd> to any of the
3348 &quot;indent quit&quot; macros resets them to zero.
3349 <br>
3350 <ul>
3351         <li><strong>IQ CLEAR</strong>&nbsp;&nbsp;= quit and clear all indents
3352         <li><strong>ILX CLEAR</strong>&nbsp;= quit and clear indent style left
3353         <li><strong>IRX CLEAR</strong>&nbsp;= quit and clear indent style right
3354         <li><strong>IBX CLEAR</strong>&nbsp;= quit and clear indent style both
3355 </ul>
3356 <br>
3357 Indent styles may be combined and manipulated separately.  You could,
3358 for example, have a left indent of 4 picas and a right indent of 6
3359 picas and control each separately, as in the following example.
3360 <p>
3361 <pre>
3362         .IL 4P     \"Indent left 4 picas
3363         .IR 6P     \"Indent right 6 picas
3364         Some text
3365         .IRX       \"Turn off the right indent only
3366         More text  \"Text is still indented 4 picas left
3367 </pre>
3368
3369 If, at <kbd>.IRX</kbd>, you wanted the text afterward to have no
3370 indents (either left or right), you would enter <kbd>.IQ</kbd>,
3371 which exits all indent styles at once.
3372 <p>
3373 <strong>A word of advice:</strong> Indents are best used only when
3374 you have a compelling reason not to change the current left margin or
3375 line length.  In many instances where indents might seem expedient,
3376 it's better to use tabs, or actually change the left margin or the
3377 line length.  <strong>Mom</strong>'s indenting macros are flexible
3378 and powerful, but easy to get tangled up in.  Personally, I don't
3379 use them much, except for cutarounds and multi-level lists à la html,
3380 at which they excel.
3381 <p>
3382 <strong>NOTE:</strong> see the section
3383 <a href="typemacdoc.html#TYPESETTING">Typesetting Macros in Document Processing</a>
3384 for information and advice on using idents with the
3385 <a href="docprocessing.html#DOCPROCESSING">document processing macros</a>.
3386
3387 <a name="INDEX_INDENTS"><h3><u>Indents macro list</u></h3>
3388 <ul>
3389         <li><a href="#IL">IL</a>&nbsp;&nbsp;(Indent left)
3390         <li><a href="#IR">IR</a>&nbsp;&nbsp;(Indent right)
3391         <li><a href="#IB">IB</a>&nbsp;&nbsp;(Indent both)
3392         <li><a href="#TI">TI</a>&nbsp;&nbsp;(Temporary indent, left)
3393         <li><a href="#HI">HI</a>&nbsp;&nbsp;(Hanging Indent)
3394         <ul>
3395                 <li><a href="#NUM_LISTS">A recipe for numbered lists</a>
3396         </ul>
3397         <li><a href="#IQ">IQ</a>&nbsp;&nbsp;(Quit indents, all)
3398         <li><a href="#IQ">ILX</a>&nbsp;(Exit indent style left)
3399         <li><a href="#IQ">IRX</a>&nbsp;(Exit indent style right)
3400         <li><a href="#IQ">IBX</a>&nbsp;(Exit indent style both)
3401 </ul>
3402
3403 <!---IL--->
3404
3405 <hr width="66%" align="left">
3406 <a name="IL"><h3><u>Indent left</u></h3></a>
3407 <br>
3408 Macro: <strong>IL</strong> <var>[ &lt;measure&gt; ]</var>
3409 <br>
3410 <em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3411
3412 <p>
3413 <strong>IL</strong> indents text from the left margin of the page,
3414 or if you're in a tab, from the left edge of the tab.  Once
3415 <strong>IL</strong> is on, the left indent is applied uniformly to
3416 every subsequent line of text, even if you change the line length.
3417 <p>
3418 The first time you invoke <strong>IL</strong>, you must give it a
3419 measure.  Subsequent invocations with a measure add to the previous
3420 measure.  A minus sign may be prepended to the argument to subtract
3421 from the current measure.  The
3422 <a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
3423 <a href="definitions.html#TERMS_INLINES">inline escape</a>
3424 may be used to specify a text-dependent measure, in which case
3425 no unit of measure is required.  For example,
3426 <p>
3427 <pre>
3428         .IL \w'margarine'
3429 </pre>
3430
3431 indents text by the width of the word &quot;margarine&quot;.
3432 <p>
3433 With no argument, <strong>IL</strong> indents by its last
3434 active value.  See the
3435 <a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
3436 for more details.
3437 <p>
3438 <strong>NOTE:</strong> Calling a tab (with
3439 <a href="#TAB">TAB</a>)
3440 automatically cancels any active indents.
3441 <p>
3442 <strong>ADDITIONAL NOTE:</strong> Invoking <strong>IL</strong>
3443 automtically turns off <strong>IB</strong>.
3444 <br>
3445
3446 <!---IR--->
3447
3448 <hr width="66%" align="left">
3449 <a name="IR"><h3><u>Indent right</u></h3></a>
3450 <br>
3451 Macro: <strong>IR</strong> <var>[ &lt;measure&gt; ]</var>
3452 <br>
3453 <em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3454
3455 <p>
3456 <strong>IR</strong> indents text from the right margin of the
3457 page, or if you're in a tab, from the end of the tab.
3458 <p>
3459 The first time you invoke <strong>IR</strong>, you must give it a
3460 measure.  Subsequent invocations with a measure add to the previous
3461 indent measure.  A minus sign may be prepended to the argument to
3462 subtract from the current indent measure.  The
3463 <a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
3464 <a href="definitions.html#TERMS_INLINES">inline esacpe</a>
3465 may be used to specify a text-dependent measure, in which case
3466 no unit of measure is required.  For example,
3467 <p>
3468 <pre>
3469         .IR \w'jello'
3470 </pre>
3471
3472 indents text by the width of the word &quot;jello&quot;.
3473 <p>
3474 With no argument, <strong>IR</strong> indents by its last
3475 active value.  See the
3476 <a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
3477 for more details.
3478 <p>
3479 <strong>NOTE:</strong> Calling a tab (with
3480 <a href="#TAB">TAB</a>)
3481 automatically cancels any active indents.
3482 <p>
3483 <strong>ADDITIONAL NOTE:</strong> Invoking <strong>IR</strong>
3484 automtically turns off <strong>IB</strong>.
3485 <br>
3486
3487 <!---IB--->
3488
3489 <hr width="66%" align="left">
3490 <a name="IB"><h3><u>Indent both</u></h3></a>
3491 <br>
3492 Macro: <strong>IB</strong> <var>[ &lt;left measure&gt; &lt;right measure&gt; ]</var>
3493 <br>
3494 <em>*The optional arguments require a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3495
3496 <p>
3497 <strong>IB</strong> allows you to set or invoke a left and a right
3498 indent at the same time.
3499 <p>
3500 At its first invocation, you must supply a measure for both indents;
3501 at subsequent invocations when you wish to supply a measure, both must
3502 be given again.  As with <strong>IL</strong> and <strong>IR</strong>,
3503 the measures are added to the values previously passed to the macro.
3504 Hence, if you wish to change just one of the values, you must
3505 give an argument of zero to the other.
3506 <p>
3507 <strong>A word of advice:</strong> If you need to manipulate left and
3508 right indents separately, use a combination of <strong>IL</strong>
3509 and <strong>IR</strong> instead of <strong>IB</strong>.  You'll
3510 save yourself a lot of grief.
3511 <p>
3512 A minus sign may be prepended to the arguments to subtract from their
3513 current values.  The
3514 <a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
3515 <a href="definitions.html#TERMS_INLINES">inline esacpe</a>
3516 may be used to specify text-dependent measures, in which case
3517 no unit of measure is required.  For example,
3518 <p>
3519 <pre>
3520         .IB \w'margaraine' \w'jello'
3521 </pre>
3522
3523 left indents text by the width of the word &quot;margarine&quot;
3524 and right indents by the width of &quot;jello&quot;.
3525 <p>
3526 Like <strong>IL</strong> and <strong>IR</strong>, <strong>IB</strong>
3527 with no argument indents by its last active values.  See the
3528 <a href="#INDENTS_TUT">brief explanation of how mom handles indents</a>
3529 for more details.
3530 <p>
3531 <strong>NOTE:</strong> Calling a tab (with
3532 <a href="#TAB">TAB</a>)
3533 automatically cancels any active indents.
3534 <p>
3535 <strong>ADDITIONAL NOTE:</strong> Invoking <strong>IB</strong>
3536 automtically turns off <strong>IL</strong> and
3537 <strong>IR</strong>.
3538 <br>
3539
3540 <!---TI--->
3541
3542 <hr width="66%" align="left">
3543 <a name="TI"><h3><u>Temporary (left) indent</u></h3></a>
3544 <br>
3545 Macro: <strong>TI</strong> <var>[ &lt;measure&gt; ]</var>
3546 <br>
3547 <em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3548
3549 <p>
3550 A temporary indent is one that applies only to the first line of
3551 text that comes after it.  It's chief use is indenting the first
3552 line of paragraphs.  (<strong>Mom</strong>'s
3553 <a href="docprocessing.html#PP">PP</a>
3554 macro, for example, uses a temporary indent.)
3555 <p>
3556 The first time you invoke <strong>TI</strong>, you must give it
3557 a measure.  If you want to indent the first line of a
3558 paragraph by, say, 2
3559 <a href="definitions.html#TERMS_EM">ems</a>,
3560 do
3561 <p>
3562 <pre>
3563         .TI 2m
3564 </pre>
3565
3566 Subsequent invocations of <strong>TI</strong> do not require you
3567 to supply a measure; <strong>mom</strong> keeps track of the
3568 last measure you gave it.
3569 <p>
3570 Because temporary indents are temporary, there's no need to turn
3571 them off.
3572 <p>
3573 <strong>IMPORTANT:</strong> Unlike <strong>IL, IR</strong> and
3574 <strong>IB</strong>, measures given to <strong>TI</strong>
3575 are NOT additive.  In the following example, the second <kbd>.TI
3576 2P</kbd> is exactly 2 picas.
3577 <p>
3578 <pre>
3579         .TI 1P
3580         The beginning of a paragraph...
3581         .TI 2P
3582         The beginning of another paragraph...
3583 </pre>
3584
3585 <!---HI--->
3586
3587 <hr width="66%" align="left">
3588 <a name="HI"><h3><u>Hanging indent</u></h3></a>
3589 <br>
3590 Macro: <strong>HI</strong> <var>[ &lt;measure&gt; ]</var>
3591 <br>
3592 <em>*The optional argument requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
3593
3594 <p>
3595 A hanging indent looks like this:
3596 <p>
3597 <pre>
3598         The thousand injuries of Fortunato I had borne as best I
3599             could, but when he ventured upon insult, I vowed
3600             revenge.  You who so well know the nature of my soul
3601             will not suppose, however, that I gave utterance to a
3602             threat, at length I would be avenged...
3603 </pre>
3604
3605 The first line of text &quot;hangs&quot; outside the left
3606 margin.
3607 <p>
3608 In order to use hanging indents, you must first have a left indent
3609 active (set with either
3610 <a href="#IL">IL</a>
3611 or
3612 <a href="#IB">IB</a>).
3613 <strong>Mom</strong> will not hang text outside the left margin set with
3614 <a href="#L_MARGIN">L_MARGIN</a>
3615 or outside the left margin of a tab.
3616 <p>
3617 The first time you invoke <strong>HI</strong>, you must give it
3618 a measure.  If you want the first line of a paragraph to hang by,
3619 say, 1 pica, do
3620 <p>
3621 <pre>
3622         .IL 1P
3623         .HI 1P
3624 </pre>
3625
3626 Subsequent invocations of <strong>HI</strong> do not require you
3627 to supply a measure; <strong>mom</strong> keeps track of the
3628 last measure you gave it.
3629 <p>
3630 Generally speaking, you should invoke <strong>HI</strong> immediately
3631 prior to the line you want hung (i.e. without any intervening
3632 <a href="definitions.html#TERMS_CONTROLLINES">control lines</a>).
3633 And because hanging indents affect only one line, there's no need to turn
3634 them off.
3635
3636 <a name="NUM_LISTS"><h3><u>A recipe for numbered lists</u></h3></a>
3637 <p>
3638 A common use for hanging indents is setting numbered lists.
3639 Consider the following example:
3640 <p>
3641 <pre>
3642         .PAGE 8.5i 11i 1i 1i 1i 1i
3643         .FAMILY  T
3644         .FT      R
3645         .PT_SIZE 12
3646         .LS      14
3647         .JUSTIFY
3648         .KERN
3649         .SS 0
3650         .IL \w'\0\0.'    \"Indent left by 2 figure spaces and a period
3651         .HI \w'\0\0.'    \"Hang first line of text back by 2 figure spaces and a period
3652         1.\0The most important point to be considered is whether the
3653         answer to the meaning of life, the universe, and everything
3654         really is 42.  We have no-one's word on the subject except
3655         Mr. Adams'.
3656         .HI
3657         2.\0If the answer to the meaning of life, the universe,
3658         and everything is indeed 42, what impact does this have on
3659         the politics of representation?  42 is, after all not a
3660         prime number.  Are we to infer that prime numbers don't
3661         deserve equal rights and equal access in the universe?
3662         .HI
3663         3.\0If 42 is deemed non-exclusionary, how do we present it
3664         as the answer and, at the same time, forestall debate on its
3665         exclusionary implications?
3666 </pre>
3667
3668 First, we invoke a left indent with a measure equal to the width
3669 of 2
3670 <a href="definitions.html#TERMS_FIGURESPACE">figures spaces</a>
3671 plus a period (using the
3672 <a href="inlines.html#INLINE_STRINGWIDTH_GROFF">\w</a>
3673 inline escape).  At this point, the left indent is active; text
3674 afterward would normally be indented.  However, we invoke a hanging
3675 indent of exactly the same width, which hangs the first line (and
3676 first line only!) to the left of the indent by the same distance
3677 (in this case, that means &quot;out to the left margin&quot;).
3678 Because we begin the first line with a number, a period, and a
3679 figure space, the actual text (&quot;The most important point...&quot;)
3680 starts at exactly the same spot as the indented lines that
3681 follow.
3682 <p>
3683 Notice that subsequent invocations of <strong>HI</strong> without a
3684 measure produce exactly the same effect.
3685 <p>
3686 Paste the example above into a file and preview it with <kbd>groff -mom -X
3687 &lt;filename&gt;</kbd> to see hanging indents in action.
3688 <p>
3689 <strong>IMPORTANT:</strong> Unlike <strong>IL, IR</strong> and
3690 <strong>IB</strong>, measures given to <strong>HI</strong>
3691 are NOT additive.  Each time you pass a measure to
3692 <strong>HI</strong>, the measure is treated literally.
3693 <br>
3694
3695 <!---IX--->
3696
3697 <hr width="66%" align="left">
3698 <a name="IQ"><h3><u>Quitting indents</u></h3></a>
3699 <br>
3700 Macro: <strong>IQ</strong>&nbsp;&nbsp;<var>[ CLEAR ]&nbsp;&nbsp;</var>(quit any/all indents -- see <strong>*IMPORTANT NOTE</strong>)
3701 <br>
3702 Macro: <strong>ILX</strong>&nbsp;<var>[ CLEAR ]&nbsp;&nbsp;</var>(exit <strong>I</strong>ndent <strong>L</strong>eft)
3703 <br>
3704 Macro: <strong>IRX</strong>&nbsp;<var>[ CLEAR ]&nbsp;&nbsp;</var>(exit <strong>I</strong>ndent <strong>R</strong>ight)
3705 <br>
3706 Macro: <strong>IBX</strong>&nbsp;<var>[ CLEAR ]&nbsp;&nbsp;</var>(exit <strong>I</strong>ndent <strong>B</strong>oth)
3707
3708 <p>
3709 <strong>*IMPORTANT NOTE:</strong>
3710 <br>
3711 &nbsp;&nbsp;&nbsp;&nbsp;<em>Formerly, the macro for quitting all indents was</em>
3712 <strong>.IX</strong><em>.  This usage is now deprecated, in favour
3713 of</em> <strong>.IQ</strong><em>.</em> <strong>.IX</strong> <em>will
3714 continue to behave as before, but</em> <strong>mom</strong> <em>will
3715 issue a warning to stderr indicating that you should update your
3716 documents.
3717 <br>
3718 &nbsp;&nbsp;&nbsp;&nbsp;As a consequence of this change,</em>
3719 <strong>ILX, IRX</strong> <em>and</em> <strong>IBX</strong> <em>may
3720 now also be invoked as</em> <strong>ILQ, IRQ</strong> <em>and</em>
3721 <strong>IBQ</strong><em>.  Both forms are acceptable.</em>
3722 <p>
3723 Without an argument, the macros to quit indents merely restore your
3724 original left margin and line length.  The measures stored in the
3725 indent macros themselves are saved so you can call them again without
3726 having to supply a measure.
3727 <p>
3728 If you pass these macros the optional argument <strong>CLEAR</strong>,
3729 they not only restore your original left margin and line length,
3730 but also clear any values associated with a  particular indent style.
3731 The next time you need an indent of the same style, you have to supply
3732 a measure again.
3733 <p>
3734 <strong>IQ CLEAR</strong>, as you'd suspect, quits and clears
3735 the values for all indent styles at once.
3736
3737 <p>
3738 <hr>
3739 <a href="goodies.html#TOP">Next</a>&nbsp;&nbsp;
3740 <a href="definitions.html#TOP">Prev</a>&nbsp;&nbsp;
3741 <a href="#TOP">Top</a>&nbsp;&nbsp;
3742 <a href="toc.html">Back to Table of Contents</a>
3743 </body>
3744 </html>