1 .\" $Id: man.7,v 1.125 2014/03/17 06:57:48 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: March 17 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 IMPLEMENTATION NOTES
110 \&.\e\(dq Not used in OpenBSD.
111 \&.\e\(dq .SH RETURN VALUES
112 \&.\e\(dq For sections 2, 3, and 9 function return values only.
113 \&.\e\(dq .SH ENVIRONMENT
114 \&.\e\(dq For sections 1, 6, 7, and 8 only.
116 \&.\e\(dq .SH EXIT STATUS
117 \&.\e\(dq For sections 1, 6, and 8 only.
118 \&.\e\(dq .SH EXAMPLES
119 \&.\e\(dq .SH DIAGNOSTICS
120 \&.\e\(dq For sections 1, 4, 6, 7, 8, and 9 printf/stderr messages only.
122 \&.\e\(dq For sections 2, 3, 4, and 9 errno settings only.
123 \&.\e\(dq .SH SEE ALSO
124 \&.\e\(dq .BR foobar ( 1 )
125 \&.\e\(dq .SH STANDARDS
126 \&.\e\(dq .SH HISTORY
127 \&.\e\(dq .SH AUTHORS
128 \&.\e\(dq .SH CAVEATS
130 \&.\e\(dq .SH SECURITY CONSIDERATIONS
131 \&.\e\(dq Not used in OpenBSD.
136 document are conventionally ordered as they appear above.
137 Sections should be composed as follows:
138 .Bl -ohang -offset indent
140 The name(s) and a short description of the documented material.
141 The syntax for this is generally as follows:
143 .D1 \efBname\efR \e(en description
145 The name of the library containing the documented material, which is
146 assumed to be a function in a section 2 or 3 manual.
147 For functions in the C library, this may be as follows:
149 .D1 Standard C Library (libc, -lc)
151 Documents the utility invocation syntax, function call syntax, or device
154 For the first, utilities (sections 1, 6, and 8), this is
155 generally structured as follows:
157 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
159 For the second, function calls (sections 2, 3, 9):
161 .D1 \&.B char *name(char *\efIarg\efR);
163 And for the third, configurations (section 4):
165 .D1 \&.B name* at cardbus ? function ?
167 Manuals not in these sections generally don't need a
170 This expands upon the brief, one-line description in
172 It usually contains a break-down of the options (if documenting a
174 .It Em IMPLEMENTATION NOTES
175 Implementation-specific notes should be kept here.
176 This is useful when implementing standard functions that may have side
177 effects or notable algorithmic implications.
179 This section documents the return values of functions in sections 2, 3, and 9.
181 Documents any usages of environment variables, e.g.,
184 Documents files used.
185 It's helpful to document both the file name and a short description of how
186 the file is used (created, modified, etc.).
188 This section documents the command exit status for
189 section 1, 6, and 8 utilities.
190 Historically, this information was described in
192 a practise that is now discouraged.
195 This often contains snippets of well-formed,
196 well-tested invocations.
197 Make sure that examples work properly!
199 Documents error conditions.
200 In section 4 and 9 manuals, these are usually messages
201 printed by the kernel to the console and to the kernel log.
202 In section 1, 6, 7, and 8, these are usually messages
203 printed by userland programs to the standard error output.
205 Historically, this section was used in place of
207 for manuals in sections 1, 6, and 8; however, this practise is
212 settings in sections 2, 3, 4, and 9.
214 References other manuals with related topics.
215 This section should exist for most manuals.
217 .D1 \&.BR bar \&( 1 \&),
219 Cross-references should conventionally be ordered
220 first by section, then alphabetically.
222 References any standards implemented or used, such as
224 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
226 If not adhering to any standards, the
228 section should be used.
230 A brief history of the subject, including where support first appeared.
232 Credits to the person or persons who wrote the code and/or documentation.
233 Authors should generally be noted by both name and email address.
235 Common misuses and misunderstandings should be explained
238 Known bugs, limitations, and work-arounds should be described
240 .It Em SECURITY CONSIDERATIONS
241 Documents any security precautions that operators should consider.
244 This overview is sorted such that macros of similar purpose are listed
245 together, to help find the best macro for any given purpose.
246 Deprecated macros are not included in the overview, but can be found
247 in the alphabetical reference below.
248 .Ss Page header and footer meta-data
249 .Bl -column "PP, LP, P" description
250 .It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
251 .It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
252 .It Sx UC Ta display BSD version in the page footer (<= 1 argument)
254 .Ss Sections and paragraphs
255 .Bl -column "PP, LP, P" description
256 .It Sx SH Ta section header (one line)
257 .It Sx SS Ta subsection header (one line)
258 .It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
259 .It Sx RS , RE Ta reset the left margin: Op Ar width
260 .It Sx IP Ta indented paragraph: Op Ar head Op Ar width
261 .It Sx TP Ta tagged paragraph: Op Ar width
262 .It Sx HP Ta hanged paragraph: Op Ar width
263 .It Sx PD Ta set vertical paragraph distance: Op Ar height
264 .It Sx \&br Ta force output line break in text mode (no arguments)
265 .It Sx \&sp Ta force vertical space: Op Ar height
266 .It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
267 .It Sx in Ta additional indent: Op Ar width
270 .Bl -column "PP, LP, P" description
271 .It Sx B Ta boldface font
272 .It Sx I Ta italic font
273 .It Sx R Ta roman (default) font
274 .It Sx SB Ta small boldface font
275 .It Sx SM Ta small roman font
276 .It Sx BI Ta alternate between boldface and italic fonts
277 .It Sx BR Ta alternate between boldface and roman fonts
278 .It Sx IB Ta alternate between italic and boldface fonts
279 .It Sx IR Ta alternate between italic and roman fonts
280 .It Sx RB Ta alternate between roman and boldface fonts
281 .It Sx RI Ta alternate between roman and italic fonts
284 This section is a canonical reference to all macros, arranged
286 For the scoping of individual macros, see
289 Sets the volume for the footer for compatibility with man pages from
292 The optional arguments specify which release it is from.
294 Text is rendered in bold face.
301 Text is rendered alternately in bold face and italic.
303 .Sq .BI this word and that
308 to render in bold face, while
313 Whitespace between arguments is omitted in output.
317 .Dl \&.BI bold italic bold italic
319 The output of this example will be emboldened
323 with spaces stripped between arguments.
333 Text is rendered alternately in bold face and roman (the default font).
334 Whitespace between arguments is omitted in output.
338 for an equivalent example.
349 Included for compatibility.
351 This is a non-standard GNU extension, included only for compatibility.
357 This is a non-standard GNU extension, included only for compatibility.
363 Begin a paragraph whose initial output line is left-justified, but
364 subsequent output lines are indented, with the following syntax:
365 .Bd -filled -offset indent
375 If specified, it's saved for later paragraph left-margins; if unspecified, the
376 saved or default width is used.
386 Text is rendered in italics.
393 Text is rendered alternately in italics and bold face.
394 Whitespace between arguments is omitted in output.
398 for an equivalent example.
408 Begin an indented paragraph with the following syntax:
409 .Bd -filled -offset indent
411 .Op Cm head Op Cm width
418 scaling width defining the left margin.
419 It's saved for later paragraph left-margins; if unspecified, the saved or
420 default width is used.
424 argument is used as a leading term, flushed to the left margin.
425 This is useful for bulleted paragraphs and so on.
435 Text is rendered alternately in italics and roman (the default font).
436 Whitespace between arguments is omitted in output.
440 for an equivalent example.
450 Begin an undecorated paragraph.
451 The scope of a paragraph is closed by a subsequent paragraph,
452 sub-section, section, or end of file.
453 The saved paragraph left-margin width is reset to the default.
463 Optional command-line argument.
464 This is a non-standard GNU extension, included only for compatibility.
465 It has the following syntax:
466 .Bd -filled -offset indent
473 is usually a command-line flag and
488 Specify the vertical space to be inserted before each new paragraph.
490 The syntax is as follows:
491 .Bd -filled -offset indent
503 If the unit is omitted,
507 This macro affects the spacing before any subsequent instances of
529 Text is rendered in roman (the default font).
536 Text is rendered alternately in roman (the default font) and bold face.
537 Whitespace between arguments is omitted in output.
541 for an equivalent example.
551 Explicitly close out the scope of a prior
553 The default left margin is restored to the state of the original
557 Text is rendered alternately in roman (the default font) and italics.
558 Whitespace between arguments is omitted in output.
562 for an equivalent example.
572 Temporarily reset the default left margin.
573 This has the following syntax:
574 .Bd -filled -offset indent
584 If not specified, the saved or default width is used.
589 Text is rendered in small size (one point smaller than the default font)
593 The scope of a section is only closed by another section or the end of
595 The paragraph left-margin width is reset to the default.
597 Text is rendered in small size (one point smaller than the default
601 The scope of a sub-section is closed by a subsequent sub-section,
602 section, or end of file.
603 The paragraph left-margin width is reset to the default.
605 Sets the title of the manual page with the following syntax:
606 .Bd -filled -offset indent
608 .Ar title section date
609 .Op Ar source Op Ar volume
612 Conventionally, the document
614 is given in all caps.
619 as specified in the ISO-8601 standard;
620 if the argument does not conform, it is printed verbatim.
623 is empty or not specified, the current date is used.
626 string specifies the organisation providing the utility.
629 string replaces the default rendered volume, which is dictated by the
634 .Dl \&.TH CVS 5 "1992-02-12" GNU
636 Begin a paragraph where the head, if exceeding the indentation width, is
637 followed by a newline; if not, the body follows on the same line after a
638 buffer to the indentation width.
639 Subsequent output lines are indented.
640 The syntax is as follows:
641 .Bd -filled -offset indent
651 If specified, it's saved for later paragraph left-margins; if
652 unspecified, the saved or default width is used.
662 Sets the volume for the footer for compatibility with man pages from
665 The optional first argument specifies which release it is from.
667 End a uniform resource identifier block.
668 This is a non-standard GNU extension, included only for compatibility.
672 Begin a uniform resource identifier block.
673 This is a non-standard GNU extension, included only for compatibility.
674 It has the following syntax:
675 .Bd -literal -offset indent
676 .Pf \. Sx \&UR Ar uri
677 link description to be shown
681 Breaks the current line.
682 Consecutive invocations have no further effect.
687 End literal mode begun by
690 Indent relative to the current indentation:
692 .D1 Pf \. Sx \&in Op Cm width
696 is signed, the new offset is relative.
697 Otherwise, it is absolute.
698 This value is reset upon the next paragraph, section, or sub-section.
700 Don't align to the right margin.
702 Begin literal mode: all subsequent free-form lines have their end of
703 line boundaries preserved.
706 Literal mode is implicitly ended by
711 Insert vertical spaces into output with the following syntax:
712 .Bd -filled -offset indent
719 argument is a scaling width as described in
721 If 0, this is equivalent to the
724 Defaults to 1, if unspecified.
731 macros are classified by scope: line scope or block scope.
732 Line macros are only scoped to the current line (and, in some
733 situations, the subsequent line).
734 Block macros are scoped to the current line and subsequent lines until
735 closed by another block macro.
737 Line macros are generally scoped to the current line, with the body
738 consisting of zero or more arguments.
739 If a macro is scoped to the next line and the line arguments are empty,
740 the next line, which must be text, is used instead.
742 .Bd -literal -offset indent
749 If next-line macros are invoked consecutively, only the last is used.
750 If a next-line macro is followed by a non-next-line macro, an error is
757 The syntax is as follows:
758 .Bd -literal -offset indent
759 \&.YO \(lBbody...\(rB
762 .Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
763 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
764 .It Sx \&AT Ta <=1 Ta current Ta \&
765 .It Sx \&B Ta n Ta next-line Ta \&
766 .It Sx \&BI Ta n Ta current Ta \&
767 .It Sx \&BR Ta n Ta current Ta \&
768 .It Sx \&DT Ta 0 Ta current Ta \&
769 .It Sx \&EE Ta 0 Ta current Ta compat
770 .It Sx \&EX Ta 0 Ta current Ta compat
771 .It Sx \&I Ta n Ta next-line Ta \&
772 .It Sx \&IB Ta n Ta current Ta \&
773 .It Sx \&IR Ta n Ta current Ta \&
774 .It Sx \&OP Ta 0, 1 Ta current Ta compat
775 .It Sx \&PD Ta 1 Ta current Ta \&
776 .It Sx \&R Ta n Ta next-line Ta \&
777 .It Sx \&RB Ta n Ta current Ta \&
778 .It Sx \&RI Ta n Ta current Ta \&
779 .It Sx \&SB Ta n Ta next-line Ta \&
780 .It Sx \&SM Ta n Ta next-line Ta \&
781 .It Sx \&TH Ta >1, <6 Ta current Ta \&
782 .It Sx \&UC Ta <=1 Ta current Ta \&
783 .It Sx \&br Ta 0 Ta current Ta compat
784 .It Sx \&fi Ta 0 Ta current Ta compat
785 .It Sx \&in Ta 1 Ta current Ta compat
786 .It Sx \&na Ta 0 Ta current Ta compat
787 .It Sx \&nf Ta 0 Ta current Ta compat
788 .It Sx \&sp Ta 1 Ta current Ta compat
793 are included for compatibility with the significant corpus of existing
794 manuals that mix dialects of roff.
795 These macros should not be used for portable
799 Block macros comprise a head and body.
800 As with in-line macros, the head is scoped to the current line and, in
801 one circumstance, the next line (the next-line stipulations as in
805 The syntax is as follows:
806 .Bd -literal -offset indent
807 \&.YO \(lBhead...\(rB
812 The closure of body scope may be to the section, where a macro is closed
815 sub-section, closed by a section or
817 part, closed by a section, sub-section, or
819 or paragraph, closed by a section, sub-section, part,
827 No closure refers to an explicit block closing macro.
829 As a rule, block macros may not be nested; thus, calling a block macro
830 while another block macro scope is open, and the open scope is not
831 implicitly closed, is syntactically incorrect.
832 .Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
833 .It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
834 .It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
835 .It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
836 .It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
837 .It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
838 .It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
839 .It Sx \&RE Ta 0 Ta current Ta none Ta compat
840 .It Sx \&RS Ta 1 Ta current Ta part Ta compat
841 .It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
842 .It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
843 .It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
844 .It Sx \&UE Ta 0 Ta current Ta none Ta compat
845 .It Sx \&UR Ta 1 Ta current Ta part Ta compat
853 If a block macro is next-line scoped, it may only be followed by in-line
854 macros for decorating text.
863 font escape sequences can be used to choose fonts.
864 In text lines, the effect of manual font selection by escape sequences
865 only lasts until the next macro invocation; in macro lines, it only lasts
866 until the end of the macro scope.
867 Note that macros like
869 open and close a font scope for each argument.
871 This section documents areas of questionable portability between
872 implementations of the
882 to close out a literal context opened with
884 This behaviour may not be portable.
886 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
887 a standalone double-quote in formatted output.
888 It is not known whether this behaviour is exhibited by other formatters.
890 troff suppresses a newline before
892 macro output; in mandoc, it is an alias for the standard
898 .Pq horizontal position ,
900 .Pq vertical position ,
904 .Pq text filling colour ,
906 .Pq zero-length character ,
910 .Pq horizontal position marker ,
912 .Pq text overstrike ,
916 escape sequences are all discarded in mandoc.
920 scaling unit is accepted by mandoc, but rendered as the default unit.
924 macro does not accept negative values in mandoc.
925 In GNU troff, this would result in strange behaviour.
927 In page header lines, GNU troff versions up to and including 1.21
930 names explicitly specified in the
932 macro; mandoc and newer groff print the default volume name
943 macro is part of the extended
945 macro set, and may not be portable to non-GNU troff implementations.
957 language first appeared as a macro package for the roff typesetting
960 It was later rewritten by James Clark as a macro package for groff.
961 Eric S. Raymond wrote the extended
963 macros for groff in 2007.
964 The stand-alone implementation that is part of the
966 utility written by Kristaps Dzonsons appeared in
971 reference was written by
972 .An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
974 Do not use this language.