1 .\" $Id: man.7,v 1.127 2014/06/22 16:39:45 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>
5 .\" Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
7 .\" Permission to use, copy, modify, and distribute this software for any
8 .\" purpose with or without fee is hereby granted, provided that the above
9 .\" copyright notice and this permission notice appear in all copies.
11 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 .Dd $Mdocdate: June 22 2014 $
24 .Nd legacy formatting language for manual pages
28 language has been used to write
33 It supports limited control of presentational details like fonts,
34 indentation and spacing.
35 This reference document describes the structure of manual pages
36 and the syntax and usage of the man language.
41 to write your manuals:
43 It lacks support for semantic markup.
50 document, lines beginning with the control character
54 The first word is the macro name.
55 It usually consists of two capital letters.
56 For a list of available macros, see
58 The words following the macro name are arguments to the macro.
60 Lines not beginning with the control character are called
62 They provide free-form text to be printed; the formatting of the text
63 depends on the respective processing context:
64 .Bd -literal -offset indent
65 \&.SH Macro lines change control state.
66 Text lines are interpreted within the current state.
69 Many aspects of the basic syntax of the
71 language are based on the
79 manual for details, in particular regarding
80 comments, escape sequences, whitespace, and quoting.
84 document must contain the
86 macro describing the document's section and title.
87 It may occur anywhere in the document, although conventionally it
88 appears as the first macro.
92 at least one macro or text line must appear in the document.
94 The following is a well-formed skeleton
98 .Bd -literal -offset indent
99 \&.TH PROGNAME 1 2009-10-10
101 \efBprogname\efR \e(en one line about what it does
102 \&.\e\(dq .SH LIBRARY
103 \&.\e\(dq For sections 2, 3, and 9 only.
104 \&.\e\(dq Not used in OpenBSD.
106 \efBprogname\efR [\efB\e-options\efR] \efIfile ...\efR
108 The \efBfoo\efR utility processes files ...
109 \&.\e\(dq .Sh CONTEXT
110 \&.\e\(dq For section 9 functions only.
111 \&.\e\(dq .SH IMPLEMENTATION NOTES
112 \&.\e\(dq Not used in OpenBSD.
113 \&.\e\(dq .SH RETURN VALUES
114 \&.\e\(dq For sections 2, 3, and 9 function return values only.
115 \&.\e\(dq .SH ENVIRONMENT
116 \&.\e\(dq For sections 1, 6, 7, and 8 only.
118 \&.\e\(dq .SH EXIT STATUS
119 \&.\e\(dq For sections 1, 6, and 8 only.
120 \&.\e\(dq .SH EXAMPLES
121 \&.\e\(dq .SH DIAGNOSTICS
122 \&.\e\(dq For sections 1, 4, 6, 7, 8, and 9 printf/stderr messages only.
124 \&.\e\(dq For sections 2, 3, 4, and 9 errno settings only.
125 \&.\e\(dq .SH SEE ALSO
126 \&.\e\(dq .BR foobar ( 1 )
127 \&.\e\(dq .SH STANDARDS
128 \&.\e\(dq .SH HISTORY
129 \&.\e\(dq .SH AUTHORS
130 \&.\e\(dq .SH CAVEATS
132 \&.\e\(dq .SH SECURITY CONSIDERATIONS
133 \&.\e\(dq Not used in OpenBSD.
138 document are conventionally ordered as they appear above.
139 Sections should be composed as follows:
140 .Bl -ohang -offset indent
142 The name(s) and a short description of the documented material.
143 The syntax for this is generally as follows:
145 .D1 \efBname\efR \e(en description
147 The name of the library containing the documented material, which is
148 assumed to be a function in a section 2 or 3 manual.
149 For functions in the C library, this may be as follows:
151 .D1 Standard C Library (libc, -lc)
153 Documents the utility invocation syntax, function call syntax, or device
156 For the first, utilities (sections 1, 6, and 8), this is
157 generally structured as follows:
159 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
161 For the second, function calls (sections 2, 3, 9):
163 .D1 \&.B char *name(char *\efIarg\efR);
165 And for the third, configurations (section 4):
167 .D1 \&.B name* at cardbus ? function ?
169 Manuals not in these sections generally don't need a
172 This expands upon the brief, one-line description in
174 It usually contains a break-down of the options (if documenting a
177 This section lists the contexts in which functions can be called in section 9.
178 The contexts are autoconf, process, or interrupt.
179 .It Em IMPLEMENTATION NOTES
180 Implementation-specific notes should be kept here.
181 This is useful when implementing standard functions that may have side
182 effects or notable algorithmic implications.
184 This section documents the return values of functions in sections 2, 3, and 9.
186 Documents any usages of environment variables, e.g.,
189 Documents files used.
190 It's helpful to document both the file name and a short description of how
191 the file is used (created, modified, etc.).
193 This section documents the command exit status for
194 section 1, 6, and 8 utilities.
195 Historically, this information was described in
197 a practise that is now discouraged.
200 This often contains snippets of well-formed,
201 well-tested invocations.
202 Make sure that examples work properly!
204 Documents error conditions.
205 In section 4 and 9 manuals, these are usually messages
206 printed by the kernel to the console and to the kernel log.
207 In section 1, 6, 7, and 8, these are usually messages
208 printed by userland programs to the standard error output.
210 Historically, this section was used in place of
212 for manuals in sections 1, 6, and 8; however, this practise is
217 settings in sections 2, 3, 4, and 9.
219 References other manuals with related topics.
220 This section should exist for most manuals.
222 .D1 \&.BR bar \&( 1 \&),
224 Cross-references should conventionally be ordered
225 first by section, then alphabetically.
227 References any standards implemented or used, such as
229 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
231 If not adhering to any standards, the
233 section should be used.
235 A brief history of the subject, including where support first appeared.
237 Credits to the person or persons who wrote the code and/or documentation.
238 Authors should generally be noted by both name and email address.
240 Common misuses and misunderstandings should be explained
243 Known bugs, limitations, and work-arounds should be described
245 .It Em SECURITY CONSIDERATIONS
246 Documents any security precautions that operators should consider.
249 This overview is sorted such that macros of similar purpose are listed
250 together, to help find the best macro for any given purpose.
251 Deprecated macros are not included in the overview, but can be found
252 in the alphabetical reference below.
253 .Ss Page header and footer meta-data
254 .Bl -column "PP, LP, P" description
255 .It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
256 .It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
257 .It Sx UC Ta display BSD version in the page footer (<= 1 argument)
259 .Ss Sections and paragraphs
260 .Bl -column "PP, LP, P" description
261 .It Sx SH Ta section header (one line)
262 .It Sx SS Ta subsection header (one line)
263 .It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
264 .It Sx RS , RE Ta reset the left margin: Op Ar width
265 .It Sx IP Ta indented paragraph: Op Ar head Op Ar width
266 .It Sx TP Ta tagged paragraph: Op Ar width
267 .It Sx HP Ta hanged paragraph: Op Ar width
268 .It Sx PD Ta set vertical paragraph distance: Op Ar height
269 .It Sx \&br Ta force output line break in text mode (no arguments)
270 .It Sx \&sp Ta force vertical space: Op Ar height
271 .It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
272 .It Sx in Ta additional indent: Op Ar width
275 .Bl -column "PP, LP, P" description
276 .It Sx B Ta boldface font
277 .It Sx I Ta italic font
278 .It Sx R Ta roman (default) font
279 .It Sx SB Ta small boldface font
280 .It Sx SM Ta small roman font
281 .It Sx BI Ta alternate between boldface and italic fonts
282 .It Sx BR Ta alternate between boldface and roman fonts
283 .It Sx IB Ta alternate between italic and boldface fonts
284 .It Sx IR Ta alternate between italic and roman fonts
285 .It Sx RB Ta alternate between roman and boldface fonts
286 .It Sx RI Ta alternate between roman and italic fonts
289 This section is a canonical reference to all macros, arranged
291 For the scoping of individual macros, see
294 Sets the volume for the footer for compatibility with man pages from
297 The optional arguments specify which release it is from.
299 Text is rendered in bold face.
306 Text is rendered alternately in bold face and italic.
308 .Sq .BI this word and that
313 to render in bold face, while
318 Whitespace between arguments is omitted in output.
322 .Dl \&.BI bold italic bold italic
324 The output of this example will be emboldened
328 with spaces stripped between arguments.
338 Text is rendered alternately in bold face and roman (the default font).
339 Whitespace between arguments is omitted in output.
343 for an equivalent example.
354 Included for compatibility.
356 This is a non-standard GNU extension, included only for compatibility.
362 This is a non-standard GNU extension, included only for compatibility.
368 Begin a paragraph whose initial output line is left-justified, but
369 subsequent output lines are indented, with the following syntax:
370 .Bd -filled -offset indent
380 If specified, it's saved for later paragraph left-margins; if unspecified, the
381 saved or default width is used.
391 Text is rendered in italics.
398 Text is rendered alternately in italics and bold face.
399 Whitespace between arguments is omitted in output.
403 for an equivalent example.
413 Begin an indented paragraph with the following syntax:
414 .Bd -filled -offset indent
416 .Op Cm head Op Cm width
423 scaling width defining the left margin.
424 It's saved for later paragraph left-margins; if unspecified, the saved or
425 default width is used.
429 argument is used as a leading term, flushed to the left margin.
430 This is useful for bulleted paragraphs and so on.
440 Text is rendered alternately in italics and roman (the default font).
441 Whitespace between arguments is omitted in output.
445 for an equivalent example.
455 Begin an undecorated paragraph.
456 The scope of a paragraph is closed by a subsequent paragraph,
457 sub-section, section, or end of file.
458 The saved paragraph left-margin width is reset to the default.
468 Optional command-line argument.
469 This is a non-standard GNU extension, included only for compatibility.
470 It has the following syntax:
471 .Bd -filled -offset indent
478 is usually a command-line flag and
493 Specify the vertical space to be inserted before each new paragraph.
495 The syntax is as follows:
496 .Bd -filled -offset indent
508 If the unit is omitted,
512 This macro affects the spacing before any subsequent instances of
534 Text is rendered in roman (the default font).
541 Text is rendered alternately in roman (the default font) and bold face.
542 Whitespace between arguments is omitted in output.
546 for an equivalent example.
556 Explicitly close out the scope of a prior
558 The default left margin is restored to the state of the original
562 Text is rendered alternately in roman (the default font) and italics.
563 Whitespace between arguments is omitted in output.
567 for an equivalent example.
577 Temporarily reset the default left margin.
578 This has the following syntax:
579 .Bd -filled -offset indent
589 If not specified, the saved or default width is used.
594 Text is rendered in small size (one point smaller than the default font)
598 The scope of a section is only closed by another section or the end of
600 The paragraph left-margin width is reset to the default.
602 Text is rendered in small size (one point smaller than the default
606 The scope of a sub-section is closed by a subsequent sub-section,
607 section, or end of file.
608 The paragraph left-margin width is reset to the default.
610 Sets the title of the manual page with the following syntax:
611 .Bd -filled -offset indent
613 .Ar title section date
614 .Op Ar source Op Ar volume
617 Conventionally, the document
619 is given in all caps.
624 as specified in the ISO-8601 standard;
625 if the argument does not conform, it is printed verbatim.
628 is empty or not specified, the current date is used.
631 string specifies the organisation providing the utility.
634 string replaces the default rendered volume, which is dictated by the
639 .Dl \&.TH CVS 5 "1992-02-12" GNU
641 Begin a paragraph where the head, if exceeding the indentation width, is
642 followed by a newline; if not, the body follows on the same line after a
643 buffer to the indentation width.
644 Subsequent output lines are indented.
645 The syntax is as follows:
646 .Bd -filled -offset indent
656 If specified, it's saved for later paragraph left-margins; if
657 unspecified, the saved or default width is used.
667 Sets the volume for the footer for compatibility with man pages from
670 The optional first argument specifies which release it is from.
672 End a uniform resource identifier block.
673 This is a non-standard GNU extension, included only for compatibility.
677 Begin a uniform resource identifier block.
678 This is a non-standard GNU extension, included only for compatibility.
679 It has the following syntax:
680 .Bd -literal -offset indent
681 .Pf \. Sx \&UR Ar uri
682 link description to be shown
686 Breaks the current line.
687 Consecutive invocations have no further effect.
692 End literal mode begun by
695 Indent relative to the current indentation:
697 .D1 Pf \. Sx \&in Op Cm width
701 is signed, the new offset is relative.
702 Otherwise, it is absolute.
703 This value is reset upon the next paragraph, section, or sub-section.
705 Don't align to the right margin.
707 Begin literal mode: all subsequent free-form lines have their end of
708 line boundaries preserved.
711 Literal mode is implicitly ended by
716 Insert vertical spaces into output with the following syntax:
717 .Bd -filled -offset indent
724 argument is a scaling width as described in
726 If 0, this is equivalent to the
729 Defaults to 1, if unspecified.
736 macros are classified by scope: line scope or block scope.
737 Line macros are only scoped to the current line (and, in some
738 situations, the subsequent line).
739 Block macros are scoped to the current line and subsequent lines until
740 closed by another block macro.
742 Line macros are generally scoped to the current line, with the body
743 consisting of zero or more arguments.
744 If a macro is scoped to the next line and the line arguments are empty,
745 the next line, which must be text, is used instead.
747 .Bd -literal -offset indent
754 If next-line macros are invoked consecutively, only the last is used.
755 If a next-line macro is followed by a non-next-line macro, an error is
762 The syntax is as follows:
763 .Bd -literal -offset indent
764 \&.YO \(lBbody...\(rB
767 .Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
768 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
769 .It Sx \&AT Ta <=1 Ta current Ta \&
770 .It Sx \&B Ta n Ta next-line Ta \&
771 .It Sx \&BI Ta n Ta current Ta \&
772 .It Sx \&BR Ta n Ta current Ta \&
773 .It Sx \&DT Ta 0 Ta current Ta \&
774 .It Sx \&EE Ta 0 Ta current Ta compat
775 .It Sx \&EX Ta 0 Ta current Ta compat
776 .It Sx \&I Ta n Ta next-line Ta \&
777 .It Sx \&IB Ta n Ta current Ta \&
778 .It Sx \&IR Ta n Ta current Ta \&
779 .It Sx \&OP Ta 0, 1 Ta current Ta compat
780 .It Sx \&PD Ta 1 Ta current Ta \&
781 .It Sx \&R Ta n Ta next-line Ta \&
782 .It Sx \&RB Ta n Ta current Ta \&
783 .It Sx \&RI Ta n Ta current Ta \&
784 .It Sx \&SB Ta n Ta next-line Ta \&
785 .It Sx \&SM Ta n Ta next-line Ta \&
786 .It Sx \&TH Ta >1, <6 Ta current Ta \&
787 .It Sx \&UC Ta <=1 Ta current Ta \&
788 .It Sx \&br Ta 0 Ta current Ta compat
789 .It Sx \&fi Ta 0 Ta current Ta compat
790 .It Sx \&in Ta 1 Ta current Ta compat
791 .It Sx \&na Ta 0 Ta current Ta compat
792 .It Sx \&nf Ta 0 Ta current Ta compat
793 .It Sx \&sp Ta 1 Ta current Ta compat
798 are included for compatibility with the significant corpus of existing
799 manuals that mix dialects of roff.
800 These macros should not be used for portable
804 Block macros comprise a head and body.
805 As with in-line macros, the head is scoped to the current line and, in
806 one circumstance, the next line (the next-line stipulations as in
810 The syntax is as follows:
811 .Bd -literal -offset indent
812 \&.YO \(lBhead...\(rB
817 The closure of body scope may be to the section, where a macro is closed
820 sub-section, closed by a section or
822 part, closed by a section, sub-section, or
824 or paragraph, closed by a section, sub-section, part,
832 No closure refers to an explicit block closing macro.
834 As a rule, block macros may not be nested; thus, calling a block macro
835 while another block macro scope is open, and the open scope is not
836 implicitly closed, is syntactically incorrect.
837 .Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
838 .It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
839 .It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
840 .It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
841 .It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
842 .It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
843 .It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
844 .It Sx \&RE Ta 0 Ta current Ta none Ta compat
845 .It Sx \&RS Ta 1 Ta current Ta part Ta compat
846 .It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
847 .It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
848 .It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
849 .It Sx \&UE Ta 0 Ta current Ta none Ta compat
850 .It Sx \&UR Ta 1 Ta current Ta part Ta compat
858 If a block macro is next-line scoped, it may only be followed by in-line
859 macros for decorating text.
868 font escape sequences can be used to choose fonts.
869 In text lines, the effect of manual font selection by escape sequences
870 only lasts until the next macro invocation; in macro lines, it only lasts
871 until the end of the macro scope.
872 Note that macros like
874 open and close a font scope for each argument.
876 This section mentions some areas of questionable portability between
877 implementations of the
880 More incompatibilities exist.
888 to close out a literal context opened with
890 This behaviour may not be portable.
892 troff suppresses a newline before
894 macro output; in mandoc, it is an alias for the standard
898 In page header lines, GNU troff versions up to and including 1.21
901 names explicitly specified in the
903 macro; mandoc and newer groff print the default volume name
919 macros are part of the GNU extended
921 macro set, and may not be portable to non-GNU troff implementations.
933 language first appeared as a macro package for the roff typesetting
936 It was later rewritten by James Clark as a macro package for groff.
937 Eric S. Raymond wrote the extended
939 macros for groff in 2007.
940 The stand-alone implementation that is part of the
942 utility written by Kristaps Dzonsons appeared in
947 reference was written by
948 .An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
950 Do not use this language.