mathml 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +58 -0
- data/Rakefile +121 -0
- data/lib/math_ml.rb +1885 -0
- data/lib/math_ml/string.rb +32 -0
- data/lib/math_ml/util.rb +350 -0
- data/symbols/fetch_symbol.rb +446 -0
- data/symbols/fetch_symbol_test.rb +180 -0
- data/symbols/list.txt +518 -0
- data/test/math_ml_test.rb +780 -0
- data/test/math_ml_test_util.rb +48 -0
- data/test/math_ml_test_util_test.rb +22 -0
- data/test/string_test.rb +36 -0
- data/test/util_test.rb +694 -0
- metadata +80 -0
@@ -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>≺</mo><mo>≠</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>≺</mo><mo>≠</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>&</mo>", tm("\\&", h))
|
102
|
+
assert_equal("<mi>ϵ</mi>", tm("\\varepsilon", h))
|
103
|
+
assert_equal("<mi mathvariant='normal'>Γ</mi>", tm("\\Gamma", h))
|
104
|
+
assert_equal("", tm("\\ensuremat", h))
|
105
|
+
assert_equal("<mi>log</mi>", tm("\\log", h))
|
106
|
+
assert_equal("<mo>†</mo>", tm("\\dagger", h))
|
107
|
+
assert_equal("<mo>◜</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>≺</mo><mo>≠</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>≺</mo><mo>≠</mo></mfrac> # alternative
|
447
|
+
\succneqq subsup o-<mfrac linethickness='0' mathsize='1%'><mo>≻</mo><mo>≠</mo></mfrac> # alternative
|
448
|
+
\precnapprox subsup
|
449
|
+
\succnapprox subsup
|
450
|
+
\lnapprox subsup o-<mfrac linethickness='0' mathsize='1%'><mo><</mo><mo>≉</mo></mfrac> # alternative
|
451
|
+
\gnapprox subsup o-<mfrac linethickness='0' mathsize='1%'><mo>></mo><mo>≉</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
|