version 1.97, 2018/08/10 04:41:25 |
version 1.108, 2018/12/15 19:30:26 |
|
|
code. |
code. |
To properly format such manuals, the |
To properly format such manuals, the |
.Xr mandoc 1 |
.Xr mandoc 1 |
utility supports a tiny subset of |
utility supports a subset of |
.Nm |
.Nm |
requests and escapes. |
requests and escapes. |
Only these requests and escapes supported by |
Even though this manual page lists all |
|
.Nm |
|
requests, it only has partial information about requests not supported by |
.Xr mandoc 1 |
.Xr mandoc 1 |
are documented in the present manual, |
and about language features that do not matter for manual pages. |
together with the basic language syntax shared by |
|
.Nm , |
|
.Xr mdoc 7 , |
|
and |
|
.Xr man 7 . |
|
For complete |
For complete |
.Nm |
.Nm |
manuals, consult the |
manuals, consult the |
Line 86 character, and, in certain circumstances, the tab char |
|
Line 83 character, and, in certain circumstances, the tab char |
|
The backslash character |
The backslash character |
.Sq \e |
.Sq \e |
indicates the start of an escape sequence, used for example for |
indicates the start of an escape sequence, used for example for |
.Sx Comments , |
.Sx Comments |
.Sx Special Characters , |
|
.Sx Predefined Strings , |
|
and |
and |
user-defined strings defined using the |
.Sx Special Characters . |
.Sx ds |
|
request. |
|
For a listing of escape sequences, consult the |
For a listing of escape sequences, consult the |
.Sx ESCAPE SEQUENCE REFERENCE |
.Sx ESCAPE SEQUENCE REFERENCE |
below. |
below. |
Line 169 Text decoration is |
|
Line 162 Text decoration is |
|
recommended for |
recommended for |
.Xr mdoc 7 , |
.Xr mdoc 7 , |
which encourages semantic annotation. |
which encourages semantic annotation. |
.Ss Predefined Strings |
|
Predefined strings, like |
|
.Sx Special Characters , |
|
mark special output glyphs. |
|
Predefined strings are escaped with the slash-asterisk, |
|
.Sq \e* : |
|
single-character |
|
.Sq \e*X , |
|
two-character |
|
.Sq \e*(XX , |
|
and N-character |
|
.Sq \e* Ns Bq N . |
|
.Pp |
|
Examples: |
|
.Bl -tag -width Ds -offset indent -compact |
|
.It Li \e*(Am |
|
Two-letter ampersand predefined string. |
|
.It Li \e*q |
|
One-letter double-quote predefined string. |
|
.El |
|
.Pp |
|
Predefined strings are not recommended for use, |
|
as they differ across implementations. |
|
Those supported by |
|
.Xr mandoc 1 |
|
are listed in |
|
.Xr mandoc_char 7 . |
|
Manuals using these predefined strings are almost certainly not portable. |
|
.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. |
Line 225 Many requests and macros support scaled widths for the |
|
Line 190 Many requests and macros support scaled widths for the |
|
The syntax for a scaled width is |
The syntax for a scaled width is |
.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , |
.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , |
where a decimal must be preceded or followed by at least one digit. |
where a decimal must be preceded or followed by at least one digit. |
Negative numbers, while accepted, are truncated to zero. |
|
.Pp |
.Pp |
The following scaling units are accepted: |
The following scaling units are accepted: |
.Pp |
.Pp |
Line 341 Macros are provided by the |
|
Line 305 Macros are provided by the |
|
and |
and |
.Xr man 7 |
.Xr man 7 |
languages and can be defined by the |
languages and can be defined by the |
.Sx \&de |
.Ic \&de |
request. |
request. |
When called, they follow the same syntax as requests, except that |
When called, they follow the same syntax as requests, except that |
macro arguments may optionally be quoted by enclosing them |
macro arguments may optionally be quoted by enclosing them |
Line 447 compatibility mode at all, it handles this request as |
|
Line 411 compatibility mode at all, it handles this request as |
|
.It Ic \&as Ar stringname Op Ar string |
.It Ic \&as Ar stringname Op Ar string |
Append to a user-defined string. |
Append to a user-defined string. |
The syntax of this request is the same as that of |
The syntax of this request is the same as that of |
.Sx \&ds . |
.Ic \&ds . |
If a user-defined string with the specified name does not yet exist, |
If a user-defined string with the specified name does not yet exist, |
it is set to the empty string before appending. |
it is set to the empty string before appending. |
.It Ic \&as1 Ar stringname Op Ar string |
.It Ic \&as1 Ar stringname Op Ar string |
Line 539 This is a groff extension and currently ignored. |
|
Line 503 This is a groff extension and currently ignored. |
|
.It Ic \&ch Ar macroname Op Ar dist |
.It Ic \&ch Ar macroname Op Ar dist |
Change a trap location. |
Change a trap location. |
Currently ignored. |
Currently ignored. |
.It Ic \&char Ar glyphname Op Ar string |
.It Ic \&char Ar glyph Op Ar string |
Define a new glyph. |
Define or redefine the ASCII character or character escape sequence |
Currently unsupported. |
.Ar glyph |
|
to be rendered as |
|
.Ar string , |
|
which can be empty. |
|
Only partially supported in |
|
.Xr mandoc 1 ; |
|
may interact incorrectly with |
|
.Ic \&tr . |
.It Ic \&chop Ar stringname |
.It Ic \&chop Ar stringname |
Remove the last character from a macro, string, or diversion. |
Remove the last character from a macro, string, or diversion. |
Currently unsupported. |
Currently unsupported. |
|
|
in the input stream, and thus in the output: \fI\^XtFree\^\fP. |
in the input stream, and thus in the output: \fI\^XtFree\^\fP. |
Each occurrence of \e\e$* is replaced with all the arguments, |
Each occurrence of \e\e$* is replaced with all the arguments, |
joined together with single space characters. |
joined together with single space characters. |
|
The variant \e\e$@ is similar, except that each argument is |
|
individually quoted. |
.Pp |
.Pp |
Since macros and user-defined strings share a common string table, |
Since macros and user-defined strings share a common string table, |
defining a macro |
defining a macro |
|
|
.Ar font |
.Ar font |
arguments are supported: |
arguments are supported: |
.Bl -tag -width 4n -offset indent |
.Bl -tag -width 4n -offset indent |
.It Cm B , BI , 3 , 4 |
.It Cm B , BI , CB , 3 , 4 |
switches to |
switches to |
.Sy bold |
.Sy bold |
font |
font |
.It Cm I , 2 |
.It Cm I , CI , 2 |
switches to |
switches to |
.Em underlined |
.Em underlined |
font |
font |
.It Cm R , CW , 1 |
.It Cm R , CR , CW , 1 |
switches to normal font |
switches to normal font |
.It Cm P No "or no argument" |
.It Cm P No "or no argument" |
switches back to the previous font |
switches back to the previous font |
|
|
or |
or |
.Sq o |
.Sq o |
.Pq odd page , |
.Pq odd page , |
it evaluates to true. |
it evaluates to true, and the |
|
.Ar body |
|
starts with the next character. |
.It |
.It |
If the first character of |
If the first character of |
.Ar condition |
.Ar condition |
is |
is |
.Sq c |
|
.Pq character available , |
|
.Sq e |
.Sq e |
.Pq even page , |
.Pq even page , |
.Sq t |
.Sq t |
|
|
or |
or |
.Sq v |
.Sq v |
.Pq vroff mode , |
.Pq vroff mode , |
it evaluates to false. |
it evaluates to false, and the |
|
.Ar body |
|
starts with the next character. |
.It |
.It |
If the first character of |
If the first character of |
.Ar condition |
.Ar condition |
is |
is |
|
.Sq c |
|
.Pq character available , |
|
it evaluates to true if the following character is an ASCII character |
|
or a valid character escape sequence, or to false otherwise. |
|
The |
|
.Ar body |
|
starts with the character following that next character. |
|
.It |
|
If the first character of |
|
.Ar condition |
|
is |
.Sq d , |
.Sq d , |
it evaluates to true if the rest of |
it evaluates to true if the rest of |
.Ar condition |
.Ar condition |
Line 1219 While evaluating the |
|
Line 1205 While evaluating the |
|
the unit suffixes described below |
the unit suffixes described below |
.Sx Scaling Widths |
.Sx Scaling Widths |
are ignored. |
are ignored. |
.It Ic \&it Ar expression macro |
.It Ic \&itc Ar expression macro |
Set an input line trap, not counting lines ending with \ec. |
Set an input line trap, not counting lines ending with \ec. |
Currently unsupported. |
Currently unsupported. |
.It Ic \&IX Ar class keystring |
.It Ic \&IX Ar class keystring |
Line 1489 Currently ignored. |
|
Line 1475 Currently ignored. |
|
Set the maximum stack depth for recursive macros. |
Set the maximum stack depth for recursive macros. |
This is a Heirloom extension and currently ignored. |
This is a Heirloom extension and currently ignored. |
.It Ic \&return Op Ar twice |
.It Ic \&return Op Ar twice |
Exit a macro and return to the caller. |
Exit the presently executed macro and return to the caller. |
Currently unsupported. |
The argument is currently ignored. |
.It Ic \&rfschar Ar font glyph ... |
.It Ic \&rfschar Ar font glyph ... |
Remove font-specific fallback glyph definitions. |
Remove font-specific fallback glyph definitions. |
Currently unsupported. |
Currently unsupported. |
Line 1539 This is a Heirloom extension and currently ignored. |
|
Line 1525 This is a Heirloom extension and currently ignored. |
|
Change the soft hyphen character. |
Change the soft hyphen character. |
Currently ignored. |
Currently ignored. |
.It Ic \&shift Op Ar number |
.It Ic \&shift Op Ar number |
Shift macro arguments. |
Shift macro arguments |
Currently unsupported. |
.Ar number |
|
times, by default once: \e\e$i becomes what \e\e$i+number was. |
|
Also decrement \en(.$ by |
|
.Ar number . |
.It Ic \&sizes Ar size ... |
.It Ic \&sizes Ar size ... |
Define permissible point sizes. |
Define permissible point sizes. |
This is a groff extension and currently ignored. |
This is a groff extension and currently ignored. |
Line 1605 Ignored because insecure. |
|
Line 1594 Ignored because insecure. |
|
Re-start a table layout, retaining the options of the prior table |
Re-start a table layout, retaining the options of the prior table |
invocation. |
invocation. |
See |
See |
.Sx \&TS . |
.Ic \&TS . |
.It Ic \&ta Op Ar width ... Op Cm T Ar width ... |
.It Ic \&ta Op Ar width ... Op Cm T Ar width ... |
Set tab stops. |
Set tab stops. |
Each |
Each |
Line 1626 Currently unsupported. |
|
Line 1615 Currently unsupported. |
|
.It Ic \&TE |
.It Ic \&TE |
End a table context. |
End a table context. |
See |
See |
.Sx \&TS . |
.Ic \&TS . |
.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width |
.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width |
Break the output line and indent the next output line by |
Break the output line and indent the next output line by |
.Ar width . |
.Ar width . |
Line 1729 This is a Heirloom extension and currently ignored. |
|
Line 1718 This is a Heirloom extension and currently ignored. |
|
Set a page location trap. |
Set a page location trap. |
Currently unsupported. |
Currently unsupported. |
.It Ic \&while Ar condition body |
.It Ic \&while Ar condition body |
Repeated execution while a condition is true. |
Repeated execution while a |
Currently unsupported. |
.Ar condition |
|
is true, with syntax similar to |
|
.Ic \&if . |
|
Currently implemented with two restrictions: cannot nest, |
|
and each loop must start and end in the same scope. |
.It Ic \&write Oo \(dq Oc Ns Ar string |
.It Ic \&write Oo \(dq Oc Ns Ar string |
Write to an open file. |
Write to an open file. |
Ignored because insecure. |
Ignored because insecure. |
Line 1746 This is a Heirloom extension and currently ignored. |
|
Line 1739 This is a Heirloom extension and currently ignored. |
|
.El |
.El |
.Ss Numerical expressions |
.Ss Numerical expressions |
The |
The |
.Sx \&nr , |
.Ic \&nr , |
.Sx \&if , |
.Ic \&if , |
and |
and |
.Sx \&ie |
.Ic \&ie |
requests accept integer numerical expressions as arguments. |
requests accept integer numerical expressions as arguments. |
These are always evaluated using the C |
These are always evaluated using the C |
.Vt int |
.Vt int |
Line 1837 described in the |
|
Line 1830 described in the |
|
.Sx LANGUAGE SYNTAX |
.Sx LANGUAGE SYNTAX |
section above. |
section above. |
.Pp |
.Pp |
A backslash followed by any character not listed here |
In |
|
.Xr mandoc 1 , |
|
a backslash followed by any character not listed here |
simply prints that character itself. |
simply prints that character itself. |
.Ss \e<newline> |
.Bl -tag -width Ds |
|
.It Ic \e<newline> |
A backslash at the end of an input line can be used to continue the |
A backslash at the end of an input line can be used to continue the |
logical input line on the next physical input line, joining the text |
logical input line on the next physical input line, joining the text |
on both lines together as if it were on a single input line. |
on both lines together as if it were on a single input line. |
.Ss \e<space> |
.It Ic \e<space> |
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 . |
.Ss \e\(dq |
.It Ic \e! |
|
Embed text up to and including the end of the input line into the |
|
current diversion or into intermediate output without interpreting |
|
requests, macros, and escapes. |
|
Currently unsupported. |
|
.It Ic \e\(dq |
The rest of the input line is treated as |
The rest of the input line is treated as |
.Sx Comments . |
.Sx Comments . |
.Ss \e% |
.It Ic \e# |
|
Line continuation with comment. |
|
Discard the rest of the physical input line and continue the logical |
|
input line on the next physical input line, joining the text on |
|
both lines together as if it were on a single input line. |
|
This is a groff extension. |
|
.It Ic \e$ Ns Ar arg |
|
Macro argument expansion, see |
|
.Ic \&de . |
|
.It Ic \e% |
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 . |
.Ss \e& |
.It Ic \e& |
Non-printing zero-width character; see |
Non-printing zero-width character; see |
.Sx Whitespace . |
.Sx Whitespace . |
.Ss \e\(aq |
.It Ic \e\(aq |
Acute accent special character; use |
Acute accent special character; use |
.Sq \e(aa |
.Ic \e(aa |
instead. |
instead. |
.Ss \e( Ns Ar cc |
.It Ic \e( Ns Ar cc |
.Sx Special Characters |
.Sx Special Characters |
with two-letter names, see |
with two-letter names, see |
.Xr mandoc_char 7 . |
.Xr mandoc_char 7 . |
.Ss \e* Ns Bq Ar name |
.It Ic \e) |
|
Zero-width space transparent to end-of-sentence detection; |
|
ignored by |
|
.Xr mandoc 1 . |
|
.It Ic \e*[ Ns Ar name Ns Ic \&] |
Interpolate the string with the |
Interpolate the string with the |
.Ar name ; |
.Ar name . |
see |
|
.Sx Predefined Strings |
|
and |
|
.Sx ds . |
|
For short names, there are variants |
For short names, there are variants |
.No \e* Ns Ar c |
.Ic \e* Ns Ar c |
and |
and |
.No \e*( Ns Ar cc . |
.Ic \e*( Ns Ar cc . |
.Ss \e, |
.Pp |
|
One string is predefined on the |
|
.Nm |
|
language level: |
|
.Ic \e*(.T |
|
expands to the name of the output device, |
|
for example ascii, utf8, ps, pdf, html, or markdown. |
|
.Pp |
|
Macro sets traditionally predefine additional strings which are not |
|
portable and differ across implementations. |
|
Those supported by |
|
.Xr mandoc 1 |
|
are listed in |
|
.Xr mandoc_char 7 . |
|
.Pp |
|
Strings can be defined, changed, and deleted with the |
|
.Ic \&ds , |
|
.Ic \&as , |
|
and |
|
.Ic \&rm |
|
requests. |
|
.It Ic \e, |
Left italic correction (groff extension); ignored by |
Left italic correction (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \e- |
.It Ic \e- |
Special character |
Special character |
.Dq mathematical minus sign . |
.Dq mathematical minus sign . |
.Ss \e/ |
.It Ic \e/ |
Right italic correction (groff extension); ignored by |
Right italic correction (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \e Ns Bq Ar name |
.It Ic \e: |
|
Breaking the line is allowed at this point of the word |
|
without inserting a hyphen. |
|
.It Ic \e? |
|
Embed the text up to the next |
|
.Ic \e? |
|
into the current diversion without interpreting requests, macros, |
|
and escapes. |
|
This is a groff extension and currently unsupported. |
|
.It Ic \e[ Ns Ar name Ns Ic \&] |
.Sx Special Characters |
.Sx Special Characters |
with names of arbitrary length, see |
with names of arbitrary length, see |
.Xr mandoc_char 7 . |
.Xr mandoc_char 7 . |
.Ss \e^ |
.It Ic \e^ |
One-twelfth em half-narrow space character, effectively zero-width in |
One-twelfth em half-narrow space character, effectively zero-width in |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \e` |
.It Ic \e_ |
|
Underline special character; use |
|
.Ic \e(ul |
|
instead. |
|
.It Ic \e` |
Grave accent special character; use |
Grave accent special character; use |
.Sq \e(ga |
.Ic \e(ga |
instead. |
instead. |
.Ss \e{ |
.It Ic \e{ |
Begin conditional input; see |
Begin conditional input; see |
.Sx if . |
.Ic \&if . |
.Ss \e\(ba |
.It Ic \e\(ba |
One-sixth em narrow space character, effectively zero-width in |
One-sixth em narrow space character, effectively zero-width in |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \e} |
.It Ic \e} |
End conditional input; see |
End conditional input; see |
.Sx if . |
.Ic \&if . |
.Ss \e~ |
.It Ic \e~ |
Paddable non-breaking space character. |
Paddable non-breaking space character. |
.Ss \e0 |
.It Ic \e0 |
Digit width space character. |
Digit width space character. |
.Ss \eA\(aq Ns Ar string Ns \(aq |
.It Ic \eA\(aq Ns Ar string Ns Ic \(aq |
Anchor definition; ignored by |
Anchor definition; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eB\(aq Ns Ar string Ns \(aq |
.It Ic \ea |
|
Leader character; ignored by |
|
.Xr mandoc 1 . |
|
.It Ic \eB\(aq Ns Ar string Ns Ic \(aq |
Interpolate |
Interpolate |
.Sq 1 |
.Sq 1 |
if |
if |
Line 1922 conforms to the syntax of |
|
Line 1969 conforms to the syntax of |
|
explained above and |
explained above and |
.Sq 0 |
.Sq 0 |
otherwise. |
otherwise. |
.Ss \eb\(aq Ns Ar string Ns \(aq |
.It Ic \eb\(aq Ns Ar string Ns Ic \(aq |
Bracket building function; ignored by |
Bracket building function; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eC\(aq Ns Ar name Ns \(aq |
.It Ic \eC\(aq Ns Ar name Ns Ic \(aq |
.Sx Special Characters |
.Sx Special Characters |
with names of arbitrary length. |
with names of arbitrary length. |
.Ss \ec |
.It Ic \ec |
When encountered at the end of an input text line, |
When encountered at the end of an input text line, |
the next input text line is considered to continue that line, |
the next input text line is considered to continue that line, |
even if there are request or macro lines in between. |
even if there are request or macro lines in between. |
No whitespace is inserted. |
No whitespace is inserted. |
.Ss \eD\(aq Ns Ar string Ns \(aq |
.It Ic \eD\(aq Ns Ar string Ns Ic \(aq |
Draw graphics function; ignored by |
Draw graphics function; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \ed |
.It Ic \ed |
Move down by half a line; ignored by |
Move down by half a line; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \ee |
.It Ic \eE |
|
Escape character intended to not be interpreted in copy mode. |
|
In |
|
.Xr mandoc 1 , |
|
it does the same as |
|
.Ic \e |
|
itself for now. |
|
.It Ic \ee |
Backslash special character. |
Backslash special character. |
.Ss \eF Ns Bq Ar name |
.It Ic \eF[ Ns Ar name Ns Ic \&] |
Switch font family (groff extension); ignored by |
Switch font family (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \eF Ns Ar c |
.Ic \eF Ns Ar c |
and |
and |
.No \eF( Ns Ar cc . |
.Ic \eF( Ns Ar cc . |
.Ss \ef Ns Bq Ar name |
.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 Text Decoration . |
For short names, there are variants |
For short names, there are variants |
.No \ef Ns Ar c |
.Ic \ef Ns Ar c |
and |
and |
.No \ef( Ns Ar cc . |
.Ic \ef( Ns Ar cc . |
.Ss \eg Ns Bq Ar name |
.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 . |
For short names, there are variants |
For short names, there are variants |
.No \eg Ns Ar c |
.Ic \eg Ns Ar c |
and |
and |
.No \eg( Ns Ar cc . |
.Ic \eg( Ns Ar cc . |
.Ss \eH\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq |
.It Ic \eH\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq |
Set the height of the current font; ignored by |
Set the height of the current font; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns \(aq |
.It Ic \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns Ic \(aq |
Horizontal motion. |
Horizontal motion. |
If the vertical bar is given, the motion is relative to the current |
If the vertical bar is given, the motion is relative to the current |
indentation. |
indentation. |
Otherwise, it is relative to the current position. |
Otherwise, it is relative to the current position. |
The default scaling unit is |
The default scaling unit is |
.Cm m . |
.Cm m . |
.Ss \ek Ns Bq Ar name |
.It Ic \ek[ Ns Ar name Ns Ic \&] |
Mark horizontal input place in register; ignored by |
Mark horizontal input place in register; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \ek Ns Ar c |
.Ic \ek Ns Ar c |
and |
and |
.No \ek( Ns Ar cc . |
.Ic \ek( Ns Ar cc . |
.Ss \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns \(aq |
.It Ic \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns Ic \(aq |
Vertical line drawing function; ignored by |
Vertical line drawing function; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \el\(aq Ns Ar width Ns Oo Ar c Oc Ns \(aq |
.It Ic \el\(aq Ns Ar width Ns Oo Ar c Oc Ns Ic \(aq |
Draw a horizontal line of |
Draw a horizontal line of |
.Ar width |
.Ar width |
using the glyph |
using the glyph |
.Ar c . |
.Ar c . |
.Ss \eM Ns Bq Ar name |
.It Ic \eM[ Ns Ar name Ns Ic \&] |
Set fill (background) color (groff extension); ignored by |
Set fill (background) color (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \eM Ns Ar c |
.Ic \eM Ns Ar c |
and |
and |
.No \eM( Ns Ar cc . |
.Ic \eM( Ns Ar cc . |
.Ss \em Ns Bq Ar name |
.It Ic \em[ Ns Ar name Ns Ic \&] |
Set glyph drawing color (groff extension); ignored by |
Set glyph drawing color (groff extension); ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \em Ns Ar c |
.Ic \em Ns Ar c |
and |
and |
.No \em( Ns Ar cc . |
.Ic \em( Ns Ar cc . |
.Ss \eN\(aq Ns Ar number Ns \(aq |
.It Ic \eN\(aq Ns Ar number Ns Ic \(aq |
Character |
Character |
.Ar number |
.Ar number |
on the current font. |
on the current font. |
.Ss \en Ns Oo +|- Oc Ns Bq Ar name |
.It Ic \en Ns Oo +|- Oc Ns Ic \&[ Ns Ar name Ns Ic \&] |
Interpolate the number register |
Interpolate the number register |
.Ar name . |
.Ar name . |
For short names, there are variants |
For short names, there are variants |
.No \en Ns Ar c |
.Ic \en Ns Ar c |
and |
and |
.No \en( Ns Ar cc . |
.Ic \en( Ns Ar cc . |
If the optional sign is specified, |
If the optional sign is specified, |
the register is first incremented or decremented by the |
the register is first incremented or decremented by the |
.Ar stepsize |
.Ar stepsize |
that was specified in the relevant |
that was specified in the relevant |
.Ic \&nr |
.Ic \&nr |
request, and the changed value is interpolated. |
request, and the changed value is interpolated. |
.Ss \eo\(aq Ns Ar string Ns \(aq |
.It Ic \eO Ns Ar digit , Ic \eO[5 Ns arguments Ns Ic \&] |
|
Suppress output. |
|
This is a groff extension and currently unsupported. |
|
With an argument of |
|
.Ic 1 , 2 , 3 , |
|
or |
|
.Ic 4 , |
|
it is ignored. |
|
.It Ic \eo\(aq Ns Ar string Ns Ic \(aq |
Overstrike, writing all the characters contained in the |
Overstrike, writing all the characters contained in the |
.Ar string |
.Ar string |
to the same output position. |
to the same output position. |
In terminal and HTML output modes, |
In terminal and HTML output modes, |
only the last one of the characters is visible. |
only the last one of the characters is visible. |
.Ss \ep |
.It Ic \ep |
Break the output line at the end of the current word. |
Break the output line at the end of the current word. |
.Ss \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns \(aq |
.It Ic \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns Ic \(aq |
Set number register; ignored by |
Set number register; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eS\(aq Ns Ar number Ns \(aq |
.It Ic \er |
|
Move up by one line; ignored by |
|
.Xr mandoc 1 . |
|
.It Ic \eS\(aq Ns Ar number Ns Ic \(aq |
Slant output; ignored by |
Slant output; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \es\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq |
.It Ic \es\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq |
Change point size; ignored by |
Change point size; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
Alternative forms |
Alternative forms |
.No \es Ns Oo +|- Oc Ns Ar n , |
.Ic \es Ns Oo +|- Oc Ns Ar n , |
.No \es Ns Oo +|- Oc Ns \(aq Ns Ar number Ns \(aq , |
.Ic \es Ns Oo +|- Oc Ns Ic \(aq Ns Ar number Ns Ic \(aq , |
.No \es Ns Bq Oo +|- Oc Ns Ar number , |
.Ic \es[ Ns Oo +|- Oc Ns Ar number Ns Ic \&] , |
and |
and |
.No \es Ns Oo +|- Oc Ns Bq Ar number |
.Ic \es Ns Oo +|- Oc Ns Ic \&[ Ns Ar number Ns Ic \&] |
are also parsed and ignored. |
are also parsed and ignored. |
.Ss \et |
.It Ic \et |
Horizontal tab; ignored by |
Horizontal tab; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eu |
.It Ic \eu |
Move up by half a line; ignored by |
Move up by half a line; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eV Ns Bq Ar name |
.It Ic \eV[ Ns Ar name Ns Ic \&] |
Interpolate an environment variable; ignored by |
Interpolate an environment variable; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \eV Ns Ar c |
.Ic \eV Ns Ar c |
and |
and |
.No \eV( Ns Ar cc . |
.Ic \eV( Ns Ar cc . |
.Ss \ev\(aq Ns Ar number Ns \(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 . |
.Ss \ew\(aq Ns Ar string Ns \(aq |
.It Ic \ew\(aq Ns Ar string Ns Ic \(aq |
Interpolate the width of the |
Interpolate the width of the |
.Ar string . |
.Ar string . |
The |
The |
Line 2069 implementation assumes that after expansion of user-de |
|
Line 2134 implementation assumes that after expansion of user-de |
|
.Ar string |
.Ar string |
only contains normal characters, no escape sequences, and that each |
only contains normal characters, no escape sequences, and that each |
character has a width of 24 basic units. |
character has a width of 24 basic units. |
.Ss \eX\(aq Ns Ar string Ns \(aq |
.It Ic \eX\(aq Ns Ar string Ns Ic \(aq |
Output |
Output |
.Ar string |
.Ar string |
as device control function; ignored in nroff mode and by |
as device control function; ignored in nroff mode and by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \ex\(aq Ns Ar number Ns \(aq |
.It Ic \ex\(aq Ns Ar number Ns Ic \(aq |
Extra line space function; ignored by |
Extra line space function; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \eY Ns Bq Ar name |
.It Ic \eY[ Ns Ar name Ns Ic \&] |
Output a string as a device control function; ignored in nroff mode and by |
Output a string as a device control function; ignored in nroff mode and by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
For short names, there are variants |
For short names, there are variants |
.No \eY Ns Ar c |
.Ic \eY Ns Ar c |
and |
and |
.No \eY( Ns Ar cc . |
.Ic \eY( Ns Ar cc . |
.Ss \eZ\(aq Ns Ar string Ns \(aq |
.It Ic \eZ\(aq Ns Ar string Ns Ic \(aq |
Print |
Print |
.Ar string |
.Ar string |
with zero width and height; ignored by |
with zero width and height; ignored by |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
.Ss \ez |
.It Ic \ez |
Output the next character without advancing the cursor position. |
Output the next character without advancing the cursor position. |
|
.El |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |
The |
The |
.Xr mandoc 1 |
.Xr mandoc 1 |
implementation of the |
implementation of the |
.Nm |
.Nm |
language is intentionally incomplete. |
language is incomplete. |
Unimplemented features include: |
Major unimplemented features include: |
.Pp |
.Pp |
.Bl -dash -compact |
.Bl -dash -compact |
.It |
.It |
For security reasons, |
For security reasons, |
.Xr mandoc 1 |
.Xr mandoc 1 |
never reads or writes external files except via |
never reads or writes external files except via |
.Sx \&so |
.Ic \&so |
requests with safe relative paths. |
requests with safe relative paths. |
.It |
.It |
There is no automatic hyphenation, no adjustment to the right margin, |
There is no automatic hyphenation, no adjustment to the right margin, |
and no centering; the output is always set flush-left. |
and very limited support for centering; the output is always set flush-left. |
.It |
.It |
Support for setting tabulator positions |
Support for setting tabulator and leader characters is missing, |
and tabulator and leader characters is missing, |
|
and support for manually changing indentation is limited. |
and support for manually changing indentation is limited. |
.It |
.It |
The |
The |
|
|
.It |
.It |
Width measurements are implemented in a crude way |
Width measurements are implemented in a crude way |
and often yield wrong results. |
and often yield wrong results. |
Explicit movement requests and escapes are ignored. |
Support for explicit movement requests and escapes is limited. |
.It |
.It |
There is no concept of output pages, no support for floats, |
There is no concept of output pages, no support for floats, |
graphics drawing, and picture inclusion; |
graphics drawing, and picture inclusion; |
terminal output is always continuous. |
terminal output is always continuous. |
.It |
.It |
Requests regarding color, font families, and glyph manipulation |
Requests regarding color, font families, font sizes, |
are ignored. |
and glyph manipulation are ignored. |
Font support is very limited. |
Font support is very limited. |
Kerning is not implemented, and no ligatures are produced. |
Kerning is not implemented, and no ligatures are produced. |
.It |
.It |
|
|
.Qq \(aq |
.Qq \(aq |
macro control character does not suppress output line breaks. |
macro control character does not suppress output line breaks. |
.It |
.It |
Diversions are not implemented, |
Diversions and environments are not implemented, |
and support for traps is very incomplete. |
and support for traps is very incomplete. |
.It |
.It |
While recursion is supported, |
Use of macros is not supported inside |
.Sx \&while |
.Xr tbl 7 |
loops are not. |
code. |
.El |
.El |
.Pp |
.Pp |
The special semantics of the |
The special semantics of the |