plurimath 0.3.9 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/plurimath/math/core.rb +16 -4
- data/lib/plurimath/math/formula.rb +24 -20
- data/lib/plurimath/math/function/abs.rb +2 -2
- data/lib/plurimath/math/function/bar.rb +43 -12
- data/lib/plurimath/math/function/base.rb +3 -3
- data/lib/plurimath/math/function/binary_function.rb +16 -10
- data/lib/plurimath/math/function/cancel.rb +2 -2
- data/lib/plurimath/math/function/ceil.rb +7 -2
- data/lib/plurimath/math/function/color.rb +2 -2
- data/lib/plurimath/math/function/ddot.rb +10 -12
- data/lib/plurimath/math/function/deg.rb +2 -2
- data/lib/plurimath/math/function/det.rb +2 -2
- data/lib/plurimath/math/function/dim.rb +2 -2
- data/lib/plurimath/math/function/dot.rb +21 -4
- data/lib/plurimath/math/function/exp.rb +2 -2
- data/lib/plurimath/math/function/fenced.rb +2 -1
- data/lib/plurimath/math/function/floor.rb +2 -2
- data/lib/plurimath/math/function/font_style/bold-fraktur.rb +17 -0
- data/lib/plurimath/math/function/font_style/bold-italic.rb +17 -0
- data/lib/plurimath/math/function/font_style/bold-sans-serif.rb +17 -0
- data/lib/plurimath/math/function/font_style/bold-script.rb +17 -0
- data/lib/plurimath/math/function/font_style/bold.rb +4 -0
- data/lib/plurimath/math/function/font_style/double_struck.rb +4 -0
- data/lib/plurimath/math/function/font_style/fraktur.rb +4 -0
- data/lib/plurimath/math/function/font_style/italic.rb +4 -0
- data/lib/plurimath/math/function/font_style/monospace.rb +4 -0
- data/lib/plurimath/math/function/font_style/normal.rb +4 -0
- data/lib/plurimath/math/function/font_style/sans-serif-bold-italic.rb +17 -0
- data/lib/plurimath/math/function/font_style/sans-serif-italic.rb +17 -0
- data/lib/plurimath/math/function/font_style/sans-serif.rb +4 -0
- data/lib/plurimath/math/function/font_style/script.rb +4 -0
- data/lib/plurimath/math/function/font_style.rb +22 -4
- data/lib/plurimath/math/function/frac.rb +3 -3
- data/lib/plurimath/math/function/gcd.rb +2 -2
- data/lib/plurimath/math/function/glb.rb +2 -2
- data/lib/plurimath/math/function/hat.rb +37 -11
- data/lib/plurimath/math/function/hom.rb +2 -2
- data/lib/plurimath/math/function/inf.rb +2 -2
- data/lib/plurimath/math/function/int.rb +4 -4
- data/lib/plurimath/math/function/ker.rb +2 -2
- data/lib/plurimath/math/function/lcm.rb +2 -2
- data/lib/plurimath/math/function/left.rb +1 -1
- data/lib/plurimath/math/function/lg.rb +2 -2
- data/lib/plurimath/math/function/lim.rb +2 -2
- data/lib/plurimath/math/function/liminf.rb +2 -2
- data/lib/plurimath/math/function/limits.rb +4 -4
- data/lib/plurimath/math/function/limsup.rb +2 -2
- data/lib/plurimath/math/function/ln.rb +2 -2
- data/lib/plurimath/math/function/log.rb +5 -3
- data/lib/plurimath/math/function/longdiv.rb +2 -2
- data/lib/plurimath/math/function/lub.rb +2 -2
- data/lib/plurimath/math/function/max.rb +2 -2
- data/lib/plurimath/math/function/mbox.rb +2 -2
- data/lib/plurimath/math/function/menclose.rb +2 -2
- data/lib/plurimath/math/function/merror.rb +1 -1
- data/lib/plurimath/math/function/min.rb +2 -2
- data/lib/plurimath/math/function/mod.rb +3 -3
- data/lib/plurimath/math/function/msgroup.rb +2 -2
- data/lib/plurimath/math/function/msline.rb +2 -2
- data/lib/plurimath/math/function/multiscript.rb +4 -4
- data/lib/plurimath/math/function/norm.rb +2 -2
- data/lib/plurimath/math/function/obrace.rb +35 -28
- data/lib/plurimath/math/function/oint.rb +4 -4
- data/lib/plurimath/math/function/over.rb +3 -3
- data/lib/plurimath/math/function/overset.rb +8 -3
- data/lib/plurimath/math/function/power.rb +3 -3
- data/lib/plurimath/math/function/power_base.rb +8 -8
- data/lib/plurimath/math/function/prod.rb +4 -4
- data/lib/plurimath/math/function/right.rb +1 -1
- data/lib/plurimath/math/function/root.rb +3 -3
- data/lib/plurimath/math/function/rule.rb +1 -1
- data/lib/plurimath/math/function/scarries.rb +2 -2
- data/lib/plurimath/math/function/semantics.rb +2 -2
- data/lib/plurimath/math/function/sqrt.rb +2 -2
- data/lib/plurimath/math/function/stackrel.rb +3 -3
- data/lib/plurimath/math/function/substack.rb +3 -3
- data/lib/plurimath/math/function/sum.rb +14 -19
- data/lib/plurimath/math/function/sup.rb +2 -2
- data/lib/plurimath/math/function/table.rb +7 -7
- data/lib/plurimath/math/function/td.rb +2 -2
- data/lib/plurimath/math/function/ternary_function.rb +7 -3
- data/lib/plurimath/math/function/text.rb +6 -5
- data/lib/plurimath/math/function/tilde.rb +22 -4
- data/lib/plurimath/math/function/tr.rb +2 -2
- data/lib/plurimath/math/function/ubrace.rb +23 -23
- data/lib/plurimath/math/function/ul.rb +50 -20
- data/lib/plurimath/math/function/unary_function.rb +7 -5
- data/lib/plurimath/math/function/underover.rb +10 -5
- data/lib/plurimath/math/function/underset.rb +8 -3
- data/lib/plurimath/math/function/vec.rb +20 -5
- data/lib/plurimath/math/number.rb +6 -2
- data/lib/plurimath/math/symbol.rb +6 -2
- data/lib/plurimath/math.rb +1 -0
- data/lib/plurimath/mathml/constants.rb +9 -1
- data/lib/plurimath/mathml/parser.rb +3 -1
- data/lib/plurimath/mathml/transform.rb +51 -22
- data/lib/plurimath/omml/parser.rb +24 -1
- data/lib/plurimath/omml/transform.rb +43 -36
- data/lib/plurimath/utility.rb +114 -9
- data/lib/plurimath/version.rb +1 -1
- metadata +8 -2
@@ -10,10 +10,11 @@ module Plurimath
|
|
10
10
|
rule(e: sequence(:e)) { e.flatten.compact }
|
11
11
|
|
12
12
|
rule(val: simple(:val)) { val }
|
13
|
+
rule(scr: simple(:scr)) { scr }
|
14
|
+
rule(sty: simple(:sty)) { sty }
|
13
15
|
rule(dPr: subtree(:dpr)) { dpr }
|
14
16
|
rule(num: subtree(:num)) { num }
|
15
17
|
rule(den: subtree(:den)) { den }
|
16
|
-
rule(rPr: subtree(:rPr)) { nil }
|
17
18
|
rule(fPr: subtree(:fPr)) { nil }
|
18
19
|
rule(mpr: subtree(:mpr)) { nil }
|
19
20
|
rule(mPr: subtree(:mPr)) { nil }
|
@@ -66,12 +67,17 @@ module Plurimath
|
|
66
67
|
end
|
67
68
|
|
68
69
|
rule(r: subtree(:r)) do
|
69
|
-
|
70
|
+
flatten_row = r&.flatten&.compact
|
71
|
+
if flatten_row.empty?
|
70
72
|
nil
|
71
|
-
|
72
|
-
|
73
|
-
|
73
|
+
elsif flatten_row.length > 1 && !flatten_row.first.is_a?(Math::Core)
|
74
|
+
font = flatten_row.shift
|
75
|
+
font.new(
|
76
|
+
Utility.filter_values(flatten_row),
|
77
|
+
Utility::OMML_FONTS.invert[font].to_s,
|
74
78
|
)
|
79
|
+
else
|
80
|
+
Utility.filter_values(flatten_row)
|
75
81
|
end
|
76
82
|
end
|
77
83
|
|
@@ -85,15 +91,15 @@ module Plurimath
|
|
85
91
|
if t.empty?
|
86
92
|
Math::Function::Text.new
|
87
93
|
else
|
88
|
-
t&.compact&.empty? ? [nil] : Utility.
|
94
|
+
t&.compact&.empty? ? [nil] : Utility.mathml_unary_classes(t, omml: true)
|
89
95
|
end
|
90
96
|
end
|
91
97
|
|
92
98
|
rule(d: subtree(:data)) do
|
93
|
-
fenced = data.flatten
|
94
|
-
open_paren = fenced.shift if fenced
|
95
|
-
close_paren = fenced.shift if fenced
|
96
|
-
fenced_value = fenced
|
99
|
+
fenced = data.flatten
|
100
|
+
open_paren = fenced.shift if fenced&.first&.class_name == "symbol"
|
101
|
+
close_paren = fenced.shift if fenced&.first&.class_name == "symbol"
|
102
|
+
fenced_value = fenced.compact
|
97
103
|
Math::Function::Fenced.new(
|
98
104
|
open_paren,
|
99
105
|
fenced_value,
|
@@ -111,6 +117,12 @@ module Plurimath
|
|
111
117
|
Math::Function::Tr.new(row)
|
112
118
|
end
|
113
119
|
|
120
|
+
rule(rPr: subtree(:rpr)) do
|
121
|
+
if rpr.is_a?(Array)
|
122
|
+
Utility::OMML_FONTS[rpr.join("-").to_sym]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
114
126
|
rule(lim: sequence(:lim)) do
|
115
127
|
if lim.any?(String)
|
116
128
|
Utility.text_classes(lim)
|
@@ -122,23 +134,18 @@ module Plurimath
|
|
122
134
|
rule(acc: subtree(:acc)) do
|
123
135
|
acc_value = acc.flatten.compact
|
124
136
|
chr = Utility.find_pos_chr(acc_value, :chr)
|
125
|
-
chr_value = chr ? chr[:chr] :
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
137
|
+
chr_value = chr ? chr[:chr] : Math::Function::Hat.new
|
138
|
+
index = acc_value.index { |d| d[:chr] }
|
139
|
+
acc_value[index] = chr_value
|
140
|
+
Utility.binary_function_classes(acc_value)
|
141
|
+
acc_value.first.parameter_two = { accent: true }
|
142
|
+
acc_value.first
|
130
143
|
end
|
131
144
|
|
132
145
|
rule(func: subtree(:func)) do
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
class_object.new(func_name.last)
|
137
|
-
else
|
138
|
-
Math::Formula.new(
|
139
|
-
func_name,
|
140
|
-
)
|
141
|
-
end
|
146
|
+
Utility.filter_values(
|
147
|
+
Utility.populate_function_classes(func),
|
148
|
+
)
|
142
149
|
end
|
143
150
|
|
144
151
|
rule(nary: subtree(:nary)) do
|
@@ -168,11 +175,12 @@ module Plurimath
|
|
168
175
|
end
|
169
176
|
|
170
177
|
rule(sSubSup: subtree(:sSubSup)) do
|
178
|
+
function_classes = [Math::Formula, Math::Function::FontStyle]
|
171
179
|
subsup = sSubSup.flatten.compact
|
172
180
|
subsup.each_with_index do |object, ind|
|
173
181
|
subsup[ind] = Utility.mathml_unary_classes([object]) if object.is_a?(String)
|
174
182
|
end
|
175
|
-
if
|
183
|
+
if Utility.valid_class(subsup[0])
|
176
184
|
Utility.get_class(
|
177
185
|
subsup[0].extract_class_from_text,
|
178
186
|
).new(
|
@@ -217,8 +225,8 @@ module Plurimath
|
|
217
225
|
)
|
218
226
|
end
|
219
227
|
|
220
|
-
rule(limUpp: subtree(:
|
221
|
-
lim_values =
|
228
|
+
rule(limUpp: subtree(:lim)) do
|
229
|
+
lim_values = lim.flatten.compact
|
222
230
|
first_value = lim_values[0]
|
223
231
|
Math::Function::Overset.new(
|
224
232
|
first_value,
|
@@ -227,9 +235,13 @@ module Plurimath
|
|
227
235
|
end
|
228
236
|
|
229
237
|
rule(limLow: subtree(:lim)) do
|
238
|
+
flatten_lim = lim.flatten.compact
|
239
|
+
second_value = Utility.filter_values(lim[2])
|
240
|
+
unicode = Mathml::Constants::UNICODE_SYMBOLS.invert[second_value.class_name]
|
241
|
+
second_value = unicode ? Math::Symbol.new(unicode.to_s) : second_value
|
230
242
|
Math::Function::Underset.new(
|
231
243
|
Utility.filter_values(lim[1]),
|
232
|
-
|
244
|
+
second_value,
|
233
245
|
)
|
234
246
|
end
|
235
247
|
|
@@ -241,14 +253,9 @@ module Plurimath
|
|
241
253
|
end
|
242
254
|
|
243
255
|
rule(bar: subtree(:bar)) do
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
Math::Function::Bar
|
248
|
-
else
|
249
|
-
Math::Function::Ul
|
250
|
-
end
|
251
|
-
class_name.new(barpr.last)
|
256
|
+
flatten_bar = bar.flatten.compact
|
257
|
+
attrs = { accent: false }
|
258
|
+
Math::Function::Bar.new(flatten_bar.last, attrs)
|
252
259
|
end
|
253
260
|
|
254
261
|
rule(sPre: subtree(:spre)) do
|
data/lib/plurimath/utility.rb
CHANGED
@@ -72,6 +72,22 @@ module Plurimath
|
|
72
72
|
max
|
73
73
|
min
|
74
74
|
].freeze
|
75
|
+
OMML_FONTS = {
|
76
|
+
"sans-serif-bi": Math::Function::FontStyle::SansSerifBoldItalic,
|
77
|
+
"sans-serif-i": Math::Function::FontStyle::SansSerifItalic,
|
78
|
+
"sans-serif-b": Math::Function::FontStyle::BoldSansSerif,
|
79
|
+
"double-struck": Math::Function::FontStyle::DoubleStruck,
|
80
|
+
"sans-serif-p": Math::Function::FontStyle::SansSerif,
|
81
|
+
"fraktur-p": Math::Function::FontStyle::Fraktur,
|
82
|
+
"fraktur-b": Math::Function::FontStyle::BoldFraktur,
|
83
|
+
"script-b": Math::Function::FontStyle::BoldScript,
|
84
|
+
"monospace": Math::Function::FontStyle::Monospace,
|
85
|
+
"script-p": Math::Function::FontStyle::Script,
|
86
|
+
"bi": Math::Function::FontStyle::BoldItalic,
|
87
|
+
"p": Math::Function::FontStyle::Normal,
|
88
|
+
"i": Math::Function::FontStyle::Italic,
|
89
|
+
"b": Math::Function::FontStyle::Bold,
|
90
|
+
}.freeze
|
75
91
|
|
76
92
|
class << self
|
77
93
|
def organize_table(array, column_align: nil, options: nil)
|
@@ -271,7 +287,7 @@ module Plurimath
|
|
271
287
|
td_object
|
272
288
|
end
|
273
289
|
|
274
|
-
def mathml_unary_classes(text_array)
|
290
|
+
def mathml_unary_classes(text_array, omml: false)
|
275
291
|
return [] if text_array.empty?
|
276
292
|
|
277
293
|
compacted = text_array.compact
|
@@ -290,7 +306,7 @@ module Plurimath
|
|
290
306
|
elsif classes.any?(string&.strip)
|
291
307
|
get_class(string.strip).new
|
292
308
|
else
|
293
|
-
Math::Symbol.new(unicode)
|
309
|
+
omml ? text_classes(string) : Math::Symbol.new(unicode)
|
294
310
|
end
|
295
311
|
end
|
296
312
|
|
@@ -326,16 +342,35 @@ module Plurimath
|
|
326
342
|
attrs.nil? ? array_value : join_attr_value(attrs, array_value)
|
327
343
|
elsif attrs.nil?
|
328
344
|
value
|
329
|
-
elsif attrs.is_a?(
|
345
|
+
elsif attrs.is_a?(String) && ["solid", "none"].include?(attrs.split.first.downcase)
|
346
|
+
table_separator(attrs.split, value)
|
347
|
+
elsif attrs.is_a?(Hash) && (attrs.key?(:accent) || attrs.key?(:accentunder))
|
348
|
+
attr_is_accent(attrs, value)
|
349
|
+
elsif attrs.is_a?(Math::Core)
|
350
|
+
attr_is_function(attrs, value)
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
def attr_is_accent(attrs, value)
|
355
|
+
value.last.parameter_one = value.shift if value.length > 1
|
356
|
+
if value.last.is_a?(Math::Function::BinaryFunction)
|
357
|
+
value.last.parameter_two = attrs.transform_values { |v| YAML.load(v) }
|
358
|
+
end
|
359
|
+
value
|
360
|
+
end
|
361
|
+
|
362
|
+
def attr_is_function(attrs, value)
|
363
|
+
case attrs
|
364
|
+
when Math::Function::Menclose
|
330
365
|
attrs.parameter_two = filter_values(value)
|
331
366
|
attrs
|
332
|
-
|
367
|
+
when Math::Function::Fenced
|
333
368
|
attrs.parameter_two = value.compact
|
334
369
|
attrs
|
335
|
-
|
370
|
+
when Math::Function::FontStyle
|
336
371
|
attrs.parameter_one = filter_values(value)
|
337
372
|
attrs
|
338
|
-
|
373
|
+
when Math::Function::Color
|
339
374
|
color_value = filter_values(value)
|
340
375
|
if attrs.parameter_two
|
341
376
|
attrs.parameter_two.parameter_one = color_value
|
@@ -343,8 +378,6 @@ module Plurimath
|
|
343
378
|
attrs.parameter_two = color_value
|
344
379
|
end
|
345
380
|
attrs
|
346
|
-
elsif ["solid", "none"].include?(attrs.split.first.downcase)
|
347
|
-
table_separator(attrs.split, value)
|
348
381
|
end
|
349
382
|
end
|
350
383
|
|
@@ -426,7 +459,79 @@ module Plurimath
|
|
426
459
|
|
427
460
|
def valid_class(object)
|
428
461
|
text = object.extract_class_from_text
|
429
|
-
Asciimath::Constants::SUB_SUP_CLASSES.include?(text)
|
462
|
+
(object.extractable? && Asciimath::Constants::SUB_SUP_CLASSES.include?(text)) ||
|
463
|
+
Latex::Constants::SYMBOLS[text.to_sym] == :power_base
|
464
|
+
end
|
465
|
+
|
466
|
+
def mrow_left_right(mrow = [])
|
467
|
+
object = mrow.first
|
468
|
+
!(
|
469
|
+
(
|
470
|
+
(
|
471
|
+
object.is_a?(Math::Function::TernaryFunction) && object.any_value_exist?
|
472
|
+
) &&
|
473
|
+
mrow.length <= 2
|
474
|
+
) ||
|
475
|
+
object.is_a?(Math::Function::UnaryFunction) && mrow.length == 1
|
476
|
+
)
|
477
|
+
end
|
478
|
+
|
479
|
+
def populate_function_classes(mrow = [])
|
480
|
+
flatten_mrow = mrow.flatten.compact
|
481
|
+
unary_function_classes(flatten_mrow)
|
482
|
+
binary_function_classes(flatten_mrow)
|
483
|
+
ternary_function_classes(flatten_mrow)
|
484
|
+
flatten_mrow
|
485
|
+
end
|
486
|
+
|
487
|
+
def binary_function_classes(mrow, under: false)
|
488
|
+
binary_class = Math::Function::BinaryFunction
|
489
|
+
mrow.each_with_index do |object, ind|
|
490
|
+
mrow[ind] = mathml_unary_classes([object]) if object.is_a?(String)
|
491
|
+
object = mrow[ind]
|
492
|
+
next unless object.is_a?(binary_class)
|
493
|
+
|
494
|
+
if object.is_a?(Math::Function::Mod)
|
495
|
+
next unless mrow.length >= 1
|
496
|
+
|
497
|
+
object.parameter_one = mrow.delete_at(ind - 1) unless ind == 0
|
498
|
+
object.parameter_two = mrow.delete_at(ind)
|
499
|
+
elsif Mathml::Constants::UNICODE_SYMBOLS.invert[object.class_name] && mrow.length > 1
|
500
|
+
next if object.parameter_one || mrow.length > 2
|
501
|
+
next object.parameter_one = mrow.delete_at(ind - 1) if under && ind <= 1
|
502
|
+
|
503
|
+
object.parameter_one = mrow.delete_at(ind + 1)
|
504
|
+
end
|
505
|
+
end
|
506
|
+
end
|
507
|
+
|
508
|
+
def unary_function_classes(mrow)
|
509
|
+
unary_class = Math::Function::UnaryFunction
|
510
|
+
if mrow.any?(String) || mrow.any?(unary_class)
|
511
|
+
mrow.each_with_index do |object, ind|
|
512
|
+
mrow[ind] = mathml_unary_classes([object]) if object.is_a?(String)
|
513
|
+
next unless object.is_a?(unary_class)
|
514
|
+
next if object.is_a?(Math::Function::Text)
|
515
|
+
next if object.parameter_one || mrow[ind + 1].nil?
|
516
|
+
|
517
|
+
object.parameter_one = mrow.delete_at(ind + 1)
|
518
|
+
end
|
519
|
+
end
|
520
|
+
end
|
521
|
+
|
522
|
+
def ternary_function_classes(mrow)
|
523
|
+
ternary_class = Math::Function::TernaryFunction
|
524
|
+
if mrow.any?(ternary_class) && mrow.length > 1
|
525
|
+
mrow.each_with_index do |object, ind|
|
526
|
+
if object.is_a?(ternary_class)
|
527
|
+
next if [Math::Function::Fenced, Math::Function::Multiscript].include?(object.class)
|
528
|
+
next unless object.parameter_one || object.parameter_two
|
529
|
+
next if object.parameter_three
|
530
|
+
|
531
|
+
object.parameter_three = filter_values(mrow.delete_at(ind + 1))
|
532
|
+
end
|
533
|
+
end
|
534
|
+
end
|
430
535
|
end
|
431
536
|
end
|
432
537
|
end
|
data/lib/plurimath/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plurimath
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parslet
|
@@ -104,12 +104,18 @@ files:
|
|
104
104
|
- lib/plurimath/math/function/fenced.rb
|
105
105
|
- lib/plurimath/math/function/floor.rb
|
106
106
|
- lib/plurimath/math/function/font_style.rb
|
107
|
+
- lib/plurimath/math/function/font_style/bold-fraktur.rb
|
108
|
+
- lib/plurimath/math/function/font_style/bold-italic.rb
|
109
|
+
- lib/plurimath/math/function/font_style/bold-sans-serif.rb
|
110
|
+
- lib/plurimath/math/function/font_style/bold-script.rb
|
107
111
|
- lib/plurimath/math/function/font_style/bold.rb
|
108
112
|
- lib/plurimath/math/function/font_style/double_struck.rb
|
109
113
|
- lib/plurimath/math/function/font_style/fraktur.rb
|
110
114
|
- lib/plurimath/math/function/font_style/italic.rb
|
111
115
|
- lib/plurimath/math/function/font_style/monospace.rb
|
112
116
|
- lib/plurimath/math/function/font_style/normal.rb
|
117
|
+
- lib/plurimath/math/function/font_style/sans-serif-bold-italic.rb
|
118
|
+
- lib/plurimath/math/function/font_style/sans-serif-italic.rb
|
113
119
|
- lib/plurimath/math/function/font_style/sans-serif.rb
|
114
120
|
- lib/plurimath/math/function/font_style/script.rb
|
115
121
|
- lib/plurimath/math/function/frac.rb
|