mathml 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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