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.
- 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
|