version 1.35, 2011/11/21 22:19:23 |
version 1.62, 2015/01/20 19:39:34 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2010, 2011, 2013, 2014 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 |
|
|
manual formatting languages are based on it, |
manual formatting languages are based on it, |
many real-world manuals use small numbers of |
many real-world manuals use small numbers of |
.Nm |
.Nm |
requests intermixed with their |
requests and escape sequences intermixed with their |
.Xr mdoc 7 |
.Xr mdoc 7 |
or |
or |
.Xr man 7 |
.Xr man 7 |
Line 41 To properly format such manuals, the |
|
Line 41 To properly format such manuals, the |
|
.Xr mandoc 1 |
.Xr mandoc 1 |
utility supports a tiny subset of |
utility supports a tiny subset of |
.Nm |
.Nm |
requests. |
requests and escapes. |
Only these requests supported by |
Only these requests and escapes supported by |
.Xr mandoc 1 |
.Xr mandoc 1 |
are documented in the present manual, |
are documented in the present manual, |
together with the basic language syntax shared by |
together with the basic language syntax shared by |
Line 83 depends on the respective processing context. |
|
Line 83 depends on the respective processing context. |
|
.Nm |
.Nm |
documents may contain only graphable 7-bit ASCII characters, the space |
documents may contain only graphable 7-bit ASCII characters, the space |
character, and, in certain circumstances, the tab character. |
character, and, in certain circumstances, the tab character. |
The back-space character |
The backslash character |
.Sq \e |
.Sq \e |
indicates the start of an escape sequence for |
indicates the start of an escape sequence, used for example for |
.Sx Comments , |
.Sx Comments , |
.Sx Special Characters , |
.Sx Special Characters , |
.Sx Predefined Strings , |
.Sx Predefined Strings , |
|
|
user-defined strings defined using the |
user-defined strings defined using the |
.Sx ds |
.Sx ds |
request. |
request. |
|
For a listing of escape sequences, consult the |
|
.Sx ESCAPE SEQUENCE REFERENCE |
|
below. |
.Ss Comments |
.Ss Comments |
Text following an escaped double-quote |
Text following an escaped double-quote |
.Sq \e\(dq , |
.Sq \e\(dq , |
Line 146 respectively) may be used instead. |
|
Line 149 respectively) may be used instead. |
|
The indicator or numerical representative may be preceded by C |
The indicator or numerical representative may be preceded by C |
(constant-width), which is ignored. |
(constant-width), which is ignored. |
.Pp |
.Pp |
|
The two-character indicator |
|
.Sq BI |
|
requests a font that is both bold and italic. |
|
It may not be portable to old roff implementations. |
|
.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 |
Write in bold, then switch to regular font mode. |
Write in \fBbold\fP, then switch to regular font mode. |
.It Li \efIitalic\efP |
.It Li \efIitalic\efP |
Write in italic, then return to previous font mode. |
Write in \fIitalic\fP, then return to previous font mode. |
|
.It Li \ef(BIbold italic\efP |
|
Write in \f(BIbold italic\fP, then return to previous font mode. |
.El |
.El |
.Pp |
.Pp |
Text decoration is |
Text decoration is |
Line 229 pica (~1/6 inch) |
|
Line 239 pica (~1/6 inch) |
|
.It p |
.It p |
point (~1/72 inch) |
point (~1/72 inch) |
.It f |
.It f |
synonym for |
scale |
.Sq u |
.Sq u |
|
by 65536 |
.It v |
.It v |
default vertical span |
default vertical span |
.It m |
.It m |
Line 244 width of rendered |
|
Line 255 width of rendered |
|
.Pq en |
.Pq en |
character |
character |
.It u |
.It u |
default horizontal span |
default horizontal span for the terminal |
.It M |
.It M |
mini-em (~1/100 em) |
mini-em (~1/100 em) |
.El |
.El |
Line 252 mini-em (~1/100 em) |
|
Line 263 mini-em (~1/100 em) |
|
Using anything other than |
Using anything other than |
.Sq m , |
.Sq m , |
.Sq n , |
.Sq n , |
.Sq u , |
|
or |
or |
.Sq v |
.Sq v |
is necessarily non-portable across output media. |
is necessarily non-portable across output media. |
Line 392 language defines many more requests not implemented in |
|
Line 402 language defines many more requests not implemented in |
|
.Ss \&ad |
.Ss \&ad |
Set line adjustment mode. |
Set line adjustment mode. |
This line-scoped request is intended to have one argument to select |
This line-scoped request is intended to have one argument to select |
normal, left, right, or centre adjustment for subsequent text. |
normal, left, right, or center adjustment for subsequent text. |
Currently, it is ignored including its arguments, |
Currently, it is ignored including its arguments, |
and the number of arguments is not checked. |
and the number of arguments is not checked. |
.Ss \&am |
.Ss \&am |
Append to a macro definition. |
Append to a macro definition. |
The syntax of this request is the same as that of |
The syntax of this request is the same as that of |
.Sx \&de . |
.Sx \&de . |
It is currently ignored by |
|
.Xr mandoc 1 , |
|
as are its children. |
|
.Ss \&ami |
.Ss \&ami |
Append to a macro definition, specifying the macro name indirectly. |
Append to a macro definition, specifying the macro name indirectly. |
The syntax of this request is the same as that of |
The syntax of this request is the same as that of |
.Sx \&dei . |
.Sx \&dei . |
It is currently ignored by |
|
.Xr mandoc 1 , |
|
as are its children. |
|
.Ss \&am1 |
.Ss \&am1 |
Append to a macro definition, switching roff compatibility mode off |
Append to a macro definition, switching roff compatibility mode off |
during macro execution. |
during macro execution. |
The syntax of this request is the same as that of |
The syntax of this request is the same as that of |
.Sx \&de1 . |
.Sx \&de1 . |
It is currently ignored by |
Since |
.Xr mandoc 1 , |
.Xr mandoc 1 |
as are its children. |
does not implement |
|
.Nm |
|
compatibility mode at all, it handles this request as an alias for |
|
.Sx \&am . |
|
.Ss \&as |
|
Append to a user-defined string. |
|
The syntax of this request is the same as that of |
|
.Sx \&ds . |
|
If a user-defined string with the specified name does not yet exist, |
|
it is set to the empty string before appending. |
|
.Ss \&cc |
|
Changes the control character. |
|
Its syntax is as follows: |
|
.Bd -literal -offset indent |
|
.Pf . Cm \&cc Op Ar c |
|
.Ed |
|
.Pp |
|
If |
|
.Ar c |
|
is not specified, the control character is reset to |
|
.Sq \&. . |
|
Trailing characters are ignored. |
|
.Ss \&ce |
|
Center some lines. |
|
This line-scoped request is intended to take one integer argument, |
|
specifying how many lines to center. |
|
Currently, it is ignored including its arguments, and the number |
|
of arguments is not checked. |
.Ss \&de |
.Ss \&de |
Define a |
Define a |
.Nm |
.Nm |
Line 512 one explicit newline character. |
|
Line 543 one explicit newline character. |
|
In order to prevent endless recursion, both groff and |
In order to prevent endless recursion, both groff and |
.Xr mandoc 1 |
.Xr mandoc 1 |
limit the stack depth for expanding macros and strings |
limit the stack depth for expanding macros and strings |
to a large, but finite number. |
to a large, but finite number, and |
Do not rely on the exact value of this limit. |
.Xr mandoc 1 |
|
also limits the length of the expanded input line. |
|
Do not rely on the exact values of these limits. |
.Ss \&dei |
.Ss \&dei |
Define a |
Define a |
.Nm |
.Nm |
macro, specifying the macro name indirectly. |
macro, specifying the macro name indirectly. |
The syntax of this request is the same as that of |
The syntax of this request is the same as that of |
.Sx \&de . |
.Sx \&de . |
It is currently ignored by |
The request |
.Xr mandoc 1 , |
.Pp |
as are its children. |
.D1 Pf . Cm \&dei Ar name Op Ar end |
|
.Pp |
|
has the same effect as: |
|
.Pp |
|
.D1 Pf . Cm \&de No \e* Ns Bo Ar name Bc Op \e* Ns Bq Ar end |
.Ss \&de1 |
.Ss \&de1 |
Define a |
Define a |
.Nm |
.Nm |
Line 619 Begin an equation block. |
|
Line 656 Begin an equation block. |
|
See |
See |
.Xr eqn 7 |
.Xr eqn 7 |
for a description of the equation language. |
for a description of the equation language. |
|
.Ss \&fam |
|
Change the font family. |
|
This line-scoped request is intended to have one argument specifying |
|
the font family to be selected. |
|
It is a groff extension, and currently, it is ignored including its |
|
arguments, and the number of arguments is not checked. |
|
.Ss \&ft |
|
Change the font. |
|
Its syntax is as follows: |
|
.Pp |
|
.D1 Pf . Cm \&ft Op Ar font |
|
.Pp |
|
The following |
|
.Ar font |
|
arguments are supported: |
|
.Bl -tag -width 4n -offset indent |
|
.It Cm B , BI , 3 , 4 |
|
switches to |
|
.Sy bold |
|
font |
|
.It Cm I , 2 |
|
switches to |
|
.Em underlined |
|
font |
|
.It Cm R , 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, may be overridden by macros |
|
and escape sequences, and is only supported in |
|
.Xr man 7 |
|
for now. |
|
.Ss \&hw |
|
Specify hyphenation points in words. |
|
This line-scoped request is currently ignored. |
.Ss \&hy |
.Ss \&hy |
Set automatic hyphenation mode. |
Set automatic hyphenation mode. |
This line-scoped request is currently ignored. |
This line-scoped request is currently ignored. |
Line 634 Its syntax is equivalent to |
|
Line 708 Its syntax is equivalent to |
|
.Sx \&if . |
.Sx \&if . |
.Ss \&if |
.Ss \&if |
Begins a conditional. |
Begins a conditional. |
Right now, the conditional evaluates to true |
This request has the following syntax: |
if and only if it starts with the letter |
.Bd -literal -offset indent |
.Sy n , |
\&.if COND BODY |
indicating processing in nroff style as opposed to troff style. |
.Ed |
|
.Bd -literal -offset indent |
|
\&.if COND \e{BODY |
|
BODY...\e} |
|
.Ed |
|
.Bd -literal -offset indent |
|
\&.if COND \e{\e |
|
BODY... |
|
\&.\e} |
|
.Ed |
|
.Pp |
|
COND is a conditional statement. |
|
Currently, |
|
.Xr mandoc 1 |
|
supports the following subset of roff conditionals: |
|
.Bl -bullet |
|
.It |
|
If |
|
.Sq \&! |
|
is prefixed to COND, the condition is logically inverted. |
|
.It |
|
If the first character of COND is |
|
.Sq n |
|
.Pq nroff mode |
|
or |
|
.Sq o |
|
.Pq odd page , |
|
COND evaluates to true. |
|
.It |
|
If the first character of COND is |
|
.Sq c |
|
.Pq character available , |
|
.Sq d |
|
.Pq string defined , |
|
.Sq e |
|
.Pq even page , |
|
.Sq r |
|
.Pq register accessed , |
|
.Sq t |
|
.Pq troff mode , |
|
or |
|
.Sq v |
|
.Pq vroff mode , |
|
COND evaluates to false. |
|
.It |
|
If COND starts with a parenthesis or with an optionally signed |
|
integer number, it is evaluated according to the rules of |
|
.Sx Numerical expressions |
|
explained below. |
|
It evaluates to true if the result is positive, |
|
or to false if the result is zero or negative. |
|
.It |
|
Otherwise, the first character of COND is regarded as a delimiter |
|
and COND evaluates to true if the string extending from its first |
|
to its second occurrence is equal to the string extending from its |
|
second to its third occurrence. |
|
.It |
|
If COND cannot be parsed, it evaluates to false. |
|
.El |
|
.Pp |
If a conditional is false, its children are not processed, but are |
If a conditional is false, its children are not processed, but are |
syntactically interpreted to preserve the integrity of the input |
syntactically interpreted to preserve the integrity of the input |
document. |
document. |
Line 655 will continue to syntactically interpret to the block |
|
Line 788 will continue to syntactically interpret to the block |
|
conditional. |
conditional. |
Sub-conditionals, in this case, obviously inherit the truth value of |
Sub-conditionals, in this case, obviously inherit the truth value of |
the parent. |
the parent. |
This request has the following syntax: |
|
.Bd -literal -offset indent |
|
\&.if COND \e{\e |
|
BODY... |
|
\&.\e} |
|
.Ed |
|
.Bd -literal -offset indent |
|
\&.if COND \e{ BODY |
|
BODY... \e} |
|
.Ed |
|
.Bd -literal -offset indent |
|
\&.if COND \e{ BODY |
|
BODY... |
|
\&.\e} |
|
.Ed |
|
.Bd -literal -offset indent |
|
\&.if COND \e |
|
BODY |
|
.Ed |
|
.Pp |
.Pp |
COND is a conditional statement. |
|
roff allows for complicated conditionals; mandoc is much simpler. |
|
At this time, mandoc supports only |
|
.Sq n , |
|
evaluating to true; |
|
and |
|
.Sq t , |
|
.Sq e , |
|
and |
|
.Sq o , |
|
evaluating to false. |
|
All other invocations are read up to the next end of line or space and |
|
evaluate as false. |
|
.Pp |
|
If the BODY section is begun by an escaped brace |
If the BODY section is begun by an escaped brace |
.Sq \e{ , |
.Sq \e{ , |
scope continues until a closing-brace escape sequence |
scope continues until the end of the input line containing the |
.Sq \.\e} . |
matching closing-brace escape sequence |
|
.Sq \e} . |
If the BODY is not enclosed in braces, scope continues until |
If the BODY is not enclosed in braces, scope continues until |
the end of the line. |
the end of the line. |
If the COND is followed by a BODY on the same line, whether after a |
If the COND is followed by a BODY on the same line, whether after a |
Line 772 Otherwise, it only terminates the |
|
Line 873 Otherwise, it only terminates the |
|
and arguments following it or the |
and arguments following it or the |
.Sq \&.. |
.Sq \&.. |
request are discarded. |
request are discarded. |
|
.Ss \&ll |
|
Change the output line length. |
|
Its syntax is as follows: |
|
.Pp |
|
.D1 Pf . Cm \&ll Op Oo +|- Oc Ns Ar width |
|
.Pp |
|
If the |
|
.Ar width |
|
argument is omitted, the line length is reset to its previous value. |
|
The default setting for terminal output is 78n. |
|
If a sign is given, the line length is added to or subtracted from; |
|
otherwise, it is set to the provided value. |
|
Using this request in new manuals is discouraged for several reasons, |
|
among others because it overrides the |
|
.Xr mandoc 1 |
|
.Fl O Cm width |
|
command line option. |
.Ss \&ne |
.Ss \&ne |
Declare the need for the specified minimum vertical space |
Declare the need for the specified minimum vertical space |
before the next trap or the bottom of the page. |
before the next trap or the bottom of the page. |
Line 779 This line-scoped request is currently ignored. |
|
Line 897 This line-scoped request is currently ignored. |
|
.Ss \&nh |
.Ss \&nh |
Turn off automatic hyphenation mode. |
Turn off automatic hyphenation mode. |
This line-scoped request is currently ignored. |
This line-scoped request is currently ignored. |
.Ss \&rm |
|
Remove a request, macro or string. |
|
This request is intended to have one argument, |
|
the name of the request, macro or string to be undefined. |
|
Currently, it is ignored including its arguments, |
|
and the number of arguments is not checked. |
|
.Ss \&nr |
.Ss \&nr |
Define a register. |
Define or change a register. |
A register is an arbitrary string value that defines some sort of state, |
A register is an arbitrary string value that defines some sort of state, |
which influences parsing and/or formatting. |
which influences parsing and/or formatting. |
Its syntax is as follows: |
Its syntax is as follows: |
.Pp |
.Pp |
.D1 Pf \. Cm \&nr Ar name Ar value |
.D1 Pf \. Cm \&nr Ar name Oo +|- Oc Ns Ar expression |
.Pp |
.Pp |
The |
For the syntax of |
.Ar value |
.Ar expression , |
may, at the moment, only be an integer. |
see |
So far, only the following register |
.Sx Numerical expressions |
|
below. |
|
If it is prefixed by a sign, the register will be |
|
incremented or decremented instead of assigned to. |
|
.Pp |
|
The following register |
.Ar name |
.Ar name |
is recognised: |
is handled specially: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Cm nS |
.It Cm nS |
If set to a positive integer value, certain |
If set to a positive integer value, certain |
Line 822 Turn on no-space mode. |
|
Line 939 Turn on no-space mode. |
|
This line-scoped request is intended to take no arguments. |
This line-scoped request is intended to take no arguments. |
Currently, it is ignored including its arguments, |
Currently, it is ignored including its arguments, |
and the number of arguments is not checked. |
and the number of arguments is not checked. |
|
.Ss \&pl |
|
Change page length. |
|
This line-scoped request is intended to take one height argument. |
|
Currently, it is ignored including its arguments, |
|
and the number of arguments is not checked. |
.Ss \&ps |
.Ss \&ps |
Change point size. |
Change point size. |
This line-scoped request is intended to take one numerical argument. |
This line-scoped request is intended to take one numerical argument. |
Currently, it is ignored including its arguments, |
Currently, it is ignored including its arguments, |
and the number of arguments is not checked. |
and the number of arguments is not checked. |
|
.Ss \&rm |
|
Remove a request, macro or string. |
|
Its syntax is as follows: |
|
.Pp |
|
.D1 Pf \. Cm \&rm Ar name |
|
.Ss \&rr |
|
Remove a register. |
|
Its syntax is as follows: |
|
.Pp |
|
.D1 Pf \. Cm \&rr Ar name |
.Ss \&so |
.Ss \&so |
Include a source file. |
Include a source file. |
Its syntax is as follows: |
Its syntax is as follows: |
Line 844 only accepts relative paths not containing the strings |
|
Line 976 only accepts relative paths not containing the strings |
|
.Qq ../ |
.Qq ../ |
and |
and |
.Qq /.. . |
.Qq /.. . |
|
.Pp |
|
This request requires |
|
.Xr man 1 |
|
to change to the right directory before calling |
|
.Xr mandoc 1 , |
|
per convention to the root of the manual tree. |
|
Typical usage looks like: |
|
.Pp |
|
.Dl \&.so man3/Xcursor.3 |
|
.Pp |
|
As the whole concept is rather fragile, the use of |
|
.Sx \&so |
|
is discouraged. |
|
Use |
|
.Xr ln 1 |
|
instead. |
.Ss \&ta |
.Ss \&ta |
Set tab stops. |
Set tab stops. |
This line-scoped request can take an arbitrary number of arguments. |
This line-scoped request can take an arbitrary number of arguments. |
Line 879 Begin a table, which formats input in aligned rows and |
|
Line 1027 Begin a table, which formats input in aligned rows and |
|
See |
See |
.Xr tbl 7 |
.Xr tbl 7 |
for a description of the tbl language. |
for a description of the tbl language. |
|
.Ss Numerical expressions |
|
The |
|
.Sx \&nr , |
|
.Sx \&if , |
|
and |
|
.Sx \&ie |
|
requests accept integer numerical expressions as arguments. |
|
These are always evaluated using the C |
|
.Vt int |
|
type; integer overflow works the same way as in the C language. |
|
Numbers consist of an arbitrary number of digits |
|
.Sq 0 |
|
to |
|
.Sq 9 |
|
prefixed by an optional sign |
|
.Sq + |
|
or |
|
.Sq - . |
|
.Pp |
|
The following binary operators are implemented. |
|
Unless otherwise stated, they behave as in the C language: |
|
.Pp |
|
.Bl -tag -width 2n -compact |
|
.It Ic + |
|
addition |
|
.It Ic - |
|
subtraction |
|
.It Ic * |
|
multiplication |
|
.It Ic / |
|
division |
|
.It Ic % |
|
remainder of division |
|
.It Ic < |
|
less than |
|
.It Ic > |
|
greater than |
|
.It Ic == |
|
equal to |
|
.It Ic = |
|
equal to, same effect as |
|
.Ic == |
|
(this differs from C) |
|
.It Ic <= |
|
less than or equal to |
|
.It Ic >= |
|
greater than or equal to |
|
.It Ic <> |
|
not equal to (corresponds to C |
|
.Ic != ; |
|
this one is of limited portability, it is supported by Heirloom roff, |
|
but not by groff) |
|
.It Ic & |
|
logical and (corresponds to C |
|
.Ic && ) |
|
.It Ic \&: |
|
logical or (corresponds to C |
|
.Ic \&|| ) |
|
.It Ic <? |
|
minimum (not available in C) |
|
.It Ic >? |
|
maximum (not available in C) |
|
.El |
|
.Pp |
|
There is no concept of precendence; evaluation proceeds from left to right, |
|
except when subexpressions are enclosed in parantheses. |
|
Inside parentheses, whitespace is ignored. |
|
.Sh ESCAPE SEQUENCE REFERENCE |
|
The |
|
.Xr mandoc 1 |
|
.Nm |
|
parser recognises the following escape sequences. |
|
Note that the |
|
.Nm |
|
language defines more escape sequences not implemented in |
|
.Xr mandoc 1 . |
|
In |
|
.Xr mdoc 7 |
|
and |
|
.Xr man 7 |
|
documents, using escape sequences is discouraged except for those |
|
described in the |
|
.Sx LANGUAGE SYNTAX |
|
section above. |
|
.Pp |
|
A backslash followed by any character not listed here |
|
simply prints that character itself. |
|
.Ss \e<newline> |
|
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 |
|
on both lines together as if it were on a single input line. |
|
.Ss \e<space> |
|
The escape sequence backslash-space |
|
.Pq Sq \e\ \& |
|
is an unpaddable space-sized non-breaking space character; see |
|
.Sx Whitespace . |
|
.Ss \e\(dq |
|
The rest of the input line is treated as |
|
.Sx Comments . |
|
.Ss \e% |
|
Hyphenation allowed at this point of the word; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \e& |
|
Non-printing zero-width character; see |
|
.Sx Whitespace . |
|
.Ss \e\(aq |
|
Acute accent special character; use |
|
.Sq \e(aa |
|
instead. |
|
.Ss \e( Ns Ar cc |
|
.Sx Special Characters |
|
with two-letter names, see |
|
.Xr mandoc_char 7 . |
|
.Ss \e*[ Ns Ar name ] |
|
Interpolate the string with the |
|
.Ar name ; |
|
see |
|
.Sx Predefined Strings |
|
and |
|
.Sx ds . |
|
For short names, there are variants |
|
.No \e* Ns Ar c |
|
and |
|
.No \e*( Ns Ar cc . |
|
.Ss \e- |
|
Special character |
|
.Dq mathematical minus sign . |
|
.Ss \e[ Ns Ar name ] |
|
.Sx Special Characters |
|
with names of arbitrary length, see |
|
.Xr mandoc_char 7 . |
|
.Ss \e^ |
|
One-twelfth em half-narrow space character, effectively zero-width in |
|
.Xr mandoc 1 . |
|
.Ss \e` |
|
Grave accent special character; use |
|
.Sq \e(ga |
|
instead. |
|
.Ss \e{ |
|
Begin conditional input; see |
|
.Sx if . |
|
.Ss \e\(ba |
|
One-sixth em narrow space character, effectively zero-width in |
|
.Xr mandoc 1 . |
|
.Ss \e} |
|
End conditional input; see |
|
.Sx if . |
|
.Ss \e~ |
|
Paddable non-breaking space character. |
|
.Ss \e0 |
|
Digit width space character. |
|
.Ss \eA\(aq Ns Ar string Ns \(aq |
|
Anchor definition; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eB\(aq Ns Ar string Ns \(aq |
|
Interpolate |
|
.Sq 1 |
|
if |
|
.Ar string |
|
conforms to the syntax of |
|
.Sx Numerical expressions |
|
explained above and |
|
.Sq 0 |
|
otherwise. |
|
.Ss \eb\(aq Ns Ar string Ns \(aq |
|
Bracket building function; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eC\(aq Ns Ar name Ns \(aq |
|
.Sx Special Characters |
|
with names of arbitrary length. |
|
.Ss \ec |
|
When encountered at the end of an input text line, |
|
the next input text line is considered to continue that line, |
|
even if there are request or macro lines in between. |
|
No whitespace is inserted. |
|
.Ss \eD\(aq Ns Ar string Ns \(aq |
|
Draw graphics function; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \ed |
|
Move down by half a line; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \ee |
|
Backslash special character. |
|
.Ss \eF[ Ns Ar name ] |
|
Switch font family (groff extension); ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \eF Ns Ar c |
|
and |
|
.No \eF( Ns Ar cc . |
|
.Ss \ef[ Ns Ar name ] |
|
Switch to the font |
|
.Ar name , |
|
see |
|
.Sx Text Decoration . |
|
For short names, there are variants |
|
.No \ef Ns Ar c |
|
and |
|
.No \ef( Ns Ar cc . |
|
.Ss \eg[ Ns Ar name ] |
|
Interpolate the format of a number register; ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \eg Ns Ar c |
|
and |
|
.No \eg( Ns Ar cc . |
|
.Ss \eH\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq |
|
Set the height of the current font; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eh\(aq Ns Ar number Ns \(aq |
|
Horizontal motion; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \ek[ Ns Ar name ] |
|
Mark horizontal input place in register; ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \ek Ns Ar c |
|
and |
|
.No \ek( Ns Ar cc . |
|
.Ss \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns \(aq |
|
Vertical line drawing function; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \el\(aq Ns Ar number Ns Oo Ar c Oc Ns \(aq |
|
Horizontal line drawing function; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eM[ Ns Ar name ] |
|
Set fill (background) color (groff extension); ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \eM Ns Ar c |
|
and |
|
.No \eM( Ns Ar cc . |
|
.Ss \em[ Ns Ar name ] |
|
Set glyph drawing color (groff extension); ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \em Ns Ar c |
|
and |
|
.No \em( Ns Ar cc . |
|
.Ss \eN\(aq Ns Ar number Ns \(aq |
|
Character |
|
.Ar number |
|
on the current font. |
|
.Ss \en[ Ns Ar name ] |
|
Interpolate the number register |
|
.Ar name . |
|
For short names, there are variants |
|
.No \en Ns Ar c |
|
and |
|
.No \en( Ns Ar cc . |
|
.Ss \eo\(aq Ns Ar string Ns \(aq |
|
Overstrike |
|
.Ar string ; |
|
ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns \(aq |
|
Set number register; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eS\(aq Ns Ar number Ns \(aq |
|
Slant output; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \es\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq |
|
Change point size; ignored by |
|
.Xr mandoc 1 . |
|
Alternative forms |
|
.No \es Ns Oo +|- Oc Ns Ar n , |
|
.No \es Ns Oo +|- Oc Ns \(aq Ns Ar number Ns \(aq , |
|
.No \es Ns [ Oo +|- Oc Ns Ar number ] , |
|
and |
|
.No \es Ns Oo +|- Oc Ns [ Ar number Ns ] |
|
are also parsed and ignored. |
|
.Ss \et |
|
Horizontal tab; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eu |
|
Move up by half a line; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eV[ Ns Ar name ] |
|
Interpolate an environment variable; ignored by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \eV Ns Ar c |
|
and |
|
.No \eV( Ns Ar cc . |
|
.Ss \ev\(aq Ns Ar number Ns \(aq |
|
Vertical motion; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \ew\(aq Ns Ar string Ns \(aq |
|
Interpolate the width of the |
|
.Ar string . |
|
The |
|
.Xr mandoc 1 |
|
implementation assumes that after expansion of user-defined strings, the |
|
.Ar string |
|
only contains normal characters, no escape sequences, and that each |
|
character has a width of 24 basic units. |
|
.Ss \eX\(aq Ns Ar string Ns \(aq |
|
Output |
|
.Ar string |
|
as device control function; ignored in nroff mode and by |
|
.Xr mandoc 1 . |
|
.Ss \ex\(aq Ns Ar number Ns \(aq |
|
Extra line space function; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \eY[ Ns Ar name ] |
|
Output a string as a device control function; ignored in nroff mode and by |
|
.Xr mandoc 1 . |
|
For short names, there are variants |
|
.No \eY Ns Ar c |
|
and |
|
.No \eY( Ns Ar cc . |
|
.Ss \eZ\(aq Ns Ar string Ns \(aq |
|
Print |
|
.Ar string |
|
with zero width and height; ignored by |
|
.Xr mandoc 1 . |
|
.Ss \ez |
|
Output the next character without advancing the cursor position; |
|
approximated in |
|
.Xr mandoc 1 |
|
by simply skipping the next character. |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |
This section documents compatibility between mandoc and other other |
This section documents compatibility between mandoc and other |
.Nm |
.Nm |
implementations, at this time limited to GNU troff |
implementations, at this time limited to GNU troff |
.Pq Qq groff . |
.Pq Qq groff . |
Line 890 refers to groff version 1.15. |
|
Line 1359 refers to groff version 1.15. |
|
.Pp |
.Pp |
.Bl -dash -compact |
.Bl -dash -compact |
.It |
.It |
|
The |
|
.Sq u |
|
scaling unit is the default terminal unit. |
|
In traditional troff systems, this unit would change depending on the |
|
output media. |
|
.It |
In mandoc, the |
In mandoc, the |
.Sx \&EQ , |
.Sx \&EQ , |
.Sx \&TE , |
.Sx \&TE , |
Line 952 Saltzer in 1964. |
|
Line 1427 Saltzer in 1964. |
|
Doug McIlroy rewrote it in BCPL in 1969, renaming it |
Doug McIlroy rewrote it in BCPL in 1969, renaming it |
.Nm . |
.Nm . |
Dennis M. Ritchie rewrote McIlroy's |
Dennis M. Ritchie rewrote McIlroy's |
.Nm |
.Nm |
in PDP-11 assmebly for |
in PDP-11 assembly for |
.At v1 , |
.At v1 , |
Joseph F. Ossanna improved roff and renamed it nroff |
Joseph F. Ossanna improved roff and renamed it nroff |
for |
for |
Line 966 In 1989, James Clarke re-implemented troff in C++, nam |
|
Line 1441 In 1989, James Clarke re-implemented troff in C++, nam |
|
This |
This |
.Nm |
.Nm |
reference was written by |
reference was written by |
.An Kristaps Dzonsons , |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv |
.Mt kristaps@bsd.lv ; |
|
and |
and |
.An Ingo Schwarze , |
.An Ingo Schwarze Aq Mt schwarze@openbsd.org . |
.Mt schwarze@openbsd.org . |
|