1 .\"     $Id: mandoc_char.7,v 1.72 2018/08/08 14:30:48 schwarze Exp $
   2 .\"
   3 .\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org>
   4 .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
   5 .\" Copyright (c) 2011, 2013, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
   6 .\"
   7 .\" Permission to use, copy, modify, and distribute this software for any
   8 .\" purpose with or without fee is hereby granted, provided that the above
   9 .\" copyright notice and this permission notice appear in all copies.
  10 .\"
  11 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  12 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  13 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  14 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  15 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  16 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  17 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  18 .\"
  19 .Dd $Mdocdate: August 8 2018 $
  20 .Dt MANDOC_CHAR 5
  21 .Os
  22 .Sh NAME
  23 .Nm mandoc_char
  24 .Nd mandoc special characters
  25 .Sh DESCRIPTION
  26 This page documents the
  27 .Xr mandoc_roff 5
  28 escape sequences accepted by
  29 .Xr mandoc 1
  30 to represent special characters in
  31 .Xr mdoc 5
  32 and
  33 .Xr man 5
  34 documents.
  35 .Pp
  36 The rendering depends on the
  37 .Xr mandoc 1
  38 output mode; it can be inspected by calling
  39 .Xr man 1
  40 on the
  41 .Nm
  42 manual page with different
  43 .Fl T
  44 arguments.
  45 In ASCII output, the rendering of some characters may be hard
  46 to interpret for the reader.
  47 Many are rendered as descriptive strings like
  48 .Qq <integral> ,
  49 .Qq <degree> ,
  50 or
  51 .Qq <Gamma> ,
  52 which may look ugly, and many are replaced by similar ASCII characters.
  53 In particular, accented characters are usually shown without the accent.
  54 For that reason, try to avoid using any of the special characters
  55 documented here except those discussed in the
  56 .Sx DESCRIPTION ,
  57 unless they are essential for explaining the subject matter at hand,
  58 for example when documenting complicated mathematical functions.
  59 .Pp
  60 In particular, in English manual pages, do not use special-character
  61 escape sequences to represent national language characters in author
  62 names; instead, provide ASCII transcriptions of the names.
  63 .Ss Dashes and Hyphens
  64 In typography there are different types of dashes of various width:
  65 the hyphen (\(hy),
  66 the en-dash (\(en),
  67 the em-dash (\(em),
  68 and the mathematical minus sign (\(mi).
  69 .Pp
  70 Hyphens are used for adjectives;
  71 to separate the two parts of a compound word;
  72 or to separate a word across two successive lines of text.
  73 The hyphen does not need to be escaped:
  74 .Bd -unfilled -offset indent
  75 blue-eyed
  76 lorry-driver
  77 .Ed
  78 .Pp
  79 The en-dash is used to separate the two elements of a range,
  80 or can be used the same way as an em-dash.
  81 It should be written as
  82 .Sq \e(en :
  83 .Bd -unfilled -offset indent
  84 pp. 95\e(en97.
  85 Go away \e(en or else!
  86 .Ed
  87 .Pp
  88 The em-dash can be used to show an interruption
  89 or can be used the same way as colons, semi-colons, or parentheses.
  90 It should be written as
  91 .Sq \e(em :
  92 .Bd -unfilled -offset indent
  93 Three things \e(em apples, oranges, and bananas.
  94 This is not that \e(em rather, this is that.
  95 .Ed
  96 .Pp
  97 In
  98 .Xr mandoc_roff 5
  99 documents, the minus sign is normally written as
 100 .Sq \e- .
 101 In manual pages, some style guides recommend to also use
 102 .Sq \e-
 103 if an ASCII 0x2d
 104 .Dq hyphen-minus
 105 output glyph that can be copied and pasted is desired in output modes
 106 supporting it, for example in
 107 .Fl T Cm utf8
 108 and
 109 .Fl T Cm html .
 110 But currently, no practically relevant manual page formatter actually
 111 requires that subtlety, so in manual pages just write plain
 112 .Sq -
 113 to represent hyphen, minus, and hyphen-minus.
 114 .Pp
 115 If a word on a text input line contains a hyphen, a formatter may decide
 116 to insert an output line break after the hyphen if that helps filling
 117 the current output line, but the whole word would overflow the line.
 118 If it is important that the word is not broken across lines in this
 119 way, a zero-width space
 120 .Pq Sq \e&
 121 can be inserted before or after the hyphen.
 122 While
 123 .Xr mandoc 1
 124 never breaks the output line after hyphens adjacent to a zero-width
 125 space, after any of the other dash- or hyphen-like characters
 126 represented by escape sequences, or after hyphens inside words in
 127 macro arguments, other software may not respect these rules and may
 128 break the line even in such cases.
 129 .Pp
 130 Some
 131 .Xr mandoc_roff 5
 132 implementations contains dictionaries allowing to break the line
 133 at syllable boundaries even inside words that contain no hyphens.
 134 Such automatic hyphenation is not supported by
 135 .Xr mandoc 1 ,
 136 which only breaks the line at whitespace, and inside words only
 137 after existing hyphens.
 138 .Ss Spaces
 139 To separate words in normal text, for indenting and alignment
 140 in literal context, and when none of the following special cases apply,
 141 just use the normal space character
 142 .Pq Sq \  .
 143 .Pp
 144 When filling text, output lines may be broken between words, i.e. at space
 145 characters.
 146 To prevent a line break between two particular words,
 147 use the unpaddable non-breaking space escape sequence
 148 .Pq Sq \e\ \&
 149 instead of the normal space character.
 150 For example, the input string
 151 .Dq number\e\ 1
 152 will be kept together as
 153 .Dq number\ 1
 154 on the same output line.
 155 .Pp
 156 On request and macro lines, the normal space character serves as an
 157 argument delimiter.
 158 To include whitespace into arguments, quoting is usually the best choice;
 159 see the MACRO SYNTAX section in
 160 .Xr mandoc_roff 5 .
 161 In some cases, using the non-breaking space escape sequence
 162 .Pq Sq \e\ \&
 163 may be preferable.
 164 .Pp
 165 To escape macro names and to protect whitespace at the end
 166 of input lines, the zero-width space
 167 .Pq Sq \e&
 168 is often useful.
 169 For example, in
 170 .Xr mdoc 5 ,
 171 a normal space character can be displayed in single quotes in either
 172 of the following ways:
 173 .Pp
 174 .Dl .Sq \(dq \(dq
 175 .Dl .Sq \e \e&
 176 .Ss Quotes
 177 On request and macro lines, the double-quote character
 178 .Pq Sq \(dq
 179 is handled specially to allow quoting.
 180 One way to prevent this special handling is by using the
 181 .Sq \e(dq
 182 escape sequence.
 183 .Pp
 184 Note that on text lines, literal double-quote characters can be used
 185 verbatim.
 186 All other quote-like characters can be used verbatim as well,
 187 even on request and macro lines.
 188 .Ss Accents
 189 In output modes supporting such special output characters, for example
 190 .Fl T Cm pdf ,
 191 and sometimes less consistently in
 192 .Fl T Cm utf8 ,
 193 some
 194 .Xr mandoc_roff 5
 195 formatters convert the following ASCII input characters to the
 196 following Unicode special output characters:
 197 .Bl -column x(ga U+2018 -offset indent
 198 .It \(ga Ta U+2018 Ta left single quotation mark
 199 .It \(aq Ta U+2019 Ta right single quotation mark
 200 .It \(ti Ta U+02DC Ta small tilde
 201 .It \(ha Ta U+02C6 Ta modifier letter circumflex
 202 .El
 203 .Pp
 204 In prose, this automatic substitution is often desirable;
 205 but when these characters have to be displayed as plain ASCII
 206 characters, for example in source code samples, they require
 207 escaping to render as follows:
 208 .Bl -column x(ga U+2018 -offset indent
 209 .It \e(ga Ta U+0060 Ta grave accent
 210 .It \e(aq Ta U+0027 Ta apostrophe
 211 .It \e(ti Ta U+007E Ta tilde
 212 .It \e(ha Ta U+005E Ta circumflex accent
 213 .El
 214 .Ss Periods
 215 The period
 216 .Pq Sq \&.
 217 is handled specially at the beginning of an input line,
 218 where it introduces a
 219 .Xr mandoc_roff 5
 220 request or a macro, and when appearing alone as a macro argument in
 221 .Xr mdoc 5 .
 222 In such situations, prepend a zero-width space
 223 .Pq Sq \e&.
 224 to make it behave like normal text.
 225 .Pp
 226 Do not use the
 227 .Sq \e.
 228 escape sequence.
 229 It does not prevent special handling of the period.
 230 .Ss Backslashes
 231 To include a literal backslash
 232 .Pq Sq \e
 233 into the output, use the
 234 .Pq Sq \ee
 235 escape sequence.
 236 .Pp
 237 Note that doubling it
 238 .Pq Sq \e\e
 239 is not the right way to output a backslash.
 240 Because
 241 .Xr mandoc 1
 242 does not implement full
 243 .Xr mandoc_roff 5
 244 functionality, it may work with
 245 .Xr mandoc 1 ,
 246 but it may have weird effects on complete
 247 .Xr mandoc_roff 5
 248 implementations.
 249 .Sh SPECIAL CHARACTERS
 250 Special characters are encoded as
 251 .Sq \eX
 252 .Pq for a one-character escape ,
 253 .Sq \e(XX
 254 .Pq two-character ,
 255 and
 256 .Sq \e[N]
 257 .Pq N-character .
 258 For details, see the
 259 .Em Special Characters
 260 subsection of the
 261 .Xr mandoc_roff 5
 262 manual.
 263 .Pp
 264 Spacing:
 265 .Bl -column "Input" "Description" -offset indent -compact
 266 .It Em Input Ta Em Description
 267 .It Sq \e\ \& Ta unpaddable non-breaking space
 268 .It \e\(ti   Ta paddable non-breaking space
 269 .It \e0      Ta unpaddable, breaking digit-width space
 270 .It \e|      Ta one-sixth \e(em narrow space, zero width in nroff mode
 271 .It \e^      Ta one-twelfth \e(em half-narrow space, zero width in nroff
 272 .It \e&      Ta zero-width space
 273 .It \e%      Ta zero-width space allowing hyphenation
 274 .El
 275 .Pp
 276 Lines:
 277 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 278 .It Em Input Ta Em Rendered Ta Em Description
 279 .It \e(ba    Ta \(ba        Ta bar
 280 .It \e(br    Ta \(br        Ta box rule
 281 .It \e(ul    Ta \(ul        Ta underscore
 282 .It \e(ru    Ta \(ru        Ta underscore (width 0.5m)
 283 .It \e(rn    Ta \(rn        Ta overline
 284 .It \e(bb    Ta \(bb        Ta broken bar
 285 .It \e(sl    Ta \(sl        Ta forward slash
 286 .It \e(rs    Ta \(rs        Ta backward slash
 287 .El
 288 .Pp
 289 Text markers:
 290 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 291 .It Em Input Ta Em Rendered Ta Em Description
 292 .It \e(ci    Ta \(ci        Ta circle
 293 .It \e(bu    Ta \(bu        Ta bullet
 294 .It \e(dd    Ta \(dd        Ta double dagger
 295 .It \e(dg    Ta \(dg        Ta dagger
 296 .It \e(lz    Ta \(lz        Ta lozenge
 297 .It \e(sq    Ta \(sq        Ta white square
 298 .It \e(ps    Ta \(ps        Ta paragraph
 299 .It \e(sc    Ta \(sc        Ta section
 300 .It \e(lh    Ta \(lh        Ta left hand
 301 .It \e(rh    Ta \(rh        Ta right hand
 302 .It \e(at    Ta \(at        Ta at
 303 .It \e(sh    Ta \(sh        Ta hash (pound)
 304 .It \e(CR    Ta \(CR        Ta carriage return
 305 .It \e(OK    Ta \(OK        Ta check mark
 306 .It \e(CL    Ta \(CL        Ta club suit
 307 .It \e(SP    Ta \(SP        Ta spade suit
 308 .It \e(HE    Ta \(HE        Ta heart suit
 309 .It \e(DI    Ta \(DI        Ta diamond suit
 310 .El
 311 .Pp
 312 Legal symbols:
 313 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 314 .It Em Input Ta Em Rendered Ta Em Description
 315 .It \e(co    Ta \(co        Ta copyright
 316 .It \e(rg    Ta \(rg        Ta registered
 317 .It \e(tm    Ta \(tm        Ta trademarked
 318 .El
 319 .Pp
 320 Punctuation:
 321 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 322 .It Em Input Ta Em Rendered Ta Em Description
 323 .It \e(em    Ta \(em        Ta em-dash
 324 .It \e(en    Ta \(en        Ta en-dash
 325 .It \e(hy    Ta \(hy        Ta hyphen
 326 .It \ee      Ta \e          Ta back-slash
 327 .It \e.      Ta \.          Ta period
 328 .It \e(r!    Ta \(r!        Ta upside-down exclamation
 329 .It \e(r?    Ta \(r?        Ta upside-down question
 330 .El
 331 .Pp
 332 Quotes:
 333 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 334 .It Em Input Ta Em Rendered Ta Em Description
 335 .It \e(Bq    Ta \(Bq        Ta right low double-quote
 336 .It \e(bq    Ta \(bq        Ta right low single-quote
 337 .It \e(lq    Ta \(lq        Ta left double-quote
 338 .It \e(rq    Ta \(rq        Ta right double-quote
 339 .It \e(oq    Ta \(oq        Ta left single-quote
 340 .It \e(cq    Ta \(cq        Ta right single-quote
 341 .It \e(aq    Ta \(aq        Ta apostrophe quote (ASCII character)
 342 .It \e(dq    Ta \(dq        Ta double quote (ASCII character)
 343 .It \e(Fo    Ta \(Fo        Ta left guillemet
 344 .It \e(Fc    Ta \(Fc        Ta right guillemet
 345 .It \e(fo    Ta \(fo        Ta left single guillemet
 346 .It \e(fc    Ta \(fc        Ta right single guillemet
 347 .El
 348 .Pp
 349 Brackets:
 350 .Bl -column "xxbracketrightbtx" Rendered Description -offset indent -compact
 351 .It Em Input Ta Em Rendered Ta Em Description
 352 .It \e(lB    Ta \(lB        Ta left bracket
 353 .It \e(rB    Ta \(rB        Ta right bracket
 354 .It \e(lC    Ta \(lC        Ta left brace
 355 .It \e(rC    Ta \(rC        Ta right brace
 356 .It \e(la    Ta \(la        Ta left angle
 357 .It \e(ra    Ta \(ra        Ta right angle
 358 .It \e(bv    Ta \(bv        Ta brace extension (special font)
 359 .It \e[braceex] Ta \[braceex] Ta brace extension
 360 .It \e[bracketlefttp] Ta \[bracketlefttp] Ta top-left hooked bracket
 361 .It \e[bracketleftbt] Ta \[bracketleftbt] Ta bottom-left hooked bracket
 362 .It \e[bracketleftex] Ta \[bracketleftex] Ta left hooked bracket extension
 363 .It \e[bracketrighttp] Ta \[bracketrighttp] Ta top-right hooked bracket
 364 .It \e[bracketrightbt] Ta \[bracketrightbt] Ta bottom-right hooked bracket
 365 .It \e[bracketrightex] Ta \[bracketrightex] Ta right hooked bracket extension
 366 .It \e(lt    Ta \(lt        Ta top-left hooked brace
 367 .It \e[bracelefttp] Ta \[bracelefttp] Ta top-left hooked brace
 368 .It \e(lk    Ta \(lk        Ta mid-left hooked brace
 369 .It \e[braceleftmid] Ta \[braceleftmid] Ta mid-left hooked brace
 370 .It \e(lb    Ta \(lb        Ta bottom-left hooked brace
 371 .It \e[braceleftbt] Ta \[braceleftbt] Ta bottom-left hooked brace
 372 .It \e[braceleftex] Ta \[braceleftex] Ta left hooked brace extension
 373 .It \e(rt    Ta \(rt        Ta top-left hooked brace
 374 .It \e[bracerighttp] Ta \[bracerighttp] Ta top-right hooked brace
 375 .It \e(rk    Ta \(rk        Ta mid-right hooked brace
 376 .It \e[bracerightmid] Ta \[bracerightmid] Ta mid-right hooked brace
 377 .It \e(rb    Ta \(rb        Ta bottom-right hooked brace
 378 .It \e[bracerightbt] Ta \[bracerightbt] Ta bottom-right hooked brace
 379 .It \e[bracerightex] Ta \[bracerightex] Ta right hooked brace extension
 380 .It \e[parenlefttp] Ta \[parenlefttp] Ta top-left hooked parenthesis
 381 .It \e[parenleftbt] Ta \[parenleftbt] Ta bottom-left hooked parenthesis
 382 .It \e[parenleftex] Ta \[parenleftex] Ta left hooked parenthesis extension
 383 .It \e[parenrighttp] Ta \[parenrighttp] Ta top-right hooked parenthesis
 384 .It \e[parenrightbt] Ta \[parenrightbt] Ta bottom-right hooked parenthesis
 385 .It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension
 386 .El
 387 .Pp
 388 Arrows:
 389 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 390 .It Em Input Ta Em Rendered Ta Em Description
 391 .It \e(<-    Ta \(<-        Ta left arrow
 392 .It \e(->    Ta \(->        Ta right arrow
 393 .It \e(<>    Ta \(<>        Ta left-right arrow
 394 .It \e(da    Ta \(da        Ta down arrow
 395 .It \e(ua    Ta \(ua        Ta up arrow
 396 .It \e(va    Ta \(va        Ta up-down arrow
 397 .It \e(lA    Ta \(lA        Ta left double-arrow
 398 .It \e(rA    Ta \(rA        Ta right double-arrow
 399 .It \e(hA    Ta \(hA        Ta left-right double-arrow
 400 .It \e(uA    Ta \(uA        Ta up double-arrow
 401 .It \e(dA    Ta \(dA        Ta down double-arrow
 402 .It \e(vA    Ta \(vA        Ta up-down double-arrow
 403 .It \e(an    Ta \(an        Ta horizontal arrow extension
 404 .El
 405 .Pp
 406 Logical:
 407 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 408 .It Em Input Ta Em Rendered Ta Em Description
 409 .It \e(AN    Ta \(AN        Ta logical and
 410 .It \e(OR    Ta \(OR        Ta logical or
 411 .It \e[tno]  Ta \[tno]      Ta logical not (text font)
 412 .It \e(no    Ta \(no        Ta logical not (special font)
 413 .It \e(te    Ta \(te        Ta existential quantifier
 414 .It \e(fa    Ta \(fa        Ta universal quantifier
 415 .It \e(st    Ta \(st        Ta such that
 416 .It \e(tf    Ta \(tf        Ta therefore
 417 .It \e(3d    Ta \(3d        Ta therefore
 418 .It \e(or    Ta \(or        Ta bitwise or
 419 .El
 420 .Pp
 421 Mathematical:
 422 .Bl -column "xxcoproductxx" "Rendered" "Description" -offset indent -compact
 423 .It Em Input Ta Em Rendered Ta Em Description
 424 .It \e-      Ta \-          Ta minus (text font)
 425 .It \e(mi    Ta \(mi        Ta minus (special font)
 426 .It +        Ta +           Ta plus (text font)
 427 .It \e(pl    Ta \(pl        Ta plus (special font)
 428 .It \e(-+    Ta \(-+        Ta minus-plus
 429 .It \e[t+-]  Ta \[t+-]      Ta plus-minus (text font)
 430 .It \e(+-    Ta \(+-        Ta plus-minus (special font)
 431 .It \e(pc    Ta \(pc        Ta center-dot
 432 .It \e[tmu]  Ta \[tmu]      Ta multiply (text font)
 433 .It \e(mu    Ta \(mu        Ta multiply (special font)
 434 .It \e(c*    Ta \(c*        Ta circle-multiply
 435 .It \e(c+    Ta \(c+        Ta circle-plus
 436 .It \e[tdi]  Ta \[tdi]      Ta divide (text font)
 437 .It \e(di    Ta \(di        Ta divide (special font)
 438 .It \e(f/    Ta \(f/        Ta fraction
 439 .It \e(**    Ta \(**        Ta asterisk
 440 .It \e(<=    Ta \(<=        Ta less-than-equal
 441 .It \e(>=    Ta \(>=        Ta greater-than-equal
 442 .It \e(<<    Ta \(<<        Ta much less
 443 .It \e(>>    Ta \(>>        Ta much greater
 444 .It \e(eq    Ta \(eq        Ta equal
 445 .It \e(!=    Ta \(!=        Ta not equal
 446 .It \e(==    Ta \(==        Ta equivalent
 447 .It \e(ne    Ta \(ne        Ta not equivalent
 448 .It \e(ap    Ta \(ap        Ta tilde operator
 449 .It \e(|=    Ta \(|=        Ta asymptotically equal
 450 .It \e(=\(ti Ta \(=~        Ta approximately equal
 451 .It \e(\(ti\(ti Ta \(~~        Ta almost equal
 452 .It \e(\(ti= Ta \(~=        Ta almost equal
 453 .It \e(pt    Ta \(pt        Ta proportionate
 454 .It \e(es    Ta \(es        Ta empty set
 455 .It \e(mo    Ta \(mo        Ta element
 456 .It \e(nm    Ta \(nm        Ta not element
 457 .It \e(sb    Ta \(sb        Ta proper subset
 458 .It \e(nb    Ta \(nb        Ta not subset
 459 .It \e(sp    Ta \(sp        Ta proper superset
 460 .It \e(nc    Ta \(nc        Ta not superset
 461 .It \e(ib    Ta \(ib        Ta reflexive subset
 462 .It \e(ip    Ta \(ip        Ta reflexive superset
 463 .It \e(ca    Ta \(ca        Ta intersection
 464 .It \e(cu    Ta \(cu        Ta union
 465 .It \e(/_    Ta \(/_        Ta angle
 466 .It \e(pp    Ta \(pp        Ta perpendicular
 467 .It \e(is    Ta \(is        Ta integral
 468 .It \e[integral] Ta \[integral] Ta integral
 469 .It \e[sum]    Ta \[sum]   Ta summation
 470 .It \e[product] Ta \[product] Ta product
 471 .It \e[coproduct] Ta \[coproduct] Ta coproduct
 472 .It \e(gr    Ta \(gr        Ta gradient
 473 .It \e(sr    Ta \(sr        Ta square root
 474 .It \e[sqrt] Ta \[sqrt]     Ta square root
 475 .It \e(lc    Ta \(lc        Ta left-ceiling
 476 .It \e(rc    Ta \(rc        Ta right-ceiling
 477 .It \e(lf    Ta \(lf        Ta left-floor
 478 .It \e(rf    Ta \(rf        Ta right-floor
 479 .It \e(if    Ta \(if        Ta infinity
 480 .It \e(Ah    Ta \(Ah        Ta aleph
 481 .It \e(Im    Ta \(Im        Ta imaginary
 482 .It \e(Re    Ta \(Re        Ta real
 483 .It \e(wp    Ta \(wp        Ta Weierstrass p
 484 .It \e(pd    Ta \(pd        Ta partial differential
 485 .It \e(-h    Ta \(-h        Ta Planck constant over 2\(*p
 486 .It \e[hbar] Ta \[hbar]     Ta Planck constant over 2\(*p
 487 .It \e(12    Ta \(12        Ta one-half
 488 .It \e(14    Ta \(14        Ta one-fourth
 489 .It \e(34    Ta \(34        Ta three-fourths
 490 .It \e(18    Ta \(18        Ta one-eighth
 491 .It \e(38    Ta \(38        Ta three-eighths
 492 .It \e(58    Ta \(58        Ta five-eighths
 493 .It \e(78    Ta \(78        Ta seven-eighths
 494 .It \e(S1    Ta \(S1        Ta superscript 1
 495 .It \e(S2    Ta \(S2        Ta superscript 2
 496 .It \e(S3    Ta \(S3        Ta superscript 3
 497 .El
 498 .Pp
 499 Ligatures:
 500 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 501 .It Em Input Ta Em Rendered Ta Em Description
 502 .It \e(ff    Ta \(ff        Ta ff ligature
 503 .It \e(fi    Ta \(fi        Ta fi ligature
 504 .It \e(fl    Ta \(fl        Ta fl ligature
 505 .It \e(Fi    Ta \(Fi        Ta ffi ligature
 506 .It \e(Fl    Ta \(Fl        Ta ffl ligature
 507 .It \e(AE    Ta \(AE        Ta AE
 508 .It \e(ae    Ta \(ae        Ta ae
 509 .It \e(OE    Ta \(OE        Ta OE
 510 .It \e(oe    Ta \(oe        Ta oe
 511 .It \e(ss    Ta \(ss        Ta German eszett
 512 .It \e(IJ    Ta \(IJ        Ta IJ ligature
 513 .It \e(ij    Ta \(ij        Ta ij ligature
 514 .El
 515 .Pp
 516 Accents:
 517 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 518 .It Em Input Ta Em Rendered Ta Em Description
 519 .It \e(a"    Ta \(a"        Ta Hungarian umlaut
 520 .It \e(a-    Ta \(a-        Ta macron
 521 .It \e(a.    Ta \(a.        Ta dotted
 522 .It \e(a^    Ta \(a^        Ta circumflex
 523 .It \e(aa    Ta \(aa        Ta acute
 524 .It \e\(aq   Ta \'          Ta acute
 525 .It \e(ga    Ta \(ga        Ta grave
 526 .It \e\(ga   Ta \`          Ta grave
 527 .It \e(ab    Ta \(ab        Ta breve
 528 .It \e(ac    Ta \(ac        Ta cedilla
 529 .It \e(ad    Ta \(ad        Ta dieresis
 530 .It \e(ah    Ta \(ah        Ta caron
 531 .It \e(ao    Ta \(ao        Ta ring
 532 .It \e(a\(ti Ta \(a~        Ta tilde
 533 .It \e(ho    Ta \(ho        Ta ogonek
 534 .It \e(ha    Ta \(ha        Ta hat (ASCII character)
 535 .It \e(ti    Ta \(ti        Ta tilde (ASCII character)
 536 .El
 537 .Pp
 538 Accented letters:
 539 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 540 .It Em Input Ta Em Rendered Ta Em Description
 541 .It \e(\(aqA Ta \('A        Ta acute A
 542 .It \e(\(aqE Ta \('E        Ta acute E
 543 .It \e(\(aqI Ta \('I        Ta acute I
 544 .It \e(\(aqO Ta \('O        Ta acute O
 545 .It \e(\(aqU Ta \('U        Ta acute U
 546 .It \e(\(aqa Ta \('a        Ta acute a
 547 .It \e(\(aqe Ta \('e        Ta acute e
 548 .It \e(\(aqi Ta \('i        Ta acute i
 549 .It \e(\(aqo Ta \('o        Ta acute o
 550 .It \e(\(aqu Ta \('u        Ta acute u
 551 .It \e(\(gaA Ta \(`A        Ta grave A
 552 .It \e(\(gaE Ta \(`E        Ta grave E
 553 .It \e(\(gaI Ta \(`I        Ta grave I
 554 .It \e(\(gaO Ta \(`O        Ta grave O
 555 .It \e(\(gaU Ta \(`U        Ta grave U
 556 .It \e(\(gaa Ta \(`a        Ta grave a
 557 .It \e(\(gae Ta \(`e        Ta grave e
 558 .It \e(\(gai Ta \(`i        Ta grave i
 559 .It \e(\(gao Ta \(`i        Ta grave o
 560 .It \e(\(gau Ta \(`u        Ta grave u
 561 .It \e(\(tiA Ta \(~A        Ta tilde A
 562 .It \e(\(tiN Ta \(~N        Ta tilde N
 563 .It \e(\(tiO Ta \(~O        Ta tilde O
 564 .It \e(\(tia Ta \(~a        Ta tilde a
 565 .It \e(\(tin Ta \(~n        Ta tilde n
 566 .It \e(\(tio Ta \(~o        Ta tilde o
 567 .It \e(:A    Ta \(:A        Ta dieresis A
 568 .It \e(:E    Ta \(:E        Ta dieresis E
 569 .It \e(:I    Ta \(:I        Ta dieresis I
 570 .It \e(:O    Ta \(:O        Ta dieresis O
 571 .It \e(:U    Ta \(:U        Ta dieresis U
 572 .It \e(:a    Ta \(:a        Ta dieresis a
 573 .It \e(:e    Ta \(:e        Ta dieresis e
 574 .It \e(:i    Ta \(:i        Ta dieresis i
 575 .It \e(:o    Ta \(:o        Ta dieresis o
 576 .It \e(:u    Ta \(:u        Ta dieresis u
 577 .It \e(:y    Ta \(:y        Ta dieresis y
 578 .It \e(^A    Ta \(^A        Ta circumflex A
 579 .It \e(^E    Ta \(^E        Ta circumflex E
 580 .It \e(^I    Ta \(^I        Ta circumflex I
 581 .It \e(^O    Ta \(^O        Ta circumflex O
 582 .It \e(^U    Ta \(^U        Ta circumflex U
 583 .It \e(^a    Ta \(^a        Ta circumflex a
 584 .It \e(^e    Ta \(^e        Ta circumflex e
 585 .It \e(^i    Ta \(^i        Ta circumflex i
 586 .It \e(^o    Ta \(^o        Ta circumflex o
 587 .It \e(^u    Ta \(^u        Ta circumflex u
 588 .It \e(,C    Ta \(,C        Ta cedilla C
 589 .It \e(,c    Ta \(,c        Ta cedilla c
 590 .It \e(/L    Ta \(/L        Ta stroke L
 591 .It \e(/l    Ta \(/l        Ta stroke l
 592 .It \e(/O    Ta \(/O        Ta stroke O
 593 .It \e(/o    Ta \(/o        Ta stroke o
 594 .It \e(oA    Ta \(oA        Ta ring A
 595 .It \e(oa    Ta \(oa        Ta ring a
 596 .El
 597 .Pp
 598 Special letters:
 599 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 600 .It Em Input Ta Em Rendered Ta Em Description
 601 .It \e(-D    Ta \(-D        Ta Eth
 602 .It \e(Sd    Ta \(Sd        Ta eth
 603 .It \e(TP    Ta \(TP        Ta Thorn
 604 .It \e(Tp    Ta \(Tp        Ta thorn
 605 .It \e(.i    Ta \(.i        Ta dotless i
 606 .It \e(.j    Ta \(.j        Ta dotless j
 607 .El
 608 .Pp
 609 Currency:
 610 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 611 .It Em Input Ta Em Rendered Ta Em Description
 612 .It \e(Do    Ta \(Do        Ta dollar
 613 .It \e(ct    Ta \(ct        Ta cent
 614 .It \e(Eu    Ta \(Eu        Ta Euro symbol
 615 .It \e(eu    Ta \(eu        Ta Euro symbol
 616 .It \e(Ye    Ta \(Ye        Ta yen
 617 .It \e(Po    Ta \(Po        Ta pound
 618 .It \e(Cs    Ta \(Cs        Ta Scandinavian
 619 .It \e(Fn    Ta \(Fn        Ta florin
 620 .El
 621 .Pp
 622 Units:
 623 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 624 .It Em Input Ta Em Rendered Ta Em Description
 625 .It \e(de    Ta \(de        Ta degree
 626 .It \e(%0    Ta \(%0        Ta per-thousand
 627 .It \e(fm    Ta \(fm        Ta minute
 628 .It \e(sd    Ta \(sd        Ta second
 629 .It \e(mc    Ta \(mc        Ta micro
 630 .It \e(Of    Ta \(Of        Ta Spanish female ordinal
 631 .It \e(Om    Ta \(Om        Ta Spanish masculine ordinal
 632 .El
 633 .Pp
 634 Greek letters:
 635 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
 636 .It Em Input Ta Em Rendered Ta Em Description
 637 .It \e(*A    Ta \(*A        Ta Alpha
 638 .It \e(*B    Ta \(*B        Ta Beta
 639 .It \e(*G    Ta \(*G        Ta Gamma
 640 .It \e(*D    Ta \(*D        Ta Delta
 641 .It \e(*E    Ta \(*E        Ta Epsilon
 642 .It \e(*Z    Ta \(*Z        Ta Zeta
 643 .It \e(*Y    Ta \(*Y        Ta Eta
 644 .It \e(*H    Ta \(*H        Ta Theta
 645 .It \e(*I    Ta \(*I        Ta Iota
 646 .It \e(*K    Ta \(*K        Ta Kappa
 647 .It \e(*L    Ta \(*L        Ta Lambda
 648 .It \e(*M    Ta \(*M        Ta Mu
 649 .It \e(*N    Ta \(*N        Ta Nu
 650 .It \e(*C    Ta \(*C        Ta Xi
 651 .It \e(*O    Ta \(*O        Ta Omicron
 652 .It \e(*P    Ta \(*P        Ta Pi
 653 .It \e(*R    Ta \(*R        Ta Rho
 654 .It \e(*S    Ta \(*S        Ta Sigma
 655 .It \e(*T    Ta \(*T        Ta Tau
 656 .It \e(*U    Ta \(*U        Ta Upsilon
 657 .It \e(*F    Ta \(*F        Ta Phi
 658 .It \e(*X    Ta \(*X        Ta Chi
 659 .It \e(*Q    Ta \(*Q        Ta Psi
 660 .It \e(*W    Ta \(*W        Ta Omega
 661 .It \e(*a    Ta \(*a        Ta alpha
 662 .It \e(*b    Ta \(*b        Ta beta
 663 .It \e(*g    Ta \(*g        Ta gamma
 664 .It \e(*d    Ta \(*d        Ta delta
 665 .It \e(*e    Ta \(*e        Ta epsilon
 666 .It \e(*z    Ta \(*z        Ta zeta
 667 .It \e(*y    Ta \(*y        Ta eta
 668 .It \e(*h    Ta \(*h        Ta theta
 669 .It \e(*i    Ta \(*i        Ta iota
 670 .It \e(*k    Ta \(*k        Ta kappa
 671 .It \e(*l    Ta \(*l        Ta lambda
 672 .It \e(*m    Ta \(*m        Ta mu
 673 .It \e(*n    Ta \(*n        Ta nu
 674 .It \e(*c    Ta \(*c        Ta xi
 675 .It \e(*o    Ta \(*o        Ta omicron
 676 .It \e(*p    Ta \(*p        Ta pi
 677 .It \e(*r    Ta \(*r        Ta rho
 678 .It \e(*s    Ta \(*s        Ta sigma
 679 .It \e(*t    Ta \(*t        Ta tau
 680 .It \e(*u    Ta \(*u        Ta upsilon
 681 .It \e(*f    Ta \(*f        Ta phi
 682 .It \e(*x    Ta \(*x        Ta chi
 683 .It \e(*q    Ta \(*q        Ta psi
 684 .It \e(*w    Ta \(*w        Ta omega
 685 .It \e(+h    Ta \(+h        Ta theta variant
 686 .It \e(+f    Ta \(+f        Ta phi variant
 687 .It \e(+p    Ta \(+p        Ta pi variant
 688 .It \e(+e    Ta \(+e        Ta epsilon variant
 689 .It \e(ts    Ta \(ts        Ta sigma terminal
 690 .El
 691 .Sh PREDEFINED STRINGS
 692 Predefined strings are inherited from the macro packages of historical
 693 troff implementations.
 694 They are
 695 .Em not recommended
 696 for use, as they differ across implementations.
 697 Manuals using these predefined strings are almost certainly not
 698 portable.
 699 .Pp
 700 Their syntax is similar to special characters, using
 701 .Sq \e*X
 702 .Pq for a one-character escape ,
 703 .Sq \e*(XX
 704 .Pq two-character ,
 705 and
 706 .Sq \e*[N]
 707 .Pq N-character .
 708 For details, see the
 709 .Em Predefined Strings
 710 subsection of the
 711 .Xr mandoc_roff 5
 712 manual.
 713 .Bl -column "Input" "Rendered" "Description" -offset indent
 714 .It Em Input Ta Em Rendered Ta Em Description
 715 .It \e*(Ba   Ta \*(Ba       Ta vertical bar
 716 .It \e*(Ne   Ta \*(Ne       Ta not equal
 717 .It \e*(Ge   Ta \*(Ge       Ta greater-than-equal
 718 .It \e*(Le   Ta \*(Le       Ta less-than-equal
 719 .It \e*(Gt   Ta \*(Gt       Ta greater-than
 720 .It \e*(Lt   Ta \*(Lt       Ta less-than
 721 .It \e*(Pm   Ta \*(Pm       Ta plus-minus
 722 .It \e*(If   Ta \*(If       Ta infinity
 723 .It \e*(Pi   Ta \*(Pi       Ta pi
 724 .It \e*(Na   Ta \*(Na       Ta NaN
 725 .It \e*(Am   Ta \*(Am       Ta ampersand
 726 .It \e*R     Ta \*R         Ta restricted mark
 727 .It \e*(Tm   Ta \*(Tm       Ta trade mark
 728 .It \e*q     Ta \*q         Ta double-quote
 729 .It \e*(Rq   Ta \*(Rq       Ta right-double-quote
 730 .It \e*(Lq   Ta \*(Lq       Ta left-double-quote
 731 .It \e*(lp   Ta \*(lp       Ta right-parenthesis
 732 .It \e*(rp   Ta \*(rp       Ta left-parenthesis
 733 .It \e*(lq   Ta \*(lq       Ta left double-quote
 734 .It \e*(rq   Ta \*(rq       Ta right double-quote
 735 .It \e*(ua   Ta \*(ua       Ta up arrow
 736 .It \e*(va   Ta \*(va       Ta up-down arrow
 737 .It \e*(<=   Ta \*(<=       Ta less-than-equal
 738 .It \e*(>=   Ta \*(>=       Ta greater-than-equal
 739 .It \e*(aa   Ta \*(aa       Ta acute
 740 .It \e*(ga   Ta \*(ga       Ta grave
 741 .It \e*(Px   Ta \*(Px       Ta POSIX standard name
 742 .It \e*(Ai   Ta \*(Ai       Ta ANSI standard name
 743 .El
 744 .Sh UNICODE CHARACTERS
 745 The escape sequences
 746 .Pp
 747 .Dl \e[uXXXX] and \eC\(aquXXXX\(aq
 748 .Pp
 749 are interpreted as Unicode codepoints.
 750 The codepoint must be in the range above U+0080 and less than U+10FFFF.
 751 For compatibility, the hexadecimal digits
 752 .Sq A
 753 to
 754 .Sq F
 755 must be given as uppercase characters,
 756 and points must be zero-padded to four characters; if
 757 greater than four characters, no zero padding is allowed.
 758 Unicode surrogates are not allowed.
 759 .Sh NUMBERED CHARACTERS
 760 For backward compatibility with existing manuals,
 761 .Xr mandoc 1
 762 also supports the
 763 .Pp
 764 .Dl \eN\(aq Ns Ar number Ns \(aq
 765 .Pp
 766 escape sequence, inserting the character
 767 .Ar number
 768 from the current character set into the output.
 769 Of course, this is inherently non-portable and is already marked
 770 as deprecated in the Heirloom roff manual.
 771 For example, do not use \eN\(aq34\(aq, use \e(dq, or even the plain
 772 .Sq \(dq
 773 character where possible.
 774 .Sh COMPATIBILITY
 775 This section documents compatibility between mandoc and other
 776 troff implementations, at this time limited to GNU troff
 777 .Pq Qq groff .
 778 .Pp
 779 .Bl -dash -compact
 780 .It
 781 The \eN\(aq\(aq escape sequence is limited to printable characters; in
 782 groff, it accepts arbitrary character numbers.
 783 .It
 784 In
 785 .Fl T Ns Cm ascii ,
 786 the
 787 \e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product],
 788 \e[coproduct], \e(gr, \e(-h, and \e(a. special characters render
 789 differently between mandoc and groff.
 790 .It
 791 In
 792 .Fl T Ns Cm html ,
 793 the \e(\(ti=, \e(nb, and \e(nc special characters render differently
 794 between mandoc and groff.
 795 .It
 796 The
 797 .Fl T Ns Cm ps
 798 and
 799 .Fl T Ns Cm pdf
 800 modes format like
 801 .Fl T Ns Cm ascii
 802 instead of rendering glyphs as in groff.
 803 .It
 804 The \e[radicalex], \e[sqrtex], and \e(ru special characters have been omitted
 805 from mandoc either because they are poorly documented or they have no
 806 known representation.
 807 .El
 808 .Sh SEE ALSO
 809 .Xr mandoc 1 ,
 810 .Xr man 5 ,
 811 .Xr mandoc_roff 5 ,
 812 .Xr mdoc 5
 813 .Sh AUTHORS
 814 The
 815 .Nm
 816 manual page was written by
 817 .An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
 818 .Sh CAVEATS
 819 The predefined string
 820 .Sq \e*(Ba
 821 mimics the behaviour of the
 822 .Sq \&|
 823 character in
 824 .Xr mdoc 5 ;
 825 thus, if you wish to render a vertical bar with no side effects, use
 826 the
 827 .Sq \e(ba
 828 escape.