plurimath 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/plurimath/asciimath/constants.rb +5 -3
- data/lib/plurimath/asciimath/parse.rb +41 -28
- data/lib/plurimath/asciimath/transform.rb +111 -0
- data/lib/plurimath/latex/constants.rb +2 -2
- data/lib/plurimath/latex/parse.rb +3 -0
- data/lib/plurimath/latex/transform.rb +37 -0
- data/lib/plurimath/math/core.rb +43 -0
- data/lib/plurimath/math/formula.rb +33 -25
- data/lib/plurimath/math/function/abs.rb +19 -0
- data/lib/plurimath/math/function/arccos.rb +3 -0
- data/lib/plurimath/math/function/arcsin.rb +3 -0
- data/lib/plurimath/math/function/arctan.rb +3 -0
- data/lib/plurimath/math/function/bar.rb +2 -1
- data/lib/plurimath/math/function/base.rb +5 -7
- data/lib/plurimath/math/function/binary_function.rb +11 -61
- data/lib/plurimath/math/function/cos.rb +3 -0
- data/lib/plurimath/math/function/cosh.rb +3 -0
- data/lib/plurimath/math/function/cot.rb +3 -0
- data/lib/plurimath/math/function/coth.rb +3 -0
- data/lib/plurimath/math/function/csc.rb +3 -0
- data/lib/plurimath/math/function/csch.rb +3 -0
- data/lib/plurimath/math/function/ddot.rb +13 -0
- data/lib/plurimath/math/function/deg.rb +3 -0
- data/lib/plurimath/math/function/det.rb +3 -0
- data/lib/plurimath/math/function/dim.rb +3 -0
- data/lib/plurimath/math/function/exp.rb +3 -0
- data/lib/plurimath/math/function/fenced.rb +9 -21
- data/lib/plurimath/math/function/font_style.rb +7 -1
- data/lib/plurimath/math/function/frac.rb +5 -7
- data/lib/plurimath/math/function/gcd.rb +3 -0
- data/lib/plurimath/math/function/glb.rb +3 -0
- data/lib/plurimath/math/function/hat.rb +4 -0
- data/lib/plurimath/math/function/int.rb +36 -6
- data/lib/plurimath/math/function/left.rb +10 -3
- data/lib/plurimath/math/function/lg.rb +3 -0
- data/lib/plurimath/math/function/lim.rb +5 -14
- data/lib/plurimath/math/function/limits.rb +8 -0
- data/lib/plurimath/math/function/ln.rb +3 -0
- data/lib/plurimath/math/function/log.rb +40 -22
- data/lib/plurimath/math/function/lub.rb +3 -0
- data/lib/plurimath/math/function/max.rb +3 -0
- data/lib/plurimath/math/function/mbox.rb +1 -3
- data/lib/plurimath/math/function/menclose.rb +2 -1
- data/lib/plurimath/math/function/min.rb +3 -0
- data/lib/plurimath/math/function/msgroup.rb +1 -4
- data/lib/plurimath/math/function/multiscript.rb +4 -9
- data/lib/plurimath/math/function/obrace.rb +8 -0
- data/lib/plurimath/math/function/overset.rb +3 -16
- data/lib/plurimath/math/function/power.rb +5 -8
- data/lib/plurimath/math/function/power_base.rb +9 -39
- data/lib/plurimath/math/function/prod.rb +34 -4
- data/lib/plurimath/math/function/right.rb +10 -3
- data/lib/plurimath/math/function/root.rb +6 -4
- data/lib/plurimath/math/function/rule.rb +1 -1
- data/lib/plurimath/math/function/sec.rb +3 -0
- data/lib/plurimath/math/function/sech.rb +3 -0
- data/lib/plurimath/math/function/sin.rb +3 -0
- data/lib/plurimath/math/function/sinh.rb +3 -0
- data/lib/plurimath/math/function/sqrt.rb +4 -3
- data/lib/plurimath/math/function/sum.rb +31 -27
- data/lib/plurimath/math/function/table.rb +48 -6
- data/lib/plurimath/math/function/tan.rb +3 -0
- data/lib/plurimath/math/function/tanh.rb +3 -0
- data/lib/plurimath/math/function/td.rb +4 -1
- data/lib/plurimath/math/function/ternary_function.rb +34 -17
- data/lib/plurimath/math/function/text.rb +11 -0
- data/lib/plurimath/math/function/tr.rb +1 -0
- data/lib/plurimath/math/function/ubrace.rb +8 -0
- data/lib/plurimath/math/function/ul.rb +2 -1
- data/lib/plurimath/math/function/unary_function.rb +10 -9
- data/lib/plurimath/math/function/underover.rb +10 -27
- data/lib/plurimath/math/function/underset.rb +3 -16
- data/lib/plurimath/math/number.rb +17 -3
- data/lib/plurimath/math/symbol.rb +20 -2
- data/lib/plurimath/math.rb +1 -1
- data/lib/plurimath/mathml/parser.rb +9 -1
- data/lib/plurimath/mathml/transform.rb +21 -1
- data/lib/plurimath/omml/parser.rb +8 -1
- data/lib/plurimath/omml/transform.rb +27 -13
- data/lib/plurimath/utility.rb +18 -8
- data/lib/plurimath/version.rb +1 -1
- metadata +3 -3
- data/lib/plurimath/math/base.rb +0 -15
@@ -3,7 +3,7 @@
|
|
3
3
|
module Plurimath
|
4
4
|
module Math
|
5
5
|
module Function
|
6
|
-
class BinaryFunction
|
6
|
+
class BinaryFunction < Core
|
7
7
|
attr_accessor :parameter_one, :parameter_two
|
8
8
|
|
9
9
|
def initialize(parameter_one = nil, parameter_two = nil)
|
@@ -51,9 +51,9 @@ module Plurimath
|
|
51
51
|
|
52
52
|
def to_omml_without_math_tag
|
53
53
|
r_tag = Utility.ox_element("r", namespace: "m")
|
54
|
-
|
55
|
-
|
56
|
-
r_tag
|
54
|
+
Utility.update_nodes(r_tag, [parameter_one.insert_t_tag]) if parameter_one
|
55
|
+
Utility.update_nodes(r_tag, [parameter_two.insert_t_tag]) if parameter_two
|
56
|
+
[r_tag]
|
57
57
|
end
|
58
58
|
|
59
59
|
def class_name
|
@@ -62,79 +62,29 @@ module Plurimath
|
|
62
62
|
|
63
63
|
protected
|
64
64
|
|
65
|
-
def update_row_tag(tag, field)
|
66
|
-
first_value = field.to_omml_without_math_tag
|
67
|
-
first_value = if first_value.is_a?(String)
|
68
|
-
Utility.ox_element("t", namespace: "m") << first_value
|
69
|
-
end
|
70
|
-
Utility.update_nodes(
|
71
|
-
tag,
|
72
|
-
first_value.is_a?(Array) ? first_value : [first_value],
|
73
|
-
)
|
74
|
-
end
|
75
|
-
|
76
65
|
def latex_wrapped(field)
|
77
|
-
if validate_function_formula
|
66
|
+
if field.validate_function_formula
|
78
67
|
"{ \\left ( #{field.to_latex} \\right ) }"
|
79
68
|
else
|
80
69
|
"{#{field.to_latex}}"
|
81
70
|
end
|
82
71
|
end
|
83
72
|
|
84
|
-
def validate_function_formula(field)
|
85
|
-
unary_classes = (Utility::UNARY_CLASSES + ["obrace", "ubrace", "hat"])
|
86
|
-
if field.is_a?(Formula)
|
87
|
-
!(field.value.any?(Left) || field.value.any?(Right))
|
88
|
-
elsif unary_classes.include?(field.class_name)
|
89
|
-
false
|
90
|
-
elsif field.class.name.include?("Function") || field.is_a?(FontStyle)
|
91
|
-
!field.is_a?(Text)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def mathml_wrapped(field)
|
96
|
-
if validate_function_formula(field)
|
97
|
-
mrow_tag = Utility.ox_element("mrow")
|
98
|
-
open_paren = (Utility.ox_element("mo") << "(")
|
99
|
-
close_paren = (Utility.ox_element("mo") << ")")
|
100
|
-
Utility.update_nodes(
|
101
|
-
mrow_tag,
|
102
|
-
[
|
103
|
-
open_paren,
|
104
|
-
field.to_mathml_without_math_tag,
|
105
|
-
close_paren,
|
106
|
-
],
|
107
|
-
)
|
108
|
-
else
|
109
|
-
field.to_mathml_without_math_tag
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
73
|
def wrapped(field)
|
114
74
|
return "" unless field
|
115
75
|
|
116
76
|
"(#{field.to_asciimath})"
|
117
77
|
end
|
118
78
|
|
119
|
-
def asciimath_base_value(field)
|
120
|
-
if validate_function_formula(field)
|
121
|
-
"(#{field.to_asciimath})"
|
122
|
-
else
|
123
|
-
field.to_asciimath
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def latex_base_value(field)
|
128
|
-
if validate_function_formula(field)
|
129
|
-
"{ \\left ( #{field.to_latex} \\right ) }"
|
130
|
-
else
|
131
|
-
field.to_latex
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
79
|
def invert_unicode_symbols
|
136
80
|
Mathml::Constants::UNICODE_SYMBOLS.invert[class_name] || class_name
|
137
81
|
end
|
82
|
+
|
83
|
+
def empty_tag(wrapper_tag)
|
84
|
+
r_tag = Utility.ox_element("r", namespace: "m")
|
85
|
+
r_tag << (Utility.ox_element("t", namespace: "m") << "​")
|
86
|
+
wrapper_tag << r_tag
|
87
|
+
end
|
138
88
|
end
|
139
89
|
end
|
140
90
|
end
|
@@ -13,6 +13,19 @@ module Plurimath
|
|
13
13
|
mathml_value << second_value,
|
14
14
|
)
|
15
15
|
end
|
16
|
+
|
17
|
+
def to_omml_without_math_tag
|
18
|
+
acc_tag = Utility.ox_element("acc", namespace: "m")
|
19
|
+
acc_pr_tag = Utility.ox_element("accPr", namespace: "m")
|
20
|
+
acc_pr_tag << (Utility.ox_element("chr", namespace: "m", attributes: { "m:val": ".." }))
|
21
|
+
me = Utility.ox_element("e", namespace: "m")
|
22
|
+
Utility.update_nodes(me, omml_value)
|
23
|
+
Utility.update_nodes(
|
24
|
+
acc_tag,
|
25
|
+
[acc_pr_tag, me],
|
26
|
+
)
|
27
|
+
[acc_tag]
|
28
|
+
end
|
16
29
|
end
|
17
30
|
end
|
18
31
|
end
|
@@ -46,8 +46,15 @@ module Plurimath
|
|
46
46
|
dpr << Utility.pr_element("ctrl", true, namespace: "m")
|
47
47
|
Utility.update_nodes(
|
48
48
|
d,
|
49
|
-
[
|
49
|
+
[
|
50
|
+
dpr,
|
51
|
+
omml_parameter(
|
52
|
+
Formula.new(Array(parameter_two)),
|
53
|
+
tag_name: "e",
|
54
|
+
),
|
55
|
+
],
|
50
56
|
)
|
57
|
+
[d]
|
51
58
|
end
|
52
59
|
|
53
60
|
protected
|
@@ -64,18 +71,6 @@ module Plurimath
|
|
64
71
|
)
|
65
72
|
end
|
66
73
|
|
67
|
-
def second_value
|
68
|
-
class_names = ["number", "symbol"].freeze
|
69
|
-
parameter_two&.map do |object|
|
70
|
-
e_tag = Utility.ox_element("e", namespace: "m")
|
71
|
-
e_tag << if class_names.include?(object.class_name)
|
72
|
-
fenced_omml_value(object)
|
73
|
-
else
|
74
|
-
object&.to_omml_without_math_tag
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
74
|
def third_value(dpr)
|
80
75
|
third_value = parameter_three&.value
|
81
76
|
return dpr if third_value.nil? || third_value.empty?
|
@@ -88,18 +83,11 @@ module Plurimath
|
|
88
83
|
)
|
89
84
|
end
|
90
85
|
|
91
|
-
def fenced_omml_value(object)
|
92
|
-
r_tag = Utility.ox_element("r", namespace: "m")
|
93
|
-
t_tag = Utility.ox_element("t", namespace: "m")
|
94
|
-
t_tag << object&.value
|
95
|
-
r_tag << t_tag
|
96
|
-
end
|
97
|
-
|
98
86
|
def latex_paren(paren)
|
99
87
|
return "" if paren.nil? || paren.empty?
|
100
88
|
|
101
89
|
paren = %w[{ }].include?(paren) ? "\\#{paren}" : paren
|
102
|
-
paren = "\\#{Latex::Constants::UNICODE_SYMBOLS.invert[paren]}" if paren.to_s.match?(
|
90
|
+
paren = "\\#{Latex::Constants::UNICODE_SYMBOLS.invert[paren]}" if paren.to_s.match?(/&#x.{0,4};/)
|
103
91
|
paren.to_s
|
104
92
|
end
|
105
93
|
|
@@ -22,7 +22,9 @@ module Plurimath
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def to_omml_without_math_tag
|
25
|
-
|
25
|
+
r_tag = Utility.ox_element("r", namespace: "m")
|
26
|
+
Utility.update_nodes(r_tag, parameter_one&.insert_t_tag)
|
27
|
+
[r_tag]
|
26
28
|
end
|
27
29
|
|
28
30
|
def to_html
|
@@ -32,6 +34,10 @@ module Plurimath
|
|
32
34
|
def to_latex
|
33
35
|
parameter_one&.to_latex
|
34
36
|
end
|
37
|
+
|
38
|
+
def validate_function_formula
|
39
|
+
true
|
40
|
+
end
|
35
41
|
end
|
36
42
|
end
|
37
43
|
end
|
@@ -34,18 +34,16 @@ module Plurimath
|
|
34
34
|
def to_omml_without_math_tag
|
35
35
|
f_element = Utility.ox_element("f", namespace: "m")
|
36
36
|
fpr_element = Utility.ox_element("fPr", namespace: "m")
|
37
|
-
|
38
|
-
num_element << parameter_one.to_omml_without_math_tag if parameter_one
|
39
|
-
den_element = Utility.ox_element("den", namespace: "m")
|
40
|
-
den_element << parameter_two.to_omml_without_math_tag if parameter_two
|
37
|
+
fpr_element << Utility.pr_element("ctrl", true, namespace: "m")
|
41
38
|
Utility.update_nodes(
|
42
39
|
f_element,
|
43
40
|
[
|
44
|
-
fpr_element
|
45
|
-
|
46
|
-
|
41
|
+
fpr_element,
|
42
|
+
omml_parameter(parameter_one, tag_name: "num"),
|
43
|
+
omml_parameter(parameter_two, tag_name: "den"),
|
47
44
|
],
|
48
45
|
)
|
46
|
+
[f_element]
|
49
47
|
end
|
50
48
|
end
|
51
49
|
end
|
@@ -1,36 +1,66 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "
|
3
|
+
require_relative "ternary_function"
|
4
4
|
|
5
5
|
module Plurimath
|
6
6
|
module Math
|
7
7
|
module Function
|
8
|
-
class Int <
|
8
|
+
class Int < TernaryFunction
|
9
9
|
def to_asciimath
|
10
10
|
first_value = "_#{wrapped(parameter_one)}" if parameter_one
|
11
11
|
second_value = "^#{wrapped(parameter_two)}" if parameter_two
|
12
|
-
"int#{first_value}#{second_value}"
|
12
|
+
"int#{first_value}#{second_value} #{parameter_three&.to_asciimath}".strip
|
13
13
|
end
|
14
14
|
|
15
15
|
def to_latex
|
16
16
|
first_value = "_#{latex_wrapped(parameter_one)}" if parameter_one
|
17
17
|
second_value = "^#{latex_wrapped(parameter_two)}" if parameter_two
|
18
|
-
"\\#{class_name}#{first_value}#{second_value}"
|
18
|
+
"\\#{class_name}#{first_value}#{second_value} #{parameter_three&.to_latex}".strip
|
19
19
|
end
|
20
20
|
|
21
21
|
def to_mathml_without_math_tag
|
22
|
-
|
22
|
+
msubsup_tag = Utility.ox_element("msubsup")
|
23
23
|
mo_tag = Utility.ox_element("mo") << invert_unicode_symbols.to_s
|
24
24
|
first_value = parameter_one&.to_mathml_without_math_tag if parameter_one
|
25
25
|
second_value = parameter_two&.to_mathml_without_math_tag if parameter_two
|
26
26
|
Utility.update_nodes(
|
27
|
-
|
27
|
+
msubsup_tag,
|
28
28
|
[
|
29
29
|
mo_tag,
|
30
30
|
first_value,
|
31
31
|
second_value,
|
32
32
|
],
|
33
33
|
)
|
34
|
+
return msubsup_tag if parameter_three.nil?
|
35
|
+
|
36
|
+
Utility.update_nodes(
|
37
|
+
Utility.ox_element("mrow"),
|
38
|
+
[
|
39
|
+
msubsup_tag,
|
40
|
+
parameter_three&.to_mathml_without_math_tag,
|
41
|
+
].flatten.compact,
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_omml_without_math_tag
|
46
|
+
if all_values_exist?
|
47
|
+
nary = Utility.ox_element("nary", namespace: "m")
|
48
|
+
Utility.update_nodes(
|
49
|
+
nary,
|
50
|
+
[
|
51
|
+
narypr("∫", function_type: "subSup"),
|
52
|
+
omml_parameter(parameter_one, tag_name: "sub"),
|
53
|
+
omml_parameter(parameter_two, tag_name: "sup"),
|
54
|
+
omml_parameter(parameter_three, tag_name: "e"),
|
55
|
+
],
|
56
|
+
)
|
57
|
+
[nary]
|
58
|
+
else
|
59
|
+
r_tag = Utility.ox_element("r", namespace: "m")
|
60
|
+
t_tag = Utility.ox_element("t", namespace: "m")
|
61
|
+
r_tag << (t_tag << "∫")
|
62
|
+
[r_tag]
|
63
|
+
end
|
34
64
|
end
|
35
65
|
end
|
36
66
|
end
|
@@ -17,9 +17,12 @@ module Plurimath
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def to_omml_without_math_tag
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
mr = Utility.ox_element("m:r")
|
21
|
+
if parameter_one
|
22
|
+
mt = Utility.ox_element("m:t")
|
23
|
+
mr << (mt << parameter_one)
|
24
|
+
end
|
25
|
+
[mr]
|
23
26
|
end
|
24
27
|
|
25
28
|
def to_html
|
@@ -30,6 +33,10 @@ module Plurimath
|
|
30
33
|
"\\left #{Latex::Constants::LEFT_RIGHT_PARENTHESIS.invert[parameter_one] || '.'}"
|
31
34
|
end
|
32
35
|
|
36
|
+
def validate_function_formula
|
37
|
+
false
|
38
|
+
end
|
39
|
+
|
33
40
|
protected
|
34
41
|
|
35
42
|
def left_paren
|
@@ -40,20 +40,11 @@ module Plurimath
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def to_omml_without_math_tag
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
lim = Utility.ox_element("lim", namespace: "m")
|
49
|
-
lim << parameter_two&.to_omml_without_math_tag if parameter_two
|
50
|
-
Utility.update_nodes(
|
51
|
-
limupp,
|
52
|
-
[
|
53
|
-
e_tag,
|
54
|
-
lim,
|
55
|
-
],
|
56
|
-
)
|
43
|
+
lim = Symbol.new("lim")
|
44
|
+
overset = Overset.new(lim, parameter_two)
|
45
|
+
return overset unless parameter_one
|
46
|
+
|
47
|
+
Underset.new(overset, parameter_one)&.to_omml_without_math_tag
|
57
48
|
end
|
58
49
|
end
|
59
50
|
end
|
@@ -21,6 +21,14 @@ module Plurimath
|
|
21
21
|
third_value = "{#{parameter_three.to_latex}}" if parameter_three
|
22
22
|
"#{first_value}\\#{class_name}_#{second_value}^#{third_value}"
|
23
23
|
end
|
24
|
+
|
25
|
+
def to_omml_without_math_tag
|
26
|
+
value_array = []
|
27
|
+
value_array << parameter_one.insert_t_tag if parameter_one
|
28
|
+
value_array << parameter_two.insert_t_tag if parameter_two
|
29
|
+
value_array << parameter_three.insert_t_tag if parameter_three
|
30
|
+
value_array
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
26
34
|
end
|
@@ -25,22 +25,21 @@ module Plurimath
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def to_omml_without_math_tag
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
rpr = Utility.rpr_element
|
34
|
-
mt = Utility.ox_element("t", namespace: "m") << class_name
|
35
|
-
fname << Utility.update_nodes(mr, [rpr, mt])
|
36
|
-
log_values = [first_value, second_value].flatten.compact
|
28
|
+
ssubsup = Utility.ox_element("sSubSup", namespace: "m")
|
29
|
+
ssubsuppr = Utility.ox_element("sSubSupPr", namespace: "m")
|
30
|
+
ssubsuppr << hide_tags(
|
31
|
+
Utility.pr_element("ctrl", true, namespace: "m"),
|
32
|
+
)
|
37
33
|
Utility.update_nodes(
|
38
|
-
|
34
|
+
ssubsup,
|
39
35
|
[
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
ssubsuppr,
|
37
|
+
e_parameter,
|
38
|
+
omml_parameter(parameter_one, tag_name: "sub"),
|
39
|
+
omml_parameter(parameter_two, tag_name: "sup"),
|
40
|
+
],
|
43
41
|
)
|
42
|
+
[ssubsup]
|
44
43
|
end
|
45
44
|
|
46
45
|
def to_mathml_without_math_tag
|
@@ -61,18 +60,37 @@ module Plurimath
|
|
61
60
|
|
62
61
|
protected
|
63
62
|
|
64
|
-
def
|
65
|
-
|
66
|
-
|
67
|
-
first_value = parameter_one.to_omml_without_math_tag
|
68
|
-
Utility.ox_element("e", namespace: "m") << first_value
|
63
|
+
def e_parameter
|
64
|
+
e_tag = Utility.ox_element("e", namespace: "m")
|
65
|
+
e_tag << rpr_tag
|
69
66
|
end
|
70
67
|
|
71
|
-
def
|
72
|
-
|
68
|
+
def hide_tags(nar)
|
69
|
+
attr = { "m:val": "1" }
|
70
|
+
if parameter_one.nil?
|
71
|
+
nar << Utility.ox_element(
|
72
|
+
"subHide",
|
73
|
+
namespace: "m",
|
74
|
+
attributes: attr,
|
75
|
+
)
|
76
|
+
end
|
77
|
+
if parameter_two.nil?
|
78
|
+
nar << Utility.ox_element(
|
79
|
+
"supHide",
|
80
|
+
namespace: "m",
|
81
|
+
attributes: attr,
|
82
|
+
)
|
83
|
+
end
|
84
|
+
nar
|
85
|
+
end
|
73
86
|
|
74
|
-
|
75
|
-
|
87
|
+
def rpr_tag
|
88
|
+
sty_atrs = { "m:val": "p" }
|
89
|
+
sty_tag = Utility.ox_element("sty", attributes: sty_atrs, namespace: "m")
|
90
|
+
rpr_tag = (Utility.ox_element("rPr", namespace: "m") << sty_tag)
|
91
|
+
r_tag = Utility.ox_element("r", namespace: "m")
|
92
|
+
t_tag = (Utility.ox_element("t", namespace: "m") << "log")
|
93
|
+
Utility.update_nodes(r_tag, [rpr_tag, t_tag])
|
76
94
|
end
|
77
95
|
end
|
78
96
|
end
|
@@ -31,7 +31,7 @@ module Plurimath
|
|
31
31
|
borderpr = Utility.ox_element("borderBoxPr", namespace: "m")
|
32
32
|
borderpr << Utility.pr_element("ctrl", true, namespace: "m")
|
33
33
|
me = Utility.ox_element("e", namespace: "m")
|
34
|
-
me
|
34
|
+
Utility.update_nodes(me, Array(parameter_two.to_omml_without_math_tag)) if parameter_two
|
35
35
|
Utility.update_nodes(
|
36
36
|
borderbox,
|
37
37
|
[
|
@@ -39,6 +39,7 @@ module Plurimath
|
|
39
39
|
me,
|
40
40
|
],
|
41
41
|
)
|
42
|
+
[borderbox]
|
42
43
|
end
|
43
44
|
end
|
44
45
|
end
|