1 .\" Id: man.7,v 1.121 2013/12/31 15:17:51 schwarze Exp
3 .\" Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
4 .\" Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
6 .\" Permission to use, copy, modify, and distribute this software for any
7 .\" purpose with or without fee is hereby granted, provided that the above
8 .\" copyright notice and this permission notice appear in all copies.
10 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 .Nd legacy formatting language for manual pages
27 language has been used to write
32 It supports limited control of presentational details like fonts,
33 indentation and spacing.
34 This reference document describes the structure of manual pages
35 and the syntax and usage of the man language.
40 to write your manuals:
42 It lacks support for semantic markup.
49 document, lines beginning with the control character
53 The first word is the macro name.
54 It usually consists of two capital letters.
55 For a list of available macros, see
57 The words following the macro name are arguments to the macro.
59 Lines not beginning with the control character are called
61 They provide free-form text to be printed; the formatting of the text
62 depends on the respective processing context:
63 .Bd -literal -offset indent
64 \&.SH Macro lines change control state.
65 Text lines are interpreted within the current state.
68 Many aspects of the basic syntax of the
70 language are based on the
78 manual for details, in particular regarding
79 comments, escape sequences, whitespace, and quoting.
83 document must contain the
85 macro describing the document's section and title.
86 It may occur anywhere in the document, although conventionally it
87 appears as the first macro.
91 at least one macro or text line must appear in the document.
93 The following is a well-formed skeleton
97 .Bd -literal -offset indent
98 \&.TH PROGNAME 1 2009-10-10
100 \efBprogname\efR \e(en a description goes here
101 \&.\e\(dq .SH LIBRARY
102 \&.\e\(dq For sections 2 & 3 only.
103 \&.\e\(dq Not used in OpenBSD.
105 \efBprogname\efR [\efB\e-options\efR] arguments...
107 The \efBfoo\efR utility processes files...
108 \&.\e\(dq .SH IMPLEMENTATION NOTES
109 \&.\e\(dq Not used in OpenBSD.
110 \&.\e\(dq .SH RETURN VALUES
111 \&.\e\(dq For sections 2, 3, & 9 only.
112 \&.\e\(dq .SH ENVIRONMENT
113 \&.\e\(dq For sections 1, 6, 7, & 8 only.
115 \&.\e\(dq .SH EXIT STATUS
116 \&.\e\(dq For sections 1, 6, & 8 only.
117 \&.\e\(dq .SH EXAMPLES
118 \&.\e\(dq .SH DIAGNOSTICS
119 \&.\e\(dq For sections 1, 4, 6, 7, & 8 only.
121 \&.\e\(dq For sections 2, 3, & 9 only.
122 \&.\e\(dq .SH SEE ALSO
123 \&.\e\(dq .BR foo ( 1 )
124 \&.\e\(dq .SH STANDARDS
125 \&.\e\(dq .SH HISTORY
126 \&.\e\(dq .SH AUTHORS
127 \&.\e\(dq .SH CAVEATS
129 \&.\e\(dq .SH SECURITY CONSIDERATIONS
130 \&.\e\(dq Not used in OpenBSD.
135 document are conventionally ordered as they appear above.
136 Sections should be composed as follows:
137 .Bl -ohang -offset indent
139 The name(s) and a short description of the documented material.
140 The syntax for this is generally as follows:
142 .D1 \efBname\efR \e(en description
144 The name of the library containing the documented material, which is
145 assumed to be a function in a section 2 or 3 manual.
146 For functions in the C library, this may be as follows:
148 .D1 Standard C Library (libc, -lc)
150 Documents the utility invocation syntax, function call syntax, or device
153 For the first, utilities (sections 1, 6, and 8), this is
154 generally structured as follows:
156 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
158 For the second, function calls (sections 2, 3, 9):
160 .D1 \&.B char *name(char *\efIarg\efR);
162 And for the third, configurations (section 4):
164 .D1 \&.B name* at cardbus ? function ?
166 Manuals not in these sections generally don't need a
169 This expands upon the brief, one-line description in
171 It usually contains a break-down of the options (if documenting a
173 .It Em IMPLEMENTATION NOTES
174 Implementation-specific notes should be kept here.
175 This is useful when implementing standard functions that may have side
176 effects or notable algorithmic implications.
178 This section documents the return values of functions in sections 2, 3, and 9.
180 Documents any usages of environment variables, e.g.,
183 Documents files used.
184 It's helpful to document both the file name and a short description of how
185 the file is used (created, modified, etc.).
187 This section documents the command exit status for
188 section 1, 6, and 8 utilities.
189 Historically, this information was described in
191 a practise that is now discouraged.
194 This often contains snippets of well-formed,
195 well-tested invocations.
196 Make sure that examples work properly!
198 Documents error conditions.
199 This is most useful in section 4 manuals.
200 Historically, this section was used in place of
202 for manuals in sections 1, 6, and 8; however, this practise is
205 Documents error handling in sections 2, 3, and 9.
207 References other manuals with related topics.
208 This section should exist for most manuals.
210 .D1 \&.BR bar \&( 1 \&),
212 Cross-references should conventionally be ordered
213 first by section, then alphabetically.
215 References any standards implemented or used, such as
217 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
219 If not adhering to any standards, the
221 section should be used.
223 A brief history of the subject, including where support first appeared.
225 Credits to the person or persons who wrote the code and/or documentation.
226 Authors should generally be noted by both name and email address.
228 Common misuses and misunderstandings should be explained
231 Known bugs, limitations, and work-arounds should be described
233 .It Em SECURITY CONSIDERATIONS
234 Documents any security precautions that operators should consider.
237 This overview is sorted such that macros of similar purpose are listed
238 together, to help find the best macro for any given purpose.
239 Deprecated macros are not included in the overview, but can be found
240 in the alphabetical reference below.
241 .Ss Page header and footer meta-data
242 .Bl -column "PP, LP, P" description
243 .It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
244 .It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
245 .It Sx UC Ta display BSD version in the page footer (<= 1 argument)
247 .Ss Sections and paragraphs
248 .Bl -column "PP, LP, P" description
249 .It Sx SH Ta section header (one line)
250 .It Sx SS Ta subsection header (one line)
251 .It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
252 .It Sx RS , RE Ta reset the left margin: Op Ar width
253 .It Sx IP Ta indented paragraph: Op Ar head Op Ar width
254 .It Sx TP Ta tagged paragraph: Op Ar width
255 .It Sx HP Ta hanged paragraph: Op Ar width
256 .It Sx PD Ta set vertical paragraph distance: Op Ar height
257 .It Sx \&br Ta force output line break in text mode (no arguments)
258 .It Sx \&sp Ta force vertical space: Op Ar height
259 .It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
260 .It Sx in Ta additional indent: Op Ar width
263 .Bl -column "PP, LP, P" description
264 .It Sx B Ta boldface font
265 .It Sx I Ta italic font
266 .It Sx R Ta roman (default) font
267 .It Sx SB Ta small boldface font
268 .It Sx SM Ta small roman font
269 .It Sx BI Ta alternate between boldface and italic fonts
270 .It Sx BR Ta alternate between boldface and roman fonts
271 .It Sx IB Ta alternate between italic and boldface fonts
272 .It Sx IR Ta alternate between italic and roman fonts
273 .It Sx RB Ta alternate between roman and boldface fonts
274 .It Sx RI Ta alternate between roman and italic fonts
277 This section is a canonical reference to all macros, arranged
279 For the scoping of individual macros, see
282 Sets the volume for the footer for compatibility with man pages from
285 The optional arguments specify which release it is from.
287 Text is rendered in bold face.
294 Text is rendered alternately in bold face and italic.
296 .Sq .BI this word and that
301 to render in bold face, while
306 Whitespace between arguments is omitted in output.
310 .Dl \&.BI bold italic bold italic
312 The output of this example will be emboldened
316 with spaces stripped between arguments.
326 Text is rendered alternately in bold face and roman (the default font).
327 Whitespace between arguments is omitted in output.
331 for an equivalent example.
342 Included for compatibility.
344 This is a non-standard GNU extension, included only for compatibility.
350 This is a non-standard GNU extension, included only for compatibility.
356 Begin a paragraph whose initial output line is left-justified, but
357 subsequent output lines are indented, with the following syntax:
358 .Bd -filled -offset indent
368 If specified, it's saved for later paragraph left-margins; if unspecified, the
369 saved or default width is used.
379 Text is rendered in italics.
386 Text is rendered alternately in italics and bold face.
387 Whitespace between arguments is omitted in output.
391 for an equivalent example.
401 Begin an indented paragraph with the following syntax:
402 .Bd -filled -offset indent
404 .Op Cm head Op Cm width
411 scaling width defining the left margin.
412 It's saved for later paragraph left-margins; if unspecified, the saved or
413 default width is used.
417 argument is used as a leading term, flushed to the left margin.
418 This is useful for bulleted paragraphs and so on.
428 Text is rendered alternately in italics and roman (the default font).
429 Whitespace between arguments is omitted in output.
433 for an equivalent example.
443 Begin an undecorated paragraph.
444 The scope of a paragraph is closed by a subsequent paragraph,
445 sub-section, section, or end of file.
446 The saved paragraph left-margin width is reset to the default.
456 Optional command-line argument.
457 This is a non-standard GNU extension, included only for compatibility.
458 It has the following syntax:
459 .Bd -filled -offset indent
466 is usually a command-line flag and
481 Specify the vertical space to be inserted before each new paragraph.
483 The syntax is as follows:
484 .Bd -filled -offset indent
496 If the unit is omitted,
500 This macro affects the spacing before any subsequent instances of
522 Text is rendered in roman (the default font).
529 Text is rendered alternately in roman (the default font) and bold face.
530 Whitespace between arguments is omitted in output.
534 for an equivalent example.
544 Explicitly close out the scope of a prior
546 The default left margin is restored to the state of the original
550 Text is rendered alternately in roman (the default font) and italics.
551 Whitespace between arguments is omitted in output.
555 for an equivalent example.
565 Temporarily reset the default left margin.
566 This has the following syntax:
567 .Bd -filled -offset indent
577 If not specified, the saved or default width is used.
582 Text is rendered in small size (one point smaller than the default font)
586 The scope of a section is only closed by another section or the end of
588 The paragraph left-margin width is reset to the default.
590 Text is rendered in small size (one point smaller than the default
594 The scope of a sub-section is closed by a subsequent sub-section,
595 section, or end of file.
596 The paragraph left-margin width is reset to the default.
598 Sets the title of the manual page with the following syntax:
599 .Bd -filled -offset indent
601 .Ar title section date
602 .Op Ar source Op Ar volume
605 Conventionally, the document
607 is given in all caps.
612 as specified in the ISO-8601 standard;
613 if the argument does not conform, it is printed verbatim.
616 is empty or not specified, the current date is used.
619 string specifies the organisation providing the utility.
622 string replaces the default rendered volume, which is dictated by the
627 .Dl \&.TH CVS 5 "1992-02-12" GNU
629 Begin a paragraph where the head, if exceeding the indentation width, is
630 followed by a newline; if not, the body follows on the same line after a
631 buffer to the indentation width.
632 Subsequent output lines are indented.
633 The syntax is as follows:
634 .Bd -filled -offset indent
644 If specified, it's saved for later paragraph left-margins; if
645 unspecified, the saved or default width is used.
655 Sets the volume for the footer for compatibility with man pages from
658 The optional first argument specifies which release it is from.
660 End a uniform resource identifier block.
661 This is a non-standard GNU extension, included only for compatibility.
665 Begin a uniform resource identifier block.
666 This is a non-standard GNU extension, included only for compatibility.
667 It has the following syntax:
668 .Bd -literal -offset indent
669 .Pf \. Sx \&UR Ar uri
670 link description to be shown
674 Breaks the current line.
675 Consecutive invocations have no further effect.
680 End literal mode begun by
683 Change the current font mode.
686 for a listing of available font modes.
688 Indent relative to the current indentation:
690 .D1 Pf \. Sx \&in Op Cm width
694 is signed, the new offset is relative.
695 Otherwise, it is absolute.
696 This value is reset upon the next paragraph, section, or sub-section.
698 Don't align to the right margin.
700 Begin literal mode: all subsequent free-form lines have their end of
701 line boundaries preserved.
704 Literal mode is implicitly ended by
709 Insert vertical spaces into output with the following syntax:
710 .Bd -filled -offset indent
717 argument is a scaling width as described in
719 If 0, this is equivalent to the
722 Defaults to 1, if unspecified.
729 macros are classified by scope: line scope or block scope.
730 Line macros are only scoped to the current line (and, in some
731 situations, the subsequent line).
732 Block macros are scoped to the current line and subsequent lines until
733 closed by another block macro.
735 Line macros are generally scoped to the current line, with the body
736 consisting of zero or more arguments.
737 If a macro is scoped to the next line and the line arguments are empty,
738 the next line, which must be text, is used instead.
740 .Bd -literal -offset indent
747 If next-line macros are invoked consecutively, only the last is used.
748 If a next-line macro is followed by a non-next-line macro, an error is
755 The syntax is as follows:
756 .Bd -literal -offset indent
757 \&.YO \(lBbody...\(rB
760 .Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
761 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
762 .It Sx \&AT Ta <=1 Ta current Ta \&
763 .It Sx \&B Ta n Ta next-line Ta \&
764 .It Sx \&BI Ta n Ta current Ta \&
765 .It Sx \&BR Ta n Ta current Ta \&
766 .It Sx \&DT Ta 0 Ta current Ta \&
767 .It Sx \&EE Ta 0 Ta current Ta compat
768 .It Sx \&EX Ta 0 Ta current Ta compat
769 .It Sx \&I Ta n Ta next-line Ta \&
770 .It Sx \&IB Ta n Ta current Ta \&
771 .It Sx \&IR Ta n Ta current Ta \&
772 .It Sx \&OP Ta 0, 1 Ta current Ta compat
773 .It Sx \&PD Ta 1 Ta current Ta \&
774 .It Sx \&R Ta n Ta next-line Ta \&
775 .It Sx \&RB Ta n Ta current Ta \&
776 .It Sx \&RI Ta n Ta current Ta \&
777 .It Sx \&SB Ta n Ta next-line Ta \&
778 .It Sx \&SM Ta n Ta next-line Ta \&
779 .It Sx \&TH Ta >1, <6 Ta current Ta \&
780 .It Sx \&UC Ta <=1 Ta current Ta \&
781 .It Sx \&br Ta 0 Ta current Ta compat
782 .It Sx \&fi Ta 0 Ta current Ta compat
783 .It Sx \&ft Ta 1 Ta current Ta compat
784 .It Sx \&in Ta 1 Ta current Ta compat
785 .It Sx \&na Ta 0 Ta current Ta compat
786 .It Sx \&nf Ta 0 Ta current Ta compat
787 .It Sx \&sp Ta 1 Ta current Ta compat
792 are included for compatibility with the significant corpus of existing
793 manuals that mix dialects of roff.
794 These macros should not be used for portable
798 Block macros comprise a head and body.
799 As with in-line macros, the head is scoped to the current line and, in
800 one circumstance, the next line (the next-line stipulations as in
804 The syntax is as follows:
805 .Bd -literal -offset indent
806 \&.YO \(lBhead...\(rB
811 The closure of body scope may be to the section, where a macro is closed
814 sub-section, closed by a section or
816 part, closed by a section, sub-section, or
818 or paragraph, closed by a section, sub-section, part,
826 No closure refers to an explicit block closing macro.
828 As a rule, block macros may not be nested; thus, calling a block macro
829 while another block macro scope is open, and the open scope is not
830 implicitly closed, is syntactically incorrect.
831 .Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
832 .It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
833 .It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
834 .It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
835 .It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
836 .It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
837 .It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
838 .It Sx \&RE Ta 0 Ta current Ta none Ta compat
839 .It Sx \&RS Ta 1 Ta current Ta part Ta compat
840 .It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
841 .It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
842 .It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
843 .It Sx \&UE Ta 0 Ta current Ta none Ta compat
844 .It Sx \&UR Ta 1 Ta current Ta part Ta compat
852 If a block macro is next-line scoped, it may only be followed by in-line
853 macros for decorating text.
862 font escape sequences can be used to choose fonts.
863 In text lines, the effect of manual font selection by escape sequences
864 only lasts until the next macro invocation; in macro lines, it only lasts
865 until the end of the macro scope.
866 Note that macros like
868 open and close a font scope for each argument.
870 This section documents areas of questionable portability between
871 implementations of the
881 to close out a literal context opened with
883 This behaviour may not be portable.
885 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
886 a standalone double-quote in formatted output.
887 It is not known whether this behaviour is exhibited by other formatters.
889 troff suppresses a newline before
891 macro output; in mandoc, it is an alias for the standard
897 .Pq horizontal position ,
899 .Pq vertical position ,
903 .Pq text filling colour ,
905 .Pq zero-length character ,
909 .Pq horizontal position marker ,
911 .Pq text overstrike ,
915 escape sequences are all discarded in mandoc.
919 scaling unit is accepted by mandoc, but rendered as the default unit.
923 macro does not accept negative values in mandoc.
924 In GNU troff, this would result in strange behaviour.
926 In page header lines, GNU troff versions up to and including 1.21
929 names explicitly specified in the
931 macro; mandoc and newer groff print the default volume name
942 macro is part of the extended
944 macro set, and may not be portable to non-GNU troff implementations.
956 language first appeared as a macro package for the roff typesetting
959 It was later rewritten by James Clark as a macro package for groff.
960 Eric S. Raymond wrote the extended
962 macros for groff in 2007.
963 The stand-alone implementation that is part of the
965 utility written by Kristaps Dzonsons appeared in
970 reference was written by
971 .An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
973 Do not use this language.