version 1.69, 2010/05/12 17:08:03 |
version 1.78, 2010/07/19 23:21:39 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" |
.\" |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" purpose with or without fee is hereby granted, provided that the above |
|
|
.Xr mdoc 7 |
.Xr mdoc 7 |
language, instead. |
language, instead. |
.Pp |
.Pp |
An |
A |
.Nm |
.Nm |
document follows simple rules: lines beginning with the control |
document follows simple rules: lines beginning with the control |
character |
character |
Line 52 Other lines are interpreted within the current state. |
|
Line 52 Other lines are interpreted within the current state. |
|
.Sh INPUT ENCODING |
.Sh INPUT ENCODING |
.Nm |
.Nm |
documents may contain only graphable 7-bit ASCII characters, the |
documents may contain only graphable 7-bit ASCII characters, the |
space character, and the tabs character. |
space character, and the tab character. |
All manuals must have |
All manuals must have |
.Ux |
.Ux |
line termination. |
line termination. |
Line 61 Blank lines are acceptable; where found, the output wi |
|
Line 61 Blank lines are acceptable; where found, the output wi |
|
vertical space. |
vertical space. |
.Ss Comments |
.Ss Comments |
Text following a |
Text following a |
.Sq \e\*" , |
.Sq \e\*q , |
whether in a macro or free-form text line, is ignored to the end of |
whether in a macro or free-form text line, is ignored to the end of |
line. |
line. |
A macro line with only a control character and comment escape, |
A macro line with only a control character and comment escape, |
.Sq \&.\e" , |
.Sq \&.\e\*q , |
is also ignored. |
is also ignored. |
Macro lines with only a control character and optionally whitespace are |
Macro lines with only a control character and optionally whitespace are |
stripped from input. |
stripped from input. |
|
|
.Ss Text Decoration |
.Ss Text Decoration |
Terms may be text-decorated using the |
Terms may be text-decorated using the |
.Sq \ef |
.Sq \ef |
escape followed by an indicator: B (bold), I, (italic), R (Roman), or P |
escape followed by an indicator: B (bold), I (italic), R (Roman), or P |
(revert to previous mode): |
(revert to previous mode): |
.Pp |
.Pp |
.D1 \efBbold\efR \efIitalic\efP |
.D1 \efBbold\efR \efIitalic\efP |
Line 106 Note that macros like |
|
Line 106 Note that macros like |
|
.Sx \&BR |
.Sx \&BR |
open and close a font scope with each argument. |
open and close a font scope with each argument. |
.Pp |
.Pp |
Text may also be sized with the |
The |
.Sq \es |
|
escape, whose syntax is one of |
|
.Sq \es+-n |
|
for one-digit numerals; |
|
.Sq \es(+-nn |
|
or |
|
.Sq \es+-(nn |
|
for two-digit numerals; and |
|
.Sq \es[+-N] , |
|
.Sq \es+-[N] , |
|
.Sq \es'+-N' , |
|
or |
|
.Sq \es+-'N' |
|
for arbitrary-digit numerals: |
|
.Pp |
|
.D1 \es+1bigger\es-1 |
|
.D1 \es[+10]much bigger\es[-10] |
|
.D1 \es+(10much bigger\es-(10 |
|
.D1 \es+'100'much much bigger\es-'100' |
|
.Pp |
|
Both |
|
.Sq \es |
|
and |
|
.Sq \ef |
.Sq \ef |
attributes are forgotten when entering or exiting a macro block. |
attribute is forgotten when entering or exiting a macro block. |
.Ss Whitespace |
.Ss Whitespace |
Whitespace consists of the space character. |
Whitespace consists of the space character. |
In free-form lines, whitespace is preserved within a line; un-escaped |
In free-form lines, whitespace is preserved within a line; un-escaped |
|
|
When composing a manual, make sure that your sentences end at the end of |
When composing a manual, make sure that your sentences end at the end of |
a line. |
a line. |
By doing so, front-ends will be able to apply the proper amount of |
By doing so, front-ends will be able to apply the proper amount of |
spacing after the end of sentence (unescaped) period, exclamation, or question |
spacing after the end of sentence (unescaped) period, exclamation mark, |
mark. |
or question mark followed by zero or more non-sentence closing |
|
delimiters ( |
|
.Ns Sq \&) , |
|
.Sq \&] , |
|
.Sq \&' , |
|
.Sq \&" ) . |
.Sh MANUAL STRUCTURE |
.Sh MANUAL STRUCTURE |
Each |
Each |
.Nm |
.Nm |
Line 233 at least one macro or text node must appear in the doc |
|
Line 215 at least one macro or text node must appear in the doc |
|
Documents are generally structured as follows: |
Documents are generally structured as follows: |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
\&.TH FOO 1 2009-10-10 |
\&.TH FOO 1 2009-10-10 |
\&. |
|
\&.SH NAME |
\&.SH NAME |
\efBfoo\efR \e(en a description goes here |
\efBfoo\efR \e(en a description goes here |
\&.\e\*q The next is for sections 2 & 3 only. |
\&.\e\*q The next is for sections 2 & 3 only. |
\&.\e\*q .SH LIBRARY |
\&.\e\*q .SH LIBRARY |
\&. |
|
\&.SH SYNOPSIS |
\&.SH SYNOPSIS |
\efBfoo\efR [\efB\e-options\efR] arguments... |
\efBfoo\efR [\efB\e-options\efR] arguments... |
\&. |
|
\&.SH DESCRIPTION |
\&.SH DESCRIPTION |
The \efBfoo\efR utility processes files... |
The \efBfoo\efR utility processes files... |
\&. |
|
\&.\e\*q .SH IMPLEMENTATION NOTES |
\&.\e\*q .SH IMPLEMENTATION NOTES |
\&.\e\*q The next is for sections 2, 3, & 9 only. |
\&.\e\*q The next is for sections 2, 3, & 9 only. |
\&.\e\*q .SH RETURN VALUES |
\&.\e\*q .SH RETURN VALUES |
Line 322 Documents any usages of environment variables, e.g., |
|
Line 300 Documents any usages of environment variables, e.g., |
|
.Xr environ 7 . |
.Xr environ 7 . |
.It Em FILES |
.It Em FILES |
Documents files used. |
Documents files used. |
It's helpful to document both the file and a short description of how |
It's helpful to document both the file name and a short description of how |
the file is used (created, modified, etc.). |
the file is used (created, modified, etc.). |
.It Em EXIT STATUS |
.It Em EXIT STATUS |
Command exit status for section 1, 6, and 8 manuals. |
Command exit status for section 1, 6, and 8 manuals. |
Line 368 The history of any manual without a |
|
Line 346 The history of any manual without a |
|
section should be described in this section. |
section should be described in this section. |
.It Em AUTHORS |
.It Em AUTHORS |
Credits to authors, if applicable, should appear in this section. |
Credits to authors, if applicable, should appear in this section. |
Authors should generally be noted by both name and an e-mail address. |
Authors should generally be noted by both name and email address. |
.It Em CAVEATS |
.It Em CAVEATS |
Explanations of common misuses and misunderstandings should be explained |
Common misuses and misunderstandings should be explained |
in this section. |
in this section. |
.It Em BUGS |
.It Em BUGS |
Extant bugs should be described in this section. |
Known bugs, limitations and work-arounds should be described |
|
in this section. |
.It Em SECURITY CONSIDERATIONS |
.It Em SECURITY CONSIDERATIONS |
Documents any security precautions that operators should consider. |
Documents any security precautions that operators should consider. |
.El |
.El |
.Sh MACRO SYNTAX |
.Sh MACRO SYNTAX |
Macros are one to three three characters in length and begin with a |
Macros are one to three three characters in length and begin with a |
control character , |
control character, |
.Sq \&. , |
.Sq \&. , |
at the beginning of the line. |
at the beginning of the line. |
The |
The |
Line 415 is equivalent to |
|
Line 394 is equivalent to |
|
.Sq \&.I foo . |
.Sq \&.I foo . |
If next-line macros are invoked consecutively, only the last is used. |
If next-line macros are invoked consecutively, only the last is used. |
If a next-line macro is followed by a non-next-line macro, an error is |
If a next-line macro is followed by a non-next-line macro, an error is |
raised (unless in the case of |
raised, except for |
.Sx \&br , |
.Sx \&br , |
.Sx \&sp , |
.Sx \&sp , |
or |
and |
.Sx \&na ) . |
.Sx \&na . |
.Pp |
.Pp |
The syntax is as follows: |
The syntax is as follows: |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
Line 429 The syntax is as follows: |
|
Line 408 The syntax is as follows: |
|
.Pp |
.Pp |
.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" |
.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" |
.It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes |
.It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes |
|
.It Sx \&AT Ta <=1 Ta current Ta \& |
.It Sx \&B Ta n Ta next-line Ta \& |
.It Sx \&B Ta n Ta next-line Ta \& |
.It Sx \&BI Ta n Ta current Ta \& |
.It Sx \&BI Ta n Ta current Ta \& |
.It Sx \&BR Ta n Ta current Ta \& |
.It Sx \&BR Ta n Ta current Ta \& |
Line 443 The syntax is as follows: |
|
Line 423 The syntax is as follows: |
|
.It Sx \&SB Ta n Ta next-line Ta \& |
.It Sx \&SB Ta n Ta next-line Ta \& |
.It Sx \&SM Ta n Ta next-line Ta \& |
.It Sx \&SM Ta n Ta next-line Ta \& |
.It Sx \&TH Ta >1, <6 Ta current Ta \& |
.It Sx \&TH Ta >1, <6 Ta current Ta \& |
.\" .It Sx \&UC Ta n Ta current Ta compat |
.It Sx \&UC Ta <=1 Ta current Ta \& |
.It Sx \&br Ta 0 Ta current Ta compat |
.It Sx \&br Ta 0 Ta current Ta compat |
.It Sx \&fi Ta 0 Ta current Ta compat |
.It Sx \&fi Ta 0 Ta current Ta compat |
.It Sx \&i Ta n Ta current Ta compat |
.It Sx \&i Ta n Ta current Ta compat |
Line 451 The syntax is as follows: |
|
Line 431 The syntax is as follows: |
|
.It Sx \&nf Ta 0 Ta current Ta compat |
.It Sx \&nf Ta 0 Ta current Ta compat |
.It Sx \&r Ta 0 Ta current Ta compat |
.It Sx \&r Ta 0 Ta current Ta compat |
.It Sx \&sp Ta 1 Ta current Ta compat |
.It Sx \&sp Ta 1 Ta current Ta compat |
.\" .It Sx \&Sp Ta 0 Ta current Ta compat |
.\" .It Sx \&Sp Ta <1 Ta current Ta compat |
.\" .It Sx \&Vb Ta <1 Ta current Ta compat |
.\" .It Sx \&Vb Ta <1 Ta current Ta compat |
.\" .It Sx \&Ve Ta 0 Ta current Ta compat |
.\" .It Sx \&Ve Ta 0 Ta current Ta compat |
.El |
.El |
Line 524 This section is a canonical reference to all macros, a |
|
Line 504 This section is a canonical reference to all macros, a |
|
alphabetically. |
alphabetically. |
For the scoping of individual macros, see |
For the scoping of individual macros, see |
.Sx MACRO SYNTAX . |
.Sx MACRO SYNTAX . |
|
.Ss \&AT |
|
Sets the volume for the footer for compatibility with man pages from |
|
.Tn AT&T UNIX |
|
releases. |
|
The optional arguments specify which release it is from. |
.Ss \&B |
.Ss \&B |
Text is rendered in bold face. |
Text is rendered in bold face. |
.Pp |
.Pp |
|
|
Begin an undecorated paragraph. |
Begin an undecorated paragraph. |
The scope of a paragraph is closed by a subsequent paragraph, |
The scope of a paragraph is closed by a subsequent paragraph, |
sub-section, section, or end of file. |
sub-section, section, or end of file. |
The saved paragraph left-margin width is re-set to the default. |
The saved paragraph left-margin width is reset to the default. |
.Pp |
.Pp |
See also |
See also |
.Sx \&HP , |
.Sx \&HP , |
|
|
Begin a section. |
Begin a section. |
The scope of a section is only closed by another section or the end of |
The scope of a section is only closed by another section or the end of |
file. |
file. |
The paragraph left-margin width is re-set to the default. |
The paragraph left-margin width is reset to the default. |
.Ss \&SM |
.Ss \&SM |
Text is rendered in small size (one point smaller than the default |
Text is rendered in small size (one point smaller than the default |
font). |
font). |
|
|
Begin a sub-section. |
Begin a sub-section. |
The scope of a sub-section is closed by a subsequent sub-section, |
The scope of a sub-section is closed by a subsequent sub-section, |
section, or end of file. |
section, or end of file. |
The paragraph left-margin width is re-set to the default. |
The paragraph left-margin width is reset to the default. |
.Ss \&TH |
.Ss \&TH |
Sets the title of the manual page with the following syntax: |
Sets the title of the manual page with the following syntax: |
.Bd -filled -offset indent |
.Bd -filled -offset indent |
Line 790 Sets the title of the manual page with the following s |
|
Line 775 Sets the title of the manual page with the following s |
|
.Op Cm date Op Cm source Op Cm volume |
.Op Cm date Op Cm source Op Cm volume |
.Ed |
.Ed |
.Pp |
.Pp |
At least the upper-case document title |
At least the upper-case document |
.Cm title |
.Cm title |
and numeric manual section |
and the manual |
.Cm section |
.Cm section |
arguments must be provided. |
arguments must be provided. |
The |
The |
.Cm date |
.Cm date |
argument should be formatted as described in |
argument should be formatted as described in |
.Sx Dates : |
.Sx Dates , |
if it does not conform, the current date is used instead. |
but will be printed verbatim if it is not. |
|
If the date is not specified, the current date is used. |
The |
The |
.Cm source |
.Cm source |
string specifies the organisation providing the utility. |
string specifies the organisation providing the utility. |
|
|
.\" Has no effect. Included for compatibility. |
.\" Has no effect. Included for compatibility. |
.\" . |
.\" . |
.\" . |
.\" . |
.\" .Ss \&UC |
.Ss \&UC |
.\" Has no effect. Included for compatibility. |
Sets the volume for the footer for compatibility with man pages from |
|
BSD releases. |
|
The optional first argument specifies which release it is from. |
.Ss \&br |
.Ss \&br |
Breaks the current line. |
Breaks the current line. |
Consecutive invocations have no further effect. |
Consecutive invocations have no further effect. |
|
|
.Pp |
.Pp |
.Bl -dash -compact |
.Bl -dash -compact |
.It |
.It |
|
The \es (font size), \em (font colour), and \eM (font filling colour) |
|
font decoration escapes are all discarded in mandoc. |
|
.It |
In quoted literals, GNU troff allowed pair-wise double-quotes to produce |
In quoted literals, GNU troff allowed pair-wise double-quotes to produce |
a standalone double-quote in formatted output. |
a standalone double-quote in formatted output. |
It is not known whether this behaviour is exhibited by other formatters. |
It is not known whether this behaviour is exhibited by other formatters. |
Line 942 control character. |
|
Line 933 control character. |
|
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc 1 , |
.Xr mandoc 1 , |
.Xr mandoc_char 7 |
.Xr mandoc_char 7 |
.Sh AUTHORS |
.Sh HISTORY |
The |
The |
|
.Nm |
|
language first appeared as a macro package for the roff typesetting |
|
system in |
|
.At v7 . |
|
It was later rewritten by James Clark as a macro package for groff. |
|
The stand-alone implementation that is part of the |
|
.Xr mandoc 1 |
|
utility written by Kristaps Dzonsons appeared in |
|
.Ox 4.6. |
|
.Sh AUTHORS |
|
This |
.Nm |
.Nm |
reference was written by |
reference was written by |
.An Kristaps Dzonsons Aq kristaps@bsd.lv . |
.An Kristaps Dzonsons Aq kristaps@bsd.lv . |