-.\" $Id: man.7,v 1.139 2018/08/18 02:08:27 schwarze Exp $
+.\" $Id: man.7,v 1.148 2021/08/05 14:31:14 schwarze Exp $
.\"
.\" Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
-.\" Copyright (c) 2011-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
+.\" Copyright (c) 2011-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
.\" Copyright (c) 2017 Anthony Bentley <bentley@openbsd.org>
.\" Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
.\"
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: August 18 2018 $
+.Dd $Mdocdate: August 5 2021 $
.Dt MAN 7
.Os
.Sh NAME
.Nm man
.Nd legacy formatting language for manual pages
.Sh DESCRIPTION
-Traditionally, the
+The
.Nm man
-language has been used to write
-.Ux
-manuals for the
-.Xr man 1
-utility.
-It supports limited control of presentational details like fonts,
-indentation and spacing.
-This reference document describes the structure of manual pages
-and the syntax and usage of the man language.
-.Pp
-.Bf -emphasis
-Do not use
-.Nm
-to write your manuals:
-.Ef
-It lacks support for semantic markup.
+language was the standard formatting language for
+.At
+manual pages from 1979 to 1989.
+Do not use it to write new manual pages: it is a purely presentational
+language and lacks support for semantic markup.
Use the
.Xr mdoc 7
language, instead.
.Dq macro lines .
The first word is the macro name.
It usually consists of two capital letters.
-For a list of available macros, see
+For a list of portable macros, see
.Sx MACRO OVERVIEW .
The words following the macro name are arguments to the macro.
.Pp
.Xr roff 7
manual for details, in particular regarding
comments, escape sequences, whitespace, and quoting.
-.Sh MANUAL STRUCTURE
-Each
-.Nm
-document must contain the
-.Sx \&TH
-macro describing the document's section and title.
-It may occur anywhere in the document, although conventionally it
-appears as the first macro.
-.Pp
-Beyond
-.Sx \&TH ,
-at least one macro or text line must appear in the document.
.Pp
-The following is a well-formed skeleton
+Each
.Nm
-file for a utility
-.Qq progname :
+document starts with the
+.Ic TH
+macro specifying the document's name and section, followed by the
+.Sx NAME
+section formatted as follows:
.Bd -literal -offset indent
-\&.TH PROGNAME 1 2009-10-10
+\&.TH PROGNAME 1 1979-01-10
\&.SH NAME
\efBprogname\efR \e(en one line about what it does
-\&.\e\(dq .SH LIBRARY
-\&.\e\(dq For sections 2, 3, and 9 only.
-\&.\e\(dq Not used in OpenBSD.
-\&.SH SYNOPSIS
-\efBprogname\efR [\efB\e-options\efR] \efIfile ...\efR
-\&.SH DESCRIPTION
-The \efBfoo\efR utility processes files ...
-\&.\e\(dq .Sh CONTEXT
-\&.\e\(dq For section 9 functions only.
-\&.\e\(dq .SH IMPLEMENTATION NOTES
-\&.\e\(dq Not used in OpenBSD.
-\&.\e\(dq .SH RETURN VALUES
-\&.\e\(dq For sections 2, 3, and 9 function return values only.
-\&.\e\(dq .SH ENVIRONMENT
-\&.\e\(dq For sections 1, 6, 7, and 8 only.
-\&.\e\(dq .SH FILES
-\&.\e\(dq .SH EXIT STATUS
-\&.\e\(dq For sections 1, 6, and 8 only.
-\&.\e\(dq .SH EXAMPLES
-\&.\e\(dq .SH DIAGNOSTICS
-\&.\e\(dq For sections 1, 4, 6, 7, 8, and 9 printf/stderr messages only.
-\&.\e\(dq .SH ERRORS
-\&.\e\(dq For sections 2, 3, 4, and 9 errno settings only.
-\&.\e\(dq .SH SEE ALSO
-\&.\e\(dq .BR foobar ( 1 )
-\&.\e\(dq .SH STANDARDS
-\&.\e\(dq .SH HISTORY
-\&.\e\(dq .SH AUTHORS
-\&.\e\(dq .SH CAVEATS
-\&.\e\(dq .SH BUGS
-\&.\e\(dq .SH SECURITY CONSIDERATIONS
-\&.\e\(dq Not used in OpenBSD.
.Ed
-.Pp
-The sections in a
-.Nm
-document are conventionally ordered as they appear above.
-Sections should be composed as follows:
-.Bl -ohang -offset indent
-.It Em NAME
-The name(s) and a short description of the documented material.
-The syntax for this is generally as follows:
-.Pp
-.D1 \efBname\efR \e(en description
-.It Em LIBRARY
-The name of the library containing the documented material, which is
-assumed to be a function in a section 2 or 3 manual.
-For functions in the C library, this may be as follows:
-.Pp
-.D1 Standard C Library (libc, -lc)
-.It Em SYNOPSIS
-Documents the utility invocation syntax, function call syntax, or device
-configuration.
-.Pp
-For the first, utilities (sections 1, 6, and 8), this is
-generally structured as follows:
-.Pp
-.D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
-.Pp
-For the second, function calls (sections 2, 3, 9):
-.Pp
-.D1 \&.B char *name(char *\efIarg\efR);
-.Pp
-And for the third, configurations (section 4):
-.Pp
-.D1 \&.B name* at cardbus ? function ?
-.Pp
-Manuals not in these sections generally don't need a
-.Em SYNOPSIS .
-.It Em DESCRIPTION
-This expands upon the brief, one-line description in
-.Em NAME .
-It usually contains a break-down of the options (if documenting a
-command).
-.It Em CONTEXT
-This section lists the contexts in which functions can be called in section 9.
-The contexts are autoconf, process, or interrupt.
-.It Em IMPLEMENTATION NOTES
-Implementation-specific notes should be kept here.
-This is useful when implementing standard functions that may have side
-effects or notable algorithmic implications.
-.It Em RETURN VALUES
-This section documents the return values of functions in sections 2, 3, and 9.
-.It Em ENVIRONMENT
-Documents any usages of environment variables, e.g.,
-.Xr environ 7 .
-.It Em FILES
-Documents files used.
-It's helpful to document both the file name and a short description of how
-the file is used (created, modified, etc.).
-.It Em EXIT STATUS
-This section documents the command exit status for
-section 1, 6, and 8 utilities.
-Historically, this information was described in
-.Em DIAGNOSTICS ,
-a practise that is now discouraged.
-.It Em EXAMPLES
-Example usages.
-This often contains snippets of well-formed,
-well-tested invocations.
-Make sure that examples work properly!
-.It Em DIAGNOSTICS
-Documents error conditions.
-In section 4 and 9 manuals, these are usually messages
-printed by the kernel to the console and to the kernel log.
-In section 1, 6, 7, and 8, these are usually messages
-printed by userland programs to the standard error output.
-.Pp
-Historically, this section was used in place of
-.Em EXIT STATUS
-for manuals in sections 1, 6, and 8; however, this practise is
-discouraged.
-.It Em ERRORS
-Documents
-.Xr errno 2
-settings in sections 2, 3, 4, and 9.
-.It Em SEE ALSO
-References other manuals with related topics.
-This section should exist for most manuals.
-.Pp
-.D1 \&.BR bar \&( 1 \&),
-.Pp
-Cross-references should conventionally be ordered
-first by section, then alphabetically.
-.It Em STANDARDS
-References any standards implemented or used, such as
-.Pp
-.D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
-.Pp
-If not adhering to any standards, the
-.Em HISTORY
-section should be used.
-.It Em HISTORY
-A brief history of the subject, including where support first appeared.
-.It Em AUTHORS
-Credits to the person or persons who wrote the code and/or documentation.
-Authors should generally be noted by both name and email address.
-.It Em CAVEATS
-Common misuses and misunderstandings should be explained
-in this section.
-.It Em BUGS
-Known bugs, limitations, and work-arounds should be described
-in this section.
-.It Em SECURITY CONSIDERATIONS
-Documents any security precautions that operators should consider.
-.El
.Sh MACRO OVERVIEW
This overview is sorted such that macros of similar purpose are listed
-together, to help find the best macro for any given purpose.
-Deprecated macros are not included in the overview, but can be found
-in the alphabetical reference below.
+together.
+Deprecated and non-portable macros are not included in the overview,
+but can be found in the alphabetical reference below.
.Ss Page header and footer meta-data
-.Bl -column "PP, LP, P" description
-.It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
-.It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
-.It Sx UC Ta display BSD version in the page footer (<= 1 argument)
+.Bl -column "RS, RE" description
+.It Ic TH Ta set the title: Ar name section date Op Ar source Op Ar volume
+.It Ic AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
+.It Ic UC Ta display BSD version in the page footer (<= 1 argument)
.El
.Ss Sections and paragraphs
-.Bl -column "PP, LP, P" description
-.It Sx SH Ta section header (one line)
-.It Sx SS Ta subsection header (one line)
-.It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
-.It Sx RS , RE Ta reset the left margin: Op Ar width
-.It Sx IP Ta indented paragraph: Op Ar head Op Ar width
-.It Sx TP Ta tagged paragraph: Op Ar width
-.It Sx HP Ta hanged paragraph: Op Ar width
-.It Sx PD Ta set vertical paragraph distance: Op Ar height
-.It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
-.It Sx in Ta additional indent: Op Ar width
+.Bl -column "RS, RE" description
+.It Ic SH Ta section header (one line)
+.It Ic SS Ta subsection header (one line)
+.It Ic PP Ta start an undecorated paragraph (no arguments)
+.It Ic RS , RE Ta reset the left margin: Op Ar width
+.It Ic IP Ta indented paragraph: Op Ar head Op Ar width
+.It Ic TP Ta tagged paragraph: Op Ar width
+.It Ic PD Ta set vertical paragraph distance: Op Ar height
+.It Ic in Ta additional indent: Op Ar width
.El
.Ss Physical markup
-.Bl -column "PP, LP, P" description
-.It Sx B Ta boldface font
-.It Sx I Ta italic font
-.It Sx SB Ta small boldface font
-.It Sx SM Ta small roman font
-.It Sx BI Ta alternate between boldface and italic fonts
-.It Sx BR Ta alternate between boldface and roman fonts
-.It Sx IB Ta alternate between italic and boldface fonts
-.It Sx IR Ta alternate between italic and roman fonts
-.It Sx RB Ta alternate between roman and boldface fonts
-.It Sx RI Ta alternate between roman and italic fonts
+.Bl -column "RS, RE" description
+.It Ic B Ta boldface font
+.It Ic I Ta italic font
+.It Ic SB Ta small boldface font
+.It Ic SM Ta small roman font
+.It Ic BI Ta alternate between boldface and italic fonts
+.It Ic BR Ta alternate between boldface and roman fonts
+.It Ic IB Ta alternate between italic and boldface fonts
+.It Ic IR Ta alternate between italic and roman fonts
+.It Ic RB Ta alternate between roman and boldface fonts
+.It Ic RI Ta alternate between roman and italic fonts
.El
.Sh MACRO REFERENCE
This section is a canonical reference to all macros, arranged
alphabetically.
For the scoping of individual macros, see
.Sx MACRO SYNTAX .
-.Ss \&AT
+.Bl -tag -width 3n
+.It Ic AT
Sets the volume for the footer for compatibility with man pages from
.At
releases.
The optional arguments specify which release it is from.
-.Ss \&B
+This macro is an extension that first appeared in
+.Bx 4.3 .
+.It Ic B
Text is rendered in bold face.
-.Pp
-See also
-.Sx \&I .
-.Ss \&BI
+.It Ic BI
Text is rendered alternately in bold face and italic.
Thus,
.Sq .BI this word and that
render in italics.
Whitespace between arguments is omitted in output.
.Pp
-Examples:
+Example:
.Pp
.Dl \&.BI bold italic bold italic
-.Pp
-The output of this example will be emboldened
-.Dq bold
-and italicised
-.Dq italic ,
-with spaces stripped between arguments.
-.Pp
-See also
-.Sx \&IB ,
-.Sx \&BR ,
-.Sx \&RB ,
-.Sx \&RI ,
-and
-.Sx \&IR .
-.Ss \&BR
+.It Ic BR
Text is rendered alternately in bold face and roman (the default font).
Whitespace between arguments is omitted in output.
-.Pp
-See
-.Sx \&BI
-for an equivalent example.
-.Pp
See also
-.Sx \&BI ,
-.Sx \&IB ,
-.Sx \&RB ,
-.Sx \&RI ,
-and
-.Sx \&IR .
-.Ss \&DT
+.Ic BI .
+.It Ic DT
Restore the default tabulator positions.
They are at intervals of 0.5 inches.
This has no effect unless the tabulator positions were changed with the
.Xr roff 7
-.Ic \&ta
+.Ic ta
request.
-.Ss \&EE
-This is a non-standard GNU extension, included only for compatibility.
+.It Ic EE
+This is a non-standard Version 9
+.At
+extension later adopted by GNU.
In
.Xr mandoc 1 ,
-it does the same as
-.Sx \&fi .
-.Ss \&EX
-This is a non-standard GNU extension, included only for compatibility.
+it does the same as the
+.Xr roff 7
+.Ic fi
+request (switch to fill mode).
+.It Ic EX
+This is a non-standard Version 9
+.At
+extension later adopted by GNU.
In
.Xr mandoc 1 ,
-it does the same as
-.Sx \&nf .
-.Ss \&HP
+it does the same as the
+.Xr roff 7
+.Ic nf
+request (switch to no-fill mode).
+.It Ic HP
Begin a paragraph whose initial output line is left-justified, but
subsequent output lines are indented, with the following syntax:
-.Bd -filled -offset indent
-.Pf \. Sx \&HP
-.Op Ar width
-.Ed
+.Pp
+.D1 Pf . Ic HP Op Ar width
.Pp
The
.Ar width
argument is a
.Xr roff 7
scaling width.
-If specified, it's saved for later paragraph left-margins; if unspecified, the
-saved or default width is used.
-.Pp
-See also
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&P ,
-.Sx \&PP ,
-and
-.Sx \&TP .
-.Ss \&I
+If specified, it's saved for later paragraph left margins;
+if unspecified, the saved or default width is used.
+.Pp
+This macro is portable, but deprecated
+because it has no good representation in HTML output,
+usually ending up indistinguishable from
+.Ic PP .
+.It Ic I
Text is rendered in italics.
-.Pp
-See also
-.Sx \&B .
-.Ss \&IB
+.It Ic IB
Text is rendered alternately in italics and bold face.
Whitespace between arguments is omitted in output.
-.Pp
-See
-.Sx \&BI
-for an equivalent example.
-.Pp
See also
-.Sx \&BI ,
-.Sx \&BR ,
-.Sx \&RB ,
-.Sx \&RI ,
-and
-.Sx \&IR .
-.Ss \&IP
+.Ic BI .
+.It Ic IP
Begin an indented paragraph with the following syntax:
-.Bd -filled -offset indent
-.Pf \. Sx \&IP
-.Op Ar head Op Ar width
-.Ed
+.Pp
+.D1 Pf . Ic IP Op Ar head Op Ar width
.Pp
The
.Ar width
.Ar head
argument is used as a leading term, flushed to the left margin.
This is useful for bulleted paragraphs and so on.
-.Pp
-See also
-.Sx \&HP ,
-.Sx \&LP ,
-.Sx \&P ,
-.Sx \&PP ,
-and
-.Sx \&TP .
-.Ss \&IR
+.It Ic IR
Text is rendered alternately in italics and roman (the default font).
Whitespace between arguments is omitted in output.
-.Pp
-See
-.Sx \&BI
-for an equivalent example.
-.Pp
See also
-.Sx \&BI ,
-.Sx \&IB ,
-.Sx \&BR ,
-.Sx \&RB ,
-and
-.Sx \&RI .
-.Ss \&LP
-Begin an undecorated paragraph.
-The scope of a paragraph is closed by a subsequent paragraph,
-sub-section, section, or end of file.
-The saved paragraph left-margin width is reset to the default.
-.Pp
-See also
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&P ,
-.Sx \&PP ,
-and
-.Sx \&TP .
-.Ss \&ME
-End a mailto block.
-This is a non-standard GNU extension, included only for compatibility.
-See
-.Sx \&MT .
-.Ss \&MT
+.Ic BI .
+.It Ic LP
+A synonym for
+.Ic PP .
+.It Ic ME
+End a mailto block started with
+.Ic MT .
+This is a non-standard GNU extension.
+.It Ic MT
Begin a mailto block.
-This is a non-standard GNU extension, included only for compatibility.
+This is a non-standard GNU extension.
It has the following syntax:
-.Bd -literal -offset indent
-.Pf \. Sx \&MT Ar address
+.Bd -unfilled -offset indent
+.Pf . Ic MT Ar address
link description to be shown
-.Pf \. Sx ME
+.Pf . Ic ME
.Ed
-.Ss \&OP
+.It Ic OP
Optional command-line argument.
-This is a non-standard GNU extension, included only for compatibility.
+This is a non-standard DWB extension.
It has the following syntax:
-.Bd -filled -offset indent
-.Pf \. Sx \&OP
-.Ar key Op Ar value
-.Ed
+.Pp
+.D1 Pf . Ic OP Ar key Op Ar value
.Pp
The
.Ar key
is usually a command-line flag and
.Ar value
its argument.
-.Ss \&P
-Synonym for
-.Sx \&LP .
-.Pp
-See also
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&PP ,
-and
-.Sx \&TP .
-.Ss \&PD
+.It Ic P
+This synonym for
+.Ic PP
+is an
+.At III
+extension later adopted by
+.Bx 4.3 .
+.It Ic PD
Specify the vertical space to be inserted before each new paragraph.
.br
The syntax is as follows:
-.Bd -filled -offset indent
-.Pf \. Sx \&PD
-.Op Ar height
-.Ed
+.Pp
+.D1 Pf . Ic PD Op Ar height
.Pp
The
.Ar height
is assumed.
.Pp
This macro affects the spacing before any subsequent instances of
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&P ,
-.Sx \&PP ,
-.Sx \&SH ,
-.Sx \&SS ,
+.Ic HP ,
+.Ic IP ,
+.Ic LP ,
+.Ic P ,
+.Ic PP ,
+.Ic SH ,
+.Ic SS ,
+.Ic SY ,
and
-.Sx \&TP .
-.Ss \&PP
-Synonym for
-.Sx \&LP .
-.Pp
-See also
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&P ,
-and
-.Sx \&TP .
-.Ss \&RB
+.Ic TP .
+.It Ic PP
+Begin an undecorated paragraph.
+The scope of a paragraph is closed by a subsequent paragraph,
+sub-section, section, or end of file.
+The saved paragraph left-margin width is reset to the default.
+.It Ic RB
Text is rendered alternately in roman (the default font) and bold face.
Whitespace between arguments is omitted in output.
-.Pp
-See
-.Sx \&BI
-for an equivalent example.
-.Pp
See also
-.Sx \&BI ,
-.Sx \&IB ,
-.Sx \&BR ,
-.Sx \&RI ,
-and
-.Sx \&IR .
-.Ss \&RE
+.Ic BI .
+.It Ic RE
Explicitly close out the scope of a prior
-.Sx \&RS .
+.Ic RS .
The default left margin is restored to the state before that
-.Sx \&RS
+.Ic RS
invocation.
.Pp
The syntax is as follows:
-.Bd -filled -offset indent
-.Pf \. Sx \&RE
-.Op Ar level
-.Ed
+.Pp
+.D1 Pf . Ic RE Op Ar level
.Pp
Without an argument, the most recent
-.Sx \&RS
+.Ic RS
block is closed out.
If
.Ar level
is 1, all open
-.Sx \&RS
+.Ic RS
blocks are closed out.
Otherwise,
.Ar level No \(mi 1
nested
-.Sx \&RS
+.Ic RS
blocks remain open.
-.Ss \&RI
+.It Ic RI
Text is rendered alternately in roman (the default font) and italics.
Whitespace between arguments is omitted in output.
-.Pp
-See
-.Sx \&BI
-for an equivalent example.
-.Pp
See also
-.Sx \&BI ,
-.Sx \&IB ,
-.Sx \&BR ,
-.Sx \&RB ,
-and
-.Sx \&IR .
-.Ss \&RS
+.Ic BI .
+.It Ic RS
Temporarily reset the default left margin.
This has the following syntax:
-.Bd -filled -offset indent
-.Pf \. Sx \&RS
-.Op Ar width
-.Ed
+.Pp
+.D1 Pf . Ic RS Op Ar width
.Pp
The
.Ar width
If not specified, the saved or default width is used.
.Pp
See also
-.Sx \&RE .
-.Ss \&SB
+.Ic RE .
+.It Ic SB
Text is rendered in small size (one point smaller than the default font)
bold face.
-.Ss \&SH
+This macro is an extension that probably first appeared in SunOS 4.0
+and was later adopted by GNU and by
+.Bx 4.4 .
+.It Ic SH
Begin a section.
The scope of a section is only closed by another section or the end of
file.
The paragraph left-margin width is reset to the default.
-.Ss \&SM
+.It Ic SM
Text is rendered in small size (one point smaller than the default
font).
-.Ss \&SS
+.It Ic SS
Begin a sub-section.
The scope of a sub-section is closed by a subsequent sub-section,
section, or end of file.
The paragraph left-margin width is reset to the default.
-.Ss \&SY
+.It Ic SY
Begin a synopsis block with the following syntax:
.Bd -unfilled -offset indent
-.Pf \. Sx \&SY Ar command
+.Pf . Ic SY Ar command
.Ar arguments
-.Pf \. Sx \&YS
+.Pf . Ic YS
.Ed
.Pp
This is a non-standard GNU extension
and very rarely used even in GNU manual pages.
Formatting is similar to
-.Sx \&IP .
-.Ss \&TH
-Sets the title of the manual page for use in the page header
+.Ic IP .
+.It Ic TH
+Set the name of the manual page for use in the page header
and footer with the following syntax:
-.Bd -filled -offset indent
-.Pf \. Sx \&TH
-.Ar title section date
-.Op Ar source Op Ar volume
-.Ed
+.Pp
+.D1 Pf . Ic TH Ar name section date Op Ar source Op Ar volume
.Pp
Conventionally, the document
-.Ar title
+.Ar name
is given in all caps.
+The
+.Ar section
+is usually a single digit, in a few cases followed by a letter.
The recommended
.Ar date
format is
argument.
The
.Ar volume
-string replaces the default rendered volume, which is dictated by the
-manual section.
+string replaces the default volume title of the
+.Ar section .
.Pp
Examples:
.Pp
.Dl \&.TH CVS 5 "1992-02-12" GNU
-.Ss \&TP
+.It Ic TP
Begin a paragraph where the head, if exceeding the indentation width, is
-followed by a newline; if not, the body follows on the same line after a
-buffer to the indentation width.
+followed by a newline; if not, the body follows on the same line after
+advancing to the indentation width.
Subsequent output lines are indented.
The syntax is as follows:
-.Bd -filled -offset indent
-.Pf \. Sx \&TP
-.Op Ar width
+.Bd -unfilled -offset indent
+.Pf . Ic TP Op Ar width
+.Ar head No \e" one line
+.Ar body
.Ed
.Pp
The
scaling width.
If specified, it's saved for later paragraph left-margins; if
unspecified, the saved or default width is used.
-.Pp
-See also
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&P ,
-and
-.Sx \&PP .
-.Ss \&TQ
+.It Ic TQ
Like
-.Sx \&TP ,
+.Ic TP ,
except that no vertical spacing is inserted before the paragraph.
-This is a non-standard GNU extension and rarely used even by GNU
-manual pages.
-.Ss \&UC
+This is a non-standard GNU extension
+and very rarely used even in GNU manual pages.
+.It Ic UC
Sets the volume for the footer for compatibility with man pages from
.Bx
releases.
The optional first argument specifies which release it is from.
-.Ss \&UE
-End a uniform resource identifier block.
-This is a non-standard GNU extension, included only for compatibility.
-See
-.Sx \&UE .
-.Ss \&UR
+This macro is an extension that first appeared in
+.Bx 3 .
+.It Ic UE
+End a uniform resource identifier block started with
+.Ic UR .
+This is a non-standard GNU extension.
+.It Ic UR
Begin a uniform resource identifier block.
-This is a non-standard GNU extension, included only for compatibility.
+This is a non-standard GNU extension.
It has the following syntax:
-.Bd -literal -offset indent
-.Pf \. Sx \&UR Ar uri
+.Bd -unfilled -offset indent
+.Pf . Ic UR Ar uri
link description to be shown
-.Pf \. Sx UE
+.Pf . Ic UE
.Ed
-.Ss \&YS
-End a synopsis block started by
-.Pf \. Sx SY .
+.It Ic YS
+End a synopsis block started with
+.Ic SY .
This is a non-standard GNU extension.
-.Ss \&fi
-End literal mode begun by
-.Sx \&nf .
-.Ss \&in
+.It Ic in
Indent relative to the current indentation:
.Pp
-.D1 Pf \. Sx \&in Op Ar width
+.D1 Pf . Ic in Op Ar width
.Pp
If
.Ar 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 \&nf
-Begin literal mode: all subsequent free-form lines have their end of
-line boundaries preserved.
-May be ended by
-.Sx \&fi .
-Literal mode is implicitly ended by
-.Sx \&SH
-or
-.Sx \&SS .
+.El
.Sh MACRO SYNTAX
The
.Nm
.Ed
.Pp
is equivalent to
-.Sq \&.I foo .
+.Sq .I foo .
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
raised.
.Ed
.Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
.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 \&BI Ta n Ta current Ta \&
-.It Sx \&BR Ta n Ta current Ta \&
-.It Sx \&DT Ta 0 Ta current Ta \&
-.It Sx \&EE Ta 0 Ta current Ta compat
-.It Sx \&EX Ta 0 Ta current Ta compat
-.It Sx \&I Ta n Ta next-line Ta \&
-.It Sx \&IB Ta n Ta current Ta \&
-.It Sx \&IR Ta n Ta current Ta \&
-.It Sx \&OP Ta 0, 1 Ta current Ta compat
-.It Sx \&PD Ta 1 Ta current Ta \&
-.It Sx \&RB Ta n Ta current Ta \&
-.It Sx \&RI Ta n Ta current Ta \&
-.It Sx \&SB 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 \&UC Ta <=1 Ta current Ta \&
-.It Sx \&fi Ta 0 Ta current Ta compat
-.It Sx \&in Ta 1 Ta current Ta compat
-.It Sx \&nf Ta 0 Ta current Ta compat
+.It Ic AT Ta <=1 Ta current Ta \&
+.It Ic B Ta n Ta next-line Ta \&
+.It Ic BI Ta n Ta current Ta \&
+.It Ic BR Ta n Ta current Ta \&
+.It Ic DT Ta 0 Ta current Ta \&
+.It Ic EE Ta 0 Ta current Ta Version 9 At
+.It Ic EX Ta 0 Ta current Ta Version 9 At
+.It Ic I Ta n Ta next-line Ta \&
+.It Ic IB Ta n Ta current Ta \&
+.It Ic IR Ta n Ta current Ta \&
+.It Ic OP Ta >=1 Ta current Ta DWB
+.It Ic PD Ta 1 Ta current Ta \&
+.It Ic RB Ta n Ta current Ta \&
+.It Ic RI Ta n Ta current Ta \&
+.It Ic SB Ta n Ta next-line Ta \&
+.It Ic SM Ta n Ta next-line Ta \&
+.It Ic TH Ta >1, <6 Ta current Ta \&
+.It Ic UC Ta <=1 Ta current Ta \&
+.It Ic in Ta 1 Ta current Ta Xr roff 7
.El
-.Pp
-Macros marked as
-.Qq compat
-are included for compatibility with the significant corpus of existing
-manuals that mix dialects of roff.
-These macros should not be used for portable
-.Nm
-manuals.
.Ss Block Macros
Block macros comprise a head and body.
As with in-line macros, the head is scoped to the current line and, in
.Pp
The closure of body scope may be to the section, where a macro is closed
by
-.Sx \&SH ;
+.Ic SH ;
sub-section, closed by a section or
-.Sx \&SS ;
-part, closed by a section, sub-section, or
-.Sx \&RE ;
-or paragraph, closed by a section, sub-section, part,
-.Sx \&HP ,
-.Sx \&IP ,
-.Sx \&LP ,
-.Sx \&P ,
-.Sx \&PP ,
+.Ic SS ;
+or paragraph, closed by a section, sub-section,
+.Ic HP ,
+.Ic IP ,
+.Ic LP ,
+.Ic P ,
+.Ic PP ,
+.Ic RE ,
+.Ic SY ,
or
-.Sx \&TP .
+.Ic TP .
No closure refers to an explicit block closing macro.
.Pp
As a rule, block macros may not be nested; thus, calling a block macro
implicitly closed, is syntactically incorrect.
.Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
-.It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
-.It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
-.It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
-.It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
-.It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
-.It Sx \&RE Ta 0 Ta current Ta none Ta compat
-.It Sx \&RS Ta 1 Ta current Ta part Ta compat
-.It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
-.It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
-.It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
-.It Sx \&UE Ta 0 Ta current Ta none Ta compat
-.It Sx \&UR Ta 1 Ta current Ta part Ta compat
+.It Ic HP Ta <2 Ta current Ta paragraph Ta \&
+.It Ic IP Ta <3 Ta current Ta paragraph Ta \&
+.It Ic LP Ta 0 Ta current Ta paragraph Ta \&
+.It Ic ME Ta 0 Ta none Ta none Ta GNU
+.It Ic MT Ta 1 Ta current Ta to \&ME Ta GNU
+.It Ic P Ta 0 Ta current Ta paragraph Ta \&
+.It Ic PP Ta 0 Ta current Ta paragraph Ta \&
+.It Ic RE Ta <=1 Ta current Ta none Ta \&
+.It Ic RS Ta 1 Ta current Ta to \&RE Ta \&
+.It Ic SH Ta >0 Ta next-line Ta section Ta \&
+.It Ic SS Ta >0 Ta next-line Ta sub-section Ta \&
+.It Ic SY Ta 1 Ta current Ta to \&YS Ta GNU
+.It Ic TP Ta n Ta next-line Ta paragraph Ta \&
+.It Ic TQ Ta n Ta next-line Ta paragraph Ta GNU
+.It Ic UE Ta 0 Ta current Ta none Ta GNU
+.It Ic UR Ta 1 Ta current Ta part Ta GNU
+.It Ic YS Ta 0 Ta none Ta none Ta GNU
.El
.Pp
-Macros marked
-.Qq compat
-are as mentioned in
-.Sx Line Macros .
-.Pp
If a block macro is next-line scoped, it may only be followed by in-line
macros for decorating text.
.Ss Font handling
only lasts until the next macro invocation; in macro lines, it only lasts
until the end of the macro scope.
Note that macros like
-.Sx \&BR
+.Ic BR
open and close a font scope for each argument.
.Sh SEE ALSO
.Xr man 1 ,
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.
-Eric S. Raymond wrote the extended
-.Nm
-macros for groff in 2007.
+.Pp
The stand-alone implementation that is part of the
.Xr mandoc 1
-utility written by Kristaps Dzonsons appeared in
+utility first appeared in
.Ox 4.6 .
.Sh AUTHORS
-This
+.An -nosplit
+.An Douglas McIlroy Aq Mt m.douglas.mcilroy@dartmouth.edu
+designed and implemented the original version of these macros,
+wrote the original version of this manual page,
+and was the first to use them when he edited volume 1 of the
+.At v7
+manual pages.
+.Pp
+.An James Clark
+later rewrote the macros for groff.
+.An Eric S. Raymond Aq Mt esr@thyrsus.com
+and
+.An Werner Lemberg Aq Mt wl@gnu.org
+added the extended
+.Nm
+macros to groff in 2007.
+.Pp
+The
+.Xr mandoc 1
+program and this
.Nm
-reference was written by
+reference were written by
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
-.Sh CAVEATS
-Do not use this language.
-Use
-.Xr mdoc 7 ,
-instead.