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