3872b8f631796f66a2115b6de95dae3a45dc4c14
[platform/upstream/groff.git] / contrib / mom / groff_mom.7.man
1 .TH groff_mom @MAN7EXT@ "@MDATE@" "groff @VERSION@"
2 .SH Name
3 groff_mom \- modern macros for document composition with GNU
4 .I roff
5 .
6 .
7 .\" ====================================================================
8 .\" Legal Terms
9 .\" ====================================================================
10 .\"
11 .\" Copyright (C) 2002-2020 Free Software Foundation, Inc.
12 .\"
13 .\" This file is part of mom, which is part of groff, the GNU roff
14 .\" type-setting system.
15 .\"
16 .\" This program is free software: you can redistribute it and/or modify
17 .\" it under the terms of the GNU General Public License as published by
18 .\" the Free Software Foundation, either version 3 of the License, or
19 .\" (at your option) any later version.
20 .\"
21 .\" This program is distributed in the hope that it will be useful, but
22 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
23 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24 .\" General Public License for more details.
25 .\"
26 .\" You should have received a copy of the GNU General Public License
27 .\" along with this program.  If not, see
28 .\" <http://www.gnu.org/licenses/>.
29 .
30 .
31 .\" Save and disable compatibility mode (for, e.g., Solaris 10/11).
32 .do nr *groff_groff_mom_7_man_C \n[.cp]
33 .cp 0
34 .
35 .\" Define fallback for groff 1.23's MR macro if the system lacks it.
36 .nr do-fallback 0
37 .if !\n(.f           .nr do-fallback 1 \" mandoc
38 .if  \n(.g .if !d MR .nr do-fallback 1 \" older groff
39 .if !\n(.g           .nr do-fallback 1 \" non-groff *roff
40 .if \n[do-fallback]  \{\
41 .  de MR
42 .    ie \\n(.$=1 \
43 .      I \%\\$1
44 .    el \
45 .      IR \%\\$1 (\\$2)\\$3
46 .  .
47 .\}
48 .rr do-fallback
49 .
50 .
51 .\" ====================================================================
52 .\" Setup
53 .\" ====================================================================
54 .
55 .hw line-space
56 .
57 .
58 .\" ====================================================================
59 .\" .FONT (<font name> <text> [<font name> <text> ...])
60 .\"
61 .\" Print in different fonts: R, I, B, CR, CI, CB
62 .\"
63 .de FONT
64 .  if (\\n[.$] = 0) \{\
65 .       nop \&\f[P]\&
66 .       return
67 .  \}
68 .  ds result \&
69 .  while (\\n[.$] >= 2) \{\
70 .       as result \,\f[\\$1]\\$2
71 .       if !"\\$1"P" .as result \f[P]\""
72 .       shift 2
73 .  \}
74 .  if (\\n[.$] = 1) .as result \,\f[\\$1]
75 .  nh
76 .  nop \\*[result]\&
77 .  rm result
78 .  hy \\n[HY]
79 ..
80 .
81 .
82 .\" ====================================================================
83 .SH Synopsis
84 .\" ====================================================================
85 .
86 .SY groff
87 .B \-mom
88 .RI [ option\~ .\|.\|.\&]
89 .RI [ file\~ .\|.\|.]
90 .
91 .SY groff
92 .B "\-m mom"
93 .RI [ option\~ .\|.\|.\&]
94 .RI [ file\~ .\|.\|.]
95 .YS
96 .
97 .
98 .\" ====================================================================
99 .SH Description
100 .\" ====================================================================
101 .
102 .I mom
103 is a macro set for
104 .IR groff ,
105 designed primarily to prepare documents for PDF and PostScript output.
106 .
107 .
108 .I mom
109 provides macros in two categories: typesetting
110 and document processing.
111 .
112 The former provide access to
113 .IR groff 's
114 typesetting capabilities in ways that are simpler to master than
115 .IR groff 's
116 requests and escape sequences.
117 .
118 The latter provide highly customizable markup tags that allow the user
119 to design and output professional-looking documents with a minimum of
120 typesetting intervention.
121 .
122 .
123 .P
124 Files processed with
125 .MR pdfmom @MAN1EXT@
126 produce PDF documents.
127 .
128 The documents include a PDF outline that appears in the navigation pane
129 panel of document viewers,
130 and may contain clickable internal and external links.
131 .
132 .P
133 Normally.
134 .IR groff 's
135 native PDF driver,
136 .MR gropdf @MAN1EXT@ ,
137 is used to generate the output.
138 .
139 When
140 .I pdfmom
141 is given the
142 .RB \[lq] "\-T ps" \[rq]
143 option,
144 it still produces PDF,
145 but processing is delegated to
146 .IR pdfroff ,
147 which uses
148 .IR groff 's
149 PostScript driver,
150 .MR grops @MAN1EXT@ .
151 .
152 Not all PDF features are available when
153 .B \-T ps
154 is given;
155 its primary use is to allow processing of files with embedded PostScript
156 images.
157 .\" XXX: but we have PDFPIC now...so -Tps is necessary only for people
158 .\" who want to avoid use of unsafe mode?
159 .
160 .
161 .P
162 Files processed with
163 .B groff \-mom
164 (or
165 .BR "\-m mom" )
166 format for the device specified with the
167 .B \-T
168 option.
169 .
170 (In this installation,
171 .B @DEVICE@
172 is the default output device.)
173 .
174 .
175 .P
176 .I mom
177 comes with her own comprehensive documentation in HTML.
178 .
179 A PDF manual,
180 \[lq]Producing PDFs with
181 .I groff
182 and
183 .IR mom \[rq],
184 discusses preparation of PDF documents with
185 .I mom
186 in detail.
187 .
188 .
189 .\" ====================================================================
190 .SH Files
191 .\" ====================================================================
192 .
193 .TP
194 .I @MACRODIR@/\:mom.tmac
195 is a wrapper enabling the package to be loaded with
196 .RB \[lq] "groff \-m mom" \[rq].
197 .
198 .
199 .TP
200 .I @MACRODIR@/\:om.tmac
201 implements the package.
202 .
203 .
204 .TP
205 .I @HTMLDOCDIR@/\:mom/\:toc.html
206 is the entry point to the HTML documentation.
207 .
208 .
209 .TP
210 .I @PDFDOCDIR@/\:mom\-pdf.pdf
211 is \[lq]Producing PDFs with
212 .I groff
213 and
214 .IR mom \[rq],
215 by Deri James and Peter Schaffter.
216 .
217 .
218 .TP
219 .IR @EXAMPLEDIR@/\:mom/\: * .mom
220 are examples of
221 .I mom
222 usage.
223 .
224 .
225 .\" ====================================================================
226 .SH Reference
227 .\" ====================================================================
228 .
229 .\" ====================================================================
230 .SS "Escape sequences"
231 .\" ====================================================================
232 .
233 .TP
234 .FONT B \[rs]*[ I <colorname> B ]
235 begin using an initialized colour inline
236 .
237 .
238 .TP
239 .FONT B \[rs]*[BCK I " n" B ]
240 move backward in a line
241 .
242 .
243 .TP
244 .B \[rs]*[BOLDER]
245 invoke pseudo bold inline (related to macro
246 .BR .SETBOLDER )
247 .
248 .
249 .TP
250 .B \[rs]*[BOLDERX]
251 off pseudo bold inline (related to macro
252 .BR .SETBOLDER )
253 .
254 .
255 .TP
256 .FONT B \[rs]*[BU I " n" B ]
257 move characters pairs closer together inline (related to macro
258 .BR \%.KERN )
259 .
260 .
261 .TP
262 .B \[rs]*[COND]
263 invoke pseudo condensing inline (related to macro
264 .BR \%.CONDENSE )
265 .
266 .
267 .TP
268 .B \[rs]*[CONDX]
269 off pseudo condensing inline (related to macro
270 .BR \%.CONDENSE )
271 .
272 .
273 .TP
274 .FONT B \[rs]*[CONDSUP] R .\|.\|. B \[rs]*[CONDSUPX]
275 pseudo-condensed superscript
276 .
277 .
278 .TP
279 .FONT B \[rs]*[DOWN I " n" B ]
280 temporarily move downward in a line
281 .
282 .
283 .TP
284 .B \[rs]*[EN\-MARK]
285 mark initial line of a range of line numbers (for use with line
286 numbered endnotes)
287 .
288 .
289 .TP
290 .B \[rs]*[EXT]
291 invoke pseudo extending inline (related to macro
292 .BR \%.EXTEND )
293 .
294 .
295 .TP
296 .B \[rs]*[EXTX]
297 off pseudo condensing inline (related to macro
298 .BR \%.EXTEND )
299 .
300 .
301 .TP
302 .FONT B \[rs]*[EXTSUP] R .\|.\|. B \[rs]*[EXTSUPX]
303 pseudo extended superscript
304 .
305 .
306 .TP
307 .FONT B \[rs]*[FU I " n" B ]
308 move characters pairs further apart inline (related to macro
309 .BR \%.KERN )
310 .
311 .
312 .TP
313 .FONT B \[rs]*[FWD I " n" B ]
314 move forward in a line
315 .
316 .
317 .TP
318 .B \[rs]*[LEADER]
319 insert leaders at the end of a line
320 .
321 .
322 .TP
323 .B \[rs]*[RULE]
324 draw a full measure rule
325 .
326 .
327 .TP
328 .FONT B \[rs]*[SIZE I " n" B ]
329 change the point size inline (related to macro
330 .BR \%.PT_SIZE )
331 .
332 .
333 .TP
334 .B \[rs]*[SLANT]
335 invoke pseudo italic inline (related to macro
336 .BR \%.SETSLANT )
337 .
338 .
339 .TP
340 .B \[rs]*[SLANTX]
341 off pseudo italic inline (related to macro
342 .BR \%.SETSLANT )
343 .
344 .
345 .TP
346 .FONT B \[rs]*[ST I <n> B ] R .\|.\|. B \[rs]*[ST I <n> B X]
347 string tabs (mark tab positions inline)
348 .
349 .
350 .TP
351 .FONT B \[rs]*[SUP] R .\|.\|. B \[rs]*[SUPX]
352 superscript
353 .
354 .
355 .TP
356 .B \[rs]*[TB+]
357 inline escape for
358 .B .TN
359 .RI ( "Tab Next" )
360 .
361 .
362 .TP
363 .FONT B \[rs]*[UL] R .\|.\|. B \[rs]*[ULX]
364 invoke underlining inline (fixed width fonts only)
365 .
366 .
367 .TP
368 .FONT B \[rs]*[UP I " n" B ]
369 temporarily move upward in a line
370 .
371 .
372 .\" ====================================================================
373 .SS Macros
374 .\" ====================================================================
375 .
376 .TP
377 .B .AUTOLEAD
378 set the linespacing relative to the point size
379 .
380 .
381 .TP
382 .B .B_MARGIN
383 set a bottom margin
384 .
385 .
386 .TP
387 .B .BR
388 break a justified line
389 .
390 .
391 .TP
392 .B .CENTER
393 set line-by-line quad centre
394 .
395 .
396 .TP
397 .B .CONDENSE
398 set the amount to pseudo condense
399 .
400 .
401 .TP
402 .B .EL
403 break a line without advancing on the page
404 .
405 .
406 .TP
407 .B .EXTEND
408 set the amount to pseudo extend
409 .
410 .
411 .TP
412 .B .FALLBACK_FONT
413 establish a fallback font (for missing fonts)
414 .
415 .
416 .TP
417 .B .FAM
418 alias to
419 .B .FAMILY
420 .
421 .
422 .TP
423 .BI ".FAMILY " <family>
424 set the
425 .I family type
426 .
427 .
428 .TP
429 .B .FT
430 set the font style (roman, italic, etc.)
431 .
432 .
433 .TP
434 .BI ".HI [" " <measure> " ]
435 hanging indent
436 .
437 .
438 .TP
439 .B .HY
440 automatic hyphenation on/off
441 .
442 .
443 .TP
444 .B .HY_SET
445 set automatic hyphenation parameters
446 .
447 .
448 .TP
449 .BI ".IB [" " <left measure> <right measure> " ]
450 indent both
451 .
452 .
453 .TP
454 .B .IBX [ CLEAR ]
455 exit indent both
456 .
457 .
458 .TP
459 .BI ".IL [" " <measure> " ]
460 indent left
461 .
462 .
463 .TP
464 .B .ILX [ CLEAR ]
465 exit indent left
466 .
467 .
468 .TP
469 .B .IQ [ CLEAR ]
470 quit any/all indents
471 .
472 .
473 .TP
474 .BI ".IR [" " <measure> " ]
475 indent right
476 .
477 .
478 .TP
479 .B .IRX [ CLEAR ]
480 exit indent right
481 .
482 .
483 .TP
484 .B .JUSTIFY
485 justify text to both margins
486 .
487 .
488 .TP
489 .B .KERN
490 automatic character pair kerning on/off
491 .
492 .
493 .TP
494 .B .L_MARGIN
495 set a left margin (page offset)
496 .
497 .
498 .TP
499 .B .LEFT
500 set line-by-line quad left
501 .
502 .
503 .TP
504 .B .LL
505 set a line length
506 .
507 .
508 .TP
509 .B .LS
510 set a linespacing (leading)
511 .
512 .
513 .TP
514 .B .PAGE
515 set explicit page dimensions and margins
516 .
517 .
518 .TP
519 .B .PAGEWIDTH
520 set a custom page width
521 .
522 .
523 .TP
524 .B .PAGELENGTH
525 set a custom page length
526 .
527 .
528 .TP
529 .BI .PAPER " <paper_type>"
530 set common paper sizes (letter, A4, etc)
531 .
532 .
533 .TP
534 .B .PT_SIZE
535 set the point size
536 .
537 .
538 .TP
539 .B .QUAD
540 "justify" text left, centre, or right
541 .
542 .
543 .TP
544 .B .R_MARGIN
545 set a right margin
546 .
547 .
548 .TP
549 .B .RIGHT
550 set line-by-line quad right
551 .
552 .
553 .TP
554 .B .SETBOLDER
555 set the amount of emboldening
556 .
557 .
558 .TP
559 .B .SETSLANT
560 set the degree of slant
561 .
562 .
563 .TP
564 .B .SPREAD
565 force justify a line
566 .
567 .
568 .TP
569 .B .SS
570 set the sentence space size
571 .
572 .
573 .TP
574 .B .T_MARGIN
575 set a top margin
576 .
577 .
578 .TP
579 .BI ".TI [" " <measure> " ]
580 temporary left indent
581 .
582 .
583 .TP
584 .B .WS
585 set the minimum word space size
586 .
587 .
588 .\" ====================================================================
589 .SH "Documentation of details"
590 .\" ====================================================================
591 .
592 .\" ====================================================================
593 .SS "Details of inline escape sequences in alphabetical order"
594 .\" ====================================================================
595 .
596 .TP
597 .FONT B \[rs]*[ I <colorname> B ]
598 begin using an initialized colour inline
599 .
600 .
601 .TP
602 .FONT B \[rs]*[BCK I " n" B ]
603 move backward in a line
604 .
605 .
606 .\" ====================================================================
607 .\" BOLDER
608 .\" ====================================================================
609 .TP
610 .B \[rs]*[BOLDER]
611 .TQ
612 .B \[rs]*[BOLDERX]
613 Emboldening on/off
614 .
615 .RS
616 .
617 .P
618 .B \[rs]*[BOLDER]
619 begins emboldening type.
620 .
621 .B \[rs]*[BOLDERX]
622 turns the feature off.
623 .
624 Both are inline escape sequences;
625 therefore,
626 they should not appear as separate lines,
627 but rather be embedded in text lines, like this:
628 .RS
629 .EX
630 .FONT R "Not " B \[rs]*[BOLDER] R everything B \[rs]*[BOLDERX] \
631 R " is as it seems."
632 .EE
633 .RE
634 .
635 .P
636 Alternatively, if you wanted the whole line emboldened, you should do
637 .RS
638 .EX
639 .FONT B \[rs]*[BOLDER] R "Not everything is as it seems." \
640 B \[rs]*[BOLDERX]
641 .EE
642 .RE
643 .
644 Once
645 .B \[rs]*[BOLDER]
646 is invoked, it remains in effect until turned off.
647 .
648 .P
649 Note: If you're using the document processing macros with
650 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
651 .I mom
652 ignores
653 .B \[rs]*[BOLDER]
654 requests.
655 .
656 .RE
657 .
658 .
659 .\" ====================================================================
660 .\" BU
661 .\" ====================================================================
662 .TP
663 .FONT B \[rs]*[BU I " n" B ]
664 move characters pairs closer together inline (related to macro
665 .BR \%.KERN )
666 .
667 .
668 .\" ====================================================================
669 .\" COND
670 .\" ====================================================================
671 .TP
672 .B \[rs]*[COND]
673 .TQ
674 .B \[rs]*[CONDX]
675 Pseudo-condensing on/off
676 .
677 .RS
678 .
679 .P
680 .B \[rs]*[COND]
681 begins pseudo-condensing type.
682 .
683 .B \[rs]*[CONDX]
684 turns the feature off.
685 .
686 Both are inline escape sequences;
687 therefore,
688 they should not appear as separate lines,
689 but rather be embedded in text lines, like this:
690 .RS
691 .EX
692 .FONT B \[rs]*[COND] I "Not everything is as it seems." B \[rs]*[CONDX]
693 .EE
694 .RE
695 .B \%\[rs]*[COND]
696 remains in effect until you turn it off with
697 .BR \%\[rs]*[CONDX] .
698 .
699 .P
700 IMPORTANT: You must turn
701 .B \%\[rs]*[COND]
702 off before making any changes to the point size of your type, either
703 via the
704 .B \%.PT_SIZE
705 macro or with the
706 .B \[rs]s
707 inline escape sequence.
708 .
709 If you wish the new point size to be pseudo-condensed, simply reinvoke
710 .B \%\[rs]*[COND]
711 afterward.
712 .
713 Equally,
714 .B \%\[rs]*[COND]
715 must be turned off before changing the condense percentage with
716 .BR \%.CONDENSE .
717 .
718 .P
719 Note: If you're using the document processing macros with
720 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
721 .I mom
722 ignores
723 .B \%\[rs]*[COND]
724 requests.
725 .
726 .RE
727 .
728 .
729 .\" ====================================================================
730 .\" CONDSUP
731 .\" ====================================================================
732 .TP
733 .FONT B \[rs]*[CONDSUP] R .\|.\|. B \[rs]*[CONDSUPX]
734 pseudo-condensed superscript
735 .
736 .
737 .\" ====================================================================
738 .\" DOWN
739 .\" ====================================================================
740 .TP
741 .FONT B \[rs]*[DOWN I " n" B ]
742 temporarily move downward in a line
743 .
744 .
745 .\" ====================================================================
746 .\" EN-MARK
747 .\" ====================================================================
748 .TP
749 .B \[rs]*[EN\-MARK]
750 mark initial line of a range of line numbers (for use with line
751 numbered endnotes)
752 .
753 .
754 .\" ====================================================================
755 .\" EXT
756 .\" ====================================================================
757 .TP
758 .B \[rs]*[EXT]
759 .TQ
760 .B \[rs]*[EXTX]
761 Pseudo-extending on/off
762 .
763 .RS
764 .
765 .P
766 .B \[rs]*[EXT]
767 begins pseudo-extending type.
768 .
769 .B \[rs]*[EXTX]
770 turns the feature off.
771 .
772 Both are inline escape sequences;
773 therefore,
774 they should not appear as separate lines,
775 but rather be embedded in text lines, like this:
776 .RS
777 .EX
778 .FONT B \[rs]*[EXT] I "Not everything is as it seems." B \[rs]*[EXTX]
779 .EE
780 .RE
781 .B \[rs]*[EXT]
782 remains in effect until you turn it off with
783 .BR \[rs]*[EXTX] .
784 .
785 .P
786 IMPORTANT: You must turn
787 .B \%\[rs]*[EXT]
788 off before making any changes to the point size of your type, either
789 via the
790 .B \%.PT_SIZE
791 macro or with the
792 .B \[rs]s
793 inline escape sequence.
794 .
795 If you wish the new point size to be
796 .IR \%pseudo-extended ,
797 simply reinvoke
798 .B \%\[rs]*[EXT]
799 afterward.
800 .
801 Equally,
802 .B \%\[rs]*[EXT]
803 must be turned off before changing the extend percentage with
804 .BR \%.EXTEND .
805 .
806 .P
807 Note: If you are using the document processing macros with
808 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
809 .I mom
810 ignores
811 .B \%\[rs]*[EXT]
812 requests.
813 .
814 .RE
815 .
816 .
817 .\" ====================================================================
818 .\" EXTSUP
819 .\" ====================================================================
820 .TP
821 .FONT B \[rs]*[EXTSUP] R .\|.\|. B \[rs]*[EXTSUPX]
822 pseudo extended superscript
823 .
824 .
825 .\" ====================================================================
826 .\" FU
827 .\" ====================================================================
828 .TP
829 .FONT B \[rs]*[FU I " n" B ]
830 move characters pairs further apart inline (related to macro
831 .BR .KERN )
832 .
833 .
834 .\" ====================================================================
835 .\" FWD
836 .\" ====================================================================
837 .TP
838 .FONT B \[rs]*[FWD I " n" B ]
839 move forward in a line
840 .
841 .
842 .\" ====================================================================
843 .\" LEADER
844 .\" ====================================================================
845 .TP
846 .B \[rs]*[LEADER]
847 insert leaders at the end of a line
848 .
849 .
850 .\" ====================================================================
851 .\" RULE
852 .\" ====================================================================
853 .TP
854 .B \[rs]*[RULE]
855 draw a full measure rule
856 .
857 .
858 .\" ====================================================================
859 .\" PT_SIZE
860 .\" ====================================================================
861 .TP
862 .FONT B \[rs]*[SIZE I " n" B ]
863 change the point size inline (related to macro
864 .BR \%.PT_SIZE )
865 .
866 .
867 .\" ====================================================================
868 .\" SLANT
869 .\" ====================================================================
870 .TP
871 .B \[rs]*[SLANT]
872 .TQ
873 .B \[rs]*[SLANTX]
874 Pseudo italic on/off
875 .
876 .RS
877 .
878 .P
879 .B \%\[rs]*[SLANT]
880 begins
881 .I pseudo-italicizing
882 .IR type .
883 .
884 .B \%\[rs]*[SLANTX]
885 turns the feature off.
886 .
887 Both are inline escape sequences;
888 therefore,
889 they should not appear as separate lines,
890 but rather be embedded in text lines, like this:
891 .RS
892 .EX
893 .FONT R "Not " B \[rs]*[SLANT] R everything B \[rs]*[SLANTX] \
894 R " is as it seems."
895 .EE
896 .RE
897 .
898 .P
899 Alternatively, if you wanted the whole line
900 .IR pseudo-italicized ,
901 you'd do
902 .RS
903 .EX
904 .FONT B \[rs]*[SLANT] R "Not everything is as it seems." \
905 B \[rs]*[SLANTX]
906 .EE
907 .RE
908 .
909 .P
910 Once
911 .B \[rs]*[SLANT]
912 is invoked, it remains in effect until turned off.
913 .
914 .P
915 Note: If you're using the document processing macros with
916 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
917 .I mom
918 underlines pseudo-italics by default.
919 .
920 To change this behaviour, use the special macro
921 .BR .SLANT_MEANS_SLANT .
922 .
923 .RE
924 .
925 .
926 .\" ====================================================================
927 .\" ST
928 .\" ====================================================================
929 .TP
930 .FONT B \[rs]*[ST I <number> B ] R .\|.\|. B \[rs]*[ST I <number> B X]
931 Mark positions of string tabs
932 .
933 .RS
934 .P
935 The
936 .I quad
937 direction must be
938 .B LEFT
939 or
940 .B \%JUSTIFY
941 (see
942 .B \%.QUAD
943 and
944 .BR \%.JUSTIFY )
945 or the
946 .I no-fill mode
947 set to
948 .B LEFT
949 in order for these inlines to function properly.
950 .
951 Please see
952 .IR \%IMPORTANT ,
953 below.
954 .
955 .P
956 String tabs need to be marked off with inline escape sequences before
957 being set up with the
958 .B .ST
959 macro.
960 .
961 Any input line may contain string tab markers.
962 .
963 .IR <number> ,
964 above, means the numeric identifier of the tab.
965 .
966 .P
967 The following shows a sample input line with string tab markers.
968 .RS
969 .EX
970 .BR \[rs]*[ST1] "De minimus" \[rs]*[ST1X] \c
971 .RB "non curat" \[rs]*[ST2] lex \[rs]*[ST2X] .
972 .EE
973 .RE
974 .
975 .P
976 String
977 .I tab 1
978 begins at the start of the line and ends after the word
979 .IR \%time .
980 .
981 String
982 .I tab 2
983 starts at
984 .I good
985 and ends after
986 .IR men .
987 .
988 .I Inline escape sequences
989 (e.g.,
990 .I font
991 or
992 .I point size
993 .IR changes ,
994 or horizontal movements, including padding) are taken into account
995 when
996 .I mom
997 determines the
998 .I position
999 and
1000 .I length
1001 of
1002 .I string
1003 .IR tabs .
1004 .
1005 .P
1006 Up to nineteen string tabs may be marked (not necessarily all on the
1007 same line, of course), and they must be numbered between 1 and 19.
1008 .
1009 .P
1010 Once string tabs have been marked in input lines, they have to be
1011 .I set
1012 with
1013 .BR .ST ,
1014 after which they may be called, by number, with
1015 .BR .TAB .
1016 .
1017 .P
1018 Note: Lines with string tabs marked off in them are normal input
1019 lines, i.e.\& they get printed, just like any input line.
1020 .
1021 If you want to set up string tabs without the line printing, use the
1022 .B \%.SILENT
1023 macro.
1024 .
1025 .P
1026 .I IMPORTANT:
1027 Owing to the way
1028 .I groff
1029 processes input lines and turns them into output lines, it is not
1030 possible for
1031 .I mom
1032 to
1033 .I guess
1034 the correct starting position of string tabs marked off in lines that
1035 are centered or set flush right.
1036 .
1037 .P
1038 Equally, she cannot guess the starting position if a line is fully
1039 justified and broken with
1040 .BR \%.SPREAD .
1041 .
1042 .P
1043 In other words, in order to use string tabs,
1044 .B LEFT
1045 must be active, or, if
1046 .B .QUAD LEFT
1047 or
1048 .B \%JUSTIFY
1049 are active, the line on which the
1050 .I string tabs
1051 are marked must be broken
1052 .I manually
1053 with
1054 .B .BR
1055 (but not
1056 .BR \%.SPREAD ).
1057 .
1058 .P
1059 To circumvent this behaviour, I recommend using the
1060 .B PAD
1061 to set up string tabs in centered or flush right lines.
1062 .
1063 Say, for example, you want to use a
1064 .I string tab
1065 to
1066 .I underscore
1067 the text of a centered line with a rule.
1068 .
1069 Rather than this,
1070 .RS
1071 .EX
1072 .B .CENTER
1073 .B \[rs]*[ST1]A line of text\[rs]*[ST1X]\[rs]c
1074 .B .EL
1075 .B .ST 1
1076 .B .TAB 1
1077 .B .PT_SIZE 24
1078 .B .ALD 3p
1079 .B \[rs]*[RULE]
1080 .B .RLD 3p
1081 .B .TQ
1082 .EE
1083 .RE
1084 you should do:
1085 .RS
1086 .EX
1087 \&.QUAD CENTER
1088 \&.PAD "#\[rs]*[ST1]A line of text\[rs]*[ST1X]#"
1089 \&.EL
1090 \&.ST 1
1091 \&.TAB 1
1092 \&.PT_SIZE 24
1093 \&.ALD 3p
1094 \&\[rs]" You can\[aq]t use \[rs]*[UP] or \[rs]*[DOWN] with \[rs]*[RULE].
1095 \&.RLD 3p
1096 \&.TQ
1097 .EE
1098 .RE
1099 .
1100 .RE
1101 .
1102 .
1103 .\" ====================================================================
1104 .\" SUP
1105 .\" ====================================================================
1106 .TP
1107 .FONT B \[rs]*[SUP] R .\|.\|. B \[rs]*[SUPX]
1108 superscript
1109 .
1110 .
1111 .\" ====================================================================
1112 .\" TB+
1113 .\" ====================================================================
1114 .TP
1115 .B \[rs]*[TB+]
1116 Inline escape for
1117 .B .TN
1118 .RI ( "Tab Next" )
1119 .
1120 .
1121 .\" ====================================================================
1122 .\" UL
1123 .\" ====================================================================
1124 .TP
1125 .FONT B \[rs]*[UL] R .\|.\|. B \[rs]*[ULX]
1126 invoke underlining inline (fixed width fonts only)
1127 .
1128 .
1129 .\" ====================================================================
1130 .\" UP
1131 .\" ====================================================================
1132 .TP
1133 .FONT B \[rs]*[UP I " n" B ]
1134 temporarily move upward in a line
1135 .
1136 .
1137 .\" ====================================================================
1138 .SS "Details of macros in alphabetical order"
1139 .\" ====================================================================
1140 .
1141 .\" ====================================================================
1142 .\" AUTOLEAD
1143 .\" ====================================================================
1144 .TP
1145 .B .AUTOLEAD
1146 set the linespacing relative to the point size
1147 .
1148 .
1149 .\" ====================================================================
1150 .\" Bottom Margin
1151 .\" ====================================================================
1152 .TP
1153 .BI .B_MARGIN " <bottom margin>"
1154 Bottom Margin
1155 .
1156 .RS
1157 .
1158 .P
1159 Requires a unit of measure
1160 .
1161 .P
1162 .B .B_MARGIN
1163 sets a nominal position at the bottom of the page beyond which you
1164 don't want your type to go.
1165 .
1166 When the bottom margin is reached,
1167 .I mom
1168 starts a new page.
1169 .
1170 .B .B_MARGIN requires a unit of measure.
1171 .
1172 Decimal fractions are allowed.
1173 .
1174 To set a nominal bottom margin of 3/4 inch, enter
1175 .RS
1176 .EX
1177 .B .B_MARGIN .75i
1178 .EE
1179 .RE
1180 .
1181 .P
1182 Obviously, if you haven't spaced the type on your pages so that the
1183 last lines fall perfectly at the bottom margin, the margin will vary
1184 from page to page.
1185 .
1186 Usually, but not always, the last line of type that fits on a page
1187 before the bottom margin causes mom to start a new page.
1188 .
1189 .P
1190 Occasionally, owing to a peculiarity in
1191 .IR groff ,
1192 an extra line will fall below the nominal bottom margin.
1193 .
1194 If you're using the document processing macros, this is unlikely to
1195 happen; the document processing macros are very hard-nosed about
1196 aligning bottom margins.
1197 .
1198 .P
1199 Note: The meaning of
1200 .B .B_MARGIN
1201 is slightly different when you're using the document processing
1202 macros.
1203 .
1204 .RE
1205 .
1206 .
1207 .\" ====================================================================
1208 .\" Fallback Font
1209 .\" ====================================================================
1210 .TP
1211 .BI \%.FALLBACK_FONT " <fallback font> " "[ ABORT | WARN ]"
1212 Fallback Font
1213 .
1214 .RS
1215 .
1216 .P
1217 In the event that you pass an invalid argument to
1218 .B \%.FAMILY
1219 (i.e.\& a non-existent
1220 .IR family ),
1221 .IR mom ,
1222 by default, uses the
1223 .IR "fallback font" ,
1224 .B Courier Medium Roman
1225 .RB ( CR ),
1226 in order to continue processing your file.
1227 .
1228 .P
1229 If you'd prefer another
1230 .IR "fallback font" ,
1231 pass
1232 .B \%.FALLBACK_FONT
1233 the full
1234 .I family+font name
1235 of the
1236 .I font
1237 you'd like.
1238 .
1239 For example, if you'd rather the
1240 .I fallback font
1241 were
1242 .BR "Times Roman Medium Roman" ,
1243 .RS
1244 .EX
1245 .B .FALLBACK_FONT TR
1246 .EE
1247 .RE
1248 would do the trick.
1249 .
1250 .P
1251 .B Mom
1252 issues a warning whenever a
1253 .I font style set
1254 with
1255 .B .FT
1256 does not exist, either because you haven't registered the style
1257 or because the
1258 .I font style
1259 does not exist in the current
1260 .I family set
1261 with
1262 .BR .FAMILY .
1263 .
1264 By default,
1265 .B \%mom
1266 then aborts, which allows you to correct the problem.
1267 .
1268 .P
1269 If you'd prefer that
1270 .B \%mom
1271 not abort on non-existent
1272 .IR fonts ,
1273 but rather continue processing using a
1274 .IR "fallback font" ,
1275 you can pass
1276 .B \%.FALLBACK_FONT
1277 the argument
1278 .BR WARN ,
1279 either by itself, or in conjunction with your chosen
1280 .IB "fallback font" .
1281 .
1282 .P
1283 Some examples of invoking
1284 .BR \%.FALLBACK_FONT :
1285 .
1286 .TP
1287 .B .FALLBACK_FONT WARN
1288 .I mom
1289 will issue a warning whenever you try to access a non-existent
1290 .I font
1291 but will continue processing your file with the default
1292 .IR "fallback font" ,
1293 .BR "Courier Medium Roman" .
1294 .
1295 .
1296 .TP
1297 .B .FALLBACK_FONT TR WARN
1298 .B \%mom
1299 will issue a warning whenever you try to access a non-existent
1300 .I font
1301 but will continue processing your file with a
1302 .I fallback font
1303 of
1304 .BR "Times Roman Medium Roman" ;
1305 additionally,
1306 .B TR
1307 will be the
1308 .I fallback font
1309 whenever you try to access a
1310 .I family
1311 that does not exist.
1312 .
1313 .TP
1314 .B .FALLBACK_FONT TR ABORT
1315 .B \%mom
1316 will abort whenever you try to access a non-existent
1317 .BR font ,
1318 and will use the
1319 .I fallback font
1320 .B TR
1321 whenever you try to access a
1322 .I family
1323 that does not exist.
1324 .
1325 If, for some reason, you want to revert to
1326 .BR ABORT ,
1327 just enter
1328 .B \%".FALLBACK_FONT ABORT"
1329 and
1330 .I mom
1331 will once again abort on
1332 .IR "font errors" .
1333 .
1334 .RE
1335 .
1336 .
1337 .\" ====================================================================
1338 .\" FAM
1339 .\" ====================================================================
1340 .TP
1341 .BI .FAM " <family>"
1342 Type Family,
1343 alias of
1344 .B .FAMILY
1345 .
1346 .
1347 .\" ====================================================================
1348 .\" FAMILY
1349 .\" ====================================================================
1350 .TP
1351 .BI .FAMILY " <family>"
1352 Type Family,
1353 alias of
1354 .B .FAM
1355 .
1356 .RS
1357 .
1358 .P
1359 .B .FAMILY
1360 takes one argument: the name of the
1361 .I family
1362 you want.
1363 .
1364 .I Groff
1365 comes with a small set of basic families, each identified by a 1-,
1366 2- or 3-letter mnemonic.
1367 .
1368 The standard families are:
1369 .RS
1370 .EX
1371 .B "A   = Avant Garde"
1372 .B "BM  = Bookman"
1373 .B "H   = Helvetica"
1374 .B "HN  = Helvetica Narrow"
1375 .B "N   = New Century Schoolbook"
1376 .B "P   = Palatino"
1377 .B "T   = Times Roman"
1378 .B "ZCM = Zapf Chancery"
1379 .EE
1380 .RE
1381 .
1382 .P
1383 The argument you pass to
1384 .B .FAMILY
1385 is the identifier at left, above.
1386 .
1387 For example, if you want
1388 .BR Helvetica ,
1389 enter
1390 .RS
1391 .EX
1392 .B .FAMILY H
1393 .EE
1394 .RE
1395 .
1396 .P
1397 Note: The font macro
1398 .RB ( .FT )
1399 lets you specify both the type
1400 .I family
1401 and the desired font with a single macro.
1402 .
1403 While this saves a few
1404 keystrokes, I recommend using
1405 .B .FAMILY for
1406 .IR family ,
1407 and
1408 .B .FT for
1409 .IR font ,
1410 except where doing so is genuinely inconvenient.
1411 .
1412 .BR ZCM ,
1413 for example,
1414 only exists in one style:
1415 .B Italic
1416 .RB ( I ).
1417 .
1418 .P
1419 Therefore,
1420 .RS
1421 .EX
1422 .B .FT ZCMI
1423 .EE
1424 .RE
1425 makes more sense than setting the
1426 .I family
1427 to
1428 .BR ZCM ,
1429 then setting the
1430 .I font
1431 to
1432 .IR I .
1433 .
1434 .P
1435 Additional note: If you are running a
1436 .I groff
1437 version prior to
1438 1.19.2,
1439 you must follow all
1440 .B .FAMILY
1441 requests with a
1442 .B .FT
1443 request,
1444 otherwise
1445 .I mom
1446 will set all type up to the next
1447 .B .FT
1448 request in the fallback font.
1449 .
1450 .P
1451 If you are running
1452 .I groff
1453 1.19.2 or later,
1454 when you invoke the
1455 .B .FAMILY
1456 macro,
1457 .I mom
1458 .I remembers
1459 the font style
1460 .BR ( Roman ,
1461 .BR Italic ,
1462 etc) currently in use (if the font style exists in the new
1463 .IR family )
1464 and will continue to use the same font style in the new family.
1465 For example:
1466 .RS
1467 .EX
1468 .BI ".FAMILY BM " "\[rs]"" Bookman family"
1469 .BI ".FT I " "\[rs]"" Medium Italic"
1470 .I <some text> \[rs]" Bookman Medium Italic
1471 .BI ".FAMILY H " "\[rs]"" Helvetica family"
1472 .I <more text> \[rs]" Helvetica Medium Italic
1473 .EE
1474 .RE
1475 .
1476 .P
1477 However, if the font style does not exist in the new family,
1478 .I mom
1479 will set all subsequent type in the fallback font (by default,
1480 .B Courier Medium
1481 .BR Roman )
1482 until she encounters a
1483 .B .FT
1484 request that's valid for the
1485 .IR family .
1486 .
1487 .P
1488 For example, assuming you don't have the font
1489 .B Medium Condensed Roman
1490 .RI ( mom
1491 extension
1492 .IR CD )
1493 in the
1494 .I Helvetica
1495 .IR family :
1496 .RS
1497 .EX
1498 .BI ".FAMILY UN " "\[rs]"" Univers family"
1499 .BI ".FT CD " "\[rs]"" Medium Condensed"
1500 .I <some text> \[rs]" Univers Medium Condensed
1501 .BI ".FAMILY H " "\[rs]"" Helvetica family"
1502 .I <more text> \[rs]" Courier Medium Roman!
1503 .EE
1504 .RE
1505 .
1506 .P
1507 In the above example, you must follow
1508 .B .FAMILY H
1509 with a
1510 .B .FT
1511 request that's valid for
1512 .BR Helvetica .
1513 .
1514 .P
1515 Please see the Appendices,
1516 .I Adding fonts to
1517 .IR groff ,
1518 for information on adding fonts and families to
1519 .IR groff , as well as to
1520 see a list of the extensions
1521 .I mom
1522 provides to
1523 .IR groff 's
1524 basic
1525 .BR R ,
1526 .BR I ,
1527 .BR B ,
1528 .B BI
1529 styles.
1530 .
1531 .P
1532 Suggestion: When adding
1533 .I families to
1534 .IR groff ,
1535 I recommend following the established standard for the naming families
1536 and fonts.
1537 .
1538 For example, if you add the
1539 .B Garamond
1540 family, name the font files
1541 .RS
1542 .EX
1543 .B GARAMONDR
1544 .B GARAMONDI
1545 .B GARAMONDB
1546 .B GARAMONDBI
1547 .EE
1548 .RE
1549 .
1550 .B GARAMOND then becomes a valid
1551 .I family name
1552 you can pass to
1553 .BR .FAMILY .
1554 .
1555 (You could, of course, shorten
1556 .B GARAMOND
1557 to just
1558 .BR G ,
1559 or
1560 .BR GD .)
1561 .BR R ,
1562 .BR I ,
1563 .BR B ,
1564 and
1565 .B BI
1566 after
1567 .B GARAMOND
1568 are the
1569 .IR roman ,
1570 .IR italic ,
1571 .I bold
1572 and
1573 .I bold-italic
1574 fonts respectively.
1575 .
1576 .RE
1577 .
1578 .
1579 .\" ====================================================================
1580 .\" FONT
1581 .\" ====================================================================
1582 .TP
1583 .BI ".FONT R | B | BI | " "<any other valid font style>"
1584 Alias to
1585 .B .FT
1586 .
1587 .
1588 .\" ====================================================================
1589 .\" FT
1590 .\" ====================================================================
1591 .TP
1592 .BI ".FT R | B | BI | " "<any other valid font style>"
1593 Set font
1594 .
1595 .RS
1596 .
1597 .P
1598 By default,
1599 .I groff
1600 permits
1601 .B .FT
1602 to take one of four possible arguments specifying the desired font:
1603 .RS
1604 .EX
1605 .B R = (Medium) Roman
1606 .B I = (Medium) Italic
1607 .B B = Bold (Roman)
1608 .B BI = Bold Italic
1609 .EE
1610 .RE
1611 .
1612 .P
1613 For example, if your
1614 .I family
1615 is
1616 .BR Helvetica ,
1617 entering
1618 .RS
1619 .EX
1620 .B .FT B
1621 .EE
1622 .RE
1623 will give you the
1624 .I Helvetica bold
1625 .IR font .
1626 .
1627 If your
1628 .I family
1629 were
1630 .BR \%Palatino ,
1631 you'd get the
1632 .I \%Palatino bold
1633 .IR font .
1634 .
1635 .P
1636 .B Mom
1637 considerably extends the range of arguments you can pass to
1638 .BR .FT ,
1639 making it more convenient to add and access fonts of differing weights
1640 and shapes within the same family.
1641 .
1642 .P
1643 Have a look here for a list of the weight/style arguments
1644 .I mom
1645 allows.
1646 .
1647 Be aware, though, that you must have the fonts, correctly installed
1648 and named, in order to use the arguments.
1649 .
1650 (See
1651 .I Adding fonts to groff
1652 for instructions and information.)
1653 .
1654 Please also read the
1655 .I ADDITIONAL NOTE
1656 found in the description of the
1657 .B \%.FAMILY
1658 macro.
1659 .
1660 .
1661 .P
1662 How
1663 .I mom
1664 reacts to an invalid argument to
1665 .B .FT
1666 depends on which version of
1667 .I groff
1668 you're using.
1669 .
1670 If your
1671 .I groff
1672 version is 1.19.2 or later,
1673 .I mom
1674 will issue a warning and,
1675 depending on how you've set up the fallback font,
1676 either continue processing using the fallback font,
1677 or abort
1678 (allowing you to correct the problem).
1679 .
1680 In earlier versions,
1681 .I mom
1682 will silently continue processing,
1683 using either the fallback font or the font that was in effect prior to
1684 the invalid
1685 .B .FT
1686 call.
1687 .
1688 .
1689 .P
1690 .B .FT
1691 will also accept, as an argument, a full
1692 .I family
1693 and
1694 .I font
1695 .IR name .
1696 .
1697 .P
1698 For example,
1699 .RS
1700 .EX
1701 .B .FT HB
1702 .EE
1703 .RE
1704 will set subsequent type in
1705 .I Helvetica
1706 .IR Bold .
1707 .
1708 .P
1709 However, I strongly recommend keeping
1710 .I family
1711 and
1712 .I font
1713 separate except where doing so is genuinely inconvenient.
1714 .
1715 .P
1716 For inline control of
1717 .IR fonts ,
1718 see
1719 .I Inline
1720 .IR Escapes ,
1721 font control.
1722 .
1723 .RE
1724 .
1725 .
1726 .\" ====================================================================
1727 .\" Hanging Indent
1728 .\" ====================================================================
1729 .TP
1730 .BI "\%.HI [" " <measure> " ]
1731 Hanging indent \[em] the optional argument requires a unit of measure.
1732 .
1733 .RS
1734 .
1735 .P
1736 A hanging indent looks like this:
1737 .RS
1738 .EX
1739 The thousand injuries of Fortunato I had borne as best I
1740   could, but when he ventured upon insult, I vowed
1741   revenge.\&  You who so well know the nature of my soul
1742   will not suppose, however, that I gave utterance to a
1743   threat, at length I would be avenged.\|.\|.
1744 .EE
1745 .RE
1746 .
1747 The first line of text
1748 .I hangs
1749 outside the
1750 .IR "left margin" .
1751 .
1752 .P
1753 In order to use
1754 .IR "hanging indents" ,
1755 you must first have a
1756 .I left indent
1757 active (set with either
1758 .B .IL
1759 or
1760 .BR .IB ).
1761 .
1762 .B Mom
1763 will not hang text outside the
1764 .I left margin set
1765 with
1766 .B \%.L_MARGIN
1767 or outside the
1768 .I left margin
1769 of a
1770 .IR \%tab .
1771 .
1772 .P
1773 The first time you invoke
1774 .BR .HI ,
1775 you must give it a
1776 .BR measure .
1777 .
1778 If you want the first line of a paragraph to
1779 .IR "hang by" ,
1780 say,
1781 .IR "1 pica" ,
1782 do
1783 .RS
1784 .EX
1785 .B ".IL 1P"
1786 .B ".HI 1P"
1787 .EE
1788 .RE
1789 .
1790 Subsequent invocations of
1791 .B \%.HI
1792 do not require you to supply a
1793 .IR measure ;
1794 .I mom
1795 keeps track of the last measure you gave it.
1796 .
1797 .P
1798 Generally speaking, you should invoke
1799 .B .HI
1800 immediately prior to the line you want hung (i.e.\& without any
1801 intervening control lines).
1802 .
1803 And because
1804 .I hanging indents
1805 affect only one line, there's no need to turn them off.
1806 .
1807 .P
1808 .I IMPORTANT:
1809 Unlike
1810 .BR IL ,
1811 .B IR
1812 and
1813 .BR IB ,
1814 measures given to
1815 .B .HI
1816 are NOT additive.
1817 .
1818 Each time you pass a measure to
1819 .BR .HI ,
1820 the measure is treated literally.
1821 .
1822 .B
1823 .I Recipe:
1824 A numbered list using
1825 .I hanging indents
1826 .
1827 .P
1828 .I Note:
1829 .I mom
1830 has macros for setting lists.
1831 .
1832 This recipe exists to demonstrate the use of
1833 .I hanging indents
1834 only.
1835 .RS
1836 .EX
1837 \&.PAGE 8.5i 11i 1i 1i 1i 1i
1838 \&.FAMILY  T
1839 \&.FT      R
1840 \&.PT_SIZE 12
1841 \&.LS      14
1842 \&.JUSTIFY
1843 \&.KERN
1844 \&.SS 0
1845 \&.IL \[rs]w\[aq]\[rs]0\[rs]0.\[aq]
1846 \&.HI \[rs]w\[aq]\[rs]0\[rs]0.\[aq]
1847 1.\[rs]0The most important point to be considered is whether
1848 the answer to the meaning of Life, the Universe, and
1849 Everything really is 42.\&  We have no one\[aq]s word on the
1850 subject except Mr.\& Adams\[aq]s.
1851 \&.HI
1852 2.\[rs]0If the answer to the meaning of Life, the Universe,
1853 and Everything is indeed 42, what impact does this have on
1854 the politics of representation?\&  42 is, after all not a
1855 prime number.\&  Are we to infer that prime numbers don\[aq]t
1856 deserve equal rights and equal access in the universe?
1857 \&.HI
1858 3.\[rs]0If 42 is deemed non-exclusionary, how do we present
1859 it as the answer and, at the same time, forestall debate
1860 on its exclusionary implications?
1861 .EE
1862 .RE
1863 .
1864 .P
1865 First, we invoke a left indent with a measure equal to the width of 2
1866 figures spaces plus a period (using the \[rs]w inline escape).
1867 .
1868 At this point, the left indent is active; text afterward would
1869 normally be indented.
1870 .
1871 However, we invoke a hanging indent of exactly the same width, which
1872 hangs the first line (and first line only!\&) to the left of the indent
1873 by the same distance (in this case, that means \[lq]out to the left
1874 margin\[rq]).
1875 .
1876 Because we begin the first line with a number, a period, and a figure
1877 space, the actual text
1878 .RI ( "The most important point.\|.\|.\&" )
1879 starts at exactly the same spot as the indented lines that follow.
1880 .
1881 .P
1882 Notice that subsequent invocations of
1883 .B .HI
1884 don't require a
1885 .I measure
1886 to be given.
1887 .
1888 .P
1889 Paste the example above into a file and preview it with
1890 .RS
1891 .EX
1892 .B pdfmom filename.mom | ps2pdf \- filename.pdf
1893 .EE
1894 .RE
1895 to see hanging indents in action.
1896 .
1897 .RE
1898 .
1899 .
1900 .\" ====================================================================
1901 .\" IB - INDENT BOTH
1902 .\" ====================================================================
1903 .TP
1904 .BI "\%.IB [" " <left measure> <right measure> " ]
1905 Indent both \[em] the optional argument requires a unit of measure
1906 .
1907 .RS
1908 .
1909 .P
1910 .B .IB
1911 allows you to set or invoke a left and a right indent at the same time.
1912 .
1913 .P
1914 At its first invocation, you must supply a measure for both indents;
1915 at subsequent invocations when you wish to supply a measure, both must
1916 be given again.
1917 .
1918 As with
1919 .B .IL
1920 and
1921 .BR .IR ,
1922 the measures are added to the values previously passed to the
1923 macro.
1924 .
1925 Hence, if you wish to change just one of the values, you must give an
1926 argument of zero to the other.
1927 .
1928 .P
1929 .I A word of advice:
1930 If you need to manipulate left and right indents separately, use a
1931 combination of
1932 .B .IL
1933 and
1934 .B .IR
1935 instead of
1936 .BR .IB .
1937 .
1938 You'll save yourself a lot of grief.
1939 .
1940 .P
1941 A
1942 .I minus sign
1943 may be prepended to the arguments to subtract from their current
1944 values.
1945 .
1946 The \[rs]w inline escape may be used to specify text-dependent
1947 measures, in which case no unit of measure is required.
1948 .
1949 For example,
1950 .RS
1951 .EX
1952 .B .IB \[rs]w\[aq]margarine\[aq] \[rs]w\[aq]jello\[aq]
1953 .EE
1954 .RE
1955 left indents text by the width of the word
1956 .I margarine
1957 and right indents by the width of
1958 .IR jello .
1959 .
1960 .P
1961 Like
1962 .B .IL
1963 and
1964 .BR .IR ,
1965 .B .IB
1966 with no argument indents by its last active values.
1967 .
1968 See the brief explanation of how mom handles indents for more details.
1969 .
1970 .P
1971 .I Note:
1972 Calling a
1973 .I tab
1974 (with
1975 .BR ".TAB <n>" )
1976 automatically cancels any active indents.
1977 .
1978 .P
1979 .I Additional note:
1980 Invoking
1981 .B .IB
1982 automatically turns off
1983 .B .IL
1984 and
1985 .BR .IR .
1986 .
1987 .RE
1988 .
1989 .
1990 .\" ====================================================================
1991 .\" IL - INDENT LEFT
1992 .\" ====================================================================
1993 .TP
1994 .BI "\%.IL [" " <measure> " ]
1995 Indent left \[em] the optional argument requires a unit of measure
1996 .
1997 .RS
1998 .
1999 .P
2000 .B .IL
2001 indents text from the left margin of the page, or if you're in a
2002 .IR tab ,
2003 from the left edge of the
2004 .IR tab .
2005 .
2006 Once
2007 .I IL
2008 is on, the
2009 .I left indent
2010 is applied uniformly to every subsequent line of text, even if you
2011 change the line length.
2012 .
2013 .P
2014 The first time you invoke
2015 .BR .IL ,
2016 you must give it a measure.
2017 .
2018 Subsequent invocations with a measure add to the previous measure.
2019 .
2020 A minus sign may be prepended to the argument to subtract from the
2021 current measure.
2022 .
2023 The
2024 .B \[rs]w
2025 inline escape may be used to specify a text-dependent measure, in
2026 which case no unit of measure is required.
2027 .
2028 For example,
2029 .RS
2030 .EX
2031 .B .IL \[rs]w\[aq]margarine\[aq]
2032 .EE
2033 .RE
2034 indents text by the width of the word
2035 .IR margarine .
2036 .
2037 .P
2038 With no argument,
2039 .B .IL
2040 indents by its last active value.
2041 .
2042 See the brief explanation of how
2043 .I mom
2044 handles indents for more details.
2045 .
2046 .P
2047 .I Note:
2048 Calling a
2049 .I tab
2050 (with
2051 .BR ".TAB <n>" )
2052 automatically cancels any active indents.
2053 .
2054 .P
2055 .I Additional note:
2056 Invoking
2057 .B .IL
2058 automatically turns off
2059 .BR IB .
2060 .
2061 .RE
2062 .
2063 .
2064 .\" ====================================================================
2065 .\" IQ - quit any/all indents
2066 .\" ====================================================================
2067 .TP
2068 .BI "\%.IQ [" " <measure> " ]
2069 IQ \[em] quit any/all indents
2070 .
2071 .RS
2072 .
2073 .P
2074 .I IMPORTANT NOTE:
2075 The original macro for quitting all indents was
2076 .BR .IX .
2077 .
2078 This usage has been deprecated in favour of
2079 .BR IQ .
2080 .
2081 .B .IX
2082 will continue to behave as before, but
2083 .I mom
2084 will issue a warning to
2085 .I stderr
2086 indicating that you should update your documents.
2087 .
2088 .P
2089 As a consequence of this change,
2090 .BR .ILX ,
2091 .B .IRX
2092 and
2093 .B .IBX
2094 may now also be invoked as
2095 .BR .ILQ ,
2096 .B .IRQ
2097 and
2098 .BR .IBQ .
2099 .
2100 Both forms are acceptable.
2101 .
2102 .P
2103 Without an argument, the macros to quit indents merely restore your
2104 original margins and line length.
2105 .
2106 The measures stored in the indent macros themselves are saved so you
2107 can call them again without having to supply a measure.
2108 .
2109 .P
2110 If you pass these macros the optional argument
2111 .BR CLEAR ,
2112 they not only restore your original left margin and line length, but
2113 also clear any values associated with a particular indent style.
2114 .
2115 The next time you need an indent of the same style, you have to supply
2116 a measure again.
2117 .
2118 .P
2119 .BR ".IQ CLEAR" ,
2120 as you'd suspect, quits and clears the values for all indent
2121 styles at once.
2122 .
2123 .RE
2124 .
2125 .
2126 .\" ====================================================================
2127 .\" IR - INDENT RIGHT
2128 .\" ====================================================================
2129 .TP
2130 .BI "\%.IR [" " <measure> " ]
2131 Indent right \[em] the optional argument requires a unit of measure
2132 .
2133 .RS
2134 .
2135 .P
2136 .B .IR
2137 indents text from the
2138 .I right margin
2139 of the page, or if you're in a
2140 .IR tab ,
2141 from the end of the
2142 .IR tab .
2143 .
2144 .P
2145 The first time you invoke
2146 .BR .IR ,
2147 you must give it a measure.
2148 .
2149 Subsequent invocations with a measure add to the previous indent
2150 measure.
2151 .
2152 A
2153 .I minus sign
2154 may be prepended to the argument to subtract from the current indent
2155 measure.
2156 .
2157 The \[rs]w inline escape may be used to specify a text-dependent
2158 measure, in which case no
2159 .I unit of measure
2160 is required.
2161 .
2162 For example,
2163 .RS
2164 .EX
2165 .B .IR \[rs]w\[aq]jello\[aq]
2166 .EE
2167 .RE
2168 indents text by the width of the word
2169 .IR jello .
2170 .
2171 .P
2172 With no argument,
2173 .B .IR
2174 indents by its last active value.
2175 .
2176 See the brief explanation of how
2177 .I mom
2178 handles indents for more details.
2179 .
2180 .P
2181 .I Note:
2182 Calling a
2183 .I tab
2184 (with
2185 .BR "\%.TAB <n>" )
2186 automatically cancels any active indents.
2187 .
2188 .P
2189 .I Additional note:
2190 Invoking
2191 .B .IR
2192 automatically turns off
2193 .BR IB .
2194 .
2195 .RE
2196 .
2197 .
2198 .\" ====================================================================
2199 .\" Left Margin
2200 .\" ====================================================================
2201 .TP
2202 .BI .L_MARGIN " <left margin>"
2203 Left Margin
2204 .
2205 .RS
2206 .
2207 .P
2208 L_MARGIN establishes the distance from the left edge of the printer
2209 sheet at which you want your type to start.
2210 .
2211 It may be used any time,
2212 and remains in effect until you enter a new value.
2213 .
2214 .P
2215 Left indents and tabs are calculated from the value you pass to
2216 .BR .L_MARGIN ,
2217 hence it's always a good idea to invoke it before starting any serious
2218 typesetting.
2219 .
2220 A unit of measure is required.
2221 .
2222 Decimal fractions are allowed.
2223 .
2224 Therefore,
2225 to set the left margin at 3 picas (1/2 inch),
2226 you'd enter either
2227 .RS
2228 .EX
2229 .B .L_MARGIN 3P
2230 .EE
2231 .RE
2232 or
2233 .RS
2234 .EX
2235 .B .L_MARGIN .5i
2236 .EE
2237 .RE
2238 .
2239 .P
2240 If you use the macros
2241 .BR .PAGE ,
2242 .B .PAGEWIDTH
2243 or
2244 .B .PAPER
2245 without invoking
2246 .B .L_MARGIN
2247 (either before or afterward),
2248 .I mom
2249 automatically sets
2250 .B .L_MARGIN
2251 to
2252 .IR "1 inch" .
2253 .
2254 .P
2255 Note:
2256 .B .L_MARGIN
2257 behaves in a special way when you're using the document processing
2258 macros.
2259 .
2260 .RE
2261 .
2262 .
2263 .\" ====================================================================
2264 .\" MCO - BEGIN MULTI-COLUMN SETTING
2265 .\" ====================================================================
2266 .TP
2267 .B .MCO
2268 Begin multi-column setting.
2269 .
2270 .RS
2271 .P
2272 .B .MCO
2273 .RI ( "Multi-Column On" )
2274 is the
2275 .I macro
2276 you use to begin
2277 .IR "multi-column setting" .
2278 .
2279 It marks the current baseline as the top of your columns, for use
2280 later with
2281 .BR .MCR .
2282 .
2283 See the introduction to columns for an explanation of
2284 .I multi-columns
2285 and some sample input.
2286 .
2287 .P
2288 .I Note:
2289 Do not confuse
2290 .B .MCO
2291 with the
2292 .B .COLUMNS
2293 macro in the document processing macros.
2294 .
2295 .RE
2296 .
2297 .
2298 .\" ====================================================================
2299 .\" MCR - RETURN TO TOP OF COLUMN
2300 .\" ====================================================================
2301 .TP
2302 .B \%.MCR
2303 Once you've turned
2304 .I multi-columns
2305 on (with
2306 .BR \%.MCO ),
2307 .BR .MCR ,
2308 at any time,
2309 returns you to the
2310 .IR "top of your columns" . \" XXX: Are italics truly required here?
2311 .
2312 .
2313 .\" ====================================================================
2314 .\" MCX - EXIT MULTI-COLUMNS
2315 .\" ====================================================================
2316 .TP
2317 .BI "\%.MCX [ " "<distance to advance below longest column>" " ]"
2318 Optional argument requires a unit of measure.
2319 .
2320 .RS
2321 .
2322 .P
2323 Exit multi-columns.
2324 .
2325 .P
2326 .B .MCX
2327 takes you out of any
2328 .I tab
2329 you were in (by silently invoking
2330 .BR .TQ )
2331 and advances to the bottom of the longest column.
2332 .
2333 .P
2334 Without an argument,
2335 .B .MCX
2336 advances
2337 .I 1 linespace
2338 below the longest column.
2339 .
2340 .P
2341 Linespace, in this instance, is the leading in effect at the moment
2342 .B .MCX
2343 is invoked.
2344 .
2345 .P
2346 If you pass the
2347 .I <distance>
2348 argument to
2349 .BR .MCX ,
2350 it advances
2351 .I 1 linespace
2352 below the longest column (see above)
2353 .I PLUS
2354 the distance specified by the argument.
2355 .
2356 The argument requires a unit of measure; therefore, to advance an
2357 extra 6 points below where
2358 .B \%.MCX
2359 would normally place you, you'd enter
2360 .RS
2361 .EX
2362 .B .MCX 6p
2363 .EE
2364 .RE
2365 .
2366 .P
2367 .I Note:
2368 If you wish to advance a precise distance below the baseline of the
2369 longest column, use
2370 .B .MCX
2371 with an argument of
2372 .B 0
2373 (zero; no
2374 .I unit of measure
2375 required) in conjunction with the
2376 .B \%.ALD
2377 macro, like this:
2378 .RS
2379 .EX
2380 .B .MCX 0
2381 .B .ALD 24p
2382 .EE
2383 .RE
2384 .
2385 The above advances to precisely
2386 .I 24 points
2387 below the baseline of the longest column.
2388 .
2389 .RE
2390 .
2391 .
2392 .\" ====================================================================
2393 .\" Start a new Page
2394 .\" ====================================================================
2395 .TP
2396 .B .NEWPAGE
2397 .
2398 .RS
2399 .
2400 .P
2401 Whenever you want to start a new page, use
2402 .BR .NEWPAGE ,
2403 by itself with no argument.
2404 .
2405 .B Mom
2406 will finish up processing the current page and move you to the top of
2407 a new one (subject to the top margin set with
2408 .BR .T_MARGIN ).
2409 .
2410 .RE
2411 .
2412 .
2413 .\" ====================================================================
2414 .\" Page
2415 .\" ====================================================================
2416 .TP
2417 .BI ".PAGE " <width> " [ " <length> " [ " <lm> " [ " <rm> " [ " \
2418              <tm> " [ " <bm> " ] ] ] ] ]"
2419 .
2420 .RS
2421 .
2422 .P
2423 All arguments require a unit of measure
2424 .
2425 .P
2426 .I IMPORTANT:
2427 If you're using the document processing macros,
2428 .B .PAGE
2429 must come after
2430 .BR .START .
2431 .
2432 Otherwise, it should go at the top of a document, prior to any text.
2433 .
2434 And remember, when you're using the document processing macros, top
2435 margin and bottom margin mean something slightly different than when
2436 you're using just the typesetting macros (see Top and bottom margins
2437 in document processing).
2438 .
2439 .P
2440 .B .PAGE
2441 lets you establish paper dimensions and page margins with a single
2442 macro.
2443 .
2444 The only required argument is page width.
2445 .
2446 The rest are
2447 optional, but they must appear in order and you can't skip over
2448 any.
2449 .
2450 .IR <lm> ,
2451 .IR <rm> ,
2452 .I <tm>
2453 and
2454 .I <bm>
2455 refer to the left, right, top and bottom margins respectively.
2456 .
2457 .P
2458 Assuming your page dimensions are 11 inches by 17 inches, and that's
2459 all you want to set, enter
2460 .RS
2461 .EX
2462 .B .PAGE 11i 17i
2463 .EE
2464 .RE
2465 .
2466 If you want to set the left margin as well, say, at 1 inch,
2467 .B PAGE
2468 would look like this:
2469 .RS
2470 .EX
2471 .B .PAGE 11i 17i 1i
2472 .EE
2473 .RE
2474 .
2475 .P
2476 Now suppose you also want to set the top margin,
2477 say,
2478 at 1\(en1/2 inches.
2479 .
2480 .I <tm>
2481 comes after
2482 .I <rm>
2483 in the optional arguments, but you can't skip over any arguments,
2484 therefore to set the top margin, you must also give a right margin.
2485 .
2486 The
2487 .B .PAGE
2488 macro would look like this:
2489 .RS
2490 .EX
2491 .tr -\-
2492 \&.PAGE 11i 17i 1i 1i 1.5i
2493                  |   |
2494 required right---+   +---top margin
2495         margin
2496 .tr --
2497 .EE
2498 .RE
2499 .
2500 .P
2501 Clearly,
2502 .B .PAGE
2503 is best used when you want a convenient way to tell
2504 .I mom
2505 just the dimensions of your printer sheet (width and length), or when
2506 you want to tell her everything about the page (dimensions and all the
2507 margins), for example
2508 .RS
2509 .EX
2510 .B .PAGE 8.5i 11i 45p 45p 45p 45p
2511 .EE
2512 .RE
2513 .
2514 This sets up an 8\(12 by 11 inch page with margins of 45 points
2515 (5/8-inch) all around.
2516 .
2517 .P
2518 Additionally, if you invoke
2519 .B .PAGE
2520 with a top margin argument, any macros you invoke after
2521 .B .PAGE
2522 will almost certainly move the baseline of the first line of text down
2523 by one linespace.
2524 .
2525 To compensate, do
2526 .RS
2527 .EX
2528 .B .RLD 1v
2529 .EE
2530 .RE
2531 immediately before entering any text, or, if it's feasible, make
2532 .B .PAGE
2533 the last macro you invoke prior to entering text.
2534 .
2535 .P
2536 Please read the
2537 .I Important note
2538 on page dimensions and papersize for information on ensuring
2539 .I groff
2540 respects your
2541 .B .PAGE
2542 dimensions and margins.
2543 .
2544 .RE
2545 .
2546 .
2547 .\" ====================================================================
2548 .\" Page Length
2549 .\" ====================================================================
2550 .TP
2551 .BI .PAGELENGTH " <length of printer sheet>"
2552 tells
2553 .I mom
2554 how long your printer sheet is.
2555 .
2556 It works just like
2557 .BR .PAGEWIDTH .
2558 .
2559 .RS
2560 .
2561 .P
2562 Therefore, to tell
2563 .I mom
2564 your printer sheet is 11 inches long, you enter
2565 .RS
2566 .EX
2567 .B .PAGELENGTH 11i
2568 .EE
2569 .RE
2570 .
2571 Please read the important note on page dimensions and papersize for
2572 information on ensuring
2573 .I groff
2574 respects your
2575 .IR PAGELENGTH .
2576 .
2577 .RE
2578 .
2579 .
2580 .\" ====================================================================
2581 .\" Page Width
2582 .\" ====================================================================
2583 .TP
2584 .BI .PAGEWIDTH " <width of printer sheet>"
2585 .
2586 .RS
2587 .
2588 .P
2589 The argument to
2590 .B .PAGEWIDTH
2591 is the width of your printer sheet.
2592 .
2593 .P
2594 .B .PAGEWIDTH
2595 requires a unit of measure.
2596 .
2597 Decimal fractions are allowed.
2598 .
2599 Hence, to tell
2600 .I mom
2601 that the width of your printer sheet is 8\(12 inches, you enter
2602 .RS
2603 .EX
2604 \&.PAGEWIDTH 8.5i
2605 .EE
2606 .RE
2607 .
2608 .P
2609 Please read the Important note on page dimensions and papersize for
2610 information on ensuring
2611 .I groff
2612 respects your
2613 .IR PAGEWIDTH .
2614 .
2615 .RE
2616 .
2617 .
2618 .\" ====================================================================
2619 .\" Paper
2620 .\" ====================================================================
2621 .TP
2622 .BI .PAPER " <paper type>"
2623 provides a convenient way to set the page dimensions for some common
2624 printer sheet sizes.
2625 .
2626 The argument
2627 .I <paper type>
2628 can be one of:
2629 .BR LETTER ,
2630 .BR LEGAL ,
2631 .BR STATEMENT ,
2632 .BR TABLOID ,
2633 .BR LEDGER ,
2634 .BR FOLIO ,
2635 .BR QUARTO ,
2636 .BR EXECUTIVE ,
2637 .BR 10x14 ,
2638 .BR A3 ,
2639 .BR A4 ,
2640 .BR A5 ,
2641 .BR B4 ,
2642 .BR B5 .
2643 .
2644 .
2645 .TP
2646 .B .PRINTSTYLE
2647 .
2648 .
2649 .\" ====================================================================
2650 .\" PT_SIZE - POINT SIZE OF TYPE
2651 .\" ====================================================================
2652 .TP
2653 .BI .PT_SIZE " <size of type in points>"
2654 Point size of type, does not require a
2655 .IR "unit of measure" .
2656 .
2657 .RS
2658 .
2659 .P
2660 .B \%.PT_SIZE
2661 .RI ( "Point Size" )
2662 takes one argument: the
2663 .I size of type
2664 in
2665 .IR points .
2666 .
2667 Unlike most other macros that establish the
2668 .I size
2669 or
2670 .I measure
2671 of something,
2672 .B \%.PT_SIZE
2673 does not require that you supply a
2674 .I unit of measure
2675 since it's a near universal convention that
2676 .I type size
2677 is measured in
2678 .IR points .
2679 .
2680 Therefore, to change the
2681 .I type size
2682 to, say,
2683 .IR "11 points" ,
2684 enter
2685 .RS
2686 .EX
2687 .B .PT_SIZE 11
2688 .EE
2689 .RE
2690 .
2691 .I Point sizes
2692 may be
2693 .I fractional
2694 (e.g.,
2695 .I 10.25
2696 or
2697 .IR 12.5 ).
2698 .
2699 .P
2700 You can prepend a
2701 .I plus
2702 or a
2703 .I minus sign
2704 to the argument to
2705 .BR \%.PT_SIZE ,
2706 in which case the
2707 .I point size
2708 will be changed by
2709 .I +
2710 or
2711 .I \-
2712 the original value.
2713 .
2714 For example,
2715 if the
2716 .I point size
2717 is
2718 .IR 12 ,
2719 and you want
2720 .IR 14 ,
2721 you can do
2722 .RS
2723 .EX
2724 .B .PT_SIZE +2
2725 .EE
2726 .RE
2727 then later reset it to
2728 .I 12
2729 with
2730 .RS
2731 .EX
2732 .B .PT_SIZE \-2
2733 .EE
2734 .RE
2735 .
2736 The
2737 .I size of type
2738 can also be changed inline.
2739 .
2740 .P
2741 .I Note:
2742 It is unfortunate that the
2743 .B \%pic
2744 preprocessor has already taken the name, PS, and thus
2745 .IR mom 's
2746 macro for setting
2747 .I point sizes
2748 can't use it.
2749 .
2750 However, if you aren't using
2751 .BR pic ,
2752 you might want to alias
2753 .B \%.PT_SIZE
2754 as
2755 .BR .PS ,
2756 since there'd be no conflict.
2757 .
2758 For example
2759 .RS
2760 .EX
2761 .B .ALIAS PS PT_SIZE
2762 .EE
2763 .RE
2764 would allow you to set
2765 .I point sizes
2766 with
2767 .BR .PS .
2768 .
2769 .RE
2770 .
2771 .
2772 .\" ====================================================================
2773 .\" Right Margin
2774 .\" ====================================================================
2775 .TP
2776 .BI .R_MARGIN " <right margin>"
2777 Right Margin
2778 .
2779 .RS
2780 .
2781 .P
2782 Requires a unit of measure.
2783 .
2784 .P
2785 IMPORTANT:
2786 .BR .R_MARGIN ,
2787 if used, must come after
2788 .BR .PAPER ,
2789 .BR .PAGEWIDTH ,
2790 .BR .L_MARGIN ,
2791 and/or
2792 .B .PAGE
2793 (if a right margin isn't given to PAGE).
2794 .
2795 The reason is that
2796 .B .R_MARGIN
2797 calculates line length from the overall page dimensions and the left
2798 margin.
2799 .
2800 .P
2801 Obviously, it can't make the calculation if it doesn't know the page
2802 width and the left margin.
2803 .
2804 .P
2805 .B .R_MARGIN
2806 establishes the amount of space you want between the end of typeset
2807 lines and the right hand edge of the printer sheet.
2808 .
2809 In other words, it sets the line length.
2810 .B .R_MARGIN
2811 requires a unit of measure.
2812 .
2813 Decimal fractions are allowed.
2814 .
2815 .P
2816 The line length macro (LL) can be used in place of
2817 .BR .R_MARGIN .
2818 .
2819 In either case, the last one invoked sets the line length.
2820 .
2821 The choice of which to use is up to you.
2822 .
2823 In some instances, you may find it easier to think of a section of
2824 type as having a right margin.
2825 .
2826 In others, giving a line length may make more sense.
2827 .
2828 .P
2829 For example, if you're setting a page of type you know should have
2830 6-pica margins left and right, it makes sense to enter a left and
2831 right margin, like this:
2832 .RS
2833 .EX
2834 .B .L_MARGIN 6P
2835 .B .R_MARGIN 6P
2836 .EE
2837 .RE
2838 .
2839 .P
2840 That way, you don't have to worry about calculating the line
2841 length.
2842 .
2843 On the other hand, if you know the line length for a patch of type
2844 should be 17 picas and 3 points, entering the line length with LL is
2845 much easier than calculating the right margin, e.g.,
2846 .RS
2847 .EX
2848 .B .LL 17P+3p
2849 .EE
2850 .RE
2851 .
2852 .P
2853 If you use the macros
2854 .BR .PAGE ,
2855 .B .PAGEWIDTH
2856 or
2857 .B PAPER
2858 without invoking
2859 .B .R_MARGIN
2860 afterward,
2861 .I mom
2862 automatically sets
2863 .B .R_MARGIN
2864 to
2865 .IR "1 inch" .
2866 .
2867 If you set a line length after these macros (with
2868 .BR .LL ),
2869 the line length calculated by
2870 .B .R_MARGIN
2871 is, of course, overridden.
2872 .
2873 .P
2874 Note:
2875 .B .R_MARGIN
2876 behaves in a special way when you're using the document processing
2877 macros.
2878 .
2879 .RE
2880 .
2881 .
2882 .\" ====================================================================
2883 .\" ST - Set String Tabs
2884 .\" ====================================================================
2885 .TP
2886 .FONT B .ST I " <tab number> " B "L | R | C | J [ QUAD ]"
2887 .
2888 .RS
2889 .P
2890 After
2891 .I string tabs
2892 have been marked off on an input line (see
2893 .BR \[rs]*[ST].\|.\|.\&\[rs]*[STX] ),
2894 you need to
2895 .I set
2896 them by giving them a direction and, optionally, the
2897 .B \%QUAD
2898 argument.
2899 .
2900 .P
2901 In this respect,
2902 .B .ST
2903 is like
2904 .B \%.TAB_SET
2905 except that you don't have to give
2906 .B .ST
2907 an indent or a line length (that's already taken care of, inline,
2908 by
2909 .BR \[rs]*[ST].\|.\|.\&\[rs]*[STX] ).
2910 .
2911 .P
2912 If you want string
2913 .I tab 1
2914 to be
2915 .BR \%left ,
2916 enter
2917 .RS
2918 .EX
2919 .B .ST 1 L
2920 .EE
2921 .RE
2922 .
2923 If you want it to be
2924 .I \%left
2925 and
2926 .IR \%filled ,
2927 enter
2928 .RS
2929 .EX
2930 .B .ST 1 L \%QUAD
2931 .EE
2932 .RE
2933 .
2934 If you want it to be justified, enter
2935 .RS
2936 .EX
2937 .B .ST 1 J
2938 .EE
2939 .RE
2940 .
2941 .RE
2942 .
2943 .
2944 .\" ====================================================================
2945 .\" TAB - Call Tabs
2946 .\" ====================================================================
2947 .TP
2948 .BI \%.TAB " <tab number>"
2949 After
2950 .I tabs
2951 have been defined (either with
2952 .B \%.TAB_SET
2953 or
2954 .BR .ST ),
2955 .B \%.TAB
2956 moves to whatever
2957 .I tab number
2958 you pass it as an argument.
2959 .
2960 .RS
2961 .
2962 .P
2963 For example,
2964 .RS
2965 .EX
2966 .B \%.TAB 3
2967 .EE
2968 .RE
2969 moves you to
2970 .IR "\%tab 3" .
2971 .
2972 .P
2973 Note:
2974 .B \%.TAB
2975 breaks the line preceding it and advances 1 linespace.
2976 .
2977 Hence,
2978 .RS
2979 .EX
2980 .B .TAB 1
2981 .B  A line of text in tab 1.
2982 .B .TAB 2
2983 .B  A line of text in tab 2.
2984 .EE
2985 .RE
2986 produces, on output
2987 .RS
2988 .EX
2989 .B "A line of text in tab 1."
2990 .B "                             A line of text in tab 2."
2991 .EE
2992 .RE
2993 .
2994 .
2995 .P
2996 If you want the tabs to line up,
2997 use
2998 .B .TN
2999 (\[lq]Tab Next\[rq])
3000 or,
3001 more conveniently,
3002 the inline escape sequence
3003 .BR \[rs]*[TB+] :
3004 .RS
3005 .EX
3006 .BR .TAB \~1
3007 A line of text in tab 1.\[rs]*[TB+]
3008 A line of text in tab 2.
3009 .EE
3010 .RE
3011 which produces
3012 .RS
3013 .EX
3014 .B "A line of text in tab 1.\&   A line of text in tab 2."
3015 .EE
3016 .RE
3017 .
3018 .
3019 .P
3020 If the text in your tabs runs to several lines, and you want the first
3021 lines of each tab to align, you must use the multi-column macros.
3022 .
3023 .P
3024 .I Additional note:
3025 Any indents in effect prior to calling a tab are automatically turned
3026 off by
3027 .BR TAB .
3028 .
3029 If you were happily zipping down the page with a left indent of
3030 .I 2 picas
3031 turned on, and you call a
3032 .I tab
3033 whose indent from the left margin is
3034 .IR "6 picas" ,
3035 your new distance from the
3036 .I left margin
3037 will be
3038 .IR "6 picas" ,
3039 not
3040 I 6 picas plus the 2 pica
3041 indent.
3042 .
3043 .P
3044 .I \%Tabs
3045 are not by nature columnar, which is to say that if the text inside a
3046 .I tab
3047 runs to several lines, calling another
3048 .I tab
3049 does not automatically move to the baseline of the first line in the
3050 .IR "previous tab" .
3051 .
3052 To demonstrate:
3053 .RS
3054 .EX
3055 TAB 1
3056 Carrots
3057 Potatoes
3058 Broccoli
3059 \&.TAB 2
3060 $1.99/5 lbs
3061 $0.25/lb
3062 $0.99/bunch
3063 .EE
3064 .RE
3065 produces, on output
3066 .RS
3067 .EX
3068 Carrots
3069 Potatoes
3070 Broccoli
3071             $1.99/5 lbs
3072             $0.25/lb
3073             $0.99/bunch
3074 .EE
3075 .RE
3076 .
3077 .RE
3078 .
3079 .\" ====================================================================
3080 .\" TB - Call Tabs Alias
3081 .\" ====================================================================
3082 .TP
3083 .BI .TB " <tab number>"
3084 Alias to
3085 .B .TAB
3086 .
3087 .
3088 .\" ====================================================================
3089 .\" TI - TEMPORARY (LEFT) INDENT
3090 .\" ====================================================================
3091 .TP
3092 .BI "\%.TI [" " <measure> " ]
3093 Temporary left indent \[em] the optional argument requires a
3094 .I unit of measure
3095 .
3096 .RS
3097 .
3098 .P
3099 A temporary indent is one that applies only to the first line of text
3100 that comes after it.
3101 .
3102 Its chief use is indenting the first line of paragraphs.
3103 .RB ( Mom's
3104 .B .PP
3105 macro, for example, uses a
3106 .IR "temporary indent" .)
3107 .
3108 .P
3109 The first time you invoke
3110 .BR .TI ,
3111 you must give it a measure.
3112 .
3113 If you want to
3114 .I indent
3115 the first line of a paragraph by, say, 2 ems, do
3116 .RS
3117 .EX
3118 .B .TI 2m
3119 .EE
3120 .RE
3121 .
3122 .P
3123 Subsequent invocations of
3124 .B .TI
3125 do not require you to supply a measure;
3126 .I mom
3127 keeps track of the last measure you gave it.
3128 .
3129 .P
3130 Because
3131 .I temporary indents
3132 are temporary, there's no need to turn them off.
3133 .
3134 .P
3135 .I IMPORTANT:
3136 Unlike
3137 .BR .IL ,
3138 .B .IR
3139 and
3140 .BR IB ,
3141 measures given to
3142 .B .TI
3143 are NOT additive.
3144 .
3145 In the following example, the second
3146 .B \%".TI 2P"
3147 is exactly
3148 .IR "2 picas" .
3149 .RS
3150 .EX
3151 .B .TI 1P
3152 .B The beginning of a paragraph.\|.\|.\&
3153 .B .TI 2P
3154 .B The beginning of another paragraph.\|.\|.\&
3155 .EE
3156 .RE
3157 .
3158 .RE
3159 .
3160 .
3161 .
3162 .\" ====================================================================
3163 .\" TN - Tab Next
3164 .\" ====================================================================
3165 .TP
3166 .B .TN
3167 Tab Next
3168 .
3169 .RS
3170 .P
3171 Inline escape
3172 .B \[rs]*[TB+]
3173 .
3174 .P
3175 .B TN
3176 moves over to the
3177 .I next tab
3178 in numeric sequence
3179 .RI ( "tab n+1" )
3180 without advancing on the page.
3181 .
3182 See the
3183 .I NOTE
3184 in the description of the
3185 .B \%.TAB
3186 macro for an example of how
3187 .B TN
3188 works.
3189 .
3190 .P
3191 In
3192 .I \%tabs
3193 that aren't given the
3194 .B QUAD
3195 argument when they're set up with
3196 .B \%.TAB_SET
3197 or
3198 .BR ST ,
3199 you must terminate the line preceding
3200 .B .TN
3201 with the
3202 .B \[rs]c
3203 inline escape sequence.
3204 .
3205 Conversely, if you did give a
3206 .B QUAD
3207 argument to
3208 .B \%.TAB_SET
3209 or
3210 .BR ST ,
3211 the
3212 .B \[rs]c must not be used.
3213 .
3214 .P
3215 If you find remembering whether to put in the
3216 .B \[rs]c
3217 bothersome, you may prefer to use the inline escape alternative
3218 to
3219 .BR .TN ,
3220 .BR \[rs]*[TB+] ,
3221 which works consistently regardless of the fill mode.
3222 .
3223 .P
3224 .I Note:
3225 You must put text in the input line immediately after
3226 .BR .TN .
3227 .
3228 Stacking of
3229 .BR .TN 's
3230 is not allowed.
3231 .
3232 In other words, you cannot do
3233 .RS
3234 .EX
3235 \&.TAB 1
3236 Some text\[rs]c
3237 \&.TN
3238 Some more text\[rs]c
3239 \&.TN
3240 \&.TN
3241 Yet more text
3242 .EE
3243 .RE
3244 .
3245 The above example, assuming
3246 .I tabs
3247 numbered from
3248 .I 1
3249 to
3250 .IR 4 ,
3251 should be entered
3252 .RS
3253 .EX
3254 \&.TAB 1
3255 Some text\[rs]c
3256 \&.TN
3257 Some more text\[rs]c
3258 \&.TN
3259 \[rs]&\[rs]c
3260 \&.TN
3261 Yet more text
3262 .EE
3263 .RE
3264 .
3265 \[rs]& is a zero-width, non-printing character that
3266 .I groff
3267 recognizes as valid input, hence meets the requirement for input text
3268 following
3269 .BR .TN .
3270 .
3271 .RE
3272 .
3273 .
3274 .\" ====================================================================
3275 .\" Tab Quit
3276 .\" ====================================================================
3277 .TP
3278 .B .TQ
3279 .B TQ
3280 takes you out of whatever
3281 .I tab
3282 you were in, advances
3283 .IR "1 linespace" ,
3284 and restores the
3285 .IR "left margin" ,
3286 .IR "line length" ,
3287 .I quad direction
3288 and
3289 .I fill mode
3290 that were in effect prior to invoking any
3291 .IR tabs .
3292 .
3293 .
3294 .\" ====================================================================
3295 .\" Top Margin
3296 .\" ====================================================================
3297 .TP
3298 .BI .T_MARGIN " <top margin>"
3299 Top margin
3300 .
3301 .RS
3302 .
3303 .P
3304 Requires a unit of measure
3305 .
3306 .P
3307 .B .T_MARGIN
3308 establishes the distance from the top of the printer sheet at which
3309 you want your type to start.
3310 .
3311 It requires a unit of measure, and decimal fractions are allowed.
3312 .
3313 To set a top margin of 2\(12 centimetres, you'd enter
3314 .RS
3315 .EX
3316 .B .T_MARGIN 2.5c
3317 .EE
3318 .RE
3319 .
3320 .B .T_MARGIN
3321 calculates the vertical position of the first line of type on a page
3322 by treating the top edge of the printer sheet as a baseline.
3323 Therefore,
3324 .RS
3325 .EX
3326 .B .T_MARGIN 1.5i
3327 .EE
3328 .RE
3329 puts the baseline of the first line of type 1\(12 inches beneath the
3330 top of the page.
3331 .
3332 .P
3333 Note:
3334 .B .T_MARGIN
3335 means something slightly different when you're using the document
3336 processing macros.
3337 .
3338 See Top and bottom margins in document processing for an explanation.
3339 .
3340 .P
3341 IMPORTANT:
3342 .B .T_MARGIN
3343 does two things: it establishes the top margin for pages that come
3344 after it and it moves to that position on the current page.
3345 .
3346 Therefore,
3347 .B .T_MARGIN
3348 should only be used at the top of a file (prior to entering text) or
3349 after NEWPAGE, like this:
3350 .RS
3351 .EX
3352 .B .NEWPAGE
3353 .B .T_MARGIN 6P
3354 .I <text>
3355 .EE
3356 .RE
3357 .
3358 .RE
3359 .
3360 .
3361 .\" ====================================================================
3362 .SH Authors
3363 .\" ====================================================================
3364 .
3365 .I mom
3366 was written by
3367 .MT peter@\:schaffter\:.ca
3368 Peter Schaffter
3369 .ME .
3370 .
3371 PDF support was provided by
3372 .MT deri@\:chuzzlewit\:.myzen\:.co\:.uk
3373 Deri James
3374 .ME .
3375 .
3376 This manual page was written by Bernd Warken.
3377 .
3378 .
3379 .\" ====================================================================
3380 .SH "See also"
3381 .\" ====================================================================
3382 .
3383 .TP
3384 .I @HTMLDOCDIR@/\:mom/\:toc\:.html
3385 entry point to the HTML documentation
3386 .
3387 .
3388 .TP
3389 .UR http://\:www\:.schaffter\:.ca/\:mom/\:momdoc/\:toc\:.html
3390 .UE
3391 HTML documentation online
3392 .
3393 .
3394 .TP
3395 .UR http://\:www\:.schaffter\:.ca/\:mom/
3396 .UE
3397 the
3398 .I mom
3399 macros homepage
3400 .
3401 .
3402 .P
3403 .IR "Groff: The GNU Implementation of troff" ,
3404 by Trent A.\& Fisher and Werner Lemberg,
3405 is the primary
3406 .I groff
3407 manual.
3408 .
3409 You can browse it interactively with \[lq]info groff\[rq].
3410 .
3411 .
3412 .P
3413 .MR pdfmom @MAN1EXT@ ,
3414 .MR groff @MAN1EXT@ ,
3415 .MR @g@troff @MAN1EXT@
3416 .
3417 .
3418 .\" Restore compatibility mode (for, e.g., Solaris 10/11).
3419 .cp \n[*groff_groff_mom_7_man_C]
3420 .do rr *groff_groff_mom_7_man_C
3421 .
3422 .
3423 .\" Local Variables:
3424 .\" fill-column: 72
3425 .\" mode: nroff
3426 .\" End:
3427 .\" vim: set filetype=groff textwidth=72: