itextomml 1.3.24 → 1.3.25

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