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