Changesets can be listed by changeset number.
The Git repository is here.
- Revision:
- 357
- Log:
Having seen problems with character set conversions, comment out swathes of
unused code which tries to introduce Ruby 1.9 and 1.8 compatibility and give
UTF-8 support throughout. Instead, rely on Rails UTF-8 extensions and other
pass-through behaviour. Fix an invalid use of "Integer($1).chr" which was
probably in fact the sole root cause of the problems seen during migeration
of the I2 data (but leave the other changes present, since they don't hurt
and in some cases unnecessary calls have been made which can be removed).
- Author:
- rool
- Date:
- Sat Mar 19 21:57:38 +0000 2011
- Size:
- 65157 Bytes
1 | # Some useful additions to the String class |
2 | # |
3 | # 2011-03-10 (ADH): Numerous changes. Whatever Instiki's trying to do, the |
4 | # results often seem broken - it's possible to get a 500 |
5 | # error in a diff view, for example, because UTF 8 byte |
6 | # sequences are getting split mid-way through. Took out as |
7 | # much custom code as possible and tried to lean on the |
8 | # Rails multibyte support. We're using Rails 2.3.11 and |
9 | # Ruby 1.8; this combination seems to work properly. |
10 | |
11 | class String |
12 | |
13 | def num_chars |
14 | self.mb_chars.length |
15 | end |
16 | |
17 | # # Return the number of unicode characters in a string |
18 | # # |
19 | # # :call-seq: |
20 | # # string.num_chars -> integer |
21 | # # |
22 | # # Because Rails 2.3.5's String#mb_chars.length is broken, |
23 | # # we provide this method. |
24 | # #-- |
25 | # if "".respond_to?(:force_encoding) |
26 | # def num_chars |
27 | # length |
28 | # end |
29 | # else |
30 | # def num_chars |
31 | # unpack('U*').length |
32 | # end |
33 | # end |
34 | |
35 | def as_bytes |
36 | self.mb_chars |
37 | end |
38 | |
39 | # #++ |
40 | # # A method to allow byte-oriented operations in both Ruby 1.8 and Ruby 1.9 |
41 | # # |
42 | # # :call-seq: |
43 | # # string.to_utf_8 -> string (with the encoding set to "ASCII-8BIT") |
44 | # # |
45 | # # Under 1.8, this is a NOOP. Under 1.9, it sets the encoding to "ASCII-8BIT" |
46 | # #-- |
47 | # if "".respond_to?(:force_encoding) |
48 | # def as_bytes |
49 | # force_encoding("ASCII-8BIT") |
50 | # end |
51 | # else |
52 | # def as_bytes |
53 | # self |
54 | # end |
55 | # end |
56 | |
57 | def as_utf8 |
58 | self # Same as below, basically |
59 | end |
60 | |
61 | # #++ |
62 | # # A method to allow string-oriented operations in both Ruby 1.8 and Ruby 1.9 |
63 | # # |
64 | # # :call-seq: |
65 | # # string.to_utf_8 -> string (with the encoding set to "UTF-8") |
66 | # # |
67 | # # Under 1.8, this is a NOOP. Under 1.9, it sets the encoding to "UTF-8" |
68 | # #-- |
69 | # if "".respond_to?(:force_encoding) |
70 | # def as_utf8 |
71 | # force_encoding("UTF-8") |
72 | # end |
73 | # else |
74 | # def as_utf8 |
75 | # self |
76 | # end |
77 | # end |
78 | |
79 | def purify |
80 | # OK, this really doesn't do anything... It tolerates bad sequences. But |
81 | # isn't that a good thing? We just pass bytes through. |
82 | self.mb_chars.to_s |
83 | end |
84 | |
85 | # #++ |
86 | # # Take a string, and remove any invalid substrings, returning a valid utf-8 string. |
87 | # # |
88 | # # :call-seq: |
89 | # # string.purify -> new_string |
90 | # # |
91 | # # returns a valid utf-8 string, purged of any subsequences of illegal bytes. |
92 | # #-- |
93 | # if "".respond_to?(:force_encoding) |
94 | # def purify |
95 | # text = self.dup.check_ncrs.as_utf8 |
96 | # text.chars.collect{|c| c.as_bytes}.grep(UTF8_REGEX).join.as_utf8 |
97 | # end |
98 | # else |
99 | # def purify |
100 | # text = check_ncrs |
101 | # text.split(//u).grep(UTF8_REGEX).join |
102 | # end |
103 | # end |
104 | # |
105 | # def check_ncrs |
106 | # text = gsub(/&#[xX]([a-fA-F0-9]+);/) { |m| [$1.hex].pack('U*').as_bytes =~ UTF8_REGEX ? m : '' } |
107 | # text.gsub(/&#(\d+);/) { |m| [$1.to_i].pack('U*').as_bytes =~ UTF8_REGEX ? m : '' } |
108 | # end |
109 | # |
110 | # UTF8_REGEX = /\A( |
111 | # [\x09\x0A\x0D\x20-\x7E] # ASCII |
112 | # | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |
113 | # | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |
114 | # | [\xE1-\xEC\xEE][\x80-\xBF]{2} # straight 3-byte |
115 | # | \xEF[\x80-\xBE]{2} # |
116 | # | \xEF\xBF[\x80-\xBD] # excluding U+fffe and U+ffff |
117 | # | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |
118 | # | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |
119 | # | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |
120 | # | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 |
121 | # )*\Z/nx; |
122 | # #++ |
123 | |
124 | # # Check whether a string is valid utf-8 |
125 | # # |
126 | # # :call-seq: |
127 | # # string.is_utf8? -> boolean |
128 | # # |
129 | # # returns true if the sequence of bytes in string is valid utf-8 |
130 | # #-- |
131 | # def is_utf8? |
132 | # #expand NCRs to utf-8 |
133 | # text = self.check_ncrs.as_bytes |
134 | # |
135 | # # You might think this is faster, but it isn't |
136 | # #pieces = self.split(/&#[xX]([a-fA-F0-9]+);/) |
137 | # #1.step(pieces.length-1, 2) {|i| pieces[i] = [pieces[i].hex].pack('U*')} |
138 | # #pieces = pieces.join.split(/&#(\d+);/) |
139 | # #1.step(pieces.length-1, 2) {|i| pieces[i] = [pieces[i].to_i].pack('U*')} |
140 | # #text = pieces.join |
141 | # |
142 | # #ensure the resulting string of bytes is valid utf-8 |
143 | # text =~ UTF8_REGEX |
144 | # end |
145 | # |
146 | # #:stopdoc: |
147 | # |
148 | # def blank? |
149 | # self.dup.as_bytes !~ /\S/ |
150 | # end |
151 | |
152 | MATHML_ENTITIES = { |
153 | 'Alpha' => 'Α', |
154 | 'Beta' => 'Β', |
155 | 'Epsilon' => 'Ε', |
156 | 'Zeta' => 'Ζ', |
157 | 'Eta' => 'Η', |
158 | 'Iota' => 'Ι', |
159 | 'Kappa' => 'Κ', |
160 | 'Mu' => 'Μ', |
161 | 'Nu' => 'Ν', |
162 | 'Omicron' => 'Ο', |
163 | 'Rho' => 'Ρ', |
164 | 'Tau' => 'Τ', |
165 | 'Chi' => 'Χ', |
166 | 'epsilon' => 'ε', |
167 | 'zeta' => 'ζ', |
168 | 'omicron' => 'ο', |
169 | 'sigmaf' => 'ς', |
170 | 'thetasym' => 'ϑ', |
171 | 'upsih' => 'ϒ', |
172 | 'oline' => '‾', |
173 | 'frasl' => '⁄', |
174 | 'alefsym' => 'ℵ', |
175 | 'crarr' => '↵', |
176 | 'empty' => '∅', |
177 | 'amp' => '&', |
178 | 'lt' => '<', |
179 | 'zwnj' => '‌', |
180 | 'zwj' => '‍', |
181 | 'lrm' => '‎', |
182 | 'rlm' => '‏', |
183 | 'sbquo' => '‚', |
184 | 'bdquo' => '„', |
185 | 'lsaquo' => '‹', |
186 | 'rsaquo' => '›', |
187 | 'euro' => '€', |
188 | 'angzarr' => '⍼', |
189 | 'cirmid' => '⫯', |
190 | 'cudarrl' => '⤸', |
191 | 'cudarrr' => '⤵', |
192 | 'cularr' => '↶', |
193 | 'cularrp' => '⤽', |
194 | 'curarr' => '↷', |
195 | 'curarrm' => '⤼', |
196 | 'Darr' => '↡', |
197 | 'dArr' => '⇓', |
198 | 'ddarr' => '⇊', |
199 | 'DDotrahd' => '⤑', |
200 | 'dfisht' => '⥿', |
201 | 'dHar' => '⥥', |
202 | 'dharl' => '⇃', |
203 | 'dharr' => '⇂', |
204 | 'duarr' => '⇵', |
205 | 'duhar' => '⥯', |
206 | 'dzigrarr' => '⟿', |
207 | 'erarr' => '⥱', |
208 | 'hArr' => '⇔', |
209 | 'harr' => '↔', |
210 | 'harrcir' => '⥈', |
211 | 'harrw' => '↭', |
212 | 'hoarr' => '⇿', |
213 | 'imof' => '⊷', |
214 | 'lAarr' => '⇚', |
215 | 'Larr' => '↞', |
216 | 'larrbfs' => '⤟', |
217 | 'larrfs' => '⤝', |
218 | 'larrhk' => '↩', |
219 | 'larrlp' => '↫', |
220 | 'larrpl' => '⤹', |
221 | 'larrsim' => '⥳', |
222 | 'larrtl' => '↢', |
223 | 'lAtail' => '⤛', |
224 | 'latail' => '⤙', |
225 | 'lBarr' => '⤎', |
226 | 'lbarr' => '⤌', |
227 | 'ldca' => '⤶', |
228 | 'ldrdhar' => '⥧', |
229 | 'ldrushar' => '⥋', |
230 | 'ldsh' => '↲', |
231 | 'lfisht' => '⥼', |
232 | 'lHar' => '⥢', |
233 | 'lhard' => '↽', |
234 | 'lharu' => '↼', |
235 | 'lharul' => '⥪', |
236 | 'llarr' => '⇇', |
237 | 'llhard' => '⥫', |
238 | 'loarr' => '⇽', |
239 | 'lrarr' => '⇆', |
240 | 'lrhar' => '⇋', |
241 | 'lrhard' => '⥭', |
242 | 'lsh' => '↰', |
243 | 'lurdshar' => '⥊', |
244 | 'luruhar' => '⥦', |
245 | 'Map' => '⤅', |
246 | 'map' => '↦', |
247 | 'midcir' => '⫰', |
248 | 'mumap' => '⊸', |
249 | 'nearhk' => '⤤', |
250 | 'neArr' => '⇗', |
251 | 'nearr' => '↗', |
252 | 'nesear' => '⤨', |
253 | 'nhArr' => '⇎', |
254 | 'nharr' => '↮', |
255 | 'nlArr' => '⇍', |
256 | 'nlarr' => '↚', |
257 | 'nrArr' => '⇏', |
258 | 'nrarr' => '↛', |
259 | 'nrarrc' => '⤳̸', |
260 | 'nrarrw' => '↝̸', |
261 | 'nvHarr' => '⤄', |
262 | 'nvlArr' => '⤂', |
263 | 'nvrArr' => '⤃', |
264 | 'nwarhk' => '⤣', |
265 | 'nwArr' => '⇖', |
266 | 'nwarr' => '↖', |
267 | 'nwnear' => '⤧', |
268 | 'olarr' => '↺', |
269 | 'orarr' => '↻', |
270 | 'origof' => '⊶', |
271 | 'rAarr' => '⇛', |
272 | 'Rarr' => '↠', |
273 | 'rarrap' => '⥵', |
274 | 'rarrbfs' => '⤠', |
275 | 'rarrc' => '⤳', |
276 | 'rarrfs' => '⤞', |
277 | 'rarrhk' => '↪', |
278 | 'rarrlp' => '↬', |
279 | 'rarrpl' => '⥅', |
280 | 'rarrsim' => '⥴', |
281 | 'Rarrtl' => '⤖', |
282 | 'rarrtl' => '↣', |
283 | 'rarrw' => '↝', |
284 | 'rAtail' => '⤜', |
285 | 'ratail' => '⤚', |
286 | 'RBarr' => '⤐', |
287 | 'rBarr' => '⤏', |
288 | 'rbarr' => '⤍', |
289 | 'rdca' => '⤷', |
290 | 'rdldhar' => '⥩', |
291 | 'rdsh' => '↳', |
292 | 'rfisht' => '⥽', |
293 | 'rHar' => '⥤', |
294 | 'rhard' => '⇁', |
295 | 'rharu' => '⇀', |
296 | 'rharul' => '⥬', |
297 | 'rlarr' => '⇄', |
298 | 'rlhar' => '⇌', |
299 | 'roarr' => '⇾', |
300 | 'rrarr' => '⇉', |
301 | 'rsh' => '↱', |
302 | 'ruluhar' => '⥨', |
303 | 'searhk' => '⤥', |
304 | 'seArr' => '⇘', |
305 | 'searr' => '↘', |
306 | 'seswar' => '⤩', |
307 | 'simrarr' => '⥲', |
308 | 'slarr' => '←', |
309 | 'srarr' => '→', |
310 | 'swarhk' => '⤦', |
311 | 'swArr' => '⇙', |
312 | 'swarr' => '↙', |
313 | 'swnwar' => '⤪', |
314 | 'Uarr' => '↟', |
315 | 'uArr' => '⇑', |
316 | 'Uarrocir' => '⥉', |
317 | 'udarr' => '⇅', |
318 | 'udhar' => '⥮', |
319 | 'ufisht' => '⥾', |
320 | 'uHar' => '⥣', |
321 | 'uharl' => '↿', |
322 | 'uharr' => '↾', |
323 | 'uuarr' => '⇈', |
324 | 'vArr' => '⇕', |
325 | 'varr' => '↕', |
326 | 'xhArr' => '⟺', |
327 | 'xharr' => '⟷', |
328 | 'xlArr' => '⟸', |
329 | 'xlarr' => '⟵', |
330 | 'xmap' => '⟼', |
331 | 'xrArr' => '⟹', |
332 | 'xrarr' => '⟶', |
333 | 'zigrarr' => '⇝', |
334 | 'ac' => '∾', |
335 | 'acE' => '∾̳', |
336 | 'amalg' => '⨿', |
337 | 'barvee' => '⊽', |
338 | 'Barwed' => '⌆', |
339 | 'barwed' => '⌅', |
340 | 'bsolb' => '⧅', |
341 | 'Cap' => '⋒', |
342 | 'capand' => '⩄', |
343 | 'capbrcup' => '⩉', |
344 | 'capcap' => '⩋', |
345 | 'capcup' => '⩇', |
346 | 'capdot' => '⩀', |
347 | 'caps' => '∩︀', |
348 | 'ccaps' => '⩍', |
349 | 'ccups' => '⩌', |
350 | 'ccupssm' => '⩐', |
351 | 'coprod' => '∐', |
352 | 'Cup' => '⋓', |
353 | 'cupbrcap' => '⩈', |
354 | 'cupcap' => '⩆', |
355 | 'cupcup' => '⩊', |
356 | 'cupdot' => '⊍', |
357 | 'cupor' => '⩅', |
358 | 'cups' => '∪︀', |
359 | 'cuvee' => '⋎', |
360 | 'cuwed' => '⋏', |
361 | 'Dagger' => '‡', |
362 | 'dagger' => '†', |
363 | 'diam' => '⋄', |
364 | 'divonx' => '⋇', |
365 | 'eplus' => '⩱', |
366 | 'hercon' => '⊹', |
367 | 'intcal' => '⊺', |
368 | 'iprod' => '⨼', |
369 | 'loplus' => '⨭', |
370 | 'lotimes' => '⨴', |
371 | 'lthree' => '⋋', |
372 | 'ltimes' => '⋉', |
373 | 'midast' => '*', |
374 | 'minusb' => '⊟', |
375 | 'minusd' => '∸', |
376 | 'minusdu' => '⨪', |
377 | 'ncap' => '⩃', |
378 | 'ncup' => '⩂', |
379 | 'oast' => '⊛', |
380 | 'ocir' => '⊚', |
381 | 'odash' => '⊝', |
382 | 'odiv' => '⨸', |
383 | 'odot' => '⊙', |
384 | 'odsold' => '⦼', |
385 | 'ofcir' => '⦿', |
386 | 'ogt' => '⧁', |
387 | 'ohbar' => '⦵', |
388 | 'olcir' => '⦾', |
389 | 'olt' => '⧀', |
390 | 'omid' => '⦶', |
391 | 'ominus' => '⊖', |
392 | 'opar' => '⦷', |
393 | 'operp' => '⦹', |
394 | 'oplus' => '⊕', |
395 | 'osol' => '⊘', |
396 | 'Otimes' => '⨷', |
397 | 'otimes' => '⊗', |
398 | 'otimesas' => '⨶', |
399 | 'ovbar' => '⌽', |
400 | 'plusacir' => '⨣', |
401 | 'plusb' => '⊞', |
402 | 'pluscir' => '⨢', |
403 | 'plusdo' => '∔', |
404 | 'plusdu' => '⨥', |
405 | 'pluse' => '⩲', |
406 | 'plussim' => '⨦', |
407 | 'plustwo' => '⨧', |
408 | 'prod' => '∏', |
409 | 'race' => '∽̱', |
410 | 'roplus' => '⨮', |
411 | 'rotimes' => '⨵', |
412 | 'rthree' => '⋌', |
413 | 'rtimes' => '⋊', |
414 | 'sdot' => '⋅', |
415 | 'sdotb' => '⊡', |
416 | 'setmn' => '∖', |
417 | 'simplus' => '⨤', |
418 | 'smashp' => '⨳', |
419 | 'solb' => '⧄', |
420 | 'sqcap' => '⊓', |
421 | 'sqcaps' => '⊓︀', |
422 | 'sqcup' => '⊔', |
423 | 'sqcups' => '⊔︀', |
424 | 'ssetmn' => '∖', |
425 | 'sstarf' => '⋆', |
426 | 'subdot' => '⪽', |
427 | 'sum' => '∑', |
428 | 'supdot' => '⪾', |
429 | 'timesb' => '⊠', |
430 | 'timesbar' => '⨱', |
431 | 'timesd' => '⨰', |
432 | 'tridot' => '◬', |
433 | 'triminus' => '⨺', |
434 | 'triplus' => '⨹', |
435 | 'trisb' => '⧍', |
436 | 'tritime' => '⨻', |
437 | 'uplus' => '⊎', |
438 | 'veebar' => '⊻', |
439 | 'wedbar' => '⩟', |
440 | 'wreath' => '≀', |
441 | 'xcap' => '⋂', |
442 | 'xcirc' => '◯', |
443 | 'xcup' => '⋃', |
444 | 'xdtri' => '▽', |
445 | 'xodot' => '⨀', |
446 | 'xoplus' => '⨁', |
447 | 'xotime' => '⨂', |
448 | 'xsqcup' => '⨆', |
449 | 'xuplus' => '⨄', |
450 | 'xutri' => '△', |
451 | 'xvee' => '⋁', |
452 | 'xwedge' => '⋀', |
453 | 'dlcorn' => '⌞', |
454 | 'drcorn' => '⌟', |
455 | 'gtlPar' => '⦕', |
456 | 'langd' => '⦑', |
457 | 'lbrke' => '⦋', |
458 | 'lbrksld' => '⦏', |
459 | 'lbrkslu' => '⦍', |
460 | 'lceil' => '⌈', |
461 | 'lfloor' => '⌊', |
462 | 'lmoust' => '⎰', |
463 | 'lparlt' => '⦓', |
464 | 'ltrPar' => '⦖', |
465 | 'rangd' => '⦒', |
466 | 'rbrke' => '⦌', |
467 | 'rbrksld' => '⦎', |
468 | 'rbrkslu' => '⦐', |
469 | 'rceil' => '⌉', |
470 | 'rfloor' => '⌋', |
471 | 'rmoust' => '⎱', |
472 | 'rpargt' => '⦔', |
473 | 'ulcorn' => '⌜', |
474 | 'urcorn' => '⌝', |
475 | 'gnap' => '⪊', |
476 | 'gnE' => '≩', |
477 | 'gne' => '⪈', |
478 | 'gnsim' => '⋧', |
479 | 'gvnE' => '≩︀', |
480 | 'lnap' => '⪉', |
481 | 'lnE' => '≨', |
482 | 'lne' => '⪇', |
483 | 'lnsim' => '⋦', |
484 | 'lvnE' => '≨︀', |
485 | 'nap' => '≉', |
486 | 'napE' => '⩰̸', |
487 | 'napid' => '≋̸', |
488 | 'ncong' => '≇', |
489 | 'ncongdot' => '⩭̸', |
490 | 'nequiv' => '≢', |
491 | 'ngE' => '≧̸', |
492 | 'nge' => '≱', |
493 | 'nges' => '⩾̸', |
494 | 'nGg' => '⋙̸', |
495 | 'ngsim' => '≵', |
496 | 'nGt' => '≫⃒', |
497 | 'ngt' => '≯', |
498 | 'nGtv' => '≫̸', |
499 | 'nlE' => '≦̸', |
500 | 'nle' => '≰', |
501 | 'nles' => '⩽̸', |
502 | 'nLl' => '⋘̸', |
503 | 'nlsim' => '≴', |
504 | 'nLt' => '≪⃒', |
505 | 'nlt' => '≮', |
506 | 'nltri' => '⋪', |
507 | 'nltrie' => '⋬', |
508 | 'nLtv' => '≪̸', |
509 | 'nmid' => '∤', |
510 | 'npar' => '∦', |
511 | 'npr' => '⊀', |
512 | 'nprcue' => '⋠', |
513 | 'npre' => '⪯̸', |
514 | 'nrtri' => '⋫', |
515 | 'nrtrie' => '⋭', |
516 | 'nsc' => '⊁', |
517 | 'nsccue' => '⋡', |
518 | 'nsce' => '⪰̸', |
519 | 'nsim' => '≁', |
520 | 'nsime' => '≄', |
521 | 'nsmid' => '∤', |
522 | 'nspar' => '∦', |
523 | 'nsqsube' => '⋢', |
524 | 'nsqsupe' => '⋣', |
525 | 'nsub' => '⊄', |
526 | 'nsubE' => '⫅̸', |
527 | 'nsube' => '⊈', |
528 | 'nsup' => '⊅', |
529 | 'nsupE' => '⫆̸', |
530 | 'nsupe' => '⊉', |
531 | 'ntgl' => '≹', |
532 | 'ntlg' => '≸', |
533 | 'nvap' => '≍⃒', |
534 | 'nVDash' => '⊯', |
535 | 'nVdash' => '⊮', |
536 | 'nvDash' => '⊭', |
537 | 'nvdash' => '⊬', |
538 | 'nvge' => '≥⃒', |
539 | 'nvgt' => '>⃒', |
540 | 'nvle' => '≤⃒', |
541 | 'nvltrie' => '⊴⃒', |
542 | 'nvrtrie' => '⊵⃒', |
543 | 'nvsim' => '∼⃒', |
544 | 'parsim' => '⫳', |
545 | 'prnap' => '⪹', |
546 | 'prnE' => '⪵', |
547 | 'prnsim' => '⋨', |
548 | 'rnmid' => '⫮', |
549 | 'scnap' => '⪺', |
550 | 'scnE' => '⪶', |
551 | 'scnsim' => '⋩', |
552 | 'simne' => '≆', |
553 | 'solbar' => '⌿', |
554 | 'subnE' => '⫋', |
555 | 'subne' => '⊊', |
556 | 'supnE' => '⫌', |
557 | 'supne' => '⊋', |
558 | 'vnsub' => '⊂⃒', |
559 | 'vnsup' => '⊃⃒', |
560 | 'vsubnE' => '⫋︀', |
561 | 'vsubne' => '⊊︀', |
562 | 'vsupnE' => '⫌︀', |
563 | 'vsupne' => '⊋︀', |
564 | 'ang' => '∠', |
565 | 'ange' => '⦤', |
566 | 'angmsd' => '∡', |
567 | 'angmsdaa' => '⦨', |
568 | 'angmsdab' => '⦩', |
569 | 'angmsdac' => '⦪', |
570 | 'angmsdad' => '⦫', |
571 | 'angmsdae' => '⦬', |
572 | 'angmsdaf' => '⦭', |
573 | 'angmsdag' => '⦮', |
574 | 'angmsdah' => '⦯', |
575 | 'angrtvb' => '⊾', |
576 | 'angrtvbd' => '⦝', |
577 | 'bbrk' => '⎵', |
578 | 'bbrktbrk' => '⎶', |
579 | 'bemptyv' => '⦰', |
580 | 'beth' => 'ℶ', |
581 | 'boxbox' => '⧉', |
582 | 'bprime' => '‵', |
583 | 'bsemi' => '⁏', |
584 | 'cemptyv' => '⦲', |
585 | 'cirE' => '⧃', |
586 | 'cirscir' => '⧂', |
587 | 'comp' => '∁', |
588 | 'daleth' => 'ℸ', |
589 | 'demptyv' => '⦱', |
590 | 'ell' => 'ℓ', |
591 | 'empty' => '∅', |
592 | 'emptyv' => '∅', |
593 | 'gimel' => 'ℷ', |
594 | 'iiota' => '℩', |
595 | 'image' => 'ℑ', |
596 | 'imath' => 'ı', |
597 | 'jmath' => 'ȷ', |
598 | 'laemptyv' => '⦴', |
599 | 'lltri' => '◺', |
600 | 'lrtri' => '⊿', |
601 | 'mho' => '℧', |
602 | 'nang' => '∠⃒', |
603 | 'nexist' => '∄', |
604 | 'oS' => 'Ⓢ', |
605 | 'planck' => 'ℏ', |
606 | 'plankv' => 'ℏ', |
607 | 'raemptyv' => '⦳', |
608 | 'range' => '⦥', |
609 | 'real' => 'ℜ', |
610 | 'tbrk' => '⎴', |
611 | 'trpezium' => '⏢', |
612 | 'ultri' => '◸', |
613 | 'urtri' => '◹', |
614 | 'vzigzag' => '⦚', |
615 | 'weierp' => '℘', |
616 | 'apE' => '⩰', |
617 | 'ape' => '≊', |
618 | 'apid' => '≋', |
619 | 'asymp' => '≈', |
620 | 'Barv' => '⫧', |
621 | 'bcong' => '≌', |
622 | 'bepsi' => '϶', |
623 | 'bowtie' => '⋈', |
624 | 'bsim' => '∽', |
625 | 'bsime' => '⋍', |
626 | 'bsolhsub' => '⟈', |
627 | 'bump' => '≎', |
628 | 'bumpE' => '⪮', |
629 | 'bumpe' => '≏', |
630 | 'cire' => '≗', |
631 | 'Colon' => '∷', |
632 | 'Colone' => '⩴', |
633 | 'colone' => '≔', |
634 | 'congdot' => '⩭', |
635 | 'csub' => '⫏', |
636 | 'csube' => '⫑', |
637 | 'csup' => '⫐', |
638 | 'csupe' => '⫒', |
639 | 'cuepr' => '⋞', |
640 | 'cuesc' => '⋟', |
641 | 'Dashv' => '⫤', |
642 | 'dashv' => '⊣', |
643 | 'easter' => '⩮', |
644 | 'ecir' => '≖', |
645 | 'ecolon' => '≕', |
646 | 'eDDot' => '⩷', |
647 | 'eDot' => '≑', |
648 | 'efDot' => '≒', |
649 | 'eg' => '⪚', |
650 | 'egs' => '⪖', |
651 | 'egsdot' => '⪘', |
652 | 'el' => '⪙', |
653 | 'els' => '⪕', |
654 | 'elsdot' => '⪗', |
655 | 'equest' => '≟', |
656 | 'equivDD' => '⩸', |
657 | 'erDot' => '≓', |
658 | 'esdot' => '≐', |
659 | 'Esim' => '⩳', |
660 | 'esim' => '≂', |
661 | 'fork' => '⋔', |
662 | 'forkv' => '⫙', |
663 | 'frown' => '⌢', |
664 | 'gap' => '⪆', |
665 | 'gE' => '≧', |
666 | 'gEl' => '⪌', |
667 | 'gel' => '⋛', |
668 | 'ges' => '⩾', |
669 | 'gescc' => '⪩', |
670 | 'gesdot' => '⪀', |
671 | 'gesdoto' => '⪂', |
672 | 'gesdotol' => '⪄', |
673 | 'gesl' => '⋛︀', |
674 | 'gesles' => '⪔', |
675 | 'Gg' => '⋙', |
676 | 'gl' => '≷', |
677 | 'gla' => '⪥', |
678 | 'glE' => '⪒', |
679 | 'glj' => '⪤', |
680 | 'gsim' => '≳', |
681 | 'gsime' => '⪎', |
682 | 'gsiml' => '⪐', |
683 | 'Gt' => '≫', |
684 | 'gtcc' => '⪧', |
685 | 'gtcir' => '⩺', |
686 | 'gtdot' => '⋗', |
687 | 'gtquest' => '⩼', |
688 | 'gtrarr' => '⥸', |
689 | 'homtht' => '∻', |
690 | 'lap' => '⪅', |
691 | 'lat' => '⪫', |
692 | 'late' => '⪭', |
693 | 'lates' => '⪭︀', |
694 | 'lE' => '≦', |
695 | 'lEg' => '⪋', |
696 | 'leg' => '⋚', |
697 | 'les' => '⩽', |
698 | 'lescc' => '⪨', |
699 | 'lesdot' => '⩿', |
700 | 'lesdoto' => '⪁', |
701 | 'lesdotor' => '⪃', |
702 | 'lesg' => '⋚︀', |
703 | 'lesges' => '⪓', |
704 | 'lg' => '≶', |
705 | 'lgE' => '⪑', |
706 | 'Ll' => '⋘', |
707 | 'lsim' => '≲', |
708 | 'lsime' => '⪍', |
709 | 'lsimg' => '⪏', |
710 | 'Lt' => '≪', |
711 | 'ltcc' => '⪦', |
712 | 'ltcir' => '⩹', |
713 | 'ltdot' => '⋖', |
714 | 'ltlarr' => '⥶', |
715 | 'ltquest' => '⩻', |
716 | 'ltrie' => '⊴', |
717 | 'mcomma' => '⨩', |
718 | 'mDDot' => '∺', |
719 | 'mid' => '∣', |
720 | 'mlcp' => '⫛', |
721 | 'models' => '⊧', |
722 | 'mstpos' => '∾', |
723 | 'Pr' => '⪻', |
724 | 'pr' => '≺', |
725 | 'prap' => '⪷', |
726 | 'prcue' => '≼', |
727 | 'prE' => '⪳', |
728 | 'pre' => '⪯', |
729 | 'prsim' => '≾', |
730 | 'prurel' => '⊰', |
731 | 'ratio' => '∶', |
732 | 'rtrie' => '⊵', |
733 | 'rtriltri' => '⧎', |
734 | 'Sc' => '⪼', |
735 | 'sc' => '≻', |
736 | 'scap' => '⪸', |
737 | 'sccue' => '≽', |
738 | 'scE' => '⪴', |
739 | 'sce' => '⪰', |
740 | 'scsim' => '≿', |
741 | 'sdote' => '⩦', |
742 | 'sfrown' => '⌢', |
743 | 'simg' => '⪞', |
744 | 'simgE' => '⪠', |
745 | 'siml' => '⪝', |
746 | 'simlE' => '⪟', |
747 | 'smid' => '∣', |
748 | 'smile' => '⌣', |
749 | 'smt' => '⪪', |
750 | 'smte' => '⪬', |
751 | 'smtes' => '⪬︀', |
752 | 'spar' => '∥', |
753 | 'sqsub' => '⊏', |
754 | 'sqsube' => '⊑', |
755 | 'sqsup' => '⊐', |
756 | 'sqsupe' => '⊒', |
757 | 'ssmile' => '⌣', |
758 | 'Sub' => '⋐', |
759 | 'subE' => '⫅', |
760 | 'subedot' => '⫃', |
761 | 'submult' => '⫁', |
762 | 'subplus' => '⪿', |
763 | 'subrarr' => '⥹', |
764 | 'subsim' => '⫇', |
765 | 'subsub' => '⫕', |
766 | 'subsup' => '⫓', |
767 | 'Sup' => '⋑', |
768 | 'supdsub' => '⫘', |
769 | 'supE' => '⫆', |
770 | 'supedot' => '⫄', |
771 | 'suphsol' => '⟉', |
772 | 'suphsub' => '⫗', |
773 | 'suplarr' => '⥻', |
774 | 'supmult' => '⫂', |
775 | 'supplus' => '⫀', |
776 | 'supsim' => '⫈', |
777 | 'supsub' => '⫔', |
778 | 'supsup' => '⫖', |
779 | 'thkap' => '≈', |
780 | 'thksim' => '∼', |
781 | 'topfork' => '⫚', |
782 | 'trie' => '≜', |
783 | 'twixt' => '≬', |
784 | 'Vbar' => '⫫', |
785 | 'vBar' => '⫨', |
786 | 'vBarv' => '⫩', |
787 | 'VDash' => '⊫', |
788 | 'Vdash' => '⊩', |
789 | 'vDash' => '⊨', |
790 | 'vdash' => '⊢', |
791 | 'Vdashl' => '⫦', |
792 | 'vltri' => '⊲', |
793 | 'vprop' => '∝', |
794 | 'vrtri' => '⊳', |
795 | 'Vvdash' => '⊪', |
796 | 'alpha' => 'α', |
797 | 'beta' => 'β', |
798 | 'chi' => 'χ', |
799 | 'Delta' => 'Δ', |
800 | 'delta' => 'δ', |
801 | 'epsi' => 'ϵ', |
802 | 'epsiv' => 'ϵ', |
803 | 'eta' => 'η', |
804 | 'Gamma' => 'Γ', |
805 | 'gamma' => 'γ', |
806 | 'Gammad' => 'Ϝ', |
807 | 'gammad' => 'ϝ', |
808 | 'iota' => 'ι', |
809 | 'kappa' => 'κ', |
810 | 'kappav' => 'ϰ', |
811 | 'Lambda' => 'Λ', |
812 | 'lambda' => 'λ', |
813 | 'mu' => 'μ', |
814 | 'nu' => 'ν', |
815 | 'Omega' => 'Ω', |
816 | 'omega' => 'ω', |
817 | 'phgr' => 'φ', |
818 | 'Phi' => 'Φ', |
819 | 'phi' => 'φ', |
820 | 'phis' => 'ϕ', |
821 | 'phiv' => 'ϕ', |
822 | 'Pi' => 'Π', |
823 | 'pi' => 'π', |
824 | 'piv' => 'ϖ', |
825 | 'Psi' => 'Ψ', |
826 | 'psi' => 'ψ', |
827 | 'rho' => 'ρ', |
828 | 'rhov' => 'ϱ', |
829 | 'Sigma' => 'Σ', |
830 | 'sigma' => 'σ', |
831 | 'sigmav' => 'ς', |
832 | 'tau' => 'τ', |
833 | 'Theta' => 'Θ', |
834 | 'theta' => 'θ', |
835 | 'thetav' => 'ϑ', |
836 | 'Upsi' => 'ϒ', |
837 | 'upsi' => 'υ', |
838 | 'Xi' => 'Ξ', |
839 | 'xi' => 'ξ', |
840 | 'zeta' => 'ζ', |
841 | 'Afr' => '𝔄', |
842 | 'afr' => '𝔞', |
843 | 'Bfr' => '𝔅', |
844 | 'bfr' => '𝔟', |
845 | 'Cfr' => 'ℭ', |
846 | 'cfr' => '𝔠', |
847 | 'Dfr' => '𝔇', |
848 | 'dfr' => '𝔡', |
849 | 'Efr' => '𝔈', |
850 | 'efr' => '𝔢', |
851 | 'Ffr' => '𝔉', |
852 | 'ffr' => '𝔣', |
853 | 'Gfr' => '𝔊', |
854 | 'gfr' => '𝔤', |
855 | 'Hfr' => 'ℌ', |
856 | 'hfr' => '𝔥', |
857 | 'Ifr' => 'ℑ', |
858 | 'ifr' => '𝔦', |
859 | 'Jfr' => '𝔍', |
860 | 'jfr' => '𝔧', |
861 | 'Kfr' => '𝔎', |
862 | 'kfr' => '𝔨', |
863 | 'Lfr' => '𝔏', |
864 | 'lfr' => '𝔩', |
865 | 'Mfr' => '𝔐', |
866 | 'mfr' => '𝔪', |
867 | 'Nfr' => '𝔑', |
868 | 'nfr' => '𝔫', |
869 | 'Ofr' => '𝔒', |
870 | 'ofr' => '𝔬', |
871 | 'Pfr' => '𝔓', |
872 | 'pfr' => '𝔭', |
873 | 'Qfr' => '𝔔', |
874 | 'qfr' => '𝔮', |
875 | 'Rfr' => 'ℜ', |
876 | 'rfr' => '𝔯', |
877 | 'Sfr' => '𝔖', |
878 | 'sfr' => '𝔰', |
879 | 'Tfr' => '𝔗', |
880 | 'tfr' => '𝔱', |
881 | 'Ufr' => '𝔘', |
882 | 'ufr' => '𝔲', |
883 | 'Vfr' => '𝔙', |
884 | 'vfr' => '𝔳', |
885 | 'Wfr' => '𝔚', |
886 | 'wfr' => '𝔴', |
887 | 'Xfr' => '𝔛', |
888 | 'xfr' => '𝔵', |
889 | 'Yfr' => '𝔜', |
890 | 'yfr' => '𝔶', |
891 | 'Zfr' => 'ℨ', |
892 | 'zfr' => '𝔷', |
893 | 'Aopf' => '𝔸', |
894 | 'Bopf' => '𝔹', |
895 | 'Copf' => 'ℂ', |
896 | 'Dopf' => '𝔻', |
897 | 'Eopf' => '𝔼', |
898 | 'Fopf' => '𝔽', |
899 | 'Gopf' => '𝔾', |
900 | 'Hopf' => 'ℍ', |
901 | 'Iopf' => '𝕀', |
902 | 'Jopf' => '𝕁', |
903 | 'Kopf' => '𝕂', |
904 | 'Lopf' => '𝕃', |
905 | 'Mopf' => '𝕄', |
906 | 'Nopf' => 'ℕ', |
907 | 'Oopf' => '𝕆', |
908 | 'Popf' => 'ℙ', |
909 | 'Qopf' => 'ℚ', |
910 | 'Ropf' => 'ℝ', |
911 | 'Sopf' => '𝕊', |
912 | 'Topf' => '𝕋', |
913 | 'Uopf' => '𝕌', |
914 | 'Vopf' => '𝕍', |
915 | 'Wopf' => '𝕎', |
916 | 'Xopf' => '𝕏', |
917 | 'Yopf' => '𝕐', |
918 | 'Zopf' => 'ℤ', |
919 | 'Ascr' => '𝒜', |
920 | 'ascr' => '𝒶', |
921 | 'Bscr' => 'ℬ', |
922 | 'bscr' => '𝒷', |
923 | 'Cscr' => '𝒞', |
924 | 'cscr' => '𝒸', |
925 | 'Dscr' => '𝒟', |
926 | 'dscr' => '𝒹', |
927 | 'Escr' => 'ℰ', |
928 | 'escr' => 'ℯ', |
929 | 'Fscr' => 'ℱ', |
930 | 'fscr' => '𝒻', |
931 | 'Gscr' => '𝒢', |
932 | 'gscr' => 'ℊ', |
933 | 'Hscr' => 'ℋ', |
934 | 'hscr' => '𝒽', |
935 | 'Iscr' => 'ℐ', |
936 | 'iscr' => '𝒾', |
937 | 'Jscr' => '𝒥', |
938 | 'jscr' => '𝒿', |
939 | 'Kscr' => '𝒦', |
940 | 'kscr' => '𝓀', |
941 | 'Lscr' => 'ℒ', |
942 | 'lscr' => '𝓁', |
943 | 'Mscr' => 'ℳ', |
944 | 'mscr' => '𝓂', |
945 | 'Nscr' => '𝒩', |
946 | 'nscr' => '𝓃', |
947 | 'Oscr' => '𝒪', |
948 | 'oscr' => 'ℴ', |
949 | 'Pscr' => '𝒫', |
950 | 'pscr' => '𝓅', |
951 | 'Qscr' => '𝒬', |
952 | 'qscr' => '𝓆', |
953 | 'Rscr' => 'ℛ', |
954 | 'rscr' => '𝓇', |
955 | 'Sscr' => '𝒮', |
956 | 'sscr' => '𝓈', |
957 | 'Tscr' => '𝒯', |
958 | 'tscr' => '𝓉', |
959 | 'Uscr' => '𝒰', |
960 | 'uscr' => '𝓊', |
961 | 'Vscr' => '𝒱', |
962 | 'vscr' => '𝓋', |
963 | 'Wscr' => '𝒲', |
964 | 'wscr' => '𝓌', |
965 | 'Xscr' => '𝒳', |
966 | 'xscr' => '𝓍', |
967 | 'Yscr' => '𝒴', |
968 | 'yscr' => '𝓎', |
969 | 'Zscr' => '𝒵', |
970 | 'zscr' => '𝓏', |
971 | 'acd' => '∿', |
972 | 'aleph' => 'ℵ', |
973 | 'And' => '⩓', |
974 | 'and' => '∧', |
975 | 'andand' => '⩕', |
976 | 'andd' => '⩜', |
977 | 'andslope' => '⩘', |
978 | 'andv' => '⩚', |
979 | 'angrt' => '∟', |
980 | 'angsph' => '∢', |
981 | 'angst' => 'Å', |
982 | 'ap' => '≈', |
983 | 'apacir' => '⩯', |
984 | 'awconint' => '∳', |
985 | 'awint' => '⨑', |
986 | 'becaus' => '∵', |
987 | 'bernou' => 'ℬ', |
988 | 'bne' => '=⃥', |
989 | 'bnequiv' => '≡⃥', |
990 | 'bNot' => '⫭', |
991 | 'bnot' => '⌐', |
992 | 'bottom' => '⊥', |
993 | 'cap' => '∩', |
994 | 'Cconint' => '∰', |
995 | 'cirfnint' => '⨐', |
996 | 'compfn' => '∘', |
997 | 'cong' => '≅', |
998 | 'Conint' => '∯', |
999 | 'conint' => '∮', |
1000 | 'ctdot' => '⋯', |
1001 | 'cup' => '∪', |
1002 | 'cwconint' => '∲', |
1003 | 'cwint' => '∱', |
1004 | 'cylcty' => '⌭', |
1005 | 'disin' => '⋲', |
1006 | 'Dot' => '¨', |
1007 | 'DotDot' => '⃜', |
1008 | 'dsol' => '⧶', |
1009 | 'dtdot' => '⋱', |
1010 | 'dwangle' => '⦦', |
1011 | 'elinters' => '⏧', |
1012 | 'epar' => '⋕', |
1013 | 'eparsl' => '⧣', |
1014 | 'equiv' => '≡', |
1015 | 'eqvparsl' => '⧥', |
1016 | 'exist' => '∃', |
1017 | 'fltns' => '▱', |
1018 | 'fnof' => 'ƒ', |
1019 | 'forall' => '∀', |
1020 | 'fpartint' => '⨍', |
1021 | 'ge' => '≥', |
1022 | 'hamilt' => 'ℋ', |
1023 | 'iff' => '⇔', |
1024 | 'iinfin' => '⧜', |
1025 | 'imped' => 'Ƶ', |
1026 | 'infin' => '∞', |
1027 | 'infintie' => '⧝', |
1028 | 'Int' => '∬', |
1029 | 'int' => '∫', |
1030 | 'intlarhk' => '⨗', |
1031 | 'isin' => '∈', |
1032 | 'isindot' => '⋵', |
1033 | 'isinE' => '⋹', |
1034 | 'isins' => '⋴', |
1035 | 'isinsv' => '⋳', |
1036 | 'isinv' => '∈', |
1037 | 'lagran' => 'ℒ', |
1038 | 'Lang' => '⟪', |
1039 | 'lang' => '⟨', |
1040 | 'lArr' => '⇐', |
1041 | 'lbbrk' => '❲', |
1042 | 'le' => '≤', |
1043 | 'loang' => '⟬', |
1044 | 'lobrk' => '⟦', |
1045 | 'lopar' => '⦅', |
1046 | 'lowast' => '∗', |
1047 | 'minus' => '−', |
1048 | 'mnplus' => '∓', |
1049 | 'nabla' => '∇', |
1050 | 'ne' => '≠', |
1051 | 'nedot' => '≐̸', |
1052 | 'nhpar' => '⫲', |
1053 | 'ni' => '∋', |
1054 | 'nis' => '⋼', |
1055 | 'nisd' => '⋺', |
1056 | 'niv' => '∋', |
1057 | 'Not' => '⫬', |
1058 | 'notin' => '∉', |
1059 | 'notindot' => '⋵̸', |
1060 | 'notinE' => '⋹̸', |
1061 | 'notinva' => '∉', |
1062 | 'notinvb' => '⋷', |
1063 | 'notinvc' => '⋶', |
1064 | 'notni' => '∌', |
1065 | 'notniva' => '∌', |
1066 | 'notnivb' => '⋾', |
1067 | 'notnivc' => '⋽', |
1068 | 'nparsl' => '⫽⃥', |
1069 | 'npart' => '∂̸', |
1070 | 'npolint' => '⨔', |
1071 | 'nvinfin' => '⧞', |
1072 | 'olcross' => '⦻', |
1073 | 'Or' => '⩔', |
1074 | 'or' => '∨', |
1075 | 'ord' => '⩝', |
1076 | 'order' => 'ℴ', |
1077 | 'oror' => '⩖', |
1078 | 'orslope' => '⩗', |
1079 | 'orv' => '⩛', |
1080 | 'par' => '∥', |
1081 | 'parsl' => '⫽', |
1082 | 'part' => '∂', |
1083 | 'permil' => '‰', |
1084 | 'perp' => '⊥', |
1085 | 'pertenk' => '‱', |
1086 | 'phmmat' => 'ℳ', |
1087 | 'pointint' => '⨕', |
1088 | 'Prime' => '″', |
1089 | 'prime' => '′', |
1090 | 'profalar' => '⌮', |
1091 | 'profline' => '⌒', |
1092 | 'profsurf' => '⌓', |
1093 | 'prop' => '∝', |
1094 | 'qint' => '⨌', |
1095 | 'qprime' => '⁗', |
1096 | 'quatint' => '⨖', |
1097 | 'radic' => '√', |
1098 | 'Rang' => '⟫', |
1099 | 'rang' => '⟩', |
1100 | 'rArr' => '⇒', |
1101 | 'rbbrk' => '❳', |
1102 | 'roang' => '⟭', |
1103 | 'robrk' => '⟧', |
1104 | 'ropar' => '⦆', |
1105 | 'rppolint' => '⨒', |
1106 | 'scpolint' => '⨓', |
1107 | 'sim' => '∼', |
1108 | 'simdot' => '⩪', |
1109 | 'sime' => '≃', |
1110 | 'smeparsl' => '⧤', |
1111 | 'square' => '□', |
1112 | 'squarf' => '▪', |
1113 | 'strns' => '¯', |
1114 | 'sub' => '⊂', |
1115 | 'sube' => '⊆', |
1116 | 'sup' => '⊃', |
1117 | 'supe' => '⊇', |
1118 | 'tdot' => '⃛', |
1119 | 'there4' => '∴', |
1120 | 'tint' => '∭', |
1121 | 'top' => '⊤', |
1122 | 'topbot' => '⌶', |
1123 | 'topcir' => '⫱', |
1124 | 'tprime' => '‴', |
1125 | 'utdot' => '⋰', |
1126 | 'uwangle' => '⦧', |
1127 | 'vangrt' => '⦜', |
1128 | 'veeeq' => '≚', |
1129 | 'Verbar' => '‖', |
1130 | 'wedgeq' => '≙', |
1131 | 'xnis' => '⋻', |
1132 | 'boxDL' => '╗', |
1133 | 'boxDl' => '╖', |
1134 | 'boxdL' => '╕', |
1135 | 'boxdl' => '┐', |
1136 | 'boxDR' => '╔', |
1137 | 'boxDr' => '╓', |
1138 | 'boxdR' => '╒', |
1139 | 'boxdr' => '┌', |
1140 | 'boxH' => '═', |
1141 | 'boxh' => '─', |
1142 | 'boxHD' => '╦', |
1143 | 'boxHd' => '╤', |
1144 | 'boxhD' => '╥', |
1145 | 'boxhd' => '┬', |
1146 | 'boxHU' => '╩', |
1147 | 'boxHu' => '╧', |
1148 | 'boxhU' => '╨', |
1149 | 'boxhu' => '┴', |
1150 | 'boxUL' => '╝', |
1151 | 'boxUl' => '╜', |
1152 | 'boxuL' => '╛', |
1153 | 'boxul' => '┘', |
1154 | 'boxUR' => '╚', |
1155 | 'boxUr' => '╙', |
1156 | 'boxuR' => '╘', |
1157 | 'boxur' => '└', |
1158 | 'boxV' => '║', |
1159 | 'boxv' => '│', |
1160 | 'boxVH' => '╬', |
1161 | 'boxVh' => '╫', |
1162 | 'boxvH' => '╪', |
1163 | 'boxvh' => '┼', |
1164 | 'boxVL' => '╣', |
1165 | 'boxVl' => '╢', |
1166 | 'boxvL' => '╡', |
1167 | 'boxvl' => '┤', |
1168 | 'boxVR' => '╠', |
1169 | 'boxVr' => '╟', |
1170 | 'boxvR' => '╞', |
1171 | 'boxvr' => '├', |
1172 | 'Acy' => 'А', |
1173 | 'acy' => 'а', |
1174 | 'Bcy' => 'Б', |
1175 | 'bcy' => 'б', |
1176 | 'CHcy' => 'Ч', |
1177 | 'chcy' => 'ч', |
1178 | 'Dcy' => 'Д', |
1179 | 'dcy' => 'д', |
1180 | 'Ecy' => 'Э', |
1181 | 'ecy' => 'э', |
1182 | 'Fcy' => 'Ф', |
1183 | 'fcy' => 'ф', |
1184 | 'Gcy' => 'Г', |
1185 | 'gcy' => 'г', |
1186 | 'HARDcy' => 'Ъ', |
1187 | 'hardcy' => 'ъ', |
1188 | 'Icy' => 'И', |
1189 | 'icy' => 'и', |
1190 | 'IEcy' => 'Е', |
1191 | 'iecy' => 'е', |
1192 | 'IOcy' => 'Ё', |
1193 | 'iocy' => 'ё', |
1194 | 'Jcy' => 'Й', |
1195 | 'jcy' => 'й', |
1196 | 'Kcy' => 'К', |
1197 | 'kcy' => 'к', |
1198 | 'KHcy' => 'Х', |
1199 | 'khcy' => 'х', |
1200 | 'Lcy' => 'Л', |
1201 | 'lcy' => 'л', |
1202 | 'Mcy' => 'М', |
1203 | 'mcy' => 'м', |
1204 | 'Ncy' => 'Н', |
1205 | 'ncy' => 'н', |
1206 | 'numero' => '№', |
1207 | 'Ocy' => 'О', |
1208 | 'ocy' => 'о', |
1209 | 'Pcy' => 'П', |
1210 | 'pcy' => 'п', |
1211 | 'Rcy' => 'Р', |
1212 | 'rcy' => 'р', |
1213 | 'Scy' => 'С', |
1214 | 'scy' => 'с', |
1215 | 'SHCHcy' => 'Щ', |
1216 | 'shchcy' => 'щ', |
1217 | 'SHcy' => 'Ш', |
1218 | 'shcy' => 'ш', |
1219 | 'SOFTcy' => 'Ь', |
1220 | 'softcy' => 'ь', |
1221 | 'Tcy' => 'Т', |
1222 | 'tcy' => 'т', |
1223 | 'TScy' => 'Ц', |
1224 | 'tscy' => 'ц', |
1225 | 'Ucy' => 'У', |
1226 | 'ucy' => 'у', |
1227 | 'Vcy' => 'В', |
1228 | 'vcy' => 'в', |
1229 | 'YAcy' => 'Я', |
1230 | 'yacy' => 'я', |
1231 | 'Ycy' => 'Ы', |
1232 | 'ycy' => 'ы', |
1233 | 'YUcy' => 'Ю', |
1234 | 'yucy' => 'ю', |
1235 | 'Zcy' => 'З', |
1236 | 'zcy' => 'з', |
1237 | 'ZHcy' => 'Ж', |
1238 | 'zhcy' => 'ж', |
1239 | 'DJcy' => 'Ђ', |
1240 | 'djcy' => 'ђ', |
1241 | 'DScy' => 'Ѕ', |
1242 | 'dscy' => 'ѕ', |
1243 | 'DZcy' => 'Џ', |
1244 | 'dzcy' => 'џ', |
1245 | 'GJcy' => 'Ѓ', |
1246 | 'gjcy' => 'ѓ', |
1247 | 'Iukcy' => 'І', |
1248 | 'iukcy' => 'і', |
1249 | 'Jsercy' => 'Ј', |
1250 | 'jsercy' => 'ј', |
1251 | 'Jukcy' => 'Є', |
1252 | 'jukcy' => 'є', |
1253 | 'KJcy' => 'Ќ', |
1254 | 'kjcy' => 'ќ', |
1255 | 'LJcy' => 'Љ', |
1256 | 'ljcy' => 'љ', |
1257 | 'NJcy' => 'Њ', |
1258 | 'njcy' => 'њ', |
1259 | 'TSHcy' => 'Ћ', |
1260 | 'tshcy' => 'ћ', |
1261 | 'Ubrcy' => 'Ў', |
1262 | 'ubrcy' => 'ў', |
1263 | 'YIcy' => 'Ї', |
1264 | 'yicy' => 'ї', |
1265 | 'acute' => '´', |
1266 | 'breve' => '˘', |
1267 | 'caron' => 'ˇ', |
1268 | 'cedil' => '¸', |
1269 | 'circ' => 'ˆ', |
1270 | 'dblac' => '˝', |
1271 | 'die' => '¨', |
1272 | 'dot' => '˙', |
1273 | 'grave' => '`', |
1274 | 'macr' => '¯', |
1275 | 'ogon' => '˛', |
1276 | 'ring' => '˚', |
1277 | 'tilde' => '˜', |
1278 | 'uml' => '¨', |
1279 | 'Aacute' => 'Á', |
1280 | 'aacute' => 'á', |
1281 | 'Acirc' => 'Â', |
1282 | 'acirc' => 'â', |
1283 | 'AElig' => 'Æ', |
1284 | 'aelig' => 'æ', |
1285 | 'Agrave' => 'À', |
1286 | 'agrave' => 'à', |
1287 | 'Aring' => 'Å', |
1288 | 'aring' => 'å', |
1289 | 'Atilde' => 'Ã', |
1290 | 'atilde' => 'ã', |
1291 | 'Auml' => 'Ä', |
1292 | 'auml' => 'ä', |
1293 | 'Ccedil' => 'Ç', |
1294 | 'ccedil' => 'ç', |
1295 | 'Eacute' => 'É', |
1296 | 'eacute' => 'é', |
1297 | 'Ecirc' => 'Ê', |
1298 | 'ecirc' => 'ê', |
1299 | 'Egrave' => 'È', |
1300 | 'egrave' => 'è', |
1301 | 'ETH' => 'Ð', |
1302 | 'eth' => 'ð', |
1303 | 'Euml' => 'Ë', |
1304 | 'euml' => 'ë', |
1305 | 'Iacute' => 'Í', |
1306 | 'iacute' => 'í', |
1307 | 'Icirc' => 'Î', |
1308 | 'icirc' => 'î', |
1309 | 'Igrave' => 'Ì', |
1310 | 'igrave' => 'ì', |
1311 | 'Iuml' => 'Ï', |
1312 | 'iuml' => 'ï', |
1313 | 'Ntilde' => 'Ñ', |
1314 | 'ntilde' => 'ñ', |
1315 | 'Oacute' => 'Ó', |
1316 | 'oacute' => 'ó', |
1317 | 'Ocirc' => 'Ô', |
1318 | 'ocirc' => 'ô', |
1319 | 'Ograve' => 'Ò', |
1320 | 'ograve' => 'ò', |
1321 | 'Oslash' => 'Ø', |
1322 | 'oslash' => 'ø', |
1323 | 'Otilde' => 'Õ', |
1324 | 'otilde' => 'õ', |
1325 | 'Ouml' => 'Ö', |
1326 | 'ouml' => 'ö', |
1327 | 'szlig' => 'ß', |
1328 | 'THORN' => 'Þ', |
1329 | 'thorn' => 'þ', |
1330 | 'Uacute' => 'Ú', |
1331 | 'uacute' => 'ú', |
1332 | 'Ucirc' => 'Û', |
1333 | 'ucirc' => 'û', |
1334 | 'Ugrave' => 'Ù', |
1335 | 'ugrave' => 'ù', |
1336 | 'Uuml' => 'Ü', |
1337 | 'uuml' => 'ü', |
1338 | 'Yacute' => 'Ý', |
1339 | 'yacute' => 'ý', |
1340 | 'yuml' => 'ÿ', |
1341 | 'Abreve' => 'Ă', |
1342 | 'abreve' => 'ă', |
1343 | 'Amacr' => 'Ā', |
1344 | 'amacr' => 'ā', |
1345 | 'Aogon' => 'Ą', |
1346 | 'aogon' => 'ą', |
1347 | 'Cacute' => 'Ć', |
1348 | 'cacute' => 'ć', |
1349 | 'Ccaron' => 'Č', |
1350 | 'ccaron' => 'č', |
1351 | 'Ccirc' => 'Ĉ', |
1352 | 'ccirc' => 'ĉ', |
1353 | 'Cdot' => 'Ċ', |
1354 | 'cdot' => 'ċ', |
1355 | 'Dcaron' => 'Ď', |
1356 | 'dcaron' => 'ď', |
1357 | 'Dstrok' => 'Đ', |
1358 | 'dstrok' => 'đ', |
1359 | 'Ecaron' => 'Ě', |
1360 | 'ecaron' => 'ě', |
1361 | 'Edot' => 'Ė', |
1362 | 'edot' => 'ė', |
1363 | 'Emacr' => 'Ē', |
1364 | 'emacr' => 'ē', |
1365 | 'ENG' => 'Ŋ', |
1366 | 'eng' => 'ŋ', |
1367 | 'Eogon' => 'Ę', |
1368 | 'eogon' => 'ę', |
1369 | 'gacute' => 'ǵ', |
1370 | 'Gbreve' => 'Ğ', |
1371 | 'gbreve' => 'ğ', |
1372 | 'Gcedil' => 'Ģ', |
1373 | 'Gcirc' => 'Ĝ', |
1374 | 'gcirc' => 'ĝ', |
1375 | 'Gdot' => 'Ġ', |
1376 | 'gdot' => 'ġ', |
1377 | 'Hcirc' => 'Ĥ', |
1378 | 'hcirc' => 'ĥ', |
1379 | 'Hstrok' => 'Ħ', |
1380 | 'hstrok' => 'ħ', |
1381 | 'Idot' => 'İ', |
1382 | 'IJlig' => 'IJ', |
1383 | 'ijlig' => 'ij', |
1384 | 'Imacr' => 'Ī', |
1385 | 'imacr' => 'ī', |
1386 | 'inodot' => 'ı', |
1387 | 'Iogon' => 'Į', |
1388 | 'iogon' => 'į', |
1389 | 'Itilde' => 'Ĩ', |
1390 | 'itilde' => 'ĩ', |
1391 | 'Jcirc' => 'Ĵ', |
1392 | 'jcirc' => 'ĵ', |
1393 | 'Kcedil' => 'Ķ', |
1394 | 'kcedil' => 'ķ', |
1395 | 'kgreen' => 'ĸ', |
1396 | 'Lacute' => 'Ĺ', |
1397 | 'lacute' => 'ĺ', |
1398 | 'Lcaron' => 'Ľ', |
1399 | 'lcaron' => 'ľ', |
1400 | 'Lcedil' => 'Ļ', |
1401 | 'lcedil' => 'ļ', |
1402 | 'Lmidot' => 'Ŀ', |
1403 | 'lmidot' => 'ŀ', |
1404 | 'Lstrok' => 'Ł', |
1405 | 'lstrok' => 'ł', |
1406 | 'Nacute' => 'Ń', |
1407 | 'nacute' => 'ń', |
1408 | 'napos' => 'ʼn', |
1409 | 'Ncaron' => 'Ň', |
1410 | 'ncaron' => 'ň', |
1411 | 'Ncedil' => 'Ņ', |
1412 | 'ncedil' => 'ņ', |
1413 | 'Odblac' => 'Ő', |
1414 | 'odblac' => 'ő', |
1415 | 'OElig' => 'Œ', |
1416 | 'oelig' => 'œ', |
1417 | 'Omacr' => 'Ō', |
1418 | 'omacr' => 'ō', |
1419 | 'Racute' => 'Ŕ', |
1420 | 'racute' => 'ŕ', |
1421 | 'Rcaron' => 'Ř', |
1422 | 'rcaron' => 'ř', |
1423 | 'Rcedil' => 'Ŗ', |
1424 | 'rcedil' => 'ŗ', |
1425 | 'Sacute' => 'Ś', |
1426 | 'sacute' => 'ś', |
1427 | 'Scaron' => 'Š', |
1428 | 'scaron' => 'š', |
1429 | 'Scedil' => 'Ş', |
1430 | 'scedil' => 'ş', |
1431 | 'Scirc' => 'Ŝ', |
1432 | 'scirc' => 'ŝ', |
1433 | 'Tcaron' => 'Ť', |
1434 | 'tcaron' => 'ť', |
1435 | 'Tcedil' => 'Ţ', |
1436 | 'tcedil' => 'ţ', |
1437 | 'Tstrok' => 'Ŧ', |
1438 | 'tstrok' => 'ŧ', |
1439 | 'Ubreve' => 'Ŭ', |
1440 | 'ubreve' => 'ŭ', |
1441 | 'Udblac' => 'Ű', |
1442 | 'udblac' => 'ű', |
1443 | 'Umacr' => 'Ū', |
1444 | 'umacr' => 'ū', |
1445 | 'Uogon' => 'Ų', |
1446 | 'uogon' => 'ų', |
1447 | 'Uring' => 'Ů', |
1448 | 'uring' => 'ů', |
1449 | 'Utilde' => 'Ũ', |
1450 | 'utilde' => 'ũ', |
1451 | 'Wcirc' => 'Ŵ', |
1452 | 'wcirc' => 'ŵ', |
1453 | 'Ycirc' => 'Ŷ', |
1454 | 'ycirc' => 'ŷ', |
1455 | 'Yuml' => 'Ÿ', |
1456 | 'Zacute' => 'Ź', |
1457 | 'zacute' => 'ź', |
1458 | 'Zcaron' => 'Ž', |
1459 | 'zcaron' => 'ž', |
1460 | 'Zdot' => 'Ż', |
1461 | 'zdot' => 'ż', |
1462 | 'apos' => ''', |
1463 | 'ast' => '*', |
1464 | 'brvbar' => '¦', |
1465 | 'bsol' => '\', |
1466 | 'cent' => '¢', |
1467 | 'colon' => ':', |
1468 | 'comma' => ',', |
1469 | 'commat' => '@', |
1470 | 'copy' => '©', |
1471 | 'curren' => '¤', |
1472 | 'darr' => '↓', |
1473 | 'deg' => '°', |
1474 | 'divide' => '÷', |
1475 | 'dollar' => '$', |
1476 | 'equals' => '=', |
1477 | 'excl' => '!', |
1478 | 'frac12' => '½', |
1479 | 'frac14' => '¼', |
1480 | 'frac18' => '⅛', |
1481 | 'frac34' => '¾', |
1482 | 'frac38' => '⅜', |
1483 | 'frac58' => '⅝', |
1484 | 'frac78' => '⅞', |
1485 | 'gt' => '>', |
1486 | 'half' => '½', |
1487 | 'horbar' => '―', |
1488 | 'hyphen' => '‐', |
1489 | 'iexcl' => '¡', |
1490 | 'iquest' => '¿', |
1491 | 'laquo' => '«', |
1492 | 'larr' => '←', |
1493 | 'lcub' => '{', |
1494 | 'ldquo' => '“', |
1495 | 'lowbar' => '_', |
1496 | 'lpar' => '(', |
1497 | 'lsqb' => '[', |
1498 | 'lsquo' => '‘', |
1499 | 'micro' => 'µ', |
1500 | 'middot' => '·', |
1501 | 'nbsp' => ' ', |
1502 | 'not' => '¬', |
1503 | 'num' => '#', |
1504 | 'ohm' => 'Ω', |
1505 | 'ordf' => 'ª', |
1506 | 'ordm' => 'º', |
1507 | 'para' => '¶', |
1508 | 'percnt' => '%', |
1509 | 'period' => '.', |
1510 | 'plus' => '+', |
1511 | 'plusmn' => '±', |
1512 | 'pound' => '£', |
1513 | 'quest' => '?', |
1514 | 'quot' => '"', |
1515 | 'raquo' => '»', |
1516 | 'rarr' => '→', |
1517 | 'rcub' => '}', |
1518 | 'rdquo' => '”', |
1519 | 'reg' => '®', |
1520 | 'rpar' => ')', |
1521 | 'rsqb' => ']', |
1522 | 'rsquo' => '’', |
1523 | 'sect' => '§', |
1524 | 'semi' => ';', |
1525 | 'shy' => '­', |
1526 | 'sol' => '/', |
1527 | 'sung' => '♪', |
1528 | 'sup1' => '¹', |
1529 | 'sup2' => '²', |
1530 | 'sup3' => '³', |
1531 | 'times' => '×', |
1532 | 'trade' => '™', |
1533 | 'uarr' => '↑', |
1534 | 'verbar' => '|', |
1535 | 'yen' => '¥', |
1536 | 'blank' => '␣', |
1537 | 'blk12' => '▒', |
1538 | 'blk14' => '░', |
1539 | 'blk34' => '▓', |
1540 | 'block' => '█', |
1541 | 'bull' => '•', |
1542 | 'caret' => '⁁', |
1543 | 'check' => '✓', |
1544 | 'cir' => '○', |
1545 | 'clubs' => '♣', |
1546 | 'copysr' => '℗', |
1547 | 'cross' => '✗', |
1548 | 'Dagger' => '‡', |
1549 | 'dagger' => '†', |
1550 | 'dash' => '‐', |
1551 | 'diams' => '♦', |
1552 | 'dlcrop' => '⌍', |
1553 | 'drcrop' => '⌌', |
1554 | 'dtri' => '▿', |
1555 | 'dtrif' => '▾', |
1556 | 'emsp' => ' ', |
1557 | 'emsp13' => ' ', |
1558 | 'emsp14' => ' ', |
1559 | 'ensp' => ' ', |
1560 | 'female' => '♀', |
1561 | 'ffilig' => 'ffi', |
1562 | 'fflig' => 'ff', |
1563 | 'ffllig' => 'ffl', |
1564 | 'filig' => 'fi', |
1565 | 'fjlig' => 'fj', |
1566 | 'flat' => '♭', |
1567 | 'fllig' => 'fl', |
1568 | 'frac13' => '⅓', |
1569 | 'frac15' => '⅕', |
1570 | 'frac16' => '⅙', |
1571 | 'frac23' => '⅔', |
1572 | 'frac25' => '⅖', |
1573 | 'frac35' => '⅗', |
1574 | 'frac45' => '⅘', |
1575 | 'frac56' => '⅚', |
1576 | 'hairsp' => ' ', |
1577 | 'hearts' => '♥', |
1578 | 'hellip' => '…', |
1579 | 'hybull' => '⁃', |
1580 | 'incare' => '℅', |
1581 | 'ldquor' => '„', |
1582 | 'lhblk' => '▄', |
1583 | 'loz' => '◊', |
1584 | 'lozf' => '⧫', |
1585 | 'lsquor' => '‚', |
1586 | 'ltri' => '◃', |
1587 | 'ltrif' => '◂', |
1588 | 'male' => '♂', |
1589 | 'malt' => '✠', |
1590 | 'marker' => '▮', |
1591 | 'mdash' => '—', |
1592 | 'mldr' => '…', |
1593 | 'natur' => '♮', |
1594 | 'ndash' => '–', |
1595 | 'nldr' => '‥', |
1596 | 'numsp' => ' ', |
1597 | 'phone' => '☎', |
1598 | 'puncsp' => ' ', |
1599 | 'rdquor' => '”', |
1600 | 'rect' => '▭', |
1601 | 'rsquor' => '’', |
1602 | 'rtri' => '▹', |
1603 | 'rtrif' => '▸', |
1604 | 'rx' => '℞', |
1605 | 'sext' => '✶', |
1606 | 'sharp' => '♯', |
1607 | 'spades' => '♠', |
1608 | 'squ' => '□', |
1609 | 'squf' => '▪', |
1610 | 'star' => '☆', |
1611 | 'starf' => '★', |
1612 | 'target' => '⌖', |
1613 | 'telrec' => '⌕', |
1614 | 'thinsp' => ' ', |
1615 | 'uhblk' => '▀', |
1616 | 'ulcrop' => '⌏', |
1617 | 'urcrop' => '⌎', |
1618 | 'utri' => '▵', |
1619 | 'utrif' => '▴', |
1620 | 'vellip' => '⋮', |
1621 | 'af' => '⁡', |
1622 | 'aopf' => '𝕒', |
1623 | 'asympeq' => '≍', |
1624 | 'bopf' => '𝕓', |
1625 | 'copf' => '𝕔', |
1626 | 'Cross' => '⨯', |
1627 | 'DD' => 'ⅅ', |
1628 | 'dd' => 'ⅆ', |
1629 | 'dopf' => '𝕕', |
1630 | 'DownArrowBar' => '⤓', |
1631 | 'DownBreve' => '̑', |
1632 | 'DownLeftRightVector' => '⥐', |
1633 | 'DownLeftTeeVector' => '⥞', |
1634 | 'DownLeftVectorBar' => '⥖', |
1635 | 'DownRightTeeVector' => '⥟', |
1636 | 'DownRightVectorBar' => '⥗', |
1637 | 'ee' => 'ⅇ', |
1638 | 'EmptySmallSquare' => '◻', |
1639 | 'EmptyVerySmallSquare' => '▫', |
1640 | 'eopf' => '𝕖', |
1641 | 'Equal' => '⩵', |
1642 | 'FilledSmallSquare' => '◼', |
1643 | 'FilledVerySmallSquare' => '▪', |
1644 | 'fopf' => '𝕗', |
1645 | 'gopf' => '𝕘', |
1646 | 'GreaterGreater' => '⪢', |
1647 | 'Hat' => '^', |
1648 | 'hopf' => '𝕙', |
1649 | 'HorizontalLine' => '─', |
1650 | 'ic' => '⁣', |
1651 | 'ii' => 'ⅈ', |
1652 | 'iopf' => '𝕚', |
1653 | 'it' => '⁢', |
1654 | 'jopf' => '𝕛', |
1655 | 'kopf' => '𝕜', |
1656 | 'larrb' => '⇤', |
1657 | 'LeftDownTeeVector' => '⥡', |
1658 | 'LeftDownVectorBar' => '⥙', |
1659 | 'LeftRightVector' => '⥎', |
1660 | 'LeftTeeVector' => '⥚', |
1661 | 'LeftTriangleBar' => '⧏', |
1662 | 'LeftUpDownVector' => '⥑', |
1663 | 'LeftUpTeeVector' => '⥠', |
1664 | 'LeftUpVectorBar' => '⥘', |
1665 | 'LeftVectorBar' => '⥒', |
1666 | 'LessLess' => '⪡', |
1667 | 'lopf' => '𝕝', |
1668 | 'mapstodown' => '↧', |
1669 | 'mapstoleft' => '↤', |
1670 | 'mapstoup' => '↥', |
1671 | 'MediumSpace' => ' ', |
1672 | 'mopf' => '𝕞', |
1673 | 'nbump' => '≎̸', |
1674 | 'nbumpe' => '≏̸', |
1675 | 'nesim' => '≂̸', |
1676 | 'NewLine' => '
', |
1677 | 'NoBreak' => '⁠', |
1678 | 'nopf' => '𝕟', |
1679 | 'NotCupCap' => '≭', |
1680 | 'NotHumpEqual' => '≏̸', |
1681 | 'NotLeftTriangleBar' => '⧏̸', |
1682 | 'NotNestedGreaterGreater' => '⪢̸', |
1683 | 'NotNestedLessLess' => '⪡̸', |
1684 | 'NotRightTriangleBar' => '⧐̸', |
1685 | 'NotSquareSubset' => '⊏̸', |
1686 | 'NotSquareSuperset' => '⊐̸', |
1687 | 'NotSucceedsTilde' => '≿̸', |
1688 | 'oopf' => '𝕠', |
1689 | 'OverBar' => '‾', |
1690 | 'OverBrace' => '⏞', |
1691 | 'OverBracket' => '⎴', |
1692 | 'OverParenthesis' => '⏜', |
1693 | 'planckh' => 'ℎ', |
1694 | 'popf' => '𝕡', |
1695 | 'Product' => '∏', |
1696 | 'qopf' => '𝕢', |
1697 | 'rarrb' => '⇥', |
1698 | 'RightDownTeeVector' => '⥝', |
1699 | 'RightDownVectorBar' => '⥕', |
1700 | 'RightTeeVector' => '⥛', |
1701 | 'RightTriangleBar' => '⧐', |
1702 | 'RightUpDownVector' => '⥏', |
1703 | 'RightUpTeeVector' => '⥜', |
1704 | 'RightUpVectorBar' => '⥔', |
1705 | 'RightVectorBar' => '⥓', |
1706 | 'ropf' => '𝕣', |
1707 | 'RoundImplies' => '⥰', |
1708 | 'RuleDelayed' => '⧴', |
1709 | 'sopf' => '𝕤', |
1710 | 'Tab' => '	', |
1711 | 'ThickSpace' => '  ', |
1712 | 'topf' => '𝕥', |
1713 | 'UnderBar' => '_', |
1714 | 'UnderBrace' => '⏟', |
1715 | 'UnderBracket' => '⎵', |
1716 | 'UnderParenthesis' => '⏝', |
1717 | 'uopf' => '𝕦', |
1718 | 'UpArrowBar' => '⤒', |
1719 | 'Upsilon' => 'Υ', |
1720 | 'VerticalLine' => '|', |
1721 | 'VerticalSeparator' => '❘', |
1722 | 'vopf' => '𝕧', |
1723 | 'wopf' => '𝕨', |
1724 | 'xopf' => '𝕩', |
1725 | 'yopf' => '𝕪', |
1726 | 'ZeroWidthSpace' => '​', |
1727 | 'zopf' => '𝕫', |
1728 | 'angle' => '∠', |
1729 | 'ApplyFunction' => '⁡', |
1730 | 'approx' => '≈', |
1731 | 'approxeq' => '≊', |
1732 | 'Assign' => '≔', |
1733 | 'backcong' => '≌', |
1734 | 'backepsilon' => '϶', |
1735 | 'backprime' => '‵', |
1736 | 'backsim' => '∽', |
1737 | 'backsimeq' => '⋍', |
1738 | 'Backslash' => '∖', |
1739 | 'barwedge' => '⌅', |
1740 | 'Because' => '∵', |
1741 | 'because' => '∵', |
1742 | 'Bernoullis' => 'ℬ', |
1743 | 'between' => '≬', |
1744 | 'bigcap' => '⋂', |
1745 | 'bigcirc' => '◯', |
1746 | 'bigcup' => '⋃', |
1747 | 'bigodot' => '⨀', |
1748 | 'bigoplus' => '⨁', |
1749 | 'bigotimes' => '⨂', |
1750 | 'bigsqcup' => '⨆', |
1751 | 'bigstar' => '★', |
1752 | 'bigtriangledown' => '▽', |
1753 | 'bigtriangleup' => '△', |
1754 | 'biguplus' => '⨄', |
1755 | 'bigvee' => '⋁', |
1756 | 'bigwedge' => '⋀', |
1757 | 'bkarow' => '⤍', |
1758 | 'blacklozenge' => '⧫', |
1759 | 'blacksquare' => '▪', |
1760 | 'blacktriangle' => '▴', |
1761 | 'blacktriangledown' => '▾', |
1762 | 'blacktriangleleft' => '◂', |
1763 | 'blacktriangleright' => '▸', |
1764 | 'bot' => '⊥', |
1765 | 'boxminus' => '⊟', |
1766 | 'boxplus' => '⊞', |
1767 | 'boxtimes' => '⊠', |
1768 | 'Breve' => '˘', |
1769 | 'bullet' => '•', |
1770 | 'Bumpeq' => '≎', |
1771 | 'bumpeq' => '≏', |
1772 | 'CapitalDifferentialD' => 'ⅅ', |
1773 | 'Cayleys' => 'ℭ', |
1774 | 'Cedilla' => '¸', |
1775 | 'CenterDot' => '·', |
1776 | 'centerdot' => '·', |
1777 | 'checkmark' => '✓', |
1778 | 'circeq' => '≗', |
1779 | 'circlearrowleft' => '↺', |
1780 | 'circlearrowright' => '↻', |
1781 | 'circledast' => '⊛', |
1782 | 'circledcirc' => '⊚', |
1783 | 'circleddash' => '⊝', |
1784 | 'CircleDot' => '⊙', |
1785 | 'circledR' => '®', |
1786 | 'circledS' => 'Ⓢ', |
1787 | 'CircleMinus' => '⊖', |
1788 | 'CirclePlus' => '⊕', |
1789 | 'CircleTimes' => '⊗', |
1790 | 'ClockwiseContourIntegral' => '∲', |
1791 | 'CloseCurlyDoubleQuote' => '”', |
1792 | 'CloseCurlyQuote' => '’', |
1793 | 'clubsuit' => '♣', |
1794 | 'coloneq' => '≔', |
1795 | 'complement' => '∁', |
1796 | 'complexes' => 'ℂ', |
1797 | 'Congruent' => '≡', |
1798 | 'ContourIntegral' => '∮', |
1799 | 'Coproduct' => '∐', |
1800 | 'CounterClockwiseContourIntegral' => '∳', |
1801 | 'CupCap' => '≍', |
1802 | 'curlyeqprec' => '⋞', |
1803 | 'curlyeqsucc' => '⋟', |
1804 | 'curlyvee' => '⋎', |
1805 | 'curlywedge' => '⋏', |
1806 | 'curvearrowleft' => '↶', |
1807 | 'curvearrowright' => '↷', |
1808 | 'dbkarow' => '⤏', |
1809 | 'ddagger' => '‡', |
1810 | 'ddotseq' => '⩷', |
1811 | 'Del' => '∇', |
1812 | 'DiacriticalAcute' => '´', |
1813 | 'DiacriticalDot' => '˙', |
1814 | 'DiacriticalDoubleAcute' => '˝', |
1815 | 'DiacriticalGrave' => '`', |
1816 | 'DiacriticalTilde' => '˜', |
1817 | 'Diamond' => '⋄', |
1818 | 'diamond' => '⋄', |
1819 | 'diamondsuit' => '♦', |
1820 | 'DifferentialD' => 'ⅆ', |
1821 | 'digamma' => 'ϝ', |
1822 | 'div' => '÷', |
1823 | 'divideontimes' => '⋇', |
1824 | 'doteq' => '≐', |
1825 | 'doteqdot' => '≑', |
1826 | 'DotEqual' => '≐', |
1827 | 'dotminus' => '∸', |
1828 | 'dotplus' => '∔', |
1829 | 'dotsquare' => '⊡', |
1830 | 'doublebarwedge' => '⌆', |
1831 | 'DoubleContourIntegral' => '∯', |
1832 | 'DoubleDot' => '¨', |
1833 | 'DoubleDownArrow' => '⇓', |
1834 | 'DoubleLeftArrow' => '⇐', |
1835 | 'DoubleLeftRightArrow' => '⇔', |
1836 | 'DoubleLeftTee' => '⫤', |
1837 | 'DoubleLongLeftArrow' => '⟸', |
1838 | 'DoubleLongLeftRightArrow' => '⟺', |
1839 | 'DoubleLongRightArrow' => '⟹', |
1840 | 'DoubleRightArrow' => '⇒', |
1841 | 'DoubleRightTee' => '⊨', |
1842 | 'DoubleUpArrow' => '⇑', |
1843 | 'DoubleUpDownArrow' => '⇕', |
1844 | 'DoubleVerticalBar' => '∥', |
1845 | 'DownArrow' => '↓', |
1846 | 'Downarrow' => '⇓', |
1847 | 'downarrow' => '↓', |
1848 | 'DownArrowUpArrow' => '⇵', |
1849 | 'downdownarrows' => '⇊', |
1850 | 'downharpoonleft' => '⇃', |
1851 | 'downharpoonright' => '⇂', |
1852 | 'DownLeftVector' => '↽', |
1853 | 'DownRightVector' => '⇁', |
1854 | 'DownTee' => '⊤', |
1855 | 'DownTeeArrow' => '↧', |
1856 | 'drbkarow' => '⤐', |
1857 | 'Element' => '∈', |
1858 | 'emptyset' => '∅', |
1859 | 'eqcirc' => '≖', |
1860 | 'eqcolon' => '≕', |
1861 | 'eqsim' => '≂', |
1862 | 'eqslantgtr' => '⪖', |
1863 | 'eqslantless' => '⪕', |
1864 | 'EqualTilde' => '≂', |
1865 | 'Equilibrium' => '⇌', |
1866 | 'Exists' => '∃', |
1867 | 'expectation' => 'ℰ', |
1868 | 'ExponentialE' => 'ⅇ', |
1869 | 'exponentiale' => 'ⅇ', |
1870 | 'fallingdotseq' => '≒', |
1871 | 'ForAll' => '∀', |
1872 | 'Fouriertrf' => 'ℱ', |
1873 | 'geq' => '≥', |
1874 | 'geqq' => '≧', |
1875 | 'geqslant' => '⩾', |
1876 | 'gg' => '≫', |
1877 | 'ggg' => '⋙', |
1878 | 'gnapprox' => '⪊', |
1879 | 'gneq' => '⪈', |
1880 | 'gneqq' => '≩', |
1881 | 'GreaterEqual' => '≥', |
1882 | 'GreaterEqualLess' => '⋛', |
1883 | 'GreaterFullEqual' => '≧', |
1884 | 'GreaterLess' => '≷', |
1885 | 'GreaterSlantEqual' => '⩾', |
1886 | 'GreaterTilde' => '≳', |
1887 | 'gtrapprox' => '⪆', |
1888 | 'gtrdot' => '⋗', |
1889 | 'gtreqless' => '⋛', |
1890 | 'gtreqqless' => '⪌', |
1891 | 'gtrless' => '≷', |
1892 | 'gtrsim' => '≳', |
1893 | 'gvertneqq' => '≩︀', |
1894 | 'Hacek' => 'ˇ', |
1895 | 'hbar' => 'ℏ', |
1896 | 'heartsuit' => '♥', |
1897 | 'HilbertSpace' => 'ℋ', |
1898 | 'hksearow' => '⤥', |
1899 | 'hkswarow' => '⤦', |
1900 | 'hookleftarrow' => '↩', |
1901 | 'hookrightarrow' => '↪', |
1902 | 'hslash' => 'ℏ', |
1903 | 'HumpDownHump' => '≎', |
1904 | 'HumpEqual' => '≏', |
1905 | 'iiiint' => '⨌', |
1906 | 'iiint' => '∭', |
1907 | 'Im' => 'ℑ', |
1908 | 'ImaginaryI' => 'ⅈ', |
1909 | 'imagline' => 'ℐ', |
1910 | 'imagpart' => 'ℑ', |
1911 | 'Implies' => '⇒', |
1912 | 'in' => '∈', |
1913 | 'integers' => 'ℤ', |
1914 | 'Integral' => '∫', |
1915 | 'intercal' => '⊺', |
1916 | 'Intersection' => '⋂', |
1917 | 'intprod' => '⨼', |
1918 | 'InvisibleComma' => '⁣', |
1919 | 'InvisibleTimes' => '⁢', |
1920 | 'langle' => '⟨', |
1921 | 'Laplacetrf' => 'ℒ', |
1922 | 'lbrace' => '{', |
1923 | 'lbrack' => '[', |
1924 | 'LeftAngleBracket' => '⟨', |
1925 | 'LeftArrow' => '←', |
1926 | 'Leftarrow' => '⇐', |
1927 | 'leftarrow' => '←', |
1928 | 'LeftArrowBar' => '⇤', |
1929 | 'LeftArrowRightArrow' => '⇆', |
1930 | 'leftarrowtail' => '↢', |
1931 | 'LeftCeiling' => '⌈', |
1932 | 'LeftDoubleBracket' => '⟦', |
1933 | 'LeftDownVector' => '⇃', |
1934 | 'LeftFloor' => '⌊', |
1935 | 'leftharpoondown' => '↽', |
1936 | 'leftharpoonup' => '↼', |
1937 | 'leftleftarrows' => '⇇', |
1938 | 'LeftRightArrow' => '↔', |
1939 | 'Leftrightarrow' => '⇔', |
1940 | 'leftrightarrow' => '↔', |
1941 | 'leftrightarrows' => '⇆', |
1942 | 'leftrightharpoons' => '⇋', |
1943 | 'leftrightsquigarrow' => '↭', |
1944 | 'LeftTee' => '⊣', |
1945 | 'LeftTeeArrow' => '↤', |
1946 | 'leftthreetimes' => '⋋', |
1947 | 'LeftTriangle' => '⊲', |
1948 | 'LeftTriangleEqual' => '⊴', |
1949 | 'LeftUpVector' => '↿', |
1950 | 'LeftVector' => '↼', |
1951 | 'leq' => '≤', |
1952 | 'leqq' => '≦', |
1953 | 'leqslant' => '⩽', |
1954 | 'lessapprox' => '⪅', |
1955 | 'lessdot' => '⋖', |
1956 | 'lesseqgtr' => '⋚', |
1957 | 'lesseqqgtr' => '⪋', |
1958 | 'LessEqualGreater' => '⋚', |
1959 | 'LessFullEqual' => '≦', |
1960 | 'LessGreater' => '≶', |
1961 | 'lessgtr' => '≶', |
1962 | 'lesssim' => '≲', |
1963 | 'LessSlantEqual' => '⩽', |
1964 | 'LessTilde' => '≲', |
1965 | 'll' => '≪', |
1966 | 'llcorner' => '⌞', |
1967 | 'Lleftarrow' => '⇚', |
1968 | 'lmoustache' => '⎰', |
1969 | 'lnapprox' => '⪉', |
1970 | 'lneq' => '⪇', |
1971 | 'lneqq' => '≨', |
1972 | 'LongLeftArrow' => '⟵', |
1973 | 'Longleftarrow' => '⟸', |
1974 | 'longleftarrow' => '⟵', |
1975 | 'LongLeftRightArrow' => '⟷', |
1976 | 'Longleftrightarrow' => '⟺', |
1977 | 'longleftrightarrow' => '⟷', |
1978 | 'longmapsto' => '⟼', |
1979 | 'LongRightArrow' => '⟶', |
1980 | 'Longrightarrow' => '⟹', |
1981 | 'longrightarrow' => '⟶', |
1982 | 'looparrowleft' => '↫', |
1983 | 'looparrowright' => '↬', |
1984 | 'LowerLeftArrow' => '↙', |
1985 | 'LowerRightArrow' => '↘', |
1986 | 'lozenge' => '◊', |
1987 | 'lrcorner' => '⌟', |
1988 | 'Lsh' => '↰', |
1989 | 'lvertneqq' => '≨︀', |
1990 | 'maltese' => '✠', |
1991 | 'mapsto' => '↦', |
1992 | 'measuredangle' => '∡', |
1993 | 'Mellintrf' => 'ℳ', |
1994 | 'MinusPlus' => '∓', |
1995 | 'mp' => '∓', |
1996 | 'multimap' => '⊸', |
1997 | 'napprox' => '≉', |
1998 | 'natural' => '♮', |
1999 | 'naturals' => 'ℕ', |
2000 | 'nearrow' => '↗', |
2001 | 'NegativeMediumSpace' => '​', |
2002 | 'NegativeThickSpace' => '​', |
2003 | 'NegativeThinSpace' => '​', |
2004 | 'NegativeVeryThinSpace' => '​', |
2005 | 'NestedGreaterGreater' => '≫', |
2006 | 'NestedLessLess' => '≪', |
2007 | 'nexists' => '∄', |
2008 | 'ngeq' => '≱', |
2009 | 'ngeqq' => '≧̸', |
2010 | 'ngeqslant' => '⩾̸', |
2011 | 'ngtr' => '≯', |
2012 | 'nLeftarrow' => '⇍', |
2013 | 'nleftarrow' => '↚', |
2014 | 'nLeftrightarrow' => '⇎', |
2015 | 'nleftrightarrow' => '↮', |
2016 | 'nleq' => '≰', |
2017 | 'nleqq' => '≦̸', |
2018 | 'nleqslant' => '⩽̸', |
2019 | 'nless' => '≮', |
2020 | 'NonBreakingSpace' => ' ', |
2021 | 'NotCongruent' => '≢', |
2022 | 'NotDoubleVerticalBar' => '∦', |
2023 | 'NotElement' => '∉', |
2024 | 'NotEqual' => '≠', |
2025 | 'NotEqualTilde' => '≂̸', |
2026 | 'NotExists' => '∄', |
2027 | 'NotGreater' => '≯', |
2028 | 'NotGreaterEqual' => '≱', |
2029 | 'NotGreaterFullEqual' => '≦̸', |
2030 | 'NotGreaterGreater' => '≫̸', |
2031 | 'NotGreaterLess' => '≹', |
2032 | 'NotGreaterSlantEqual' => '⩾̸', |
2033 | 'NotGreaterTilde' => '≵', |
2034 | 'NotHumpDownHump' => '≎̸', |
2035 | 'NotLeftTriangle' => '⋪', |
2036 | 'NotLeftTriangleEqual' => '⋬', |
2037 | 'NotLess' => '≮', |
2038 | 'NotLessEqual' => '≰', |
2039 | 'NotLessGreater' => '≸', |
2040 | 'NotLessLess' => '≪̸', |
2041 | 'NotLessSlantEqual' => '⩽̸', |
2042 | 'NotLessTilde' => '≴', |
2043 | 'NotPrecedes' => '⊀', |
2044 | 'NotPrecedesEqual' => '⪯̸', |
2045 | 'NotPrecedesSlantEqual' => '⋠', |
2046 | 'NotReverseElement' => '∌', |
2047 | 'NotRightTriangle' => '⋫', |
2048 | 'NotRightTriangleEqual' => '⋭', |
2049 | 'NotSquareSubsetEqual' => '⋢', |
2050 | 'NotSquareSupersetEqual' => '⋣', |
2051 | 'NotSubset' => '⊂⃒', |
2052 | 'NotSubsetEqual' => '⊈', |
2053 | 'NotSucceeds' => '⊁', |
2054 | 'NotSucceedsEqual' => '⪰̸', |
2055 | 'NotSucceedsSlantEqual' => '⋡', |
2056 | 'NotSuperset' => '⊃⃒', |
2057 | 'NotSupersetEqual' => '⊉', |
2058 | 'NotTilde' => '≁', |
2059 | 'NotTildeEqual' => '≄', |
2060 | 'NotTildeFullEqual' => '≇', |
2061 | 'NotTildeTilde' => '≉', |
2062 | 'NotVerticalBar' => '∤', |
2063 | 'nparallel' => '∦', |
2064 | 'nprec' => '⊀', |
2065 | 'npreceq' => '⪯̸', |
2066 | 'nRightarrow' => '⇏', |
2067 | 'nrightarrow' => '↛', |
2068 | 'nshortmid' => '∤', |
2069 | 'nshortparallel' => '∦', |
2070 | 'nsimeq' => '≄', |
2071 | 'nsubset' => '⊂⃒', |
2072 | 'nsubseteq' => '⊈', |
2073 | 'nsubseteqq' => '⫅̸', |
2074 | 'nsucc' => '⊁', |
2075 | 'nsucceq' => '⪰̸', |
2076 | 'nsupset' => '⊃⃒', |
2077 | 'nsupseteq' => '⊉', |
2078 | 'nsupseteqq' => '⫆̸', |
2079 | 'ntriangleleft' => '⋪', |
2080 | 'ntrianglelefteq' => '⋬', |
2081 | 'ntriangleright' => '⋫', |
2082 | 'ntrianglerighteq' => '⋭', |
2083 | 'nwarrow' => '↖', |
2084 | 'oint' => '∮', |
2085 | 'OpenCurlyDoubleQuote' => '“', |
2086 | 'OpenCurlyQuote' => '‘', |
2087 | 'orderof' => 'ℴ', |
2088 | 'parallel' => '∥', |
2089 | 'PartialD' => '∂', |
2090 | 'pitchfork' => '⋔', |
2091 | 'PlusMinus' => '±', |
2092 | 'pm' => '±', |
2093 | 'Poincareplane' => 'ℌ', |
2094 | 'prec' => '≺', |
2095 | 'precapprox' => '⪷', |
2096 | 'preccurlyeq' => '≼', |
2097 | 'Precedes' => '≺', |
2098 | 'PrecedesEqual' => '⪯', |
2099 | 'PrecedesSlantEqual' => '≼', |
2100 | 'PrecedesTilde' => '≾', |
2101 | 'preceq' => '⪯', |
2102 | 'precnapprox' => '⪹', |
2103 | 'precneqq' => '⪵', |
2104 | 'precnsim' => '⋨', |
2105 | 'precsim' => '≾', |
2106 | 'primes' => 'ℙ', |
2107 | 'Proportion' => '∷', |
2108 | 'Proportional' => '∝', |
2109 | 'propto' => '∝', |
2110 | 'quaternions' => 'ℍ', |
2111 | 'questeq' => '≟', |
2112 | 'rangle' => '⟩', |
2113 | 'rationals' => 'ℚ', |
2114 | 'rbrace' => '}', |
2115 | 'rbrack' => ']', |
2116 | 'Re' => 'ℜ', |
2117 | 'realine' => 'ℛ', |
2118 | 'realpart' => 'ℜ', |
2119 | 'reals' => 'ℝ', |
2120 | 'ReverseElement' => '∋', |
2121 | 'ReverseEquilibrium' => '⇋', |
2122 | 'ReverseUpEquilibrium' => '⥯', |
2123 | 'RightAngleBracket' => '⟩', |
2124 | 'RightArrow' => '→', |
2125 | 'Rightarrow' => '⇒', |
2126 | 'rightarrow' => '→', |
2127 | 'RightArrowBar' => '⇥', |
2128 | 'RightArrowLeftArrow' => '⇄', |
2129 | 'rightarrowtail' => '↣', |
2130 | 'RightCeiling' => '⌉', |
2131 | 'RightDoubleBracket' => '⟧', |
2132 | 'RightDownVector' => '⇂', |
2133 | 'RightFloor' => '⌋', |
2134 | 'rightharpoondown' => '⇁', |
2135 | 'rightharpoonup' => '⇀', |
2136 | 'rightleftarrows' => '⇄', |
2137 | 'rightleftharpoons' => '⇌', |
2138 | 'rightrightarrows' => '⇉', |
2139 | 'rightsquigarrow' => '↝', |
2140 | 'RightTee' => '⊢', |
2141 | 'RightTeeArrow' => '↦', |
2142 | 'rightthreetimes' => '⋌', |
2143 | 'RightTriangle' => '⊳', |
2144 | 'RightTriangleEqual' => '⊵', |
2145 | 'RightUpVector' => '↾', |
2146 | 'RightVector' => '⇀', |
2147 | 'risingdotseq' => '≓', |
2148 | 'rmoustache' => '⎱', |
2149 | 'Rrightarrow' => '⇛', |
2150 | 'Rsh' => '↱', |
2151 | 'searrow' => '↘', |
2152 | 'setminus' => '∖', |
2153 | 'ShortDownArrow' => '↓', |
2154 | 'ShortLeftArrow' => '←', |
2155 | 'shortmid' => '∣', |
2156 | 'shortparallel' => '∥', |
2157 | 'ShortRightArrow' => '→', |
2158 | 'ShortUpArrow' => '↑', |
2159 | 'simeq' => '≃', |
2160 | 'SmallCircle' => '∘', |
2161 | 'smallsetminus' => '∖', |
2162 | 'spadesuit' => '♠', |
2163 | 'Sqrt' => '√', |
2164 | 'sqsubset' => '⊏', |
2165 | 'sqsubseteq' => '⊑', |
2166 | 'sqsupset' => '⊐', |
2167 | 'sqsupseteq' => '⊒', |
2168 | 'Square' => '□', |
2169 | 'SquareIntersection' => '⊓', |
2170 | 'SquareSubset' => '⊏', |
2171 | 'SquareSubsetEqual' => '⊑', |
2172 | 'SquareSuperset' => '⊐', |
2173 | 'SquareSupersetEqual' => '⊒', |
2174 | 'SquareUnion' => '⊔', |
2175 | 'Star' => '⋆', |
2176 | 'straightepsilon' => 'ϵ', |
2177 | 'straightphi' => 'ϕ', |
2178 | 'Subset' => '⋐', |
2179 | 'subset' => '⊂', |
2180 | 'subseteq' => '⊆', |
2181 | 'subseteqq' => '⫅', |
2182 | 'SubsetEqual' => '⊆', |
2183 | 'subsetneq' => '⊊', |
2184 | 'subsetneqq' => '⫋', |
2185 | 'succ' => '≻', |
2186 | 'succapprox' => '⪸', |
2187 | 'succcurlyeq' => '≽', |
2188 | 'Succeeds' => '≻', |
2189 | 'SucceedsEqual' => '⪰', |
2190 | 'SucceedsSlantEqual' => '≽', |
2191 | 'SucceedsTilde' => '≿', |
2192 | 'succeq' => '⪰', |
2193 | 'succnapprox' => '⪺', |
2194 | 'succneqq' => '⪶', |
2195 | 'succnsim' => '⋩', |
2196 | 'succsim' => '≿', |
2197 | 'SuchThat' => '∋', |
2198 | 'Sum' => '∑', |
2199 | 'Superset' => '⊃', |
2200 | 'SupersetEqual' => '⊇', |
2201 | 'Supset' => '⋑', |
2202 | 'supset' => '⊃', |
2203 | 'supseteq' => '⊇', |
2204 | 'supseteqq' => '⫆', |
2205 | 'supsetneq' => '⊋', |
2206 | 'supsetneqq' => '⫌', |
2207 | 'swarrow' => '↙', |
2208 | 'Therefore' => '∴', |
2209 | 'therefore' => '∴', |
2210 | 'thickapprox' => '≈', |
2211 | 'thicksim' => '∼', |
2212 | 'ThinSpace' => ' ', |
2213 | 'Tilde' => '∼', |
2214 | 'TildeEqual' => '≃', |
2215 | 'TildeFullEqual' => '≅', |
2216 | 'TildeTilde' => '≈', |
2217 | 'toea' => '⤨', |
2218 | 'tosa' => '⤩', |
2219 | 'triangle' => '▵', |
2220 | 'triangledown' => '▿', |
2221 | 'triangleleft' => '◃', |
2222 | 'trianglelefteq' => '⊴', |
2223 | 'triangleq' => '≜', |
2224 | 'triangleright' => '▹', |
2225 | 'trianglerighteq' => '⊵', |
2226 | 'TripleDot' => '⃛', |
2227 | 'twoheadleftarrow' => '↞', |
2228 | 'twoheadrightarrow' => '↠', |
2229 | 'ulcorner' => '⌜', |
2230 | 'Union' => '⋃', |
2231 | 'UnionPlus' => '⊎', |
2232 | 'UpArrow' => '↑', |
2233 | 'Uparrow' => '⇑', |
2234 | 'uparrow' => '↑', |
2235 | 'UpArrowDownArrow' => '⇅', |
2236 | 'UpDownArrow' => '↕', |
2237 | 'Updownarrow' => '⇕', |
2238 | 'updownarrow' => '↕', |
2239 | 'UpEquilibrium' => '⥮', |
2240 | 'upharpoonleft' => '↿', |
2241 | 'upharpoonright' => '↾', |
2242 | 'UpperLeftArrow' => '↖', |
2243 | 'UpperRightArrow' => '↗', |
2244 | 'upsilon' => 'υ', |
2245 | 'UpTee' => '⊥', |
2246 | 'UpTeeArrow' => '↥', |
2247 | 'upuparrows' => '⇈', |
2248 | 'urcorner' => '⌝', |
2249 | 'varepsilon' => 'ϵ', |
2250 | 'varkappa' => 'ϰ', |
2251 | 'varnothing' => '∅', |
2252 | 'varphi' => 'ϕ', |
2253 | 'varpi' => 'ϖ', |
2254 | 'varpropto' => '∝', |
2255 | 'varrho' => 'ϱ', |
2256 | 'varsigma' => 'ς', |
2257 | 'varsubsetneq' => '⊊︀', |
2258 | 'varsubsetneqq' => '⫋︀', |
2259 | 'varsupsetneq' => '⊋︀', |
2260 | 'varsupsetneqq' => '⫌︀', |
2261 | 'vartheta' => 'ϑ', |
2262 | 'vartriangleleft' => '⊲', |
2263 | 'vartriangleright' => '⊳', |
2264 | 'Vee' => '⋁', |
2265 | 'vee' => '∨', |
2266 | 'Vert' => '‖', |
2267 | 'vert' => '|', |
2268 | 'VerticalBar' => '∣', |
2269 | 'VerticalTilde' => '≀', |
2270 | 'VeryThinSpace' => ' ', |
2271 | 'Wedge' => '⋀', |
2272 | 'wedge' => '∧', |
2273 | 'wp' => '℘', |
2274 | 'wr' => '≀', |
2275 | 'zeetrf' => 'ℨ', |
2276 | 'AMP' => '&', |
2277 | 'COPY' => '©', |
2278 | 'GT' => '>', |
2279 | 'LT' => '<', |
2280 | 'QUOT' => '"', |
2281 | 'REG' => '®', |
2282 | 'TRADE' => '™' |
2283 | } |
2284 | #:startdoc: |
2285 | |
2286 | # Converts XHTML+MathML named entities in string to Numeric Character References |
2287 | # |
2288 | # :call-seq: |
2289 | # string.to_ncr -> string |
2290 | # |
2291 | def to_ncr |
2292 | self.gsub(/&([a-zA-Z0-9]+);/) {|m| $1.convert_to_ncr} |
2293 | end |
2294 | |
2295 | # Converts XHTML+MathML named entities in string to Numeric Character References |
2296 | # |
2297 | # :call-seq: |
2298 | # string.to_ncr! -> str or nil |
2299 | # |
2300 | # Substitution is done in-place. |
2301 | # |
2302 | def to_ncr! |
2303 | self.gsub!(/&([a-zA-Z0-9]+);/) {|m| $1.convert_to_ncr} |
2304 | end |
2305 | |
2306 | # Converts XHTML+MathML named entities in string to UTF-8 |
2307 | # |
2308 | # :call-seq: |
2309 | # string.to_utf8 -> string |
2310 | # |
2311 | #-- |
2312 | def to_utf8 |
2313 | self.gsub(/&([a-zA-Z0-9]+);/) {|m| $1.convert_to_utf8} |
2314 | |
2315 | # You might think this is faster, but it isn't |
2316 | # pieces = self.split(/&([a-zA-Z0-9]+);/) |
2317 | # 1.step(pieces.length-1, 2) {|i| pieces[i].convert_to_utf8} |
2318 | # pieces.join |
2319 | end |
2320 | |
2321 | #++ |
2322 | # Converts XHTML+MathML named entities in string to UTF-8 |
2323 | # |
2324 | # :call-seq: |
2325 | # string.to_ncr! -> str or nil |
2326 | # |
2327 | # Substitution is done in-place. |
2328 | # |
2329 | def to_utf8! |
2330 | self.gsub!(/&([a-zA-Z0-9]+);/) {|m| $1.convert_to_utf8} |
2331 | end |
2332 | |
2333 | #:stopdoc: |
2334 | |
2335 | TO_ESCAPE = { |
2336 | '&' => '&', |
2337 | '<' => '<', |
2338 | '>' => '>', |
2339 | "'" => ''', |
2340 | '"' => '"', |
2341 | } |
2342 | TO_ESCAPE_PATTERN = Regexp.union(*TO_ESCAPE.keys) |
2343 | |
2344 | def escapeHTML |
2345 | self.gsub(TO_ESCAPE_PATTERN){|m| TO_ESCAPE[m]} |
2346 | end |
2347 | |
2348 | def unescapeHTML |
2349 | self.gsub(/&(.*?);/) do |
2350 | match = $1.dup |
2351 | case match |
2352 | when /\Aamp\z/ni then '&' |
2353 | when /\Agt\z/ni then '>' |
2354 | when /\Alt\z/ni then '<' |
2355 | when /\Aquot\z/ni then '"' |
2356 | when /\Aapos\z/ni then "'" |
2357 | when /\A#0*(\d+)\z/n then |
2358 | if Integer($1) < 256 |
2359 | # 2011-03-10 (ADH): Wrong; in Ruby 1.8, there is no encoding support |
2360 | # so this returns an ISO 8859-1 single byte value. |
2361 | # In Ruby 1.9, Encoding::UTF8 would need to be |
2362 | # specified, but isn't. |
2363 | #Integer($1).chr |
2364 | # |
2365 | # Could do this: |
2366 | # |
2367 | # Iconv.iconv('utf-8', 'iso-8859-1', Integer($1).chr) |
2368 | # |
2369 | # ...but this is probably faster and copies the hex handling code |
2370 | # below, which after experiments in "irb", does seem to work well: |
2371 | [Integer($1)].pack("U") |
2372 | else |
2373 | if Integer($1) < 1114111 |
2374 | [Integer($1)].pack("U") |
2375 | else |
2376 | "&##{$1};" |
2377 | end |
2378 | end |
2379 | when /\A#x([0-9a-f]+)\z/ni then |
2380 | if $1.hex < 256 |
2381 | [$1.hex].pack("U") |
2382 | else |
2383 | if $1.hex < 1114111 |
2384 | [$1.hex].pack("U") |
2385 | else |
2386 | "&#x#{$1};" |
2387 | end |
2388 | end |
2389 | else |
2390 | "&#{match};" |
2391 | end |
2392 | end |
2393 | end |
2394 | |
2395 | protected |
2396 | |
2397 | def convert_to_ncr #:nodoc: |
2398 | if self =~ /^(lt|gt|amp|quot|apos)$/ |
2399 | self.replace "&" + self + ";" |
2400 | elsif MATHML_ENTITIES.has_key?(self) |
2401 | self.replace MATHML_ENTITIES[self] |
2402 | else |
2403 | self.replace "&" + self + ";" |
2404 | end |
2405 | end |
2406 | |
2407 | def convert_to_utf8 #:nodoc: |
2408 | if self =~ /^(lt|gt|amp|quot|apos)$/i |
2409 | self.replace "&" + self.downcase + ";" |
2410 | elsif MATHML_ENTITIES.has_key?(self) |
2411 | self.replace MATHML_ENTITIES[self].split(';').collect {|s| s.gsub(/^&#x([A-F0-9]+)$/, '\1').hex }.pack('U*') |
2412 | else |
2413 | self.replace "&" + self + ";" |
2414 | end |
2415 | end |
2416 | |
2417 | |
2418 | end |