math_ml 0.13 → 0.14
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/Rakefile +1 -1
- data/lib/math_ml/latex.rb +2 -1
- data/spec/math_ml/latex/parser_spec.rb +14 -12
- data/spec/math_ml/util_spec.rb +3 -3
- metadata +7 -5
data/Rakefile
CHANGED
data/lib/math_ml/latex.rb
CHANGED
@@ -530,7 +530,7 @@ EOS
|
|
530
530
|
|
531
531
|
def parse_operator
|
532
532
|
o = @scanner.matched
|
533
|
-
Operator.new << o
|
533
|
+
Operator.new.tap{|op| op[:stretchy]="false"} << o
|
534
534
|
end
|
535
535
|
|
536
536
|
def parse_block
|
@@ -614,6 +614,7 @@ EOS
|
|
614
614
|
el.extend(Variant).variant = Variant::NORMAL unless s.is_a?(String)&&s.length>1
|
615
615
|
when :o
|
616
616
|
el = Operator.new
|
617
|
+
el[:stretchy] = "false"
|
617
618
|
when :n
|
618
619
|
el = Number.new
|
619
620
|
else
|
@@ -11,13 +11,15 @@ describe MathML::LaTeX::Parser do
|
|
11
11
|
|
12
12
|
def check_chr(tag, src)
|
13
13
|
src.scan(/./) do |c|
|
14
|
-
|
14
|
+
tag_re = Regexp.escape(tag)
|
15
|
+
smml(c).should =~ /\A<#{tag_re}(\s+[^>]+)?>#{Regexp.escape(c)}<\/#{tag_re}>\z/
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
19
|
def check_hash(tag, hash)
|
19
20
|
hash.each do |k, v|
|
20
|
-
|
21
|
+
tag_re = Regexp.escape(tag)
|
22
|
+
smml(k).should =~ /\A<#{tag_re}(\s+[^>]+)?>#{Regexp.escape(v)}<\/#{tag_re}>\z/
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
@@ -72,7 +74,7 @@ describe MathML::LaTeX::Parser do
|
|
72
74
|
it "should process numerics" do
|
73
75
|
smml('1234567890').should == "<mn>1234567890</mn>"
|
74
76
|
smml('1.2').should == "<mn>1.2</mn>"
|
75
|
-
smml('1.').should == "<mn>1</mn><mo>.</mo>"
|
77
|
+
smml('1.').should == "<mn>1</mn><mo stretchy='false'>.</mo>"
|
76
78
|
smml('.2').should == "<mn>.2</mn>"
|
77
79
|
smml('1.2.3').should == "<mn>1.2</mn><mn>.3</mn>"
|
78
80
|
end
|
@@ -83,7 +85,7 @@ describe MathML::LaTeX::Parser do
|
|
83
85
|
end
|
84
86
|
|
85
87
|
it "should process non alphabet command" do
|
86
|
-
smml('\|').should == "<mo>∥</mo>"
|
88
|
+
smml('\|').should == "<mo stretchy='false'>∥</mo>"
|
87
89
|
end
|
88
90
|
|
89
91
|
it "should process space commands" do
|
@@ -150,12 +152,12 @@ describe MathML::LaTeX::Parser do
|
|
150
152
|
end
|
151
153
|
|
152
154
|
it "should process underover" do
|
153
|
-
smml('\sum_a^b', true).should == "<munderover><mo>∑</mo><mi>a</mi><mi>b</mi></munderover>"
|
154
|
-
smml('\sum_a^b').should == "<msubsup><mo>∑</mo><mi>a</mi><mi>b</mi></msubsup>"
|
155
|
-
smml('\sum_a', true).should == "<munder><mo>∑</mo><mi>a</mi></munder>"
|
156
|
-
smml('\sum^a', true).should == "<mover><mo>∑</mo><mi>a</mi></mover>"
|
157
|
-
smml('\sum_a').should == "<msub><mo>∑</mo><mi>a</mi></msub>"
|
158
|
-
smml('\sum^a').should == "<msup><mo>∑</mo><mi>a</mi></msup>"
|
155
|
+
smml('\sum_a^b', true).should == "<munderover><mo stretchy='false'>∑</mo><mi>a</mi><mi>b</mi></munderover>"
|
156
|
+
smml('\sum_a^b').should == "<msubsup><mo stretchy='false'>∑</mo><mi>a</mi><mi>b</mi></msubsup>"
|
157
|
+
smml('\sum_a', true).should == "<munder><mo stretchy='false'>∑</mo><mi>a</mi></munder>"
|
158
|
+
smml('\sum^a', true).should == "<mover><mo stretchy='false'>∑</mo><mi>a</mi></mover>"
|
159
|
+
smml('\sum_a').should == "<msub><mo stretchy='false'>∑</mo><mi>a</mi></msub>"
|
160
|
+
smml('\sum^a').should == "<msup><mo stretchy='false'>∑</mo><mi>a</mi></msup>"
|
159
161
|
|
160
162
|
lambda{smml('\sum_b_c')}.should raise_parse_error("Double subscript.", '\sum_b', "_c")
|
161
163
|
lambda{smml('\sum^b^c')}.should raise_parse_error("Double superscript.", '\sum^b', "^c")
|
@@ -349,7 +351,7 @@ describe MathML::LaTeX::Parser do
|
|
349
351
|
end
|
350
352
|
|
351
353
|
it "should parse stackrel" do
|
352
|
-
smml('\stackrel\to=').should == "<mover><mo>=</mo><mo>→</mo></mover>"
|
354
|
+
smml('\stackrel\to=').should == "<mover><mo stretchy='false'>=</mo><mo stretchy='false'>→</mo></mover>"
|
353
355
|
smml('\stackrel12').should == "<mover><mn>2</mn><mn>1</mn></mover>"
|
354
356
|
end
|
355
357
|
|
@@ -490,7 +492,7 @@ EOS
|
|
490
492
|
end
|
491
493
|
|
492
494
|
it "should parse symbols" do
|
493
|
-
smml('\precneqq').should == "<mo>⪵</mo>"
|
495
|
+
smml('\precneqq').should == "<mo stretchy='false'>⪵</mo>"
|
494
496
|
end
|
495
497
|
end
|
496
498
|
|
data/spec/math_ml/util_spec.rb
CHANGED
@@ -143,9 +143,9 @@ describe MathML::Util::SimpleLaTeX do
|
|
143
143
|
"a\n<math display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mi>b</mi></math>\nc<math display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mi>d</mi></math>e")
|
144
144
|
|
145
145
|
assert_data('$\\$$',
|
146
|
-
["<mo>$</mo>"],
|
146
|
+
["<mo stretchy='false'>$</mo>"],
|
147
147
|
['$\$$'], [], [], [], [], "\001m0\001",
|
148
|
-
"<math display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mo>$</mo></math>")
|
148
|
+
"<math display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mo stretchy='false'>$</mo></math>")
|
149
149
|
end
|
150
150
|
|
151
151
|
it "should parse dmath environment" do
|
@@ -633,7 +633,7 @@ EOT
|
|
633
633
|
end
|
634
634
|
end
|
635
635
|
encoded.should == "test\n\001u0\001\nend\n"
|
636
|
-
simplify_math(s.decode(encoded, data)).should == simplify_math("test\n<math display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mtable><mtr><mtd><mi>a</mi></mtd><mtd><mo>=</mo></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mi>c</mi></mtd><mtd><mo>=</mo></mtd><mtd><mi>d</mi></mtd></mtr></mtable></math>\nend\n")
|
636
|
+
simplify_math(s.decode(encoded, data)).should == simplify_math("test\n<math display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mtable><mtr><mtd><mi>a</mi></mtd><mtd><mo stretchy='false'>=</mo></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mi>c</mi></mtd><mtd><mo stretchy='false'>=</mo></mtd><mtd><mi>d</mi></mtd></mtr></mtable></math>\nend\n")
|
637
637
|
|
638
638
|
encoded, data = s.encode('\begin{eqnarray}a\end{eqnarray}', MathML::Util::EQNARRAY_RE) do |scanner|
|
639
639
|
s.parse_eqnarray(scanner[1]) if scanner.scan(MathML::Util::EQNARRAY_RE)
|
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: math_ml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: "0.
|
8
|
+
- 14
|
9
|
+
version: "0.14"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- KURODA Hiraku
|
@@ -14,7 +14,8 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2012-
|
17
|
+
date: 2012-11-11 00:00:00 +09:00
|
18
|
+
default_executable:
|
18
19
|
dependencies:
|
19
20
|
- !ruby/object:Gem::Dependency
|
20
21
|
name: eim_xml
|
@@ -59,6 +60,7 @@ files:
|
|
59
60
|
- spec/math_ml/string_spec.rb
|
60
61
|
- spec/math_ml/util_spec.rb
|
61
62
|
- spec/math_ml/element_spec.rb
|
63
|
+
has_rdoc: true
|
62
64
|
homepage: http://mathml.rubyforge.org/
|
63
65
|
licenses: []
|
64
66
|
|
@@ -90,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
92
|
requirements: []
|
91
93
|
|
92
94
|
rubyforge_project: mathml
|
93
|
-
rubygems_version: 1.
|
95
|
+
rubygems_version: 1.6.2
|
94
96
|
signing_key:
|
95
97
|
specification_version: 3
|
96
98
|
summary: MathML Library
|