version 1.53, 2013/07/13 19:41:16 |
version 1.63, 2015/09/02 15:38:35 |
|
|
.\" |
.\" |
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> |
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2011, 2013, 2015 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 49 names; instead, provide ASCII transcriptions of the na |
|
Line 49 names; instead, provide ASCII transcriptions of the na |
|
.Ss Dashes and Hyphens |
.Ss Dashes and Hyphens |
In typography there are different types of dashes of various width: |
In typography there are different types of dashes of various width: |
the hyphen (-), |
the hyphen (-), |
the minus sign (\-), |
the minus sign (\(mi), |
the en-dash (\(en), |
the en-dash (\(en), |
and the em-dash (\(em). |
and the em-dash (\(em). |
.Pp |
.Pp |
|
|
.Pp |
.Pp |
The mathematical minus sign is used for negative numbers or subtraction. |
The mathematical minus sign is used for negative numbers or subtraction. |
It should be written as |
It should be written as |
.Sq \e- : |
.Sq \e(mi : |
.Bd -unfilled -offset indent |
.Bd -unfilled -offset indent |
a = 3 \e- 1; |
a = 3 \e(mi 1; |
b = \e-2; |
b = \e(mi2; |
.Ed |
.Ed |
.Pp |
.Pp |
The en-dash is used to separate the two elements of a range, |
The en-dash is used to separate the two elements of a range, |
Line 98 in literal context, and when none of the following spe |
|
Line 98 in literal context, and when none of the following spe |
|
just use the normal space character |
just use the normal space character |
.Pq Sq \ . |
.Pq Sq \ . |
.Pp |
.Pp |
When filling text, lines may be broken between words, i.e. at space |
When filling text, output lines may be broken between words, i.e. at space |
characters. |
characters. |
To prevent a line break between two particular words, |
To prevent a line break between two particular words, |
use the non-breaking space escape sequence |
use the unpaddable non-breaking space escape sequence |
.Pq Sq \e~ |
.Pq Sq \e\ \& |
instead of the normal space character. |
instead of the normal space character. |
For example, the input string |
For example, the input string |
.Dq number\e~1 |
.Dq number\e\ 1 |
will be kept together as |
will be kept together as |
.Dq number\~1 |
.Dq number\ 1 |
on the same output line. |
on the same output line. |
.Pp |
.Pp |
On request and macro lines, the normal space character serves as an |
On request and macro lines, the normal space character serves as an |
argument delimiter. |
argument delimiter. |
To include whitespace into arguments, quoting is usually the best choice. |
To include whitespace into arguments, quoting is usually the best choice; |
In some cases, using either the non-breaking |
see the MACRO SYNTAX section in |
.Pq Sq \e~ |
.Xr roff 7 . |
or the breaking |
In some cases, using the non-breaking space escape sequence |
.Pq Sq \e\ \& |
.Pq Sq \e\ \& |
space escape sequence may be preferable. |
may be preferable. |
|
.Pp |
To escape macro names and to protect whitespace at the end |
To escape macro names and to protect whitespace at the end |
of input lines, the zero-width space |
of input lines, the zero-width space |
.Pq Sq \e& |
.Pq Sq \e& |
Line 141 Note that on text lines, literal double-quote characte |
|
Line 142 Note that on text lines, literal double-quote characte |
|
verbatim. |
verbatim. |
All other quote-like characters can be used verbatim as well, |
All other quote-like characters can be used verbatim as well, |
even on request and macro lines. |
even on request and macro lines. |
|
.Ss Accents |
|
In output modes supporting such special output characters, for example |
|
.Fl T Cm pdf , |
|
some |
|
.Xr roff 7 |
|
formatters convert the following ASCII input characters to the |
|
following Unicode special output characters: |
|
.Bl -column x(ga U+2018 -offset indent |
|
.It \(ga Ta U+2018 Ta left single quotation mark |
|
.It \(aq Ta U+2019 Ta right single quotation mark |
|
.It \(ti Ta U+02DC Ta small tilde |
|
.El |
|
.Pp |
|
In prose, this automatic substitution is often desirable; |
|
but when these characters have to be displayed as plain ASCII |
|
characters, for example in source code samples, they require |
|
escaping to render as follows: |
|
.Bl -column x(ga U+2018 -offset indent |
|
.It \e(ga Ta U+0060 Ta grave accent |
|
.It \e(aq Ta U+0027 Ta apostrophe |
|
.It \e(ti Ta U+007E Ta tilde |
|
.El |
.Ss Periods |
.Ss Periods |
The period |
The period |
.Pq Sq \&. |
.Pq Sq \&. |
|
|
Spacing: |
Spacing: |
.Bl -column "Input" "Description" -offset indent -compact |
.Bl -column "Input" "Description" -offset indent -compact |
.It Em Input Ta Em Description |
.It Em Input Ta Em Description |
.It \e~ Ta non-breaking, non-collapsing space |
.It Sq \e\ \& Ta unpaddable non-breaking space |
.It \e Ta breaking, non-collapsing n-width space |
.It \e\(ti Ta paddable non-breaking space |
.It \e^ Ta zero-width space |
.It \e0 Ta unpaddable, breaking digit-width space |
.It \e% Ta zero-width space |
.It \e| Ta one-sixth \e(em narrow space, zero width in nroff mode |
|
.It \e^ Ta one-twelfth \e(em half-narrow space, zero width in nroff |
.It \e& Ta zero-width space |
.It \e& Ta zero-width space |
.It \e| Ta zero-width space |
.It \e% Ta zero-width space allowing hyphenation |
.It \e0 Ta breaking, non-collapsing digit-width space |
|
.It \ec Ta removes any trailing space (if applicable) |
|
.El |
.El |
.Pp |
.Pp |
Lines: |
Lines: |
|
|
.It \e(ba Ta \(ba Ta bar |
.It \e(ba Ta \(ba Ta bar |
.It \e(br Ta \(br Ta box rule |
.It \e(br Ta \(br Ta box rule |
.It \e(ul Ta \(ul Ta underscore |
.It \e(ul Ta \(ul Ta underscore |
.It \e(rl Ta \(rl Ta overline |
.It \e(rn Ta \(rn Ta overline |
.It \e(bb Ta \(bb Ta broken bar |
.It \e(bb Ta \(bb Ta broken bar |
.It \e(sl Ta \(sl Ta forward slash |
.It \e(sl Ta \(sl Ta forward slash |
.It \e(rs Ta \(rs Ta backward slash |
.It \e(rs Ta \(rs Ta backward slash |
|
|
.El |
.El |
.Pp |
.Pp |
Brackets: |
Brackets: |
.Bl -column "xxbracketrightbpx" Rendered Description -offset indent -compact |
.Bl -column "xxbracketrightbtx" Rendered Description -offset indent -compact |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(lB Ta \(lB Ta left bracket |
.It \e(lB Ta \(lB Ta left bracket |
.It \e(rB Ta \(rB Ta right bracket |
.It \e(rB Ta \(rB Ta right bracket |
|
|
.It \e(bv Ta \(bv Ta brace extension |
.It \e(bv Ta \(bv Ta brace extension |
.It \e[braceex] Ta \[braceex] Ta brace extension |
.It \e[braceex] Ta \[braceex] Ta brace extension |
.It \e[bracketlefttp] Ta \[bracketlefttp] Ta top-left hooked bracket |
.It \e[bracketlefttp] Ta \[bracketlefttp] Ta top-left hooked bracket |
.It \e[bracketleftbp] Ta \[bracketleftbp] Ta bottom-left hooked bracket |
.It \e[bracketleftbt] Ta \[bracketleftbt] Ta bottom-left hooked bracket |
.It \e[bracketleftex] Ta \[bracketleftex] Ta left hooked bracket extension |
.It \e[bracketleftex] Ta \[bracketleftex] Ta left hooked bracket extension |
.It \e[bracketrighttp] Ta \[bracketrighttp] Ta top-right hooked bracket |
.It \e[bracketrighttp] Ta \[bracketrighttp] Ta top-right hooked bracket |
.It \e[bracketrightbp] Ta \[bracketrightbp] Ta bottom-right hooked bracket |
.It \e[bracketrightbt] Ta \[bracketrightbt] Ta bottom-right hooked bracket |
.It \e[bracketrightex] Ta \[bracketrightex] Ta right hooked bracket extension |
.It \e[bracketrightex] Ta \[bracketrightex] Ta right hooked bracket extension |
.It \e(lt Ta \(lt Ta top-left hooked brace |
.It \e(lt Ta \(lt Ta top-left hooked brace |
.It \e[bracelefttp] Ta \[bracelefttp] Ta top-left hooked brace |
.It \e[bracelefttp] Ta \[bracelefttp] Ta top-left hooked brace |
.It \e(lk Ta \(lk Ta mid-left hooked brace |
.It \e(lk Ta \(lk Ta mid-left hooked brace |
.It \e[braceleftmid] Ta \[braceleftmid] Ta mid-left hooked brace |
.It \e[braceleftmid] Ta \[braceleftmid] Ta mid-left hooked brace |
.It \e(lb Ta \(lb Ta bottom-left hooked brace |
.It \e(lb Ta \(lb Ta bottom-left hooked brace |
.It \e[braceleftbp] Ta \[braceleftbp] Ta bottom-left hooked brace |
.It \e[braceleftbt] Ta \[braceleftbt] Ta bottom-left hooked brace |
.It \e[braceleftex] Ta \[braceleftex] Ta left hooked brace extension |
.It \e[braceleftex] Ta \[braceleftex] Ta left hooked brace extension |
.It \e(rt Ta \(rt Ta top-left hooked brace |
.It \e(rt Ta \(rt Ta top-left hooked brace |
.It \e[bracerighttp] Ta \[bracerighttp] Ta top-right hooked brace |
.It \e[bracerighttp] Ta \[bracerighttp] Ta top-right hooked brace |
.It \e(rk Ta \(rk Ta mid-right hooked brace |
.It \e(rk Ta \(rk Ta mid-right hooked brace |
.It \e[bracerightmid] Ta \[bracerightmid] Ta mid-right hooked brace |
.It \e[bracerightmid] Ta \[bracerightmid] Ta mid-right hooked brace |
.It \e(rb Ta \(rb Ta bottom-right hooked brace |
.It \e(rb Ta \(rb Ta bottom-right hooked brace |
.It \e[bracerightbp] Ta \[bracerightbp] Ta bottom-right hooked brace |
.It \e[bracerightbt] Ta \[bracerightbt] Ta bottom-right hooked brace |
.It \e[bracerightex] Ta \[bracerightex] Ta right hooked brace extension |
.It \e[bracerightex] Ta \[bracerightex] Ta right hooked brace extension |
.It \e[parenlefttp] Ta \[parenlefttp] Ta top-left hooked parenthesis |
.It \e[parenlefttp] Ta \[parenlefttp] Ta top-left hooked parenthesis |
.It \e[parenleftbp] Ta \[parenleftbp] Ta bottom-left hooked parenthesis |
.It \e[parenleftbt] Ta \[parenleftbt] Ta bottom-left hooked parenthesis |
.It \e[parenleftex] Ta \[parenleftex] Ta left hooked parenthesis extension |
.It \e[parenleftex] Ta \[parenleftex] Ta left hooked parenthesis extension |
.It \e[parenrighttp] Ta \[parenrighttp] Ta top-right hooked parenthesis |
.It \e[parenrighttp] Ta \[parenrighttp] Ta top-right hooked parenthesis |
.It \e[parenrightbp] Ta \[parenrightbp] Ta bottom-right hooked parenthesis |
.It \e[parenrightbt] Ta \[parenrightbt] Ta bottom-right hooked parenthesis |
.It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension |
.It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension |
.El |
.El |
.Pp |
.Pp |
|
|
.It \e(-+ Ta \(-+ Ta minus-plus |
.It \e(-+ Ta \(-+ Ta minus-plus |
.It \e(+- Ta \(+- Ta plus-minus |
.It \e(+- Ta \(+- Ta plus-minus |
.It \e[t+-] Ta \[t+-] Ta plus-minus (text) |
.It \e[t+-] Ta \[t+-] Ta plus-minus (text) |
.It \e(pc Ta \(pc Ta centre-dot |
.It \e(pc Ta \(pc Ta center-dot |
.It \e(mu Ta \(mu Ta multiply |
.It \e(mu Ta \(mu Ta multiply |
.It \e[tmu] Ta \[tmu] Ta multiply (text) |
.It \e[tmu] Ta \[tmu] Ta multiply (text) |
.It \e(c* Ta \(c* Ta circle-multiply |
.It \e(c* Ta \(c* Ta circle-multiply |
|
|
.It \e(!= Ta \(!= Ta not equal |
.It \e(!= Ta \(!= Ta not equal |
.It \e(== Ta \(== Ta equivalent |
.It \e(== Ta \(== Ta equivalent |
.It \e(ne Ta \(ne Ta not equivalent |
.It \e(ne Ta \(ne Ta not equivalent |
.It \e(=~ Ta \(=~ Ta congruent |
.It \e(ap Ta \(ap Ta tilde operator |
.It \e(-~ Ta \(-~ Ta asymptotically congruent |
.It \e(|= Ta \(|= Ta asymptotically equal |
.It \e(ap Ta \(ap Ta asymptotically similar |
.It \e(=\(ti Ta \(=~ Ta approximately equal |
.It \e(~~ Ta \(~~ Ta approximately similar |
.It \e(\(ti\(ti Ta \(~~ Ta almost equal |
.It \e(~= Ta \(~= Ta approximately equal |
.It \e(\(ti= Ta \(~= Ta almost equal |
.It \e(pt Ta \(pt Ta proportionate |
.It \e(pt Ta \(pt Ta proportionate |
.It \e(es Ta \(es Ta empty set |
.It \e(es Ta \(es Ta empty set |
.It \e(mo Ta \(mo Ta element |
.It \e(mo Ta \(mo Ta element |
|
|
.It \e(a. Ta \(a. Ta dotted |
.It \e(a. Ta \(a. Ta dotted |
.It \e(a^ Ta \(a^ Ta circumflex |
.It \e(a^ Ta \(a^ Ta circumflex |
.It \e(aa Ta \(aa Ta acute |
.It \e(aa Ta \(aa Ta acute |
.It \e' Ta \' Ta acute |
.It \e\(aq Ta \' Ta acute |
.It \e(ga Ta \(ga Ta grave |
.It \e(ga Ta \(ga Ta grave |
.It \e` Ta \` Ta grave |
.It \e\(ga Ta \` Ta grave |
.It \e(ab Ta \(ab Ta breve |
.It \e(ab Ta \(ab Ta breve |
.It \e(ac Ta \(ac Ta cedilla |
.It \e(ac Ta \(ac Ta cedilla |
.It \e(ad Ta \(ad Ta dieresis |
.It \e(ad Ta \(ad Ta dieresis |
.It \e(ah Ta \(ah Ta caron |
.It \e(ah Ta \(ah Ta caron |
.It \e(ao Ta \(ao Ta ring |
.It \e(ao Ta \(ao Ta ring |
.It \e(a~ Ta \(a~ Ta tilde |
.It \e(a\(ti Ta \(a~ Ta tilde |
.It \e(ho Ta \(ho Ta ogonek |
.It \e(ho Ta \(ho Ta ogonek |
.It \e(ha Ta \(ha Ta hat (text) |
.It \e(ha Ta \(ha Ta hat (text) |
.It \e(ti Ta \(ti Ta tilde (text) |
.It \e(ti Ta \(ti Ta tilde (text) |
|
|
Accented letters: |
Accented letters: |
.Bl -column "Input" "Rendered" "Description" -offset indent -compact |
.Bl -column "Input" "Rendered" "Description" -offset indent -compact |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e('A Ta \('A Ta acute A |
.It \e(\(aqA Ta \('A Ta acute A |
.It \e('E Ta \('E Ta acute E |
.It \e(\(aqE Ta \('E Ta acute E |
.It \e('I Ta \('I Ta acute I |
.It \e(\(aqI Ta \('I Ta acute I |
.It \e('O Ta \('O Ta acute O |
.It \e(\(aqO Ta \('O Ta acute O |
.It \e('U Ta \('U Ta acute U |
.It \e(\(aqU Ta \('U Ta acute U |
.It \e('a Ta \('a Ta acute a |
.It \e(\(aqa Ta \('a Ta acute a |
.It \e('e Ta \('e Ta acute e |
.It \e(\(aqe Ta \('e Ta acute e |
.It \e('i Ta \('i Ta acute i |
.It \e(\(aqi Ta \('i Ta acute i |
.It \e('o Ta \('o Ta acute o |
.It \e(\(aqo Ta \('o Ta acute o |
.It \e('u Ta \('u Ta acute u |
.It \e(\(aqu Ta \('u Ta acute u |
.It \e(`A Ta \(`A Ta grave A |
.It \e(\(gaA Ta \(`A Ta grave A |
.It \e(`E Ta \(`E Ta grave E |
.It \e(\(gaE Ta \(`E Ta grave E |
.It \e(`I Ta \(`I Ta grave I |
.It \e(\(gaI Ta \(`I Ta grave I |
.It \e(`O Ta \(`O Ta grave O |
.It \e(\(gaO Ta \(`O Ta grave O |
.It \e(`U Ta \(`U Ta grave U |
.It \e(\(gaU Ta \(`U Ta grave U |
.It \e(`a Ta \(`a Ta grave a |
.It \e(\(gaa Ta \(`a Ta grave a |
.It \e(`e Ta \(`e Ta grave e |
.It \e(\(gae Ta \(`e Ta grave e |
.It \e(`i Ta \(`i Ta grave i |
.It \e(\(gai Ta \(`i Ta grave i |
.It \e(`o Ta \(`i Ta grave o |
.It \e(\(gao Ta \(`i Ta grave o |
.It \e(`u Ta \(`u Ta grave u |
.It \e(\(gau Ta \(`u Ta grave u |
.It \e(~A Ta \(~A Ta tilde A |
.It \e(\(tiA Ta \(~A Ta tilde A |
.It \e(~N Ta \(~N Ta tilde N |
.It \e(\(tiN Ta \(~N Ta tilde N |
.It \e(~O Ta \(~O Ta tilde O |
.It \e(\(tiO Ta \(~O Ta tilde O |
.It \e(~a Ta \(~a Ta tilde a |
.It \e(\(tia Ta \(~a Ta tilde a |
.It \e(~n Ta \(~n Ta tilde n |
.It \e(\(tin Ta \(~n Ta tilde n |
.It \e(~o Ta \(~o Ta tilde o |
.It \e(\(tio Ta \(~o Ta tilde o |
.It \e(:A Ta \(:A Ta dieresis A |
.It \e(:A Ta \(:A Ta dieresis A |
.It \e(:E Ta \(:E Ta dieresis E |
.It \e(:E Ta \(:E Ta dieresis E |
.It \e(:I Ta \(:I Ta dieresis I |
.It \e(:I Ta \(:I Ta dieresis I |
|
|
.It \e*(Ai Ta \*(Ai Ta ANSI standard name |
.It \e*(Ai Ta \*(Ai Ta ANSI standard name |
.El |
.El |
.Sh UNICODE CHARACTERS |
.Sh UNICODE CHARACTERS |
The escape sequence |
The escape sequences |
.Pp |
.Pp |
.Dl \e[uXXXX] |
.Dl \e[uXXXX] and \eC\(aquXXXX\(aq |
.Pp |
.Pp |
is interpreted as a Unicode codepoint. |
are interpreted as Unicode codepoints. |
The codepoint must be in the range above U+0080 and less than U+10FFFF. |
The codepoint must be in the range above U+0080 and less than U+10FFFF. |
For compatibility, points must be zero-padded to four characters; if |
For compatibility, the hexadecimal digits |
|
.Sq A |
|
to |
|
.Sq F |
|
must be given as uppercase characters, |
|
and points must be zero-padded to four characters; if |
greater than four characters, no zero padding is allowed. |
greater than four characters, no zero padding is allowed. |
Unicode surrogates are not allowed. |
Unicode surrogates are not allowed. |
.\" .Pp |
|
.\" Unicode glyphs attenuate to the |
|
.\" .Sq \&? |
|
.\" character if invalid or not rendered by current output media. |
|
.Sh NUMBERED CHARACTERS |
.Sh NUMBERED CHARACTERS |
For backward compatibility with existing manuals, |
For backward compatibility with existing manuals, |
.Xr mandoc 1 |
.Xr mandoc 1 |
Line 680 escape sequence, inserting the character |
|
Line 703 escape sequence, inserting the character |
|
from the current character set into the output. |
from the current character set into the output. |
Of course, this is inherently non-portable and is already marked |
Of course, this is inherently non-portable and is already marked |
as deprecated in the Heirloom roff manual. |
as deprecated in the Heirloom roff manual. |
For example, do not use \eN'34', use \e(dq, or even the plain |
For example, do not use \eN\(aq34\(aq, use \e(dq, or even the plain |
.Sq \(dq |
.Sq \(dq |
character where possible. |
character where possible. |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |
|
|
.Fl T Ns Cm ascii , |
.Fl T Ns Cm ascii , |
the |
the |
\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], |
\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], |
\e[coproduct], \e(gr, \e(\-h, and \e(a. special characters render |
\e[coproduct], \e(gr, \e(-h, and \e(a. special characters render |
differently between mandoc and groff. |
differently between mandoc and groff. |
.It |
.It |
In |
In |
.Fl T Ns Cm html |
.Fl T Ns Cm html |
and |
and |
.Fl T Ns Cm xhtml , |
.Fl T Ns Cm xhtml , |
the \e(~=, \e(nb, and \e(nc special characters render differently |
the \e(\(ti=, \e(nb, and \e(nc special characters render differently |
between mandoc and groff. |
between mandoc and groff. |
.It |
.It |
The |
The |
|
|
manual page was written by |
manual page was written by |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv . |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv . |
.Sh CAVEATS |
.Sh CAVEATS |
The |
The predefined string |
.Sq \e*(Ba |
.Sq \e*(Ba |
escape mimics the behaviour of the |
mimics the behaviour of the |
.Sq \&| |
.Sq \&| |
character in |
character in |
.Xr mdoc 7 ; |
.Xr mdoc 7 ; |