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

Annotation of mandoc/mandoc_char.7, Revision 1.67

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

CVSweb