2 .TH GROFF_MAN @MAN7EXT@ "@MDATE@" "groff @VERSION@"
4 groff_man \- GNU roff macro package for formatting man pages
7 .\" Save and disable compatibility mode (for, e.g., Solaris 10/11).
8 .do nr groff_man_C \n[.C]
12 .\" ====================================================================
14 .\" ====================================================================
16 .\" Copyright (C) 1999-2018 Free Software Foundation, Inc.
18 .\" Permission is granted to make and distribute verbatim copies of this
19 .\" manual provided the copyright notice and this permission notice are
20 .\" preserved on all copies.
22 .\" Permission is granted to copy and distribute modified versions of
23 .\" this manual under the conditions for verbatim copying, provided that
24 .\" the entire resulting derived work is distributed under the terms of
25 .\" a permission notice identical to this one.
27 .\" Permission is granted to copy and distribute translations of this
28 .\" manual into another language, under the above conditions for
29 .\" modified versions, except that this permission notice may be
30 .\" included in translations approved by the Free Software Foundation
31 .\" instead of in the original English.
34 .\" ====================================================================
36 .\" ====================================================================
51 .\" ====================================================================
53 .\" ====================================================================
59 is used to produce manual pages
60 .\" We use an unbreakable space \~ here to keep the phrase intact for
61 .\" its introduction; in subsequent discussion, that is not important.
63 like the one you are reading.
67 implementation was written by James Clark.
71 This document presents the macros thematically to aid learners;
72 for those needing only a quick reference,
73 the following table lists them alphabetically,
74 with cross-references to appropriate subsections below.
80 Macro Meaning Subsection
84 \&.B Bold Font style macros
85 \&.BI Bold, italic alternating Font style macros
86 \&.BR Bold, roman alternating Font style macros
87 \&.EE Example end Document structure macros
88 \&.EX Example begin Document structure macros
89 \&.I Italic Font style macros
90 \&.IB Italic, bold alternating Font style macros
91 \&.IP Indented paragraph Paragraph macros
92 \&.IR Italic, roman alternating Font style macros
93 \&.LP (Left) paragraph Paragraph macros
94 \&.ME Mail-to end Hyperlink and email macros
95 \&.MT Mail-to start Hyperlink and email macros
96 \&.OP (Command-line) option Command synopsis macros
97 \&.P Paragraph Paragraph macros
98 \&.PP Paragraph Paragraph macros
99 \&.RB Roman, bold alternating Font style macros
100 \&.RE Relative-indent end Document structure macros
101 \&.RI Roman, italic alternating Font style macros
102 \&.RS Relative-indent start Document structure macros
103 \&.SB Small bold Font style macros
104 \&.SH Section heading Document structure macros
105 \&.SM Small Font style macros
106 \&.SS Subection heading Document structure macros
107 \&.SY Synopsis start Command synopsis macros
108 \&.TH Title heading Document structure macros
109 \&.TP Tagged paragraph Paragraph macros
110 \&.TQ Tagged paragraph continuation Paragraph macros
111 \&.UE URL end Hyperlink and email macros
112 \&.UR URL start Hyperlink and email macros
113 \&.YS Synopsis end Command synopsis macros
118 Macros whose use we discourage
127 are described in subsection \(lqDeprecated features\(rq, below.
130 .\" ====================================================================
131 .SS "Macro reference preliminaries"
132 .\" ====================================================================
134 Each macro is described in a tagged paragraph.
136 Closely related macros,
141 are grouped together.
145 Optional macro arguments are indicated by surrounding them with square
148 If a macro accepts multiple arguments,
149 arguments containing whitespace must be double-quoted ("one two"),
150 to be interpreted correctly.
152 Most macro arguments are strings that will be output as text;
153 exceptions are noted.
159 is fundamentally a programming system for typesetting.
162 the verb \(lqto set\(rq is frequently used below in the sense \(lqto
166 .\" ====================================================================
167 .SS "Document structure macros"
168 .\" ====================================================================
170 The highest level of organization of a man page is determined by this
174 (title heading) identifies the document as a man page and defines
175 information enabling its indexing by
182 one of which is mandatory and many of which are standardized,
183 facilitate quick location of relevant material by the reader and aid
184 the man page writer to discuss all essential aspects of the topic.
188 are optional and permit sections that grow long to develop in a
191 Many technical discussions require examples;
193 especially those reflecting multiple lines of input to or output from
195 are usefully bracketed by
200 When none of the foregoing meets a structural demand,
201 a section of the discussion can be manually indented within
209 .BI .TH " title section"\c
210 .RI " [" footer-middle ]\c
211 .RI " [" footer-outside ]\c
212 .RI " [" header-middle ]
213 Define the title of the man page as
220 for details on the section numbers and suffixes applicable to your
226 are positioned together at the left and right in the header line
229 in parentheses immediately appended to
233 is centered in the footer line.
236 is positioned at the left in the footer line (or at the left on
237 even pages and at the right on odd pages if double-sided printing is
241 is centered in the header line.
245 is a simple integer between 1 and\~9 (inclusive),
246 or is exactly \(lq3p\(rq,
247 there is no need to specify
249 the macro package will supply text for it.
253 For HTML output, headers and footers are completely suppressed.
257 Additionally, this macro starts a new page; the page number is reset
261 option is given on the command line).
263 This feature is intended only for formatting multiple man pages.
267 A man page should contain exactly one
269 call at or near the beginning of the file,
270 prior to any other macro calls.
276 is the most recent modification date of the man page source document,
279 is the name and version or release of the project providing it.
287 as a section heading flush left.
291 up to the end of the line,
292 or the text on the next input line if
294 is given no arguments,
296 (or the font specified by the string register
298 slightly larger than the base font size.
301 the left margin and indentation affecting subsequent text are reset to
302 their default values.
304 Text on input lines after
306 is set as a normal paragraph
313 and ordering of sections has been standardized by common practice,
314 as has much of the layout of material within sections.
317 a section called \(lqName\(rq or \(lqNAME\(rq must exist,
318 must be the first section after the
321 and must contain only a line of the form
322 .RS \" Invisibly move left margin to current .IP indent.
323 .RS \" Now indent further, visibly.
325 .BR , " \&.\|.\|.\&]"
327 .I summary-description
328 .RE \" Move left margin back to .IP indentation.
329 for a man page to be properly indexed.
333 for the conventions prevailing on your system.
334 .RE \" Move left margin back to standard position.
339 .IR subheading-text ]
342 as a subsection heading indented (by default) partway between a section
343 heading and a normally-indented paragraph
348 up to the end of the line,
349 or the text on the next input line if
351 is given no arguments,
353 (or the font specified by the string register
355 at the base font size.
358 the left margin and indentation affecting subsequent text are reset to
359 their default values.
361 Text on input lines after
363 is set as a normal paragraph
371 Begin and end example.
375 filling and hyphenation are disabled and a constant-width (monospaced)
380 enables filling and restores the previous hyphenation setting and font.
383 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
385 Example regions are useful for formatting code,
387 and text file contents.
390 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
392 These macros are defined on many (but not all) legacy Unix systems
396 To be certain your page will be portable to those systems, copy
397 their definitions from the
407 Move the left margin to the right by the value
410 and by a default amount otherwise;
411 see subsection \(lqHorizontal and vertical spacing\(rq below.
416 each call increments by\~1 the indentation level used by
419 The indentation level prior to any
427 Move the left margin back to that corresponding to indentation level
430 If no argument is given, move the left margin one level back.
433 .\" ====================================================================
434 .SS "Paragraph macros"
435 .\" ====================================================================
439 is set at the current left margin,
440 which by default is indented from the left margin of the output device.
442 In man pages and other technical literature,
443 definition lists are frequently encountered;
444 these can be set as \(lqtagged paragraphs\(rq
448 which have one or more leading tags followed by a paragraph that has an
449 additional left indent.
451 The indented paragraph
453 macro is useful to continue the indented content of a narrative started
456 or to present an itemized or ordered list.
465 Begin a new paragraph;
466 these macros are synonymous.
468 They break the output line at the current position,
469 followed by a vertical space downward by a default amount
470 (which can be changed by the deprecated
474 The font size and style are reset to defaults;
475 see subsection \(lqFont style macros\(rq below.
477 Finally, the left margin and indentation are reset to default values.
483 Set a tagged, indented paragraph.
485 The input line following this macro,
488 is printed at the current left margin.
490 Subsequent text is indented by
493 and by a default amount otherwise;
494 see subsection \(lqHorizontal and vertical spacing\(rq below.
498 If the tag is not as wide as the indentation,
499 the paragraph starts on the same line as the tag,
500 at the applicable indentation,
501 and continues on the following lines.
504 the descriptive part of the paragraph begins on the line following the
508 The line containing the tag can include a macro call,
509 for instance to set the tag in bold with
515 was used to write the first paragraph of this description of
524 Set an additional tag for a paragraph tagged with
527 The pending output line is broken.
529 The tag on the input line following this macro and subsequent lines are
535 This macro is not defined on legacy Unix systems running classic
538 To be certain your page will be portable to those systems,
539 copy its definition from the
552 above were written using
562 Set an indented paragraph with an optional tag.
572 with the exception that the
576 cannot include a macro call.
579 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
581 Two convenient use cases for
586 .RS \" Invisibly move left margin to current .IP indent.
587 .RS \" Now indent further, visibly.
589 to start a new paragraph with the same indentation as the previous
601 to set a paragraph with a short
603 that is not semantically important,
604 such as a bullet (\(bu)\(emobtained with the \(oq\e(bu\(cq character
605 escape\(emor list enumerator,
606 as seen in this very paragraph.
607 .RE \" Move left margin back to .IP indentation.
608 .RE \" Move left margin back to standard position.
611 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
612 .\" ====================================================================
613 .SS "Command synopsis macros"
614 .\" ====================================================================
616 Command synopses are a staple of section\~1 and\~8 man pages.
618 These macros aid you to construct one that has the classical Unix
622 some tools are able to interpret these macros semantically and treat
623 them appropriately for localization and/or presentation.
625 A command synopsis is wrapped in
628 with command-line options of some formats indicated by
633 These macros are not defined on legacy Unix systems running classic
636 To be certain your page will be portable to those systems, copy
637 their definitions from the
648 Hyphenation is turned off.
652 argument is set in bold.
654 The output line is filled as normal,
655 but if a break is required,
656 subsequent output lines are indented by the width of
662 .BI .OP " option-name"\/\c
663 .RI " [" option-argument ]
664 Indicate an optional command parameter called
666 which is set in bold.
668 If the option takes an argument, specify
670 using a noun, abbreviation, or hyphenated noun phrase.
674 is preceded by a space and set in italics.
676 Square brackets (in roman) surround both arguments.
683 Restore indentation and hyphenation to previous values.
689 blocks can be specified,
690 for instance to distinguish differing modes of operation of a complex
693 each will be separated by a paragraph space.
698 can also be repeated multiple times before a closing
700 which is useful to indicate synonymous ways of invoking a particular
704 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
710 .\" from src/roff/groff/groff.1.man
713 \&.OP \e\-abcegiklpstzCEGNRSUVXZ
746 produces the following output.
752 .OP \-abcegiklpstzCEGNRSUVXZ
781 Several features of the above example are of note.
782 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
783 .\" TODO: Some of the normative discussion below can go there, too.
787 The empty request (.),
789 is used for vertical spacing in the input file for readability by the
792 Do not put empty lines in a
798 The command and option names are presented in
800 to cue the user that they should be input literally.
804 Option dashes are specified with the \(oq\e\-\(cq escape sequence;
805 this is an important practice to make them clearly visible and to
806 facilitate cut-and-paste from the rendered man page to a shell prompt or
811 Option arguments and command operands are presented in
813 (underlined on some output devices, such as terminals and emulators),
814 to cue the user that they must be replaced with appropriate text.
818 Symbols that are neither to be typed literally nor simply replaced
819 appear in the roman style;
820 brackets surround optional arguments,
821 and an ellipsis indicates that the previous syntactical element may be
822 repeated arbitrarily.
826 Some man pages use a brace-and-pipe notation such as
827 .RB \(lq{ \-\-diff | \-\-compare }\(rq
828 to indicate that one and only one of the \(oq|\(cq-separated items
829 within the braces must be input.
831 If this braced construct is furthermore surrounded by square brackets,
832 it means that at most one of the items is accepted.
836 Authors of man pages should note the use of the zero-width space
837 escape sequence \(oq\e&\(cq on both sides of the ellipsis;
838 this is a good practice to avoid surprises in the event the ellipsis
839 gets refilled in your text editor.
841 See \(lqPortability\(rq, below.
843 The morbidly curious may consult
845 regarding the narrow-space escape sequence \(oq\e|\(cq.
848 .\" ====================================================================
849 .SS "Hyperlink and email macros"
850 .\" ====================================================================
852 Email addresses are bracketed with
854 and URL hyperlinks with
859 These macros are not defined on legacy Unix systems running classic
862 To be certain your page will be portable to those systems, copy
863 their definitions from the
879 for a \(lqmailto:\(rq URI with the text between the two macro
880 calls as the link text.
886 is placed at the end of the link text without intervening space.
890 may not be visible in the output text,
891 particularly if the man page is being viewed as HTML.
893 On a device that is not a browser,
895 is set in angle brackets after the link text and before
899 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
903 to a TTY or PostScript output device,
908 \&.MT fred.foonly@\e:fubar.net
911 for more information.
917 displays as: \(lqContact Fred Foonly
918 \(lafred.foonly@\:fubar.net\(ra for more information.\(rq.
922 The use of \(oq\e:\(cq to insert hyphenless discretionary breaks is a
924 extension and can be omitted.
927 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
935 as an RFC 3986 URI hyperlink with the text between the two macro calls
942 is placed at the end of the link text without intervening space.
946 may not be visible in the output text,
947 particularly if the man page is being viewed as HTML.
949 On a device that is not a browser,
951 is set in angle brackets after the link text and before
955 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
959 to a TTY or PostScript output device,
963 The GNU Project of the Free Software Foundation hosts the
964 \&.UR https://\e:www.gnu.org/\e:software/\e:groff/
972 displays as: \(lqThe GNU Project of the Free Software Foundation hosts
974 \(lahttps://\:www.gnu.org/\:software/\:groff/\(ra.\(rq.
978 The use of \(oq\e:\(cq to insert hyphenless discretionary breaks is a
980 extension and can be omitted.
983 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
984 .\" ====================================================================
985 .SS "Font style macros"
986 .\" ====================================================================
990 macro package is limited in its font styling options,
995 and roman (the default).
997 Italic text is usually set underscored instead on terminals and other
1006 macros set text in roman or bold, respectively, at a smaller point size;
1007 these differ visually from regular-sized roman or bold text only on
1011 The foregoing macros cause word breaks before and after their arguments,
1012 but it is often necessary to set text in different styles without
1013 intervening whitespace.
1023 where \(oqB\(cq, \(oqI\(cq, and \(oqR\(cq indicate bold, italic, and
1024 roman, respectively,
1025 set their odd- and even-numbered arguments in alternating styles,
1026 with no whitespace separating them.
1030 Because font styles are presentational rather than semantic,
1031 conflicting traditions have arisen regarding which font styles should be
1032 used to mark file or path names,
1033 environment variables,
1035 and even man page cross-references.
1039 The default font size and family (for
1044 The default style is roman.
1054 If the macro is given no arguments,
1055 the text of the next input line is set in bold.
1058 .\" BEGIN USAGE (TODO: move to tutorial/style guide when we have it)
1061 for literal portions of syntax synopses,
1062 for command-line options in running text,
1063 and for literals that are major topics of the subject under discussion;
1065 this page uses bold for macro and register names.
1069 examples of interactive I/O (such as a shell session),
1070 set only the user-typed input in bold.
1074 .\" END USAGE (TODO: move to tutorial/style guide when we have it)
1082 If the macro is given no arguments,
1083 the text of the next input line is set in italics.
1086 .\" BEGIN USAGE (TODO: move to tutorial/style guide when we have it)
1089 for file and path names,
1090 for environment variables,
1091 for enumeration or preprocessor constants in C,
1092 for variable (user-determined) portions of syntax synopses,
1093 for the first occurrence only of a technical concept being introduced,
1094 for names of works of software
1095 (including commands and functions,
1096 .\" The following is an interesting exception that seems to have arisen
1097 .\" organically and nearly universally.
1098 but excluding names of operating systems or their kernels),
1099 and anywhere a parameter requiring replacement by the user is
1102 An exception involves variable text in a context that is already marked
1104 such as file or path names with variable components;
1106 follow the convention of mathematical typography:
1107 set the file or path name in italics as usual
1111 but use roman for the variable part,
1112 and italics again in running roman text when referring to the variable
1116 .\" END USAGE (TODO: move to tutorial/style guide when we have it)
1122 one point size smaller than the default size.
1124 If the macro is given no arguments,
1125 the text of the next input line is set smaller.
1135 at the normal font size instead.
1139 to communicate semantic information distinct from using roman style at
1141 it will be hidden from readers using such devices.
1150 one point size smaller than the default size.
1152 If the macro is given no arguments,
1153 the text of the next input line is set smaller and in bold.
1163 in bold at the normal font size instead.
1167 to communicate semantic information distinct from using bold style at
1169 it will be hidden from readers using such devices.
1172 .\" BEGIN USAGE (TODO: move to tutorial/style guide when we have it)
1176 prescribed for setting in bold or italics above:
1177 elements of \(lqsynopsis language\(rq such as ellipses and brackets
1179 proper names and adjectives;
1180 titles of anything other than works of literature or software;
1181 identifiers for standards documents or technical reports such as
1188 and occurrences after the first of a technical term or piece of jargon.
1191 the names of operating systems and their kernels are,
1192 by practically universal convention,
1197 Be frugal with the use of italics for emphasis,
1198 and particularly with the use of bold.
1200 Brief runs of literal text,
1201 such as references to individual characters or short strings,
1202 including section and subsection headings of man pages,
1203 are suitable objects for quotation;
1210 escapes in subsection \(lqPortability\(rq below.
1213 .\" END USAGE (TODO: move to tutorial/style guide when we have it)
1215 Unlike the above font style macros,
1216 the font alternation macros below accept only arguments on the same
1217 line as the macro call.
1219 If whitespace is required within one of the arguments,
1220 first consider whether the same result could be achieved with as much
1221 clarity by using the single-style macros on separate input lines.
1224 double-quote an argument with one or more embedded space characters.
1226 Setting all three different styles within one whitespace-delimited word
1227 presents challenges;
1228 it is possible with the \(oq\ec\(cq and/or \(oq\ef\(cq escapes,
1229 but see subsection \(lqPortability\(rq below for caveats.
1233 .BI .BI " bold-text italic-text"\c
1235 Set each argument in bold and italics, alternately.
1238 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1241 .\" from src/roff/troff/troff.1.man
1243 \&.BI \e\-r name = n
1248 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1250 .BI .BR " bold-text roman-text"\c
1252 Set each argument in bold and roman, alternately.
1255 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1258 .\" from tmac/groff_ms.7.man
1260 Any such change becomes effective with the first use of
1263 the new alias is defined.
1268 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1270 .BI .IB " italic-text bold-text"\c
1272 Set each argument in italics and bold, alternately.
1275 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1278 .\" from man/groff_tmac.5.man
1280 All macro package files must be named
1289 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1291 .BI .IR " italic-text roman-text"\c
1293 Set each argument in italics and roman, alternately.
1296 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1299 .\" from man/groff_out.5.man
1301 This is the first command of the
1307 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1309 .BI .RB " roman-text bold-text"\c
1311 Set each argument in roman and bold, alternately.
1314 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1317 .\" from src/preproc/eqn/eqn.1.man
1320 \&.RB \e(oq "delim on" \e(cq
1321 is not handled specially.
1326 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1328 .BI .RI " roman-text italic-text"\c
1330 Set each argument in roman and italics, alternately.
1333 .\" BEGIN EXAMPLE (TODO: move to tutorial/style guide when we have it)
1336 .\" from contrib/mm/groff_mm.7.man
1344 .\" END EXAMPLE (TODO: move to tutorial/style guide when we have it)
1345 .\" ====================================================================
1346 .SS "Horizontal and vertical spacing"
1347 .\" ====================================================================
1351 argument accepted by
1357 is a number plus an optional scaling indicator.
1359 If no scaling indicator is given,
1362 package assumes \(oqn\(cq;
1364 the width of a letter \(lqn\(rq in the font current when the macro is
1367 See section \(lqNumerical Expressions\(rq in
1369 for further details.
1371 An indent specified in a call to
1377 (1) another of these macros is called with an explicit indent
1384 or its synonyms is called;
1385 these clear the indent entirely.
1391 move the left margin and persist until
1400 The default indentation,
1401 exhibited by ordinary
1403 paragraphs not within an
1412 The HTML output device is an exception;
1413 it ignores indentation completely.
1415 This same indentation is used again (additively) for the defaults of
1424 are set flush with the left margin of the output device,
1425 and subsection headings
1431 Resist the temptation to mock up tabular or multi-column output with
1432 ASCII tab characters or the indentation arguments to
1438 the result may not render comprehensibly on an output device you fail to
1440 or which is developed in the future.
1442 The table preprocessor
1443 .IR @g@tbl (@MAN1EXT@)
1444 can likely meet your needs.
1448 The following macros cause a line break with the
1449 insertion of vertical space:
1460 The default inter-section and inter-paragraph spacing is 1\~line in
1467 (The deprecated macro
1469 can change this vertical spacing,
1470 but its use is discouraged.)
1478 also cause a break but no insertion of vertical space.
1481 .\" ====================================================================
1482 .SS "Number registers"
1483 .\" ====================================================================
1485 Number registers are described in section \(lqOptions\(rq below.
1488 .\" ====================================================================
1489 .SS "String registers"
1490 .\" ====================================================================
1492 The following strings are defined.
1497 expands to the character escape for the \(lqregistered sign\(rq glyph,
1500 and \(lq(Reg.)\(rq otherwise.
1506 expands to an escape setting the font size to the document default.
1511 expands to the font identifier used to print headings and subheadings.
1513 The default is \(oqB\(cq.
1520 expand to the character escapes for left and right double-quotation
1522 \(oq\e(lq\(cq and \(oq\e(rq\(cq, respectively.
1527 expands to the character escape for the \(lqtrade mark sign\(rq glyph,
1530 and \(lq(TM)\(rq otherwise.
1533 .\" ====================================================================
1534 .SS "Interaction with preprocessors"
1535 .\" ====================================================================
1537 When a preprocessor like
1542 a hint can be given to the man page formatter by making the first line
1543 of a man page look like this:
1548 .BI "\(aq\e\(dq " word
1553 Note that the line starts with an apostrophe (\(aq),
1555 and that a single space character follows the double quote.
1558 consists of one letter for each needed preprocessor:
1567 Modern implementations of the
1569 program interpret this first line and automatically call the right
1578 macros for table and equation inclusion,
1589 output devices are extremely limited in presentation of mathematical
1593 .\" TODO BEGIN: move subsection to tutorial/style guide when we have it
1594 .\" ====================================================================
1596 .\" ====================================================================
1598 The two major syntactical categories of
1600 languages are requests and escapes.
1604 macros are implemented in terms of
1606 requests and escapes,
1609 supplement the functionality of
1611 with these lower-level elements where necessary.
1619 requests is likely to make your page render poorly on the class of
1620 viewers that transform it to HTML.
1622 Some requests make implicit assumptions about things like character
1623 and page sizes that may not hold in an HTML environment;
1625 many of these viewers don't interpret the full
1628 a problem that can lead to portions of your text being silently dropped.
1632 For portability to modern viewers,
1633 it is best to write your page entirely with the macros described in this
1635 (except for the ones identified as deprecated,
1636 which should be avoided).
1638 The macros we have described as extensions
1640 .BR .SY / .OP / .YS ,
1644 should be used with caution, as they may not yet be built in to
1645 some viewer that is important to your audience.
1647 If in doubt, copy the implementation into your page\(emafter the
1649 call and the \(lqName\(rq section,
1650 to accommodate timid
1656 Similar caveats apply to escapes.
1658 Some escape sequences are however required for correct typesetting
1659 even in man pages and usually do not cause portability problems:
1666 Everything after the double-quote to the end of the input line is
1669 Whole-line comments are frequently placed immediately after the empty
1675 Join the next input line to the current one.
1677 Except for the update of the input line counter (used for diagnostic
1678 messages and related purposes),
1679 a series of lines ending in backslash-newline is transparent to
1682 Use this escape to break excessively input long lines for document
1688 Adjustable, non-breaking space character.
1690 Use this escape to prevent a break inside a short phrase or between a
1691 numerical quantity and its corresponding unit(s).
1697 Before starting the motor, set the output speed to\e\(ti1.
1698 There are 1,024\e\(tibytes in 1\e\(tikiB.
1699 CSTR\e\(ti#8 documents the B language.
1708 Append to an input line to prevent an end-of-sentence punctuation
1709 sequence from being recognized as such, or insert at the beginning of an
1710 input line to prevent a dot or apostrophe from being interpreted as the
1720 Use for syntax elements of programming languages because some
1721 output devices might replace unescaped apostrophes with right single
1727 Opening single quotation mark.
1731 Closing single quotation mark.
1735 Use these for paired directional single quotes, \(oqlike this\(cq.
1742 Sometimes needed after macro calls to prevent the interpretation of the
1743 ASCII quotation mark character \(oq\(dq\(cq as the beginning or end
1744 of a macro argument.
1749 Left double quotation mark.
1753 Right double quotation mark.
1757 Use these for paired directional double quotes, \(lqlike this\(rq.
1764 Use for an interruption in a sentence\(emsuch as this one.
1771 Use to separate the two ends of a range,
1772 in particular between numbers,
1773 for example: the digits 1\(en9.
1780 Use for syntax elements of programming languages,
1781 for example shell command substitutions,
1782 because some output devices might replace unescaped grave accents with
1783 left single quotation marks.
1788 ASCII circumflex accent.
1790 Use for syntax elements of programming languages because some output
1791 devices might replace unescaped circumflex accents with non-ASCII glyphs
1792 like the Unicode U+02C6 modifier letter circumflex.
1799 Use for syntax elements of programming languages because some output
1800 devices might replace unescaped tildes with non-ASCII glyphs like the
1801 Unicode U+02DC small tilde.
1808 Also use this to display syntax elements that require the ASCII
1809 hyphen-minus character,
1810 for example command-line options and C language operators.
1812 The unescaped \(oq\-\(cq input character is not appropriate for
1813 these cases because it may render as a hyphen on some output devices.
1819 If this escape sequence occurs at the end of an input line, no white
1820 space is inserted between the last glyph on it and the first glyph
1821 resulting from the next input line.
1823 This is occasionally useful when three different fonts are needed
1829 .\" contrib/pdfmark/pdfroff.1.man
1831 Normally, the final output file should be named
1839 Note that when using this trick with the
1843 macros, you will need to manually add an italic correction escape
1844 \(oq\e/\(cq before the \(oq\ec\(cq due to way macros expand their
1850 .\" from contrib/mom/groff_mom.7.man
1852 Files processed with
1855 \&.BI "\e\-m " mom\e/\ec
1856 ) produce PostScript output by default.
1863 and perhaps with better portability,
1864 the \(oq\ef\(cq font escape sequence can be used;
1867 Using \(oq\ec\(cq to include the output from more than one input line
1868 into the next-line argument of a
1870 macro will render incorrectly with
1875 older versions of these programs,
1876 and perhaps with some other formatters.
1881 Widely used in man pages to represent a backslash output glyph.
1883 It works reliably as long as the
1885 request is not used,
1886 which should never happen in man pages,
1887 and it is slightly more portable than the more exact \(oq\e(rs\(cq
1888 (\(lqreverse solidus\(rq) escape sequence.
1892 .BR \efB ,\ \efI ,\ \efR ,\ \efP
1893 Switch to bold, italic, roman, or back to the previous font,
1896 Either these or \(oq\ec\(cq is needed when three different fonts are
1897 required in a single whitespace-delimited word.
1902 .\" second example from contrib/pdfmark/pdfroff.1.man
1904 \&.RB [ \e\-\e\-reference\e\-dictionary=\efI\e,name\e/\efP ]
1906 \&.RB [ \e\-\e\-reference\e\-dictionary=\ec
1913 Font escapes may be more portable than \(oq\ec\(cq.
1916 it is up to you to account for italic corrections with \(oq\e/\(cq and
1917 \(oq\e,\(cq, which are themselves
1920 if desired and if supported by your implementation.
1925 \(oq\efP\(cq reliably returns to the style in use immediately preceding
1926 the previous \(oq\ef\(cq escape only if no
1929 or font face macro calls have intervened.
1933 As long as only two fonts are needed in any single whitespace-delimited
1935 font alternation macros like
1937 usually result in more readable source code than \(oq\ef\(cq escapes do.
1941 For maximum portability, escape sequences and special characters
1942 not listed above are better avoided in man pages.
1945 .\" TODO END: move subsection to tutorial/style guide when we have it
1946 .\" ====================================================================
1947 .SS "Deprecated features"
1948 .\" ====================================================================
1950 Use of the following is discouraged.
1955 .IR system " [" release ]]
1956 Alter the footer for use with AT&T man pages,
1957 overriding any definition of the
1962 This macro exists only for compatibility; don't use it.
1971 .RS \" Invisibly move left margin to current .IP indent.
1972 .RS \" Now indent further, visibly.
1987 .RE \" Move left margin back to .IP indentation.
1988 .RE \" Move left margin back to standard position.
1992 The optional second argument
1994 specifies the release number,
1995 such as in \(lqSystem V Release 3\(rq.
2000 Set the page footer.
2002 Redefine this macro to get control of the footer.
2007 Set tabs every 0.5\~inches.
2009 Since this macro is always called during a
2011 macro, it makes sense to call it only if the tab positions have been
2016 Use of this presentation-level macro is deprecated.
2018 It translates poorly to HTML, under which exact whitespace control
2019 and tabbing are not readily available.
2021 Thus, information or distinctions that you use
2023 to express are likely to be lost.
2025 If you feel tempted to use it, you should probably be composing a
2027 .IR @g@tbl (@MAN1EXT@)
2034 Set up a paragraph with a hanging left indentation.
2045 Use of this presentation-level macro is deprecated.
2047 While it is universally portable to legacy Unix systems, a hanging
2048 indentation cannot be expressed naturally under HTML, and many
2049 HTML-based manual viewers simply interpret it as a starter for a
2052 Thus, any information or distinction you tried to express with the
2053 indentation may be lost.
2058 .IR vertical-space ]
2059 Define the vertical space between paragraphs or (sub)sections.
2061 The optional argument
2063 specifies the amount of space;
2064 the default scaling is \(oqv\(cq).
2066 Without an argument,
2067 the spacing is reset to its default value;
2068 see \(lqHorizontal and vertical spacing\(rq above.
2072 Use of this presentation-level macro is deprecated.
2074 It translates poorly to HTML, under which exact control of
2075 inter-paragraph spacing is not readily available.
2077 Thus, information or distinctions that you use
2079 to express are likely to be lost.
2084 Set the page header.
2086 Redefine this macro to get control of the header.
2092 Alter the footer for use with BSD man pages,
2093 overriding any definition of the
2098 This macro exists only for compatibility; don't use it.
2107 .RS \" Invisibly move left margin to current .IP indent.
2108 .RS \" Now indent further, visibly.
2111 3rd Berkeley Distribution
2117 4th Berkeley Distribution
2122 4.2 Berkeley Distribution
2127 4.3 Berkeley Distribution
2132 4.4 Berkeley Distribution
2133 .RE \" Move left margin back to .IP indentation.
2134 .RE \" Move left margin back to standard position.
2137 .\" ====================================================================
2139 .\" ====================================================================
2141 According to its own
2144 Version 7 Unix (1979) supported all of the macros described in this page
2145 not listed as GNU extensions,
2157 The only string registers defined were
2161 no number registers were documented.
2164 .\" ====================================================================
2166 .\" ====================================================================
2170 options set number registers recognized and used by the
2177 Continuous rendering.
2180 very long page instead of multiple pages.
2182 This is the default in
2193 Number pages continuously.
2195 If more than one man page is given on the command line, number the
2196 pages continuously, rather than starting each at\~1.
2201 Enable double-sided printing.
2203 Footers for even and odd pages are formatted differently;
2204 see the description of
2206 in \(lqDocument structure macros\(rq,
2211 .BI \-rFT= footer-distance
2212 Set distance of the footer,
2213 relative to the bottom of the page if negative or relative to the top if
2216 .IR footer-distance .
2218 The default is \-0.5i.
2223 Set hyphenation flags.
2225 Permissible values of
2227 are documented in section \(lqHyphenation\(rq of
2230 The default is\~4 if continuous rendering is enabled
2238 Set the body text indentation (for normal paragraphs) to
2241 See \(lqHorizontal and vertical spacing\(rq above for the default
2247 should always be an integer multiple of unit \(oqn\(cq to get consistent
2252 .BI \-rLL= line-length
2255 If this option is not given, the line length is set to respect any
2256 value set by a prior \(lq.ll\(rq request (which
2258 be in effect when the
2261 if this differs from the built-in default for the formatter;
2262 otherwise it defaults to 78n in
2270 Note that the use of a \(lq.ll\(rq request to initialize the line
2271 length is supported for backward compatibility with some versions of
2275 direct initialization of the
2279 be preferred to the use of such a request.
2281 In particular, note that a \(lq.ll\~65n\(rq request does
2288 default initialization to 78n prevails),
2292 or an equivalent \(lq.nr\~LL\~65n\(rq request preceding the use of the
2296 set a line length of 65n.
2300 .BI \-rLT= title-length
2303 If this option is not given, the title length defaults to the line
2309 Start enumeration of pages at
2318 as the base document font size.
2320 Acceptable values are 10, 11, or 12.
2322 See subsection \(lqFont style macros\(rq above for the default.
2326 .BI \-rSN= subsection-indent
2327 Set subsection indentation to
2328 .IR subsection-indent .
2330 See \(lqHorizontal and vertical spacing\(rq above for the default
2344 For example, the option
2346 produces the following page
2347 numbers: 1, 2, 2a, 2b, 2c, and so on.
2350 .\" ====================================================================
2352 .\" ====================================================================
2355 .I @MACRODIR@/\:man.tmac
2357 .I @MACRODIR@/\:an.tmac
2358 These are wrapper files to call
2363 .I @MACRODIR@/\:andoc.tmac
2366 program detects whether the
2370 macro package is being used by a document and loads the correct macro
2372 taking advantage of the fact that pages using them must call
2377 as their first macro.
2379 Because the wrappers above load this file,
2382 program or user typing,
2384 \(lqgroff \-man page.1\(rq,
2385 need not know which package the file
2389 Multiple man pages, in either format, can be handled.
2393 .I @MACRODIR@/\:an\-old.tmac
2396 macros are contained in this file.
2398 It also loads the GNU extensions from
2404 .I @MACRODIR@/\:an\-ext.tmac
2405 The extension macro definitions for
2414 are contained in this file,
2415 which is written in classic
2417 and permissively licensed\(emnot copylefted.
2419 Man page authors concerned about portability to legacy Unix systems are
2420 encouraged to copy these definitions into their pages,
2423 implementations or work-alike systems that format man pages are
2424 encouraged to re-use them.
2428 Note that the definitions for these macros are read after the call of
2430 so they will replace any macros of the same names preceding it in your
2433 If you use your own implementations of these macros,
2434 they must be defined after calling
2440 .I @LOCALMACRODIR@/\:man.local
2441 Local changes and customizations should be put into this file.
2444 .\" ====================================================================
2446 .\" ====================================================================
2448 Some tips on troubleshooting your man pages follow.
2452 .RB \(bu " .RS" " doesn't indent relative to my indented paragraph"
2455 macro sets the indentation relative to the amount of a
2461 The same default indentation amount is used for
2468 If you need to start an indent relative to an indented paragraph,
2471 repeatedly until an acceptable indentation is achieved,
2474 an indentation argument that is at least as much as the paragraph's
2475 indentation amount relative to an adjacent
2479 See \(lqHorizontal and vertical spacing\(rq above for the values.
2483 .RB \(bu " .RE" " doesn't reset the indent to the expected level"
2485 \(bu warning: scale indicator invalid in this context
2487 \(bu warning: number register \(aqan\-saved\-margin\c
2488 .IR n "\(aq not defined"
2490 \(bu warning: number register 'an\-saved\-prevailing\-indent\c
2491 .IR n "\(aq not defined"
2494 macro takes an indentation
2499 macro's argument is a specific indentation
2502 goes to the level before any
2506 goes to the level of the first
2511 If you desire symmetry in your macro calls,
2526 all relative indents are cleared and calls to
2531 .\" ====================================================================
2533 .\" ====================================================================
2535 The GNU version of the
2537 macro package was written by James Clark and contributors.
2539 The extension macros were written by
2544 .MT esr@\:thyrsus.com
2550 This document was originally written for the Debian GNU/Linux system by
2551 .MT sgk@\:debian.org
2552 Susan G.\& Kleinmann
2555 It was corrected and updated by Werner Lemberg and G.\& Branden
2558 The extension macros were documented by Eric S.\& Raymond;
2559 he also originated the portability section,
2560 to which Ingo Schwarze contributed most of the material on escape
2564 .\" ====================================================================
2566 .\" ====================================================================
2568 .IR "Groff: The GNU Implementation of troff" ,
2569 by Trent A.\& Fisher and Werner Lemberg,
2574 You can browse it interactively with \(lqinfo groff\(rq.
2578 .IR @g@tbl (@MAN1EXT@),
2579 .IR @g@eqn (@MAN1EXT@),
2581 .IR @g@refer (@MAN1EXT@)
2582 are preprocessors used with man pages.
2587 describes the man page formatter on your system.
2591 .IR groff_mdoc (@MAN7EXT@)
2594 version of the BSD-originated alternative macro package for man pages.
2598 .IR groff (@MAN7EXT@),
2599 .IR groff_char (@MAN7EXT@),
2603 .\" Restore compatibility mode (for, e.g., Solaris 10/11).
2607 .\" ====================================================================
2608 .\" ### Emacs settings:
2609 .\" Local Variables:
2613 .\" vim: set filetype=groff textwidth=72: