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