version 1.24, 2009/09/24 09:20:02 |
version 1.42, 2011/02/09 22:53:20 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se> |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" |
.\" |
.\" 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 |
|
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
.\" |
.\" |
.Dd $Mdocdate$ |
.Dd $Mdocdate$ |
.Dt MANDOC_CHAR 7 |
.Dt MANDOC_CHAR 7 |
.Os |
.Os |
. |
|
. |
|
.Sh NAME |
.Sh NAME |
.Nm mandoc_char |
.Nm mandoc_char |
.Nd mandoc special characters |
.Nd mandoc special characters |
. |
|
. |
|
.Sh DESCRIPTION |
.Sh DESCRIPTION |
This documents the special characters and predefined strings accepted by |
This page documents the special characters and predefined strings accepted by |
.Xr mandoc 1 |
.Xr mandoc 1 |
to format |
to format |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
and |
.Xr man 7 |
.Xr man 7 |
documents. |
documents. |
. |
|
.Pp |
.Pp |
Both |
Both |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
and |
.Xr man 7 |
.Xr man 7 |
encode special characters with |
encode special characters with |
.Sq \eX |
.Sq \eX |
.Pq for a one-character escape , |
.Pq for a one-character escape , |
.Sq \e(XX |
.Sq \e(XX |
|
|
.Sq \eX |
.Sq \eX |
as |
as |
.Sq \e[X] . |
.Sq \e[X] . |
Predefined strings are functionally similar to special characters, using |
Predefined strings are functionally similar to special characters, using |
.Sq \e*X |
.Sq \e*X |
.Pq for a one-character escape , |
.Pq for a one-character escape , |
.Sq \e*(XX |
.Sq \e*(XX |
|
|
.Sq \e*X |
.Sq \e*X |
as |
as |
.Sq \e*[X] . |
.Sq \e*[X] . |
. |
|
.Pp |
.Pp |
Note that each output mode will have a different rendering of the |
Note that each output mode will have a different rendering of the |
characters. It's guaranteed that each input symbol will correspond to a |
characters. |
|
It's guaranteed that each input symbol will correspond to a |
(more or less) meaningful output rendering, regardless the mode. |
(more or less) meaningful output rendering, regardless the mode. |
. |
.Sh SPECIAL CHARACTERS |
. |
|
.Sh Special Characters |
|
These are the preferred input symbols for producing special characters. |
These are the preferred input symbols for producing special characters. |
. |
|
.Pp |
.Pp |
Spacing: |
Spacing: |
.Bl -compact -offset indent -column 10n 20n |
.Bl -column -compact -offset indent "Input" "Description" |
.It Em Input Ta Em Description |
.It Em Input Ta Em Description |
.It \e~ Ta non-breaking, non-collapsing space |
.It \e~ Ta non-breaking, non-collapsing space |
.It \e Ta breaking, non-collapsing n-width space |
.It \e Ta breaking, non-collapsing n-width space |
|
|
.It \e& Ta zero-width space |
.It \e& Ta zero-width space |
.It \e| Ta zero-width space |
.It \e| Ta zero-width space |
.It \e0 Ta breaking, non-collapsing digit-width space |
.It \e0 Ta breaking, non-collapsing digit-width space |
|
.It \ec Ta removes any trailing space (if applicable) |
.El |
.El |
. |
|
.Pp |
.Pp |
Lines: |
Lines: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.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(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 |
Text markers: |
Text markers: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(ci Ta \(ci Ta circle |
.It \e(ci Ta \(ci Ta circle |
.It \e(bu Ta \(bu Ta bullet |
.It \e(bu Ta \(bu Ta bullet |
|
|
.It \e(CR Ta \(CR Ta carriage return |
.It \e(CR Ta \(CR Ta carriage return |
.It \e(OK Ta \(OK Ta check mark |
.It \e(OK Ta \(OK Ta check mark |
.El |
.El |
. |
|
.Pp |
.Pp |
Legal symbols: |
Legal symbols: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(co Ta \(co Ta copyright |
.It \e(co Ta \(co Ta copyright |
.It \e(rg Ta \(rg Ta registered |
.It \e(rg Ta \(rg Ta registered |
.It \e(tm Ta \(tm Ta trademarked |
.It \e(tm Ta \(tm Ta trademarked |
.El |
.El |
. |
|
.Pp |
.Pp |
Punctuation: |
Punctuation: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(em Ta \(em Ta em-dash |
.It \e(em Ta \(em Ta em-dash |
.It \e(en Ta \(en Ta en-dash |
.It \e(en Ta \(en Ta en-dash |
.It \e(hy Ta \(hy Ta hyphen |
.It \e(hy Ta \(hy Ta hyphen |
.It \e\e Ta \\ Ta back-slash |
|
.It \ee Ta \e Ta back-slash |
.It \ee Ta \e Ta back-slash |
.It \e. Ta \. Ta period |
.It \e. Ta \. Ta period |
.It \e(r! Ta \(r! Ta upside-down exclamation |
.It \e(r! Ta \(r! Ta upside-down exclamation |
.It \e(r? Ta \(r? Ta upside-down question |
.It \e(r? Ta \(r? Ta upside-down question |
.El |
.El |
. |
|
.Pp |
.Pp |
Quotes: |
Quotes: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(Bq Ta \(Bq Ta right low double-quote |
.It \e(Bq Ta \(Bq Ta right low double-quote |
.It \e(bq Ta \(bq Ta right low single-quote |
.It \e(bq Ta \(bq Ta right low single-quote |
|
|
.It \e(fo Ta \(fo Ta left single guillemet |
.It \e(fo Ta \(fo Ta left single guillemet |
.It \e(fc Ta \(fc Ta right single guillemet |
.It \e(fc Ta \(fc Ta right single guillemet |
.El |
.El |
. |
|
.Pp |
.Pp |
Brackets: |
Brackets: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "xxbracketrightbpx" Rendered Description |
.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[parenrightbp] Ta \[parenrightbp] Ta bottom-right hooked parenthesis |
.It \e[parenrightbp] Ta \[parenrightbp] 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 |
Arrows: |
Arrows: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(<- Ta \(<- Ta left arrow |
.It \e(<- Ta \(<- Ta left arrow |
.It \e(-> Ta \(-> Ta right arrow |
.It \e(-> Ta \(-> Ta right arrow |
|
|
.It \e(dA Ta \(dA Ta down double-arrow |
.It \e(dA Ta \(dA Ta down double-arrow |
.It \e(vA Ta \(vA Ta up-down double-arrow |
.It \e(vA Ta \(vA Ta up-down double-arrow |
.El |
.El |
. |
|
.Pp |
.Pp |
Logical: |
Logical: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(AN Ta \(AN Ta logical and |
.It \e(AN Ta \(AN Ta logical and |
.It \e(OR Ta \(OR Ta logical or |
.It \e(OR Ta \(OR Ta logical or |
|
|
.It \e(3d Ta \(3d Ta therefore |
.It \e(3d Ta \(3d Ta therefore |
.It \e(or Ta \(or Ta bitwise or |
.It \e(or Ta \(or Ta bitwise or |
.El |
.El |
. |
|
.Pp |
.Pp |
Mathematical: |
Mathematical: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "xxcoproductxx" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(pl Ta \(pl Ta plus |
.It \e(pl Ta \(pl Ta plus |
.It \e(mi Ta \(mi Ta minus |
.It \e(mi Ta \(mi Ta minus |
|
|
.It \e(pd Ta \(pd Ta partial differential |
.It \e(pd Ta \(pd Ta partial differential |
.It \e(-h Ta \(-h Ta Planck constant over 2\(*p |
.It \e(-h Ta \(-h Ta Planck constant over 2\(*p |
.El |
.El |
. |
|
.Pp |
.Pp |
Ligatures: |
Ligatures: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(ff Ta \(ff Ta ff ligature |
.It \e(ff Ta \(ff Ta ff ligature |
.It \e(fi Ta \(fi Ta fi ligature |
.It \e(fi Ta \(fi Ta fi ligature |
|
|
.It \e(IJ Ta \(IJ Ta IJ ligature |
.It \e(IJ Ta \(IJ Ta IJ ligature |
.It \e(ij Ta \(ij Ta ij ligature |
.It \e(ij Ta \(ij Ta ij ligature |
.El |
.El |
. |
|
.Pp |
.Pp |
Accents: |
Accents: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(a" Ta \(a" Ta Hungarian umlaut |
.It \e(a" Ta \(a" Ta Hungarian umlaut |
.It \e(a- Ta \(a- Ta macron |
.It \e(a- Ta \(a- Ta macron |
|
|
.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) |
.El |
.El |
. |
|
.Pp |
.Pp |
Accented letters: |
Accented letters: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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('A Ta \('A Ta acute A |
.It \e('E Ta \('E Ta acute E |
.It \e('E Ta \('E Ta acute E |
Line 408 Accented letters: |
|
Line 388 Accented letters: |
|
.It \e(oA Ta \(oA Ta ring A |
.It \e(oA Ta \(oA Ta ring A |
.It \e(oa Ta \(oa Ta ring a |
.It \e(oa Ta \(oa Ta ring a |
.El |
.El |
. |
|
.Pp |
.Pp |
Special letters: |
Special letters: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(-D Ta \(-D Ta Eth |
.It \e(-D Ta \(-D Ta Eth |
.It \e(Sd Ta \(Sd Ta eth |
.It \e(Sd Ta \(Sd Ta eth |
Line 420 Special letters: |
|
Line 399 Special letters: |
|
.It \e(.i Ta \(.i Ta dotless i |
.It \e(.i Ta \(.i Ta dotless i |
.It \e(.j Ta \(.j Ta dotless j |
.It \e(.j Ta \(.j Ta dotless j |
.El |
.El |
. |
|
.Pp |
.Pp |
Currency: |
Currency: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(Do Ta \(Do Ta dollar |
.It \e(Do Ta \(Do Ta dollar |
.It \e(ct Ta \(ct Ta cent |
.It \e(ct Ta \(ct Ta cent |
|
|
.It \e(Cs Ta \(Cs Ta Scandinavian |
.It \e(Cs Ta \(Cs Ta Scandinavian |
.It \e(Fn Ta \(Fn Ta florin |
.It \e(Fn Ta \(Fn Ta florin |
.El |
.El |
. |
|
.Pp |
.Pp |
Units: |
Units: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(de Ta \(de Ta degree |
.It \e(de Ta \(de Ta degree |
.It \e(%0 Ta \(%0 Ta per-thousand |
.It \e(%0 Ta \(%0 Ta per-thousand |
|
|
.It \e(sd Ta \(sd Ta second |
.It \e(sd Ta \(sd Ta second |
.It \e(mc Ta \(mc Ta micro |
.It \e(mc Ta \(mc Ta micro |
.El |
.El |
. |
|
.Pp |
.Pp |
Greek letters: |
Greek letters: |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e(*A Ta \(*A Ta Alpha |
.It \e(*A Ta \(*A Ta Alpha |
.It \e(*B Ta \(*B Ta Beta |
.It \e(*B Ta \(*B Ta Beta |
|
|
.It \e(+e Ta \(+e Ta epsilon variant |
.It \e(+e Ta \(+e Ta epsilon variant |
.It \e(ts Ta \(ts Ta sigma terminal |
.It \e(ts Ta \(ts Ta sigma terminal |
.El |
.El |
. |
|
. |
|
.Sh PREDEFINED STRINGS |
.Sh PREDEFINED STRINGS |
These are not recommended for use, as they differ across |
These are not recommended for use, as they differ across |
implementations: |
implementations: |
. |
|
.Pp |
.Pp |
.Bl -compact -offset indent -column 10n 10n 10n |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e*(Ba Ta \*(Ba Ta vertical bar |
.It \e*(Ba Ta \*(Ba Ta vertical bar |
.It \e*(Ne Ta \*(Ne Ta not equal |
.It \e*(Ne Ta \*(Ne Ta not equal |
Line 540 implementations: |
|
Line 513 implementations: |
|
.It \e*(aa Ta \*(aa Ta acute |
.It \e*(aa Ta \*(aa Ta acute |
.It \e*(ga Ta \*(ga Ta grave |
.It \e*(ga Ta \*(ga Ta grave |
.El |
.El |
. |
.Sh NUMBERED CHARACTERS |
. |
For backward compatibility with existing manuals, |
.Sh COMPATIBILITY |
.Xr mandoc 1 |
This section documents compatibility of |
also supports the |
.Nm |
|
with older or existing versions of |
|
.Xr groff 1 . |
|
. |
|
.Pp |
.Pp |
The following render differently in |
.Dl \eN\(aq Ns Ar number Ns \(aq |
.Fl T Ns Ar ascii |
|
output mode: |
|
.Bd -ragged -offset indent |
|
\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], |
|
\e[coproduct], \e(gr, \e(-h, \e(a. |
|
.Ed |
|
. |
|
.Pp |
.Pp |
The following render differently in |
escape sequence, inserting the character |
.Fl T Ns Ar html |
.Ar number |
output mode: |
from the current character set into the output. |
.Bd -ragged -offset indent |
Of course, this is inherently non-portable and is already marked |
\e(~=, \e(nb, \e(nc |
as deprecated in the Heirloom roff manual. |
.Ed |
For example, do not use \eN'34', use \e(dq, or even the plain |
. |
.Sq \(dq |
|
character where possible. |
|
.Sh COMPATIBILITY |
|
This section documents compatibility between mandoc and other other |
|
troff implementations, at this time limited to GNU troff |
|
.Pq Qq groff . |
.Pp |
.Pp |
Finally, the following have been omitted by being poorly documented or |
.Bl -dash -compact |
having no known representation: |
.It |
.Bd -ragged -offset indent |
In |
\e[radicalex], \e[sqrtex], \e(ru |
.Fl T Ns Cm ascii , |
.Ed |
the |
. |
\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 |
|
differently between mandoc and groff. |
|
.It |
|
In |
|
.Fl T Ns Cm html |
|
and |
|
.Fl T Ns Cm xhtml , |
|
the \e(~=, \e(nb, and \e(nc special characters render differently |
|
between mandoc and groff. |
|
.It |
|
The |
|
.Fl T Ns Cm ps |
|
and |
|
.Fl T Ns Cm pdf |
|
modes format like |
|
.Fl T Ns Cm ascii |
|
instead of rendering glyphs as in groff. |
|
.It |
|
The \e[radicalex], \e[sqrtex], and \e(ru special characters have been omitted |
|
from mandoc either because they are poorly documented or they have no |
|
known representation. |
|
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc 1 |
.Xr mandoc 1 |
. |
|
. |
|
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
.Nm |
.Nm |
utility was written by |
manual page was written by |
.An Kristaps Dzonsons Aq kristaps@kth.se . |
.An Kristaps Dzonsons Aq kristaps@bsd.lv . |
|
.Sh CAVEATS |
|
The |
|
.Sq \e*(Ba |
|
escape mimics the behaviour of the |
|
.Sq \&| |
|
character in |
|
.Xr mdoc 7 ; |
|
thus, if you wish to render a vertical bar with no side effects, use |
|
the |
|
.Sq \e(ba |
|
escape. |