version 1.48, 2011/08/30 12:16:36 |
version 1.70, 2018/08/08 14:03:27 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> |
|
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
|
.\" Copyright (c) 2011, 2013, 2015, 2017 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 |
|
|
.Nm mandoc_char |
.Nm mandoc_char |
.Nd mandoc special characters |
.Nd mandoc special characters |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
This page documents the special characters and predefined strings accepted by |
This page documents the |
|
.Xr roff 7 |
|
escape sequences accepted by |
.Xr mandoc 1 |
.Xr mandoc 1 |
to format |
to represent special characters in |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
and |
.Xr man 7 |
.Xr man 7 |
documents. |
documents. |
.Pp |
.Pp |
Both |
The rendering depends on the |
.Xr mdoc 7 |
.Xr mandoc 1 |
|
output mode; it can be inspected by calling |
|
.Xr man 1 |
|
on the |
|
.Nm |
|
manual page with different |
|
.Fl T |
|
arguments. |
|
In ASCII output, the rendering of some characters may be hard |
|
to interpret for the reader. |
|
Many are rendered as descriptive strings like |
|
.Qq <integral> , |
|
.Qq <degree> , |
|
or |
|
.Qq <Gamma> , |
|
which may look ugly, and many are replaced by similar ASCII characters. |
|
In particular, accented characters are usually shown without the accent. |
|
For that reason, try to avoid using any of the special characters |
|
documented here except those discussed in the |
|
.Sx DESCRIPTION , |
|
unless they are essential for explaining the subject matter at hand, |
|
for example when documenting complicated mathematical functions. |
|
.Pp |
|
In particular, in English manual pages, do not use special-character |
|
escape sequences to represent national language characters in author |
|
names; instead, provide ASCII transcriptions of the names. |
|
.Ss Dashes and Hyphens |
|
In typography there are different types of dashes of various width: |
|
the hyphen (-), |
|
the en-dash (\(en), |
|
the em-dash (\(em), |
|
and the mathematical minus sign (\(mi). |
|
.Pp |
|
Hyphens are used for adjectives; |
|
to separate the two parts of a compound word; |
|
or to separate a word across two successive lines of text. |
|
The hyphen does not need to be escaped: |
|
.Bd -unfilled -offset indent |
|
blue-eyed |
|
lorry-driver |
|
.Ed |
|
.Pp |
|
If a word on a text input line contains a hyphen, a formatter may decide |
|
to insert an output line break after the hyphen if that helps filling |
|
the current output line, but the whole word would overflow the line. |
|
If it is important that the word is not broken across lines in this |
|
way, a zero-width space |
|
.Pq Sq \e& |
|
can be inserted before or after the hyphen. |
|
While |
|
.Xr mandoc 1 |
|
never breaks the output line after hyphens adjacent to a zero-width |
|
space, after any of the other dash- or hyphen-like characters |
|
represented by escape sequences, or after hyphens inside words in |
|
macro arguments, other software may not respect these rules and may |
|
break the line even in such cases. |
|
.Pp |
|
Some |
|
.Xr roff 7 |
|
implementations contains dictionaries allowing to break the line |
|
at syllable boundaries even inside words that contain no hyphens. |
|
Such automatic hyphenation is not supported by |
|
.Xr mandoc 1 , |
|
which only breaks the line at whitespace, and inside words only |
|
after existing hyphens. |
|
.Pp |
|
The en-dash is used to separate the two elements of a range, |
|
or can be used the same way as an em-dash. |
|
It should be written as |
|
.Sq \e(en : |
|
.Bd -unfilled -offset indent |
|
pp. 95\e(en97. |
|
Go away \e(en or else! |
|
.Ed |
|
.Pp |
|
The em-dash can be used to show an interruption |
|
or can be used the same way as colons, semi-colons, or parentheses. |
|
It should be written as |
|
.Sq \e(em : |
|
.Bd -unfilled -offset indent |
|
Three things \e(em apples, oranges, and bananas. |
|
This is not that \e(em rather, this is that. |
|
.Ed |
|
.Pp |
|
In |
|
.Xr roff 7 |
|
documents, the minus sign is normally written as |
|
.Sq \e- . |
|
In manual pages, some style guides recommend to also use |
|
.Sq \e- |
|
if an ASCII 0x2d |
|
.Dq hyphen-minus |
|
output glyph that can be copied and pasted is desired in output modes |
|
supporting it, for example in |
|
.Fl T Cm utf8 |
and |
and |
.Xr man 7 |
.Fl T Cm html . |
encode special characters with |
But currently, no practically relevant manual page formatter actually |
|
requires that subtlety, so in manual pages just write plain |
|
.Sq - |
|
to represent hyphen, minus, and hyphen-minus. |
|
.Ss Spaces |
|
To separate words in normal text, for indenting and alignment |
|
in literal context, and when none of the following special cases apply, |
|
just use the normal space character |
|
.Pq Sq \ . |
|
.Pp |
|
When filling text, output lines may be broken between words, i.e. at space |
|
characters. |
|
To prevent a line break between two particular words, |
|
use the unpaddable non-breaking space escape sequence |
|
.Pq Sq \e\ \& |
|
instead of the normal space character. |
|
For example, the input string |
|
.Dq number\e\ 1 |
|
will be kept together as |
|
.Dq number\ 1 |
|
on the same output line. |
|
.Pp |
|
On request and macro lines, the normal space character serves as an |
|
argument delimiter. |
|
To include whitespace into arguments, quoting is usually the best choice; |
|
see the MACRO SYNTAX section in |
|
.Xr roff 7 . |
|
In some cases, using the non-breaking space escape sequence |
|
.Pq Sq \e\ \& |
|
may be preferable. |
|
.Pp |
|
To escape macro names and to protect whitespace at the end |
|
of input lines, the zero-width space |
|
.Pq Sq \e& |
|
is often useful. |
|
For example, in |
|
.Xr mdoc 7 , |
|
a normal space character can be displayed in single quotes in either |
|
of the following ways: |
|
.Pp |
|
.Dl .Sq \(dq \(dq |
|
.Dl .Sq \e \e& |
|
.Ss Quotes |
|
On request and macro lines, the double-quote character |
|
.Pq Sq \(dq |
|
is handled specially to allow quoting. |
|
One way to prevent this special handling is by using the |
|
.Sq \e(dq |
|
escape sequence. |
|
.Pp |
|
Note that on text lines, literal double-quote characters can be used |
|
verbatim. |
|
All other quote-like characters can be used verbatim as well, |
|
even on request and macro lines. |
|
.Ss Accents |
|
In output modes supporting such special output characters, for example |
|
.Fl T Cm pdf , |
|
and sometimes less consistently in |
|
.Fl T Cm utf8 , |
|
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 |
|
.It \(ha Ta U+02C6 Ta modifier letter circumflex |
|
.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 |
|
.It \e(ha Ta U+005E Ta circumflex accent |
|
.El |
|
.Ss Periods |
|
The period |
|
.Pq Sq \&. |
|
is handled specially at the beginning of an input line, |
|
where it introduces a |
|
.Xr roff 7 |
|
request or a macro, and when appearing alone as a macro argument in |
|
.Xr mdoc 7 . |
|
In such situations, prepend a zero-width space |
|
.Pq Sq \e&. |
|
to make it behave like normal text. |
|
.Pp |
|
Do not use the |
|
.Sq \e. |
|
escape sequence. |
|
It does not prevent special handling of the period. |
|
.Ss Backslashes |
|
To include a literal backslash |
|
.Pq Sq \e |
|
into the output, use the |
|
.Pq Sq \ee |
|
escape sequence. |
|
.Pp |
|
Note that doubling it |
|
.Pq Sq \e\e |
|
is not the right way to output a backslash. |
|
Because |
|
.Xr mandoc 1 |
|
does not implement full |
|
.Xr roff 7 |
|
functionality, it may work with |
|
.Xr mandoc 1 , |
|
but it may have weird effects on complete |
|
.Xr roff 7 |
|
implementations. |
|
.Sh SPECIAL CHARACTERS |
|
Special characters are encoded as |
.Sq \eX |
.Sq \eX |
.Pq for a one-character escape , |
.Pq for a one-character escape , |
.Sq \e(XX |
.Sq \e(XX |
Line 41 encode special characters with |
|
Line 255 encode special characters with |
|
and |
and |
.Sq \e[N] |
.Sq \e[N] |
.Pq N-character . |
.Pq N-character . |
One may generalise |
For details, see the |
.Sq \e(XX |
.Em Special Characters |
as |
subsection of the |
.Sq \e[XX] |
.Xr roff 7 |
and |
manual. |
.Sq \eX |
|
as |
|
.Sq \e[X] . |
|
Predefined strings are functionally similar to special characters, using |
|
.Sq \e*X |
|
.Pq for a one-character escape , |
|
.Sq \e*(XX |
|
.Pq two-character , |
|
and |
|
.Sq \e*[N] |
|
.Pq N-character . |
|
One may generalise |
|
.Sq \e*(XX |
|
as |
|
.Sq \e*[XX] |
|
and |
|
.Sq \e*X |
|
as |
|
.Sq \e*[X] . |
|
.Pp |
.Pp |
Note that each output mode will have a different rendering of the |
|
characters. |
|
It's guaranteed that each input symbol will correspond to a |
|
(more or less) meaningful output rendering, regardless the mode. |
|
.Sh SPECIAL CHARACTERS |
|
These are the preferred input symbols for producing special characters. |
|
.Pp |
|
Spacing: |
Spacing: |
.Bl -column -compact -offset indent "Input" "Description" |
.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: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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(ru Ta \(ru Ta underscore (width 0.5m) |
|
.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 |
Text markers: |
Text markers: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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(sh Ta \(sh Ta hash (pound) |
.It \e(sh Ta \(sh Ta hash (pound) |
.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 |
|
.It \e(CL Ta \(CL Ta club suit |
|
.It \e(SP Ta \(SP Ta spade suit |
|
.It \e(HE Ta \(HE Ta heart suit |
|
.It \e(DI Ta \(DI Ta diamond suit |
.El |
.El |
.Pp |
.Pp |
Legal symbols: |
Legal symbols: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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 |
|
|
.El |
.El |
.Pp |
.Pp |
Punctuation: |
Punctuation: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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 |
|
|
.El |
.El |
.Pp |
.Pp |
Quotes: |
Quotes: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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(rq Ta \(rq Ta right double-quote |
.It \e(rq Ta \(rq Ta right double-quote |
.It \e(oq Ta \(oq Ta left single-quote |
.It \e(oq Ta \(oq Ta left single-quote |
.It \e(cq Ta \(cq Ta right single-quote |
.It \e(cq Ta \(cq Ta right single-quote |
.It \e(aq Ta \(aq Ta apostrophe quote (text) |
.It \e(aq Ta \(aq Ta apostrophe quote (ASCII character) |
.It \e(dq Ta \(dq Ta double quote (text) |
.It \e(dq Ta \(dq Ta double quote (ASCII character) |
.It \e(Fo Ta \(Fo Ta left guillemet |
.It \e(Fo Ta \(Fo Ta left guillemet |
.It \e(Fc Ta \(Fc Ta right guillemet |
.It \e(Fc Ta \(Fc Ta right guillemet |
.It \e(fo Ta \(fo Ta left single guillemet |
.It \e(fo Ta \(fo Ta left single guillemet |
|
|
.El |
.El |
.Pp |
.Pp |
Brackets: |
Brackets: |
.Bl -column -compact -offset indent "xxbracketrightbpx" Rendered Description |
.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(rC Ta \(rC Ta right brace |
.It \e(rC Ta \(rC Ta right brace |
.It \e(la Ta \(la Ta left angle |
.It \e(la Ta \(la Ta left angle |
.It \e(ra Ta \(ra Ta right angle |
.It \e(ra Ta \(ra Ta right angle |
.It \e(bv Ta \(bv Ta brace extension |
.It \e(bv Ta \(bv Ta brace extension (special font) |
.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 |
Arrows: |
Arrows: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(<- Ta \(<- Ta left arrow |
.It \e(<- Ta \(<- Ta left arrow |
.It \e(-> Ta \(-> Ta right arrow |
.It \e(-> Ta \(-> Ta right arrow |
|
|
.It \e(uA Ta \(uA Ta up double-arrow |
.It \e(uA Ta \(uA Ta up double-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 |
|
.It \e(an Ta \(an Ta horizontal arrow extension |
.El |
.El |
.Pp |
.Pp |
Logical: |
Logical: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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(no Ta \(no Ta logical not |
.It \e[tno] Ta \[tno] Ta logical not (text font) |
.It \e[tno] Ta \[tno] Ta logical not (text) |
.It \e(no Ta \(no Ta logical not (special font) |
.It \e(te Ta \(te Ta existential quantifier |
.It \e(te Ta \(te Ta existential quantifier |
.It \e(fa Ta \(fa Ta universal quantifier |
.It \e(fa Ta \(fa Ta universal quantifier |
.It \e(st Ta \(st Ta such that |
.It \e(st Ta \(st Ta such that |
|
|
.El |
.El |
.Pp |
.Pp |
Mathematical: |
Mathematical: |
.Bl -column -compact -offset indent "xxcoproductxx" "Rendered" "Description" |
.Bl -column "xxcoproductxx" "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(pl Ta \(pl Ta plus |
.It \e- Ta \- Ta minus (text font) |
.It \e(mi Ta \(mi Ta minus |
.It \e(mi Ta \(mi Ta minus (special font) |
.It \e- Ta \- Ta minus (text) |
.It + Ta + Ta plus (text font) |
|
.It \e(pl Ta \(pl Ta plus (special font) |
.It \e(-+ Ta \(-+ Ta minus-plus |
.It \e(-+ Ta \(-+ Ta minus-plus |
.It \e(+- Ta \(+- Ta plus-minus |
.It \e[t+-] Ta \[t+-] Ta plus-minus (text font) |
.It \e[t+-] Ta \[t+-] Ta plus-minus (text) |
.It \e(+- Ta \(+- Ta plus-minus (special font) |
.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[tmu] Ta \[tmu] Ta multiply (text font) |
.It \e[tmu] Ta \[tmu] Ta multiply (text) |
.It \e(mu Ta \(mu Ta multiply (special font) |
.It \e(c* Ta \(c* Ta circle-multiply |
.It \e(c* Ta \(c* Ta circle-multiply |
.It \e(c+ Ta \(c+ Ta circle-plus |
.It \e(c+ Ta \(c+ Ta circle-plus |
.It \e(di Ta \(di Ta divide |
.It \e[tdi] Ta \[tdi] Ta divide (text font) |
.It \e[tdi] Ta \[tdi] Ta divide (text) |
.It \e(di Ta \(di Ta divide (special font) |
.It \e(f/ Ta \(f/ Ta fraction |
.It \e(f/ Ta \(f/ Ta fraction |
.It \e(** Ta \(** Ta asterisk |
.It \e(** Ta \(** Ta asterisk |
.It \e(<= Ta \(<= Ta less-than-equal |
.It \e(<= Ta \(<= Ta less-than-equal |
|
|
.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(Ah Ta \(Ah Ta aleph |
.It \e(Ah Ta \(Ah Ta aleph |
.It \e(Im Ta \(Im Ta imaginary |
.It \e(Im Ta \(Im Ta imaginary |
.It \e(Re Ta \(Re Ta real |
.It \e(Re Ta \(Re Ta real |
|
.It \e(wp Ta \(wp Ta Weierstrass p |
.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 |
.It \e[12] Ta \[12] Ta one-half |
.It \e[hbar] Ta \[hbar] Ta Planck constant over 2\(*p |
.It \e[14] Ta \[14] Ta one-fourth |
.It \e(12 Ta \(12 Ta one-half |
.It \e[34] Ta \[34] Ta three-fourths |
.It \e(14 Ta \(14 Ta one-fourth |
|
.It \e(34 Ta \(34 Ta three-fourths |
|
.It \e(18 Ta \(18 Ta one-eighth |
|
.It \e(38 Ta \(38 Ta three-eighths |
|
.It \e(58 Ta \(58 Ta five-eighths |
|
.It \e(78 Ta \(78 Ta seven-eighths |
|
.It \e(S1 Ta \(S1 Ta superscript 1 |
|
.It \e(S2 Ta \(S2 Ta superscript 2 |
|
.It \e(S3 Ta \(S3 Ta superscript 3 |
.El |
.El |
.Pp |
.Pp |
Ligatures: |
Ligatures: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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 |
|
|
.El |
.El |
.Pp |
.Pp |
Accents: |
Accents: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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 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(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 (ASCII character) |
.It \e(ti Ta \(ti Ta tilde (text) |
.It \e(ti Ta \(ti Ta tilde (ASCII character) |
.El |
.El |
.Pp |
.Pp |
Accented letters: |
Accented letters: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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 |
Line 393 Accented letters: |
|
Line 596 Accented letters: |
|
.El |
.El |
.Pp |
.Pp |
Special letters: |
Special letters: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(-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 404 Special letters: |
|
Line 607 Special letters: |
|
.El |
.El |
.Pp |
.Pp |
Currency: |
Currency: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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 |
|
|
.El |
.El |
.Pp |
.Pp |
Units: |
Units: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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(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(fm Ta \(fm Ta minute |
.It \e(fm Ta \(fm Ta minute |
.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 |
|
.It \e(Of Ta \(Of Ta Spanish female ordinal |
|
.It \e(Om Ta \(Om Ta Spanish masculine ordinal |
.El |
.El |
.Pp |
.Pp |
Greek letters: |
Greek letters: |
.Bl -column -compact -offset indent "Input" "Rendered" "Description" |
.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 Alpha |
.It \e(*A Ta \(*A Ta Alpha |
.It \e(*B Ta \(*B Ta Beta |
.It \e(*B Ta \(*B Ta Beta |
|
|
for use, as they differ across implementations. |
for use, as they differ across implementations. |
Manuals using these predefined strings are almost certainly not |
Manuals using these predefined strings are almost certainly not |
portable. |
portable. |
.Bl -column -offset indent "Input" "Rendered" "Description" |
.Pp |
|
Their syntax is similar to special characters, using |
|
.Sq \e*X |
|
.Pq for a one-character escape , |
|
.Sq \e*(XX |
|
.Pq two-character , |
|
and |
|
.Sq \e*[N] |
|
.Pq N-character . |
|
For details, see the |
|
.Em Predefined Strings |
|
subsection of the |
|
.Xr roff 7 |
|
manual. |
|
.Bl -column "Input" "Rendered" "Description" -offset indent |
.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 |
|
|
.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 548 escape sequence, inserting the character |
|
Line 768 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 |
This section documents compatibility between mandoc and other other |
This section documents compatibility between mandoc and other |
troff implementations, at this time limited to GNU troff |
troff implementations, at this time limited to GNU troff |
.Pq Qq groff . |
.Pq Qq groff . |
.Pp |
.Pp |
|
|
.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 |
the \e(\(ti=, \e(nb, and \e(nc special characters render differently |
.Fl T Ns Cm xhtml , |
|
the \e(~=, \e(nb, and \e(nc special characters render differently |
|
between mandoc and groff. |
between mandoc and groff. |
.It |
.It |
The |
The |
Line 588 from mandoc either because they are poorly documented |
|
Line 806 from mandoc either because they are poorly documented |
|
known representation. |
known representation. |
.El |
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc 1 |
.Xr mandoc 1 , |
|
.Xr man 7 , |
|
.Xr mdoc 7 , |
|
.Xr roff 7 |
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
.Nm |
.Nm |
manual page was written by |
manual page was written by |
.An Kristaps Dzonsons , |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv . |
.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 ; |