version 1.235, 2018/12/28 00:15:11 |
version 1.259, 2022/06/05 13:54:09 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
|
.\" Copyright (c) 2012, 2014-2022 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2012, 2014-2018 Ingo Schwarze <schwarze@openbsd.org> |
|
.\" |
.\" |
.\" 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 |
Line 52 The options are as follows: |
|
Line 52 The options are as follows: |
|
If the standard output is a terminal device and |
If the standard output is a terminal device and |
.Fl c |
.Fl c |
is not specified, use |
is not specified, use |
.Xr more 1 |
.Xr less 1 |
to paginate the output, just like |
to paginate the output, just like |
.Xr man 1 |
.Xr man 1 |
would. |
would. |
.It Fl c |
.It Fl c |
Copy the formatted manual pages to the standard output without using |
Copy the formatted manual pages to the standard output without using |
.Xr more 1 |
.Xr less 1 |
to paginate them. |
to paginate them. |
This is the default. |
This is the default. |
It can be specified to override |
It can be specified to override |
Line 222 reads from standard input. |
|
Line 222 reads from standard input. |
|
.Pp |
.Pp |
The options |
The options |
.Fl fhklw |
.Fl fhklw |
are also supported and are documented in man(1). |
are also supported and are documented in |
|
.Xr man 1 . |
In |
In |
.Fl f |
.Fl f |
and |
and |
|
|
The special characters documented in |
The special characters documented in |
.Xr mandoc_char 7 |
.Xr mandoc_char 7 |
are rendered best-effort in an ASCII equivalent. |
are rendered best-effort in an ASCII equivalent. |
|
In particular, opening and closing |
|
.Sq single quotes |
|
are represented as characters number 0x60 and 0x27, respectively, |
|
which agrees with all ASCII standards from 1965 to the latest |
|
revision (2012) and which matches the traditional way in which |
|
.Xr roff 7 |
|
formatters represent single quotes in ASCII output. |
|
This correct ASCII rendering may look strange with modern |
|
Unicode-compatible fonts because contrary to ASCII, Unicode uses |
|
the code point U+0060 for the grave accent only, never for an opening |
|
quote. |
.Pp |
.Pp |
The following |
The following |
.Fl O |
.Fl O |
|
|
input files in |
input files in |
.Xr mdoc 7 |
.Xr mdoc 7 |
output style. |
output style. |
Specifically, this suppresses the two additional blank lines near the |
This prints the operating system name rather than the page title |
top and the bottom of each page, and it implies |
on the right side of the footer line, and it implies |
.Fl O Cm indent Ns =5 . |
.Fl O Cm indent Ns =5 . |
One useful application is for checking that |
One useful application is for checking that |
.Fl T Cm man |
.Fl T Cm man |
|
|
is specified, reuse the first command line argument that is not a |
is specified, reuse the first command line argument that is not a |
.Ar section |
.Ar section |
number. |
number. |
This is useful when it is the name of a manual page, |
If that argument is in |
in particular the name of a library function. |
.Xr apropos 1 |
|
.Ar key Ns = Ns Ar val |
|
format, only the |
|
.Ar val |
|
is used rather than the argument as a whole. |
|
This is useful for commands like |
|
.Ql man -akO tag Ic=ulimit |
|
to search for a keyword and jump right to its definition |
|
in the matching manual pages. |
.It Cm width Ns = Ns Ar width |
.It Cm width Ns = Ns Ar width |
The output width is set to |
The output width is set to |
.Ar width |
.Ar width |
|
|
is used for an external style-sheet. |
is used for an external style-sheet. |
This must be a valid absolute or |
This must be a valid absolute or |
relative URI. |
relative URI. |
|
.It Cm tag Ns Op = Ns Ar term |
|
Same syntax and semantics as for |
|
.Sx ASCII Output . |
|
This is implemented by passing a |
|
.Ic file:// |
|
URI ending in a fragment identifier to the pager |
|
rather than passing merely a file name. |
|
When using this argument, use a pager supporting such URIs, for example |
|
.Bd -literal -offset 3n |
|
MANPAGER='lynx -force_html' man -T html -O tag=MANPAGER man |
|
MANPAGER='w3m -T text/html' man -T html -O tag=toc mandoc |
|
.Ed |
|
.Pp |
|
Consequently, for HTML output, this argument does not work with |
|
.Xr more 1 |
|
or |
|
.Xr less 1 . |
|
For example, |
|
.Ql MANPAGER=less man -T html -O tag=toc mandoc |
|
does not work because |
|
.Xr less 1 |
|
does not support |
|
.Ic file:// |
|
URIs. |
.It Cm toc |
.It Cm toc |
If an input file contains at least two non-standard sections, |
If an input file contains at least two non-standard sections, |
print a table of contents near the beginning of the output. |
print a table of contents near the beginning of the output. |
Line 423 This is useful for distributing manual sources to lega |
|
Line 467 This is useful for distributing manual sources to lega |
|
lacking |
lacking |
.Xr mdoc 7 |
.Xr mdoc 7 |
formatters. |
formatters. |
|
Embedded |
|
.Xr eqn 7 |
|
and |
|
.Xr tbl 7 |
|
code is not supported. |
.Pp |
.Pp |
If the input format of a file is |
If the input format of a file is |
.Xr man 7 , |
.Xr man 7 , |
the input is copied to the output, expanding any |
the input is copied to the output. |
.Xr roff 7 |
|
.Ic so |
|
requests. |
|
The parser is also run, and as usual, the |
The parser is also run, and as usual, the |
.Fl W |
.Fl W |
level controls which |
level controls which |
|
|
to translate |
to translate |
.Xr mdoc 7 |
.Xr mdoc 7 |
input to the markdown format conforming to |
input to the markdown format conforming to |
.Lk http://daringfireball.net/projects/markdown/syntax.text\ |
.Lk https://daringfireball.net/projects/markdown/syntax.text\ |
"John Gruber's 2004 specification" . |
"John Gruber's 2004 specification" . |
The output also almost conforms to the |
The output also almost conforms to the |
.Lk http://commonmark.org/ CommonMark |
.Lk https://commonmark.org/ CommonMark |
specification. |
specification. |
.Pp |
.Pp |
The character set used for the markdown output is ASCII. |
The character set used for the markdown output is ASCII. |
Line 608 It never affects the interpretation of input files. |
|
Line 654 It never affects the interpretation of input files. |
|
Any non-empty value of the environment variable |
Any non-empty value of the environment variable |
.Ev MANPAGER |
.Ev MANPAGER |
is used instead of the standard pagination program, |
is used instead of the standard pagination program, |
.Xr more 1 ; |
.Xr less 1 ; |
see |
see |
.Xr man 1 |
.Xr man 1 |
for details. |
for details. |
Line 622 Specifies the pagination program to use when |
|
Line 668 Specifies the pagination program to use when |
|
.Ev MANPAGER |
.Ev MANPAGER |
is not defined. |
is not defined. |
If neither PAGER nor MANPAGER is defined, |
If neither PAGER nor MANPAGER is defined, |
.Xr more 1 |
.Xr less 1 |
.Fl s |
|
is used. |
is used. |
Only used if |
Only used if |
.Fl a |
.Fl a |
Line 678 No input files have been read. |
|
Line 723 No input files have been read. |
|
.It 6 |
.It 6 |
An operating system error occurred, for example exhaustion |
An operating system error occurred, for example exhaustion |
of memory, file descriptors, or process table entries. |
of memory, file descriptors, or process table entries. |
Such errors cause |
Such errors may cause |
.Nm |
.Nm |
to exit at once, possibly in the middle of parsing or formatting a file. |
to exit at once, possibly in the middle of parsing or formatting a file. |
.El |
.El |
Line 690 output mode implies |
|
Line 735 output mode implies |
|
.Sh EXAMPLES |
.Sh EXAMPLES |
To page manuals to the terminal: |
To page manuals to the terminal: |
.Pp |
.Pp |
.Dl $ mandoc -l mandoc.1 man.1 apropos.1 makewhatis.8 |
.Dl $ mandoc -a mandoc.1 man.1 apropos.1 makewhatis.8 |
.Pp |
.Pp |
To produce HTML manuals with |
To produce HTML manuals with |
.Pa /usr/share/misc/mandoc.css |
.Pa /usr/share/misc/mandoc.css |
|
|
.Pp |
.Pp |
Message levels have the following meanings: |
Message levels have the following meanings: |
.Bl -tag -width "warning" |
.Bl -tag -width "warning" |
|
.It Cm syserr |
|
An operating system error occurred. |
|
There isn't necessarily anything wrong with the input files. |
|
Output may all the same be missing or incomplete. |
|
.It Cm badarg |
|
Invalid command line arguments were specified. |
|
No input files have been read and no output is produced. |
.It Cm unsupp |
.It Cm unsupp |
An input file uses unsupported low-level |
An input file uses unsupported low-level |
.Xr roff 7 |
.Xr roff 7 |
Line 783 message levels, the |
|
Line 835 message levels, the |
|
.Cm style |
.Cm style |
level tries to reduce the probability that issues go unnoticed, |
level tries to reduce the probability that issues go unnoticed, |
so it may occasionally issue bogus suggestions. |
so it may occasionally issue bogus suggestions. |
Please use your good judgement to decide whether any particular |
Use your judgement to decide whether any particular |
.Cm style |
.Cm style |
suggestion really justifies a change to the input file. |
suggestion really justifies a change to the input file. |
.It Cm base |
.It Cm base |
|
|
.Cm error , |
.Cm error , |
and |
and |
.Cm unsupp |
.Cm unsupp |
levels except those about non-existent or unreadable input files |
levels are hidden unless their level, or a lower level, is requested using a |
are hidden unless their level, or a lower level, is requested using a |
|
.Fl W |
.Fl W |
option or |
option or |
.Fl T Cm lint |
.Fl T Cm lint |
Line 871 generated by CVS |
|
Line 922 generated by CVS |
|
or |
or |
.Ic NetBSD |
.Ic NetBSD |
keyword substitution as conventionally used in these operating systems. |
keyword substitution as conventionally used in these operating systems. |
.It Sy "referenced manual not found" |
|
.Pq mdoc |
|
An |
|
.Ic \&Xr |
|
macro references a manual page that is not found in the base system. |
|
The path to look for base system manuals is configurable at compile |
|
time and defaults to |
|
.Pa /usr/share/man : /usr/X11R6/man . |
|
.El |
.El |
.Ss Style suggestions |
.Ss Style suggestions |
.Bl -ohang |
.Bl -ohang |
Line 965 list contains two consecutive |
|
Line 1008 list contains two consecutive |
|
entries describing the same |
entries describing the same |
.Ic \&Er |
.Ic \&Er |
number. |
number. |
|
.It Sy "referenced manual not found" |
|
.Pq mdoc |
|
An |
|
.Ic \&Xr |
|
macro references a manual page that was not found. |
|
When running with |
|
.Fl W Cm base , |
|
the search is restricted to the base system, by default to |
|
.Pa /usr/share/man : Ns Pa /usr/X11R6/man . |
|
This path can be configured at compile time using the |
|
.Dv MANPATH_BASE |
|
preprocessor macro. |
|
When running with |
|
.Fl W Cm style , |
|
the search is done along the full search path as described in the |
|
.Xr man 1 |
|
manual page, respecting the |
|
.Fl m |
|
and |
|
.Fl M |
|
command line options, the |
|
.Ev MANPATH |
|
environment variable, the |
|
.Xr man.conf 5 |
|
file and falling back to the default of |
|
.Pa /usr/share/man : Ns Pa /usr/X11R6/man : Ns Pa /usr/local/man , |
|
also configurable at compile time using the |
|
.Dv MANPATH_DEFAULT |
|
preprocessor macro. |
.It Sy "trailing delimiter" |
.It Sy "trailing delimiter" |
.Pq mdoc |
.Pq mdoc |
The last argument of an |
The last argument of an |
|
|
request occurs even though the document already switched to no-fill mode |
request occurs even though the document already switched to no-fill mode |
and did not switch back to fill mode yet. |
and did not switch back to fill mode yet. |
It has no effect. |
It has no effect. |
|
.It Sy "input text line longer than 80 bytes" |
|
Consider breaking the input text line |
|
at one of the blank characters before column 80. |
.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" |
.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" |
.Pq mdoc |
.Pq mdoc |
Even though the ASCII output device renders an em-dash as |
Even though the ASCII output device renders an em-dash as |
Line 1047 macro lacks the mandatory section argument. |
|
Line 1122 macro lacks the mandatory section argument. |
|
The section number in a |
The section number in a |
.Ic \&Dt |
.Ic \&Dt |
line is invalid, but still used. |
line is invalid, but still used. |
.It Sy "missing date, using today's date" |
.It Sy "filename/section mismatch" |
|
.Pq mdoc , man |
|
The name of the input file being processed is known and its file |
|
name extension starts with a non-zero digit, but the |
|
.Ic \&Dt |
|
or |
|
.Ic \&TH |
|
macro contains a |
|
.Ar section |
|
argument that starts with a different non-zero digit. |
|
The |
|
.Ar section |
|
argument is used as provided anyway. |
|
Consider checking whether the file name or the argument need a correction. |
|
.It Sy "missing date, using \(dq\(dq" |
.Pq mdoc, man |
.Pq mdoc, man |
The document was parsed as |
The document was parsed as |
.Xr mdoc 7 |
.Xr mdoc 7 |
|
|
layout modifier has an unknown |
layout modifier has an unknown |
.Ar font |
.Ar font |
argument. |
argument. |
|
.It Sy "ignoring distance argument" |
|
.Pq roff |
|
In addition to the margin character, an |
|
.Ic \&mc |
|
request has a second argument supposed to represent a distance, but the |
|
.Nm |
|
implementation of |
|
.Ic \&mc |
|
always ignores the second argument. |
.It Sy "odd number of characters in request" |
.It Sy "odd number of characters in request" |
.Pq roff |
.Pq roff |
A |
A |
Line 1680 The meaning of blank input lines is only well-defined |
|
Line 1778 The meaning of blank input lines is only well-defined |
|
In fill mode, line breaks of text input lines are not supposed to be |
In fill mode, line breaks of text input lines are not supposed to be |
significant. |
significant. |
However, for compatibility with groff, blank lines in fill mode |
However, for compatibility with groff, blank lines in fill mode |
are replaced with |
are formatted like |
.Ic \&sp |
.Ic \&sp |
requests. |
requests. |
|
To request a paragraph break, use |
|
.Ic \&Pp |
|
instead of a blank line. |
.It Sy "tab in filled text" |
.It Sy "tab in filled text" |
.Pq mdoc , man |
.Pq mdoc , man |
The meaning of tab characters is only well-defined in non-fill mode: |
The meaning of tab characters is only well-defined in non-fill mode: |
Line 1698 A new sentence starts in the middle of a text line. |
|
Line 1799 A new sentence starts in the middle of a text line. |
|
Start it on a new input line to help formatters produce correct spacing. |
Start it on a new input line to help formatters produce correct spacing. |
.It Sy "invalid escape sequence" |
.It Sy "invalid escape sequence" |
.Pq roff |
.Pq roff |
An escape sequence has an invalid opening argument delimiter, lacks the |
An escape sequence has an invalid opening argument delimiter |
closing argument delimiter, the argument is of an invalid form, or it is |
or the argument is of an invalid form. |
a character escape sequence with an invalid name. |
Invalid escape sequences are ignored. |
If the argument is incomplete, |
|
.Ic \e* |
|
and |
|
.Ic \en |
|
expand to an empty string, |
|
.Ic \eB |
|
to the digit |
|
.Sq 0 , |
|
and |
|
.Ic \ew |
|
to the length of the incomplete argument. |
|
All other invalid escape sequences are ignored. |
|
.It Sy "undefined escape, printing literally" |
.It Sy "undefined escape, printing literally" |
.Pq roff |
.Pq roff |
In an escape sequence, the first character |
In an escape sequence, the first character |
Line 1782 The invalid character is discarded. |
|
Line 1871 The invalid character is discarded. |
|
A table layout specification contains an opening parenthesis, |
A table layout specification contains an opening parenthesis, |
but no matching closing parenthesis. |
but no matching closing parenthesis. |
The rest of the input line, starting from the parenthesis, has no effect. |
The rest of the input line, starting from the parenthesis, has no effect. |
|
.It Sy "ignoring excessive spacing in tbl layout" |
|
.Pq tbl |
|
A spacing modifier in a table layout is unreasonably large. |
|
The default spacing of 3n is used instead. |
.It Sy "tbl without any data cells" |
.It Sy "tbl without any data cells" |
.Pq tbl |
.Pq tbl |
A table does not contain any data cells. |
A table does not contain any data cells. |
Line 1986 and expands to the empty string. |
|
Line 2079 and expands to the empty string. |
|
.Pq roff |
.Pq roff |
The argument of the escape sequence \e$ is not a digit; |
The argument of the escape sequence \e$ is not a digit; |
the escape sequence expands to the empty string. |
the escape sequence expands to the empty string. |
|
.It Sy "negative argument, using 0" |
|
.Pq roff |
|
A |
|
.Ic \&shift |
|
request has a negative argument |
|
or an argument that is negative due to integer overflow. |
|
Macro argument numbering remains unchanged. |
.It Sy "NOT IMPLEMENTED: Bd -file" |
.It Sy "NOT IMPLEMENTED: Bd -file" |
.Pq mdoc |
.Pq mdoc |
For security reasons, the |
For security reasons, the |
Line 2021 The first argument of a |
|
Line 2121 The first argument of a |
|
request is neither a single ASCII character |
request is neither a single ASCII character |
nor a single character escape sequence. |
nor a single character escape sequence. |
The request is ignored including all its arguments. |
The request is ignored including all its arguments. |
|
.It Sy "skipping unusable escape sequence" |
|
.Pq roff |
|
The first argument of an |
|
.Ic mc |
|
request is neither a single ASCII character |
|
nor a single character escape sequence. |
|
All arguments are ignored and printing of a margin character is disabled. |
.It Sy "missing manual name, using \(dq\(dq" |
.It Sy "missing manual name, using \(dq\(dq" |
.Pq mdoc |
.Pq mdoc |
The first call to |
The first call to |
Line 2166 with invalid arguments |
|
Line 2273 with invalid arguments |
|
.El |
.El |
The excess arguments are ignored. |
The excess arguments are ignored. |
.El |
.El |
|
.Ss "Errors related to escape sequences" |
|
.Bl -ohang |
|
.It Sy "incomplete escape sequence" |
|
.Pq roff |
|
The end of the input line is encountered |
|
while parsing the argument of an escape sequence. |
|
In this case, |
|
.Ic \e* |
|
and |
|
.Ic \en |
|
expand to an empty string, |
|
.Ic \eB |
|
to the digit |
|
.Sq 0 , |
|
and |
|
.Ic \ew |
|
to the length of the incomplete argument. |
|
All other incomplete escape sequences are ignored. |
|
.It Sy "invalid special character" |
|
.Pq roff |
|
A special character escape sequence is invalid, |
|
for example a Unicode sequence pointing to a surrogate |
|
or beyond the Unicode range, a \e[char...] escape sequence |
|
representing a control character or pointing beyond the |
|
.Vt unsigned char |
|
range, or an invalid variable-length form |
|
of a single-byte character escape sequence, for example writing |
|
.Qq \e[e] |
|
or |
|
.Qq \e[~] |
|
instead of |
|
.Qq \ee |
|
or |
|
.Qq \e~ , |
|
respectively. |
|
The escape sequence is ignored. |
|
.It Sy "unknown special character" |
|
.Pq roff |
|
The name given in a special character escape sequence is not known to |
|
.Nm . |
|
The escape sequence is ignored. |
|
.El |
.Ss Unsupported features |
.Ss Unsupported features |
.Bl -ohang |
.Bl -ohang |
.It Sy "input too large" |
.It Sy "input too large" |
|
|
macro or of an undefined macro. |
macro or of an undefined macro. |
The macro is ignored, and its arguments are handled |
The macro is ignored, and its arguments are handled |
as if they were a text line. |
as if they were a text line. |
|
.It Sy "skipping tbl in -Tman mode" |
|
.Pq mdoc , tbl |
|
An input file contains the |
|
.Ic \&TS |
|
macro. |
|
This message is only generated in |
|
.Fl T Cm man |
|
output mode, where |
|
.Xr tbl 7 |
|
input is not supported. |
|
.It Sy "skipping eqn in -Tman mode" |
|
.Pq mdoc , eqn |
|
An input file contains the |
|
.Ic \&EQ |
|
macro. |
|
This message is only generated in |
|
.Fl T Cm man |
|
output mode, where |
|
.Xr eqn 7 |
|
input is not supported. |
|
.El |
|
.Ss Bad command line arguments |
|
.Bl -ohang |
|
.It Sy "bad command line argument" |
|
The argument following one of the |
|
.Fl IKMmOTW |
|
command line options is invalid, or a |
|
.Ar file |
|
given as a command line argument cannot be opened. |
|
.It Sy "duplicate command line argument" |
|
The |
|
.Fl I |
|
command line option was specified twice. |
|
.It Sy "option has a superfluous value" |
|
An argument to the |
|
.Fl O |
|
option has a value but does not accept one. |
|
.It Sy "missing option value" |
|
An argument to the |
|
.Fl O |
|
option has no argument but requires one. |
|
.It Sy "bad option value" |
|
An argument to the |
|
.Fl O |
|
.Cm indent |
|
or |
|
.Cm width |
|
option has an invalid value. |
|
.It Sy "duplicate option value" |
|
The same |
|
.Fl O |
|
option is specified more than once. |
|
.It Sy "no such tag" |
|
The |
|
.Fl O Cm tag |
|
option was specified but the tag was not found in any of the displayed |
|
manual pages. |
|
.It Sy "\-Tmarkdown unsupported for man(7) input" |
|
.Pq man |
|
The |
|
.Fl T Cm markdown |
|
option was specified but an input file uses the |
|
.Xr man 7 |
|
language. |
|
No output is produced for that input file. |
.El |
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr apropos 1 , |
.Xr apropos 1 , |