1 .\" $Id: man.7,v 1.81 2010/08/06 17:07:11 schwarze Exp $
3 .\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 .Dd $Mdocdate: August 6 2010 $
22 .Nd man language reference
26 language was historically used to format
29 This reference document describes its syntax, structure, and usage.
34 to write your manuals.
42 document follows simple rules: lines beginning with the control
45 are parsed for macros.
46 Other lines are interpreted within the scope of
48 .Bd -literal -offset indent
49 \&.SH Macro lines change control state.
50 Other lines are interpreted within the current state.
54 documents may contain only graphable 7-bit ASCII characters, the
55 space character, and the tab character.
60 Blank lines are acceptable; where found, the output will assert a
65 whether in a macro or free-form text line, is ignored to the end of
67 A macro line with only a control character and comment escape,
70 Macro lines with only a control character and optionally whitespace are
72 .Ss Special Characters
73 Special characters may occur in both macro and free-form lines.
74 Sequences begin with the escape character
76 followed by either an open-parenthesis
78 for two-character sequences; an open-bracket
80 for n-character sequences (terminated at a close-bracket
82 or a single one-character sequence.
93 Terms may be text-decorated using the
95 escape followed by an indicator: B (bold), I (italic), R (Roman), or P
96 (revert to previous mode):
98 .D1 \efBbold\efR \efIitalic\efP
100 A numerical representation 3, 2, or 1 (bold, italic, and Roman,
101 respectively) may be used instead.
102 A text decoration is only valid, if specified in free-form text, until
103 the next macro invocation; if specified within a macro, it's only valid
104 until the macro closes scope.
105 Note that macros like
107 open and close a font scope with each argument.
111 attribute is forgotten when entering or exiting a macro block.
113 Whitespace consists of the space character.
114 In free-form lines, whitespace is preserved within a line; unescaped
115 trailing spaces are stripped from input (unless in a literal context).
116 Blank free-form lines, which may include spaces, are permitted and
117 rendered as an empty line.
119 In macro lines, whitespace delimits arguments and is discarded.
120 If arguments are quoted, whitespace within the quotes is retained.
126 macro that requires a date.
127 The form for this date is the ISO-8601
131 Many macros support scaled widths for their arguments, such as
132 stipulating a two-inch paragraph indentation with the following:
133 .Bd -literal -offset indent
137 The syntax for scaled widths is
138 .Sq Li [+-]?[0-9]*.[0-9]*[:unit:]? ,
139 where a decimal must be preceded or proceeded by at least one digit.
140 Negative numbers, while accepted, are truncated to zero.
141 The following scaling units are accepted:
143 .Bl -tag -width Ds -offset indent -compact
156 default vertical span
168 default horizontal span
173 Using anything other than
179 is necessarily non-portable across output media.
181 If a scaling unit is not provided, the numerical value is interpreted
182 under the default rules of
184 for vertical spaces and
190 which, if a unit is not provided, will instead interpret the string as
193 When composing a manual, make sure that sentences end at the end of
195 By doing so, front-ends will be able to apply the proper amount of
196 spacing after the end of sentence (unescaped) period, exclamation mark,
197 or question mark followed by zero or more non-sentence closing
208 document must contain the
210 macro describing the document's section and title.
211 It may occur anywhere in the document, although conventionally it
212 appears as the first macro.
216 at least one macro or text node must appear in the document.
217 Documents are generally structured as follows:
218 .Bd -literal -offset indent
219 \&.TH FOO 1 2009-10-10
221 \efBfoo\efR \e(en a description goes here
222 \&.\e\*q The next is for sections 2 & 3 only.
225 \efBfoo\efR [\efB\e-options\efR] arguments...
227 The \efBfoo\efR utility processes files...
228 \&.\e\*q .SH IMPLEMENTATION NOTES
229 \&.\e\*q The next is for sections 2, 3, & 9 only.
230 \&.\e\*q .SH RETURN VALUES
231 \&.\e\*q The next is for sections 1, 6, 7, & 8 only.
232 \&.\e\*q .SH ENVIRONMENT
234 \&.\e\*q The next is for sections 1 & 8 only.
235 \&.\e\*q .SH EXIT STATUS
236 \&.\e\*q .SH EXAMPLES
237 \&.\e\*q The next is for sections 1, 4, 6, 7, & 8 only.
238 \&.\e\*q .SH DIAGNOSTICS
239 \&.\e\*q The next is for sections 2, 3, & 9 only.
241 \&.\e\*q .SH SEE ALSO
242 \&.\e\*q .BR foo ( 1 )
243 \&.\e\*q .SH STANDARDS
248 \&.\e\*q .SH SECURITY CONSIDERATIONS
253 document are conventionally ordered as they appear above.
254 Sections should be composed as follows:
255 .Bl -ohang -offset indent
257 The name(s) and a short description of the documented material.
258 The syntax for this is generally as follows:
260 .D1 \efBname\efR \e(en description
262 The name of the library containing the documented material, which is
263 assumed to be a function in a section 2 or 3 manual.
264 For functions in the C library, this may be as follows:
266 .D1 Standard C Library (libc, -lc)
268 Documents the utility invocation syntax, function call syntax, or device
271 For the first, utilities (sections 1, 6, and 8), this is
272 generally structured as follows:
274 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
276 For the second, function calls (sections 2, 3, 9):
278 .D1 \&.B char *name(char *\efIarg\efR);
280 And for the third, configurations (section 4):
282 .D1 \&.B name* at cardbus ? function ?
284 Manuals not in these sections generally don't need a
287 This expands upon the brief, one-line description in
289 It usually contains a break-down of the options (if documenting a
291 .It Em IMPLEMENTATION NOTES
292 Implementation-specific notes should be kept here.
293 This is useful when implementing standard functions that may have side
294 effects or notable algorithmic implications.
296 This section documents the return values of functions in sections 2, 3, and 9.
298 Documents any usages of environment variables, e.g.,
301 Documents files used.
302 It's helpful to document both the file name and a short description of how
303 the file is used (created, modified, etc.).
305 This section documents the command exit status for
306 section 1, 6, and 8 utilities.
307 Historically, this information was described in
309 a practise that is now discouraged.
312 This often contains snippets of well-formed,
313 well-tested invocations.
314 Make sure that examples work properly!
316 Documents error conditions.
317 This is most useful in section 4 manuals.
318 Historically, this section was used in place of
320 for manuals in sections 1, 6, and 8; however, this practise is
323 Documents error handling in sections 2, 3, and 9.
325 References other manuals with related topics.
326 This section should exist for most manuals.
328 .D1 \&.BR bar \&( 1 \&),
330 Cross-references should conventionally be ordered
331 first by section, then alphabetically.
333 References any standards implemented or used, such as
335 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
337 If not adhering to any standards, the
339 section should be used.
341 A brief history of the subject, including where support first appeared.
343 Credits to the person or persons who wrote the code and/or documentation.
344 Authors should generally be noted by both name and email address.
346 Common misuses and misunderstandings should be explained
349 Known bugs, limitations, and work-arounds should be described
351 .It Em SECURITY CONSIDERATIONS
352 Documents any security precautions that operators should consider.
355 Macros are one to three characters in length and begin with a
358 at the beginning of the line.
361 macro control character is also accepted.
362 An arbitrary amount of whitespace (spaces or tabs) may sit between the
363 control character and the macro name.
364 Thus, the following are equivalent:
365 .Bd -literal -offset indent
372 macros are classified by scope: line scope or block scope.
373 Line macros are only scoped to the current line (and, in some
374 situations, the subsequent line).
375 Block macros are scoped to the current line and subsequent lines until
376 closed by another block macro.
378 Line macros are generally scoped to the current line, with the body
379 consisting of zero or more arguments.
380 If a macro is scoped to the next line and the line arguments are empty,
381 the next line, which must be text, is used instead.
383 .Bd -literal -offset indent
390 If next-line macros are invoked consecutively, only the last is used.
391 If a next-line macro is followed by a non-next-line macro, an error is
398 The syntax is as follows:
399 .Bd -literal -offset indent
400 \&.YO \(lBbody...\(rB
404 .Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX"
405 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
406 .It Sx \&AT Ta <=1 Ta current Ta \&
407 .It Sx \&B Ta n Ta next-line Ta \&
408 .It Sx \&BI Ta n Ta current Ta \&
409 .It Sx \&BR Ta n Ta current Ta \&
410 .It Sx \&DT Ta 0 Ta current Ta \&
411 .It Sx \&I Ta n Ta next-line Ta \&
412 .It Sx \&IB Ta n Ta current Ta \&
413 .It Sx \&IR Ta n Ta current Ta \&
414 .\" .It Sx \&PD Ta n Ta current Ta compat
415 .It Sx \&R Ta n Ta next-line Ta \&
416 .It Sx \&RB Ta n Ta current Ta \&
417 .It Sx \&RI Ta n Ta current Ta \&
418 .It Sx \&SB Ta n Ta next-line Ta \&
419 .It Sx \&SM Ta n Ta next-line Ta \&
420 .It Sx \&TH Ta >1, <6 Ta current Ta \&
421 .It Sx \&UC Ta <=1 Ta current Ta \&
422 .It Sx \&br Ta 0 Ta current Ta compat
423 .It Sx \&fi Ta 0 Ta current Ta compat
424 .It Sx \&i Ta n Ta current Ta compat
425 .It Sx \&in Ta 1 Ta current Ta compat
426 .It Sx \&na Ta 0 Ta current Ta compat
427 .It Sx \&nf Ta 0 Ta current Ta compat
428 .It Sx \&r Ta 0 Ta current Ta compat
429 .It Sx \&sp Ta 1 Ta current Ta compat
430 .\" .It Sx \&Sp Ta <1 Ta current Ta compat
431 .\" .It Sx \&Vb Ta <1 Ta current Ta compat
432 .\" .It Sx \&Ve Ta 0 Ta current Ta compat
437 are included for compatibility with the significant corpus of existing
438 manuals that mix dialects of roff.
439 These macros should not be used for portable
443 Block macros comprise a head and body.
444 As with in-line macros, the head is scoped to the current line and, in
445 one circumstance, the next line (the next-line stipulations as in
449 The syntax is as follows:
450 .Bd -literal -offset indent
451 \&.YO \(lBhead...\(rB
456 The closure of body scope may be to the section, where a macro is closed
459 sub-section, closed by a section or
461 part, closed by a section, sub-section, or
463 or paragraph, closed by a section, sub-section, part,
471 No closure refers to an explicit block closing macro.
473 As a rule, block macros may not be nested; thus, calling a block macro
474 while another block macro scope is open, and the open scope is not
475 implicitly closed, is syntactically incorrect.
477 .Bl -column -compact -offset indent "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX"
478 .It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
479 .It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
480 .It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
481 .It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
482 .It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
483 .It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
484 .It Sx \&RE Ta 0 Ta current Ta none Ta compat
485 .It Sx \&RS Ta 1 Ta current Ta part Ta compat
486 .It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
487 .It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
488 .It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
496 If a block macro is next-line scoped, it may only be followed by in-line
497 macros for decorating text.
499 This section is a canonical reference to all macros, arranged
501 For the scoping of individual macros, see
504 Sets the volume for the footer for compatibility with man pages from
507 The optional arguments specify which release it is from.
509 Text is rendered in bold face.
519 Text is rendered alternately in bold face and italic.
521 .Sq .BI this word and that
526 to render in bold face, while
531 Whitespace between arguments is omitted in output.
535 .D1 \&.BI bold italic bold italic
537 The output of this example will be emboldened
541 with spaces stripped between arguments.
551 Text is rendered alternately in bold face and roman (the default font).
552 Whitespace between arguments is omitted in output.
556 for an equivalent example.
567 Included for compatibility.
569 Begin a paragraph whose initial output line is left-justified, but
570 subsequent output lines are indented, with the following syntax:
571 .Bd -filled -offset indent
578 argument must conform to
580 If specified, it's saved for later paragraph left-margins; if unspecified, the
581 saved or default width is used.
591 Text is rendered in italics.
601 Text is rendered alternately in italics and bold face.
602 Whitespace between arguments is omitted in output.
606 for an equivalent example.
616 Begin an indented paragraph with the following syntax:
617 .Bd -filled -offset indent
619 .Op Cm head Op Cm width
624 argument defines the width of the left margin and is defined by
626 It's saved for later paragraph left-margins; if unspecified, the saved or
627 default width is used.
631 argument is used as a leading term, flushed to the left margin.
632 This is useful for bulleted paragraphs and so on.
642 Text is rendered alternately in italics and roman (the default font).
643 Whitespace between arguments is omitted in output.
647 for an equivalent example.
657 Begin an undecorated paragraph.
658 The scope of a paragraph is closed by a subsequent paragraph,
659 sub-section, section, or end of file.
660 The saved paragraph left-margin width is reset to the default.
692 Text is rendered in roman (the default font).
702 Text is rendered alternately in roman (the default font) and bold face.
703 Whitespace between arguments is omitted in output.
707 for an equivalent example.
717 Explicitly close out the scope of a prior
720 Text is rendered alternately in roman (the default font) and italics.
721 Whitespace between arguments is omitted in output.
725 for an equivalent example.
735 Begin a part setting the left margin.
736 The left margin controls the offset, following an initial indentation,
737 to un-indented text such as that of
739 This has the following syntax:
740 .Bd -filled -offset indent
747 argument must conform to
749 If not specified, the saved or default width is used.
751 Text is rendered in small size (one point smaller than the default font)
755 The scope of a section is only closed by another section or the end of
757 The paragraph left-margin width is reset to the default.
759 Text is rendered in small size (one point smaller than the default
763 The scope of a sub-section is closed by a subsequent sub-section,
764 section, or end of file.
765 The paragraph left-margin width is reset to the default.
767 Sets the title of the manual page with the following syntax:
768 .Bd -filled -offset indent
771 .Op Cm date Op Cm source Op Cm volume
774 At least the upper-case document
778 arguments must be provided.
781 argument should be formatted as described in
783 but will be printed verbatim if it is not.
784 If the date is not specified, the current date is used.
787 string specifies the organisation providing the utility.
790 string replaces the default rendered volume, which is dictated by the
795 .D1 \&.TH CVS 5 "1992-02-12" GNU
797 Begin a paragraph where the head, if exceeding the indentation width, is
798 followed by a newline; if not, the body follows on the same line after a
799 buffer to the indentation width.
800 Subsequent output lines are indented.
801 The syntax is as follows:
802 .Bd -filled -offset indent
809 argument must conform to
811 If specified, it's saved for later paragraph left-margins; if
812 unspecified, the saved or default width is used.
824 .\" Has no effect. Included for compatibility.
828 Sets the volume for the footer for compatibility with man pages from
830 The optional first argument specifies which release it is from.
832 Breaks the current line.
833 Consecutive invocations have no further effect.
838 End literal mode begun by
853 Indent relative to the current indentation:
855 .D1 Pf \. Sx \&in Op Cm width
859 is signed, the new offset is relative.
860 Otherwise, it is absolute.
861 This value is reset upon the next paragraph, section, or sub-section.
863 Don't align to the right margin.
865 Begin literal mode: all subsequent free-form lines have their end of
866 line boundaries preserved.
870 Fonts and styles (bold face, italics) reset to roman (default font).
880 Insert vertical spaces into output with the following syntax:
881 .Bd -filled -offset indent
888 spaces, which must conform to
890 If 0, this is equivalent to the
893 Defaults to 1, if unspecified.
905 .\" Accepts an argument (the height of the formatted space) which is
913 This section documents areas of questionable portability between
914 implementations of the
920 The \es (font size), \em (font colour), and \eM (font filling colour)
921 font decoration escapes are all discarded in mandoc.
923 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
924 a standalone double-quote in formatted output.
925 It is not known whether this behaviour is exhibited by other formatters.
929 macro does not accept negative values in mandoc.
930 In GNU troff, this would result in strange behaviour.
934 macro control character, in GNU troff (and prior troffs) suppresses a
935 newline before macro output; in mandoc, it is an alias for the standard
945 language first appeared as a macro package for the roff typesetting
948 It was later rewritten by James Clark as a macro package for groff.
949 The stand-alone implementation that is part of the
951 utility written by Kristaps Dzonsons appeared in
956 reference was written by
957 .An Kristaps Dzonsons Aq kristaps@bsd.lv .
959 Do not use this language.