mathml2latex 0.1.1

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.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +47 -0
  3. data/Rakefile +19 -0
  4. data/lib/mathml2latex.rb +27 -0
  5. data/lib/mathml2latex/mathml_latex_service.rb +42 -0
  6. data/lib/mathml2latex/symbols.rb +1561 -0
  7. data/lib/mathml2latex/version.rb +3 -0
  8. data/lib/mathml2latex/xslt/elements/menclose.xsl +39 -0
  9. data/lib/mathml2latex/xslt/elements/merror.xsl +8 -0
  10. data/lib/mathml2latex/xslt/elements/mfenced.xsl +64 -0
  11. data/lib/mathml2latex/xslt/elements/mfrac.xsl +56 -0
  12. data/lib/mathml2latex/xslt/elements/mi_mn_mo_mtext_ms.xsl +199 -0
  13. data/lib/mathml2latex/xslt/elements/mmultiscripts.xsl +61 -0
  14. data/lib/mathml2latex/xslt/elements/mover.xsl +66 -0
  15. data/lib/mathml2latex/xslt/elements/mphantom.xsl +10 -0
  16. data/lib/mathml2latex/xslt/elements/mroot.xsl +21 -0
  17. data/lib/mathml2latex/xslt/elements/mrow.xsl +8 -0
  18. data/lib/mathml2latex/xslt/elements/mspace.xsl +24 -0
  19. data/lib/mathml2latex/xslt/elements/msqrt.xsl +10 -0
  20. data/lib/mathml2latex/xslt/elements/mstyle.xsl +39 -0
  21. data/lib/mathml2latex/xslt/elements/msub.xsl +12 -0
  22. data/lib/mathml2latex/xslt/elements/msubsup.xsl +14 -0
  23. data/lib/mathml2latex/xslt/elements/msup.xsl +12 -0
  24. data/lib/mathml2latex/xslt/elements/mtable.xsl +86 -0
  25. data/lib/mathml2latex/xslt/elements/mtd.xsl +30 -0
  26. data/lib/mathml2latex/xslt/elements/mtr.xsl +11 -0
  27. data/lib/mathml2latex/xslt/elements/munder.xsl +73 -0
  28. data/lib/mathml2latex/xslt/elements/munderover.xsl +92 -0
  29. data/lib/mathml2latex/xslt/includes.xsl +30 -0
  30. data/lib/mathml2latex/xslt/mml2latex.xsl +30 -0
  31. data/lib/mathml2latex/xslt/shared/color.xsl +117 -0
  32. data/lib/mathml2latex/xslt_functions.rb +29 -0
  33. data/spec/fixtures/basic/aligned_equations.xml +37 -0
  34. data/spec/fixtures/basic/arrow_accent.xml +11 -0
  35. data/spec/fixtures/basic/backspace.xml +6 -0
  36. data/spec/fixtures/basic/bottom_parenthesis.xml +12 -0
  37. data/spec/fixtures/basic/definite_integral_with_differential.xml +17 -0
  38. data/spec/fixtures/basic/digit_space.xml +6 -0
  39. data/spec/fixtures/basic/double_vertical_bars.xml +10 -0
  40. data/spec/fixtures/basic/element_over.xml +15 -0
  41. data/spec/fixtures/basic/element_under.xml +17 -0
  42. data/spec/fixtures/basic/element_under_over.xml +23 -0
  43. data/spec/fixtures/basic/enclose_box_matrix.xml +28 -0
  44. data/spec/fixtures/basic/enclose_left.xml +9 -0
  45. data/spec/fixtures/basic/enclose_right.xml +8 -0
  46. data/spec/fixtures/basic/fraction.xml +6 -0
  47. data/spec/fixtures/basic/greek.xml +30 -0
  48. data/spec/fixtures/basic/left_right_arrow_accent.xml +12 -0
  49. data/spec/fixtures/basic/left_subscript.xml +15 -0
  50. data/spec/fixtures/basic/left_super_sub_script.xml +21 -0
  51. data/spec/fixtures/basic/left_superscript.xml +15 -0
  52. data/spec/fixtures/basic/matrix.xml +26 -0
  53. data/spec/fixtures/basic/matrix_bottom_curly_bracket.xml +32 -0
  54. data/spec/fixtures/basic/matrix_curly_brackets.xml +30 -0
  55. data/spec/fixtures/basic/matrix_parenthesis.xml +28 -0
  56. data/spec/fixtures/basic/matrix_square_brackets.xml +30 -0
  57. data/spec/fixtures/basic/matrix_top_curly_bracket.xml +32 -0
  58. data/spec/fixtures/basic/matrix_with_vertical_bar.xml +30 -0
  59. data/spec/fixtures/basic/n_root.xml +6 -0
  60. data/spec/fixtures/basic/over_script_with_brace.xml +18 -0
  61. data/spec/fixtures/basic/parenthesis.xml +9 -0
  62. data/spec/fixtures/basic/piecewise_function.xml +22 -0
  63. data/spec/fixtures/basic/square_root.xml +5 -0
  64. data/spec/fixtures/basic/subscript.xml +13 -0
  65. data/spec/fixtures/basic/subscript_with_big_operator.xml +10 -0
  66. data/spec/fixtures/basic/sum_over_under.xml +13 -0
  67. data/spec/fixtures/basic/sum_super_sub.xml +9 -0
  68. data/spec/fixtures/basic/super_sub_script.xml +18 -0
  69. data/spec/fixtures/basic/super_sub_script_big_operator.xml +18 -0
  70. data/spec/fixtures/basic/superscript.xml +9 -0
  71. data/spec/fixtures/basic/top_parenthesis.xml +6 -0
  72. data/spec/fixtures/basic/under_script_with_brace.xml +18 -0
  73. data/spec/fixtures/basic/vector_accent.xml +13 -0
  74. data/spec/fixtures/complex/sum_with_nested_matrix.xml +79 -0
  75. data/spec/lib/mathml2latex/mathml_latex_service_spec.rb +383 -0
  76. data/spec/lib/mathml2latex/xslt_functions_spec.rb +39 -0
  77. data/spec/mathml2latex_spec.rb +52 -0
  78. data/spec/spec_helper.rb +15 -0
  79. metadata +257 -0
@@ -0,0 +1,30 @@
1
+ <?xml version='1.0' encoding="UTF-8"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
4
+ version='1.0'>
5
+ <xsl:output method="text" indent="no" encoding="UTF-8"/>
6
+
7
+ <xsl:include href="./elements/menclose.xsl"/>
8
+ <xsl:include href="./elements/merror.xsl"/>
9
+ <xsl:include href="./elements/mfenced.xsl"/>
10
+ <xsl:include href="./elements/mfrac.xsl"/>
11
+ <xsl:include href="./elements/mi_mn_mo_mtext_ms.xsl"/>
12
+ <xsl:include href="./elements/mmultiscripts.xsl"/>
13
+ <xsl:include href="./elements/mover.xsl"/>
14
+ <xsl:include href="./elements/mphantom.xsl"/>
15
+ <xsl:include href="./elements/mroot.xsl"/>
16
+ <xsl:include href="./elements/mrow.xsl"/>
17
+ <xsl:include href="./elements/mspace.xsl"/>
18
+ <xsl:include href="./elements/msqrt.xsl"/>
19
+ <xsl:include href="./elements/mstyle.xsl"/>
20
+ <xsl:include href="./elements/msub.xsl"/>
21
+ <xsl:include href="./elements/msubsup.xsl"/>
22
+ <xsl:include href="./elements/msup.xsl"/>
23
+ <xsl:include href="./elements/mtable.xsl"/>
24
+ <xsl:include href="./elements/mtd.xsl"/>
25
+ <xsl:include href="./elements/mtr.xsl"/>
26
+ <xsl:include href="./elements/munder.xsl"/>
27
+ <xsl:include href="./elements/munderover.xsl"/>
28
+
29
+ <xsl:include href="./shared/color.xsl"/>
30
+ </xsl:stylesheet>
@@ -0,0 +1,30 @@
1
+ <?xml version='1.0' encoding="UTF-8"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
4
+ version='1.0'>
5
+ <xsl:output method="text" indent="no" encoding="UTF-8"/>
6
+
7
+ <xsl:include href="./includes.xsl"/>
8
+
9
+ <xsl:template name="startspace">
10
+ <xsl:param name="symbol"/>
11
+ <xsl:if test="contains($symbol,' ')">
12
+ <xsl:variable name="symbola" select="concat(substring-before($symbol,' '),substring-after($symbol,' '))"/>
13
+ <xsl:call-template name="startspace">
14
+ <xsl:with-param name="symbol" select="$symbola"/>
15
+ </xsl:call-template>
16
+ </xsl:if>
17
+ <xsl:if test="not(contains($symbol,' '))">
18
+ <xsl:value-of select="$symbol"/>
19
+ </xsl:if>
20
+ </xsl:template>
21
+
22
+ <xsl:strip-space elements="m:*"/>
23
+
24
+ <xsl:template match="m:math">
25
+ <xsl:variable name="ouput">
26
+ <xsl:apply-templates/>
27
+ </xsl:variable>
28
+ <xsl:value-of disable-output-escaping="yes" select="normalize-space($ouput)" />
29
+ </xsl:template>
30
+ </xsl:stylesheet>
@@ -0,0 +1,117 @@
1
+ <?xml version='1.0' encoding="UTF-8"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
4
+ version='1.0'>
5
+ <xsl:template name="color">
6
+ <!-- NB: Variables colora and valueColor{n} only for Sablotron -->
7
+ <xsl:param name="color"/>
8
+ <xsl:variable name="colora" select="translate($color,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>
9
+ <xsl:choose>
10
+ <xsl:when test="starts-with($colora,'#') and string-length($colora)=4">
11
+ <xsl:variable name="valueColor">
12
+ <xsl:call-template name="Hex2Decimal">
13
+ <xsl:with-param name="arg" select="substring($colora,2,1)"/>
14
+ </xsl:call-template>
15
+ </xsl:variable>
16
+ <xsl:value-of select="$valueColor div 15"/><xsl:text>,</xsl:text>
17
+ <xsl:variable name="valueColor1">
18
+ <xsl:call-template name="Hex2Decimal">
19
+ <xsl:with-param name="arg" select="substring($colora,3,1)"/>
20
+ </xsl:call-template>
21
+ </xsl:variable>
22
+ <xsl:value-of select="$valueColor1 div 15"/><xsl:text>,</xsl:text>
23
+ <xsl:variable name="valueColor2">
24
+ <xsl:call-template name="Hex2Decimal">
25
+ <xsl:with-param name="arg" select="substring($colora,4,1)"/>
26
+ </xsl:call-template>
27
+ </xsl:variable>
28
+ <xsl:value-of select="$valueColor2 div 15"/>
29
+ </xsl:when>
30
+ <xsl:when test="starts-with($colora,'#') and string-length($colora)=7">
31
+ <xsl:variable name="valueColor1">
32
+ <xsl:call-template name="Hex2Decimal">
33
+ <xsl:with-param name="arg" select="substring($colora,2,1)"/>
34
+ </xsl:call-template>
35
+ </xsl:variable>
36
+ <xsl:variable name="valueColor2">
37
+ <xsl:call-template name="Hex2Decimal">
38
+ <xsl:with-param name="arg" select="substring($colora,3,1)"/>
39
+ </xsl:call-template>
40
+ </xsl:variable>
41
+ <xsl:value-of select="($valueColor1*16 + $valueColor2) div 255"/><xsl:text>,</xsl:text>
42
+ <xsl:variable name="valueColor1a">
43
+ <xsl:call-template name="Hex2Decimal">
44
+ <xsl:with-param name="arg" select="substring($colora,4,1)"/>
45
+ </xsl:call-template>
46
+ </xsl:variable>
47
+ <xsl:variable name="valueColor2a">
48
+ <xsl:call-template name="Hex2Decimal">
49
+ <xsl:with-param name="arg" select="substring($colora,5,1)"/>
50
+ </xsl:call-template>
51
+ </xsl:variable>
52
+ <xsl:value-of select="($valueColor1a*16 + $valueColor2a) div 255"/><xsl:text>,</xsl:text>
53
+ <xsl:variable name="valueColor1b">
54
+ <xsl:call-template name="Hex2Decimal">
55
+ <xsl:with-param name="arg" select="substring($colora,6,1)"/>
56
+ </xsl:call-template>
57
+ </xsl:variable>
58
+ <xsl:variable name="valueColor2b">
59
+ <xsl:call-template name="Hex2Decimal">
60
+ <xsl:with-param name="arg" select="substring($colora,7,1)"/>
61
+ </xsl:call-template>
62
+ </xsl:variable>
63
+ <xsl:value-of select="($valueColor1b*16 + $valueColor2b) div 255"/>
64
+ </xsl:when>
65
+ <!-- ====== if color specifed as an html-color-name ============= -->
66
+ <xsl:when test="$colora='aqua'"><xsl:text>0,1,1</xsl:text></xsl:when>
67
+ <xsl:when test="$colora='black'"><xsl:text>0,0,0</xsl:text></xsl:when>
68
+ <xsl:when test="$colora='blue'"><xsl:text>0,0,1</xsl:text></xsl:when>
69
+ <xsl:when test="$colora='fuchsia'"><xsl:text>1,0,1</xsl:text></xsl:when>
70
+ <xsl:when test="$colora='gray'"><xsl:text>.5,.5,.5</xsl:text></xsl:when>
71
+ <xsl:when test="$colora='green'"><xsl:text>0,.5,0</xsl:text></xsl:when>
72
+ <xsl:when test="$colora='lime'"><xsl:text>0,1,0</xsl:text></xsl:when>
73
+ <xsl:when test="$colora='maroon'"><xsl:text>.5,0,0</xsl:text></xsl:when>
74
+ <xsl:when test="$colora='navy'"><xsl:text>0,0,.5</xsl:text></xsl:when>
75
+ <xsl:when test="$colora='olive'"><xsl:text>.5,.5,0</xsl:text></xsl:when>
76
+ <xsl:when test="$colora='purple'"><xsl:text>.5,0,.5</xsl:text></xsl:when>
77
+ <xsl:when test="$colora='red'"><xsl:text>1,0,0</xsl:text></xsl:when>
78
+ <xsl:when test="$colora='silver'"><xsl:text>.75,.75,.75</xsl:text></xsl:when>
79
+ <xsl:when test="$colora='teal'"><xsl:text>0,.5,.5</xsl:text></xsl:when>
80
+ <xsl:when test="$colora='white'"><xsl:text>1,1,1</xsl:text></xsl:when>
81
+ <xsl:when test="$colora='yellow'"><xsl:text>1,1,0</xsl:text></xsl:when>
82
+ <xsl:otherwise>
83
+ <xsl:message>Exception at color template</xsl:message>
84
+ </xsl:otherwise>
85
+ </xsl:choose>
86
+ </xsl:template>
87
+
88
+ <xsl:template name="Hex2Decimal">
89
+ <xsl:param name="arg"/>
90
+ <xsl:choose>
91
+ <xsl:when test="$arg='f'">
92
+ <xsl:value-of select="15"/>
93
+ </xsl:when>
94
+ <xsl:when test="$arg='e'">
95
+ <xsl:value-of select="14"/>
96
+ </xsl:when>
97
+ <xsl:when test="$arg='d'">
98
+ <xsl:value-of select="13"/>
99
+ </xsl:when>
100
+ <xsl:when test="$arg='c'">
101
+ <xsl:value-of select="12"/>
102
+ </xsl:when>
103
+ <xsl:when test="$arg='b'">
104
+ <xsl:value-of select="11"/>
105
+ </xsl:when>
106
+ <xsl:when test="$arg='a'">
107
+ <xsl:value-of select="10"/>
108
+ </xsl:when>
109
+ <xsl:when test="translate($arg, '0123456789', '9999999999')='9'"> <!-- if $arg is number -->
110
+ <xsl:value-of select="$arg"/>
111
+ </xsl:when>
112
+ <xsl:otherwise>
113
+ <xsl:message>Exception at Hex2Decimal template</xsl:message>
114
+ </xsl:otherwise>
115
+ </xsl:choose>
116
+ </xsl:template>
117
+ </xsl:stylesheet>
@@ -0,0 +1,29 @@
1
+ # provide regex operations to xslt
2
+ # regex is not available to xslt 1.0
3
+ require 'mathml2latex/symbols.rb'
4
+
5
+ module Mathml2latex
6
+ class XsltFunctions
7
+ def replace(str, regex_str, replacement)
8
+ regex = Regexp.new(regex_str)
9
+ str.gsub(regex, replacement)
10
+ end
11
+
12
+ def matches(str, regex_str, flag = '')
13
+ str.downcase! if flag == 'i'
14
+ regex = Regexp.new(regex_str)
15
+ !(str =~ regex).nil?
16
+ end
17
+
18
+ def fetch_symbols(str)
19
+ ret_str = ""
20
+ for i in 0...str.length
21
+ key = str[i].chr.ord
22
+ val = Mathml2latex::Symbols[key]
23
+ val = str[i] if val.nil?
24
+ ret_str << val
25
+ end
26
+ ret_str
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,37 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mtable columnspacing="2px" columnalign="right center left">
3
+ <mtr>
4
+ <mtd>
5
+ <mi>x</mi>
6
+ <mo>&#xA0;</mo>
7
+ <mo>+</mo>
8
+ <mo>&#xA0;</mo>
9
+ <mn>2</mn>
10
+ <mi>y</mi>
11
+ </mtd>
12
+ <mtd>
13
+ <mo>=</mo>
14
+ </mtd>
15
+ <mtd>
16
+ <mn>25</mn>
17
+ </mtd>
18
+ </mtr>
19
+ <mtr>
20
+ <mtd>
21
+ <mn>3</mn>
22
+ <mi>x</mi>
23
+ <mo>&#xA0;</mo>
24
+ <mo>+</mo>
25
+ <mo>&#x2009;</mo>
26
+ <mn>6</mn>
27
+ <mi>y</mi>
28
+ </mtd>
29
+ <mtd>
30
+ <mo>=</mo>
31
+ </mtd>
32
+ <mtd>
33
+ <mn>20</mn>
34
+ </mtd>
35
+ </mtr>
36
+ </mtable>
37
+ </math>
@@ -0,0 +1,11 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mover>
3
+ <mrow>
4
+ <mi>a</mi>
5
+ <mi>b</mi>
6
+ <mi>c</mi>
7
+ <mi>d</mi>
8
+ </mrow>
9
+ <mo>→</mo>
10
+ </mover>
11
+ </math>
@@ -0,0 +1,6 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mn>223444</mn>
3
+ <mspace width="-0.2em" />
4
+ <mn>333</mn>
5
+ <mspace width="-0.2em" />
6
+ </math>
@@ -0,0 +1,12 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <munder>
3
+ <mrow>
4
+ <mi>a</mi>
5
+ <mi>b</mi>
6
+ <mi>c</mi>
7
+ <mi>d</mi>
8
+ <mi>e</mi>
9
+ </mrow>
10
+ <mo>&#x23DD;</mo>
11
+ </munder>
12
+ </math>
@@ -0,0 +1,17 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <msubsup>
3
+ <mo>&#x222B;</mo>
4
+ <mrow>
5
+ <mi>a</mi>
6
+ <mi>a</mi>
7
+ </mrow>
8
+ <mrow>
9
+ <mi>b</mi>
10
+ <mi>b</mi>
11
+ </mrow>
12
+ </msubsup>
13
+ <mi>c</mi>
14
+ <mi>c</mi>
15
+ <mo>d</mo>
16
+ <mi>x</mi>
17
+ </math>
@@ -0,0 +1,6 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mn>123</mn>
3
+ <mo> </mo>
4
+ <mn>456</mn>
5
+ <mspace width="-0.2em" />
6
+ </math>
@@ -0,0 +1,10 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mfenced open="||" close="||">
3
+ <mrow>
4
+ <mi>e</mi>
5
+ <mi>e</mi>
6
+ <mi>e</mi>
7
+ <mi>e</mi>
8
+ </mrow>
9
+ </mfenced>
10
+ </math>
@@ -0,0 +1,15 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mover>
3
+ <mrow>
4
+ <mi>b</mi>
5
+ <mi>a</mi>
6
+ <mi>s</mi>
7
+ <mi>e</mi>
8
+ </mrow>
9
+ <mrow>
10
+ <mi>t</mi>
11
+ <mi>o</mi>
12
+ <mi>p</mi>
13
+ </mrow>
14
+ </mover>
15
+ </math>
@@ -0,0 +1,17 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <munder>
3
+ <mrow>
4
+ <mi>b</mi>
5
+ <mi>a</mi>
6
+ <mi>s</mi>
7
+ <mi>e</mi>
8
+ </mrow>
9
+ <mrow>
10
+ <mi>u</mi>
11
+ <mi>n</mi>
12
+ <mi>d</mi>
13
+ <mi>e</mi>
14
+ <mi>r</mi>
15
+ </mrow>
16
+ </munder>
17
+ </math>
@@ -0,0 +1,23 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <munderover>
3
+ <mrow>
4
+ <mi>b</mi>
5
+ <mi>a</mi>
6
+ <mi>s</mi>
7
+ <mi>e</mi>
8
+ </mrow>
9
+ <mrow>
10
+ <mi>u</mi>
11
+ <mi>n</mi>
12
+ <mi>d</mi>
13
+ <mi>e</mi>
14
+ <mi>r</mi>
15
+ </mrow>
16
+ <mrow>
17
+ <mi>o</mi>
18
+ <mi>v</mi>
19
+ <mi>e</mi>
20
+ <mi>r</mi>
21
+ </mrow>
22
+ </munderover>
23
+ </math>
@@ -0,0 +1,28 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <menclose notation="box">
3
+ <mtable>
4
+ <mtr>
5
+ <mtd>
6
+ <mn>11</mn>
7
+ </mtd>
8
+ <mtd>
9
+ <mn>22</mn>
10
+ </mtd>
11
+ <mtd>
12
+ <mn>33</mn>
13
+ </mtd>
14
+ </mtr>
15
+ <mtr>
16
+ <mtd>
17
+ <mn>44</mn>
18
+ </mtd>
19
+ <mtd>
20
+ <mn>55</mn>
21
+ </mtd>
22
+ <mtd>
23
+ <mn>66</mn>
24
+ </mtd>
25
+ </mtr>
26
+ </mtable>
27
+ </menclose>
28
+ </math>
@@ -0,0 +1,9 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <menclose notation="left">
3
+ <mi>a</mi>
4
+ <mi>b</mi>
5
+ <mi>c</mi>
6
+ <mi>d</mi>
7
+ <mi>e</mi>
8
+ </menclose>
9
+ </math>
@@ -0,0 +1,8 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <menclose notation="right">
3
+ <mi>e</mi>
4
+ <mi>e</mi>
5
+ <mi>e</mi>
6
+ <mi>e</mi>
7
+ </menclose>
8
+ </math>
@@ -0,0 +1,6 @@
1
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
2
+ <mfrac>
3
+ <mn>1</mn>
4
+ <mn>2</mn>
5
+ </mfrac>
6
+ </math>