version 1.108, 2018/12/15 19:30:26 |
version 1.119, 2022/05/31 18:09:57 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
|
.\" Copyright (c) 2010-2019, 2022 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2010-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 44 utility supports a subset of |
|
Line 44 utility supports a subset of |
|
requests and escapes. |
requests and escapes. |
Even though this manual page lists all |
Even though this manual page lists all |
.Nm |
.Nm |
requests, it only has partial information about requests not supported by |
requests and escape sequences, it only contains partial information |
|
about requests not supported by |
.Xr mandoc 1 |
.Xr mandoc 1 |
and about language features that do not matter for manual pages. |
and about language features that do not matter for manual pages. |
For complete |
For complete |
Line 86 indicates the start of an escape sequence, used for ex |
|
Line 87 indicates the start of an escape sequence, used for ex |
|
.Sx Comments |
.Sx Comments |
and |
and |
.Sx Special Characters . |
.Sx Special Characters . |
For a listing of escape sequences, consult the |
For a complete listing of escape sequences, consult the |
.Sx ESCAPE SEQUENCE REFERENCE |
.Sx ESCAPE SEQUENCE REFERENCE |
below. |
below. |
.Ss Comments |
.Ss Comments |
Line 132 One-letter backslash escape. |
|
Line 133 One-letter backslash escape. |
|
See |
See |
.Xr mandoc_char 7 |
.Xr mandoc_char 7 |
for a complete list. |
for a complete list. |
.Ss Text Decoration |
.Ss Font Selection |
Terms may be text-decorated using the |
In |
.Sq \ef |
.Xr mdoc 7 |
escape followed by an indicator: B (bold), I (italic), R (regular), or P |
and |
(revert to previous mode). |
.Xr man 7 |
A numerical representation 3, 2, or 1 (bold, italic, and regular, |
documents, fonts are usually selected with macros. |
respectively) may be used instead. |
The |
The indicator or numerical representative may be preceded by C |
.Ic \ef |
(constant-width), which is ignored. |
escape sequence and the |
|
.Ic \&ft |
|
request can be used to manually change the font, |
|
but this is not recommended in |
|
.Xr mdoc 7 |
|
documents. |
|
Such manual font changes are overridden by many subsequent macros. |
.Pp |
.Pp |
The two-character indicator |
The following fonts are supported: |
.Sq BI |
|
requests a font that is both bold and italic. |
|
It may not be portable to old roff implementations. |
|
.Pp |
.Pp |
|
.Bl -tag -width CW -offset indent -compact |
|
.It Cm B |
|
Bold font. |
|
.It Cm BI |
|
A font that is both bold and italic. |
|
.It Cm CB |
|
Bold constant width font. |
|
Same as |
|
.Cm B |
|
in terminal output. |
|
.It Cm CI |
|
Italic constant width font. |
|
Same as |
|
.Cm I |
|
in terminal output. |
|
.It Cm CR |
|
Regular constant width font. |
|
Same as |
|
.Cm R |
|
in terminal output. |
|
.It Cm CW |
|
An alias for |
|
.Cm CR . |
|
.It Cm I |
|
Italic font. |
|
.It Cm P |
|
Return to the previous font. |
|
If a macro caused a font change since the last |
|
.Ic \ef |
|
eascape sequence or |
|
.Ic \&ft |
|
request, this returns to the font before the last font change in |
|
the macro rather than to the font before the last manual font change. |
|
.It Cm R |
|
Roman font. |
|
This is the default font. |
|
.It Cm 1 |
|
An alias for |
|
.Cm R . |
|
.It Cm 2 |
|
An alias for |
|
.Cm I . |
|
.It Cm 3 |
|
An alias for |
|
.Cm B . |
|
.It Cm 4 |
|
An alias for |
|
.Cm BI . |
|
.El |
|
.Pp |
Examples: |
Examples: |
.Bl -tag -width Ds -offset indent -compact |
.Bl -tag -width Ds -offset indent -compact |
.It Li \efBbold\efR |
.It Li \efBbold\efR |
Line 156 Write in \fIitalic\fP, then return to previous font mo |
|
Line 210 Write in \fIitalic\fP, then return to previous font mo |
|
.It Li \ef(BIbold italic\efP |
.It Li \ef(BIbold italic\efP |
Write in \f(BIbold italic\fP, then return to previous font mode. |
Write in \f(BIbold italic\fP, then return to previous font mode. |
.El |
.El |
.Pp |
|
Text decoration is |
|
.Em not |
|
recommended for |
|
.Xr mdoc 7 , |
|
which encourages semantic annotation. |
|
.Ss Whitespace |
.Ss Whitespace |
Whitespace consists of the space character. |
Whitespace consists of the space character. |
In text lines, whitespace is preserved within a line. |
In text lines, whitespace is preserved within a line. |
|
|
.It i |
.It i |
inch |
inch |
.It P |
.It P |
pica (~1/6 inch) |
pica (1/6 inch) |
.It p |
.It p |
point (~1/72 inch) |
point (1/72 inch) |
.It f |
.It f |
scale |
scale |
.Sq u |
.Sq u |
|
|
.It u |
.It u |
default horizontal span for the terminal |
default horizontal span for the terminal |
.It M |
.It M |
mini-em (~1/100 em) |
mini-em (1/100 em) |
.El |
.El |
.Pp |
.Pp |
Using anything other than |
Using anything other than |
|
|
The proper spacing is also intelligently preserved if a sentence ends at |
The proper spacing is also intelligently preserved if a sentence ends at |
the boundary of a macro line. |
the boundary of a macro line. |
.Pp |
.Pp |
|
If an input line happens to end with a period, exclamation or question |
|
mark that isn't the end of a sentence, append a zero-width space |
|
.Pq Sq \e& . |
|
.Pp |
Examples: |
Examples: |
.Bd -literal -offset indent -compact |
.Bd -literal -offset indent -compact |
Do not end sentences mid-line like this. Instead, |
Do not end sentences mid-line like this. Instead, |
end a sentence like this. |
end a sentence like this. |
A macro would end like this: |
A macro would end like this: |
\&.Xr mandoc 1 \&. |
\&.Xr mandoc 1 \&. |
|
An abbreviation at the end of an input line needs escaping, e.g.\e& |
|
like this. |
.Ed |
.Ed |
.Sh REQUEST SYNTAX |
.Sh REQUEST SYNTAX |
A request or macro line consists of: |
A request or macro line consists of: |
Line 455 This is a Heirloom extension and currently unsupported |
|
Line 509 This is a Heirloom extension and currently unsupported |
|
.It Ic \&br |
.It Ic \&br |
Break the output line. |
Break the output line. |
.It Ic \&break |
.It Ic \&break |
Break out of a |
Break out of the innermost |
.Ic \&while |
.Ic \&while |
loop. |
loop. |
Currently unsupported. |
|
.It Ic \&breakchar Ar char ... |
.It Ic \&breakchar Ar char ... |
Optional line break characters. |
Optional line break characters. |
This is a Heirloom extension and currently ignored. |
This is a Heirloom extension and currently ignored. |
Line 571 Its syntax can be either |
|
Line 624 Its syntax can be either |
|
.Pp |
.Pp |
or |
or |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
.Pf . Ic \&de Ar macroname Ar endmacro |
.Pf . Ic \&de Ar macroname endmacro |
.Ar definition |
.Ar definition |
.Pf . Ar endmacro |
.Pf . Ar endmacro |
.Ed |
.Ed |
Line 593 macros, whichever applies to the document in question. |
|
Line 646 macros, whichever applies to the document in question. |
|
.Pp |
.Pp |
Specifying a custom |
Specifying a custom |
.Ar endmacro |
.Ar endmacro |
macro works in the same way as for |
works in the same way as for |
.Ic \&ig ; |
.Ic \&ig ; |
namely, the call to |
namely, the call to |
.Sq Pf . Ar endmacro |
.Sq Pf . Ar endmacro |
Line 860 This is a Heirloom extension and currently ignored. |
|
Line 913 This is a Heirloom extension and currently ignored. |
|
Enable or disable an OpenType feature. |
Enable or disable an OpenType feature. |
This is a Heirloom extension and currently ignored. |
This is a Heirloom extension and currently ignored. |
.It Ic \&fi |
.It Ic \&fi |
Switch to fill mode. |
Break the output line and switch to fill mode, |
See |
which is active by default but can be ended with the |
.Xr man 7 . |
.Ic \&nf |
Ignored in |
request. |
.Xr mdoc 7 . |
In fill mode, input from subsequent input lines is added to |
|
the same output line until the next word no longer fits, |
|
at which point the output line is broken. |
|
This request is implied by the |
|
.Xr mdoc 7 |
|
.Ic \&Sh |
|
macro and by the |
|
.Xr man 7 |
|
.Ic \&SH , |
|
.Ic \&SS , |
|
and |
|
.Ic \&EE |
|
macros. |
.It Ic \&fkern Ar font minkern |
.It Ic \&fkern Ar font minkern |
Control the use of kerning tables for a font. |
Control the use of kerning tables for a font. |
This is a Heirloom extension and currently ignored. |
This is a Heirloom extension and currently ignored. |
Line 890 This is a Heirloom extension and currently ignored. |
|
Line 955 This is a Heirloom extension and currently ignored. |
|
Conditionally define a special font. |
Conditionally define a special font. |
This is a groff extension and currently ignored. |
This is a groff extension and currently ignored. |
.It Ic \&ft Op Ar font |
.It Ic \&ft Op Ar font |
Change the font. |
Change the font; see |
The following |
.Sx Font Selection . |
|
The |
.Ar font |
.Ar font |
arguments are supported: |
argument defaults to |
.Bl -tag -width 4n -offset indent |
.Cm P . |
.It Cm B , BI , CB , 3 , 4 |
|
switches to |
|
.Sy bold |
|
font |
|
.It Cm I , CI , 2 |
|
switches to |
|
.Em underlined |
|
font |
|
.It Cm R , CR , CW , 1 |
|
switches to normal font |
|
.It Cm P No "or no argument" |
|
switches back to the previous font |
|
.El |
|
.Pp |
|
This request takes effect only locally and may be overridden |
|
by macros and escape sequences. |
|
.It Ic \&ftr Ar newname Op Ar oldname |
.It Ic \&ftr Ar newname Op Ar oldname |
Translate font name. |
Translate font name. |
This is a groff extension and currently ignored. |
This is a groff extension and currently ignored. |
Line 1314 Declare the need for the specified minimum vertical sp |
|
Line 1364 Declare the need for the specified minimum vertical sp |
|
before the next trap or the bottom of the page. |
before the next trap or the bottom of the page. |
Currently ignored. |
Currently ignored. |
.It Ic \&nf |
.It Ic \&nf |
Switch to no-fill mode. |
Break the output line and switch to no-fill mode. |
See |
Subsequent input lines are kept together on the same output line |
.Xr man 7 . |
even when exceeding the right margin, |
Ignored by |
and line breaks in subsequent input cause output line breaks. |
.Xr mdoc 7 . |
This request is implied by the |
|
.Xr mdoc 7 |
|
.Ic \&Bd Fl unfilled |
|
and |
|
.Ic \&Bd Fl literal |
|
macros and by the |
|
.Xr man 7 |
|
.Ic \&EX |
|
macro. |
|
The |
|
.Ic \&fi |
|
request switches back to the default fill mode. |
.It Ic \&nh |
.It Ic \&nh |
Turn off automatic hyphenation mode. |
Turn off automatic hyphenation mode. |
Currently ignored. |
Currently ignored. |
|
|
.Xr mandoc 1 |
.Xr mandoc 1 |
.Nm |
.Nm |
parser recognises the following escape sequences. |
parser recognises the following escape sequences. |
Note that the |
|
.Nm |
|
language defines more escape sequences not implemented in |
|
.Xr mandoc 1 . |
|
In |
In |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
and |
Line 1830 described in the |
|
Line 1887 described in the |
|
.Sx LANGUAGE SYNTAX |
.Sx LANGUAGE SYNTAX |
section above. |
section above. |
.Pp |
.Pp |
In |
A backslash followed by any character not listed here |
.Xr mandoc 1 , |
|
a backslash followed by any character not listed here |
|
simply prints that character itself. |
simply prints that character itself. |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Ic \e<newline> |
.It Ic \e<newline> |
Line 1843 on both lines together as if it were on a single input |
|
Line 1898 on both lines together as if it were on a single input |
|
The escape sequence backslash-space |
The escape sequence backslash-space |
.Pq Sq \e\ \& |
.Pq Sq \e\ \& |
is an unpaddable space-sized non-breaking space character; see |
is an unpaddable space-sized non-breaking space character; see |
.Sx Whitespace . |
.Sx Whitespace |
|
and |
|
.Xr mandoc_char 7 . |
.It Ic \e! |
.It Ic \e! |
Embed text up to and including the end of the input line into the |
Embed text up to and including the end of the input line into the |
current diversion or into intermediate output without interpreting |
current diversion or into intermediate output without interpreting |
Line 1865 Macro argument expansion, see |
|
Line 1922 Macro argument expansion, see |
|
Hyphenation allowed at this point of the word; ignored by |
Hyphenation allowed at this point of the word; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.It Ic \e& |
.It Ic \e& |
Non-printing zero-width character; see |
Non-printing zero-width character, |
.Sx Whitespace . |
often used for various kinds of escaping; see |
|
.Sx Whitespace , |
|
.Xr mandoc_char 7 , |
|
and the |
|
.Dq MACRO SYNTAX |
|
and |
|
.Dq Delimiters |
|
sections in |
|
.Xr mdoc 7 . |
.It Ic \e\(aq |
.It Ic \e\(aq |
Acute accent special character; use |
Acute accent special character; use |
.Ic \e(aa |
.Ic \e(aa |
Line 1912 Left italic correction (groff extension); ignored by |
|
Line 1977 Left italic correction (groff extension); ignored by |
|
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.It Ic \e- |
.It Ic \e- |
Special character |
Special character |
.Dq mathematical minus sign . |
.Dq mathematical minus sign ; |
|
see |
|
.Xr mandoc_char 7 |
|
for details. |
.It Ic \e/ |
.It Ic \e/ |
Right italic correction (groff extension); ignored by |
Right italic correction (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
|
|
.Ar string |
.Ar string |
conforms to the syntax of |
conforms to the syntax of |
.Sx Numerical expressions |
.Sx Numerical expressions |
explained above and |
explained above or |
.Sq 0 |
.Sq 0 |
otherwise. |
otherwise. |
.It Ic \eb\(aq Ns Ar string Ns Ic \(aq |
.It Ic \eb\(aq Ns Ar string Ns Ic \(aq |
Line 1990 Move down by half a line; ignored by |
|
Line 2058 Move down by half a line; ignored by |
|
Escape character intended to not be interpreted in copy mode. |
Escape character intended to not be interpreted in copy mode. |
In |
In |
.Xr mandoc 1 , |
.Xr mandoc 1 , |
it does the same as |
it currently does the same as |
.Ic \e |
.Ic \e |
itself for now. |
itself. |
.It Ic \ee |
.It Ic \ee |
Backslash special character. |
Backslash special character. |
.It Ic \eF[ Ns Ar name Ns Ic \&] |
.It Ic \eF[ Ns Ar name Ns Ic \&] |
|
|
Switch to the font |
Switch to the font |
.Ar name , |
.Ar name , |
see |
see |
.Sx Text Decoration . |
.Sx Font Selection . |
For short names, there are variants |
For short names, there are variants |
.Ic \ef Ns Ar c |
.Ic \ef Ns Ar c |
and |
and |
.Ic \ef( Ns Ar cc . |
.Ic \ef( Ns Ar cc . |
|
An empty name |
|
.Ic \ef[] |
|
defaults to |
|
.Ic \efP . |
.It Ic \eg[ Ns Ar name Ns Ic \&] |
.It Ic \eg[ Ns Ar name Ns Ic \&] |
Interpolate the format of a number register; ignored by |
Interpolate the format of a number register; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 , |
|
which interpolates an empty string instead. |
For short names, there are variants |
For short names, there are variants |
.Ic \eg Ns Ar c |
.Ic \eg Ns Ar c |
and |
and |
Line 2094 Break the output line at the end of the current word. |
|
Line 2167 Break the output line at the end of the current word. |
|
Set number register; ignored by |
Set number register; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.It Ic \er |
.It Ic \er |
Move up by one line; ignored by |
Reverse line feed: move up by one output line. |
.Xr mandoc 1 . |
Currently unsupported. |
.It Ic \eS\(aq Ns Ar number Ns Ic \(aq |
.It Ic \eS\(aq Ns Ar number Ns Ic \(aq |
Slant output; ignored by |
Slant output; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
Line 2116 Horizontal tab; ignored by |
|
Line 2189 Horizontal tab; ignored by |
|
Move up by half a line; ignored by |
Move up by half a line; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.It Ic \eV[ Ns Ar name Ns Ic \&] |
.It Ic \eV[ Ns Ar name Ns Ic \&] |
Interpolate an environment variable; ignored by |
Interpolate an environment variable. |
.Xr mandoc 1 . |
|
For short names, there are variants |
For short names, there are variants |
.Ic \eV Ns Ar c |
.Ic \eV Ns Ar c |
and |
and |
.Ic \eV( Ns Ar cc . |
.Ic \eV( Ns Ar cc . |
|
This escape sequence is intentionally unsupported; |
|
.Xr mandoc 1 |
|
prints the string |
|
.Dq Pf $ Brq Ar name |
|
instead of inspecting the environment. |
.It Ic \ev\(aq Ns Ar number Ns Ic \(aq |
.It Ic \ev\(aq Ns Ar number Ns Ic \(aq |
Vertical motion; ignored by |
Vertical motion; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
|
|
.Pp |
.Pp |
The special semantics of the |
The special semantics of the |
.Cm nS |
.Cm nS |
number register is an idiosyncracy of |
number register is an idiosyncrasy of |
.Ox |
.Ox |
manuals and not supported by other |
manuals and not supported by other |
.Xr mdoc 7 |
.Xr mdoc 7 |
|
|
.At v2 , |
.At v2 , |
then ported nroff to C as troff, which Brian W. Kernighan released with |
then ported nroff to C as troff, which Brian W. Kernighan released with |
.At v7 . |
.At v7 . |
In 1989, James Clarke re-implemented troff in C++, naming it groff. |
In 1989, James Clark re-implemented troff in C++, naming it groff. |
.Sh AUTHORS |
.Sh AUTHORS |
.An -nosplit |
.An -nosplit |
This |
This |