[BACK]Return to mandoc_char.7 CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Annotation of mandoc/mandoc_char.7, Revision 1.59

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