www.LinuxHowtos.org
MANDOC_CHAR
Section: Environments, Tables, and Troff Macros (7)Index Return to Main Contents
BSD mandoc
NAME
mandoc_char - mandoc special charactersDESCRIPTION
This page documents the roff(7) escape sequences accepted by mandoc(1) to represent special characters in mdoc(7) and man(7) documents.The rendering depends on the mandoc(1) output mode; it can be inspected by calling man(1) on the manual page with different -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.
In particular, in English manual pages, do not use specia-character escape sequences to represent national language characters in author names; instead, provide ASCII transcriptions of the names.
Dashes and Hyphens
In typography there are different types of dashes of various width: the hyphen (-), the e-dash (-), the e-dash (-), and the mathematical minus sign (-).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:
blu-eyed lorr-driver
The e-dash is used to separate the two elements of a range, or can be used the same way as an e-dash. It should be written as `(en'
pp. 95(en97. Go away (en or else!
The e-dash can be used to show an interruption or can be used the same way as colons, sem-colons, or parentheses. It should be written as `(em'
Three things (em apples, oranges, and bananas. This is not that (em rather, this is that.
In roff(7) documents, the minus sign is normally written as `-' In manual pages, some style guides recommend to also use `-' if an ASCII 0x2d ``hyphe-minus'' output glyph that can be copied and pasted is desired in output modes supporting it, for example in -T utf8 and -T html But currently, no practically relevant manual page formatter requires that subtlety, so in manual pages, it is sufficient to write plain `-' to represent hyphen, minus, and hyphe-minus.
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 zer-width space (`&' ) can be inserted before or after the hyphen. While mandoc(1) never breaks the output line after hyphens adjacent to a zer-width space, after any of the other das- or hyphe-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.
Some 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 mandoc(1), which only breaks the line at whitespace, and inside words only after existing hyphens.
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 (` ' )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 no-breaking space escape sequence (` ' ) instead of the normal space character. For example, the input string ``number 1'' will be kept together as ``number 1'' on the same output line.
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 roff(7). In some cases, using the no-breaking space escape sequence (` ' ) may be preferable.
To escape macro names and to protect whitespace at the end of input lines, the zer-width space (`&' ) is often useful. For example, in mdoc(7), a normal space character can be displayed in single quotes in either of the following ways:
.`dq dq'
.` &'
Quotes
On request and macro lines, the doubl-quote character (`dq' ) is handled specially to allow quoting. One way to prevent this special handling is by using the `(dq' escape sequence.Note that on text lines, literal doubl-quote characters can be used verbatim. All other quot-like characters can be used verbatim as well, even on request and macro lines.
Accents
In output modes supporting such special output characters, for example -T pdf and sometimes less consistently in -T utf8 some roff(7) formatters convert the following ASCII input characters to the following Unicode special output characters:- ` Ta U+2018 Ta left single quotation mark
- aq Ta U+2019 Ta right single quotation mark
- ti Ta U+02DC Ta small tilde
- ha Ta U+02C6 Ta modifier letter circumflex
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:
- (ga Ta U+0060 Ta grave accent
- (aq Ta U+0027 Ta apostrophe
- (ti Ta U+007E Ta tilde
- (ha Ta U+005E Ta circumflex accent
Periods
The period (`.' ) is handled specially at the beginning of an input line, where it introduces a roff(7) request or a macro, and when appearing alone as a macro argument in mdoc(7). In such situations, prepend a zer-width space (`&.' ) to make it behave like normal text.Do not use the `.' escape sequence. It does not prevent special handling of the period.
Backslashes
To include a literal backslash (`' ) into the output, use the (`e' ) escape sequence.Note that doubling it (`' ) is not the right way to output a backslash. Because mandoc(1) does not implement full roff(7) functionality, it may work with mandoc(1), but it may have weird effects on complete roff(7) implementations.
SPECIAL CHARACTERS
Special characters are encoded as `X' (for a on-character escape) `(XX' (tw-character) and `[N]' (-character) For details, see the Special Characters subsection of the roff(7) manual.Spaces, no-breaking unless stated otherwise:
- Input Ta Description
- ` Ta unpaddable space '
- ti Ta paddable space
- 0 Ta digi-width space
- | Ta on-sixth (em narrow space, zero width in nroff mode
- ^ Ta on-twelfth (em hal-narrow space, zero width in nroff
- & Ta zer-width space
- ) Ta zer-width space transparent to en-o-sentence detection
- % Ta zer-width space allowing hyphenation
- : Ta zer-width space allowing line break
Lines:
- Input Ta Rendered Ta Description
- (ba Ta ba Ta bar
- (br Ta | Ta box rule
- (ul Ta _ Ta underscore
- (ru Ta _ Ta underscore (width 0.5m)
- (rn Ta ¯ Ta overline
- (bb Ta bb Ta broken bar
- (sl Ta / Ta forward slash
- (rs Ta rs Ta backward slash
Text markers:
- Input Ta Rendered Ta Description
- (ci Ta o Ta circle
- (bu Ta * Ta bullet
- (dd Ta dd Ta double dagger
- (dg Ta + Ta dagger
- (lz Ta lz Ta lozenge
- (sq Ta [] Ta white square
- (ps Ta ps Ta paragraph
- (sc Ta § Ta section
- (lh Ta lh Ta left hand
- (rh Ta rh Ta right hand
- (at Ta at Ta at
- (sh Ta sh Ta hash (pound)
- (CR Ta CR Ta carriage return
- (OK Ta OK Ta check mark
- (CL Ta CL Ta club suit
- (SP Ta SP Ta spade suit
- (HE Ta HE Ta heart suit
- (DI Ta DI Ta diamond suit
Legal symbols:
- Input Ta Rendered Ta Description
- (co Ta © Ta copyright
- (rg Ta ® Ta registered
- (tm Ta tm Ta trademarked
Punctuation:
- Input Ta Rendered Ta Description
- (em Ta - Ta e-dash
- (en Ta - Ta e-dash
- (hy Ta - Ta hyphen
- e Ta Ta bac-slash
- . Ta . Ta period
- (r! Ta r! Ta upsid-down exclamation
- (r? Ta r? Ta upsid-down question
Quotes:
- Input Ta Rendered Ta Description
- (Bq Ta Bq Ta right low doubl-quote
- (bq Ta bq Ta right low singl-quote
- (lq Ta lq Ta left doubl-quote
- (rq Ta rq Ta right doubl-quote
- (oq Ta oq Ta left singl-quote
- (cq Ta cq Ta right singl-quote
- (aq Ta aq Ta apostrophe quote (ASCII character)
- (dq Ta dq Ta double quote (ASCII character)
- (Fo Ta Fo Ta left guillemet
- (Fc Ta Fc Ta right guillemet
- (fo Ta fo Ta left single guillemet
- (fc Ta fc Ta right single guillemet
Brackets:
- Input Ta Rendered Ta Description
- (lB Ta lB Ta left bracket
- (rB Ta rB Ta right bracket
- (lC Ta lC Ta left brace
- (rC Ta rC Ta right brace
- (la Ta la Ta left angle
- (ra Ta ra Ta right angle
- (bv Ta | Ta brace extension (special font)
- [braceex] Ta [braceex] Ta brace extension
- [bracketlefttp] Ta [bracketlefttp] Ta to-left hooked bracket
- [bracketleftbt] Ta [bracketleftbt] Ta botto-left hooked bracket
- [bracketleftex] Ta [bracketleftex] Ta left hooked bracket extension
- [bracketrighttp] Ta [bracketrighttp] Ta to-right hooked bracket
- [bracketrightbt] Ta [bracketrightbt] Ta botto-right hooked bracket
- [bracketrightex] Ta [bracketrightex] Ta right hooked bracket extension
- (lt Ta lt Ta to-left hooked brace
- [bracelefttp] Ta [bracelefttp] Ta to-left hooked brace
- (lk Ta { Ta mi-left hooked brace
- [braceleftmid] Ta [braceleftmid] Ta mi-left hooked brace
- (lb Ta lb Ta botto-left hooked brace
- [braceleftbt] Ta [braceleftbt] Ta botto-left hooked brace
- [braceleftex] Ta [braceleftex] Ta left hooked brace extension
- (rt Ta rt Ta to-left hooked brace
- [bracerighttp] Ta [bracerighttp] Ta to-right hooked brace
- (rk Ta } Ta mi-right hooked brace
- [bracerightmid] Ta [bracerightmid] Ta mi-right hooked brace
- (rb Ta rb Ta botto-right hooked brace
- [bracerightbt] Ta [bracerightbt] Ta botto-right hooked brace
- [bracerightex] Ta [bracerightex] Ta right hooked brace extension
- [parenlefttp] Ta [parenlefttp] Ta to-left hooked parenthesis
- [parenleftbt] Ta [parenleftbt] Ta botto-left hooked parenthesis
- [parenleftex] Ta [parenleftex] Ta left hooked parenthesis extension
- [parenrighttp] Ta [parenrighttp] Ta to-right hooked parenthesis
- [parenrightbt] Ta [parenrightbt] Ta botto-right hooked parenthesis
- [parenrightex] Ta [parenrightex] Ta right hooked parenthesis extension
Arrows:
- Input Ta Rendered Ta Description
- (<- Ta - Ta left arrow
- -> Ta -> Ta right arrow
- (<> Ta <> Ta lef-right arrow
- (da Ta da Ta down arrow
- (ua Ta ua Ta up arrow
- (va Ta va Ta u-down arrow
- (lA Ta lA Ta left doubl-arrow
- (rA Ta rA Ta right doubl-arrow
- (hA Ta hA Ta lef-right doubl-arrow
- (uA Ta uA Ta up doubl-arrow
- (dA Ta dA Ta down doubl-arrow
- (vA Ta vA Ta u-down doubl-arrow
- (an Ta an Ta horizontal arrow extension
Logical:
- Input Ta Rendered Ta Description
- (AN Ta AN Ta logical and
- (OR Ta OR Ta logical or
- [tno] Ta [tno] Ta logical not (text font)
- (no Ta ¬ Ta logical not (special font)
- (te Ta te Ta existential quantifier
- (fa Ta fa Ta universal quantifier
- (st Ta st Ta such that
- (tf Ta tf Ta therefore
- (3d Ta 3d Ta therefore
- (or Ta | Ta bitwise or
Mathematical:
- Input Ta Rendered Ta Description
- - Ta - Ta minus (text font)
- (mi Ta - Ta minus (special font)
- + Ta + Ta plus (text font)
- (pl Ta + Ta plus (special font)
- -+ Ta -+ Ta minu-plus
- [t-] Ta [t-] Ta plu-minus (text font)
- (- Ta ± Ta plu-minus (special font)
- (pc Ta pc Ta cente-dot
- [tmu] Ta [tmu] Ta multiply (text font)
- (mu Ta × Ta multiply (special font)
- (c* Ta c* Ta circl-multiply
- (c+ Ta c+ Ta circl-plus
- [tdi] Ta [tdi] Ta divide (text font)
- (di Ta ÷ Ta divide (special font)
- (f/ Ta f/ Ta fraction
- (** Ta * Ta asterisk
- (<= Ta < Ta les-tha-equal
- (>= Ta > Ta greate-tha-equal
- (<< Ta << Ta much less
- (>> Ta >> Ta much greater
- (eq Ta = Ta equal
- (!= Ta != Ta not equal
- (== Ta == Ta equivalent
- (ne Ta ne Ta not equivalent
- (ap Ta ~ Ta tilde operator
- (|= Ta |= Ta asymptotically equal
- (=ti Ta =~ Ta approximately equal
- (titi Ta ~~ Ta almost equal
- (ti= Ta ~= Ta almost equal
- (pt Ta pt Ta proportionate
- (es Ta Ø Ta empty set
- (mo Ta mo Ta element
- (nm Ta nm Ta not element
- (sb Ta sb Ta proper subset
- (nb Ta nb Ta not subset
- (sp Ta sp Ta proper superset
- (nc Ta nc Ta not superset
- (ib Ta ib Ta reflexive subset
- (ip Ta ip Ta reflexive superset
- (ca Ta ca Ta intersection
- (cu Ta cu Ta union
- (/_ Ta /_ Ta angle
- (pp Ta pp Ta perpendicular
- (is Ta Integral Ta integral
- [integral] Ta [integral] Ta integral
- [sum] Ta [sum] Ta summation
- [product] Ta [product] Ta product
- [coproduct] Ta [coproduct] Ta coproduct
- (gr Ta gr Ta gradient
- (sr Ta sr Ta square root
- [sqrt] Ta [sqrt] Ta square root
- (lc Ta |¯ Ta lef-ceiling
- (rc Ta ¯| Ta righ-ceiling
- (lf Ta |_ Ta lef-floor
- (rf Ta _| Ta righ-floor
- (if Ta Infinity Ta infinity
- (Ah Ta Ah Ta aleph
- (Im Ta Im Ta imaginary
- (
Ligatures:
- Input Ta Rendered Ta Description
- (ff Ta ff Ta ff ligature
- (fi Ta fi Ta fi ligature
- (fl Ta fl Ta fl ligature
- (Fi Ta ffi Ta ffi ligature
- (-Ta ffl Ta ffl ligature
- (AE Ta AE Ta AE
- (ae Ta ae Ta ae
- (OE Ta OE Ta OE
- (oe Ta oe Ta oe
- (ss Ta ss Ta German eszett
- (IJ Ta IJ Ta IJ ligature
- (ij Ta ij Ta ij ligature
Accents:
- Input Ta Rendered Ta Description
- (a" Ta a Ta Hungarian umlaut
- (- Ta - Ta macron
- (a. Ta a. Ta dotted
- (a^ Ta a^ Ta circumflex
- (aa Ta ´ Ta acute
- aq Ta ' Ta acute
- (ga Ta ` Ta grave
- ` Ta ` Ta grave
- (ab Ta ab Ta breve
- (ac Ta ac Ta cedilla
- (ad Ta ad Ta dieresis
- (ah Ta ah Ta caron
- (ao Ta ao Ta ring
- (ati Ta a~ Ta tilde
- (ho Ta ho Ta ogonek
- (ha Ta ha Ta hat (ASCII character)
- (ti Ta ti Ta tilde (ASCII character)
Accented letters:
- Input Ta Rendered Ta Description
- (aqA Ta 'A Ta acute A
- (aqE Ta 'E Ta acute E
- (aqI Ta 'I Ta acute I
- (aqO Ta 'O Ta acute O
- (aqU Ta 'U Ta acute U
- (aqY Ta 'Y Ta acute Y
- (aqa Ta 'a Ta acute a
- (aqe Ta 'e Ta acute e
- (aqi Ta 'i Ta acute i
- (aqo Ta 'o Ta acute o
- (aqu Ta 'u Ta acute u
- (aqy Ta 'y Ta acute y
- (`A Ta `A Ta grave A
- (`E Ta `E Ta grave E
- (`I Ta `I Ta grave I
- (`O Ta `O Ta grave O
- (`U Ta `U Ta grave U
- (`a Ta `a Ta grave a
- (`e Ta `e Ta grave e
- (`i Ta `i Ta grave i
- (`o Ta `i Ta grave o
- (`u Ta `u Ta grave u
- (tiA Ta ~A Ta tilde A
- (tiN Ta ~N Ta tilde N
- (tiO Ta ~O Ta tilde O
- (tia Ta ~a Ta tilde a
- (tin Ta ~n Ta tilde n
- (tio Ta ~o Ta tilde o
- (:A Ta :A Ta dieresis A
- (:E Ta :E Ta dieresis E
- (:I Ta :I Ta dieresis I
- (:O Ta :O Ta dieresis O
- (:U Ta :U Ta dieresis U
- (:a Ta :a Ta dieresis a
- (:e Ta :e Ta dieresis e
- (:i Ta :i Ta dieresis i
- (:o Ta :o Ta dieresis o
- (:u Ta :u Ta dieresis u
- (:y Ta :y Ta dieresis y
- (^A Ta ^A Ta circumflex A
- (^E Ta ^E Ta circumflex E
- (^I Ta ^I Ta circumflex I
- (^O Ta ^O Ta circumflex O
- (^U Ta ^U Ta circumflex U
- (^a Ta ^a Ta circumflex a
- (^e Ta ^e Ta circumflex e
- (^i Ta ^i Ta circumflex i
- (^o Ta ^o Ta circumflex o
- (^u Ta ^u Ta circumflex u
- (,C Ta ,C Ta cedilla C
- (,c Ta ,c Ta cedilla c
- (/L Ta /L Ta stroke L
- (/l Ta /l Ta stroke l
- (/O Ta /O Ta stroke O
- (/o Ta /o Ta stroke o
- (oA Ta oA Ta ring A
- (oa Ta oa Ta ring a
Special letters:
- Input Ta Rendered Ta Description
- -D Ta -D Ta Eth
- (Sd Ta Sd Ta eth
- (TP Ta TP Ta Thorn
- (Tp Ta Tp Ta thorn
- (.i Ta .i Ta dotless i
- (.j Ta .j Ta dotless j
Currency:
- Input Ta Rendered Ta Description
- (Do Ta Do Ta dollar
- (ct Ta ¢ Ta cent
- (Eu Ta Eu Ta Euro symbol
- (eu Ta eu Ta Euro symbol
- (Ye Ta Ye Ta yen
- (Po Ta Po Ta pound
- (Cs Ta Cs Ta Scandinavian
- (Fn Ta Fn Ta florin
Units:
- Input Ta Rendered Ta Description
- (de Ta ° Ta degree
- (%0 Ta %0 Ta pe-thousand
- (fm Ta ´ Ta minute
- (sd Ta sd Ta second
- (mc Ta mc Ta micro
- (Of Ta Of Ta Spanish female ordinal
- (Om Ta Om Ta Spanish masculine ordinal
Greek letters:
- Input Ta Rendered Ta Description
- (*A Ta A Ta Alpha
- (*B Ta B Ta Beta
- (*G Ta Gamma Ta Gamma
- (*D Ta Delta Ta Delta
- (*E Ta E Ta Epsilon
- (*Z Ta Z Ta Zeta
- (*Y Ta H Ta Eta
- (*H Ta Theta Ta Theta
- (*I Ta I Ta Iota
- (*K Ta K Ta Kappa
- (*L Ta Lambda Ta Lambda
- (*M Ta M Ta Mu
- (*N Ta N Ta Nu
- (*C Ta Xi Ta Xi
- (*O Ta O Ta Omicron
- (*N Ta N Ta Nu
-
- (*P Ta Pi Ta Pi
- (*R Ta P Ta Rho
-
- (*S Ta Sigma Ta Sigma
- (*T Ta T Ta Tau
- (*U Ta Y Ta Upsilon
- (*F Ta Phi Ta Phi
- (*X Ta X Ta Chi
- (*Q Ta Psi Ta Psi
- (*W Ta Omega Ta Omega
- (*a Ta alpha Ta alpha
- (*b Ta beta Ta beta
- (*g Ta gamma Ta gamma
- (*d Ta delta Ta delta
- (*e Ta epsilon Ta epsilon
- (*z Ta zeta Ta zeta
- (*y Ta eta Ta eta
- (*h Ta theta Ta theta
- (*i Ta iota Ta iota
- (*k Ta kappa Ta kappa
- (*l Ta lambda Ta lambda
- (*m Ta µ Ta mu
- (*n Ta nu Ta nu
- (*c Ta xi Ta xi
- (*o Ta o Ta omicron
- (*p Ta pi Ta pi
- (*r Ta rho Ta rho
- (*s Ta sigma Ta sigma
- (*t Ta tau Ta tau
- (*u Ta upsilon Ta upsilon
- (*f Ta phi Ta phi
- (*x Ta chi Ta chi
- (*q Ta psi Ta psi
- (*w Ta omega Ta omega
- (+h Ta +h Ta theta variant
- (+f Ta +f Ta phi variant
- (+p Ta +p Ta pi variant
- (+e Ta +e Ta epsilon variant
- (ts Ta s Ta sigma terminal
PREDEFINED STRINGS
Predefined strings are inherited from the macro packages of historical troff implementations. They are not recommended for use, as they differ across implementations. Manuals using these predefined strings are almost certainly not portable.Their syntax is similar to special characters, using `*X' (for a on-character escape) `*(XX' (tw-character) and `*[N]' (-character)
- Input Ta Rendered Ta Description
- *(Ba Ta Ta vertical bar
- *(Ne Ta Ta not equal
- *(Ge Ta Ta greate-tha-equal
- *(Le Ta Ta les-tha-equal
- *(Gt Ta Ta greate-than
- *(Lt Ta Ta les-than
- *(Pm Ta Ta plu-minus
- *(If Ta Ta infinity
- *(Pi Ta Ta pi
- *(Na Ta Ta NaN
- *(Am Ta Ta ampersand
- *R Ta ® Ta restricted mark
- *(Tm Ta Ta trade mark
- *q Ta Ta doubl-quote
- *(Rq Ta Ta righ-doubl-quote
- *(Lq Ta Ta lef-doubl-quote
- *(lp Ta Ta righ-parenthesis
- *(rp Ta Ta lef-parenthesis
- *(lq Ta `` Ta left doubl-quote
- *(rq Ta '' Ta right doubl-quote
- *(ua Ta Ta up arrow
- *(va Ta Ta u-down arrow
- *(<= Ta Ta les-tha-equal
- *(>= Ta Ta greate-tha-equal
- *(aa Ta Ta acute
- *(ga Ta Ta grave
- *(Px Ta Ta POSIX standard name
- *(Ai Ta Ta ANSI standard name
UNICODE CHARACTERS
The escape sequences
[uXXXX] and CaquXXXXaq
are interpreted as Unicode codepoints. The codepoint must be in the range above U+0080 and less than U+10FFFF. For compatibility, the hexadecimal digits `A' to `F' must be given as uppercase characters, and points must be zer-padded to four characters; if greater than four characters, no zero padding is allowed. Unicode surrogates are not allowed.
NUMBERED CHARACTERS
For backward compatibility with existing manuals, mandoc(1) also supports the
Naq number aq and [ char number
escape sequences, inserting the character number from the current character set into the output. Of course, this is inherently no-portable and is already marked as deprecated in the Heirloom roff manual; on top of that, the second form is a GNU extension. For example, do not use Naq34aq or [char34], use (dq, or even the plain `dq' character where possible.
COMPATIBILITY
This section documents compatibility between mandoc and other troff implementations, at this time limited to GNU troff (Qq groff )
- The Naqaq escape sequence is limited to printable characters; in
- groff, it accepts arbitrary character numbers.
- In
- -T ascii the (ss, (nm, (nb, (nc, (ib, (ip, (pp, [sum], [product], [coproduct], (gr, -h, and (a. special characters render differently between mandoc and groff.
- In
- -T html the (ti=, (nb, and (nc special characters render differently between mandoc and groff.
- The
- -T ps and -T pdf modes format like -T ascii instead of rendering glyphs as in groff.
- The [radicalex], [sqrtex], and (ru special characters have been omitted
- from mandoc either because they are poorly documented or they have no known representation.
SEE ALSO
mandoc(1), man(7), mdoc(7), roff(7)AUTHORS
The manual page was written by An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .CAVEATS
The predefined string `*(Ba mimics the behaviour of the ' `|' character in mdoc(7); thus, if you wish to render a vertical bar with no side effects, use the `(ba' escape.