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