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