version 1.76, 2010/07/19 09:19:22 |
version 1.80, 2010/07/26 10:00:03 |
|
|
.\" $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. |
|
|
.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 |
|
|
attribute is 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; unescaped |
trailing spaces are stripped from input (unless in a literal context). |
trailing spaces are stripped from input (unless in a literal context). |
Blank free-form lines, which may include spaces, are permitted and |
Blank free-form lines, which may include spaces, are permitted and |
rendered as an empty line. |
rendered as an empty line. |
Line 190 this differs from |
|
Line 190 this differs from |
|
which, if a unit is not provided, will instead interpret the string as |
which, if a unit is not provided, will instead interpret the string as |
literal text. |
literal text. |
.Ss Sentence Spacing |
.Ss Sentence Spacing |
When composing a manual, make sure that your sentences end at the end of |
When composing a manual, make sure that 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 mark, |
spacing after the end of sentence (unescaped) period, exclamation mark, |
or question mark followed by zero or more non-sentence closing |
or question mark followed by zero or more non-sentence closing |
delimiters ( |
delimiters |
.Ns Sq \&) , |
.Po |
|
.Sq \&) , |
.Sq \&] , |
.Sq \&] , |
.Sq \&' , |
.Sq \&' , |
.Sq \&" ) . |
.Sq \&" |
|
.Pc . |
.Sh MANUAL STRUCTURE |
.Sh MANUAL STRUCTURE |
Each |
Each |
.Nm |
.Nm |
document must contain contains at least the |
document must contain the |
.Sx \&TH |
.Sx \&TH |
macro describing the document's section and title. |
macro describing the document's section and title. |
It may occur anywhere in the document, although conventionally, it |
It may occur anywhere in the document, although conventionally it |
appears as the first macro. |
appears as the first macro. |
.Pp |
.Pp |
Beyond |
Beyond |
Line 291 Implementation-specific notes should be kept here. |
|
Line 293 Implementation-specific notes should be kept here. |
|
This is useful when implementing standard functions that may have side |
This is useful when implementing standard functions that may have side |
effects or notable algorithmic implications. |
effects or notable algorithmic implications. |
.It Em RETURN VALUES |
.It Em RETURN VALUES |
This section is the dual of |
This section documents the return values of functions in sections 2, 3, and 9. |
.Em EXIT STATUS , |
|
which is used for commands. |
|
It documents the return values of functions in sections 2, 3, and 9. |
|
.It Em ENVIRONMENT |
.It Em ENVIRONMENT |
Documents any usages of environment variables, e.g., |
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. |
This section documents the command exit status for |
This section is the dual of |
section 1, 6, and 8 utilities. |
.Em RETURN VALUES , |
|
which is used for functions. |
|
Historically, this information was described in |
Historically, this information was described in |
.Em DIAGNOSTICS , |
.Em DIAGNOSTICS , |
a practise that is now discouraged. |
a practise that is now discouraged. |
Line 314 a practise that is now discouraged. |
|
Line 311 a practise that is now discouraged. |
|
Example usages. |
Example usages. |
This often contains snippets of well-formed, |
This often contains snippets of well-formed, |
well-tested invocations. |
well-tested invocations. |
Make doubly sure that your examples work properly! |
Make sure that examples work properly! |
.It Em DIAGNOSTICS |
.It Em DIAGNOSTICS |
Documents error conditions. |
Documents error conditions. |
This is most useful in section 4 manuals. |
This is most useful in section 4 manuals. |
Line 346 The history of any manual without a |
|
Line 343 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 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 393 is equivalent to |
|
Line 391 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 426 The syntax is as follows: |
|
Line 424 The syntax is as follows: |
|
.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 |
|
.It Sx \&in Ta 1 Ta current Ta compat |
.It Sx \&na Ta 0 Ta current Ta compat |
.It Sx \&na Ta 0 Ta current Ta compat |
.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 |
Line 443 These macros should not be used for portable |
|
Line 442 These macros should not be used for portable |
|
.Nm |
.Nm |
manuals. |
manuals. |
.Ss Block Macros |
.Ss Block Macros |
Block macros are comprised of a head and body. |
Block macros comprise a head and body. |
Like for in-line macros, the head is scoped to the current line and, in |
As with in-line macros, the head is scoped to the current line and, in |
one circumstance, the next line (the next-line stipulations as in |
one circumstance, the next line (the next-line stipulations as in |
.Sx Line Macros |
.Sx Line Macros |
apply here as well). |
apply here as well). |
|
|
and |
and |
.Sx \&r . |
.Sx \&r . |
.Ss \&IB |
.Ss \&IB |
Text is rendered alternately in italics and bold face. Whitespace |
Text is rendered alternately in italics and bold face. |
between arguments is omitted in output. |
Whitespace between arguments is omitted in output. |
.Pp |
.Pp |
See |
See |
.Sx \&BI |
.Sx \&BI |
Line 625 Begin an indented paragraph with the following syntax: |
|
Line 624 Begin an indented paragraph with the following syntax: |
|
The |
The |
.Cm width |
.Cm width |
argument defines the width of the left margin and is defined by |
argument defines the width of the left margin and is defined by |
.Sx Scaling Widths , |
.Sx Scaling Widths . |
It's saved for later paragraph left-margins; if unspecified, the saved or |
It's saved for later paragraph left-margins; if unspecified, the saved or |
default width is used. |
default width is used. |
.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 774 Sets the title of the manual page with the following s |
|
Line 773 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 |
|
|
.Sx \&b , |
.Sx \&b , |
and |
and |
.Sx \&r . |
.Sx \&r . |
|
.Ss \&in |
|
Indent relative to the current indentation: |
|
.Pp |
|
.D1 Pf \. Sx \&in Op Cm width |
|
.Pp |
|
If |
|
.Cm width |
|
is signed, the new offset is relative. |
|
Otherwise, it is absolute. |
|
This value is reset upon the next paragraph, section, or sub-section. |
.Ss \&na |
.Ss \&na |
Don't align to the right margin. |
Don't align to the right margin. |
.Ss \&nf |
.Ss \&nf |
|
|
.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 929 control character. |
|
Line 941 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 . |