| @@ -0,0 +1,2454 @@ |
| @@ -0,0 +1,2454 @@ |
| |
1
| +# == Introduction |
| |
2
| +# |
| |
3
| +# This module provides sanitization of XHTML+MathML+SVG |
| |
4
| +# and of inline style attributes. Its genesis is {described here}[http://golem.ph.utexas.edu/~distler/blog/archives/001181.html]. |
| |
5
| +# |
| |
6
| +# Uses the {HTML5lib parser}[http://code.google.com/p/html5lib/], so that the parsing behaviour should |
| |
7
| +# resemble that of browsers. |
| |
8
| +# |
| |
9
| +# sanitize_xhtml() is a case-sensitive sanitizer, suitable for XHTML |
| |
10
| +# sanitize_html() is a case-insensitive sanitizer suitable for HTML |
| |
11
| +# sanitize_rexml() sanitizes a REXML tree, returning a string |
| |
12
| +# |
| |
13
| +# == Files |
| |
14
| +# |
| |
15
| +# {sanitize.rb}[http://golem.ph.utexas.edu/~distler/code/instiki/svn/lib/sanitize.rb], |
| |
16
| +# {HTML5lib}[http://golem.ph.utexas.edu/~distler/code/instiki/svn/vendor/plugins/HTML5lib/] |
| |
17
| +# |
| |
18
| +# == Author |
| |
19
| +# |
| |
20
| +# {Jacques Distler}[http://golem.ph.utexas.edu/~distler/] |
| |
21
| +# |
| |
22
| +# == License |
| |
23
| +# |
| |
24
| +# Ruby License |
| |
25
| + |
| |
26
| +class HTML5libSanitize |
| |
27
| + |
| |
28
| + require 'html5/html5parser' |
| |
29
| + require 'html5/liberalxmlparser' |
| |
30
| + require 'html5/treewalkers' |
| |
31
| + require 'html5/treebuilders' |
| |
32
| + require 'html5/serializer' |
| |
33
| + require 'html5/sanitizer' |
| |
34
| + |
| |
35
| + include HTML5 |
| |
36
| + |
| |
37
| +# Sanitize a string, parsed using XHTML parsing rules. |
| |
38
| +# |
| |
39
| +# :call-seq: |
| |
40
| +# sanitize_xhtml(string) -> string |
| |
41
| +# sanitize_xhtml(string, {:encoding => 'iso-8859-1', :to_tree => true}) -> REXML::Document |
| |
42
| +# |
| |
43
| +# Unless otherwise specified, the string is assumed to be utf-8 encoded. |
| |
44
| +# By default, the output is a string. But, optionally, you can return a REXML tree. |
| |
45
| +# |
| |
46
| +# The string returned is utf-8 encoded. If you want, you can use iconv to convert it to some other encoding. |
| |
47
| +# (REXML trees are always utf-8 encoded.) |
| |
48
| + def sanitize_xhtml(html, options = {}) |
| |
49
| + @encoding = 'utf-8' |
| |
50
| + @treebuilder = TreeBuilders::REXML::TreeBuilder |
| |
51
| + @to_tree = false |
| |
52
| + options.each do |name, value| |
| |
53
| + next unless %w(encoding treebuilder to_tree).include? name.to_s |
| |
54
| + if name.to_s == 'treebuilder' |
| |
55
| + @treebuilder = HTML5lib::TreeBuilders.get_tree_builder(value) |
| |
56
| + else |
| |
57
| + instance_variable_set("@#{name}", value) |
| |
58
| + end |
| |
59
| + end |
| |
60
| + if @encoding == 'utf-8' |
| |
61
| + parsed = XHTMLParser.parse_fragment(html.to_utf8, {:tokenizer => HTMLSanitizer, |
| |
62
| + :lowercase_element_name => false, :lowercase_attr_name => false, |
| |
63
| + :encoding => @encoding, :tree => @treebuilder }) |
| |
64
| + else |
| |
65
| + parsed = XHTMLParser.parse_fragment(html.to_ncr, {:tokenizer => HTMLSanitizer, |
| |
66
| + :lowercase_element_name => false, :lowercase_attr_name => false, |
| |
67
| + :encoding => @encoding, :tree => @treebuilder }) |
| |
68
| + end |
| |
69
| + return parsed if @to_tree |
| |
70
| + return parsed.to_s |
| |
71
| + end |
| |
72
| + |
| |
73
| +# Sanitize a string, parsed using HTML parsing rules. |
| |
74
| +# |
| |
75
| +# :call-seq: |
| |
76
| +# sanitize_html( string ) -> string |
| |
77
| +# sanitize_html( string, {:encoding => 'iso-8859-1', :to_tree => true} ) -> REXML::Document |
| |
78
| +# |
| |
79
| +# Unless otherwise specified, the string is assumed to be utf-8 encoded. |
| |
80
| +# By default, the output is a string. But, optionally, you can return a REXML tree. |
| |
81
| +# |
| |
82
| +# The string returned is utf-8 encoded. If you want, you can use iconv to convert it to some other encoding. |
| |
83
| +# (REXML trees are always utf-8 encoded.) |
| |
84
| + alias :sanitize :sanitize_html |
| |
85
| + def sanitize_html(html, options = {}) |
| |
86
| + @encoding = 'utf-8' |
| |
87
| + @treebuilder = TreeBuilders::REXML::TreeBuilder |
| |
88
| + @to_tree = false |
| |
89
| + options.each do |name, value| |
| |
90
| + next unless %w(encoding treebuilder to_tree).include? name.to_s |
| |
91
| + if name.to_s == 'treebuilder' |
| |
92
| + @treebuilder = HTML5lib::TreeBuilders.get_tree_builder(value) |
| |
93
| + else |
| |
94
| + instance_variable_set("@#{name}", value) |
| |
95
| + end |
| |
96
| + end |
| |
97
| + if @encoding == 'utf-8' |
| |
98
| + parsed = HTMLParser.parse_fragment(html.to_utf8, {:tokenizer => HTMLSanitizer, |
| |
99
| + :encoding => @encoding, :tree => @treebuilder }) |
| |
100
| + else |
| |
101
| + parsed = HTMLParser.parse_fragment(html.to_ncr, {:tokenizer => HTMLSanitizer, |
| |
102
| + :encoding => @encoding, :tree => @treebuilder }) |
| |
103
| + end |
| |
104
| + return parsed if @to_tree |
| |
105
| + return parsed.to_s |
| |
106
| + end |
| |
107
| + |
| |
108
| +# Sanitize a REXML tree. The output is a string. |
| |
109
| +# |
| |
110
| +# :call-seq: |
| |
111
| +# sanitize_rexml(tree) -> string |
| |
112
| +# |
| |
113
| + def sanitize_rexml(tree) |
| |
114
| + tokens = TreeWalkers.get_tree_walker('rexml2').new(tree) |
| |
115
| + XHTMLSerializer.serialize(tokens, {:encoding=>'utf-8', |
| |
116
| + :space_before_trailing_solidus => true, |
| |
117
| + :inject_meta_charset => false, |
| |
118
| + :sanitize => true}) |
| |
119
| + end |
| |
120
| +end |
| |
121
| + |
| |
122
| +# Some useful additions to the String class |
| |
123
| + |
| |
124
| +class String |
| |
125
| + |
| |
126
| +# Check whether a string is valid utf-8 |
| |
127
| +# |
| |
128
| +# :call-seq: |
| |
129
| +# string.is_utf8? -> boolean |
| |
130
| +# |
| |
131
| +# returns true if the sequence of bytes in string is valid utf-8 |
| |
132
| +#-- |
| |
133
| + def is_utf8? |
| |
134
| + #expand NCRs to utf-8 |
| |
135
| + text = self.gsub(/&#x([a-fA-F0-9]+);/) {|m| [$1.hex].pack('U*') } |
| |
136
| + text.gsub!(/&#(\d+);/) {|m| [$1.to_i].pack('U*') } |
| |
137
| + #ensure the resulting string of bytes is valid utf-8 |
| |
138
| + text =~ /\A( |
| |
139
| + [\x09\x0A\x0D\x20-\x7E] # ASCII |
| |
140
| + | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |
| |
141
| + | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |
| |
142
| + | [\xE1-\xEC\xEE][\x80-\xBF]{2} # straight 3-byte |
| |
143
| + | \xEF[\x80-\xBE]{2} # |
| |
144
| + | \xEF\xBF[\x80-\xBD] # excluding U+fffe and U+ffff |
| |
145
| + | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |
| |
146
| + | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |
| |
147
| + | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |
| |
148
| + | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 |
| |
149
| + )*\Z/x; |
| |
150
| + end |
| |
151
| +#++ |
| |
152
| + |
| |
153
| +#:stopdoc: |
| |
154
| + MATHML_ENTITIES = { |
| |
155
| + 'Alpha' => 'Α', |
| |
156
| + 'Beta' => 'Β', |
| |
157
| + 'Epsilon' => 'Ε', |
| |
158
| + 'Zeta' => 'Ζ', |
| |
159
| + 'Eta' => 'Η', |
| |
160
| + 'Iota' => 'Ι', |
| |
161
| + 'Kappa' => 'Κ', |
| |
162
| + 'Mu' => 'Μ', |
| |
163
| + 'Nu' => 'Ν', |
| |
164
| + 'Omicron' => 'Ο', |
| |
165
| + 'Rho' => 'Ρ', |
| |
166
| + 'Tau' => 'Τ', |
| |
167
| + 'Chi' => 'Χ', |
| |
168
| + 'epsilon' => 'ε', |
| |
169
| + 'zeta' => 'ζ', |
| |
170
| + 'omicron' => 'ο', |
| |
171
| + 'sigmaf' => 'ς', |
| |
172
| + 'thetasym' => 'ϑ', |
| |
173
| + 'upsih' => 'ϒ', |
| |
174
| + 'oline' => '‾', |
| |
175
| + 'frasl' => '⁄', |
| |
176
| + 'alefsym' => 'ℵ', |
| |
177
| + 'crarr' => '↵', |
| |
178
| + 'empty' => '∅', |
| |
179
| + 'amp' => '&', |
| |
180
| + 'lt' => '<', |
| |
181
| + 'zwnj' => '‌', |
| |
182
| + 'zwj' => '‍', |
| |
183
| + 'lrm' => '‎', |
| |
184
| + 'rlm' => '‏', |
| |
185
| + 'sbquo' => '‚', |
| |
186
| + 'bdquo' => '„', |
| |
187
| + 'lsaquo' => '‹', |
| |
188
| + 'rsaquo' => '›', |
| |
189
| + 'euro' => '€', |
| |
190
| + 'angzarr' => '⍼', |
| |
191
| + 'cirmid' => '⫯', |
| |
192
| + 'cudarrl' => '⤸', |
| |
193
| + 'cudarrr' => '⤵', |
| |
194
| + 'cularr' => '↶', |
| |
195
| + 'cularrp' => '⤽', |
| |
196
| + 'curarr' => '↷', |
| |
197
| + 'curarrm' => '⤼', |
| |
198
| + 'Darr' => '↡', |
| |
199
| + 'dArr' => '⇓', |
| |
200
| + 'ddarr' => '⇊', |
| |
201
| + 'DDotrahd' => '⤑', |
| |
202
| + 'dfisht' => '⥿', |
| |
203
| + 'dHar' => '⥥', |
| |
204
| + 'dharl' => '⇃', |
| |
205
| + 'dharr' => '⇂', |
| |
206
| + 'duarr' => '⇵', |
| |
207
| + 'duhar' => '⥯', |
| |
208
| + 'dzigrarr' => '⟿', |
| |
209
| + 'erarr' => '⥱', |
| |
210
| + 'hArr' => '⇔', |
| |
211
| + 'harr' => '↔', |
| |
212
| + 'harrcir' => '⥈', |
| |
213
| + 'harrw' => '↭', |
| |
214
| + 'hoarr' => '⇿', |
| |
215
| + 'imof' => '⊷', |
| |
216
| + 'lAarr' => '⇚', |
| |
217
| + 'Larr' => '↞', |
| |
218
| + 'larrbfs' => '⤟', |
| |
219
| + 'larrfs' => '⤝', |
| |
220
| + 'larrhk' => '↩', |
| |
221
| + 'larrlp' => '↫', |
| |
222
| + 'larrpl' => '⤹', |
| |
223
| + 'larrsim' => '⥳', |
| |
224
| + 'larrtl' => '↢', |
| |
225
| + 'lAtail' => '⤛', |
| |
226
| + 'latail' => '⤙', |
| |
227
| + 'lBarr' => '⤎', |
| |
228
| + 'lbarr' => '⤌', |
| |
229
| + 'ldca' => '⤶', |
| |
230
| + 'ldrdhar' => '⥧', |
| |
231
| + 'ldrushar' => '⥋', |
| |
232
| + 'ldsh' => '↲', |
| |
233
| + 'lfisht' => '⥼', |
| |
234
| + 'lHar' => '⥢', |
| |
235
| + 'lhard' => '↽', |
| |
236
| + 'lharu' => '↼', |
| |
237
| + 'lharul' => '⥪', |
| |
238
| + 'llarr' => '⇇', |
| |
239
| + 'llhard' => '⥫', |
| |
240
| + 'loarr' => '⇽', |
| |
241
| + 'lrarr' => '⇆', |
| |
242
| + 'lrhar' => '⇋', |
| |
243
| + 'lrhard' => '⥭', |
| |
244
| + 'lsh' => '↰', |
| |
245
| + 'lurdshar' => '⥊', |
| |
246
| + 'luruhar' => '⥦', |
| |
247
| + 'Map' => '⤅', |
| |
248
| + 'map' => '↦', |
| |
249
| + 'midcir' => '⫰', |
| |
250
| + 'mumap' => '⊸', |
| |
251
| + 'nearhk' => '⤤', |
| |
252
| + 'neArr' => '⇗', |
| |
253
| + 'nearr' => '↗', |
| |
254
| + 'nesear' => '⤨', |
| |
255
| + 'nhArr' => '⇎', |
| |
256
| + 'nharr' => '↮', |
| |
257
| + 'nlArr' => '⇍', |
| |
258
| + 'nlarr' => '↚', |
| |
259
| + 'nrArr' => '⇏', |
| |
260
| + 'nrarr' => '↛', |
| |
261
| + 'nrarrc' => '⤳̸', |
| |
262
| + 'nrarrw' => '↝̸', |
| |
263
| + 'nvHarr' => '⤄', |
| |
264
| + 'nvlArr' => '⤂', |
| |
265
| + 'nvrArr' => '⤃', |
| |
266
| + 'nwarhk' => '⤣', |
| |
267
| + 'nwArr' => '⇖', |
| |
268
| + 'nwarr' => '↖', |
| |
269
| + 'nwnear' => '⤧', |
| |
270
| + 'olarr' => '↺', |
| |
271
| + 'orarr' => '↻', |
| |
272
| + 'origof' => '⊶', |
| |
273
| + 'rAarr' => '⇛', |
| |
274
| + 'Rarr' => '↠', |
| |
275
| + 'rarrap' => '⥵', |
| |
276
| + 'rarrbfs' => '⤠', |
| |
277
| + 'rarrc' => '⤳', |
| |
278
| + 'rarrfs' => '⤞', |
| |
279
| + 'rarrhk' => '↪', |
| |
280
| + 'rarrlp' => '↬', |
| |
281
| + 'rarrpl' => '⥅', |
| |
282
| + 'rarrsim' => '⥴', |
| |
283
| + 'Rarrtl' => '⤖', |
| |
284
| + 'rarrtl' => '↣', |
| |
285
| + 'rarrw' => '↝', |
| |
286
| + 'rAtail' => '⤜', |
| |
287
| + 'ratail' => '⤚', |
| |
288
| + 'RBarr' => '⤐', |
| |
289
| + 'rBarr' => '⤏', |
| |
290
| + 'rbarr' => '⤍', |
| |
291
| + 'rdca' => '⤷', |
| |
292
| + 'rdldhar' => '⥩', |
| |
293
| + 'rdsh' => '↳', |
| |
294
| + 'rfisht' => '⥽', |
| |
295
| + 'rHar' => '⥤', |
| |
296
| + 'rhard' => '⇁', |
| |
297
| + 'rharu' => '⇀', |
| |
298
| + 'rharul' => '⥬', |
| |
299
| + 'rlarr' => '⇄', |
| |
300
| + 'rlhar' => '⇌', |
| |
301
| + 'roarr' => '⇾', |
| |
302
| + 'rrarr' => '⇉', |
| |
303
| + 'rsh' => '↱', |
| |
304
| + 'ruluhar' => '⥨', |
| |
305
| + 'searhk' => '⤥', |
| |
306
| + 'seArr' => '⇘', |
| |
307
| + 'searr' => '↘', |
| |
308
| + 'seswar' => '⤩', |
| |
309
| + 'simrarr' => '⥲', |
| |
310
| + 'slarr' => '←', |
| |
311
| + 'srarr' => '→', |
| |
312
| + 'swarhk' => '⤦', |
| |
313
| + 'swArr' => '⇙', |
| |
314
| + 'swarr' => '↙', |
| |
315
| + 'swnwar' => '⤪', |
| |
316
| + 'Uarr' => '↟', |
| |
317
| + 'uArr' => '⇑', |
| |
318
| + 'Uarrocir' => '⥉', |
| |
319
| + 'udarr' => '⇅', |
| |
320
| + 'udhar' => '⥮', |
| |
321
| + 'ufisht' => '⥾', |
| |
322
| + 'uHar' => '⥣', |
| |
323
| + 'uharl' => '↿', |
| |
324
| + 'uharr' => '↾', |
| |
325
| + 'uuarr' => '⇈', |
| |
326
| + 'vArr' => '⇕', |
| |
327
| + 'varr' => '↕', |
| |
328
| + 'xhArr' => '⟺', |
| |
329
| + 'xharr' => '⟷', |
| |
330
| + 'xlArr' => '⟸', |
| |
331
| + 'xlarr' => '⟵', |
| |
332
| + 'xmap' => '⟼', |
| |
333
| + 'xrArr' => '⟹', |
| |
334
| + 'xrarr' => '⟶', |
| |
335
| + 'zigrarr' => '⇝', |
| |
336
| + 'ac' => '∾', |
| |
337
| + 'acE' => '∾̳', |
| |
338
| + 'amalg' => '⨿', |
| |
339
| + 'barvee' => '⊽', |
| |
340
| + 'Barwed' => '⌆', |
| |
341
| + 'barwed' => '⌅', |
| |
342
| + 'bsolb' => '⧅', |
| |
343
| + 'Cap' => '⋒', |
| |
344
| + 'capand' => '⩄', |
| |
345
| + 'capbrcup' => '⩉', |
| |
346
| + 'capcap' => '⩋', |
| |
347
| + 'capcup' => '⩇', |
| |
348
| + 'capdot' => '⩀', |
| |
349
| + 'caps' => '∩︀', |
| |
350
| + 'ccaps' => '⩍', |
| |
351
| + 'ccups' => '⩌', |
| |
352
| + 'ccupssm' => '⩐', |
| |
353
| + 'coprod' => '∐', |
| |
354
| + 'Cup' => '⋓', |
| |
355
| + 'cupbrcap' => '⩈', |
| |
356
| + 'cupcap' => '⩆', |
| |
357
| + 'cupcup' => '⩊', |
| |
358
| + 'cupdot' => '⊍', |
| |
359
| + 'cupor' => '⩅', |
| |
360
| + 'cups' => '∪︀', |
| |
361
| + 'cuvee' => '⋎', |
| |
362
| + 'cuwed' => '⋏', |
| |
363
| + 'Dagger' => '‡', |
| |
364
| + 'dagger' => '†', |
| |
365
| + 'diam' => '⋄', |
| |
366
| + 'divonx' => '⋇', |
| |
367
| + 'eplus' => '⩱', |
| |
368
| + 'hercon' => '⊹', |
| |
369
| + 'intcal' => '⊺', |
| |
370
| + 'iprod' => '⨼', |
| |
371
| + 'loplus' => '⨭', |
| |
372
| + 'lotimes' => '⨴', |
| |
373
| + 'lthree' => '⋋', |
| |
374
| + 'ltimes' => '⋉', |
| |
375
| + 'midast' => '*', |
| |
376
| + 'minusb' => '⊟', |
| |
377
| + 'minusd' => '∸', |
| |
378
| + 'minusdu' => '⨪', |
| |
379
| + 'ncap' => '⩃', |
| |
380
| + 'ncup' => '⩂', |
| |
381
| + 'oast' => '⊛', |
| |
382
| + 'ocir' => '⊚', |
| |
383
| + 'odash' => '⊝', |
| |
384
| + 'odiv' => '⨸', |
| |
385
| + 'odot' => '⊙', |
| |
386
| + 'odsold' => '⦼', |
| |
387
| + 'ofcir' => '⦿', |
| |
388
| + 'ogt' => '⧁', |
| |
389
| + 'ohbar' => '⦵', |
| |
390
| + 'olcir' => '⦾', |
| |
391
| + 'olt' => '⧀', |
| |
392
| + 'omid' => '⦶', |
| |
393
| + 'ominus' => '⊖', |
| |
394
| + 'opar' => '⦷', |
| |
395
| + 'operp' => '⦹', |
| |
396
| + 'oplus' => '⊕', |
| |
397
| + 'osol' => '⊘', |
| |
398
| + 'Otimes' => '⨷', |
| |
399
| + 'otimes' => '⊗', |
| |
400
| + 'otimesas' => '⨶', |
| |
401
| + 'ovbar' => '⌽', |
| |
402
| + 'plusacir' => '⨣', |
| |
403
| + 'plusb' => '⊞', |
| |
404
| + 'pluscir' => '⨢', |
| |
405
| + 'plusdo' => '∔', |
| |
406
| + 'plusdu' => '⨥', |
| |
407
| + 'pluse' => '⩲', |
| |
408
| + 'plussim' => '⨦', |
| |
409
| + 'plustwo' => '⨧', |
| |
410
| + 'prod' => '∏', |
| |
411
| + 'race' => '⧚', |
| |
412
| + 'roplus' => '⨮', |
| |
413
| + 'rotimes' => '⨵', |
| |
414
| + 'rthree' => '⋌', |
| |
415
| + 'rtimes' => '⋊', |
| |
416
| + 'sdot' => '⋅', |
| |
417
| + 'sdotb' => '⊡', |
| |
418
| + 'setmn' => '∖', |
| |
419
| + 'simplus' => '⨤', |
| |
420
| + 'smashp' => '⨳', |
| |
421
| + 'solb' => '⧄', |
| |
422
| + 'sqcap' => '⊓', |
| |
423
| + 'sqcaps' => '⊓︀', |
| |
424
| + 'sqcup' => '⊔', |
| |
425
| + 'sqcups' => '⊔︀', |
| |
426
| + 'ssetmn' => '∖', |
| |
427
| + 'sstarf' => '⋆', |
| |
428
| + 'subdot' => '⪽', |
| |
429
| + 'sum' => '∑', |
| |
430
| + 'supdot' => '⪾', |
| |
431
| + 'timesb' => '⊠', |
| |
432
| + 'timesbar' => '⨱', |
| |
433
| + 'timesd' => '⨰', |
| |
434
| + 'tridot' => '◬', |
| |
435
| + 'triminus' => '⨺', |
| |
436
| + 'triplus' => '⨹', |
| |
437
| + 'trisb' => '⧍', |
| |
438
| + 'tritime' => '⨻', |
| |
439
| + 'uplus' => '⊎', |
| |
440
| + 'veebar' => '⊻', |
| |
441
| + 'wedbar' => '⩟', |
| |
442
| + 'wreath' => '≀', |
| |
443
| + 'xcap' => '⋂', |
| |
444
| + 'xcirc' => '◯', |
| |
445
| + 'xcup' => '⋃', |
| |
446
| + 'xdtri' => '▽', |
| |
447
| + 'xodot' => '⨀', |
| |
448
| + 'xoplus' => '⨁', |
| |
449
| + 'xotime' => '⨂', |
| |
450
| + 'xsqcup' => '⨆', |
| |
451
| + 'xuplus' => '⨄', |
| |
452
| + 'xutri' => '△', |
| |
453
| + 'xvee' => '⋁', |
| |
454
| + 'xwedge' => '⋀', |
| |
455
| + 'dlcorn' => '⌞', |
| |
456
| + 'drcorn' => '⌟', |
| |
457
| + 'gtlPar' => '⦕', |
| |
458
| + 'langd' => '⦑', |
| |
459
| + 'lbrke' => '⦋', |
| |
460
| + 'lbrksld' => '⦏', |
| |
461
| + 'lbrkslu' => '⦍', |
| |
462
| + 'lceil' => '⌈', |
| |
463
| + 'lfloor' => '⌊', |
| |
464
| + 'lmoust' => '⎰', |
| |
465
| + 'lparlt' => '⦓', |
| |
466
| + 'ltrPar' => '⦖', |
| |
467
| + 'rangd' => '⦒', |
| |
468
| + 'rbrke' => '⦌', |
| |
469
| + 'rbrksld' => '⦎', |
| |
470
| + 'rbrkslu' => '⦐', |
| |
471
| + 'rceil' => '⌉', |
| |
472
| + 'rfloor' => '⌋', |
| |
473
| + 'rmoust' => '⎱', |
| |
474
| + 'rpargt' => '⦔', |
| |
475
| + 'ulcorn' => '⌜', |
| |
476
| + 'urcorn' => '⌝', |
| |
477
| + 'gnap' => '⪊', |
| |
478
| + 'gnE' => '≩', |
| |
479
| + 'gne' => '⪈', |
| |
480
| + 'gnsim' => '⋧', |
| |
481
| + 'gvnE' => '≩︀', |
| |
482
| + 'lnap' => '⪉', |
| |
483
| + 'lnE' => '≨', |
| |
484
| + 'lne' => '⪇', |
| |
485
| + 'lnsim' => '⋦', |
| |
486
| + 'lvnE' => '≨︀', |
| |
487
| + 'nap' => '≉', |
| |
488
| + 'napE' => '⩰̸', |
| |
489
| + 'napid' => '≋̸', |
| |
490
| + 'ncong' => '≇', |
| |
491
| + 'ncongdot' => '⩭̸', |
| |
492
| + 'nequiv' => '≢', |
| |
493
| + 'ngE' => '≧̸', |
| |
494
| + 'nge' => '≱', |
| |
495
| + 'nges' => '⩾̸', |
| |
496
| + 'nGg' => '⋙̸', |
| |
497
| + 'ngsim' => '≵', |
| |
498
| + 'nGt' => '≫⃒', |
| |
499
| + 'ngt' => '≯', |
| |
500
| + 'nGtv' => '≫̸', |
| |
501
| + 'nlE' => '≦̸', |
| |
502
| + 'nle' => '≰', |
| |
503
| + 'nles' => '⩽̸', |
| |
504
| + 'nLl' => '⋘̸', |
| |
505
| + 'nlsim' => '≴', |
| |
506
| + 'nLt' => '≪⃒', |
| |
507
| + 'nlt' => '≮', |
| |
508
| + 'nltri' => '⋪', |
| |
509
| + 'nltrie' => '⋬', |
| |
510
| + 'nLtv' => '≪̸', |
| |
511
| + 'nmid' => '∤', |
| |
512
| + 'npar' => '∦', |
| |
513
| + 'npr' => '⊀', |
| |
514
| + 'nprcue' => '⋠', |
| |
515
| + 'npre' => '⪯̸', |
| |
516
| + 'nrtri' => '⋫', |
| |
517
| + 'nrtrie' => '⋭', |
| |
518
| + 'nsc' => '⊁', |
| |
519
| + 'nsccue' => '⋡', |
| |
520
| + 'nsce' => '⪰̸', |
| |
521
| + 'nsim' => '≁', |
| |
522
| + 'nsime' => '≄', |
| |
523
| + 'nsmid' => '∤', |
| |
524
| + 'nspar' => '∦', |
| |
525
| + 'nsqsube' => '⋢', |
| |
526
| + 'nsqsupe' => '⋣', |
| |
527
| + 'nsub' => '⊄', |
| |
528
| + 'nsubE' => '⫅̸', |
| |
529
| + 'nsube' => '⊈', |
| |
530
| + 'nsup' => '⊅', |
| |
531
| + 'nsupE' => '⫆̸', |
| |
532
| + 'nsupe' => '⊉', |
| |
533
| + 'ntgl' => '≹', |
| |
534
| + 'ntlg' => '≸', |
| |
535
| + 'nvap' => '≍⃒', |
| |
536
| + 'nVDash' => '⊯', |
| |
537
| + 'nVdash' => '⊮', |
| |
538
| + 'nvDash' => '⊭', |
| |
539
| + 'nvdash' => '⊬', |
| |
540
| + 'nvge' => '≥⃒', |
| |
541
| + 'nvgt' => '>⃒', |
| |
542
| + 'nvle' => '≤⃒', |
| |
543
| + 'nvltrie' => '⊴⃒', |
| |
544
| + 'nvrtrie' => '⊵⃒', |
| |
545
| + 'nvsim' => '∼⃒', |
| |
546
| + 'parsim' => '⫳', |
| |
547
| + 'prnap' => '⪹', |
| |
548
| + 'prnE' => '⪵', |
| |
549
| + 'prnsim' => '⋨', |
| |
550
| + 'rnmid' => '⫮', |
| |
551
| + 'scnap' => '⪺', |
| |
552
| + 'scnE' => '⪶', |
| |
553
| + 'scnsim' => '⋩', |
| |
554
| + 'simne' => '≆', |
| |
555
| + 'solbar' => '⌿', |
| |
556
| + 'subnE' => '⫋', |
| |
557
| + 'subne' => '⊊', |
| |
558
| + 'supnE' => '⫌', |
| |
559
| + 'supne' => '⊋', |
| |
560
| + 'vnsub' => '⊂⃒', |
| |
561
| + 'vnsup' => '⊃⃒', |
| |
562
| + 'vsubnE' => '⫋︀', |
| |
563
| + 'vsubne' => '⊊︀', |
| |
564
| + 'vsupnE' => '⫌︀', |
| |
565
| + 'vsupne' => '⊋︀', |
| |
566
| + 'ang' => '∠', |
| |
567
| + 'ange' => '⦤', |
| |
568
| + 'angmsd' => '∡', |
| |
569
| + 'angmsdaa' => '⦨', |
| |
570
| + 'angmsdab' => '⦩', |
| |
571
| + 'angmsdac' => '⦪', |
| |
572
| + 'angmsdad' => '⦫', |
| |
573
| + 'angmsdae' => '⦬', |
| |
574
| + 'angmsdaf' => '⦭', |
| |
575
| + 'angmsdag' => '⦮', |
| |
576
| + 'angmsdah' => '⦯', |
| |
577
| + 'angrtvb' => '⊾', |
| |
578
| + 'angrtvbd' => '⦝', |
| |
579
| + 'bbrk' => '⎵', |
| |
580
| + 'bbrktbrk' => '⎶', |
| |
581
| + 'bemptyv' => '⦰', |
| |
582
| + 'beth' => 'ℶ', |
| |
583
| + 'boxbox' => '⧉', |
| |
584
| + 'bprime' => '‵', |
| |
585
| + 'bsemi' => '⁏', |
| |
586
| + 'cemptyv' => '⦲', |
| |
587
| + 'cirE' => '⧃', |
| |
588
| + 'cirscir' => '⧂', |
| |
589
| + 'comp' => '∁', |
| |
590
| + 'daleth' => 'ℸ', |
| |
591
| + 'demptyv' => '⦱', |
| |
592
| + 'ell' => 'ℓ', |
| |
593
| + 'empty' => '∅', |
| |
594
| + 'emptyv' => '∅', |
| |
595
| + 'gimel' => 'ℷ', |
| |
596
| + 'iiota' => '℩', |
| |
597
| + 'image' => 'ℑ', |
| |
598
| + 'imath' => 'ı', |
| |
599
| + 'jmath' => 'j', |
| |
600
| + 'laemptyv' => '⦴', |
| |
601
| + 'lltri' => '◺', |
| |
602
| + 'lrtri' => '⊿', |
| |
603
| + 'mho' => '℧', |
| |
604
| + 'nang' => '∠⃒', |
| |
605
| + 'nexist' => '∄', |
| |
606
| + 'oS' => 'Ⓢ', |
| |
607
| + 'planck' => 'ℏ', |
| |
608
| + 'plankv' => 'ℏ', |
| |
609
| + 'raemptyv' => '⦳', |
| |
610
| + 'range' => '⦥', |
| |
611
| + 'real' => 'ℜ', |
| |
612
| + 'tbrk' => '⎴', |
| |
613
| + 'trpezium' => '�', |
| |
614
| + 'ultri' => '◸', |
| |
615
| + 'urtri' => '◹', |
| |
616
| + 'vzigzag' => '⦚', |
| |
617
| + 'weierp' => '℘', |
| |
618
| + 'apE' => '⩰', |
| |
619
| + 'ape' => '≊', |
| |
620
| + 'apid' => '≋', |
| |
621
| + 'asymp' => '≈', |
| |
622
| + 'Barv' => '⫧', |
| |
623
| + 'bcong' => '≌', |
| |
624
| + 'bepsi' => '϶', |
| |
625
| + 'bowtie' => '⋈', |
| |
626
| + 'bsim' => '∽', |
| |
627
| + 'bsime' => '⋍', |
| |
628
| + 'bsolhsub' => '\⊂', |
| |
629
| + 'bump' => '≎', |
| |
630
| + 'bumpE' => '⪮', |
| |
631
| + 'bumpe' => '≏', |
| |
632
| + 'cire' => '≗', |
| |
633
| + 'Colon' => '∷', |
| |
634
| + 'Colone' => '⩴', |
| |
635
| + 'colone' => '≔', |
| |
636
| + 'congdot' => '⩭', |
| |
637
| + 'csub' => '⫏', |
| |
638
| + 'csube' => '⫑', |
| |
639
| + 'csup' => '⫐', |
| |
640
| + 'csupe' => '⫒', |
| |
641
| + 'cuepr' => '⋞', |
| |
642
| + 'cuesc' => '⋟', |
| |
643
| + 'Dashv' => '⫤', |
| |
644
| + 'dashv' => '⊣', |
| |
645
| + 'easter' => '⩮', |
| |
646
| + 'ecir' => '≖', |
| |
647
| + 'ecolon' => '≕', |
| |
648
| + 'eDDot' => '⩷', |
| |
649
| + 'eDot' => '≑', |
| |
650
| + 'efDot' => '≒', |
| |
651
| + 'eg' => '⪚', |
| |
652
| + 'egs' => '⪖', |
| |
653
| + 'egsdot' => '⪘', |
| |
654
| + 'el' => '⪙', |
| |
655
| + 'els' => '⪕', |
| |
656
| + 'elsdot' => '⪗', |
| |
657
| + 'equest' => '≟', |
| |
658
| + 'equivDD' => '⩸', |
| |
659
| + 'erDot' => '≓', |
| |
660
| + 'esdot' => '≐', |
| |
661
| + 'Esim' => '⩳', |
| |
662
| + 'esim' => '≂', |
| |
663
| + 'fork' => '⋔', |
| |
664
| + 'forkv' => '⫙', |
| |
665
| + 'frown' => '⌢', |
| |
666
| + 'gap' => '⪆', |
| |
667
| + 'gE' => '≧', |
| |
668
| + 'gEl' => '⪌', |
| |
669
| + 'gel' => '⋛', |
| |
670
| + 'ges' => '⩾', |
| |
671
| + 'gescc' => '⪩', |
| |
672
| + 'gesdot' => '⪀', |
| |
673
| + 'gesdoto' => '⪂', |
| |
674
| + 'gesdotol' => '⪄', |
| |
675
| + 'gesl' => '⋛︀', |
| |
676
| + 'gesles' => '⪔', |
| |
677
| + 'Gg' => '⋙', |
| |
678
| + 'gl' => '≷', |
| |
679
| + 'gla' => '⪥', |
| |
680
| + 'glE' => '⪒', |
| |
681
| + 'glj' => '⪤', |
| |
682
| + 'gsim' => '≳', |
| |
683
| + 'gsime' => '⪎', |
| |
684
| + 'gsiml' => '⪐', |
| |
685
| + 'Gt' => '≫', |
| |
686
| + 'gtcc' => '⪧', |
| |
687
| + 'gtcir' => '⩺', |
| |
688
| + 'gtdot' => '⋗', |
| |
689
| + 'gtquest' => '⩼', |
| |
690
| + 'gtrarr' => '⥸', |
| |
691
| + 'homtht' => '∻', |
| |
692
| + 'lap' => '⪅', |
| |
693
| + 'lat' => '⪫', |
| |
694
| + 'late' => '⪭', |
| |
695
| + 'lates' => '⪭︀', |
| |
696
| + 'lE' => '≦', |
| |
697
| + 'lEg' => '⪋', |
| |
698
| + 'leg' => '⋚', |
| |
699
| + 'les' => '⩽', |
| |
700
| + 'lescc' => '⪨', |
| |
701
| + 'lesdot' => '⩿', |
| |
702
| + 'lesdoto' => '⪁', |
| |
703
| + 'lesdotor' => '⪃', |
| |
704
| + 'lesg' => '⋚︀', |
| |
705
| + 'lesges' => '⪓', |
| |
706
| + 'lg' => '≶', |
| |
707
| + 'lgE' => '⪑', |
| |
708
| + 'Ll' => '⋘', |
| |
709
| + 'lsim' => '≲', |
| |
710
| + 'lsime' => '⪍', |
| |
711
| + 'lsimg' => '⪏', |
| |
712
| + 'Lt' => '≪', |
| |
713
| + 'ltcc' => '⪦', |
| |
714
| + 'ltcir' => '⩹', |
| |
715
| + 'ltdot' => '⋖', |
| |
716
| + 'ltlarr' => '⥶', |
| |
717
| + 'ltquest' => '⩻', |
| |
718
| + 'ltrie' => '⊴', |
| |
719
| + 'mcomma' => '⨩', |
| |
720
| + 'mDDot' => '∺', |
| |
721
| + 'mid' => '∣', |
| |
722
| + 'mlcp' => '⫛', |
| |
723
| + 'models' => '⊧', |
| |
724
| + 'mstpos' => '∾', |
| |
725
| + 'Pr' => '⪻', |
| |
726
| + 'pr' => '≺', |
| |
727
| + 'prap' => '⪷', |
| |
728
| + 'prcue' => '≼', |
| |
729
| + 'prE' => '⪳', |
| |
730
| + 'pre' => '⪯', |
| |
731
| + 'prsim' => '≾', |
| |
732
| + 'prurel' => '⊰', |
| |
733
| + 'ratio' => '∶', |
| |
734
| + 'rtrie' => '⊵', |
| |
735
| + 'rtriltri' => '⧎', |
| |
736
| + 'Sc' => '⪼', |
| |
737
| + 'sc' => '≻', |
| |
738
| + 'scap' => '⪸', |
| |
739
| + 'sccue' => '≽', |
| |
740
| + 'scE' => '⪴', |
| |
741
| + 'sce' => '⪰', |
| |
742
| + 'scsim' => '≿', |
| |
743
| + 'sdote' => '⩦', |
| |
744
| + 'sfrown' => '⌢', |
| |
745
| + 'simg' => '⪞', |
| |
746
| + 'simgE' => '⪠', |
| |
747
| + 'siml' => '⪝', |
| |
748
| + 'simlE' => '⪟', |
| |
749
| + 'smid' => '∣', |
| |
750
| + 'smile' => '⌣', |
| |
751
| + 'smt' => '⪪', |
| |
752
| + 'smte' => '⪬', |
| |
753
| + 'smtes' => '⪬︀', |
| |
754
| + 'spar' => '∥', |
| |
755
| + 'sqsub' => '⊏', |
| |
756
| + 'sqsube' => '⊑', |
| |
757
| + 'sqsup' => '⊐', |
| |
758
| + 'sqsupe' => '⊒', |
| |
759
| + 'ssmile' => '⌣', |
| |
760
| + 'Sub' => '⋐', |
| |
761
| + 'subE' => '⫅', |
| |
762
| + 'subedot' => '⫃', |
| |
763
| + 'submult' => '⫁', |
| |
764
| + 'subplus' => '⪿', |
| |
765
| + 'subrarr' => '⥹', |
| |
766
| + 'subsim' => '⫇', |
| |
767
| + 'subsub' => '⫕', |
| |
768
| + 'subsup' => '⫓', |
| |
769
| + 'Sup' => '⋑', |
| |
770
| + 'supdsub' => '⫘', |
| |
771
| + 'supE' => '⫆', |
| |
772
| + 'supedot' => '⫄', |
| |
773
| + 'suphsol' => '⊃/', |
| |
774
| + 'suphsub' => '⫗', |
| |
775
| + 'suplarr' => '⥻', |
| |
776
| + 'supmult' => '⫂', |
| |
777
| + 'supplus' => '⫀', |
| |
778
| + 'supsim' => '⫈', |
| |
779
| + 'supsub' => '⫔', |
| |
780
| + 'supsup' => '⫖', |
| |
781
| + 'thkap' => '≈', |
| |
782
| + 'thksim' => '∼', |
| |
783
| + 'topfork' => '⫚', |
| |
784
| + 'trie' => '≜', |
| |
785
| + 'twixt' => '≬', |
| |
786
| + 'Vbar' => '⫫', |
| |
787
| + 'vBar' => '⫨', |
| |
788
| + 'vBarv' => '⫩', |
| |
789
| + 'VDash' => '⊫', |
| |
790
| + 'Vdash' => '⊩', |
| |
791
| + 'vDash' => '⊨', |
| |
792
| + 'vdash' => '⊢', |
| |
793
| + 'Vdashl' => '⫦', |
| |
794
| + 'vltri' => '⊲', |
| |
795
| + 'vprop' => '∝', |
| |
796
| + 'vrtri' => '⊳', |
| |
797
| + 'Vvdash' => '⊪', |
| |
798
| + 'alpha' => 'α', |
| |
799
| + 'beta' => 'β', |
| |
800
| + 'chi' => 'χ', |
| |
801
| + 'Delta' => 'Δ', |
| |
802
| + 'delta' => 'δ', |
| |
803
| + 'epsi' => 'ϵ', |
| |
804
| + 'epsiv' => 'ε', |
| |
805
| + 'eta' => 'η', |
| |
806
| + 'Gamma' => 'Γ', |
| |
807
| + 'gamma' => 'γ', |
| |
808
| + 'Gammad' => 'Ϝ', |
| |
809
| + 'gammad' => 'ϝ', |
| |
810
| + 'iota' => 'ι', |
| |
811
| + 'kappa' => 'κ', |
| |
812
| + 'kappav' => 'ϰ', |
| |
813
| + 'Lambda' => 'Λ', |
| |
814
| + 'lambda' => 'λ', |
| |
815
| + 'mu' => 'μ', |
| |
816
| + 'nu' => 'ν', |
| |
817
| + 'Omega' => 'Ω', |
| |
818
| + 'omega' => 'ω', |
| |
819
| + 'Phi' => 'Φ', |
| |
820
| + 'phi' => 'ϕ', |
| |
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
| + 'flat' => '♭', |
| |
1566
| + 'fllig' => 'fl', |
| |
1567
| + 'frac13' => '⅓', |
| |
1568
| + 'frac15' => '⅕', |
| |
1569
| + 'frac16' => '⅙', |
| |
1570
| + 'frac23' => '⅔', |
| |
1571
| + 'frac25' => '⅖', |
| |
1572
| + 'frac35' => '⅗', |
| |
1573
| + 'frac45' => '⅘', |
| |
1574
| + 'frac56' => '⅚', |
| |
1575
| + 'hairsp' => ' ', |
| |
1576
| + 'hearts' => '♥', |
| |
1577
| + 'hellip' => '…', |
| |
1578
| + 'hybull' => '⁃', |
| |
1579
| + 'incare' => '℅', |
| |
1580
| + 'ldquor' => '„', |
| |
1581
| + 'lhblk' => '▄', |
| |
1582
| + 'loz' => '◊', |
| |
1583
| + 'lozf' => '⧫', |
| |
1584
| + 'lsquor' => '‚', |
| |
1585
| + 'ltri' => '◃', |
| |
1586
| + 'ltrif' => '◂', |
| |
1587
| + 'male' => '♂', |
| |
1588
| + 'malt' => '✠', |
| |
1589
| + 'marker' => '▮', |
| |
1590
| + 'mdash' => '—', |
| |
1591
| + 'mldr' => '…', |
| |
1592
| + 'natur' => '♮', |
| |
1593
| + 'ndash' => '–', |
| |
1594
| + 'nldr' => '‥', |
| |
1595
| + 'numsp' => ' ', |
| |
1596
| + 'phone' => '☎', |
| |
1597
| + 'puncsp' => ' ', |
| |
1598
| + 'rdquor' => '”', |
| |
1599
| + 'rect' => '▭', |
| |
1600
| + 'rsquor' => '’', |
| |
1601
| + 'rtri' => '▹', |
| |
1602
| + 'rtrif' => '▸', |
| |
1603
| + 'rx' => '℞', |
| |
1604
| + 'sext' => '✶', |
| |
1605
| + 'sharp' => '♯', |
| |
1606
| + 'spades' => '♠', |
| |
1607
| + 'squ' => '□', |
| |
1608
| + 'squf' => '▪', |
| |
1609
| + 'star' => '☆', |
| |
1610
| + 'starf' => '★', |
| |
1611
| + 'target' => '⌖', |
| |
1612
| + 'telrec' => '⌕', |
| |
1613
| + 'thinsp' => ' ', |
| |
1614
| + 'uhblk' => '▀', |
| |
1615
| + 'ulcrop' => '⌏', |
| |
1616
| + 'urcrop' => '⌎', |
| |
1617
| + 'utri' => '▵', |
| |
1618
| + 'utrif' => '▴', |
| |
1619
| + 'vellip' => '⋮', |
| |
1620
| + 'af' => '⁡', |
| |
1621
| + 'aopf' => '𝕒', |
| |
1622
| + 'asympeq' => '≍', |
| |
1623
| + 'bopf' => '𝕓', |
| |
1624
| + 'copf' => '𝕔', |
| |
1625
| + 'Cross' => '⨯', |
| |
1626
| + 'DD' => 'ⅅ', |
| |
1627
| + 'dd' => 'ⅆ', |
| |
1628
| + 'dopf' => '𝕕', |
| |
1629
| + 'DownArrowBar' => '⤓', |
| |
1630
| + 'DownBreve' => '̑', |
| |
1631
| + 'DownLeftRightVector' => '⥐', |
| |
1632
| + 'DownLeftTeeVector' => '⥞', |
| |
1633
| + 'DownLeftVectorBar' => '⥖', |
| |
1634
| + 'DownRightTeeVector' => '⥟', |
| |
1635
| + 'DownRightVectorBar' => '⥗', |
| |
1636
| + 'ee' => 'ⅇ', |
| |
1637
| + 'EmptySmallSquare' => '◻', |
| |
1638
| + 'EmptyVerySmallSquare' => '▫', |
| |
1639
| + 'eopf' => '𝕖', |
| |
1640
| + 'Equal' => '⩵', |
| |
1641
| + 'FilledSmallSquare' => '◼', |
| |
1642
| + 'FilledVerySmallSquare' => '▪', |
| |
1643
| + 'fopf' => '𝕗', |
| |
1644
| + 'gopf' => '𝕘', |
| |
1645
| + 'GreaterGreater' => '⪢', |
| |
1646
| + 'Hat' => '^', |
| |
1647
| + 'hopf' => '𝕙', |
| |
1648
| + 'HorizontalLine' => '─', |
| |
1649
| + 'ic' => '⁣', |
| |
1650
| + 'ii' => 'ⅈ', |
| |
1651
| + 'iopf' => '𝕚', |
| |
1652
| + 'it' => '⁢', |
| |
1653
| + 'jopf' => '𝕛', |
| |
1654
| + 'kopf' => '𝕜', |
| |
1655
| + 'larrb' => '⇤', |
| |
1656
| + 'LeftDownTeeVector' => '⥡', |
| |
1657
| + 'LeftDownVectorBar' => '⥙', |
| |
1658
| + 'LeftRightVector' => '⥎', |
| |
1659
| + 'LeftTeeVector' => '⥚', |
| |
1660
| + 'LeftTriangleBar' => '⧏', |
| |
1661
| + 'LeftUpDownVector' => '⥑', |
| |
1662
| + 'LeftUpTeeVector' => '⥠', |
| |
1663
| + 'LeftUpVectorBar' => '⥘', |
| |
1664
| + 'LeftVectorBar' => '⥒', |
| |
1665
| + 'LessLess' => '⪡', |
| |
1666
| + 'lopf' => '𝕝', |
| |
1667
| + 'mapstodown' => '↧', |
| |
1668
| + 'mapstoleft' => '↤', |
| |
1669
| + 'mapstoup' => '↥', |
| |
1670
| + 'MediumSpace' => ' ', |
| |
1671
| + 'mopf' => '𝕞', |
| |
1672
| + 'nbump' => '≎̸', |
| |
1673
| + 'nbumpe' => '≏̸', |
| |
1674
| + 'nesim' => '≂̸', |
| |
1675
| + 'NewLine' => '
', |
| |
1676
| + 'NoBreak' => '⁠', |
| |
1677
| + 'nopf' => '𝕟', |
| |
1678
| + 'NotCupCap' => '≭', |
| |
1679
| + 'NotHumpEqual' => '≏̸', |
| |
1680
| + 'NotLeftTriangleBar' => '⧏̸', |
| |
1681
| + 'NotNestedGreaterGreater' => '⪢̸', |
| |
1682
| + 'NotNestedLessLess' => '⪡̸', |
| |
1683
| + 'NotRightTriangleBar' => '⧐̸', |
| |
1684
| + 'NotSquareSubset' => '⊏̸', |
| |
1685
| + 'NotSquareSuperset' => '⊐̸', |
| |
1686
| + 'NotSucceedsTilde' => '≿̸', |
| |
1687
| + 'oopf' => '𝕠', |
| |
1688
| + 'OverBar' => '¯', |
| |
1689
| + 'OverBrace' => '︷', |
| |
1690
| + 'OverBracket' => '⎴', |
| |
1691
| + 'OverParenthesis' => '︵', |
| |
1692
| + 'planckh' => 'ℎ', |
| |
1693
| + 'popf' => '𝕡', |
| |
1694
| + 'Product' => '∏', |
| |
1695
| + 'qopf' => '𝕢', |
| |
1696
| + 'rarrb' => '⇥', |
| |
1697
| + 'RightDownTeeVector' => '⥝', |
| |
1698
| + 'RightDownVectorBar' => '⥕', |
| |
1699
| + 'RightTeeVector' => '⥛', |
| |
1700
| + 'RightTriangleBar' => '⧐', |
| |
1701
| + 'RightUpDownVector' => '⥏', |
| |
1702
| + 'RightUpTeeVector' => '⥜', |
| |
1703
| + 'RightUpVectorBar' => '⥔', |
| |
1704
| + 'RightVectorBar' => '⥓', |
| |
1705
| + 'ropf' => '𝕣', |
| |
1706
| + 'RoundImplies' => '⥰', |
| |
1707
| + 'RuleDelayed' => '⧴', |
| |
1708
| + 'sopf' => '𝕤', |
| |
1709
| + 'Tab' => '	', |
| |
1710
| + 'ThickSpace' => '   ', |
| |
1711
| + 'topf' => '𝕥', |
| |
1712
| + 'UnderBar' => '̲', |
| |
1713
| + 'UnderBrace' => '︸', |
| |
1714
| + 'UnderBracket' => '⎵', |
| |
1715
| + 'UnderParenthesis' => '︶', |
| |
1716
| + 'uopf' => '𝕦', |
| |
1717
| + 'UpArrowBar' => '⤒', |
| |
1718
| + 'Upsilon' => 'Υ', |
| |
1719
| + 'VerticalLine' => '|', |
| |
1720
| + 'VerticalSeparator' => '❘', |
| |
1721
| + 'vopf' => '𝕧', |
| |
1722
| + 'wopf' => '𝕨', |
| |
1723
| + 'xopf' => '𝕩', |
| |
1724
| + 'yopf' => '𝕪', |
| |
1725
| + 'ZeroWidthSpace' => '​', |
| |
1726
| + 'zopf' => '𝕫', |
| |
1727
| + 'angle' => '∠', |
| |
1728
| + 'ApplyFunction' => '⁡', |
| |
1729
| + 'approx' => '≈', |
| |
1730
| + 'approxeq' => '≊', |
| |
1731
| + 'Assign' => '≔', |
| |
1732
| + 'backcong' => '≌', |
| |
1733
| + 'backepsilon' => '϶', |
| |
1734
| + 'backprime' => '‵', |
| |
1735
| + 'backsim' => '∽', |
| |
1736
| + 'backsimeq' => '⋍', |
| |
1737
| + 'Backslash' => '∖', |
| |
1738
| + 'barwedge' => '⌅', |
| |
1739
| + 'Because' => '∵', |
| |
1740
| + 'because' => '∵', |
| |
1741
| + 'Bernoullis' => 'ℬ', |
| |
1742
| + 'between' => '≬', |
| |
1743
| + 'bigcap' => '⋂', |
| |
1744
| + 'bigcirc' => '◯', |
| |
1745
| + 'bigcup' => '⋃', |
| |
1746
| + 'bigodot' => '⨀', |
| |
1747
| + 'bigoplus' => '⨁', |
| |
1748
| + 'bigotimes' => '⨂', |
| |
1749
| + 'bigsqcup' => '⨆', |
| |
1750
| + 'bigstar' => '★', |
| |
1751
| + 'bigtriangledown' => '▽', |
| |
1752
| + 'bigtriangleup' => '△', |
| |
1753
| + 'biguplus' => '⨄', |
| |
1754
| + 'bigvee' => '⋁', |
| |
1755
| + 'bigwedge' => '⋀', |
| |
1756
| + 'bkarow' => '⤍', |
| |
1757
| + 'blacklozenge' => '⧫', |
| |
1758
| + 'blacksquare' => '▪', |
| |
1759
| + 'blacktriangle' => '▴', |
| |
1760
| + 'blacktriangledown' => '▾', |
| |
1761
| + 'blacktriangleleft' => '◂', |
| |
1762
| + 'blacktriangleright' => '▸', |
| |
1763
| + 'bot' => '⊥', |
| |
1764
| + 'boxminus' => '⊟', |
| |
1765
| + 'boxplus' => '⊞', |
| |
1766
| + 'boxtimes' => '⊠', |
| |
1767
| + 'Breve' => '˘', |
| |
1768
| + 'bullet' => '•', |
| |
1769
| + 'Bumpeq' => '≎', |
| |
1770
| + 'bumpeq' => '≏', |
| |
1771
| + 'CapitalDifferentialD' => 'ⅅ', |
| |
1772
| + 'Cayleys' => 'ℭ', |
| |
1773
| + 'Cedilla' => '¸', |
| |
1774
| + 'CenterDot' => '·', |
| |
1775
| + 'centerdot' => '·', |
| |
1776
| + 'checkmark' => '✓', |
| |
1777
| + 'circeq' => '≗', |
| |
1778
| + 'circlearrowleft' => '↺', |
| |
1779
| + 'circlearrowright' => '↻', |
| |
1780
| + 'circledast' => '⊛', |
| |
1781
| + 'circledcirc' => '⊚', |
| |
1782
| + 'circleddash' => '⊝', |
| |
1783
| + 'CircleDot' => '⊙', |
| |
1784
| + 'circledR' => '®', |
| |
1785
| + 'circledS' => 'Ⓢ', |
| |
1786
| + 'CircleMinus' => '⊖', |
| |
1787
| + 'CirclePlus' => '⊕', |
| |
1788
| + 'CircleTimes' => '⊗', |
| |
1789
| + 'ClockwiseContourIntegral' => '∲', |
| |
1790
| + 'CloseCurlyDoubleQuote' => '”', |
| |
1791
| + 'CloseCurlyQuote' => '’', |
| |
1792
| + 'clubsuit' => '♣', |
| |
1793
| + 'coloneq' => '≔', |
| |
1794
| + 'complement' => '∁', |
| |
1795
| + 'complexes' => 'ℂ', |
| |
1796
| + 'Congruent' => '≡', |
| |
1797
| + 'ContourIntegral' => '∮', |
| |
1798
| + 'Coproduct' => '∐', |
| |
1799
| + 'CounterClockwiseContourIntegral' => '∳', |
| |
1800
| + 'CupCap' => '≍', |
| |
1801
| + 'curlyeqprec' => '⋞', |
| |
1802
| + 'curlyeqsucc' => '⋟', |
| |
1803
| + 'curlyvee' => '⋎', |
| |
1804
| + 'curlywedge' => '⋏', |
| |
1805
| + 'curvearrowleft' => '↶', |
| |
1806
| + 'curvearrowright' => '↷', |
| |
1807
| + 'dbkarow' => '⤏', |
| |
1808
| + 'ddagger' => '‡', |
| |
1809
| + 'ddotseq' => '⩷', |
| |
1810
| + 'Del' => '∇', |
| |
1811
| + 'DiacriticalAcute' => '´', |
| |
1812
| + 'DiacriticalDot' => '˙', |
| |
1813
| + 'DiacriticalDoubleAcute' => '˝', |
| |
1814
| + 'DiacriticalGrave' => '`', |
| |
1815
| + 'DiacriticalTilde' => '˜', |
| |
1816
| + 'Diamond' => '⋄', |
| |
1817
| + 'diamond' => '⋄', |
| |
1818
| + 'diamondsuit' => '♦', |
| |
1819
| + 'DifferentialD' => 'ⅆ', |
| |
1820
| + 'digamma' => 'ϝ', |
| |
1821
| + 'div' => '÷', |
| |
1822
| + 'divideontimes' => '⋇', |
| |
1823
| + 'doteq' => '≐', |
| |
1824
| + 'doteqdot' => '≑', |
| |
1825
| + 'DotEqual' => '≐', |
| |
1826
| + 'dotminus' => '∸', |
| |
1827
| + 'dotplus' => '∔', |
| |
1828
| + 'dotsquare' => '⊡', |
| |
1829
| + 'doublebarwedge' => '⌆', |
| |
1830
| + 'DoubleContourIntegral' => '∯', |
| |
1831
| + 'DoubleDot' => '¨', |
| |
1832
| + 'DoubleDownArrow' => '⇓', |
| |
1833
| + 'DoubleLeftArrow' => '⇐', |
| |
1834
| + 'DoubleLeftRightArrow' => '⇔', |
| |
1835
| + 'DoubleLeftTee' => '⫤', |
| |
1836
| + 'DoubleLongLeftArrow' => '⟸', |
| |
1837
| + 'DoubleLongLeftRightArrow' => '⟺', |
| |
1838
| + 'DoubleLongRightArrow' => '⟹', |
| |
1839
| + 'DoubleRightArrow' => '⇒', |
| |
1840
| + 'DoubleRightTee' => '⊨', |
| |
1841
| + 'DoubleUpArrow' => '⇑', |
| |
1842
| + 'DoubleUpDownArrow' => '⇕', |
| |
1843
| + 'DoubleVerticalBar' => '∥', |
| |
1844
| + 'DownArrow' => '↓', |
| |
1845
| + 'Downarrow' => '⇓', |
| |
1846
| + 'downarrow' => '↓', |
| |
1847
| + 'DownArrowUpArrow' => '⇵', |
| |
1848
| + 'downdownarrows' => '⇊', |
| |
1849
| + 'downharpoonleft' => '⇃', |
| |
1850
| + 'downharpoonright' => '⇂', |
| |
1851
| + 'DownLeftVector' => '↽', |
| |
1852
| + 'DownRightVector' => '⇁', |
| |
1853
| + 'DownTee' => '⊤', |
| |
1854
| + 'DownTeeArrow' => '↧', |
| |
1855
| + 'drbkarow' => '⤐', |
| |
1856
| + 'Element' => '∈', |
| |
1857
| + 'emptyset' => '∅', |
| |
1858
| + 'eqcirc' => '≖', |
| |
1859
| + 'eqcolon' => '≕', |
| |
1860
| + 'eqsim' => '≂', |
| |
1861
| + 'eqslantgtr' => '⪖', |
| |
1862
| + 'eqslantless' => '⪕', |
| |
1863
| + 'EqualTilde' => '≂', |
| |
1864
| + 'Equilibrium' => '⇌', |
| |
1865
| + 'Exists' => '∃', |
| |
1866
| + 'expectation' => 'ℰ', |
| |
1867
| + 'ExponentialE' => 'ⅇ', |
| |
1868
| + 'exponentiale' => 'ⅇ', |
| |
1869
| + 'fallingdotseq' => '≒', |
| |
1870
| + 'ForAll' => '∀', |
| |
1871
| + 'Fouriertrf' => 'ℱ', |
| |
1872
| + 'geq' => '≥', |
| |
1873
| + 'geqq' => '≧', |
| |
1874
| + 'geqslant' => '⩾', |
| |
1875
| + 'gg' => '≫', |
| |
1876
| + 'ggg' => '⋙', |
| |
1877
| + 'gnapprox' => '⪊', |
| |
1878
| + 'gneq' => '⪈', |
| |
1879
| + 'gneqq' => '≩', |
| |
1880
| + 'GreaterEqual' => '≥', |
| |
1881
| + 'GreaterEqualLess' => '⋛', |
| |
1882
| + 'GreaterFullEqual' => '≧', |
| |
1883
| + 'GreaterLess' => '≷', |
| |
1884
| + 'GreaterSlantEqual' => '⩾', |
| |
1885
| + 'GreaterTilde' => '≳', |
| |
1886
| + 'gtrapprox' => '⪆', |
| |
1887
| + 'gtrdot' => '⋗', |
| |
1888
| + 'gtreqless' => '⋛', |
| |
1889
| + 'gtreqqless' => '⪌', |
| |
1890
| + 'gtrless' => '≷', |
| |
1891
| + 'gtrsim' => '≳', |
| |
1892
| + 'gvertneqq' => '≩︀', |
| |
1893
| + 'Hacek' => 'ˇ', |
| |
1894
| + 'hbar' => 'ℏ', |
| |
1895
| + 'heartsuit' => '♥', |
| |
1896
| + 'HilbertSpace' => 'ℋ', |
| |
1897
| + 'hksearow' => '⤥', |
| |
1898
| + 'hkswarow' => '⤦', |
| |
1899
| + 'hookleftarrow' => '↩', |
| |
1900
| + 'hookrightarrow' => '↪', |
| |
1901
| + 'hslash' => 'ℏ', |
| |
1902
| + 'HumpDownHump' => '≎', |
| |
1903
| + 'HumpEqual' => '≏', |
| |
1904
| + 'iiiint' => '⨌', |
| |
1905
| + 'iiint' => '∭', |
| |
1906
| + 'Im' => 'ℑ', |
| |
1907
| + 'ImaginaryI' => 'ⅈ', |
| |
1908
| + 'imagline' => 'ℐ', |
| |
1909
| + 'imagpart' => 'ℑ', |
| |
1910
| + 'Implies' => '⇒', |
| |
1911
| + 'in' => '∈', |
| |
1912
| + 'integers' => 'ℤ', |
| |
1913
| + 'Integral' => '∫', |
| |
1914
| + 'intercal' => '⊺', |
| |
1915
| + 'Intersection' => '⋂', |
| |
1916
| + 'intprod' => '⨼', |
| |
1917
| + 'InvisibleComma' => '⁣', |
| |
1918
| + 'InvisibleTimes' => '⁢', |
| |
1919
| + 'langle' => '〈', |
| |
1920
| + 'Laplacetrf' => 'ℒ', |
| |
1921
| + 'lbrace' => '{', |
| |
1922
| + 'lbrack' => '[', |
| |
1923
| + 'LeftAngleBracket' => '〈', |
| |
1924
| + 'LeftArrow' => '←', |
| |
1925
| + 'Leftarrow' => '⇐', |
| |
1926
| + 'leftarrow' => '←', |
| |
1927
| + 'LeftArrowBar' => '⇤', |
| |
1928
| + 'LeftArrowRightArrow' => '⇆', |
| |
1929
| + 'leftarrowtail' => '↢', |
| |
1930
| + 'LeftCeiling' => '⌈', |
| |
1931
| + 'LeftDoubleBracket' => '〚', |
| |
1932
| + 'LeftDownVector' => '⇃', |
| |
1933
| + 'LeftFloor' => '⌊', |
| |
1934
| + 'leftharpoondown' => '↽', |
| |
1935
| + 'leftharpoonup' => '↼', |
| |
1936
| + 'leftleftarrows' => '⇇', |
| |
1937
| + 'LeftRightArrow' => '↔', |
| |
1938
| + 'Leftrightarrow' => '⇔', |
| |
1939
| + 'leftrightarrow' => '↔', |
| |
1940
| + 'leftrightarrows' => '⇆', |
| |
1941
| + 'leftrightharpoons' => '⇋', |
| |
1942
| + 'leftrightsquigarrow' => '↭', |
| |
1943
| + 'LeftTee' => '⊣', |
| |
1944
| + 'LeftTeeArrow' => '↤', |
| |
1945
| + 'leftthreetimes' => '⋋', |
| |
1946
| + 'LeftTriangle' => '⊲', |
| |
1947
| + 'LeftTriangleEqual' => '⊴', |
| |
1948
| + 'LeftUpVector' => '↿', |
| |
1949
| + 'LeftVector' => '↼', |
| |
1950
| + 'leq' => '≤', |
| |
1951
| + 'leqq' => '≦', |
| |
1952
| + 'leqslant' => '⩽', |
| |
1953
| + 'lessapprox' => '⪅', |
| |
1954
| + 'lessdot' => '⋖', |
| |
1955
| + 'lesseqgtr' => '⋚', |
| |
1956
| + 'lesseqqgtr' => '⪋', |
| |
1957
| + 'LessEqualGreater' => '⋚', |
| |
1958
| + 'LessFullEqual' => '≦', |
| |
1959
| + 'LessGreater' => '≶', |
| |
1960
| + 'lessgtr' => '≶', |
| |
1961
| + 'lesssim' => '≲', |
| |
1962
| + 'LessSlantEqual' => '⩽', |
| |
1963
| + 'LessTilde' => '≲', |
| |
1964
| + 'll' => '≪', |
| |
1965
| + 'llcorner' => '⌞', |
| |
1966
| + 'Lleftarrow' => '⇚', |
| |
1967
| + 'lmoustache' => '⎰', |
| |
1968
| + 'lnapprox' => '⪉', |
| |
1969
| + 'lneq' => '⪇', |
| |
1970
| + 'lneqq' => '≨', |
| |
1971
| + 'LongLeftArrow' => '⟵', |
| |
1972
| + 'Longleftarrow' => '⟸', |
| |
1973
| + 'longleftarrow' => '⟵', |
| |
1974
| + 'LongLeftRightArrow' => '⟷', |
| |
1975
| + 'Longleftrightarrow' => '⟺', |
| |
1976
| + 'longleftrightarrow' => '⟷', |
| |
1977
| + 'longmapsto' => '⟼', |
| |
1978
| + 'LongRightArrow' => '⟶', |
| |
1979
| + 'Longrightarrow' => '⟹', |
| |
1980
| + 'longrightarrow' => '⟶', |
| |
1981
| + 'looparrowleft' => '↫', |
| |
1982
| + 'looparrowright' => '↬', |
| |
1983
| + 'LowerLeftArrow' => '↙', |
| |
1984
| + 'LowerRightArrow' => '↘', |
| |
1985
| + 'lozenge' => '◊', |
| |
1986
| + 'lrcorner' => '⌟', |
| |
1987
| + 'Lsh' => '↰', |
| |
1988
| + 'lvertneqq' => '≨︀', |
| |
1989
| + 'maltese' => '✠', |
| |
1990
| + 'mapsto' => '↦', |
| |
1991
| + 'measuredangle' => '∡', |
| |
1992
| + 'Mellintrf' => 'ℳ', |
| |
1993
| + 'MinusPlus' => '∓', |
| |
1994
| + 'mp' => '∓', |
| |
1995
| + 'multimap' => '⊸', |
| |
1996
| + 'napprox' => '≉', |
| |
1997
| + 'natural' => '♮', |
| |
1998
| + 'naturals' => 'ℕ', |
| |
1999
| + 'nearrow' => '↗', |
| |
2000
| + 'NegativeMediumSpace' => '​', |
| |
2001
| + 'NegativeThickSpace' => '​', |
| |
2002
| + 'NegativeThinSpace' => '​', |
| |
2003
| + 'NegativeVeryThinSpace' => '​', |
| |
2004
| + 'NestedGreaterGreater' => '≫', |
| |
2005
| + 'NestedLessLess' => '≪', |
| |
2006
| + 'nexists' => '∄', |
| |
2007
| + 'ngeq' => '≱', |
| |
2008
| + 'ngeqq' => '≧̸', |
| |
2009
| + 'ngeqslant' => '⩾̸', |
| |
2010
| + 'ngtr' => '≯', |
| |
2011
| + 'nLeftarrow' => '⇍', |
| |
2012
| + 'nleftarrow' => '↚', |
| |
2013
| + 'nLeftrightarrow' => '⇎', |
| |
2014
| + 'nleftrightarrow' => '↮', |
| |
2015
| + 'nleq' => '≰', |
| |
2016
| + 'nleqq' => '≦̸', |
| |
2017
| + 'nleqslant' => '⩽̸', |
| |
2018
| + 'nless' => '≮', |
| |
2019
| + 'NonBreakingSpace' => ' ', |
| |
2020
| + 'NotCongruent' => '≢', |
| |
2021
| + 'NotDoubleVerticalBar' => '∦', |
| |
2022
| + 'NotElement' => '∉', |
| |
2023
| + 'NotEqual' => '≠', |
| |
2024
| + 'NotEqualTilde' => '≂̸', |
| |
2025
| + 'NotExists' => '∄', |
| |
2026
| + 'NotGreater' => '≯', |
| |
2027
| + 'NotGreaterEqual' => '≱', |
| |
2028
| + 'NotGreaterFullEqual' => '≦̸', |
| |
2029
| + 'NotGreaterGreater' => '≫̸', |
| |
2030
| + 'NotGreaterLess' => '≹', |
| |
2031
| + 'NotGreaterSlantEqual' => '⩾̸', |
| |
2032
| + 'NotGreaterTilde' => '≵', |
| |
2033
| + 'NotHumpDownHump' => '≎̸', |
| |
2034
| + 'NotLeftTriangle' => '⋪', |
| |
2035
| + 'NotLeftTriangleEqual' => '⋬', |
| |
2036
| + 'NotLess' => '≮', |
| |
2037
| + 'NotLessEqual' => '≰', |
| |
2038
| + 'NotLessGreater' => '≸', |
| |
2039
| + 'NotLessLess' => '≪̸', |
| |
2040
| + 'NotLessSlantEqual' => '⩽̸', |
| |
2041
| + 'NotLessTilde' => '≴', |
| |
2042
| + 'NotPrecedes' => '⊀', |
| |
2043
| + 'NotPrecedesEqual' => '⪯̸', |
| |
2044
| + 'NotPrecedesSlantEqual' => '⋠', |
| |
2045
| + 'NotReverseElement' => '∌', |
| |
2046
| + 'NotRightTriangle' => '⋫', |
| |
2047
| + 'NotRightTriangleEqual' => '⋭', |
| |
2048
| + 'NotSquareSubsetEqual' => '⋢', |
| |
2049
| + 'NotSquareSupersetEqual' => '⋣', |
| |
2050
| + 'NotSubset' => '⊂⃒', |
| |
2051
| + 'NotSubsetEqual' => '⊈', |
| |
2052
| + 'NotSucceeds' => '⊁', |
| |
2053
| + 'NotSucceedsEqual' => '⪰̸', |
| |
2054
| + 'NotSucceedsSlantEqual' => '⋡', |
| |
2055
| + 'NotSuperset' => '⊃⃒', |
| |
2056
| + 'NotSupersetEqual' => '⊉', |
| |
2057
| + 'NotTilde' => '≁', |
| |
2058
| + 'NotTildeEqual' => '≄', |
| |
2059
| + 'NotTildeFullEqual' => '≇', |
| |
2060
| + 'NotTildeTilde' => '≉', |
| |
2061
| + 'NotVerticalBar' => '∤', |
| |
2062
| + 'nparallel' => '∦', |
| |
2063
| + 'nprec' => '⊀', |
| |
2064
| + 'npreceq' => '⪯̸', |
| |
2065
| + 'nRightarrow' => '⇏', |
| |
2066
| + 'nrightarrow' => '↛', |
| |
2067
| + 'nshortmid' => '∤', |
| |
2068
| + 'nshortparallel' => '∦', |
| |
2069
| + 'nsimeq' => '≄', |
| |
2070
| + 'nsubset' => '⊂⃒', |
| |
2071
| + 'nsubseteq' => '⊈', |
| |
2072
| + 'nsubseteqq' => '⫅̸', |
| |
2073
| + 'nsucc' => '⊁', |
| |
2074
| + 'nsucceq' => '⪰̸', |
| |
2075
| + 'nsupset' => '⊃⃒', |
| |
2076
| + 'nsupseteq' => '⊉', |
| |
2077
| + 'nsupseteqq' => '⫆̸', |
| |
2078
| + 'ntriangleleft' => '⋪', |
| |
2079
| + 'ntrianglelefteq' => '⋬', |
| |
2080
| + 'ntriangleright' => '⋫', |
| |
2081
| + 'ntrianglerighteq' => '⋭', |
| |
2082
| + 'nwarrow' => '↖', |
| |
2083
| + 'oint' => '∮', |
| |
2084
| + 'OpenCurlyDoubleQuote' => '“', |
| |
2085
| + 'OpenCurlyQuote' => '‘', |
| |
2086
| + 'orderof' => 'ℴ', |
| |
2087
| + 'parallel' => '∥', |
| |
2088
| + 'PartialD' => '∂', |
| |
2089
| + 'pitchfork' => '⋔', |
| |
2090
| + 'PlusMinus' => '±', |
| |
2091
| + 'pm' => '±', |
| |
2092
| + 'Poincareplane' => 'ℌ', |
| |
2093
| + 'prec' => '≺', |
| |
2094
| + 'precapprox' => '⪷', |
| |
2095
| + 'preccurlyeq' => '≼', |
| |
2096
| + 'Precedes' => '≺', |
| |
2097
| + 'PrecedesEqual' => '⪯', |
| |
2098
| + 'PrecedesSlantEqual' => '≼', |
| |
2099
| + 'PrecedesTilde' => '≾', |
| |
2100
| + 'preceq' => '⪯', |
| |
2101
| + 'precnapprox' => '⪹', |
| |
2102
| + 'precneqq' => '⪵', |
| |
2103
| + 'precnsim' => '⋨', |
| |
2104
| + 'precsim' => '≾', |
| |
2105
| + 'primes' => 'ℙ', |
| |
2106
| + 'Proportion' => '∷', |
| |
2107
| + 'Proportional' => '∝', |
| |
2108
| + 'propto' => '∝', |
| |
2109
| + 'quaternions' => 'ℍ', |
| |
2110
| + 'questeq' => '≟', |
| |
2111
| + 'rangle' => '〉', |
| |
2112
| + 'rationals' => 'ℚ', |
| |
2113
| + 'rbrace' => '}', |
| |
2114
| + 'rbrack' => ']', |
| |
2115
| + 'Re' => 'ℜ', |
| |
2116
| + 'realine' => 'ℛ', |
| |
2117
| + 'realpart' => 'ℜ', |
| |
2118
| + 'reals' => 'ℝ', |
| |
2119
| + 'ReverseElement' => '∋', |
| |
2120
| + 'ReverseEquilibrium' => '⇋', |
| |
2121
| + 'ReverseUpEquilibrium' => '⥯', |
| |
2122
| + 'RightAngleBracket' => '〉', |
| |
2123
| + 'RightArrow' => '→', |
| |
2124
| + 'Rightarrow' => '⇒', |
| |
2125
| + 'rightarrow' => '→', |
| |
2126
| + 'RightArrowBar' => '⇥', |
| |
2127
| + 'RightArrowLeftArrow' => '⇄', |
| |
2128
| + 'rightarrowtail' => '↣', |
| |
2129
| + 'RightCeiling' => '⌉', |
| |
2130
| + 'RightDoubleBracket' => '〛', |
| |
2131
| + 'RightDownVector' => '⇂', |
| |
2132
| + 'RightFloor' => '⌋', |
| |
2133
| + 'rightharpoondown' => '⇁', |
| |
2134
| + 'rightharpoonup' => '⇀', |
| |
2135
| + 'rightleftarrows' => '⇄', |
| |
2136
| + 'rightleftharpoons' => '⇌', |
| |
2137
| + 'rightrightarrows' => '⇉', |
| |
2138
| + 'rightsquigarrow' => '↝', |
| |
2139
| + 'RightTee' => '⊢', |
| |
2140
| + 'RightTeeArrow' => '↦', |
| |
2141
| + 'rightthreetimes' => '⋌', |
| |
2142
| + 'RightTriangle' => '⊳', |
| |
2143
| + 'RightTriangleEqual' => '⊵', |
| |
2144
| + 'RightUpVector' => '↾', |
| |
2145
| + 'RightVector' => '⇀', |
| |
2146
| + 'risingdotseq' => '≓', |
| |
2147
| + 'rmoustache' => '⎱', |
| |
2148
| + 'Rrightarrow' => '⇛', |
| |
2149
| + 'Rsh' => '↱', |
| |
2150
| + 'searrow' => '↘', |
| |
2151
| + 'setminus' => '∖', |
| |
2152
| + 'ShortDownArrow' => '↓', |
| |
2153
| + 'ShortLeftArrow' => '←', |
| |
2154
| + 'shortmid' => '∣', |
| |
2155
| + 'shortparallel' => '∥', |
| |
2156
| + 'ShortRightArrow' => '→', |
| |
2157
| + 'ShortUpArrow' => '↑', |
| |
2158
| + 'simeq' => '≃', |
| |
2159
| + 'SmallCircle' => '∘', |
| |
2160
| + 'smallsetminus' => '∖', |
| |
2161
| + 'spadesuit' => '♠', |
| |
2162
| + 'Sqrt' => '√', |
| |
2163
| + 'sqsubset' => '⊏', |
| |
2164
| + 'sqsubseteq' => '⊑', |
| |
2165
| + 'sqsupset' => '⊐', |
| |
2166
| + 'sqsupseteq' => '⊒', |
| |
2167
| + 'Square' => '□', |
| |
2168
| + 'SquareIntersection' => '⊓', |
| |
2169
| + 'SquareSubset' => '⊏', |
| |
2170
| + 'SquareSubsetEqual' => '⊑', |
| |
2171
| + 'SquareSuperset' => '⊐', |
| |
2172
| + 'SquareSupersetEqual' => '⊒', |
| |
2173
| + 'SquareUnion' => '⊔', |
| |
2174
| + 'Star' => '⋆', |
| |
2175
| + 'straightepsilon' => 'ϵ', |
| |
2176
| + 'straightphi' => 'ϕ', |
| |
2177
| + 'Subset' => '⋐', |
| |
2178
| + 'subset' => '⊂', |
| |
2179
| + 'subseteq' => '⊆', |
| |
2180
| + 'subseteqq' => '⫅', |
| |
2181
| + 'SubsetEqual' => '⊆', |
| |
2182
| + 'subsetneq' => '⊊', |
| |
2183
| + 'subsetneqq' => '⫋', |
| |
2184
| + 'succ' => '≻', |
| |
2185
| + 'succapprox' => '⪸', |
| |
2186
| + 'succcurlyeq' => '≽', |
| |
2187
| + 'Succeeds' => '≻', |
| |
2188
| + 'SucceedsEqual' => '⪰', |
| |
2189
| + 'SucceedsSlantEqual' => '≽', |
| |
2190
| + 'SucceedsTilde' => '≿', |
| |
2191
| + 'succeq' => '⪰', |
| |
2192
| + 'succnapprox' => '⪺', |
| |
2193
| + 'succneqq' => '⪶', |
| |
2194
| + 'succnsim' => '⋩', |
| |
2195
| + 'succsim' => '≿', |
| |
2196
| + 'SuchThat' => '∋', |
| |
2197
| + 'Sum' => '∑', |
| |
2198
| + 'Superset' => '⊃', |
| |
2199
| + 'SupersetEqual' => '⊇', |
| |
2200
| + 'Supset' => '⋑', |
| |
2201
| + 'supset' => '⊃', |
| |
2202
| + 'supseteq' => '⊇', |
| |
2203
| + 'supseteqq' => '⫆', |
| |
2204
| + 'supsetneq' => '⊋', |
| |
2205
| + 'supsetneqq' => '⫌', |
| |
2206
| + 'swarrow' => '↙', |
| |
2207
| + 'Therefore' => '∴', |
| |
2208
| + 'therefore' => '∴', |
| |
2209
| + 'thickapprox' => '≈', |
| |
2210
| + 'thicksim' => '∼', |
| |
2211
| + 'ThinSpace' => ' ', |
| |
2212
| + 'Tilde' => '∼', |
| |
2213
| + 'TildeEqual' => '≃', |
| |
2214
| + 'TildeFullEqual' => '≅', |
| |
2215
| + 'TildeTilde' => '≈', |
| |
2216
| + 'toea' => '⤨', |
| |
2217
| + 'tosa' => '⤩', |
| |
2218
| + 'triangle' => '▵', |
| |
2219
| + 'triangledown' => '▿', |
| |
2220
| + 'triangleleft' => '◃', |
| |
2221
| + 'trianglelefteq' => '⊴', |
| |
2222
| + 'triangleq' => '≜', |
| |
2223
| + 'triangleright' => '▹', |
| |
2224
| + 'trianglerighteq' => '⊵', |
| |
2225
| + 'TripleDot' => '⃛', |
| |
2226
| + 'twoheadleftarrow' => '↞', |
| |
2227
| + 'twoheadrightarrow' => '↠', |
| |
2228
| + 'ulcorner' => '⌜', |
| |
2229
| + 'Union' => '⋃', |
| |
2230
| + 'UnionPlus' => '⊎', |
| |
2231
| + 'UpArrow' => '↑', |
| |
2232
| + 'Uparrow' => '⇑', |
| |
2233
| + 'uparrow' => '↑', |
| |
2234
| + 'UpArrowDownArrow' => '⇅', |
| |
2235
| + 'UpDownArrow' => '↕', |
| |
2236
| + 'Updownarrow' => '⇕', |
| |
2237
| + 'updownarrow' => '↕', |
| |
2238
| + 'UpEquilibrium' => '⥮', |
| |
2239
| + 'upharpoonleft' => '↿', |
| |
2240
| + 'upharpoonright' => '↾', |
| |
2241
| + 'UpperLeftArrow' => '↖', |
| |
2242
| + 'UpperRightArrow' => '↗', |
| |
2243
| + 'upsilon' => 'υ', |
| |
2244
| + 'UpTee' => '⊥', |
| |
2245
| + 'UpTeeArrow' => '↥', |
| |
2246
| + 'upuparrows' => '⇈', |
| |
2247
| + 'urcorner' => '⌝', |
| |
2248
| + 'varepsilon' => 'ε', |
| |
2249
| + 'varkappa' => 'ϰ', |
| |
2250
| + 'varnothing' => '∅', |
| |
2251
| + 'varphi' => 'φ', |
| |
2252
| + 'varpi' => 'ϖ', |
| |
2253
| + 'varpropto' => '∝', |
| |
2254
| + 'varrho' => 'ϱ', |
| |
2255
| + 'varsigma' => 'ς', |
| |
2256
| + 'varsubsetneq' => '⊊︀', |
| |
2257
| + 'varsubsetneqq' => '⫋︀', |
| |
2258
| + 'varsupsetneq' => '⊋︀', |
| |
2259
| + 'varsupsetneqq' => '⫌︀', |
| |
2260
| + 'vartheta' => 'ϑ', |
| |
2261
| + 'vartriangleleft' => '⊲', |
| |
2262
| + 'vartriangleright' => '⊳', |
| |
2263
| + 'Vee' => '⋁', |
| |
2264
| + 'vee' => '∨', |
| |
2265
| + 'Vert' => '‖', |
| |
2266
| + 'vert' => '|', |
| |
2267
| + 'VerticalBar' => '∣', |
| |
2268
| + 'VerticalTilde' => '≀', |
| |
2269
| + 'VeryThinSpace' => ' ', |
| |
2270
| + 'Wedge' => '⋀', |
| |
2271
| + 'wedge' => '∧', |
| |
2272
| + 'wp' => '℘', |
| |
2273
| + 'wr' => '≀', |
| |
2274
| + 'zeetrf' => 'ℨ' |
| |
2275
| + } |
| |
2276
| +#:startdoc: |
| |
2277
| + |
| |
2278
| +# Converts XHTML+MathML named entities in string to Numeric Character References |
| |
2279
| +# |
| |
2280
| +# :call-seq: |
| |
2281
| +# string.to_ncr -> string |
| |
2282
| +# |
| |
2283
| + def to_ncr |
| |
2284
| + self.gsub(/&(?:(lt|gt|amp|quot|apos)|[a-zA-Z0-9]+);/){|s| $1 ? s : s.convert_to_ncr} |
| |
2285
| + end |
| |
2286
| + |
| |
2287
| +# Converts XHTML+MathML named entities in string to Numeric Character References |
| |
2288
| +# |
| |
2289
| +# :call-seq: |
| |
2290
| +# string.to_ncr! -> str or nil |
| |
2291
| +# |
| |
2292
| +# Substitution is done in-place. |
| |
2293
| +# |
| |
2294
| + def to_ncr! |
| |
2295
| + self.gsub!(/&(?:(lt|gt|amp|quot|apos)|[a-zA-Z0-9]+);/){|s| $1 ? s : s.convert_to_ncr} |
| |
2296
| + end |
| |
2297
| + |
| |
2298
| +# Converts XHTML+MathML named entities in string to UTF-8 |
| |
2299
| +# |
| |
2300
| +# :call-seq: |
| |
2301
| +# string.to_utf8 -> string |
| |
2302
| +# |
| |
2303
| + def to_utf8 |
| |
2304
| + self.gsub(/&(?:(lt|gt|amp|quot|apos)|[a-zA-Z0-9]+);/){|s| $1 ? s : s.convert_to_utf8} |
| |
2305
| + end |
| |
2306
| + |
| |
2307
| +# Converts XHTML+MathML named entities in string to UTF-8 |
| |
2308
| +# |
| |
2309
| +# :call-seq: |
| |
2310
| +# string.to_ncr! -> str or nil |
| |
2311
| +# |
| |
2312
| +# Substitution is done in-place. |
| |
2313
| +# |
| |
2314
| + def to_utf8! |
| |
2315
| + self.gsub!(/&(?:(lt|gt|amp|quot|apos)|[a-zA-Z0-9]+);/){|s| $1 ? s : s.convert_to_utf8} |
| |
2316
| + end |
| |
2317
| + |
| |
2318
| + protected |
| |
2319
| + |
| |
2320
| + def convert_to_ncr #:nodoc: |
| |
2321
| + self =~ /^&([a-zA-Z0-9]+);$/ |
| |
2322
| + name = $1 |
| |
2323
| + return MATHML_ENTITIES.has_key?(name) ? MATHML_ENTITIES[name] : "&" + name + ";" |
| |
2324
| + end |
| |
2325
| + |
| |
2326
| + def convert_to_utf8 #:nodoc: |
| |
2327
| + self =~ /^&([a-zA-Z0-9]+);$/ |
| |
2328
| + name = $1 |
| |
2329
| + return MATHML_ENTITIES.has_key?(name) ? MATHML_ENTITIES[name].split(';').collect {|s| s.gsub(/^&#x([A-F0-9]+)$/, '\1').hex }.pack('U*') : "&" + name + ";" |
| |
2330
| + end |
| |
2331
| + |
| |
2332
| + |
| |
2333
| +end |
| |
2334
| + |
| |
2335
| +require 'rexml/element' |
| |
2336
| +module REXML #:nodoc: |
| |
2337
| + class Element |
| |
2338
| + |
| |
2339
| +# Convert XHTML+MathML Named Entities in a REXML::Element to Numeric Character References |
| |
2340
| +# |
| |
2341
| +# :call-seq: |
| |
2342
| +# tree.to_ncr -> REXML::Element |
| |
2343
| +# |
| |
2344
| +# REXML, typically, converts NCRs to utf-8 characters, which is what you'll see when you |
| |
2345
| +# access the resulting REXML document. |
| |
2346
| +# |
| |
2347
| +# Note that this method needs to traverse the entire tree, converting text nodes and attributes |
| |
2348
| +# for each element. This can be SLOW. It will often be faster to serialize to a string and then |
| |
2349
| +# use String.to_ncr instead. |
| |
2350
| +# |
| |
2351
| + def to_ncr |
| |
2352
| + self.each_element { |el| |
| |
2353
| + el.texts.each_index {|i| |
| |
2354
| + el.texts[i].value = el.texts[i].to_s.to_ncr |
| |
2355
| + } |
| |
2356
| + el.attributes.each { |name,val| |
| |
2357
| + el.attributes[name] = val.to_ncr |
| |
2358
| + } |
| |
2359
| + el.to_ncr if el.has_elements? |
| |
2360
| + } |
| |
2361
| + return self |
| |
2362
| + end |
| |
2363
| + |
| |
2364
| +# Convert XHTML+MathML Named Entities in a REXML::Element to UTF-8 |
| |
2365
| +# |
| |
2366
| +# :call-seq: |
| |
2367
| +# tree.to_utf8 -> REXML::Element |
| |
2368
| +# |
| |
2369
| +# Note that this method needs to traverse the entire tree, converting text nodes and attributes |
| |
2370
| +# for each element. This can be SLOW. It will often be faster to serialize to a string and then |
| |
2371
| +# use String.to_utf8 instead. |
| |
2372
| +# |
| |
2373
| + def to_utf8 |
| |
2374
| + self.each_element { |el| |
| |
2375
| + el.texts.each_index {|i| |
| |
2376
| + el.texts[i].value = el.texts[i].to_s.to_utf8 |
| |
2377
| + } |
| |
2378
| + el.attributes.each { |name,val| |
| |
2379
| + el.attributes[name] = val.to_utf8 |
| |
2380
| + } |
| |
2381
| + el.to_utf8 if el.has_elements? |
| |
2382
| + } |
| |
2383
| + return self |
| |
2384
| + end |
| |
2385
| + |
| |
2386
| + end |
| |
2387
| +end |
| |
2388
| + |
| |
2389
| +module HTML5 #:nodoc: all |
| |
2390
| + module TreeWalkers |
| |
2391
| + |
| |
2392
| + private |
| |
2393
| + |
| |
2394
| + class << self |
| |
2395
| + def [](name) |
| |
2396
| + case name.to_s.downcase |
| |
2397
| + when 'rexml' |
| |
2398
| + require 'html5/treewalkers/rexml' |
| |
2399
| + REXML::TreeWalker |
| |
2400
| + when 'rexml2' |
| |
2401
| + REXML2::TreeWalker |
| |
2402
| + else |
| |
2403
| + raise "Unknown TreeWalker #{name}" |
| |
2404
| + end |
| |
2405
| + end |
| |
2406
| + |
| |
2407
| + alias :get_tree_walker :[] |
| |
2408
| + end |
| |
2409
| + |
| |
2410
| + module REXML2 |
| |
2411
| + class TreeWalker < HTML5::TreeWalkers::NonRecursiveTreeWalker |
| |
2412
| + |
| |
2413
| + private |
| |
2414
| + |
| |
2415
| + def node_details(node) |
| |
2416
| + case node |
| |
2417
| + when ::REXML::Document |
| |
2418
| + [:DOCUMENT] |
| |
2419
| + when ::REXML::Element |
| |
2420
| + if !node.name |
| |
2421
| + [:DOCUMENT_FRAGMENT] |
| |
2422
| + else |
| |
2423
| + [:ELEMENT, node.name, |
| |
2424
| + node.attributes.map {|name,value| [name,value.to_utf8]}, |
| |
2425
| + node.has_elements? || node.has_text?] |
| |
2426
| + end |
| |
2427
| + when ::REXML::Text |
| |
2428
| + [:TEXT, node.value.to_utf8] |
| |
2429
| + when ::REXML::Comment |
| |
2430
| + [:COMMENT, node.string] |
| |
2431
| + when ::REXML::DocType |
| |
2432
| + [:DOCTYPE, node.name, node.public, node.system] |
| |
2433
| + when ::REXML::XMLDecl |
| |
2434
| + [nil] |
| |
2435
| + else |
| |
2436
| + [:UNKNOWN, node.class.inspect] |
| |
2437
| + end |
| |
2438
| + end |
| |
2439
| + |
| |
2440
| + def first_child(node) |
| |
2441
| + node.children.first |
| |
2442
| + end |
| |
2443
| + |
| |
2444
| + def next_sibling(node) |
| |
2445
| + node.next_sibling |
| |
2446
| + end |
| |
2447
| + |
| |
2448
| + def parent(node) |
| |
2449
| + node.parent |
| |
2450
| + end |
| |
2451
| + end |
| |
2452
| + end |
| |
2453
| + end |
| |
2454
| +end |