mathematical 1.2.2 → 1.3.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.
- checksums.yaml +4 -4
- data/README.md +24 -45
- data/Rakefile +6 -0
- data/ext/mathematical/extconf.rb +1 -1
- data/ext/mathematical/lasem/Makefile +1037 -0
- data/ext/mathematical/lasem/config.h +87 -0
- data/ext/mathematical/lasem/docs/Makefile +793 -0
- data/ext/mathematical/lasem/docs/reference/Makefile +735 -0
- data/ext/mathematical/lasem/docs/reference/lasem/Makefile +1023 -0
- data/ext/mathematical/lasem/itex2mml/Makefile +742 -0
- data/ext/mathematical/lasem/itex2mml/lex.yy.c +6294 -0
- data/ext/mathematical/lasem/itex2mml/y.tab.c +5796 -0
- data/ext/mathematical/lasem/itex2mml/y.tab.h +378 -0
- data/ext/mathematical/lasem/po/Makefile +413 -0
- data/ext/mathematical/lasem/src/Makefile +1322 -0
- data/ext/mathematical/lasem/src/lsmdomenumtypes.c +99 -0
- data/ext/mathematical/lasem/src/lsmdomenumtypes.h +26 -0
- data/ext/mathematical/lasem/src/lsmmathmlattributes.c +22 -0
- data/ext/mathematical/lasem/src/lsmmathmlenums.c +8 -0
- data/ext/mathematical/lasem/src/lsmmathmlenums.h +7 -0
- data/ext/mathematical/lasem/src/lsmmathmlenumtypes.c +737 -0
- data/ext/mathematical/lasem/src/lsmmathmlenumtypes.h +93 -0
- data/ext/mathematical/lasem/src/lsmmathmlmathelement.c +9 -1
- data/ext/mathematical/lasem/src/lsmmathmlstyle.h +8 -0
- data/ext/mathematical/lasem/src/lsmmathmlstyleelement.c +78 -0
- data/ext/mathematical/lasem/src/lsmmathmlstyleelement.h +7 -0
- data/ext/mathematical/lasem/src/lsmmathmltablerowelement.c +2 -2
- data/ext/mathematical/lasem/src/lsmmathmltraits.h +8 -0
- data/ext/mathematical/lasem/src/lsmsvgenumtypes.c +1083 -0
- data/ext/mathematical/lasem/src/lsmsvgenumtypes.h +111 -0
- data/ext/mathematical/lasem/tests/Makefile +765 -0
- data/ext/mathematical/mtex2MML/Makefile +25 -16
- data/ext/mathematical/mtex2MML/build/libmtex2MML.a +0 -0
- data/ext/mathematical/mtex2MML/build/mtex2MML.h +1 -1
- data/ext/mathematical/mtex2MML/src/lex.yy.c +3140 -3130
- data/ext/mathematical/mtex2MML/src/main.c +1 -1
- data/ext/mathematical/mtex2MML/src/mtex2MML.h +1 -1
- data/ext/mathematical/mtex2MML/src/mtex2MML.l +4 -1
- data/ext/mathematical/mtex2MML/src/mtex2MML.y +41 -42
- data/ext/mathematical/mtex2MML/src/parse_extras.c +148 -58
- data/ext/mathematical/mtex2MML/src/parse_extras.h +11 -3
- data/ext/mathematical/mtex2MML/src/y.tab.c +5902 -6075
- data/ext/mathematical/mtex2MML/src/y.tab.h +306 -313
- data/ext/mathematical/mtex2MML/tests/basic.c +2 -2
- data/ext/mathematical/mtex2MML/tests/deps/trim/trim.h +1 -1
- data/ext/mathematical/mtex2MML/tests/maliciousness.c +0 -1
- data/ext/mathematical/mtex2MML/tests/mathjax.c +11 -1
- data/ext/mathematical/mtex2MML/tests/numbered_equations.c +28 -1
- data/lib/mathematical/version.rb +1 -1
- data/mathematical.gemspec +3 -3
- data/test/mathematical/fixtures/png/numeric_test_1.png +0 -0
- data/test/mathematical/fixtures/png/numeric_test_3.png +0 -0
- data/test/mathematical/fixtures_test.rb +1 -6
- data/test/mathematical/mathjax_test.rb +2 -0
- data/test/test_helper.rb +10 -0
- metadata +28 -11
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
static char *fixture_tex;
|
7
7
|
static char *fixture_mml;
|
8
|
-
static char *result;
|
8
|
+
static const char *result;
|
9
9
|
|
10
10
|
void test_basic__initialize(void)
|
11
11
|
{
|
@@ -58,7 +58,7 @@ void test_basic__filter(void)
|
|
58
58
|
{
|
59
59
|
fixture_tex = read_fixture_tex("basic/filter.txt");
|
60
60
|
fixture_mml = read_fixture_mml("basic/filter.html");
|
61
|
-
|
61
|
+
mtex2MML_filter(fixture_tex, strlen(fixture_tex));
|
62
62
|
result = mtex2MML_output();
|
63
63
|
|
64
64
|
cl_assert_equal_s(fixture_mml, result);
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
static char *fixture_tex;
|
7
7
|
static char *fixture_mml;
|
8
|
-
static char *result;
|
8
|
+
static const char *result;
|
9
9
|
|
10
10
|
void test_mathjax__initialize(void)
|
11
11
|
{
|
@@ -1869,6 +1869,16 @@ void test_mathjax__otherverb2(void)
|
|
1869
1869
|
cl_assert_equal_s(fixture_mml, result);
|
1870
1870
|
}
|
1871
1871
|
|
1872
|
+
void test_mathjax__referencesnotag1(void)
|
1873
|
+
{
|
1874
|
+
fixture_tex = read_fixture_tex("MathJax/LaTeXToMathML-tex/references/notag-1.txt");
|
1875
|
+
fixture_mml = read_fixture_mml("MathJax/LaTeXToMathML-out/references/notag-1.html");
|
1876
|
+
mtex2MML_filter(fixture_tex, strlen(fixture_tex));
|
1877
|
+
result = mtex2MML_output();
|
1878
|
+
|
1879
|
+
cl_assert_equal_s(fixture_mml, result);
|
1880
|
+
}
|
1881
|
+
|
1872
1882
|
void test_mathjax__rootsroot1(void)
|
1873
1883
|
{
|
1874
1884
|
fixture_tex = read_fixture_tex("MathJax/LaTeXToMathML-tex/roots/root-1.txt");
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
static char *fixture_tex;
|
7
7
|
static char *fixture_mml;
|
8
|
-
static char *result;
|
8
|
+
static const char *result;
|
9
9
|
|
10
10
|
void test_numbered_equations__initialize(void)
|
11
11
|
{
|
@@ -45,3 +45,30 @@ void test_numbered_equations__multiple_equations(void)
|
|
45
45
|
|
46
46
|
cl_assert_equal_s(fixture_mml, result);
|
47
47
|
}
|
48
|
+
|
49
|
+
void test_numbered_equations__single_notag(void)
|
50
|
+
{
|
51
|
+
fixture_tex = read_fixture_tex("numbered_equations/single_notag.txt");
|
52
|
+
fixture_mml = read_fixture_mml("numbered_equations/single_notag.html");
|
53
|
+
result = mtex2MML_global_parse(fixture_tex, strlen(fixture_tex), 1);
|
54
|
+
|
55
|
+
cl_assert_equal_s(fixture_mml, result);
|
56
|
+
}
|
57
|
+
|
58
|
+
void test_numbered_equations__single_nonumber(void)
|
59
|
+
{
|
60
|
+
fixture_tex = read_fixture_tex("numbered_equations/single_nonumber.txt");
|
61
|
+
fixture_mml = read_fixture_mml("numbered_equations/single_nonumber.html");
|
62
|
+
result = mtex2MML_global_parse(fixture_tex, strlen(fixture_tex), 1);
|
63
|
+
|
64
|
+
cl_assert_equal_s(fixture_mml, result);
|
65
|
+
}
|
66
|
+
|
67
|
+
void test_numbered_equations__multiple_notag_nonumber(void)
|
68
|
+
{
|
69
|
+
fixture_tex = read_fixture_tex("numbered_equations/multiple_notag_nonumber.txt");
|
70
|
+
fixture_mml = read_fixture_mml("numbered_equations/multiple_notag_nonumber.html");
|
71
|
+
result = mtex2MML_global_parse(fixture_tex, strlen(fixture_tex), 1);
|
72
|
+
|
73
|
+
cl_assert_equal_s(fixture_mml, result);
|
74
|
+
}
|
data/lib/mathematical/version.rb
CHANGED
data/mathematical.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Mathematical::VERSION
|
9
9
|
spec.authors = ['Garen Torikian']
|
10
10
|
spec.email = ['gjtorikian@gmail.com']
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
11
|
+
spec.summary = 'Quickly convert math equations into beautiful SVGs/PNGs/MathML.'
|
12
|
+
spec.description = 'A very fast way to turn LaTeX math equations into beautifully rendered SVGs, to embed on the web. This library is mostly written in C and is a general purpose wrapper to GNOME\'s Lasem.'
|
13
13
|
spec.homepage = 'https://github.com/gjtorikian/mathematical'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
@@ -26,6 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency 'rake-compiler', '~> 0.9'
|
27
27
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
28
28
|
spec.add_development_dependency 'minitest', '~> 5.6'
|
29
|
-
spec.add_development_dependency 'math-to-itex', '0.3
|
29
|
+
spec.add_development_dependency 'math-to-itex', '~> 0.3'
|
30
30
|
spec.add_development_dependency 'nokogiri', '~> 1.6'
|
31
31
|
end
|
Binary file
|
Binary file
|
@@ -14,12 +14,7 @@ class Mathematical::FixturesTest < MiniTest::Test
|
|
14
14
|
|
15
15
|
if ENV['MATHEMATICAL_GENERATE_SAMPLE']
|
16
16
|
next unless name.match /compliance/
|
17
|
-
|
18
|
-
svg_content = Mathematical.new(:base64 => false).render(eq)
|
19
|
-
# remove \ and $, remove whitespace, keep alphanums, remove extraneous - and trailing -
|
20
|
-
filename = eq.gsub(/[\$\\]*/, '').gsub(/\s+/, '-').gsub(/[^a-zA-Z\d]/, '-').gsub(/-{2,}/, '-').gsub(/-$/, '')
|
21
|
-
File.open("samples/fixtures/#{filename}.svg", 'w') { |file| file.write svg_content[:data] }
|
22
|
-
end
|
17
|
+
write_sample(source)
|
23
18
|
end
|
24
19
|
|
25
20
|
actual = MathToItex(source).convert do |eq, type|
|
@@ -14,6 +14,8 @@ class Mathematical::MathJaxTest < MiniTest::Test
|
|
14
14
|
tex_contents = File.read(tex)
|
15
15
|
data = render_svg.render(tex_contents)
|
16
16
|
|
17
|
+
write_sample(tex_contents, File.basename(tex, '.txt')) if ENV['MATHEMATICAL_GENERATE_SAMPLE']
|
18
|
+
|
17
19
|
# assert the SVG actually rendered
|
18
20
|
doc = Nokogiri::HTML(data[:data])
|
19
21
|
assert_empty doc.search(%(//svg[@width='0pt']))
|
data/test/test_helper.rb
CHANGED
@@ -51,3 +51,13 @@ def write_svg_to_test_file(converted)
|
|
51
51
|
|
52
52
|
File.open('test.html', 'w') { |f| f.write(text) }
|
53
53
|
end
|
54
|
+
|
55
|
+
def write_sample(source, name = nil)
|
56
|
+
return unless ENV['MATHEMATICAL_GENERATE_SAMPLE']
|
57
|
+
MathToItex(source).convert do |eq, type|
|
58
|
+
svg_content = Mathematical.new(:base64 => false).render(eq)
|
59
|
+
# remove \ and $, remove whitespace, keep alphanums, remove extraneous - and trailing -
|
60
|
+
filename = name || eq.gsub(/[\$\\]*/, '').gsub(/\s+/, '-').gsub(/[^a-zA-Z\d]/, '-').gsub(/-{2,}/, '-').gsub(/-$/, '')
|
61
|
+
File.open("samples/fixtures/#{filename}.svg", 'w') { |file| file.write svg_content[:data] }
|
62
|
+
end
|
63
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mathematical
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05
|
11
|
+
date: 2015-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: math-to-itex
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.3
|
75
|
+
version: '0.3'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.3
|
82
|
+
version: '0.3'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: nokogiri
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,10 +94,9 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.6'
|
97
|
-
description:
|
98
|
-
|
99
|
-
|
100
|
-
"purpose", "wrapper", "to", "GNOME''s", "Lasem."]'
|
97
|
+
description: A very fast way to turn LaTeX math equations into beautifully rendered
|
98
|
+
SVGs, to embed on the web. This library is mostly written in C and is a general
|
99
|
+
purpose wrapper to GNOME's Lasem.
|
101
100
|
email:
|
102
101
|
- gjtorikian@gmail.com
|
103
102
|
executables: []
|
@@ -111,9 +110,20 @@ files:
|
|
111
110
|
- ext/mathematical/cairo_callbacks.c
|
112
111
|
- ext/mathematical/cairo_callbacks.h
|
113
112
|
- ext/mathematical/extconf.rb
|
113
|
+
- ext/mathematical/lasem/Makefile
|
114
|
+
- ext/mathematical/lasem/config.h
|
115
|
+
- ext/mathematical/lasem/docs/Makefile
|
116
|
+
- ext/mathematical/lasem/docs/reference/Makefile
|
117
|
+
- ext/mathematical/lasem/docs/reference/lasem/Makefile
|
118
|
+
- ext/mathematical/lasem/itex2mml/Makefile
|
114
119
|
- ext/mathematical/lasem/itex2mml/itex2MML.h
|
115
120
|
- ext/mathematical/lasem/itex2mml/itex2MML.l
|
116
121
|
- ext/mathematical/lasem/itex2mml/itex2MML.y
|
122
|
+
- ext/mathematical/lasem/itex2mml/lex.yy.c
|
123
|
+
- ext/mathematical/lasem/itex2mml/y.tab.c
|
124
|
+
- ext/mathematical/lasem/itex2mml/y.tab.h
|
125
|
+
- ext/mathematical/lasem/po/Makefile
|
126
|
+
- ext/mathematical/lasem/src/Makefile
|
117
127
|
- ext/mathematical/lasem/src/lasemrender.c
|
118
128
|
- ext/mathematical/lasem/src/lsm.c
|
119
129
|
- ext/mathematical/lasem/src/lsm.h
|
@@ -134,6 +144,8 @@ files:
|
|
134
144
|
- ext/mathematical/lasem/src/lsmdomelement.h
|
135
145
|
- ext/mathematical/lasem/src/lsmdomentities.c
|
136
146
|
- ext/mathematical/lasem/src/lsmdomentities.h
|
147
|
+
- ext/mathematical/lasem/src/lsmdomenumtypes.c
|
148
|
+
- ext/mathematical/lasem/src/lsmdomenumtypes.h
|
137
149
|
- ext/mathematical/lasem/src/lsmdomimplementation.c
|
138
150
|
- ext/mathematical/lasem/src/lsmdomimplementation.h
|
139
151
|
- ext/mathematical/lasem/src/lsmdomnamednodemap.c
|
@@ -168,6 +180,8 @@ files:
|
|
168
180
|
- ext/mathematical/lasem/src/lsmmathmlencloseelement.h
|
169
181
|
- ext/mathematical/lasem/src/lsmmathmlenums.c
|
170
182
|
- ext/mathematical/lasem/src/lsmmathmlenums.h
|
183
|
+
- ext/mathematical/lasem/src/lsmmathmlenumtypes.c
|
184
|
+
- ext/mathematical/lasem/src/lsmmathmlenumtypes.h
|
171
185
|
- ext/mathematical/lasem/src/lsmmathmlerrorelement.c
|
172
186
|
- ext/mathematical/lasem/src/lsmmathmlerrorelement.h
|
173
187
|
- ext/mathematical/lasem/src/lsmmathmlfencedelement.c
|
@@ -249,6 +263,8 @@ files:
|
|
249
263
|
- ext/mathematical/lasem/src/lsmsvgellipseelement.h
|
250
264
|
- ext/mathematical/lasem/src/lsmsvgenums.c
|
251
265
|
- ext/mathematical/lasem/src/lsmsvgenums.h
|
266
|
+
- ext/mathematical/lasem/src/lsmsvgenumtypes.c
|
267
|
+
- ext/mathematical/lasem/src/lsmsvgenumtypes.h
|
252
268
|
- ext/mathematical/lasem/src/lsmsvgfilterblend.c
|
253
269
|
- ext/mathematical/lasem/src/lsmsvgfilterblend.h
|
254
270
|
- ext/mathematical/lasem/src/lsmsvgfiltercomposite.c
|
@@ -331,6 +347,7 @@ files:
|
|
331
347
|
- ext/mathematical/lasem/src/lsmtypes.h
|
332
348
|
- ext/mathematical/lasem/src/lsmutils.c
|
333
349
|
- ext/mathematical/lasem/src/lsmutils.h
|
350
|
+
- ext/mathematical/lasem/tests/Makefile
|
334
351
|
- ext/mathematical/lasem/tests/dom.c
|
335
352
|
- ext/mathematical/lasem/tests/lsmtest.c
|
336
353
|
- ext/mathematical/lasem/tests/str.c
|
@@ -451,7 +468,7 @@ rubyforge_project:
|
|
451
468
|
rubygems_version: 2.2.3
|
452
469
|
signing_key:
|
453
470
|
specification_version: 4
|
454
|
-
summary:
|
471
|
+
summary: Quickly convert math equations into beautiful SVGs/PNGs/MathML.
|
455
472
|
test_files:
|
456
473
|
- test/mathematical/basic_test.rb
|
457
474
|
- test/mathematical/corrections_test.rb
|