Merge branch 'vendor/MDOCML'
[dragonfly.git] / contrib / mdocml / mandoc_char.7
1 .\"     $Id: mandoc_char.7,v 1.75 2018/12/15 19:30:26 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,2018 Ingo Schwarze <schwarze@openbsd.org>
6 .\"
7 .\" Permission to use, copy, modify, and distribute this software for any
8 .\" purpose with or without fee is hereby granted, provided that the above
9 .\" copyright notice and this permission notice appear in all copies.
10 .\"
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.
18 .\"
19 .Dd $Mdocdate: December 15 2018 $
20 .Dt MANDOC_CHAR 7
21 .Os
22 .Sh NAME
23 .Nm mandoc_char
24 .Nd mandoc special characters
25 .Sh DESCRIPTION
26 This page documents the
27 .Xr roff 7
28 escape sequences accepted by
29 .Xr mandoc 1
30 to represent special characters in
31 .Xr mdoc 7
32 and
33 .Xr man 7
34 documents.
35 .Pp
36 The rendering depends on the
37 .Xr mandoc 1
38 output mode; it can be inspected by calling
39 .Xr man 1
40 on the
41 .Nm
42 manual page with different
43 .Fl T
44 arguments.
45 In ASCII output, the rendering of some characters may be hard
46 to interpret for the reader.
47 Many are rendered as descriptive strings like
48 .Qq <integral> ,
49 .Qq <degree> ,
50 or
51 .Qq <Gamma> ,
52 which may look ugly, and many are replaced by similar ASCII characters.
53 In particular, accented characters are usually shown without the accent.
54 For that reason, try to avoid using any of the special characters
55 documented here except those discussed in the
56 .Sx DESCRIPTION ,
57 unless they are essential for explaining the subject matter at hand,
58 for example when documenting complicated mathematical functions.
59 .Pp
60 In particular, in English manual pages, do not use special-character
61 escape sequences to represent national language characters in author
62 names; instead, provide ASCII transcriptions of the names.
63 .Ss Dashes and Hyphens
64 In typography there are different types of dashes of various width:
65 the hyphen (\(hy),
66 the en-dash (\(en),
67 the em-dash (\(em),
68 and the mathematical minus sign (\(mi).
69 .Pp
70 Hyphens are used for adjectives;
71 to separate the two parts of a compound word;
72 or to separate a word across two successive lines of text.
73 The hyphen does not need to be escaped:
74 .Bd -unfilled -offset indent
75 blue-eyed
76 lorry-driver
77 .Ed
78 .Pp
79 The en-dash is used to separate the two elements of a range,
80 or can be used the same way as an em-dash.
81 It should be written as
82 .Sq \e(en :
83 .Bd -unfilled -offset indent
84 pp. 95\e(en97.
85 Go away \e(en or else!
86 .Ed
87 .Pp
88 The em-dash can be used to show an interruption
89 or can be used the same way as colons, semi-colons, or parentheses.
90 It should be written as
91 .Sq \e(em :
92 .Bd -unfilled -offset indent
93 Three things \e(em apples, oranges, and bananas.
94 This is not that \e(em rather, this is that.
95 .Ed
96 .Pp
97 In
98 .Xr roff 7
99 documents, the minus sign is normally written as
100 .Sq \e- .
101 In manual pages, some style guides recommend to also use
102 .Sq \e-
103 if an ASCII 0x2d
104 .Dq hyphen-minus
105 output glyph that can be copied and pasted is desired in output modes
106 supporting it, for example in
107 .Fl T Cm utf8
108 and
109 .Fl T Cm html .
110 But currently, no practically relevant manual page formatter actually
111 requires that subtlety, so in manual pages just write plain
112 .Sq -
113 to represent hyphen, minus, and hyphen-minus.
114 .Pp
115 If a word on a text input line contains a hyphen, a formatter may decide
116 to insert an output line break after the hyphen if that helps filling
117 the current output line, but the whole word would overflow the line.
118 If it is important that the word is not broken across lines in this
119 way, a zero-width space
120 .Pq Sq \e&
121 can be inserted before or after the hyphen.
122 While
123 .Xr mandoc 1
124 never breaks the output line after hyphens adjacent to a zero-width
125 space, after any of the other dash- or hyphen-like characters
126 represented by escape sequences, or after hyphens inside words in
127 macro arguments, other software may not respect these rules and may
128 break the line even in such cases.
129 .Pp
130 Some
131 .Xr roff 7
132 implementations contains dictionaries allowing to break the line
133 at syllable boundaries even inside words that contain no hyphens.
134 Such automatic hyphenation is not supported by
135 .Xr mandoc 1 ,
136 which only breaks the line at whitespace, and inside words only
137 after existing hyphens.
138 .Ss Spaces
139 To separate words in normal text, for indenting and alignment
140 in literal context, and when none of the following special cases apply,
141 just use the normal space character
142 .Pq Sq \  .
143 .Pp
144 When filling text, output lines may be broken between words, i.e. at space
145 characters.
146 To prevent a line break between two particular words,
147 use the unpaddable non-breaking space escape sequence
148 .Pq Sq \e\ \&
149 instead of the normal space character.
150 For example, the input string
151 .Dq number\e\ 1
152 will be kept together as
153 .Dq number\ 1
154 on the same output line.
155 .Pp
156 On request and macro lines, the normal space character serves as an
157 argument delimiter.
158 To include whitespace into arguments, quoting is usually the best choice;
159 see the MACRO SYNTAX section in
160 .Xr roff 7 .
161 In some cases, using the non-breaking space escape sequence
162 .Pq Sq \e\ \&
163 may be preferable.
164 .Pp
165 To escape macro names and to protect whitespace at the end
166 of input lines, the zero-width space
167 .Pq Sq \e&
168 is often useful.
169 For example, in
170 .Xr mdoc 7 ,
171 a normal space character can be displayed in single quotes in either
172 of the following ways:
173 .Pp
174 .Dl .Sq \(dq \(dq
175 .Dl .Sq \e \e&
176 .Ss Quotes
177 On request and macro lines, the double-quote character
178 .Pq Sq \(dq
179 is handled specially to allow quoting.
180 One way to prevent this special handling is by using the
181 .Sq \e(dq
182 escape sequence.
183 .Pp
184 Note that on text lines, literal double-quote characters can be used
185 verbatim.
186 All other quote-like characters can be used verbatim as well,
187 even on request and macro lines.
188 .Ss Accents
189 In output modes supporting such special output characters, for example
190 .Fl T Cm pdf ,
191 and sometimes less consistently in
192 .Fl T Cm utf8 ,
193 some
194 .Xr roff 7
195 formatters convert the following ASCII input characters to the
196 following Unicode special output characters:
197 .Bl -column x(ga U+2018 -offset indent
198 .It \(ga Ta U+2018 Ta left single quotation mark
199 .It \(aq Ta U+2019 Ta right single quotation mark
200 .It \(ti Ta U+02DC Ta small tilde
201 .It \(ha Ta U+02C6 Ta modifier letter circumflex
202 .El
203 .Pp
204 In prose, this automatic substitution is often desirable;
205 but when these characters have to be displayed as plain ASCII
206 characters, for example in source code samples, they require
207 escaping to render as follows:
208 .Bl -column x(ga U+2018 -offset indent
209 .It \e(ga Ta U+0060 Ta grave accent
210 .It \e(aq Ta U+0027 Ta apostrophe
211 .It \e(ti Ta U+007E Ta tilde
212 .It \e(ha Ta U+005E Ta circumflex accent
213 .El
214 .Ss Periods
215 The period
216 .Pq Sq \&.
217 is handled specially at the beginning of an input line,
218 where it introduces a
219 .Xr roff 7
220 request or a macro, and when appearing alone as a macro argument in
221 .Xr mdoc 7 .
222 In such situations, prepend a zero-width space
223 .Pq Sq \e&.
224 to make it behave like normal text.
225 .Pp
226 Do not use the
227 .Sq \e.
228 escape sequence.
229 It does not prevent special handling of the period.
230 .Ss Backslashes
231 To include a literal backslash
232 .Pq Sq \e
233 into the output, use the
234 .Pq Sq \ee
235 escape sequence.
236 .Pp
237 Note that doubling it
238 .Pq Sq \e\e
239 is not the right way to output a backslash.
240 Because
241 .Xr mandoc 1
242 does not implement full
243 .Xr roff 7
244 functionality, it may work with
245 .Xr mandoc 1 ,
246 but it may have weird effects on complete
247 .Xr roff 7
248 implementations.
249 .Sh SPECIAL CHARACTERS
250 Special characters are encoded as
251 .Sq \eX
252 .Pq for a one-character escape ,
253 .Sq \e(XX
254 .Pq two-character ,
255 and
256 .Sq \e[N]
257 .Pq N-character .
258 For details, see the
259 .Em Special Characters
260 subsection of the
261 .Xr roff 7
262 manual.
263 .Pp
264 Spacing:
265 .Bl -column "Input" "Description" -offset indent -compact
266 .It Em Input Ta Em Description
267 .It Sq \e\ \& Ta unpaddable non-breaking space
268 .It \e\(ti   Ta paddable non-breaking space
269 .It \e0      Ta digit-width space allowing line break
270 .It \e|      Ta one-sixth \e(em narrow space, zero width in nroff mode
271 .It \e^      Ta one-twelfth \e(em half-narrow space, zero width in nroff
272 .It \e&      Ta zero-width non-breaking space
273 .It \e)      Ta zero-width space transparent to end-of-sentence detection
274 .It \e%      Ta zero-width space allowing hyphenation
275 .It \e:      Ta zero-width space allowing line break
276 .El
277 .Pp
278 Lines:
279 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
280 .It Em Input Ta Em Rendered Ta Em Description
281 .It \e(ba    Ta \(ba        Ta bar
282 .It \e(br    Ta \(br        Ta box rule
283 .It \e(ul    Ta \(ul        Ta underscore
284 .It \e(ru    Ta \(ru        Ta underscore (width 0.5m)
285 .It \e(rn    Ta \(rn        Ta overline
286 .It \e(bb    Ta \(bb        Ta broken bar
287 .It \e(sl    Ta \(sl        Ta forward slash
288 .It \e(rs    Ta \(rs        Ta backward slash
289 .El
290 .Pp
291 Text markers:
292 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
293 .It Em Input Ta Em Rendered Ta Em Description
294 .It \e(ci    Ta \(ci        Ta circle
295 .It \e(bu    Ta \(bu        Ta bullet
296 .It \e(dd    Ta \(dd        Ta double dagger
297 .It \e(dg    Ta \(dg        Ta dagger
298 .It \e(lz    Ta \(lz        Ta lozenge
299 .It \e(sq    Ta \(sq        Ta white square
300 .It \e(ps    Ta \(ps        Ta paragraph
301 .It \e(sc    Ta \(sc        Ta section
302 .It \e(lh    Ta \(lh        Ta left hand
303 .It \e(rh    Ta \(rh        Ta right hand
304 .It \e(at    Ta \(at        Ta at
305 .It \e(sh    Ta \(sh        Ta hash (pound)
306 .It \e(CR    Ta \(CR        Ta carriage return
307 .It \e(OK    Ta \(OK        Ta check mark
308 .It \e(CL    Ta \(CL        Ta club suit
309 .It \e(SP    Ta \(SP        Ta spade suit
310 .It \e(HE    Ta \(HE        Ta heart suit
311 .It \e(DI    Ta \(DI        Ta diamond suit
312 .El
313 .Pp
314 Legal symbols:
315 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
316 .It Em Input Ta Em Rendered Ta Em Description
317 .It \e(co    Ta \(co        Ta copyright
318 .It \e(rg    Ta \(rg        Ta registered
319 .It \e(tm    Ta \(tm        Ta trademarked
320 .El
321 .Pp
322 Punctuation:
323 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
324 .It Em Input Ta Em Rendered Ta Em Description
325 .It \e(em    Ta \(em        Ta em-dash
326 .It \e(en    Ta \(en        Ta en-dash
327 .It \e(hy    Ta \(hy        Ta hyphen
328 .It \ee      Ta \e          Ta back-slash
329 .It \e.      Ta \.          Ta period
330 .It \e(r!    Ta \(r!        Ta upside-down exclamation
331 .It \e(r?    Ta \(r?        Ta upside-down question
332 .El
333 .Pp
334 Quotes:
335 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
336 .It Em Input Ta Em Rendered Ta Em Description
337 .It \e(Bq    Ta \(Bq        Ta right low double-quote
338 .It \e(bq    Ta \(bq        Ta right low single-quote
339 .It \e(lq    Ta \(lq        Ta left double-quote
340 .It \e(rq    Ta \(rq        Ta right double-quote
341 .It \e(oq    Ta \(oq        Ta left single-quote
342 .It \e(cq    Ta \(cq        Ta right single-quote
343 .It \e(aq    Ta \(aq        Ta apostrophe quote (ASCII character)
344 .It \e(dq    Ta \(dq        Ta double quote (ASCII character)
345 .It \e(Fo    Ta \(Fo        Ta left guillemet
346 .It \e(Fc    Ta \(Fc        Ta right guillemet
347 .It \e(fo    Ta \(fo        Ta left single guillemet
348 .It \e(fc    Ta \(fc        Ta right single guillemet
349 .El
350 .Pp
351 Brackets:
352 .Bl -column "xxbracketrightbtx" Rendered Description -offset indent -compact
353 .It Em Input Ta Em Rendered Ta Em Description
354 .It \e(lB    Ta \(lB        Ta left bracket
355 .It \e(rB    Ta \(rB        Ta right bracket
356 .It \e(lC    Ta \(lC        Ta left brace
357 .It \e(rC    Ta \(rC        Ta right brace
358 .It \e(la    Ta \(la        Ta left angle
359 .It \e(ra    Ta \(ra        Ta right angle
360 .It \e(bv    Ta \(bv        Ta brace extension (special font)
361 .It \e[braceex] Ta \[braceex] Ta brace extension
362 .It \e[bracketlefttp] Ta \[bracketlefttp] Ta top-left hooked bracket
363 .It \e[bracketleftbt] Ta \[bracketleftbt] Ta bottom-left hooked bracket
364 .It \e[bracketleftex] Ta \[bracketleftex] Ta left hooked bracket extension
365 .It \e[bracketrighttp] Ta \[bracketrighttp] Ta top-right hooked bracket
366 .It \e[bracketrightbt] Ta \[bracketrightbt] Ta bottom-right hooked bracket
367 .It \e[bracketrightex] Ta \[bracketrightex] Ta right hooked bracket extension
368 .It \e(lt    Ta \(lt        Ta top-left hooked brace
369 .It \e[bracelefttp] Ta \[bracelefttp] Ta top-left hooked brace
370 .It \e(lk    Ta \(lk        Ta mid-left hooked brace
371 .It \e[braceleftmid] Ta \[braceleftmid] Ta mid-left hooked brace
372 .It \e(lb    Ta \(lb        Ta bottom-left hooked brace
373 .It \e[braceleftbt] Ta \[braceleftbt] Ta bottom-left hooked brace
374 .It \e[braceleftex] Ta \[braceleftex] Ta left hooked brace extension
375 .It \e(rt    Ta \(rt        Ta top-left hooked brace
376 .It \e[bracerighttp] Ta \[bracerighttp] Ta top-right hooked brace
377 .It \e(rk    Ta \(rk        Ta mid-right hooked brace
378 .It \e[bracerightmid] Ta \[bracerightmid] Ta mid-right hooked brace
379 .It \e(rb    Ta \(rb        Ta bottom-right hooked brace
380 .It \e[bracerightbt] Ta \[bracerightbt] Ta bottom-right hooked brace
381 .It \e[bracerightex] Ta \[bracerightex] Ta right hooked brace extension
382 .It \e[parenlefttp] Ta \[parenlefttp] Ta top-left hooked parenthesis
383 .It \e[parenleftbt] Ta \[parenleftbt] Ta bottom-left hooked parenthesis
384 .It \e[parenleftex] Ta \[parenleftex] Ta left hooked parenthesis extension
385 .It \e[parenrighttp] Ta \[parenrighttp] Ta top-right hooked parenthesis
386 .It \e[parenrightbt] Ta \[parenrightbt] Ta bottom-right hooked parenthesis
387 .It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension
388 .El
389 .Pp
390 Arrows:
391 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
392 .It Em Input Ta Em Rendered Ta Em Description
393 .It \e(<-    Ta \(<-        Ta left arrow
394 .It \e(->    Ta \(->        Ta right arrow
395 .It \e(<>    Ta \(<>        Ta left-right arrow
396 .It \e(da    Ta \(da        Ta down arrow
397 .It \e(ua    Ta \(ua        Ta up arrow
398 .It \e(va    Ta \(va        Ta up-down arrow
399 .It \e(lA    Ta \(lA        Ta left double-arrow
400 .It \e(rA    Ta \(rA        Ta right double-arrow
401 .It \e(hA    Ta \(hA        Ta left-right double-arrow
402 .It \e(uA    Ta \(uA        Ta up double-arrow
403 .It \e(dA    Ta \(dA        Ta down double-arrow
404 .It \e(vA    Ta \(vA        Ta up-down double-arrow
405 .It \e(an    Ta \(an        Ta horizontal arrow extension
406 .El
407 .Pp
408 Logical:
409 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
410 .It Em Input Ta Em Rendered Ta Em Description
411 .It \e(AN    Ta \(AN        Ta logical and
412 .It \e(OR    Ta \(OR        Ta logical or
413 .It \e[tno]  Ta \[tno]      Ta logical not (text font)
414 .It \e(no    Ta \(no        Ta logical not (special font)
415 .It \e(te    Ta \(te        Ta existential quantifier
416 .It \e(fa    Ta \(fa        Ta universal quantifier
417 .It \e(st    Ta \(st        Ta such that
418 .It \e(tf    Ta \(tf        Ta therefore
419 .It \e(3d    Ta \(3d        Ta therefore
420 .It \e(or    Ta \(or        Ta bitwise or
421 .El
422 .Pp
423 Mathematical:
424 .Bl -column "xxcoproductxx" "Rendered" "Description" -offset indent -compact
425 .It Em Input Ta Em Rendered Ta Em Description
426 .It \e-      Ta \-          Ta minus (text font)
427 .It \e(mi    Ta \(mi        Ta minus (special font)
428 .It +        Ta +           Ta plus (text font)
429 .It \e(pl    Ta \(pl        Ta plus (special font)
430 .It \e(-+    Ta \(-+        Ta minus-plus
431 .It \e[t+-]  Ta \[t+-]      Ta plus-minus (text font)
432 .It \e(+-    Ta \(+-        Ta plus-minus (special font)
433 .It \e(pc    Ta \(pc        Ta center-dot
434 .It \e[tmu]  Ta \[tmu]      Ta multiply (text font)
435 .It \e(mu    Ta \(mu        Ta multiply (special font)
436 .It \e(c*    Ta \(c*        Ta circle-multiply
437 .It \e(c+    Ta \(c+        Ta circle-plus
438 .It \e[tdi]  Ta \[tdi]      Ta divide (text font)
439 .It \e(di    Ta \(di        Ta divide (special font)
440 .It \e(f/    Ta \(f/        Ta fraction
441 .It \e(**    Ta \(**        Ta asterisk
442 .It \e(<=    Ta \(<=        Ta less-than-equal
443 .It \e(>=    Ta \(>=        Ta greater-than-equal
444 .It \e(<<    Ta \(<<        Ta much less
445 .It \e(>>    Ta \(>>        Ta much greater
446 .It \e(eq    Ta \(eq        Ta equal
447 .It \e(!=    Ta \(!=        Ta not equal
448 .It \e(==    Ta \(==        Ta equivalent
449 .It \e(ne    Ta \(ne        Ta not equivalent
450 .It \e(ap    Ta \(ap        Ta tilde operator
451 .It \e(|=    Ta \(|=        Ta asymptotically equal
452 .It \e(=\(ti Ta \(=~        Ta approximately equal
453 .It \e(\(ti\(ti Ta \(~~        Ta almost equal
454 .It \e(\(ti= Ta \(~=        Ta almost equal
455 .It \e(pt    Ta \(pt        Ta proportionate
456 .It \e(es    Ta \(es        Ta empty set
457 .It \e(mo    Ta \(mo        Ta element
458 .It \e(nm    Ta \(nm        Ta not element
459 .It \e(sb    Ta \(sb        Ta proper subset
460 .It \e(nb    Ta \(nb        Ta not subset
461 .It \e(sp    Ta \(sp        Ta proper superset
462 .It \e(nc    Ta \(nc        Ta not superset
463 .It \e(ib    Ta \(ib        Ta reflexive subset
464 .It \e(ip    Ta \(ip        Ta reflexive superset
465 .It \e(ca    Ta \(ca        Ta intersection
466 .It \e(cu    Ta \(cu        Ta union
467 .It \e(/_    Ta \(/_        Ta angle
468 .It \e(pp    Ta \(pp        Ta perpendicular
469 .It \e(is    Ta \(is        Ta integral
470 .It \e[integral] Ta \[integral] Ta integral
471 .It \e[sum]    Ta \[sum]   Ta summation
472 .It \e[product] Ta \[product] Ta product
473 .It \e[coproduct] Ta \[coproduct] Ta coproduct
474 .It \e(gr    Ta \(gr        Ta gradient
475 .It \e(sr    Ta \(sr        Ta square root
476 .It \e[sqrt] Ta \[sqrt]     Ta square root
477 .It \e(lc    Ta \(lc        Ta left-ceiling
478 .It \e(rc    Ta \(rc        Ta right-ceiling
479 .It \e(lf    Ta \(lf        Ta left-floor
480 .It \e(rf    Ta \(rf        Ta right-floor
481 .It \e(if    Ta \(if        Ta infinity
482 .It \e(Ah    Ta \(Ah        Ta aleph
483 .It \e(Im    Ta \(Im        Ta imaginary
484 .It \e(Re    Ta \(Re        Ta real
485 .It \e(wp    Ta \(wp        Ta Weierstrass p
486 .It \e(pd    Ta \(pd        Ta partial differential
487 .It \e(-h    Ta \(-h        Ta Planck constant over 2\(*p
488 .It \e[hbar] Ta \[hbar]     Ta Planck constant over 2\(*p
489 .It \e(12    Ta \(12        Ta one-half
490 .It \e(14    Ta \(14        Ta one-fourth
491 .It \e(34    Ta \(34        Ta three-fourths
492 .It \e(18    Ta \(18        Ta one-eighth
493 .It \e(38    Ta \(38        Ta three-eighths
494 .It \e(58    Ta \(58        Ta five-eighths
495 .It \e(78    Ta \(78        Ta seven-eighths
496 .It \e(S1    Ta \(S1        Ta superscript 1
497 .It \e(S2    Ta \(S2        Ta superscript 2
498 .It \e(S3    Ta \(S3        Ta superscript 3
499 .El
500 .Pp
501 Ligatures:
502 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
503 .It Em Input Ta Em Rendered Ta Em Description
504 .It \e(ff    Ta \(ff        Ta ff ligature
505 .It \e(fi    Ta \(fi        Ta fi ligature
506 .It \e(fl    Ta \(fl        Ta fl ligature
507 .It \e(Fi    Ta \(Fi        Ta ffi ligature
508 .It \e(Fl    Ta \(Fl        Ta ffl ligature
509 .It \e(AE    Ta \(AE        Ta AE
510 .It \e(ae    Ta \(ae        Ta ae
511 .It \e(OE    Ta \(OE        Ta OE
512 .It \e(oe    Ta \(oe        Ta oe
513 .It \e(ss    Ta \(ss        Ta German eszett
514 .It \e(IJ    Ta \(IJ        Ta IJ ligature
515 .It \e(ij    Ta \(ij        Ta ij ligature
516 .El
517 .Pp
518 Accents:
519 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
520 .It Em Input Ta Em Rendered Ta Em Description
521 .It \e(a"    Ta \(a"        Ta Hungarian umlaut
522 .It \e(a-    Ta \(a-        Ta macron
523 .It \e(a.    Ta \(a.        Ta dotted
524 .It \e(a^    Ta \(a^        Ta circumflex
525 .It \e(aa    Ta \(aa        Ta acute
526 .It \e\(aq   Ta \'          Ta acute
527 .It \e(ga    Ta \(ga        Ta grave
528 .It \e\(ga   Ta \`          Ta grave
529 .It \e(ab    Ta \(ab        Ta breve
530 .It \e(ac    Ta \(ac        Ta cedilla
531 .It \e(ad    Ta \(ad        Ta dieresis
532 .It \e(ah    Ta \(ah        Ta caron
533 .It \e(ao    Ta \(ao        Ta ring
534 .It \e(a\(ti Ta \(a~        Ta tilde
535 .It \e(ho    Ta \(ho        Ta ogonek
536 .It \e(ha    Ta \(ha        Ta hat (ASCII character)
537 .It \e(ti    Ta \(ti        Ta tilde (ASCII character)
538 .El
539 .Pp
540 Accented letters:
541 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
542 .It Em Input Ta Em Rendered Ta Em Description
543 .It \e(\(aqA Ta \('A        Ta acute A
544 .It \e(\(aqE Ta \('E        Ta acute E
545 .It \e(\(aqI Ta \('I        Ta acute I
546 .It \e(\(aqO Ta \('O        Ta acute O
547 .It \e(\(aqU Ta \('U        Ta acute U
548 .It \e(\(aqY Ta \('Y        Ta acute Y
549 .It \e(\(aqa Ta \('a        Ta acute a
550 .It \e(\(aqe Ta \('e        Ta acute e
551 .It \e(\(aqi Ta \('i        Ta acute i
552 .It \e(\(aqo Ta \('o        Ta acute o
553 .It \e(\(aqu Ta \('u        Ta acute u
554 .It \e(\(aqy Ta \('y        Ta acute y
555 .It \e(\(gaA Ta \(`A        Ta grave A
556 .It \e(\(gaE Ta \(`E        Ta grave E
557 .It \e(\(gaI Ta \(`I        Ta grave I
558 .It \e(\(gaO Ta \(`O        Ta grave O
559 .It \e(\(gaU Ta \(`U        Ta grave U
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 \(`i        Ta grave o
564 .It \e(\(gau Ta \(`u        Ta grave u
565 .It \e(\(tiA Ta \(~A        Ta tilde A
566 .It \e(\(tiN Ta \(~N        Ta tilde N
567 .It \e(\(tiO Ta \(~O        Ta tilde O
568 .It \e(\(tia Ta \(~a        Ta tilde a
569 .It \e(\(tin Ta \(~n        Ta tilde n
570 .It \e(\(tio Ta \(~o        Ta tilde o
571 .It \e(:A    Ta \(:A        Ta dieresis A
572 .It \e(:E    Ta \(:E        Ta dieresis E
573 .It \e(:I    Ta \(:I        Ta dieresis I
574 .It \e(:O    Ta \(:O        Ta dieresis O
575 .It \e(:U    Ta \(:U        Ta dieresis U
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(:y    Ta \(:y        Ta dieresis y
582 .It \e(^A    Ta \(^A        Ta circumflex A
583 .It \e(^E    Ta \(^E        Ta circumflex E
584 .It \e(^I    Ta \(^I        Ta circumflex I
585 .It \e(^O    Ta \(^O        Ta circumflex O
586 .It \e(^U    Ta \(^U        Ta circumflex U
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(,C    Ta \(,C        Ta cedilla C
593 .It \e(,c    Ta \(,c        Ta cedilla c
594 .It \e(/L    Ta \(/L        Ta stroke L
595 .It \e(/l    Ta \(/l        Ta stroke l
596 .It \e(/O    Ta \(/O        Ta stroke O
597 .It \e(/o    Ta \(/o        Ta stroke o
598 .It \e(oA    Ta \(oA        Ta ring A
599 .It \e(oa    Ta \(oa        Ta ring a
600 .El
601 .Pp
602 Special letters:
603 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
604 .It Em Input Ta Em Rendered Ta Em Description
605 .It \e(-D    Ta \(-D        Ta Eth
606 .It \e(Sd    Ta \(Sd        Ta eth
607 .It \e(TP    Ta \(TP        Ta Thorn
608 .It \e(Tp    Ta \(Tp        Ta thorn
609 .It \e(.i    Ta \(.i        Ta dotless i
610 .It \e(.j    Ta \(.j        Ta dotless j
611 .El
612 .Pp
613 Currency:
614 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
615 .It Em Input Ta Em Rendered Ta Em Description
616 .It \e(Do    Ta \(Do        Ta dollar
617 .It \e(ct    Ta \(ct        Ta cent
618 .It \e(Eu    Ta \(Eu        Ta Euro symbol
619 .It \e(eu    Ta \(eu        Ta Euro symbol
620 .It \e(Ye    Ta \(Ye        Ta yen
621 .It \e(Po    Ta \(Po        Ta pound
622 .It \e(Cs    Ta \(Cs        Ta Scandinavian
623 .It \e(Fn    Ta \(Fn        Ta florin
624 .El
625 .Pp
626 Units:
627 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
628 .It Em Input Ta Em Rendered Ta Em Description
629 .It \e(de    Ta \(de        Ta degree
630 .It \e(%0    Ta \(%0        Ta per-thousand
631 .It \e(fm    Ta \(fm        Ta minute
632 .It \e(sd    Ta \(sd        Ta second
633 .It \e(mc    Ta \(mc        Ta micro
634 .It \e(Of    Ta \(Of        Ta Spanish female ordinal
635 .It \e(Om    Ta \(Om        Ta Spanish masculine ordinal
636 .El
637 .Pp
638 Greek letters:
639 .Bl -column "Input" "Rendered" "Description" -offset indent -compact
640 .It Em Input Ta Em Rendered Ta Em Description
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(*a    Ta \(*a        Ta alpha
666 .It \e(*b    Ta \(*b        Ta beta
667 .It \e(*g    Ta \(*g        Ta gamma
668 .It \e(*d    Ta \(*d        Ta delta
669 .It \e(*e    Ta \(*e        Ta epsilon
670 .It \e(*z    Ta \(*z        Ta zeta
671 .It \e(*y    Ta \(*y        Ta eta
672 .It \e(*h    Ta \(*h        Ta theta
673 .It \e(*i    Ta \(*i        Ta iota
674 .It \e(*k    Ta \(*k        Ta kappa
675 .It \e(*l    Ta \(*l        Ta lambda
676 .It \e(*m    Ta \(*m        Ta mu
677 .It \e(*n    Ta \(*n        Ta nu
678 .It \e(*c    Ta \(*c        Ta xi
679 .It \e(*o    Ta \(*o        Ta omicron
680 .It \e(*p    Ta \(*p        Ta pi
681 .It \e(*r    Ta \(*r        Ta rho
682 .It \e(*s    Ta \(*s        Ta sigma
683 .It \e(*t    Ta \(*t        Ta tau
684 .It \e(*u    Ta \(*u        Ta upsilon
685 .It \e(*f    Ta \(*f        Ta phi
686 .It \e(*x    Ta \(*x        Ta chi
687 .It \e(*q    Ta \(*q        Ta psi
688 .It \e(*w    Ta \(*w        Ta omega
689 .It \e(+h    Ta \(+h        Ta theta variant
690 .It \e(+f    Ta \(+f        Ta phi variant
691 .It \e(+p    Ta \(+p        Ta pi variant
692 .It \e(+e    Ta \(+e        Ta epsilon variant
693 .It \e(ts    Ta \(ts        Ta sigma terminal
694 .El
695 .Sh PREDEFINED STRINGS
696 Predefined strings are inherited from the macro packages of historical
697 troff implementations.
698 They are
699 .Em not recommended
700 for use, as they differ across implementations.
701 Manuals using these predefined strings are almost certainly not
702 portable.
703 .Pp
704 Their syntax is similar to special characters, using
705 .Sq \e*X
706 .Pq for a one-character escape ,
707 .Sq \e*(XX
708 .Pq two-character ,
709 and
710 .Sq \e*[N]
711 .Pq N-character .
712 For details, see the
713 .Em Predefined Strings
714 subsection of the
715 .Xr roff 7
716 manual.
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.