.\" $Id$
.\"
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate$
.Dt MANDOC_CHAR 7
.Os
.\" SECTION
.Sh NAME
.Nm mandoc_char
.Nd mandoc special characters
.\" SECTION
.Sh DESCRIPTION
This documents the special characters and predefined strings accepted by
.Xr mandoc 1
to format
.Xr mdoc 7
and
.Xr man 7
documents. Specific output devices of
.Xr mandoc 1 ,
dictated by the
.Fl T Ns Ar output
argument, will properly render these sequences.
.\" PARAGRAPH
.Pp
Both
.Xr mdoc 7
and
.Xr man 7
encode special characters with
.Sq \eX
.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 \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] .
.\" SECTION
.Sh Special Characters
These are the preferred input symbols for producing special characters.
.\" PARAGRAPH
.Pp
Typographic:
.Bl -tag -width Ds -offset indent -compact
.It \e~
.Pq non-breaking space
.It \e
.Pq space
.It \e^
.Pq zero-width space
.It \e%
.Pq zero-width space
.It \e&
.Pq zero-width space
.It \e|
.Pq zero-width space
.El
.\" PARAGRAPH
.Pp
Grammatic:
.Bl -tag -width Ds -offset indent -compact
.It \e(em
.Pq em-dash
.It \e(en
.Pq en-dash
.It \e(hy
.Pq hyphen
.It \e\e
.Pq back-slash
.It \\e
.Pq back-slash
.It \e'
.Pq apostrophe
.It \e`
.Pq back-tick
.It \e.
.Pq period
.It \e(r!
.Pq upside-down exclamation
.It \e(r?
.Pq upside-down question
.El
.\" PARAGRAPH
.Pp
Enclosures:
.Bl -tag -width Ds -offset indent -compact
.It \e(lh
.Pq left hand
.It \e(rh
.Pq right hand
.It \e(Fo
.Pq left guillemet
.It \e(Fc
.Pq right guillemet
.It \e(fo
.Pq left guilsing
.It \e(fc
.Pq right guilsing
.It \e(rC
.Pq right brace
.It \e(lC
.Pq left brace
.It \e(ra
.Pq right angle
.It \e(la
.Pq left angle
.It \e(rB
.Pq right bracket
.It \e(lB
.Pq left bracket
.It \e(lq
.Pq left double-quote
.It \e(rq
.Pq right double-quote
.It \e(oq
.Pq left single-quote
.It \e(aq
.Pq right single-quote
.It \e(Bq
.Pq right low double-quote
.It \e(bq
.Pq right low single-quote
.El
.\" PARAGRAPH
.Pp
Indicatives:
.Bl -tag -width Ds -offset indent -compact
.It \e(<-
.Pq left arrow
.It \e(->
.Pq right arrow
.It \e(ua
.Pq up arrow
.It \e(da
.Pq down arrow
.It \e(<>
.Pq left-right arrow
.It \e(lA
.Pq left double-arrow
.It \e(rA
.Pq right double-arrow
.It \e(uA
.Pq up double-arrow
.It \e(dA
.Pq down double-arrow
.It \e(hA
.Pq left-right double-arrow
.El
.\" PARAGRAPH
.Pp
Mathematical:
.Bl -tag -width Ds -offset indent -compact
.It \e(es
.Pq empty set
.It \e(ca
.Pq intersection
.It \e(cu
.Pq union
.It \e(gr
.Pq gradient
.It \e(pd
.Pq partial differential
.It \e(ap
.Pq similarity
.It \e(=)
.Pq proper superset
.It \e((=
.Pq proper subset
.It \e(eq
.Pq equals
.It \e(di
.Pq division
.It \e(mu
.Pq multiplication
.It \e(pl
.Pq addition
.It \e-
.Pq subtraction
.It \e(nm
.Pq not element
.It \e(mo
.Pq element
.It \e(Im
.Pq imaginary
.It \e(Re
.Pq real
.It \e(Ah
.Pq aleph
.It \e(te
.Pq existential quantifier
.It \e(fa
.Pq universal quantifier
.It \e(AN
.Pq logical AND
.It \e(OR
.Pq logical OR
.It \e(no
.Pq logical NOT
.It \e(st
.Pq such that
.It \e(tf
.Pq therefore
.It \e(~~
.Pq approximate
.It \e(~=
.Pq approximately equals
.It \e(=~
.Pq congruent
.It \e(<=
.Pq less-than-equal
.It \e(>=
.Pq greater-than-equal
.It \e(==
.Pq equal
.It \e(!=
.Pq not equal
.It \e(if
.Pq infinity
.It \e(na
.Pq NaN, an extension
.It \e(+-
.Pq plus-minus
.It \e(**
.Pq asterisk
.El
.\" PARAGRAPH
.Pp
Ligatures:
.Bl -tag -width Ds -offset indent -compact
.It \e(ss
.Pq German eszett
.It \e(AE
.Pq AE
.It \e(ae
.Pq ae
.It \e(OE
.Pq OE
.It \e(oe
.Pq oe
.It \e(ff
.Pq ff ligature
.It \e(fi
.Pq fi ligature
.It \e(fl
.Pq fl ligature
.It \e(Fi
.Pq ffi ligature
.It \e(Fl
.Pq ffl ligature
.El
.\" PARAGRAPH
.Pp
Diacritics and accented letters:
.Bl -tag -width Ds -offset indent -compact
.It \e(ga
.Pq grave accent
.It \e(aa
.Pq accute accent
.It \e(a"
.Pq umlaut accent
.It \e(ad
.Pq dieresis accent
.It \e(a~
.Pq tilde accent
.It \e(a^
.Pq circumflex accent
.It \e(ac
.Pq cedilla accent
.It \e(ad
.Pq dieresis accent
.It \e(ah
.Pq caron accent
.It \e(ao
.Pq ring accent
.It \e(ho
.Pq hook accent
.It \e(ab
.Pq breve accent
.It \e(a-
.Pq macron accent
.It \e(-D
.Pq Eth
.It \e(Sd
.Pq eth
.It \e(TP
.Pq Thorn
.It \e(Tp
.Pq thorn
.It \e('A
.Pq acute A
.It \e('E
.Pq acute E
.It \e('I
.Pq acute I
.It \e('O
.Pq acute O
.It \e('U
.Pq acute U
.It \e('a
.Pq acute a
.It \e('e
.Pq acute e
.It \e('i
.Pq acute i
.It \e('o
.Pq acute o
.It \e('u
.Pq acute u
.It \e(`A
.Pq grave A
.It \e(`E
.Pq grave E
.It \e(`I
.Pq grave I
.It \e(`O
.Pq grave O
.It \e(`U
.Pq grave U
.It \e(`a
.Pq grave a
.It \e(`e
.Pq grave e
.It \e(`i
.Pq grave i
.It \e(`o
.Pq grave o
.It \e(`u
.Pq grave u
.It \e(~A
.Pq tilde A
.It \e(~N
.Pq tilde N
.It \e(~O
.Pq tilde O
.It \e(~a
.Pq tilde a
.It \e(~n
.Pq tilde n
.It \e(~o
.Pq tilde o
.It \e(:A
.Pq dieresis A
.It \e(:E
.Pq dieresis E
.It \e(:I
.Pq dieresis I
.It \e(:O
.Pq dieresis O
.It \e(:U
.Pq dieresis U
.It \e(:a
.Pq dieresis a
.It \e(:e
.Pq dieresis e
.It \e(:i
.Pq dieresis i
.It \e(:o
.Pq dieresis o
.It \e(:u
.Pq dieresis u
.It \e(:y
.Pq dieresis y
.It \e(^A
.Pq circumflex A
.It \e(^E
.Pq circumflex E
.It \e(^I
.Pq circumflex I
.It \e(^O
.Pq circumflex O
.It \e(^U
.Pq circumflex U
.It \e(^a
.Pq circumflex a
.It \e(^e
.Pq circumflex e
.It \e(^i
.Pq circumflex i
.It \e(^o
.Pq circumflex o
.It \e(^u
.Pq circumflex u
.It \e(,C
.Pq cedilla C
.It \e(,c
.Pq cedilla c
.It \e(/L
.Pq stroke L
.It \e(/l
.Pq stroke l
.It \e(/O
.Pq stroke O
.It \e(/o
.Pq stroke o
.It \e(oA
.Pq ring A
.It \e(oa
.Pq ring a
.El
.\" PARAGRAPH
.Pp
Monetary:
.Bl -tag -width Ds -offset indent -compact
.It \e(Cs
.Pq Scandinavian
.It \e(Do
.Pq dollar
.It \e(Po
.Pq pound
.It \e(Ye
.Pq yen
.It \e(Fn
.Pq florin
.It \e(ct
.Pq cent
.It \e(Eu
.Pq Euro character glyph
.It \e(eu
.Pq Euro symbol
.El
.\" PARAGRAPH
.Pp
Greek letters:
.Bl -tag -width Ds -offset indent -compact
.It \e(*A
.Pq Alpha
.It \e(*B
.Pq Beta
.It \e(*C
.Pq Xi
.It \e(*D
.Pq Delta
.It \e(*E
.Pq Epsilon
.It \e(*F
.Pq Phi
.It \e(*G
.Pq Gamma
.It \e(*H
.Pq Theta
.It \e(*I
.Pq Iota
.It \e(*K
.Pq Kappa
.It \e(*L
.Pq Lambda
.It \e(*M
.Pq Mu
.It \e(*N
.Pq Nu
.It \e(*O
.Pq Omicron
.It \e(*P
.Pq Pi
.It \e(*Q
.Pq Psi
.It \e(*R
.Pq Rho
.It \e(*S
.Pq Sigma
.It \e(*T
.Pq Tau
.It \e(*U
.Pq Upsilon
.It \e(*W
.Pq Omega
.It \e(*X
.Pq Chi
.It \e(*Y
.Pq Eta
.It \e(*Z
.Pq Zeta
.It \e(*a
.Pq alpha
.It \e(*b
.Pq beta
.It \e(*c
.Pq xi
.It \e(*d
.Pq delta
.It \e(*e
.Pq epsilon
.It \e(*f
.Pq phi
.It \e(+f
.Pq phi variant
.It \e(*g
.Pq gamma
.It \e(*h
.Pq theta
.It \e(+h
.Pq theta variant
.It \e(*i
.Pq iota
.It \e(*k
.Pq kappa
.It \e(*l
.Pq lambda
.It \e(*m
.Pq mu
.It \e(*n
.Pq nu
.It \e(*o
.Pq omicron
.It \e(*p
.Pq pi
.It \e(+p
.Pq pi variant
.It \e(*q
.Pq psi
.It \e(*r
.Pq rho
.It \e(*s
.Pq sigma
.It \e(*t
.Pq tau
.It \e(*u
.Pq upsilon
.It \e(*w
.Pq omega
.It \e(*x
.Pq chi
.It \e(*y
.Pq eta
.It \e(*z
.Pq zeta
.It \e(ts
.Pq sigma terminal
.El
.\" PARAGRAPH
.Pp
Special symbols:
.Bl -tag -width Ds -offset indent -compact
.It \e0
.Pq white-space
.It \e(de
.Pq degree
.It \e(ps
.Pq paragraph
.It \e(sc
.Pq section
.It \e(dg
.Pq dagger
.It \e(dd
.Pq double dagger
.It \e(ci
.Pq circle
.It \e(ba
.Pq bar
.It \e(bb
.Pq broken bar
.It \e(co
.Pq copyright
.It \e(rg
.Pq registered
.It \e(tm
.Pq trademarked
.It \ee
.Pq escape
.El
.\" SECTION
.Sh PREDEFINED STRINGS
These are not recommended for use, as they differ across
implementations:
.Pp
Mathematical:
.Bl -tag -width Ds -offset indent -compact
.It \e*(Ne
.Pq not equal
.It \e*(Ge
.Pq greater-than-equal
.It \e*(Le
.Pq less-than-equal
.It \e*(Gt
.Pq greater-than
.It \e*(Lt
.Pq greater-than
.It \e*(Pm
.Pq plus-minus
.It \e*(If
.Pq infinity
.It \e*(Pi
.Pq pi
.It \e*(Na
.Pq NaN
.El
.\" PARAGRAPH
.Pp
Special symbols:
.Bl -tag -width Ds -offset indent -compact
.It \e*(Ba
.Pq vertical bar
.It \e*(Am
.Pq ampersand
.It \e*R
.Pq restricted mark
.It \e*(Tm
.Pq trade mark
.El
.\" PARAGRAPH
.Pp
Enclosures:
.Bl -tag -width Ds -offset indent -compact
.It \e*q
.Pq double-quote
.It \e*(Rq
.Pq right-double-quote
.It \e*(Lq
.Pq left-double-quote
.It \e*(lp
.Pq right-parenthesis
.It \e*(rp
.Pq left-parenthesis
.El
.\" SECTION
.Sh COMPATIBILITY
This section documents compatibility of
.Nm
with older or existing versions of
.Xr groff 1 :
.Pp
.Bl -tag -width Ds -offset indent -compact
.It \e(ss
Renders differently in
.Fl T Ns Ar ascii
mode.
.El
.\" SECTION
.Sh SEE ALSO
.Xr mandoc 1
.\" SECTION
.Sh AUTHORS
The
.Nm
utility was written by
.An Kristaps Dzonsons Aq kristaps@kth.se .