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

Annotation of mandoc/mandoc_char.7, Revision 1.61

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

CVSweb