1 /* $Vendor-Id: chars.in,v 1.19 2009/11/05 07:21:02 kristaps Exp $ */
3 * Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 * The ASCII translation tables. STRING corresponds to predefined
20 * strings (cf. mdoc_samples.7 and tmac/mdoc/doc-nroff). CHAR
21 * corresponds to special characters (cf. groff_char.7). BOTH contains
22 * sequences that are equivalent in both STRING and CHAR.
24 * Either way, the left-hand side corresponds to the input sequence (\x,
25 * \(xx, \*(xx and so on) whose length is listed second element. The
26 * right-hand side is what's produced by the front-end, with the fourth
27 * element being its length.
29 * XXX - C-escape strings!
30 * XXX - update LINES_MAX if adding more!
33 /* Non-breaking, non-collapsing space uses unit separator. */
34 static const char ascii_nbrsp[2] = { 31, 0 };
39 CHAR("c", 1, "", 0, "", 0)
40 CHAR("0", 1, " ", 1, " ", 7)
41 CHAR(" ", 1, " ", 1, " ", 7)
42 CHAR("~", 1, ascii_nbrsp, 1, " ", 6)
43 CHAR("%", 1, "", 0, "", 0)
44 CHAR("&", 1, "", 0, "", 0)
45 CHAR("^", 1, "", 0, "", 0)
46 CHAR("|", 1, "", 0, "", 0)
49 CHAR("a\"", 2, "\"", 1, "̋", 6)
50 CHAR("a-", 2, "-", 1, "¯", 6)
51 CHAR("a.", 2, ".", 1, "˙", 6)
52 CHAR("a^", 2, "^", 1, "̂", 6)
53 CHAR("\'", 1, "\'", 1, "́", 6)
54 BOTH("aa", 2, "\'", 1, "́", 6)
55 BOTH("ga", 2, "`", 1, "̀", 6)
56 CHAR("`", 1, "`", 1, "̀", 6)
57 CHAR("ab", 2, "`", 1, "̆", 6)
58 CHAR("ac", 2, ",", 1, "̧", 6)
59 CHAR("ad", 2, "\"", 1, "̈", 6)
60 CHAR("ah", 2, "v", 1, "ˇ", 6)
61 CHAR("ao", 2, "o", 1, "˚", 6)
62 CHAR("a~", 2, "~", 1, "̃", 6)
63 CHAR("ho", 2, ",", 1, "̨", 6)
64 CHAR("ha", 2, "^", 1, "^", 1)
65 CHAR("ti", 2, "~", 1, "~", 1)
68 CHAR("Bq", 2, ",,", 2, "„", 7)
69 CHAR("bq", 2, ",", 1, "‚", 7)
70 BOTH("lq", 2, "``", 2, "“", 7)
71 BOTH("rq", 2, "\'\'", 2, "”", 7)
72 CHAR("oq", 2, "`", 1, "‘", 7)
73 CHAR("cq", 2, "\'", 1, "’", 7)
74 CHAR("aq", 2, "\'", 1, "\'", 1)
75 CHAR("dq", 2, "\"", 1, "\"", 1)
76 CHAR("Fo", 2, "<<", 2, "«", 6)
77 CHAR("Fc", 2, ">>", 2, "»", 6)
78 CHAR("fo", 2, "<", 1, "‹", 7)
79 CHAR("fc", 2, ">", 1, "›", 7)
82 CHAR("lB", 2, "[", 1, "[", 1)
83 CHAR("rB", 2, "]", 1, "]", 1)
84 CHAR("lC", 2, "{", 1, "{", 1)
85 CHAR("rC", 2, "}", 1, "}", 1)
86 CHAR("la", 2, "<", 1, "⟨", 8)
87 CHAR("ra", 2, ">", 1, "⟩", 8)
88 CHAR("bv", 2, "|", 1, "⎪", 7)
89 CHAR("braceex", 7, "|", 1, "⎪", 7)
90 CHAR("bracketlefttp", 13, "|", 1, "⎡", 7)
91 CHAR("bracketleftbp", 13, "|", 1, "⎣", 7)
92 CHAR("bracketleftex", 13, "|", 1, "⎢", 7)
93 CHAR("bracketrighttp", 14, "|", 1, "⎤", 7)
94 CHAR("bracketrightbp", 14, "|", 1, "⎦", 7)
95 CHAR("bracketrightex", 14, "|", 1, "⎥", 7)
96 CHAR("lt", 2, ",-", 2, "⎧", 7)
97 CHAR("bracelefttp", 11, ",-", 2, "⎧", 7)
98 CHAR("lk", 2, "{", 1, "⎨", 7)
99 CHAR("braceleftmid", 12, "{", 1, "⎨", 7)
100 CHAR("lb", 2, ",-", 2, "⎩", 7)
101 CHAR("braceleftbp", 11, "`-", 2, "⎩", 7)
102 CHAR("braceleftex", 11, "|", 1, "⎪", 7)
103 CHAR("rt", 2, "-.", 2, "⎫", 7)
104 CHAR("bracerighttp", 12, "-.", 2, "⎫", 7)
105 CHAR("rk", 2, "}", 1, "⎬", 7)
106 CHAR("bracerightmid", 13, "}", 1, "⎬", 7)
107 CHAR("rb", 2, "-\'", 2, "⎭", 7)
108 CHAR("bracerightbp", 12, "-\'", 2, "⎭", 7)
109 CHAR("bracerightex", 12, "|", 1, "⎪", 7)
110 CHAR("parenlefttp", 11, "/", 1, "⎛", 7)
111 CHAR("parenleftbp", 11, "\\", 1, "⎝", 7)
112 CHAR("parenleftex", 11, "|", 1, "⎜", 7)
113 CHAR("parenrighttp", 12, "\\", 1, "⎞", 7)
114 CHAR("parenrightbp", 12, "/", 1, "⎠", 7)
115 CHAR("parenrightex", 12, "|", 1, "⎟", 7)
117 /* Greek characters. */
118 CHAR("*A", 2, "A", 1, "Α", 6)
119 CHAR("*B", 2, "B", 1, "Β", 6)
120 CHAR("*G", 2, "|", 1, "Γ", 6)
121 CHAR("*D", 2, "/\\", 2, "Δ", 6)
122 CHAR("*E", 2, "E", 1, "Ε", 6)
123 CHAR("*Z", 2, "Z", 1, "Ζ", 6)
124 CHAR("*Y", 2, "H", 1, "Η", 6)
125 CHAR("*H", 2, "O", 1, "Θ", 6)
126 CHAR("*I", 2, "I", 1, "Ι", 6)
127 CHAR("*K", 2, "K", 1, "Κ", 6)
128 CHAR("*L", 2, "/\\", 2, "Λ", 6)
129 CHAR("*M", 2, "M", 1, "Μ", 6)
130 CHAR("*N", 2, "N", 1, "Ν", 6)
131 CHAR("*C", 2, "H", 1, "Ξ", 6)
132 CHAR("*O", 2, "O", 1, "Ο", 6)
133 CHAR("*P", 2, "TT", 2, "Π", 6)
134 CHAR("*R", 2, "P", 1, "Ρ", 6)
135 CHAR("*S", 2, ">", 1, "Σ", 6)
136 CHAR("*T", 2, "T", 1, "Τ", 6)
137 CHAR("*U", 2, "Y", 1, "Υ", 6)
138 CHAR("*F", 2, "O_", 1, "Φ", 6)
139 CHAR("*X", 2, "X", 1, "Χ", 6)
140 CHAR("*Q", 2, "Y", 1, "Ψ", 6)
141 CHAR("*W", 2, "O", 1, "Ω", 6)
142 CHAR("*a", 2, "a", 1, "α", 6)
143 CHAR("*b", 2, "B", 1, "β", 6)
144 CHAR("*g", 2, "y", 1, "γ", 6)
145 CHAR("*d", 2, "d", 1, "δ", 6)
146 CHAR("*e", 2, "e", 1, "ε", 6)
147 CHAR("*z", 2, "C", 1, "ζ", 6)
148 CHAR("*y", 2, "n", 1, "η", 6)
149 CHAR("*h", 2, "0", 1, "θ", 6)
150 CHAR("*i", 2, "i", 1, "ι", 6)
151 CHAR("*k", 2, "k", 1, "κ", 6)
152 CHAR("*l", 2, "\\", 1, "λ", 6)
153 CHAR("*m", 2, "u", 1, "μ", 6)
154 CHAR("*n", 2, "v", 1, "ν", 6)
155 CHAR("*c", 2, "E", 1, "ξ", 6)
156 CHAR("*o", 2, "o", 1, "ο", 6)
157 CHAR("*p", 2, "n", 1, "π", 6)
158 CHAR("*r", 2, "p", 1, "ρ", 6)
159 CHAR("*s", 2, "o", 1, "σ", 6)
160 CHAR("*t", 2, "t", 1, "τ", 6)
161 CHAR("*u", 2, "u", 1, "υ", 6)
162 CHAR("*f", 2, "o", 1, "ϕ", 6)
163 CHAR("*x", 2, "x", 1, "χ", 6)
164 CHAR("*q", 2, "u", 1, "ψ", 6)
165 CHAR("*w", 2, "w", 1, "ω", 6)
166 CHAR("+h", 2, "0", 1, "ϑ", 6)
167 CHAR("+f", 2, "o", 1, "φ", 6)
168 CHAR("+p", 2, "w", 1, "ϖ", 6)
169 CHAR("+e", 2, "e", 1, "ϵ", 7)
170 CHAR("ts", 2, "s", 1, "ς", 6)
172 /* Accented letters. */
173 CHAR(",C", 2, "C", 1, "Ç", 6)
174 CHAR(",c", 2, "c", 1, "ç", 6)
175 CHAR("/L", 2, "L", 1, "Ł", 6)
176 CHAR("/O", 2, "O", 1, "Ø", 6)
177 CHAR("/l", 2, "l", 1, "ł", 6)
178 CHAR("/o", 2, "o", 1, "ø", 6)
179 CHAR("oA", 2, "A", 1, "Å", 6)
180 CHAR("oa", 2, "a", 1, "å", 6)
181 CHAR(":A", 2, "A", 1, "Ä", 6)
182 CHAR(":E", 2, "E", 1, "Ë", 6)
183 CHAR(":I", 2, "I", 1, "Ï", 6)
184 CHAR(":O", 2, "O", 1, "Ö", 6)
185 CHAR(":U", 2, "U", 1, "Ü", 6)
186 CHAR(":a", 2, "a", 1, "ä", 6)
187 CHAR(":e", 2, "e", 1, "ë", 6)
188 CHAR(":i", 2, "i", 1, "ï", 6)
189 CHAR(":o", 2, "o", 1, "õ", 6)
190 CHAR(":u", 2, "u", 1, "ü", 6)
191 CHAR(":y", 2, "y", 1, "ÿ", 6)
192 CHAR("\'A", 2, "A", 1, "Á", 6)
193 CHAR("\'E", 2, "E", 1, "É", 6)
194 CHAR("\'I", 2, "I", 1, "Í", 6)
195 CHAR("\'O", 2, "O", 1, "Ó", 6)
196 CHAR("\'U", 2, "U", 1, "Ú", 6)
197 CHAR("\'a", 2, "a", 1, "á", 6)
198 CHAR("\'e", 2, "e", 1, "é", 6)
199 CHAR("\'i", 2, "i", 1, "í", 6)
200 CHAR("\'o", 2, "o", 1, "ó", 6)
201 CHAR("\'u", 2, "u", 1, "ú", 6)
202 CHAR("^A", 2, "A", 1, "Â", 6)
203 CHAR("^E", 2, "E", 1, "Ê", 6)
204 CHAR("^I", 2, "I", 1, "Î", 6)
205 CHAR("^O", 2, "O", 1, "Ô", 6)
206 CHAR("^U", 2, "U", 1, "Û", 6)
207 CHAR("^a", 2, "a", 1, "â", 6)
208 CHAR("^e", 2, "e", 1, "ê", 6)
209 CHAR("^i", 2, "i", 1, "î", 6)
210 CHAR("^o", 2, "o", 1, "ô", 6)
211 CHAR("^u", 2, "u", 1, "û", 6)
212 CHAR("`A", 2, "A", 1, "À", 6)
213 CHAR("`E", 2, "E", 1, "È", 6)
214 CHAR("`I", 2, "I", 1, "Ì", 6)
215 CHAR("`O", 2, "O", 1, "Ò", 6)
216 CHAR("`U", 2, "U", 1, "Ù", 6)
217 CHAR("`a", 2, "a", 1, "à", 6)
218 CHAR("`e", 2, "e", 1, "è", 6)
219 CHAR("`i", 2, "i", 1, "ì", 6)
220 CHAR("`o", 2, "o", 1, "ò", 6)
221 CHAR("`u", 2, "u", 1, "ù", 6)
222 CHAR("~A", 2, "A", 1, "Ã", 6)
223 CHAR("~N", 2, "N", 1, "Ñ", 6)
224 CHAR("~O", 2, "O", 1, "Õ", 6)
225 CHAR("~a", 2, "a", 1, "ã", 6)
226 CHAR("~n", 2, "n", 1, "ñ", 6)
227 CHAR("~o", 2, "o", 1, "õ", 6)
229 /* Arrows and lines. */
230 CHAR("<-", 2, "<-", 2, "←", 7)
231 CHAR("->", 2, "->", 2, "→", 7)
232 CHAR("<>", 2, "<>", 2, "↔", 7)
233 CHAR("da", 2, "v", 1, "↓", 7)
234 BOTH("ua", 2, "^", 1, "↑", 7)
235 BOTH("va", 2, "^v", 2, "↕", 7)
236 CHAR("lA", 2, "<=", 2, "⇐", 7)
237 CHAR("rA", 2, "=>", 2, "⇒", 7)
238 CHAR("hA", 2, "<=>", 3, "⇔", 7)
239 CHAR("dA", 2, "v", 1, "⇓", 7)
240 CHAR("uA", 2, "^", 1, "⇑", 7)
241 CHAR("vA", 2, "^=v", 3, "⇕", 7)
244 CHAR("AN", 2, "^", 1, "∧", 7)
245 CHAR("OR", 2, "v", 1, "∨", 7)
246 CHAR("no", 2, "~", 1, "¬", 6)
247 CHAR("tno", 3, "~", 1, "¬", 6)
248 CHAR("te", 2, "3", 1, "∃", 7)
249 CHAR("fa", 2, "V", 1, "∀", 7)
250 CHAR("st", 2, "-)", 2, "∋", 7)
251 CHAR("tf", 2, ".:.", 3, "∴", 7)
252 CHAR("3d", 2, ".:.", 3, "∴", 7)
253 CHAR("or", 2, "|", 1, "|", 1)
256 CHAR("pl", 2, "+", 1, "+", 5)
257 CHAR("mi", 2, "-", 1, "−", 7)
258 CHAR("-", 1, "-", 1, "-", 1)
259 CHAR("-+", 2, "-+", 2, "∓", 7)
260 CHAR("+-", 2, "+-", 2, "±", 6)
261 CHAR("t+-", 3, "+-", 2, "±", 6)
262 CHAR("pc", 2, ".", 1, "·", 6)
263 CHAR("md", 2, ".", 1, "⋅", 7)
264 CHAR("mu", 2, "x", 1, "×", 6)
265 CHAR("tmu", 3, "x", 1, "×", 6)
266 CHAR("c*", 2, "x", 1, "⊗", 7)
267 CHAR("c+", 2, "+", 1, "⊕", 7)
268 CHAR("di", 2, "-:-", 3, "÷", 6)
269 CHAR("tdi", 3, "-:-", 3, "÷", 6)
270 CHAR("f/", 2, "/", 1, "⁄", 7)
271 CHAR("**", 2, "*", 1, "∗", 7)
272 BOTH("<=", 2, "<=", 2, "≤", 7)
273 BOTH(">=", 2, ">=", 2, "≥", 7)
274 CHAR("<<", 2, "<<", 2, "≪", 7)
275 CHAR(">>", 2, ">>", 2, "≫", 7)
276 CHAR("eq", 2, "=", 1, "=", 5)
277 CHAR("!=", 2, "!=", 2, "≠", 7)
278 CHAR("==", 2, "==", 2, "≡", 7)
279 CHAR("ne", 2, "!==", 3, "≢", 7)
280 CHAR("=~", 2, "=~", 2, "≅", 7)
281 CHAR("-~", 2, "-~", 2, "≃", 7)
282 CHAR("ap", 2, "~", 1, "∼", 7)
283 CHAR("~~", 2, "~~", 2, "≈", 7)
284 CHAR("~=", 2, "~=", 2, "≌", 7)
285 CHAR("pt", 2, "oc", 2, "∝", 7)
286 CHAR("es", 2, "{}", 2, "∅", 7)
287 CHAR("mo", 2, "E", 1, "∈", 7)
288 CHAR("nm", 2, "!E", 2, "∉", 7)
289 CHAR("sb", 2, "(=", 2, "⊂", 7)
290 CHAR("nb", 2, "(!=", 3, "⊄", 7)
291 CHAR("sp", 2, "=)", 2, "⊃", 7)
292 CHAR("nc", 2, "!=)", 3, "⊅", 7)
293 CHAR("ib", 2, "(=", 2, "⊆", 7)
294 CHAR("ip", 2, "=)", 2, "⊇", 7)
295 CHAR("ca", 2, "(^)", 3, "∩", 7)
296 CHAR("cu", 2, "U", 1, "∪", 7)
297 CHAR("/_", 2, "/_", 2, "∠", 7)
298 CHAR("pp", 2, "_|_", 3, "⊥", 7)
299 CHAR("is", 2, "I", 1, "∫", 7)
300 CHAR("integral", 8, "I", 1, "∫", 7)
301 CHAR("sum", 3, "E", 1, "∑", 7)
302 CHAR("product", 7, "TT", 2, "∏", 7)
303 CHAR("coproduct", 9, "U", 1, "∐", 7)
304 CHAR("gr", 2, "V", 1, "∇", 7)
305 CHAR("sr", 2, "\\/", 2, "√", 7)
306 CHAR("sqrt", 4, "\\/", 2, "√", 7)
307 CHAR("lc", 2, "|~", 2, "⌈", 7)
308 CHAR("rc", 2, "~|", 2, "⌉", 7)
309 CHAR("lf", 2, "|_", 2, "⌊", 7)
310 CHAR("rf", 2, "_|", 2, "⌋", 7)
311 CHAR("if", 2, "oo", 2, "∞", 7)
312 CHAR("Ah", 2, "N", 1, "ℵ", 7)
313 CHAR("Im", 2, "I", 1, "ℑ", 7)
314 CHAR("Re", 2, "R", 1, "ℜ", 7)
315 CHAR("pd", 2, "a", 1, "∂", 7)
316 CHAR("-h", 2, "/h", 2, "ℏ", 7)
319 CHAR("ff", 2, "ff", 2, "ff", 8)
320 CHAR("fi", 2, "fi", 2, "fi", 8)
321 CHAR("fl", 2, "fl", 2, "fl", 8)
322 CHAR("Fi", 2, "ffi", 3, "ffi", 8)
323 CHAR("Fl", 2, "ffl", 3, "ffl", 8)
324 CHAR("AE", 2, "AE", 2, "Æ", 6)
325 CHAR("ae", 2, "ae", 2, "æ", 6)
326 CHAR("OE", 2, "OE", 2, "Œ", 6)
327 CHAR("oe", 2, "oe", 2, "œ", 6)
328 CHAR("ss", 2, "ss", 2, "ß", 6)
329 CHAR("IJ", 2, "IJ", 2, "IJ", 6)
330 CHAR("ij", 2, "ij", 2, "ij", 6)
332 /* Special letters. */
333 CHAR("-D", 2, "D", 1, "Ð", 6)
334 CHAR("Sd", 2, "o", 1, "ð", 6)
335 CHAR("TP", 2, "b", 1, "Þ", 6)
336 CHAR("Tp", 2, "b", 1, "þ", 6)
337 CHAR(".i", 2, "i", 1, "ı", 6)
338 CHAR(".j", 2, "j", 1, "ȷ", 6)
341 CHAR("Do", 2, "$", 1, "$", 1)
342 CHAR("ct", 2, "c", 1, "¢", 6)
343 CHAR("Eu", 2, "EUR", 3, "€", 7)
344 CHAR("eu", 2, "EUR", 3, "€", 7)
345 CHAR("Ye", 2, "Y", 1, "¥", 6)
346 CHAR("Po", 2, "L", 1, "£", 6)
347 CHAR("Cs", 2, "x", 1, "¤", 6)
348 CHAR("Fn", 2, "f", 1, "ƒ", 6)
351 STRING("Am", 2, "&", 1, "&", 5)
352 STRING("Ba", 2, "|", 1, "|", 1)
353 STRING("Ge", 2, ">=", 2, "≥", 7)
354 STRING("Gt", 2, ">", 1, ">", 4)
355 STRING("If", 2, "infinity", 8, "infinity", 8)
356 STRING("Le", 2, "<=", 2, "≤", 7)
357 STRING("Lq", 2, "``", 2, "“", 7)
358 STRING("Lt", 2, "<", 1, "<", 4)
359 STRING("Na", 2, "NaN", 3, "NaN", 3)
360 STRING("Ne", 2, "!=", 2, "≠", 7)
361 STRING("Pi", 2, "pi", 2, "π", 6)
362 STRING("Pm", 2, "+-", 2, "±", 6)
363 STRING("R", 1, "(R)", 3, "®", 6)
364 STRING("Rq", 2, "\'\'", 2, "”", 7)
365 STRING("Tm", 2, "tm", 2, "™", 7)
366 STRING("left-bracket", 12, "[", 1, "[", 1)
367 STRING("left-parenthesis", 16, "(", 1, "(", 1)
368 STRING("left-singlequote", 16, "`", 1, "‘", 7)
369 STRING("lp", 2, "(", 1, "(", 1)
370 STRING("q", 1, "\"", 1, """, 6)
371 STRING("quote-left", 10, "`", 1, "‘", 7)
372 STRING("quote-right", 11, "\'", 1, "’", 7)
373 STRING("right-bracket", 13, "]", 1, "]", 1)
374 STRING("right-parenthesis", 17, ")", 1, ")", 1)
375 STRING("right-singlequote", 17, "\'", 1, "’", 7)
376 STRING("rp", 2, ")", 1, ")", 1)
379 CHAR("ba", 2, "|", 1, "|", 6)
380 CHAR("br", 2, "|", 1, "│", 7)
381 CHAR("ul", 2, "_", 1, "_", 5)
382 CHAR("rl", 2, "-", 1, "‾", 7)
383 CHAR("bb", 2, "|", 1, "¦", 6)
384 CHAR("sl", 2, "/", 1, "/", 5)
385 CHAR("rs", 2, "\\", 1, "\", 5)
388 CHAR("ci", 2, "o", 1, "○", 7)
389 CHAR("bu", 2, "o", 1, "•", 7)
390 CHAR("dd", 2, "=", 1, "‡", 7)
391 CHAR("dg", 2, "-", 1, "†", 7)
392 CHAR("lz", 2, "<>", 2, "◊", 7)
393 CHAR("sq", 2, "[]", 2, "□", 7)
394 CHAR("ps", 2, "9|", 2, "¶", 6)
395 CHAR("sc", 2, "S", 1, "§", 6)
396 CHAR("lh", 2, "<=", 2, "☜", 7)
397 CHAR("rh", 2, "=>", 2, "☞", 7)
398 CHAR("at", 2, "@", 1, "@", 5)
399 CHAR("sh", 2, "#", 1, "#", 5)
400 CHAR("CR", 2, "_|", 2, "↵", 7)
401 CHAR("OK", 2, "\\/", 2, "✓", 8)
404 CHAR("co", 2, "(C)", 3, "©", 6)
405 CHAR("rg", 2, "(R)", 3, "®", 6)
406 CHAR("tm", 2, "tm", 2, "™", 7)
409 CHAR(".", 1, ".", 1, ".", 1)
410 CHAR("r!", 2, "i", 1, "¡", 6)
411 CHAR("r?", 2, "c", 1, "¿", 6)
412 CHAR("em", 2, "--", 2, "—", 7)
413 CHAR("en", 2, "-", 1, "–", 7)
414 CHAR("hy", 2, "-", 1, "‐", 7)
415 CHAR("\\", 1, "\\", 1, "\\", 1)
416 CHAR("e", 1, "\\", 1, "\\", 1)
419 CHAR("de", 2, "o", 1, "°", 6)
420 CHAR("%0", 2, "%o", 2, "‰", 7)
421 CHAR("fm", 2, "\'", 1, "′", 7)
422 CHAR("sd", 2, "\"", 1, "″", 7)
423 CHAR("mc", 2, "mu", 2, "µ", 6)