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