1 .TH groff_mom @MAN7EXT@ "@MDATE@" "groff @VERSION@"
3 groff_mom \- modern macros for document composition with GNU
7 .\" ====================================================================
9 .\" ====================================================================
11 .\" Copyright (C) 2002-2020 Free Software Foundation, Inc.
13 .\" This file is part of mom, which is part of groff, the GNU roff
14 .\" type-setting system.
16 .\" This program is free software: you can redistribute it and/or modify
17 .\" it under the terms of the GNU General Public License as published by
18 .\" the Free Software Foundation, either version 3 of the License, or
19 .\" (at your option) any later version.
21 .\" This program is distributed in the hope that it will be useful, but
22 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
23 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 .\" General Public License for more details.
26 .\" You should have received a copy of the GNU General Public License
27 .\" along with this program. If not, see
28 .\" <http://www.gnu.org/licenses/>.
31 .\" Save and disable compatibility mode (for, e.g., Solaris 10/11).
32 .do nr *groff_groff_mom_7_man_C \n[.cp]
35 .\" Define fallback for groff 1.23's MR macro if the system lacks it.
37 .if !\n(.f .nr do-fallback 1 \" mandoc
38 .if \n(.g .if !d MR .nr do-fallback 1 \" older groff
39 .if !\n(.g .nr do-fallback 1 \" non-groff *roff
40 .if \n[do-fallback] \{\
45 . IR \%\\$1 (\\$2)\\$3
51 .\" ====================================================================
53 .\" ====================================================================
58 .\" ====================================================================
59 .\" .FONT (<font name> <text> [<font name> <text> ...])
61 .\" Print in different fonts: R, I, B, CR, CI, CB
64 . if (\\n[.$] = 0) \{\
69 . while (\\n[.$] >= 2) \{\
70 . as result \,\f[\\$1]\\$2
71 . if !"\\$1"P" .as result \f[P]\""
74 . if (\\n[.$] = 1) .as result \,\f[\\$1]
82 .\" ====================================================================
84 .\" ====================================================================
88 .RI [ option\~ .\|.\|.\&]
93 .RI [ option\~ .\|.\|.\&]
98 .\" ====================================================================
100 .\" ====================================================================
105 designed primarily to prepare documents for PDF and PostScript output.
109 provides macros in two categories: typesetting
110 and document processing.
112 The former provide access to
114 typesetting capabilities in ways that are simpler to master than
116 requests and escape sequences.
118 The latter provide highly customizable markup tags that allow the user
119 to design and output professional-looking documents with a minimum of
120 typesetting intervention.
126 produce PDF documents.
128 The documents include a PDF outline that appears in the navigation pane
129 panel of document viewers,
130 and may contain clickable internal and external links.
136 .MR gropdf @MAN1EXT@ ,
137 is used to generate the output.
142 .RB \[lq] "\-T ps" \[rq]
144 it still produces PDF,
145 but processing is delegated to
150 .MR grops @MAN1EXT@ .
152 Not all PDF features are available when
155 its primary use is to allow processing of files with embedded PostScript
157 .\" XXX: but we have PDFPIC now...so -Tps is necessary only for people
158 .\" who want to avoid use of unsafe mode?
166 format for the device specified with the
170 (In this installation,
172 is the default output device.)
177 comes with her own comprehensive documentation in HTML.
180 \[lq]Producing PDFs with
184 discusses preparation of PDF documents with
189 .\" ====================================================================
191 .\" ====================================================================
194 .I @MACRODIR@/\:mom.tmac
195 is a wrapper enabling the package to be loaded with
196 .RB \[lq] "groff \-m mom" \[rq].
200 .I @MACRODIR@/\:om.tmac
201 implements the package.
205 .I @HTMLDOCDIR@/\:mom/\:toc.html
206 is the entry point to the HTML documentation.
210 .I @PDFDOCDIR@/\:mom\-pdf.pdf
211 is \[lq]Producing PDFs with
215 by Deri James and Peter Schaffter.
219 .IR @EXAMPLEDIR@/\:mom/\: * .mom
225 .\" ====================================================================
227 .\" ====================================================================
229 .\" ====================================================================
230 .SS "Escape sequences"
231 .\" ====================================================================
234 .FONT B \[rs]*[ I <colorname> B ]
235 begin using an initialized colour inline
239 .FONT B \[rs]*[BCK I " n" B ]
240 move backward in a line
245 invoke pseudo bold inline (related to macro
251 off pseudo bold inline (related to macro
256 .FONT B \[rs]*[BU I " n" B ]
257 move characters pairs closer together inline (related to macro
263 invoke pseudo condensing inline (related to macro
269 off pseudo condensing inline (related to macro
274 .FONT B \[rs]*[CONDSUP] R .\|.\|. B \[rs]*[CONDSUPX]
275 pseudo-condensed superscript
279 .FONT B \[rs]*[DOWN I " n" B ]
280 temporarily move downward in a line
285 mark initial line of a range of line numbers (for use with line
291 invoke pseudo extending inline (related to macro
297 off pseudo condensing inline (related to macro
302 .FONT B \[rs]*[EXTSUP] R .\|.\|. B \[rs]*[EXTSUPX]
303 pseudo extended superscript
307 .FONT B \[rs]*[FU I " n" B ]
308 move characters pairs further apart inline (related to macro
313 .FONT B \[rs]*[FWD I " n" B ]
314 move forward in a line
319 insert leaders at the end of a line
324 draw a full measure rule
328 .FONT B \[rs]*[SIZE I " n" B ]
329 change the point size inline (related to macro
335 invoke pseudo italic inline (related to macro
341 off pseudo italic inline (related to macro
346 .FONT B \[rs]*[ST I <n> B ] R .\|.\|. B \[rs]*[ST I <n> B X]
347 string tabs (mark tab positions inline)
351 .FONT B \[rs]*[SUP] R .\|.\|. B \[rs]*[SUPX]
363 .FONT B \[rs]*[UL] R .\|.\|. B \[rs]*[ULX]
364 invoke underlining inline (fixed width fonts only)
368 .FONT B \[rs]*[UP I " n" B ]
369 temporarily move upward in a line
372 .\" ====================================================================
374 .\" ====================================================================
378 set the linespacing relative to the point size
388 break a justified line
393 set line-by-line quad centre
398 set the amount to pseudo condense
403 break a line without advancing on the page
408 set the amount to pseudo extend
413 establish a fallback font (for missing fonts)
423 .BI ".FAMILY " <family>
430 set the font style (roman, italic, etc.)
434 .BI ".HI [" " <measure> " ]
440 automatic hyphenation on/off
445 set automatic hyphenation parameters
449 .BI ".IB [" " <left measure> <right measure> " ]
459 .BI ".IL [" " <measure> " ]
474 .BI ".IR [" " <measure> " ]
485 justify text to both margins
490 automatic character pair kerning on/off
495 set a left margin (page offset)
500 set line-by-line quad left
510 set a linespacing (leading)
515 set explicit page dimensions and margins
520 set a custom page width
525 set a custom page length
529 .BI .PAPER " <paper_type>"
530 set common paper sizes (letter, A4, etc)
540 "justify" text left, centre, or right
550 set line-by-line quad right
555 set the amount of emboldening
560 set the degree of slant
570 set the sentence space size
579 .BI ".TI [" " <measure> " ]
580 temporary left indent
585 set the minimum word space size
588 .\" ====================================================================
589 .SH "Documentation of details"
590 .\" ====================================================================
592 .\" ====================================================================
593 .SS "Details of inline escape sequences in alphabetical order"
594 .\" ====================================================================
597 .FONT B \[rs]*[ I <colorname> B ]
598 begin using an initialized colour inline
602 .FONT B \[rs]*[BCK I " n" B ]
603 move backward in a line
606 .\" ====================================================================
608 .\" ====================================================================
619 begins emboldening type.
622 turns the feature off.
624 Both are inline escape sequences;
626 they should not appear as separate lines,
627 but rather be embedded in text lines, like this:
630 .FONT R "Not " B \[rs]*[BOLDER] R everything B \[rs]*[BOLDERX] \
636 Alternatively, if you wanted the whole line emboldened, you should do
639 .FONT B \[rs]*[BOLDER] R "Not everything is as it seems." \
646 is invoked, it remains in effect until turned off.
649 Note: If you're using the document processing macros with
650 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
659 .\" ====================================================================
661 .\" ====================================================================
663 .FONT B \[rs]*[BU I " n" B ]
664 move characters pairs closer together inline (related to macro
668 .\" ====================================================================
670 .\" ====================================================================
675 Pseudo-condensing on/off
681 begins pseudo-condensing type.
684 turns the feature off.
686 Both are inline escape sequences;
688 they should not appear as separate lines,
689 but rather be embedded in text lines, like this:
692 .FONT B \[rs]*[COND] I "Not everything is as it seems." B \[rs]*[CONDX]
696 remains in effect until you turn it off with
697 .BR \%\[rs]*[CONDX] .
700 IMPORTANT: You must turn
702 off before making any changes to the point size of your type, either
707 inline escape sequence.
709 If you wish the new point size to be pseudo-condensed, simply reinvoke
715 must be turned off before changing the condense percentage with
719 Note: If you're using the document processing macros with
720 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
729 .\" ====================================================================
731 .\" ====================================================================
733 .FONT B \[rs]*[CONDSUP] R .\|.\|. B \[rs]*[CONDSUPX]
734 pseudo-condensed superscript
737 .\" ====================================================================
739 .\" ====================================================================
741 .FONT B \[rs]*[DOWN I " n" B ]
742 temporarily move downward in a line
745 .\" ====================================================================
747 .\" ====================================================================
750 mark initial line of a range of line numbers (for use with line
754 .\" ====================================================================
756 .\" ====================================================================
761 Pseudo-extending on/off
767 begins pseudo-extending type.
770 turns the feature off.
772 Both are inline escape sequences;
774 they should not appear as separate lines,
775 but rather be embedded in text lines, like this:
778 .FONT B \[rs]*[EXT] I "Not everything is as it seems." B \[rs]*[EXTX]
782 remains in effect until you turn it off with
786 IMPORTANT: You must turn
788 off before making any changes to the point size of your type, either
793 inline escape sequence.
795 If you wish the new point size to be
796 .IR \%pseudo-extended ,
803 must be turned off before changing the extend percentage with
807 Note: If you are using the document processing macros with
808 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
817 .\" ====================================================================
819 .\" ====================================================================
821 .FONT B \[rs]*[EXTSUP] R .\|.\|. B \[rs]*[EXTSUPX]
822 pseudo extended superscript
825 .\" ====================================================================
827 .\" ====================================================================
829 .FONT B \[rs]*[FU I " n" B ]
830 move characters pairs further apart inline (related to macro
834 .\" ====================================================================
836 .\" ====================================================================
838 .FONT B \[rs]*[FWD I " n" B ]
839 move forward in a line
842 .\" ====================================================================
844 .\" ====================================================================
847 insert leaders at the end of a line
850 .\" ====================================================================
852 .\" ====================================================================
855 draw a full measure rule
858 .\" ====================================================================
860 .\" ====================================================================
862 .FONT B \[rs]*[SIZE I " n" B ]
863 change the point size inline (related to macro
867 .\" ====================================================================
869 .\" ====================================================================
881 .I pseudo-italicizing
885 turns the feature off.
887 Both are inline escape sequences;
889 they should not appear as separate lines,
890 but rather be embedded in text lines, like this:
893 .FONT R "Not " B \[rs]*[SLANT] R everything B \[rs]*[SLANTX] \
899 Alternatively, if you wanted the whole line
900 .IR pseudo-italicized ,
904 .FONT B \[rs]*[SLANT] R "Not everything is as it seems." \
912 is invoked, it remains in effect until turned off.
915 Note: If you're using the document processing macros with
916 .BR "\%.PRINTSTYLE \%TYPEWRITE" ,
918 underlines pseudo-italics by default.
920 To change this behaviour, use the special macro
921 .BR .SLANT_MEANS_SLANT .
926 .\" ====================================================================
928 .\" ====================================================================
930 .FONT B \[rs]*[ST I <number> B ] R .\|.\|. B \[rs]*[ST I <number> B X]
931 Mark positions of string tabs
949 in order for these inlines to function properly.
956 String tabs need to be marked off with inline escape sequences before
957 being set up with the
961 Any input line may contain string tab markers.
964 above, means the numeric identifier of the tab.
967 The following shows a sample input line with string tab markers.
970 .BR \[rs]*[ST1] "De minimus" \[rs]*[ST1X] \c
971 .RB "non curat" \[rs]*[ST2] lex \[rs]*[ST2X] .
978 begins at the start of the line and ends after the word
988 .I Inline escape sequences
994 or horizontal movements, including padding) are taken into account
1006 Up to nineteen string tabs may be marked (not necessarily all on the
1007 same line, of course), and they must be numbered between 1 and 19.
1010 Once string tabs have been marked in input lines, they have to be
1014 after which they may be called, by number, with
1018 Note: Lines with string tabs marked off in them are normal input
1019 lines, i.e.\& they get printed, just like any input line.
1021 If you want to set up string tabs without the line printing, use the
1029 processes input lines and turns them into output lines, it is not
1034 the correct starting position of string tabs marked off in lines that
1035 are centered or set flush right.
1038 Equally, she cannot guess the starting position if a line is fully
1039 justified and broken with
1043 In other words, in order to use string tabs,
1045 must be active, or, if
1049 are active, the line on which the
1051 are marked must be broken
1059 To circumvent this behaviour, I recommend using the
1061 to set up string tabs in centered or flush right lines.
1063 Say, for example, you want to use a
1067 the text of a centered line with a rule.
1073 .B \[rs]*[ST1]A line of text\[rs]*[ST1X]\[rs]c
1088 \&.PAD "#\[rs]*[ST1]A line of text\[rs]*[ST1X]#"
1094 \&\[rs]" You can\[aq]t use \[rs]*[UP] or \[rs]*[DOWN] with \[rs]*[RULE].
1103 .\" ====================================================================
1105 .\" ====================================================================
1107 .FONT B \[rs]*[SUP] R .\|.\|. B \[rs]*[SUPX]
1111 .\" ====================================================================
1113 .\" ====================================================================
1121 .\" ====================================================================
1123 .\" ====================================================================
1125 .FONT B \[rs]*[UL] R .\|.\|. B \[rs]*[ULX]
1126 invoke underlining inline (fixed width fonts only)
1129 .\" ====================================================================
1131 .\" ====================================================================
1133 .FONT B \[rs]*[UP I " n" B ]
1134 temporarily move upward in a line
1137 .\" ====================================================================
1138 .SS "Details of macros in alphabetical order"
1139 .\" ====================================================================
1141 .\" ====================================================================
1143 .\" ====================================================================
1146 set the linespacing relative to the point size
1149 .\" ====================================================================
1151 .\" ====================================================================
1153 .BI .B_MARGIN " <bottom margin>"
1159 Requires a unit of measure
1163 sets a nominal position at the bottom of the page beyond which you
1164 don't want your type to go.
1166 When the bottom margin is reached,
1170 .B .B_MARGIN requires a unit of measure.
1172 Decimal fractions are allowed.
1174 To set a nominal bottom margin of 3/4 inch, enter
1182 Obviously, if you haven't spaced the type on your pages so that the
1183 last lines fall perfectly at the bottom margin, the margin will vary
1186 Usually, but not always, the last line of type that fits on a page
1187 before the bottom margin causes mom to start a new page.
1190 Occasionally, owing to a peculiarity in
1192 an extra line will fall below the nominal bottom margin.
1194 If you're using the document processing macros, this is unlikely to
1195 happen; the document processing macros are very hard-nosed about
1196 aligning bottom margins.
1199 Note: The meaning of
1201 is slightly different when you're using the document processing
1207 .\" ====================================================================
1209 .\" ====================================================================
1211 .BI \%.FALLBACK_FONT " <fallback font> " "[ ABORT | WARN ]"
1217 In the event that you pass an invalid argument to
1219 (i.e.\& a non-existent
1222 by default, uses the
1223 .IR "fallback font" ,
1224 .B Courier Medium Roman
1226 in order to continue processing your file.
1229 If you'd prefer another
1230 .IR "fallback font" ,
1239 For example, if you'd rather the
1242 .BR "Times Roman Medium Roman" ,
1245 .B .FALLBACK_FONT TR
1252 issues a warning whenever a
1256 does not exist, either because you haven't registered the style
1259 does not exist in the current
1266 then aborts, which allows you to correct the problem.
1269 If you'd prefer that
1271 not abort on non-existent
1273 but rather continue processing using a
1274 .IR "fallback font" ,
1279 either by itself, or in conjunction with your chosen
1280 .IB "fallback font" .
1283 Some examples of invoking
1284 .BR \%.FALLBACK_FONT :
1287 .B .FALLBACK_FONT WARN
1289 will issue a warning whenever you try to access a non-existent
1291 but will continue processing your file with the default
1292 .IR "fallback font" ,
1293 .BR "Courier Medium Roman" .
1297 .B .FALLBACK_FONT TR WARN
1299 will issue a warning whenever you try to access a non-existent
1301 but will continue processing your file with a
1304 .BR "Times Roman Medium Roman" ;
1309 whenever you try to access a
1311 that does not exist.
1314 .B .FALLBACK_FONT TR ABORT
1316 will abort whenever you try to access a non-existent
1321 whenever you try to access a
1323 that does not exist.
1325 If, for some reason, you want to revert to
1328 .B \%".FALLBACK_FONT ABORT"
1331 will once again abort on
1337 .\" ====================================================================
1339 .\" ====================================================================
1341 .BI .FAM " <family>"
1347 .\" ====================================================================
1349 .\" ====================================================================
1351 .BI .FAMILY " <family>"
1360 takes one argument: the name of the
1365 comes with a small set of basic families, each identified by a 1-,
1366 2- or 3-letter mnemonic.
1368 The standard families are:
1371 .B "A = Avant Garde"
1374 .B "HN = Helvetica Narrow"
1375 .B "N = New Century Schoolbook"
1377 .B "T = Times Roman"
1378 .B "ZCM = Zapf Chancery"
1383 The argument you pass to
1385 is the identifier at left, above.
1387 For example, if you want
1397 Note: The font macro
1399 lets you specify both the type
1401 and the desired font with a single macro.
1403 While this saves a few
1404 keystrokes, I recommend using
1410 except where doing so is genuinely inconvenient.
1414 only exists in one style:
1425 makes more sense than setting the
1435 Additional note: If you are running a
1446 will set all type up to the next
1448 request in the fallback font.
1462 etc) currently in use (if the font style exists in the new
1464 and will continue to use the same font style in the new family.
1468 .BI ".FAMILY BM " "\[rs]"" Bookman family"
1469 .BI ".FT I " "\[rs]"" Medium Italic"
1470 .I <some text> \[rs]" Bookman Medium Italic
1471 .BI ".FAMILY H " "\[rs]"" Helvetica family"
1472 .I <more text> \[rs]" Helvetica Medium Italic
1477 However, if the font style does not exist in the new family,
1479 will set all subsequent type in the fallback font (by default,
1482 until she encounters a
1484 request that's valid for the
1488 For example, assuming you don't have the font
1489 .B Medium Condensed Roman
1498 .BI ".FAMILY UN " "\[rs]"" Univers family"
1499 .BI ".FT CD " "\[rs]"" Medium Condensed"
1500 .I <some text> \[rs]" Univers Medium Condensed
1501 .BI ".FAMILY H " "\[rs]"" Helvetica family"
1502 .I <more text> \[rs]" Courier Medium Roman!
1507 In the above example, you must follow
1511 request that's valid for
1515 Please see the Appendices,
1518 for information on adding fonts and families to
1519 .IR groff , as well as to
1520 see a list of the extensions
1532 Suggestion: When adding
1535 I recommend following the established standard for the naming families
1538 For example, if you add the
1540 family, name the font files
1550 .B GARAMOND then becomes a valid
1555 (You could, of course, shorten
1579 .\" ====================================================================
1581 .\" ====================================================================
1583 .BI ".FONT R | B | BI | " "<any other valid font style>"
1588 .\" ====================================================================
1590 .\" ====================================================================
1592 .BI ".FT R | B | BI | " "<any other valid font style>"
1602 to take one of four possible arguments specifying the desired font:
1605 .B R = (Medium) Roman
1606 .B I = (Medium) Italic
1613 For example, if your
1637 considerably extends the range of arguments you can pass to
1639 making it more convenient to add and access fonts of differing weights
1640 and shapes within the same family.
1643 Have a look here for a list of the weight/style arguments
1647 Be aware, though, that you must have the fonts, correctly installed
1648 and named, in order to use the arguments.
1651 .I Adding fonts to groff
1652 for instructions and information.)
1654 Please also read the
1656 found in the description of the
1664 reacts to an invalid argument to
1666 depends on which version of
1672 version is 1.19.2 or later,
1674 will issue a warning and,
1675 depending on how you've set up the fallback font,
1676 either continue processing using the fallback font,
1678 (allowing you to correct the problem).
1680 In earlier versions,
1682 will silently continue processing,
1683 using either the fallback font or the font that was in effect prior to
1691 will also accept, as an argument, a full
1704 will set subsequent type in
1709 However, I strongly recommend keeping
1713 separate except where doing so is genuinely inconvenient.
1716 For inline control of
1726 .\" ====================================================================
1728 .\" ====================================================================
1730 .BI "\%.HI [" " <measure> " ]
1731 Hanging indent \[em] the optional argument requires a unit of measure.
1736 A hanging indent looks like this:
1739 The thousand injuries of Fortunato I had borne as best I
1740 could, but when he ventured upon insult, I vowed
1741 revenge.\& You who so well know the nature of my soul
1742 will not suppose, however, that I gave utterance to a
1743 threat, at length I would be avenged.\|.\|.
1747 The first line of text
1754 .IR "hanging indents" ,
1755 you must first have a
1757 active (set with either
1763 will not hang text outside the
1773 The first time you invoke
1778 If you want the first line of a paragraph to
1790 Subsequent invocations of
1792 do not require you to supply a
1795 keeps track of the last measure you gave it.
1798 Generally speaking, you should invoke
1800 immediately prior to the line you want hung (i.e.\& without any
1801 intervening control lines).
1805 affect only one line, there's no need to turn them off.
1818 Each time you pass a measure to
1820 the measure is treated literally.
1824 A numbered list using
1830 has macros for setting lists.
1832 This recipe exists to demonstrate the use of
1837 \&.PAGE 8.5i 11i 1i 1i 1i 1i
1845 \&.IL \[rs]w\[aq]\[rs]0\[rs]0.\[aq]
1846 \&.HI \[rs]w\[aq]\[rs]0\[rs]0.\[aq]
1847 1.\[rs]0The most important point to be considered is whether
1848 the answer to the meaning of Life, the Universe, and
1849 Everything really is 42.\& We have no one\[aq]s word on the
1850 subject except Mr.\& Adams\[aq]s.
1852 2.\[rs]0If the answer to the meaning of Life, the Universe,
1853 and Everything is indeed 42, what impact does this have on
1854 the politics of representation?\& 42 is, after all not a
1855 prime number.\& Are we to infer that prime numbers don\[aq]t
1856 deserve equal rights and equal access in the universe?
1858 3.\[rs]0If 42 is deemed non-exclusionary, how do we present
1859 it as the answer and, at the same time, forestall debate
1860 on its exclusionary implications?
1865 First, we invoke a left indent with a measure equal to the width of 2
1866 figures spaces plus a period (using the \[rs]w inline escape).
1868 At this point, the left indent is active; text afterward would
1869 normally be indented.
1871 However, we invoke a hanging indent of exactly the same width, which
1872 hangs the first line (and first line only!\&) to the left of the indent
1873 by the same distance (in this case, that means \[lq]out to the left
1876 Because we begin the first line with a number, a period, and a figure
1877 space, the actual text
1878 .RI ( "The most important point.\|.\|.\&" )
1879 starts at exactly the same spot as the indented lines that follow.
1882 Notice that subsequent invocations of
1889 Paste the example above into a file and preview it with
1892 .B pdfmom filename.mom | ps2pdf \- filename.pdf
1895 to see hanging indents in action.
1900 .\" ====================================================================
1901 .\" IB - INDENT BOTH
1902 .\" ====================================================================
1904 .BI "\%.IB [" " <left measure> <right measure> " ]
1905 Indent both \[em] the optional argument requires a unit of measure
1911 allows you to set or invoke a left and a right indent at the same time.
1914 At its first invocation, you must supply a measure for both indents;
1915 at subsequent invocations when you wish to supply a measure, both must
1922 the measures are added to the values previously passed to the
1925 Hence, if you wish to change just one of the values, you must give an
1926 argument of zero to the other.
1929 .I A word of advice:
1930 If you need to manipulate left and right indents separately, use a
1938 You'll save yourself a lot of grief.
1943 may be prepended to the arguments to subtract from their current
1946 The \[rs]w inline escape may be used to specify text-dependent
1947 measures, in which case no unit of measure is required.
1952 .B .IB \[rs]w\[aq]margarine\[aq] \[rs]w\[aq]jello\[aq]
1955 left indents text by the width of the word
1957 and right indents by the width of
1966 with no argument indents by its last active values.
1968 See the brief explanation of how mom handles indents for more details.
1976 automatically cancels any active indents.
1982 automatically turns off
1990 .\" ====================================================================
1991 .\" IL - INDENT LEFT
1992 .\" ====================================================================
1994 .BI "\%.IL [" " <measure> " ]
1995 Indent left \[em] the optional argument requires a unit of measure
2001 indents text from the left margin of the page, or if you're in a
2003 from the left edge of the
2010 is applied uniformly to every subsequent line of text, even if you
2011 change the line length.
2014 The first time you invoke
2016 you must give it a measure.
2018 Subsequent invocations with a measure add to the previous measure.
2020 A minus sign may be prepended to the argument to subtract from the
2025 inline escape may be used to specify a text-dependent measure, in
2026 which case no unit of measure is required.
2031 .B .IL \[rs]w\[aq]margarine\[aq]
2034 indents text by the width of the word
2040 indents by its last active value.
2042 See the brief explanation of how
2044 handles indents for more details.
2052 automatically cancels any active indents.
2058 automatically turns off
2064 .\" ====================================================================
2065 .\" IQ - quit any/all indents
2066 .\" ====================================================================
2068 .BI "\%.IQ [" " <measure> " ]
2069 IQ \[em] quit any/all indents
2075 The original macro for quitting all indents was
2078 This usage has been deprecated in favour of
2082 will continue to behave as before, but
2084 will issue a warning to
2086 indicating that you should update your documents.
2089 As a consequence of this change,
2094 may now also be invoked as
2100 Both forms are acceptable.
2103 Without an argument, the macros to quit indents merely restore your
2104 original margins and line length.
2106 The measures stored in the indent macros themselves are saved so you
2107 can call them again without having to supply a measure.
2110 If you pass these macros the optional argument
2112 they not only restore your original left margin and line length, but
2113 also clear any values associated with a particular indent style.
2115 The next time you need an indent of the same style, you have to supply
2120 as you'd suspect, quits and clears the values for all indent
2126 .\" ====================================================================
2127 .\" IR - INDENT RIGHT
2128 .\" ====================================================================
2130 .BI "\%.IR [" " <measure> " ]
2131 Indent right \[em] the optional argument requires a unit of measure
2137 indents text from the
2139 of the page, or if you're in a
2145 The first time you invoke
2147 you must give it a measure.
2149 Subsequent invocations with a measure add to the previous indent
2154 may be prepended to the argument to subtract from the current indent
2157 The \[rs]w inline escape may be used to specify a text-dependent
2158 measure, in which case no
2165 .B .IR \[rs]w\[aq]jello\[aq]
2168 indents text by the width of the word
2174 indents by its last active value.
2176 See the brief explanation of how
2178 handles indents for more details.
2186 automatically cancels any active indents.
2192 automatically turns off
2198 .\" ====================================================================
2200 .\" ====================================================================
2202 .BI .L_MARGIN " <left margin>"
2208 L_MARGIN establishes the distance from the left edge of the printer
2209 sheet at which you want your type to start.
2211 It may be used any time,
2212 and remains in effect until you enter a new value.
2215 Left indents and tabs are calculated from the value you pass to
2217 hence it's always a good idea to invoke it before starting any serious
2220 A unit of measure is required.
2222 Decimal fractions are allowed.
2225 to set the left margin at 3 picas (1/2 inch),
2240 If you use the macros
2247 (either before or afterward),
2257 behaves in a special way when you're using the document processing
2263 .\" ====================================================================
2264 .\" MCO - BEGIN MULTI-COLUMN SETTING
2265 .\" ====================================================================
2268 Begin multi-column setting.
2273 .RI ( "Multi-Column On" )
2277 .IR "multi-column setting" .
2279 It marks the current baseline as the top of your columns, for use
2283 See the introduction to columns for an explanation of
2285 and some sample input.
2293 macro in the document processing macros.
2298 .\" ====================================================================
2299 .\" MCR - RETURN TO TOP OF COLUMN
2300 .\" ====================================================================
2310 .IR "top of your columns" . \" XXX: Are italics truly required here?
2313 .\" ====================================================================
2314 .\" MCX - EXIT MULTI-COLUMNS
2315 .\" ====================================================================
2317 .BI "\%.MCX [ " "<distance to advance below longest column>" " ]"
2318 Optional argument requires a unit of measure.
2327 takes you out of any
2329 you were in (by silently invoking
2331 and advances to the bottom of the longest column.
2334 Without an argument,
2338 below the longest column.
2341 Linespace, in this instance, is the leading in effect at the moment
2352 below the longest column (see above)
2354 the distance specified by the argument.
2356 The argument requires a unit of measure; therefore, to advance an
2357 extra 6 points below where
2359 would normally place you, you'd enter
2368 If you wish to advance a precise distance below the baseline of the
2375 required) in conjunction with the
2385 The above advances to precisely
2387 below the baseline of the longest column.
2392 .\" ====================================================================
2393 .\" Start a new Page
2394 .\" ====================================================================
2401 Whenever you want to start a new page, use
2403 by itself with no argument.
2406 will finish up processing the current page and move you to the top of
2407 a new one (subject to the top margin set with
2413 .\" ====================================================================
2415 .\" ====================================================================
2417 .BI ".PAGE " <width> " [ " <length> " [ " <lm> " [ " <rm> " [ " \
2418 <tm> " [ " <bm> " ] ] ] ] ]"
2423 All arguments require a unit of measure
2427 If you're using the document processing macros,
2432 Otherwise, it should go at the top of a document, prior to any text.
2434 And remember, when you're using the document processing macros, top
2435 margin and bottom margin mean something slightly different than when
2436 you're using just the typesetting macros (see Top and bottom margins
2437 in document processing).
2441 lets you establish paper dimensions and page margins with a single
2444 The only required argument is page width.
2447 optional, but they must appear in order and you can't skip over
2455 refer to the left, right, top and bottom margins respectively.
2458 Assuming your page dimensions are 11 inches by 17 inches, and that's
2459 all you want to set, enter
2466 If you want to set the left margin as well, say, at 1 inch,
2468 would look like this:
2476 Now suppose you also want to set the top margin,
2483 in the optional arguments, but you can't skip over any arguments,
2484 therefore to set the top margin, you must also give a right margin.
2488 macro would look like this:
2492 \&.PAGE 11i 17i 1i 1i 1.5i
2494 required right---+ +---top margin
2503 is best used when you want a convenient way to tell
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
2510 .B .PAGE 8.5i 11i 45p 45p 45p 45p
2514 This sets up an 8\(12 by 11 inch page with margins of 45 points
2515 (5/8-inch) all around.
2518 Additionally, if you invoke
2520 with a top margin argument, any macros you invoke after
2522 will almost certainly move the baseline of the first line of text down
2531 immediately before entering any text, or, if it's feasible, make
2533 the last macro you invoke prior to entering text.
2538 on page dimensions and papersize for information on ensuring
2542 dimensions and margins.
2547 .\" ====================================================================
2549 .\" ====================================================================
2551 .BI .PAGELENGTH " <length of printer sheet>"
2554 how long your printer sheet is.
2564 your printer sheet is 11 inches long, you enter
2571 Please read the important note on page dimensions and papersize for
2572 information on ensuring
2580 .\" ====================================================================
2582 .\" ====================================================================
2584 .BI .PAGEWIDTH " <width of printer sheet>"
2591 is the width of your printer sheet.
2595 requires a unit of measure.
2597 Decimal fractions are allowed.
2601 that the width of your printer sheet is 8\(12 inches, you enter
2609 Please read the Important note on page dimensions and papersize for
2610 information on ensuring
2618 .\" ====================================================================
2620 .\" ====================================================================
2622 .BI .PAPER " <paper type>"
2623 provides a convenient way to set the page dimensions for some common
2624 printer sheet sizes.
2649 .\" ====================================================================
2650 .\" PT_SIZE - POINT SIZE OF TYPE
2651 .\" ====================================================================
2653 .BI .PT_SIZE " <size of type in points>"
2654 Point size of type, does not require a
2655 .IR "unit of measure" .
2661 .RI ( "Point Size" )
2662 takes one argument: the
2667 Unlike most other macros that establish the
2673 does not require that you supply a
2675 since it's a near universal convention that
2680 Therefore, to change the
2727 then later reset it to
2738 can also be changed inline.
2742 It is unfortunate that the
2744 preprocessor has already taken the name, PS, and thus
2750 However, if you aren't using
2752 you might want to alias
2756 since there'd be no conflict.
2761 .B .ALIAS PS PT_SIZE
2764 would allow you to set
2772 .\" ====================================================================
2774 .\" ====================================================================
2776 .BI .R_MARGIN " <right margin>"
2782 Requires a unit of measure.
2787 if used, must come after
2793 (if a right margin isn't given to PAGE).
2797 calculates line length from the overall page dimensions and the left
2801 Obviously, it can't make the calculation if it doesn't know the page
2802 width and the left margin.
2806 establishes the amount of space you want between the end of typeset
2807 lines and the right hand edge of the printer sheet.
2809 In other words, it sets the line length.
2811 requires a unit of measure.
2813 Decimal fractions are allowed.
2816 The line length macro (LL) can be used in place of
2819 In either case, the last one invoked sets the line length.
2821 The choice of which to use is up to you.
2823 In some instances, you may find it easier to think of a section of
2824 type as having a right margin.
2826 In others, giving a line length may make more sense.
2829 For example, if you're setting a page of type you know should have
2830 6-pica margins left and right, it makes sense to enter a left and
2831 right margin, like this:
2840 That way, you don't have to worry about calculating the line
2843 On the other hand, if you know the line length for a patch of type
2844 should be 17 picas and 3 points, entering the line length with LL is
2845 much easier than calculating the right margin, e.g.,
2853 If you use the macros
2867 If you set a line length after these macros (with
2869 the line length calculated by
2871 is, of course, overridden.
2876 behaves in a special way when you're using the document processing
2882 .\" ====================================================================
2883 .\" ST - Set String Tabs
2884 .\" ====================================================================
2886 .FONT B .ST I " <tab number> " B "L | R | C | J [ QUAD ]"
2892 have been marked off on an input line (see
2893 .BR \[rs]*[ST].\|.\|.\&\[rs]*[STX] ),
2896 them by giving them a direction and, optionally, the
2905 except that you don't have to give
2907 an indent or a line length (that's already taken care of, inline,
2909 .BR \[rs]*[ST].\|.\|.\&\[rs]*[STX] ).
2923 If you want it to be
2934 If you want it to be justified, enter
2944 .\" ====================================================================
2946 .\" ====================================================================
2948 .BI \%.TAB " <tab number>"
2951 have been defined (either with
2958 you pass it as an argument.
2975 breaks the line preceding it and advances 1 linespace.
2981 .B A line of text in tab 1.
2983 .B A line of text in tab 2.
2989 .B "A line of text in tab 1."
2990 .B " A line of text in tab 2."
2996 If you want the tabs to line up,
2999 (\[lq]Tab Next\[rq])
3002 the inline escape sequence
3007 A line of text in tab 1.\[rs]*[TB+]
3008 A line of text in tab 2.
3014 .B "A line of text in tab 1.\& A line of text in tab 2."
3020 If the text in your tabs runs to several lines, and you want the first
3021 lines of each tab to align, you must use the multi-column macros.
3025 Any indents in effect prior to calling a tab are automatically turned
3029 If you were happily zipping down the page with a left indent of
3031 turned on, and you call a
3033 whose indent from the left margin is
3035 your new distance from the
3040 I 6 picas plus the 2 pica
3045 are not by nature columnar, which is to say that if the text inside a
3047 runs to several lines, calling another
3049 does not automatically move to the baseline of the first line in the
3050 .IR "previous tab" .
3079 .\" ====================================================================
3080 .\" TB - Call Tabs Alias
3081 .\" ====================================================================
3083 .BI .TB " <tab number>"
3088 .\" ====================================================================
3089 .\" TI - TEMPORARY (LEFT) INDENT
3090 .\" ====================================================================
3092 .BI "\%.TI [" " <measure> " ]
3093 Temporary left indent \[em] the optional argument requires a
3099 A temporary indent is one that applies only to the first line of text
3100 that comes after it.
3102 Its chief use is indenting the first line of paragraphs.
3105 macro, for example, uses a
3106 .IR "temporary indent" .)
3109 The first time you invoke
3111 you must give it a measure.
3115 the first line of a paragraph by, say, 2 ems, do
3123 Subsequent invocations of
3125 do not require you to supply a measure;
3127 keeps track of the last measure you gave it.
3131 .I temporary indents
3132 are temporary, there's no need to turn them off.
3145 In the following example, the second
3152 .B The beginning of a paragraph.\|.\|.\&
3154 .B The beginning of another paragraph.\|.\|.\&
3162 .\" ====================================================================
3164 .\" ====================================================================
3180 without advancing on the page.
3184 in the description of the
3186 macro for an example of how
3193 that aren't given the
3195 argument when they're set up with
3199 you must terminate the line preceding
3203 inline escape sequence.
3205 Conversely, if you did give a
3212 .B \[rs]c must not be used.
3215 If you find remembering whether to put in the
3217 bothersome, you may prefer to use the inline escape alternative
3221 which works consistently regardless of the fill mode.
3225 You must put text in the input line immediately after
3232 In other words, you cannot do
3238 Some more text\[rs]c
3245 The above example, assuming
3257 Some more text\[rs]c
3265 \[rs]& is a zero-width, non-printing character that
3267 recognizes as valid input, hence meets the requirement for input text
3274 .\" ====================================================================
3276 .\" ====================================================================
3280 takes you out of whatever
3282 you were in, advances
3290 that were in effect prior to invoking any
3294 .\" ====================================================================
3296 .\" ====================================================================
3298 .BI .T_MARGIN " <top margin>"
3304 Requires a unit of measure
3308 establishes the distance from the top of the printer sheet at which
3309 you want your type to start.
3311 It requires a unit of measure, and decimal fractions are allowed.
3313 To set a top margin of 2\(12 centimetres, you'd enter
3321 calculates the vertical position of the first line of type on a page
3322 by treating the top edge of the printer sheet as a baseline.
3329 puts the baseline of the first line of type 1\(12 inches beneath the
3335 means something slightly different when you're using the document
3338 See Top and bottom margins in document processing for an explanation.
3343 does two things: it establishes the top margin for pages that come
3344 after it and it moves to that position on the current page.
3348 should only be used at the top of a file (prior to entering text) or
3349 after NEWPAGE, like this:
3361 .\" ====================================================================
3363 .\" ====================================================================
3367 .MT peter@\:schaffter\:.ca
3371 PDF support was provided by
3372 .MT deri@\:chuzzlewit\:.myzen\:.co\:.uk
3376 This manual page was written by Bernd Warken.
3379 .\" ====================================================================
3381 .\" ====================================================================
3384 .I @HTMLDOCDIR@/\:mom/\:toc\:.html
3385 entry point to the HTML documentation
3389 .UR http://\:www\:.schaffter\:.ca/\:mom/\:momdoc/\:toc\:.html
3391 HTML documentation online
3395 .UR http://\:www\:.schaffter\:.ca/\:mom/
3403 .IR "Groff: The GNU Implementation of troff" ,
3404 by Trent A.\& Fisher and Werner Lemberg,
3409 You can browse it interactively with \[lq]info groff\[rq].
3413 .MR pdfmom @MAN1EXT@ ,
3414 .MR groff @MAN1EXT@ ,
3415 .MR @g@troff @MAN1EXT@
3418 .\" Restore compatibility mode (for, e.g., Solaris 10/11).
3419 .cp \n[*groff_groff_mom_7_man_C]
3420 .do rr *groff_groff_mom_7_man_C
3423 .\" Local Variables:
3427 .\" vim: set filetype=groff textwidth=72: