plurimath 0.2.0 → 0.2.2
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/.github/workflows/rake.yml +13 -0
- data/.github/workflows/release.yml +22 -0
- data/.gitignore +1 -0
- data/.hound.yml +5 -0
- data/.rubocop.yml +8 -0
- data/AsciiMath-Supported-Data.adoc +2000 -0
- data/Gemfile +3 -0
- data/Latex-Supported-Data.adoc +1879 -0
- data/MathML-Supported-Data.adoc +287 -0
- data/README.adoc +96 -0
- data/lib/plurimath/asciimath/constants.rb +267 -229
- data/lib/plurimath/asciimath/parse.rb +125 -26
- data/lib/plurimath/asciimath/parser.rb +6 -3
- data/lib/plurimath/asciimath/transform.rb +1135 -208
- data/lib/plurimath/asciimath.rb +1 -1
- data/lib/plurimath/html/constants.rb +50 -0
- data/lib/plurimath/html/parse.rb +149 -0
- data/lib/plurimath/html/parser.rb +26 -0
- data/lib/plurimath/html/transform.rb +363 -0
- data/lib/plurimath/html.rb +1 -1
- data/lib/plurimath/latex/constants.rb +3729 -1906
- data/lib/plurimath/latex/parse.rb +167 -51
- data/lib/plurimath/latex/parser.rb +12 -4
- data/lib/plurimath/latex/transform.rb +598 -183
- data/lib/plurimath/math/base.rb +15 -0
- data/lib/plurimath/math/formula.rb +96 -11
- data/lib/plurimath/math/function/bar.rb +34 -0
- data/lib/plurimath/math/function/base.rb +32 -5
- data/lib/plurimath/math/function/binary_function.rb +104 -17
- data/lib/plurimath/math/function/cancel.rb +8 -0
- data/lib/plurimath/math/function/ceil.rb +3 -0
- data/lib/plurimath/math/function/color.rb +16 -6
- data/lib/plurimath/math/function/f.rb +8 -0
- data/lib/plurimath/math/function/fenced.rb +95 -3
- data/lib/plurimath/math/function/floor.rb +15 -0
- data/lib/plurimath/math/function/font_style/bold.rb +37 -0
- data/lib/plurimath/math/function/font_style/double_struck.rb +37 -0
- data/lib/plurimath/math/function/font_style/fraktur.rb +37 -0
- data/lib/plurimath/math/function/font_style/italic.rb +37 -0
- data/lib/plurimath/math/function/font_style/monospace.rb +37 -0
- data/lib/plurimath/math/function/font_style/normal.rb +37 -0
- data/lib/plurimath/math/function/font_style/sans-serif.rb +37 -0
- data/lib/plurimath/math/function/font_style/script.rb +37 -0
- data/lib/plurimath/math/function/font_style.rb +18 -25
- data/lib/plurimath/math/function/frac.rb +35 -5
- data/lib/plurimath/math/function/g.rb +7 -0
- data/lib/plurimath/math/function/hat.rb +12 -0
- data/lib/plurimath/math/function/inf.rb +21 -1
- data/lib/plurimath/math/function/int.rb +23 -2
- data/lib/plurimath/math/function/left.rb +25 -4
- data/lib/plurimath/math/function/lim.rb +40 -2
- data/lib/plurimath/math/function/limits.rb +8 -0
- data/lib/plurimath/math/function/log.rb +61 -4
- data/lib/plurimath/math/function/longdiv.rb +12 -0
- data/lib/plurimath/math/function/mbox.rb +31 -0
- data/lib/plurimath/math/function/menclose.rb +46 -0
- data/lib/plurimath/math/function/merror.rb +12 -0
- data/lib/plurimath/math/function/mod.rb +25 -4
- data/lib/plurimath/math/function/msgroup.rb +37 -0
- data/lib/plurimath/math/function/msline.rb +12 -0
- data/lib/plurimath/math/function/multiscript.rb +30 -0
- data/lib/plurimath/math/function/norm.rb +18 -1
- data/lib/plurimath/math/function/obrace.rb +17 -0
- data/lib/plurimath/math/function/oint.rb +2 -2
- data/lib/plurimath/math/function/over.rb +36 -0
- data/lib/plurimath/math/function/overset.rb +36 -7
- data/lib/plurimath/math/function/phantom.rb +28 -0
- data/lib/plurimath/math/function/power.rb +33 -9
- data/lib/plurimath/math/function/power_base.rb +110 -5
- data/lib/plurimath/math/function/prod.rb +29 -2
- data/lib/plurimath/math/function/right.rb +44 -0
- data/lib/plurimath/math/function/root.rb +27 -4
- data/lib/plurimath/math/function/rule.rb +33 -0
- data/lib/plurimath/math/function/scarries.rb +12 -0
- data/lib/plurimath/math/function/scarry.rb +12 -0
- data/lib/plurimath/math/function/sqrt.rb +24 -2
- data/lib/plurimath/math/function/stackrel.rb +27 -0
- data/lib/plurimath/math/function/substack.rb +7 -1
- data/lib/plurimath/math/function/sum.rb +56 -2
- data/lib/plurimath/math/function/sup.rb +3 -0
- data/lib/plurimath/math/function/table/align.rb +24 -0
- data/lib/plurimath/math/function/table/array.rb +44 -0
- data/lib/plurimath/math/function/table/bmatrix.rb +37 -0
- data/lib/plurimath/math/function/table/matrix.rb +32 -0
- data/lib/plurimath/math/function/table/multline.rb +24 -0
- data/lib/plurimath/math/function/table/pmatrix.rb +24 -0
- data/lib/plurimath/math/function/table/split.rb +24 -0
- data/lib/plurimath/math/function/table/vmatrix.rb +24 -0
- data/lib/plurimath/math/function/table.rb +190 -20
- data/lib/plurimath/math/function/td.rb +27 -9
- data/lib/plurimath/math/function/ternary_function.rb +83 -8
- data/lib/plurimath/math/function/text.rb +45 -8
- data/lib/plurimath/math/function/tr.rb +28 -4
- data/lib/plurimath/math/function/ubrace.rb +17 -0
- data/lib/plurimath/math/function/ul.rb +29 -0
- data/lib/plurimath/math/function/unary_function.rb +85 -7
- data/lib/plurimath/math/function/underline.rb +12 -0
- data/lib/plurimath/math/function/underover.rb +107 -0
- data/lib/plurimath/math/function/underset.rb +39 -0
- data/lib/plurimath/math/function/vec.rb +10 -0
- data/lib/plurimath/math/function.rb +13 -2
- data/lib/plurimath/math/number.rb +11 -3
- data/lib/plurimath/math/symbol.rb +57 -9
- data/lib/plurimath/math/unicode.rb +11 -0
- data/lib/plurimath/math.rb +15 -6
- data/lib/plurimath/mathml/constants.rb +224 -179
- data/lib/plurimath/mathml/parser.rb +24 -7
- data/lib/plurimath/mathml/transform.rb +249 -148
- data/lib/plurimath/mathml.rb +1 -1
- data/lib/plurimath/omml/parser.rb +42 -0
- data/lib/plurimath/omml/transform.rb +278 -0
- data/lib/plurimath/omml.rb +1 -1
- data/lib/plurimath/unitsml.rb +4 -0
- data/lib/plurimath/utility.rb +395 -0
- data/lib/plurimath/version.rb +1 -1
- data/plurimath.gemspec +1 -0
- metadata +66 -9
- data/.github/workflows/test.yml +0 -36
- data/README.md +0 -40
- data/lib/plurimath/mathml/parse.rb +0 -63
|
@@ -7,15 +7,38 @@ module Plurimath
|
|
|
7
7
|
module Function
|
|
8
8
|
class Root < BinaryFunction
|
|
9
9
|
def to_mathml_without_math_tag
|
|
10
|
-
first_value = parameter_one
|
|
11
|
-
|
|
10
|
+
first_value = parameter_one&.to_mathml_without_math_tag
|
|
11
|
+
second_value = parameter_two&.to_mathml_without_math_tag
|
|
12
|
+
Utility.update_nodes(
|
|
13
|
+
Utility.ox_element("mroot"),
|
|
14
|
+
[
|
|
15
|
+
second_value,
|
|
16
|
+
first_value,
|
|
17
|
+
],
|
|
18
|
+
)
|
|
12
19
|
end
|
|
13
20
|
|
|
14
21
|
def to_latex
|
|
15
|
-
first_value = parameter_one
|
|
16
|
-
second_value = parameter_two
|
|
22
|
+
first_value = parameter_one&.to_latex
|
|
23
|
+
second_value = parameter_two&.to_latex
|
|
17
24
|
"\\sqrt[#{first_value}]{#{second_value}}"
|
|
18
25
|
end
|
|
26
|
+
|
|
27
|
+
def to_omml_without_math_tag
|
|
28
|
+
rad_element = Utility.ox_element("rad", namespace: "m")
|
|
29
|
+
pr_element = Utility.ox_element("radPr", namespace: "m")
|
|
30
|
+
deg_element = Utility.ox_element("deg", namespace: "m")
|
|
31
|
+
e_element = Utility.ox_element("e", namespace: "m")
|
|
32
|
+
Utility.update_nodes(
|
|
33
|
+
rad_element,
|
|
34
|
+
[
|
|
35
|
+
pr_element << Utility.pr_element("ctrl", true, namespace: "m"),
|
|
36
|
+
deg_element << parameter_two.to_omml_without_math_tag,
|
|
37
|
+
e_element << parameter_one.to_omml_without_math_tag,
|
|
38
|
+
],
|
|
39
|
+
)
|
|
40
|
+
rad_element
|
|
41
|
+
end
|
|
19
42
|
end
|
|
20
43
|
end
|
|
21
44
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "ternary_function"
|
|
4
|
+
module Plurimath
|
|
5
|
+
module Math
|
|
6
|
+
module Function
|
|
7
|
+
class Rule < TernaryFunction
|
|
8
|
+
def to_asciimath
|
|
9
|
+
""
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def to_latex
|
|
13
|
+
first_value = "[#{parameter_one.to_latex}]" if parameter_one
|
|
14
|
+
second_value = "{#{parameter_two.to_latex}}" if parameter_two
|
|
15
|
+
third_value = "{#{parameter_three.to_latex}}" if parameter_three
|
|
16
|
+
"\\rule#{first_value}#{second_value}#{third_value}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to_mathml_without_math_tag
|
|
20
|
+
Utility.ox_element("mi")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_omml_without_math_tag
|
|
24
|
+
Utility.ox_element("m:e")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def to_html
|
|
28
|
+
""
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -7,8 +7,30 @@ module Plurimath
|
|
|
7
7
|
module Function
|
|
8
8
|
class Sqrt < UnaryFunction
|
|
9
9
|
def to_mathml_without_math_tag
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
sqrt_tag = Utility.ox_element("msqrt")
|
|
11
|
+
first_value = parameter_one&.to_mathml_without_math_tag
|
|
12
|
+
sqrt_tag << first_value if first_value
|
|
13
|
+
sqrt_tag
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_omml_without_math_tag
|
|
17
|
+
rad_element = Utility.ox_element("rad", namespace: "m")
|
|
18
|
+
pr_element = Utility.ox_element("radPr", namespace: "m")
|
|
19
|
+
pr_element << Utility.ox_element(
|
|
20
|
+
"degHide",
|
|
21
|
+
namespace: "m",
|
|
22
|
+
attributes: { "m:val": "1" },
|
|
23
|
+
)
|
|
24
|
+
e_element = Utility.ox_element("e", namespace: "m")
|
|
25
|
+
Utility.update_nodes(
|
|
26
|
+
rad_element,
|
|
27
|
+
[
|
|
28
|
+
pr_element << Utility.pr_element("ctrl", true, namespace: "m"),
|
|
29
|
+
Utility.ox_element("deg", namespace: "m"),
|
|
30
|
+
e_element << parameter_one.to_omml_without_math_tag,
|
|
31
|
+
],
|
|
32
|
+
)
|
|
33
|
+
rad_element
|
|
12
34
|
end
|
|
13
35
|
end
|
|
14
36
|
end
|
|
@@ -6,6 +6,33 @@ module Plurimath
|
|
|
6
6
|
module Math
|
|
7
7
|
module Function
|
|
8
8
|
class Stackrel < BinaryFunction
|
|
9
|
+
def to_asciimath
|
|
10
|
+
first_value = wrapped(parameter_one)
|
|
11
|
+
second_value = wrapped(parameter_two)
|
|
12
|
+
"#{class_name}#{first_value}#{second_value}"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def to_mathml_without_math_tag
|
|
16
|
+
mover = Utility.ox_element("mover")
|
|
17
|
+
first_value = Utility.ox_element("mrow")
|
|
18
|
+
first_value << parameter_one.to_mathml_without_math_tag if parameter_one
|
|
19
|
+
second_value = Utility.ox_element("mrow")
|
|
20
|
+
second_value << parameter_two.to_mathml_without_math_tag if parameter_two
|
|
21
|
+
Utility.update_nodes(mover, [second_value, first_value])
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_html
|
|
25
|
+
first_value = parameter_one&.to_html
|
|
26
|
+
second_value = parameter_two&.to_html
|
|
27
|
+
"#{first_value}#{second_value}"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
protected
|
|
31
|
+
|
|
32
|
+
def wrapped(field)
|
|
33
|
+
string = field&.to_asciimath || ""
|
|
34
|
+
string.start_with?("(") ? string : "(#{string})"
|
|
35
|
+
end
|
|
9
36
|
end
|
|
10
37
|
end
|
|
11
38
|
end
|
|
@@ -6,12 +6,18 @@ module Plurimath
|
|
|
6
6
|
module Math
|
|
7
7
|
module Function
|
|
8
8
|
class Substack < BinaryFunction
|
|
9
|
-
|
|
10
9
|
def to_latex
|
|
11
10
|
first_value = parameter_one.to_latex if parameter_one
|
|
12
11
|
second_value = "\\\\#{parameter_two.to_latex}" if parameter_two
|
|
13
12
|
"\\#{class_name}{#{first_value}#{second_value}}"
|
|
14
13
|
end
|
|
14
|
+
|
|
15
|
+
def to_mathml_without_math_tag
|
|
16
|
+
value_array = []
|
|
17
|
+
value_array << parameter_one.to_mathml_without_math_tag if parameter_one
|
|
18
|
+
value_array << parameter_two.to_mathml_without_math_tag if parameter_two
|
|
19
|
+
Utility.update_nodes(Utility.ox_element("mtable"), value_array)
|
|
20
|
+
end
|
|
15
21
|
end
|
|
16
22
|
end
|
|
17
23
|
end
|
|
@@ -7,8 +7,8 @@ module Plurimath
|
|
|
7
7
|
module Function
|
|
8
8
|
class Sum < BinaryFunction
|
|
9
9
|
def to_asciimath
|
|
10
|
-
first_value = "_
|
|
11
|
-
second_value = "
|
|
10
|
+
first_value = "_#{wrapped(parameter_one)}" if parameter_one
|
|
11
|
+
second_value = "^#{wrapped(parameter_two)}" if parameter_two
|
|
12
12
|
"sum#{first_value}#{second_value}"
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -17,6 +17,60 @@ module Plurimath
|
|
|
17
17
|
second_value = "^{#{parameter_two.to_latex}}" if parameter_two
|
|
18
18
|
"\\sum#{first_value}#{second_value}"
|
|
19
19
|
end
|
|
20
|
+
|
|
21
|
+
def to_mathml_without_math_tag
|
|
22
|
+
first_value = Utility.ox_element("mo") << invert_unicode_symbols.to_s
|
|
23
|
+
if parameter_one || parameter_two
|
|
24
|
+
value_array = []
|
|
25
|
+
value_array << parameter_one&.to_mathml_without_math_tag
|
|
26
|
+
value_array << parameter_two&.to_mathml_without_math_tag
|
|
27
|
+
tag_name = if parameter_two && parameter_one
|
|
28
|
+
"underover"
|
|
29
|
+
else
|
|
30
|
+
parameter_one ? "under" : "over"
|
|
31
|
+
end
|
|
32
|
+
munderover_tag = Utility.ox_element("m#{tag_name}")
|
|
33
|
+
Utility.update_nodes(
|
|
34
|
+
munderover_tag,
|
|
35
|
+
value_array.insert(0, first_value),
|
|
36
|
+
)
|
|
37
|
+
else
|
|
38
|
+
first_value
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def to_html
|
|
43
|
+
first_value = "<sub>#{parameter_one.to_html}</sub>" if parameter_one
|
|
44
|
+
second_value = "<sup>#{parameter_two.to_html}</sup>" if parameter_two
|
|
45
|
+
"<i>∑</i>#{first_value}#{second_value}"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def to_omml_without_math_tag
|
|
49
|
+
limupp = Utility.ox_element("limLow", namespace: "m")
|
|
50
|
+
limupppr = Utility.ox_element("limUppPr", namespace: "m")
|
|
51
|
+
sum << Utility.pr_element("e", true, namespace: "m")
|
|
52
|
+
me = (Utility.ox_element("e", namespace: "m") << omml_first_value)
|
|
53
|
+
lim = (Utility.ox_element("lim", namespace: "m") << omml_second_value)
|
|
54
|
+
Utility.update_nodes(limupp, [limupppr, me, lim])
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
protected
|
|
58
|
+
|
|
59
|
+
def omml_first_value
|
|
60
|
+
return parameter_one.to_omml_without_math_tag unless parameter_one.is_a?(Math::Symbol)
|
|
61
|
+
|
|
62
|
+
mt = Utility.ox_element("t", namespace: "m")
|
|
63
|
+
mt << parameter_one.to_omml_without_math_tag if parameter_one
|
|
64
|
+
mt
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def omml_second_value
|
|
68
|
+
return parameter_two.to_omml_without_math_tag unless parameter_two.is_a?(Math::Symbol)
|
|
69
|
+
|
|
70
|
+
mt = Utility.ox_element("t", namespace: "m")
|
|
71
|
+
mt << parameter_two.to_omml_without_math_tag if parameter_two
|
|
72
|
+
mt
|
|
73
|
+
end
|
|
20
74
|
end
|
|
21
75
|
end
|
|
22
76
|
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Align < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "[",
|
|
12
|
+
close_paren = "]",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Array < Table
|
|
10
|
+
def initialize(value = [],
|
|
11
|
+
open_paren = "[",
|
|
12
|
+
close_paren = "]",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin{array}#{array_args}#{latex_content}\\end{array}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def array_args
|
|
22
|
+
args = []
|
|
23
|
+
value.first.parameter_one.each do |td|
|
|
24
|
+
args << if Utility.symbol_value(td.parameter_one.first, "|")
|
|
25
|
+
"|"
|
|
26
|
+
else
|
|
27
|
+
Utility::ALIGNMENT_LETTERS.invert[Hash(td.parameter_two)[:columnalign]]&.to_s
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
"{#{args.join}}" unless args.compact.empty?
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def to_mathml_without_math_tag
|
|
34
|
+
table_tag = Utility.ox_element("mtable", attributes: table_attribute)
|
|
35
|
+
Utility.update_nodes(
|
|
36
|
+
table_tag,
|
|
37
|
+
value&.map(&:to_mathml_without_math_tag),
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Bmatrix < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "[",
|
|
12
|
+
close_paren = "]",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def to_mathml_without_math_tag
|
|
22
|
+
table_tag = Utility.ox_element("mtable", attributes: table_attribute)
|
|
23
|
+
Utility.update_nodes(
|
|
24
|
+
table_tag,
|
|
25
|
+
value&.map(&:to_mathml_without_math_tag),
|
|
26
|
+
)
|
|
27
|
+
attributes = {
|
|
28
|
+
open: mathml_parenthesis(open_paren),
|
|
29
|
+
close: mathml_parenthesis(close_paren),
|
|
30
|
+
}
|
|
31
|
+
Utility.ox_element("mfenced", attributes: attributes) << table_tag
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Matrix < Table
|
|
10
|
+
def initialize(value = [],
|
|
11
|
+
open_paren = "(",
|
|
12
|
+
close_paren = ")",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def to_mathml_without_math_tag
|
|
22
|
+
table_tag = Utility.ox_element("mtable", attributes: table_attribute)
|
|
23
|
+
Utility.update_nodes(
|
|
24
|
+
table_tag,
|
|
25
|
+
value&.map(&:to_mathml_without_math_tag),
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Multline < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "[",
|
|
12
|
+
close_paren = "]",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Pmatrix < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "(",
|
|
12
|
+
close_paren = ")",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Split < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "[",
|
|
12
|
+
close_paren = "]",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../table"
|
|
4
|
+
|
|
5
|
+
module Plurimath
|
|
6
|
+
module Math
|
|
7
|
+
module Function
|
|
8
|
+
class Table
|
|
9
|
+
class Vmatrix < Table
|
|
10
|
+
def initialize(value,
|
|
11
|
+
open_paren = "|",
|
|
12
|
+
close_paren = "|",
|
|
13
|
+
options = {})
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_latex
|
|
18
|
+
"\\begin#{opening}#{latex_content}\\end#{matrix_class}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|