plurimath 0.8.17 → 0.8.18
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/Gemfile +1 -1
- data/lib/plurimath/asciimath/parse.rb +1 -0
- data/lib/plurimath/asciimath/transform.rb +12 -0
- data/lib/plurimath/math/core.rb +63 -4
- data/lib/plurimath/math/formula/mrow.rb +193 -0
- data/lib/plurimath/math/formula/mstyle.rb +17 -0
- data/lib/plurimath/math/formula.rb +307 -4
- data/lib/plurimath/math/function/base.rb +4 -0
- data/lib/plurimath/math/function/color.rb +17 -4
- data/lib/plurimath/math/function/fenced.rb +219 -0
- data/lib/plurimath/math/function/frac.rb +4 -0
- data/lib/plurimath/math/function/linebreak.rb +2 -2
- data/lib/plurimath/math/function/longdiv.rb +3 -0
- data/lib/plurimath/math/function/menclose.rb +3 -0
- data/lib/plurimath/math/function/merror.rb +5 -2
- data/lib/plurimath/math/function/mglyph.rb +27 -0
- data/lib/plurimath/math/function/mlabeledtr.rb +19 -0
- data/lib/plurimath/math/function/mpadded.rb +28 -1
- data/lib/plurimath/math/function/ms.rb +80 -0
- data/lib/plurimath/math/function/msgroup.rb +15 -0
- data/lib/plurimath/math/function/msline.rb +5 -2
- data/lib/plurimath/math/function/multiscript.rb +14 -0
- data/lib/plurimath/math/function/over.rb +3 -0
- data/lib/plurimath/math/function/overset.rb +11 -0
- data/lib/plurimath/math/function/phantom.rb +3 -0
- data/lib/plurimath/math/function/power.rb +3 -0
- data/lib/plurimath/math/function/power_base.rb +3 -0
- data/lib/plurimath/math/function/root.rb +3 -0
- data/lib/plurimath/math/function/scarries.rb +3 -0
- data/lib/plurimath/math/function/semantics.rb +14 -0
- data/lib/plurimath/math/function/sqrt.rb +3 -0
- data/lib/plurimath/math/function/stackrel.rb +3 -0
- data/lib/plurimath/math/function/table.rb +53 -0
- data/lib/plurimath/math/function/td.rb +4 -1
- data/lib/plurimath/math/function/text.rb +22 -2
- data/lib/plurimath/math/function/tr.rb +13 -0
- data/lib/plurimath/math/function/underover.rb +3 -0
- data/lib/plurimath/math/function/underset.rb +44 -0
- data/lib/plurimath/math/number.rb +10 -1
- data/lib/plurimath/math/symbols/gg.rb +4 -4
- data/lib/plurimath/math/symbols/ll.rb +4 -4
- data/lib/plurimath/math/symbols/minus.rb +1 -1
- data/lib/plurimath/math/symbols/symbol.rb +12 -4
- data/lib/plurimath/math.rb +2 -0
- data/lib/plurimath/mathml/parser.rb +45 -86
- data/lib/plurimath/mathml/utility/empty_defined_methods.rb +477 -0
- data/lib/plurimath/mathml/utility/formula_transformation.rb +472 -0
- data/lib/plurimath/mathml/utility.rb +363 -0
- data/lib/plurimath/mathml.rb +1 -0
- data/lib/plurimath/unicode_math/transform.rb +2 -2
- data/lib/plurimath/utility.rb +5 -23
- data/lib/plurimath/version.rb +1 -1
- data/lib/plurimath.rb +9 -0
- data/plurimath.gemspec +4 -2
- metadata +37 -5
- data/lib/plurimath/mathml/transform.rb +0 -413
@@ -0,0 +1,363 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "utility/empty_defined_methods"
|
4
|
+
require_relative "utility/formula_transformation"
|
5
|
+
|
6
|
+
module Plurimath
|
7
|
+
class Mathml
|
8
|
+
module Utility
|
9
|
+
include EmptyDefinedMethods
|
10
|
+
include FormulaTransformation
|
11
|
+
|
12
|
+
attr_accessor :temp_mathml_order
|
13
|
+
|
14
|
+
def element_order=(value)
|
15
|
+
@temp_mathml_order = Array(validated_order(value))
|
16
|
+
end
|
17
|
+
|
18
|
+
def clear_temp_order
|
19
|
+
@temp_mathml_order.shift(@temp_mathml_order.count)
|
20
|
+
end
|
21
|
+
|
22
|
+
def mathvariant=(value)
|
23
|
+
return if value.nil? || value.empty?
|
24
|
+
return unless Plurimath::Utility::FONT_STYLES.key?(value.to_sym)
|
25
|
+
|
26
|
+
@temp_mathml_order = [
|
27
|
+
Plurimath::Utility::FONT_STYLES[value.to_sym].new(
|
28
|
+
nil,
|
29
|
+
value,
|
30
|
+
),
|
31
|
+
]
|
32
|
+
end
|
33
|
+
|
34
|
+
def accent=(value)
|
35
|
+
return if value.nil? || value.empty?
|
36
|
+
|
37
|
+
@options = Hash(@options).merge(accent: true)
|
38
|
+
end
|
39
|
+
|
40
|
+
def accentunder=(value)
|
41
|
+
return if value.nil? || value.empty?
|
42
|
+
|
43
|
+
@options = Hash(@options).merge(accentunder: true)
|
44
|
+
end
|
45
|
+
|
46
|
+
def bevelled=(value)
|
47
|
+
return if value.nil? || value.empty?
|
48
|
+
|
49
|
+
@options = (@options || {}).merge(bevelled: value)
|
50
|
+
end
|
51
|
+
|
52
|
+
def linebreak=(value)
|
53
|
+
return if value.nil? || value.empty?
|
54
|
+
|
55
|
+
@temp_mathml_order << Plurimath::Math::Function::Linebreak.new(
|
56
|
+
nil,
|
57
|
+
{ linebreak: value },
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
def linebreakstyle=(value)
|
62
|
+
return if value.nil? || value.empty?
|
63
|
+
|
64
|
+
linebreak_object = @temp_mathml_order.find do |object|
|
65
|
+
object.is_a?(Math::Function::Linebreak)
|
66
|
+
end
|
67
|
+
linebreak_object.attributes[:linebreakstyle] = value if linebreak_object
|
68
|
+
end
|
69
|
+
|
70
|
+
def linethickness=(value)
|
71
|
+
return if value.nil? || value.empty?
|
72
|
+
|
73
|
+
@options = (@options || {}).merge(linethickness: value)
|
74
|
+
end
|
75
|
+
|
76
|
+
def notation=(value)
|
77
|
+
return if value.nil? || value.empty?
|
78
|
+
|
79
|
+
@parameter_one = value
|
80
|
+
end
|
81
|
+
|
82
|
+
def mi_value=(value)
|
83
|
+
return if value.nil? || value.empty?
|
84
|
+
|
85
|
+
update_temp(
|
86
|
+
replace_order_with_value(
|
87
|
+
@temp_mathml_order,
|
88
|
+
validate_symbols(value),
|
89
|
+
"mi",
|
90
|
+
),
|
91
|
+
)
|
92
|
+
end
|
93
|
+
|
94
|
+
def mo_value=(value)
|
95
|
+
return if value.nil? || value.empty?
|
96
|
+
|
97
|
+
update_temp(
|
98
|
+
replace_order_with_value(
|
99
|
+
@temp_mathml_order,
|
100
|
+
validate_symbols(value),
|
101
|
+
"mo",
|
102
|
+
),
|
103
|
+
)
|
104
|
+
end
|
105
|
+
|
106
|
+
def mn_value=(value)
|
107
|
+
return if value.nil? || value.empty?
|
108
|
+
|
109
|
+
update_temp(
|
110
|
+
replace_order_with_value(
|
111
|
+
@temp_mathml_order,
|
112
|
+
value,
|
113
|
+
"mn",
|
114
|
+
),
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
def ms_value=(value)
|
119
|
+
return if value.nil? || value.empty?
|
120
|
+
|
121
|
+
update_temp(
|
122
|
+
replace_order_with_value(
|
123
|
+
@temp_mathml_order,
|
124
|
+
Array(value),
|
125
|
+
"ms",
|
126
|
+
),
|
127
|
+
)
|
128
|
+
end
|
129
|
+
|
130
|
+
def mtext_value=(value)
|
131
|
+
return if value.nil? || value.empty?
|
132
|
+
|
133
|
+
update_temp(
|
134
|
+
replace_order_with_value(
|
135
|
+
@temp_mathml_order,
|
136
|
+
Array(value),
|
137
|
+
"mtext",
|
138
|
+
),
|
139
|
+
)
|
140
|
+
end
|
141
|
+
|
142
|
+
def mrow_value=(value)
|
143
|
+
return if value.nil? || value.empty?
|
144
|
+
|
145
|
+
update_temp(
|
146
|
+
replace_order_with_value(
|
147
|
+
@temp_mathml_order,
|
148
|
+
filter_values(value, array_to_instance: true),
|
149
|
+
"mrow",
|
150
|
+
),
|
151
|
+
)
|
152
|
+
end
|
153
|
+
|
154
|
+
def mstyle_value=(value)
|
155
|
+
return if value.nil? || value.empty?
|
156
|
+
|
157
|
+
update_temp(
|
158
|
+
replace_order_with_value(
|
159
|
+
@temp_mathml_order,
|
160
|
+
Array(value),
|
161
|
+
"mstyle",
|
162
|
+
),
|
163
|
+
)
|
164
|
+
end
|
165
|
+
|
166
|
+
def mfrac_value=(value)
|
167
|
+
return if value.nil? || value.empty?
|
168
|
+
|
169
|
+
update_temp_order(value, "mfrac")
|
170
|
+
end
|
171
|
+
|
172
|
+
def munderover_value=(value)
|
173
|
+
return if value.nil? || value.empty?
|
174
|
+
|
175
|
+
update_temp_order(value, "munderover")
|
176
|
+
end
|
177
|
+
|
178
|
+
def msubsup_value=(value)
|
179
|
+
return if value.nil? || value.empty?
|
180
|
+
|
181
|
+
update_temp_order(value, "msubsup")
|
182
|
+
end
|
183
|
+
|
184
|
+
def munder_value=(value)
|
185
|
+
return if value.nil? || value.empty?
|
186
|
+
|
187
|
+
update_temp_order(value, "munder")
|
188
|
+
end
|
189
|
+
|
190
|
+
def mover_value=(value)
|
191
|
+
return if value.nil? || value.empty?
|
192
|
+
|
193
|
+
update_temp_order(value, "mover")
|
194
|
+
end
|
195
|
+
|
196
|
+
def msup_value=(value)
|
197
|
+
return if value.nil? || value.empty?
|
198
|
+
|
199
|
+
update_temp_order(value, "msup")
|
200
|
+
end
|
201
|
+
|
202
|
+
def msub_value=(value)
|
203
|
+
return if value.nil? || value.empty?
|
204
|
+
|
205
|
+
update_temp_order(value, "msub")
|
206
|
+
end
|
207
|
+
|
208
|
+
def mtable_value=(value)
|
209
|
+
return if value.nil? || value.empty?
|
210
|
+
|
211
|
+
if respond_to?(:value)
|
212
|
+
self.value = replace_order_with_value(
|
213
|
+
self.value,
|
214
|
+
update_temp_mathml_values(value),
|
215
|
+
"mtable",
|
216
|
+
)
|
217
|
+
else
|
218
|
+
update_temp_order(value, "mtable")
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def msqrt_value=(value)
|
223
|
+
return if value.nil? || value.empty?
|
224
|
+
|
225
|
+
update_temp_order(value, "msqrt")
|
226
|
+
end
|
227
|
+
|
228
|
+
def mfenced_value=(value)
|
229
|
+
return if value.nil? || value.empty?
|
230
|
+
|
231
|
+
update_temp_order(value, "mfenced")
|
232
|
+
end
|
233
|
+
|
234
|
+
def mroot_value=(value)
|
235
|
+
return if value.nil? || value.empty?
|
236
|
+
|
237
|
+
update_temp_order(value, "mroot")
|
238
|
+
end
|
239
|
+
|
240
|
+
def msgroup_value=(value)
|
241
|
+
return if value.nil? || value.empty?
|
242
|
+
|
243
|
+
update_temp_order(value, "msgroup")
|
244
|
+
end
|
245
|
+
|
246
|
+
def mscarries_value=(value)
|
247
|
+
return if value.nil? || value.empty?
|
248
|
+
|
249
|
+
update_temp_order(value, "mscarries")
|
250
|
+
end
|
251
|
+
|
252
|
+
def msline_value=(value)
|
253
|
+
return if value.nil? || value.empty?
|
254
|
+
|
255
|
+
update_temp_order(value, "msline")
|
256
|
+
end
|
257
|
+
|
258
|
+
def msrow_value=(value)
|
259
|
+
return if value.nil? || value.empty?
|
260
|
+
|
261
|
+
update_temp_order(value, "msrow")
|
262
|
+
end
|
263
|
+
|
264
|
+
def mspace_value=(value)
|
265
|
+
return if value.nil? || value.empty?
|
266
|
+
|
267
|
+
if value.first.linebreak
|
268
|
+
linebreak = Math::Function::Linebreak.new(
|
269
|
+
nil,
|
270
|
+
{ linebreak: value.first.linebreak },
|
271
|
+
)
|
272
|
+
update_temp_order([linebreak], "mspace")
|
273
|
+
else
|
274
|
+
@temp_mathml_order&.delete("mspace")
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
def semantics_value=(value)
|
279
|
+
return if value.nil? || value.empty?
|
280
|
+
|
281
|
+
update_temp_order(value, "semantics")
|
282
|
+
end
|
283
|
+
|
284
|
+
def mstack_value=(value)
|
285
|
+
return if value.nil? || value.empty?
|
286
|
+
|
287
|
+
update_temp_order(value, "mstack")
|
288
|
+
end
|
289
|
+
|
290
|
+
def merror_value=(value)
|
291
|
+
return if value.nil? || value.empty?
|
292
|
+
|
293
|
+
update_temp_order(value, "merror")
|
294
|
+
end
|
295
|
+
|
296
|
+
def mlongdiv_value=(value)
|
297
|
+
return if value.nil? || value.empty?
|
298
|
+
|
299
|
+
update_temp_order(value, "mlongdiv")
|
300
|
+
end
|
301
|
+
|
302
|
+
def none_value=(_)
|
303
|
+
@temp_mathml_order&.delete("none")
|
304
|
+
end
|
305
|
+
|
306
|
+
def mscarry_value=(value)
|
307
|
+
return if value.nil? || value.empty?
|
308
|
+
|
309
|
+
@temp_mathml_order&.delete("mscarry")
|
310
|
+
end
|
311
|
+
|
312
|
+
def menclose_value=(value)
|
313
|
+
return if value.nil? || value.empty?
|
314
|
+
|
315
|
+
update_temp_order(value, "menclose")
|
316
|
+
end
|
317
|
+
|
318
|
+
def maligngroup_value=(_)
|
319
|
+
@temp_mathml_order&.delete("maligngroup")
|
320
|
+
end
|
321
|
+
|
322
|
+
def malignmark_value=(_)
|
323
|
+
@temp_mathml_order&.delete("malignmark")
|
324
|
+
end
|
325
|
+
|
326
|
+
def mpadded_value=(value)
|
327
|
+
return if value.nil? || value.empty?
|
328
|
+
|
329
|
+
update_temp_order(value, "mpadded")
|
330
|
+
end
|
331
|
+
|
332
|
+
def mfraction_value=(value)
|
333
|
+
return if value.nil? || value.empty?
|
334
|
+
|
335
|
+
update_temp_order(value, "mfraction")
|
336
|
+
end
|
337
|
+
|
338
|
+
def mlabeledtr_value=(value)
|
339
|
+
return if value.nil? || value.empty?
|
340
|
+
|
341
|
+
update_temp_order(value, "mlabeledtr")
|
342
|
+
end
|
343
|
+
|
344
|
+
def mmultiscripts_value=(value)
|
345
|
+
return if value.nil? || value.empty?
|
346
|
+
|
347
|
+
update_temp_order(value, "mmultiscripts")
|
348
|
+
end
|
349
|
+
|
350
|
+
def mphantom_value=(value)
|
351
|
+
return if value.nil? || value.empty?
|
352
|
+
|
353
|
+
update_temp_order(value, "mphantom")
|
354
|
+
end
|
355
|
+
|
356
|
+
def mglyph_value=(value)
|
357
|
+
return if value.nil? || value.empty?
|
358
|
+
|
359
|
+
update_temp_order(value, "mglyph")
|
360
|
+
end
|
361
|
+
end
|
362
|
+
end
|
363
|
+
end
|
data/lib/plurimath/mathml.rb
CHANGED
@@ -1249,7 +1249,7 @@ module Plurimath
|
|
1249
1249
|
color_obj = Math::Function::Color.new(
|
1250
1250
|
Math::Symbols::Symbol.new(color),
|
1251
1251
|
first_value,
|
1252
|
-
{
|
1252
|
+
{ backgroundcolor: true }
|
1253
1253
|
)
|
1254
1254
|
end
|
1255
1255
|
|
@@ -1258,7 +1258,7 @@ module Plurimath
|
|
1258
1258
|
color_obj = Math::Function::Color.new(
|
1259
1259
|
Math::Symbols::Symbol.new(color),
|
1260
1260
|
Utility.filter_values(first_value),
|
1261
|
-
{
|
1261
|
+
{ backgroundcolor: true }
|
1262
1262
|
)
|
1263
1263
|
end
|
1264
1264
|
|
data/lib/plurimath/utility.rb
CHANGED
@@ -171,7 +171,7 @@ module Plurimath
|
|
171
171
|
if data&.separate_table
|
172
172
|
table_row << Math::Function::Td.new(filter_table_data(table_data).compact)
|
173
173
|
table_data = []
|
174
|
-
if data.linebreak
|
174
|
+
if data.linebreak?
|
175
175
|
organize_tds(table_row.flatten, string_columns.dup, options)
|
176
176
|
table << Math::Function::Tr.new(table_row)
|
177
177
|
table_row = []
|
@@ -264,7 +264,7 @@ module Plurimath
|
|
264
264
|
Math::Symbols::Paren.descendants
|
265
265
|
end
|
266
266
|
|
267
|
-
def symbols_files
|
267
|
+
def symbols_files
|
268
268
|
Math::Symbols::Symbol.descendants
|
269
269
|
end
|
270
270
|
|
@@ -342,11 +342,12 @@ module Plurimath
|
|
342
342
|
) << rpr_element(wi_tag: wi_tag)
|
343
343
|
end
|
344
344
|
|
345
|
-
def filter_values(array)
|
345
|
+
def filter_values(array, new_formula: true)
|
346
346
|
return array unless array.is_a?(Array) || array.is_a?(Math::Formula)
|
347
347
|
|
348
348
|
array = array.is_a?(Math::Formula) ? array.value : array.flatten.compact
|
349
|
-
return Math::Formula.new(array) if array.length > 1
|
349
|
+
return Math::Formula.new(array) if array.length > 1 && new_formula
|
350
|
+
return array if array.length > 1 && !new_formula
|
350
351
|
|
351
352
|
array.first
|
352
353
|
end
|
@@ -552,25 +553,6 @@ module Plurimath
|
|
552
553
|
end
|
553
554
|
end
|
554
555
|
|
555
|
-
def multiscript(values)
|
556
|
-
values.slice_before("mprescripts").map do |value|
|
557
|
-
base_value = value.shift
|
558
|
-
value = nil_to_none_object(value)
|
559
|
-
part_val = value.partition.with_index { |_, i| i.even? }
|
560
|
-
first_value = part_val[0].empty? ? nil : part_val[0]
|
561
|
-
second_value = part_val[1].empty? ? nil : part_val[1]
|
562
|
-
if base_value.to_s.include?("mprescripts")
|
563
|
-
[first_value, second_value]
|
564
|
-
else
|
565
|
-
Math::Function::PowerBase.new(
|
566
|
-
filter_values(base_value),
|
567
|
-
filter_values(first_value),
|
568
|
-
filter_values(second_value),
|
569
|
-
)
|
570
|
-
end
|
571
|
-
end
|
572
|
-
end
|
573
|
-
|
574
556
|
def nil_to_none_object(value)
|
575
557
|
return value unless value.any?(NilClass) || value.any? { |val| val.is_a?(Array) && val.empty? }
|
576
558
|
|
data/lib/plurimath/version.rb
CHANGED
data/lib/plurimath.rb
CHANGED
@@ -1,14 +1,23 @@
|
|
1
1
|
|
2
2
|
require_relative "plurimath/version"
|
3
|
+
require "lutaml/model"
|
4
|
+
require "mml/configuration"
|
5
|
+
|
6
|
+
def mml_adapter(adapter)
|
7
|
+
Mml::Configuration.adapter = adapter unless Mml::Configuration.adapter
|
8
|
+
end
|
3
9
|
|
4
10
|
# Select an XML engine
|
5
11
|
if RUBY_ENGINE == 'opal'
|
6
12
|
require "plurimath/setup/oga"
|
7
13
|
require "plurimath/setup/opal"
|
14
|
+
mml_adapter(:oga)
|
8
15
|
elsif ENV['PLURIMATH_OGA']
|
9
16
|
require "plurimath/setup/oga"
|
17
|
+
mml_adapter(:oga)
|
10
18
|
else
|
11
19
|
require "plurimath/setup/ox"
|
20
|
+
mml_adapter(:ox)
|
12
21
|
end
|
13
22
|
|
14
23
|
require "plurimath/math"
|
data/plurimath.gemspec
CHANGED
@@ -24,8 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.bindir = "exe"
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ["lib"]
|
27
|
-
spec.add_dependency 'parslet'
|
28
|
-
spec.add_dependency 'thor'
|
29
27
|
spec.add_dependency 'ox'
|
28
|
+
spec.add_dependency 'mml'
|
29
|
+
spec.add_dependency 'thor'
|
30
|
+
spec.add_dependency 'parslet'
|
30
31
|
spec.add_dependency 'bigdecimal'
|
32
|
+
spec.add_dependency 'lutaml-model'
|
31
33
|
end
|
metadata
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plurimath
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: ox
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mml
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - ">="
|
@@ -39,7 +53,7 @@ dependencies:
|
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: parslet
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - ">="
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: lutaml-model
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
description: Converts LaTeX math into MathML.
|
70
98
|
email:
|
71
99
|
- open.source@ribose.com
|
@@ -125,6 +153,8 @@ files:
|
|
125
153
|
- lib/plurimath/math.rb
|
126
154
|
- lib/plurimath/math/core.rb
|
127
155
|
- lib/plurimath/math/formula.rb
|
156
|
+
- lib/plurimath/math/formula/mrow.rb
|
157
|
+
- lib/plurimath/math/formula/mstyle.rb
|
128
158
|
- lib/plurimath/math/function.rb
|
129
159
|
- lib/plurimath/math/function/abs.rb
|
130
160
|
- lib/plurimath/math/function/arccos.rb
|
@@ -1714,7 +1744,9 @@ files:
|
|
1714
1744
|
- lib/plurimath/mathml.rb
|
1715
1745
|
- lib/plurimath/mathml/constants.rb
|
1716
1746
|
- lib/plurimath/mathml/parser.rb
|
1717
|
-
- lib/plurimath/mathml/
|
1747
|
+
- lib/plurimath/mathml/utility.rb
|
1748
|
+
- lib/plurimath/mathml/utility/empty_defined_methods.rb
|
1749
|
+
- lib/plurimath/mathml/utility/formula_transformation.rb
|
1718
1750
|
- lib/plurimath/number_formatter.rb
|
1719
1751
|
- lib/plurimath/omml.rb
|
1720
1752
|
- lib/plurimath/omml/parser.rb
|