mathml 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,180 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require "test/unit"
4
+ require "symbols/fetch_symbol"
5
+ require "test/math_ml_test_util"
6
+ require "math_ml"
7
+
8
+ class TC_Misc < Test::Unit::TestCase
9
+ def test_brace_nest
10
+ assert_equal("{1.{2.}2.}1.", brace_nest("{{}}"))
11
+ assert_equal("{1.{2.}2.{2.}2.}1.", brace_nest("{{}{}}"))
12
+ end
13
+ end
14
+
15
+ class TC_FetchSymbol < Test::Unit::TestCase
16
+ include Util4TC_MathML
17
+ LIST = <<'EOT'
18
+ \{ subsup o-
19
+ \& subsup o:amp
20
+ \varepsilon subsup I:
21
+ \Gamma subsup i:
22
+ \ensuremath subsup v
23
+ \log subsup i-
24
+ \lim underover i-
25
+ \dagger subsup
26
+ \braceld subsup o=x25dc # dummy
27
+ \relbar subsup o--
28
+ \precneqq subsup o-<mfrac mathsize='1%' linethickness='0'><mo>&prec;</mo><mo>&ne;</mo></mfrac> # dummy
29
+ EOT
30
+
31
+ def test_fetchsymbol
32
+ r = fetch_symbol
33
+
34
+ #latex.ltx
35
+ assert_equal(:subsup, r["\\log"])
36
+ assert_equal(:subsup, r["\\deg"])
37
+ assert_equal(:underover, r["\\lim"])
38
+ assert_equal(:underover, r["\\gcd"])
39
+ assert_equal(nil, r["\\bigl"])
40
+ assert_equal(:subsup, r["\\$"])
41
+ assert_equal(:subsup, r["\\}"])
42
+ assert_equal(:subsup, r["\\copyright"])
43
+ assert_equal(:subsup, r["\\%"])
44
+
45
+ #fontmath.ltx
46
+ assert_equal(:subsup, r["\\alpha"])
47
+ assert_equal(:subsup, r["\\Gamma"])
48
+ assert_equal(:underover, r["\\coprod"])
49
+ assert_equal(:subsup, r["\\triangleleft"])
50
+ assert_equal(:subsup, r["\\propto"])
51
+ assert_equal(:subsup, r["\\ldotp"])
52
+ assert_equal(:subsup, r["\\hbar"])
53
+ assert_equal(nil, r["\\overrightarrow"])
54
+ assert_equal(nil, r["\\n@space"])
55
+ assert_equal(nil, r["\\rightarrowfill"])
56
+ assert_equal(:subsup, r["\\lnot"])
57
+ assert_equal(:subsup, r["\\|"])
58
+ assert_equal(:subsup, r["\\lmoustache"])
59
+ assert_equal(:subsup, r["\\arrowvert"])
60
+ assert_equal(:subsup, r["\\uparrow"])
61
+ assert_equal(:subsup, r["\\longleftarrow"])
62
+
63
+ #amssymb.sty
64
+ assert_equal(:subsup, r["\\boxdot"])
65
+ assert_equal(:subsup, r["\\Doteq"])
66
+ assert_equal(:subsup, r["\\Diamond"])
67
+
68
+ #amsfonts.sty
69
+ assert_equal(:subsup, r["\\ulcorner"])
70
+ assert_equal(:subsup, r["\\urcorner"])
71
+ assert_equal(:subsup, r["\\rightleftharpoons"])
72
+ assert_equal(:subsup, r["\\leadsto"])
73
+ assert_equal(nil, r["\\dabar@"])
74
+
75
+ #amsmath.str
76
+ assert_equal(:subsup, r["\\ldots"])
77
+ end
78
+
79
+ def test_parse_list
80
+ h = parse_list(LIST)[1]
81
+ assert_equal([:s, :o, ""], h["\\{"])
82
+ assert_equal([:s, :o, :amp], h["\\&"])
83
+ assert_equal([:s, :I], h["\\varepsilon"])
84
+ assert_equal([:s, :i], h["\\Gamma"])
85
+ assert_equal(nil, h["\\ensuremath"])
86
+ assert_equal([:s, :i, ""], h["\\log"])
87
+ assert_equal([:u, :i, ""], h["\\lim"])
88
+ assert_equal([:s], h["\\dagger"])
89
+ assert_equal([:s, :o, 0x25dc], h["\\braceld"])
90
+ assert_equal([:s, :o, "-"], h["\\relbar"])
91
+ assert_equal([:s, :o, "<mfrac mathsize='1%' linethickness='0'><mo>&prec;</mo><mo>&ne;</mo></mfrac>"], h["\\precneqq"])
92
+ end
93
+
94
+ def test_to_mathml
95
+ def tm(com, h)
96
+ to_mathml(com, h[com])
97
+ end
98
+
99
+ h = parse_list(LIST)[1]
100
+ assert_equal("<mo>{</mo>", tm("\\{", h))
101
+ assert_equal("<mo>&amp;</mo>", tm("\\&", h))
102
+ assert_equal("<mi>&varepsilon;</mi>", tm("\\varepsilon", h))
103
+ assert_equal("<mi mathvariant='normal'>&Gamma;</mi>", tm("\\Gamma", h))
104
+ assert_equal("", tm("\\ensuremat", h))
105
+ assert_equal("<mi>log</mi>", tm("\\log", h))
106
+ assert_equal("<mo>&dagger;</mo>", tm("\\dagger", h))
107
+ assert_equal("<mo>&#x25dc;</mo>", tm("\\braceld", h))
108
+ end
109
+
110
+ def test_gen_rb
111
+ e = <<'EOT'
112
+ SymbolCommands={
113
+ "{"=>[:s,:o,""],
114
+ "&"=>[:s,:o,:amp],
115
+ "varepsilon"=>[:s,:I],
116
+ "Gamma"=>[:s,:i],
117
+ "ensuremath"=>nil,
118
+ "log"=>[:s,:i,""],
119
+ "lim"=>[:u,:i,""],
120
+ "dagger"=>[:s],
121
+ "braceld"=>[:s,:o,0x25dc],
122
+ "relbar"=>[:s,:o,"-"],
123
+ "precneqq"=>[:s,:o,"<mfrac mathsize='1%' linethickness='0'><mo>&prec;</mo><mo>&ne;</mo></mfrac>"],
124
+ }
125
+ EOT
126
+ assert_equal(e, gen_rb(LIST))
127
+ end
128
+
129
+ def test_mathml_rb_symbol_command
130
+ a, h = parse_list(IO.read("symbols/list.txt"))
131
+ a.each do |com|
132
+ latex = "#{com}_a^b"
133
+ m = to_mathml(com, h[com])
134
+ unless h[com]
135
+ case com
136
+ when "\\,"
137
+ e = "<msubsup><mspace width='0.167em' /><mi>a</mi><mi>b</mi></msubsup>"
138
+ else
139
+ e = "<msubsup><none /><mi>a</mi><mi>b</mi></msubsup>"
140
+ end
141
+ else
142
+ if h[com][0] && h[com][0]==:u
143
+ e = "<munderover>#{m}<mi>a</mi><mi>b</mi></munderover>"
144
+ elsif h[com][0] && h[com][0]==:s
145
+ e = "<msubsup>#{m}<mi>a</mi><mi>b</mi></msubsup>"
146
+ else
147
+ raise "#{com}"
148
+ end
149
+ end
150
+ begin
151
+ assert_nothing_raised{smml(latex, true)}
152
+ assert_equal(e, smml(latex, true))
153
+ rescue
154
+ puts latex
155
+ raise
156
+ end
157
+ end
158
+ end
159
+
160
+ def test_delims
161
+ d = []
162
+ fetch_symbol(d)
163
+
164
+ MathML::LaTeX::BuiltinCommands::Delimiters.each do |i|
165
+ assert(d.include?("\\#{i}"), "Add '#{i}'")
166
+ end
167
+ d.each do |i|
168
+ assert(MathML::LaTeX::BuiltinCommands::Delimiters.include?(i[/^\\(.*)$/, 1]), "Missing '#{i}'")
169
+ end
170
+ end
171
+
172
+ def test_missing
173
+ p = load_preput_list(IO.read("symbols/list.txt"))
174
+ h = fetch_symbol
175
+ p.each_key do |k|
176
+ test = h.include?(k) ? "" : k
177
+ assert_equal("", test)
178
+ end
179
+ end
180
+ end
data/symbols/list.txt ADDED
@@ -0,0 +1,518 @@
1
+ # Line which begin with '#' is comment
2
+ # "LaTeX command" "subsup|underover" "data"
3
+ # 1st chararacter of 3rd column(data) is type of element
4
+ # o:operator i:identifier I:identifier(Italic) n:number v:nothing to do(not <none> element)
5
+ # 2nd character is class of data
6
+ # '-' is string, ':' is entity(name), '=' is entity(code)
7
+ # remain string is text or entity
8
+ # when it omitted, that is same to command without '\'
9
+ # when all omitted, default is "o:"
10
+ \{ subsup o-
11
+ \} subsup o-
12
+ \# subsup o-
13
+ \$ subsup o-
14
+ \& subsup o:amp
15
+ \_ subsup o-
16
+ \% subsup o-
17
+ \, subsup v # dummy
18
+ \varepsilon subsup I:
19
+ \mathdollar subsup o-$
20
+ \lbrace subsup
21
+ \rbrace subsup
22
+ \P subsup o:para
23
+ \mathparagraph subsup o:para
24
+ \S subsup o:sect
25
+ \mathsection subsup o:sect
26
+ \dag subsup o:dagger
27
+ \dagger subsup
28
+ \ddag subsup o:ddagger
29
+ \ddagger subsup
30
+ \copyright subsup o:copy
31
+ \pounds subsup o:pound
32
+ \mathsterling subsup o:pound
33
+ \dots subsup o:mldr
34
+ \mathellipsis subsup o:mldr
35
+ \ldots subsup o:mldr
36
+ \ensuremath subsup v # dummy
37
+ \| subsup o:DoubleVerticalBar
38
+ \mho subsup
39
+ \Join subsup o:bowtie
40
+ \Box subsup o:square
41
+ \Diamond subsup
42
+ \leadsto subsup o:zigrarr
43
+ \sqsubset subsup
44
+ \sqsupset subsup
45
+ \lhd subsup o:vltri
46
+ \unlhd subsup o:ltrie
47
+ \rhd subsup o:vrtri
48
+ \unrhd subsup o:rtrie
49
+ \log subsup i-
50
+ \lg subsup i-
51
+ \ln subsup i-
52
+ \lim underover i-
53
+ \limsup underover i-lim sup
54
+ \liminf underover i-lim inf
55
+ \sin subsup i-
56
+ \arcsin subsup i-
57
+ \sinh subsup i-
58
+ \cos subsup i-
59
+ \arccos subsup i-
60
+ \cosh subsup i-
61
+ \tan subsup i-
62
+ \arctan subsup i-
63
+ \tanh subsup i-
64
+ \cot subsup i-
65
+ \coth subsup i-
66
+ \sec subsup i-
67
+ \csc subsup i-
68
+ \max underover i-
69
+ \min underover i-
70
+ \sup underover i-
71
+ \inf underover i-
72
+ \arg subsup i-
73
+ \ker subsup i-
74
+ \dim subsup i-
75
+ \hom subsup i-
76
+ \det underover i-
77
+ \exp subsup i-
78
+ \Pr underover i-
79
+ \gcd underover i-
80
+ \deg subsup i-
81
+ \prime subsup
82
+ \alpha subsup I:
83
+ \beta subsup I:
84
+ \gamma subsup I:
85
+ \delta subsup I:
86
+ \epsilon subsup I:
87
+ \zeta subsup I:
88
+ \eta subsup I:
89
+ \theta subsup I:
90
+ \iota subsup I:
91
+ \kappa subsup I:
92
+ \lambda subsup I:
93
+ \mu subsup I:
94
+ \nu subsup I:
95
+ \xi subsup I:
96
+ \pi subsup I:
97
+ \rho subsup I:
98
+ \sigma subsup I:
99
+ \tau subsup I:
100
+ \upsilon subsup I:
101
+ \phi subsup I:
102
+ \chi subsup I:
103
+ \psi subsup I:
104
+ \omega subsup I:
105
+ \vartheta subsup I:
106
+ \varpi subsup I:
107
+ \varrho subsup I:
108
+ \varsigma subsup I:
109
+ \varphi subsup I:
110
+ \Gamma subsup i:
111
+ \Delta subsup i:
112
+ \Theta subsup i:
113
+ \Lambda subsup i:
114
+ \Xi subsup i:
115
+ \Pi subsup i:
116
+ \Sigma subsup i:
117
+ \Upsilon subsup i:Upsi
118
+ \Phi subsup i:
119
+ \Psi subsup i:
120
+ \Omega subsup i:
121
+ \aleph subsup i:
122
+ \hbar subsup i:hslash # alternative
123
+ \imath subsup i:
124
+ \jmath subsup i:
125
+ \ell subsup
126
+ \wp subsup
127
+ \Re subsup i:
128
+ \Im subsup i:
129
+ \partial subsup o:part
130
+ \infty subsup n:infin
131
+ \emptyset subsup i:empty
132
+ \nabla subsup i:
133
+ \surd subsup o:Sqrt
134
+ \top subsup
135
+ \bot subsup
136
+ \angle subsup
137
+ \not subsup
138
+ \triangle subsup
139
+ \forall subsup
140
+ \exists subsup o:exist
141
+ \neg subsup o:not
142
+ \lnot subsup o:not
143
+ \flat subsup
144
+ \natural subsup
145
+ \sharp subsup
146
+ \clubsuit subsup
147
+ \diamondsuit subsup
148
+ \heartsuit subsup
149
+ \spadesuit subsup
150
+ \coprod underover
151
+ \bigvee underover
152
+ \bigwedge underover
153
+ \biguplus underover
154
+ \bigcap underover
155
+ \bigcup underover
156
+ \intop underover o:int
157
+ \int subsup o:
158
+ \prod underover
159
+ \sum underover
160
+ \bigotimes underover
161
+ \bigoplus underover
162
+ \bigodot underover
163
+ \ointop underover o:oint
164
+ \oint subsup
165
+ \bigsqcup underover
166
+ \smallint underover o:int
167
+ \triangleleft subsup
168
+ \triangleright subsup
169
+ \bigtriangleup subsup
170
+ \bigtriangledown subsup
171
+ \wedge subsup
172
+ \land subsup o:wedge
173
+ \vee subsup
174
+ \lor subsup o:vee
175
+ \cap subsup
176
+ \cup subsup
177
+ \sqcap subsup
178
+ \sqcup subsup
179
+ \uplus subsup
180
+ \amalg subsup
181
+ \diamond subsup
182
+ \bullet subsup
183
+ \wr subsup
184
+ \div subsup
185
+ \odot subsup
186
+ \oslash subsup
187
+ \otimes subsup
188
+ \ominus subsup
189
+ \oplus subsup
190
+ \mp subsup
191
+ \pm subsup
192
+ \circ subsup o:cir
193
+ \bigcirc subsup
194
+ \setminus subsup
195
+ \cdot subsup o:sdot
196
+ \ast subsup
197
+ \times subsup
198
+ \star subsup
199
+ \propto subsup
200
+ \sqsubseteq subsup
201
+ \sqsupseteq subsup
202
+ \parallel subsup
203
+ \mid subsup
204
+ \dashv subsup
205
+ \vdash subsup
206
+ \nearrow subsup
207
+ \searrow subsup
208
+ \nwarrow subsup
209
+ \swarrow subsup
210
+ \Leftrightarrow subsup
211
+ \Leftarrow subsup
212
+ \Rightarrow subsup
213
+ \neq subsup o:ne
214
+ \ne subsup
215
+ \leq subsup
216
+ \le subsup
217
+ \geq subsup
218
+ \ge subsup
219
+ \succ subsup
220
+ \prec subsup
221
+ \approx subsup
222
+ \succeq subsup o:sccue
223
+ \preceq subsup o:prcue
224
+ \supset subsup
225
+ \subset subsup
226
+ \supseteq subsup
227
+ \subseteq subsup
228
+ \in subsup
229
+ \ni subsup
230
+ \owns subsup o:ni
231
+ \gg subsup
232
+ \ll subsup
233
+ \leftrightarrow subsup
234
+ \leftarrow subsup
235
+ \gets subsup o:leftarrow
236
+ \rightarrow subsup
237
+ \to subsup o:rightarrow
238
+ \mapstochar subsup o:vdash #alternative
239
+ \mapsto subsup
240
+ \sim subsup
241
+ \simeq subsup
242
+ \perp subsup
243
+ \equiv subsup
244
+ \asymp subsup
245
+ \smile subsup
246
+ \frown subsup
247
+ \leftharpoonup subsup
248
+ \leftharpoondown subsup
249
+ \rightharpoonup subsup
250
+ \rightharpoondown subsup
251
+ \cong subsup
252
+ \notin subsup
253
+ \rightleftharpoons subsup
254
+ \doteq subsup
255
+ \joinrel subsup v # dummy
256
+ \relbar subsup o--
257
+ \Relbar subsup o-=
258
+ \lhook subsup o:sub
259
+ \hookrightarrow subsup
260
+ \rhook subsup o:sup
261
+ \hookleftarrow subsup
262
+ \bowtie subsup
263
+ \models subsup
264
+ \Longrightarrow subsup
265
+ \longrightarrow subsup
266
+ \longleftarrow subsup
267
+ \Longleftarrow subsup
268
+ \longmapsto subsup o:mapsto
269
+ \longleftrightarrow subsup
270
+ \Longleftrightarrow subsup
271
+ \iff subsup
272
+ \ldotp subsup o-.
273
+ \cdotp subsup o:cdot
274
+ \colon subsup
275
+ \cdots subsup o:ctdot
276
+ \vdots subsup o:vellip
277
+ \ddots subsup o:dtdot
278
+ \braceld subsup o=x25dc # alternative
279
+ \bracerd subsup o=x25dd # alternative
280
+ \bracelu subsup o=x25df # alternative
281
+ \braceru subsup o=x25de # alternative
282
+ \lmoustache subsup
283
+ \rmoustache subsup
284
+ \arrowvert subsup o:vert
285
+ \Arrowvert subsup o:DoubleVerticalBar
286
+ \Vert subsup o:DoubleVerticalBar
287
+ \vert subsup
288
+ \uparrow subsup
289
+ \downarrow subsup
290
+ \updownarrow subsup
291
+ \Uparrow subsup
292
+ \Downarrow subsup
293
+ \Updownarrow subsup
294
+ \backslash subsup o-\
295
+ \rangle subsup
296
+ \langle subsup
297
+ \rceil subsup
298
+ \lceil subsup
299
+ \rfloor subsup
300
+ \lfloor subsup
301
+ \lgroup subsup o=x2570
302
+ \rgroup subsup o=x256f
303
+ \bracevert subsup o:vert
304
+ \mathunderscore subsup o-_
305
+ \square subsup
306
+ \rightsquigarrow subsup
307
+ \lozenge subsup
308
+ \vartriangleright subsup
309
+ \vartriangleleft subsup
310
+ \trianglerighteq subsup
311
+ \trianglelefteq subsup
312
+ \boxdot subsup o:dotsquare
313
+ \boxplus subsup
314
+ \boxtimes subsup
315
+ \blacksquare subsup
316
+ \centerdot subsup
317
+ \blacklozenge subsup
318
+ \circlearrowright subsup
319
+ \circlearrowleft subsup
320
+ \leftrightharpoons subsup
321
+ \boxminus subsup
322
+ \Vdash subsup
323
+ \Vvdash subsup
324
+ \vDash subsup
325
+ \twoheadrightarrow subsup
326
+ \twoheadleftarrow subsup
327
+ \leftleftarrows subsup
328
+ \rightrightarrows subsup
329
+ \upuparrows subsup
330
+ \downdownarrows subsup
331
+ \upharpoonright subsup
332
+ \restriction subsup o:upharpoonright
333
+ \downharpoonright subsup
334
+ \upharpoonleft subsup
335
+ \downharpoonleft subsup
336
+ \rightarrowtail subsup
337
+ \leftarrowtail subsup
338
+ \leftrightarrows subsup
339
+ \rightleftarrows subsup
340
+ \Lsh subsup
341
+ \Rsh subsup
342
+ \leftrightsquigarrow subsup
343
+ \looparrowleft subsup
344
+ \looparrowright subsup
345
+ \circeq subsup
346
+ \succsim subsup
347
+ \gtrsim subsup
348
+ \gtrapprox subsup
349
+ \multimap subsup
350
+ \therefore subsup
351
+ \because subsup
352
+ \doteqdot subsup
353
+ \Doteq subsup o:doteqdot
354
+ \triangleq subsup
355
+ \precsim subsup
356
+ \lesssim subsup
357
+ \lessapprox subsup
358
+ \eqslantless subsup
359
+ \eqslantgtr subsup
360
+ \curlyeqprec subsup
361
+ \curlyeqsucc subsup
362
+ \preccurlyeq subsup
363
+ \leqq subsup
364
+ \leqslant subsup o:leq # alternative
365
+ \lessgtr subsup
366
+ \backprime subsup
367
+ \risingdotseq subsup
368
+ \fallingdotseq subsup
369
+ \succcurlyeq subsup
370
+ \geqq subsup
371
+ \geqslant subsup o:geq # alternative
372
+ \gtrless subsup
373
+ \bigstar subsup
374
+ \between subsup
375
+ \blacktriangledown subsup
376
+ \blacktriangleright subsup
377
+ \blacktriangleleft subsup
378
+ \vartriangle subsup o:triangle
379
+ \blacktriangle subsup
380
+ \triangledown subsup
381
+ \eqcirc subsup
382
+ \lesseqgtr subsup
383
+ \gtreqless subsup
384
+ \lesseqqgtr subsup
385
+ \gtreqqless subsup
386
+ \Rrightarrow subsup
387
+ \Lleftarrow subsup
388
+ \veebar subsup
389
+ \barwedge subsup
390
+ \doublebarwedge subsup
391
+ \measuredangle subsup
392
+ \sphericalangle subsup o:angsph
393
+ \varpropto subsup
394
+ \smallsmile subsup o:smile
395
+ \smallfrown subsup o:frown
396
+ \Subset subsup
397
+ \Supset subsup
398
+ \Cup subsup
399
+ \doublecup subsup o:Cup
400
+ \Cap subsup
401
+ \doublecap subsup o:Cap
402
+ \curlywedge subsup
403
+ \curlyvee subsup
404
+ \leftthreetimes subsup
405
+ \rightthreetimes subsup
406
+ \subseteqq subsup
407
+ \supseteqq subsup
408
+ \bumpeq subsup
409
+ \Bumpeq subsup
410
+ \lll subsup o:Ll
411
+ \llless subsup o:Ll
412
+ \ggg subsup
413
+ \gggtr subsup o:ggg
414
+ \circledS subsup
415
+ \pitchfork subsup
416
+ \dotplus subsup
417
+ \backsim subsup
418
+ \backsimeq subsup
419
+ \complement subsup
420
+ \intercal subsup
421
+ \circledcirc subsup
422
+ \circledast subsup
423
+ \circleddash subsup
424
+ \lvertneqq subsup o:lneqq
425
+ \gvertneqq subsup o:gneqq
426
+ \nleq subsup o=x2270
427
+ \ngeq subsup o=x2271
428
+ \nless subsup
429
+ \ngtr subsup
430
+ \nprec subsup
431
+ \nsucc subsup
432
+ \lneqq subsup
433
+ \gneqq subsup
434
+ \nleqslant subsup
435
+ \ngeqslant subsup
436
+ \lneq subsup
437
+ \gneq subsup
438
+ \npreceq subsup o:nprcue
439
+ \nsucceq subsup o:nsccue
440
+ \precnsim subsup
441
+ \succnsim subsup
442
+ \lnsim subsup
443
+ \gnsim subsup
444
+ \nleqq subsup
445
+ \ngeqq subsup
446
+ \precneqq subsup o-<mfrac linethickness='0' mathsize='1%'><mo>&prec;</mo><mo>&ne;</mo></mfrac> # alternative
447
+ \succneqq subsup o-<mfrac linethickness='0' mathsize='1%'><mo>&succ;</mo><mo>&ne;</mo></mfrac> # alternative
448
+ \precnapprox subsup
449
+ \succnapprox subsup
450
+ \lnapprox subsup o-<mfrac linethickness='0' mathsize='1%'><mo>&lt;</mo><mo>&nap;</mo></mfrac> # alternative
451
+ \gnapprox subsup o-<mfrac linethickness='0' mathsize='1%'><mo>&gt;</mo><mo>&nap;</mo></mfrac> # alternative
452
+ \nsim subsup
453
+ \ncong subsup
454
+ \diagup subsup o=x2571
455
+ \diagdown subsup o=x2572
456
+ \varsubsetneq subsup o:subsetneq
457
+ \varsupsetneq subsup o:supsetneq
458
+ \nsubseteqq subsup
459
+ \nsupseteqq subsup
460
+ \subsetneqq subsup
461
+ \supsetneqq subsup
462
+ \varsubsetneqq subsup o:subsetneqq # alternative
463
+ \varsupsetneqq subsup o:supsetneqq # alternative
464
+ \subsetneq subsup
465
+ \supsetneq subsup
466
+ \nsubseteq subsup
467
+ \nsupseteq subsup
468
+ \nparallel subsup
469
+ \nmid subsup
470
+ \nshortmid subsup o:nmid # alternative
471
+ \nshortparallel subsup o:nparallel # alternative
472
+ \nvdash subsup
473
+ \nVdash subsup
474
+ \nvDash subsup
475
+ \nVDash subsup
476
+ \ntrianglerighteq subsup
477
+ \ntrianglelefteq subsup
478
+ \ntriangleleft subsup
479
+ \ntriangleright subsup
480
+ \nleftarrow subsup
481
+ \nrightarrow subsup
482
+ \nLeftarrow subsup
483
+ \nRightarrow subsup
484
+ \nLeftrightarrow subsup
485
+ \nleftrightarrow subsup
486
+ \divideontimes subsup
487
+ \varnothing subsup
488
+ \nexists subsup
489
+ \Finv subsup o=x2132
490
+ \Game subsup o-G # alternative
491
+ \eth subsup
492
+ \eqsim subsup
493
+ \beth subsup
494
+ \gimel subsup
495
+ \daleth subsup
496
+ \lessdot subsup
497
+ \gtrdot subsup
498
+ \ltimes subsup
499
+ \rtimes subsup
500
+ \shortmid subsup o:mid # alternative
501
+ \shortparallel subsup
502
+ \smallsetminus subsup o:setminus # alternative
503
+ \thicksim subsup o:sim # alternative
504
+ \thickapprox subsup o:approx # alternative
505
+ \approxeq subsup
506
+ \succapprox subsup
507
+ \precapprox subsup
508
+ \curvearrowleft subsup
509
+ \curvearrowright subsup
510
+ \digamma subsup
511
+ \varkappa subsup
512
+ \Bbbk subsup i:kopf
513
+ \hslash subsup
514
+ \backepsilon subsup
515
+ \ulcorner subsup o:boxdr # alternative
516
+ \urcorner subsup o:boxdl # alternative
517
+ \llcorner subsup o:boxur # alternative
518
+ \lrcorner subsup o:boxul # alternative