Preliminary math and tables support.
[librarian.git] / librarian / res / embeds / mathml / mathml2latex.xslt
1 <xsl:stylesheet version = '1.0'
2 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
3 xmlns:ldf="http://planet-sl.org/ldf"
4 xmlns:mml="http://www.w3.org/1998/Math/MathML">
5
6 <xsl:output method="txt" encoding="utf-8" omit-xml-declaration="yes"/> 
7
8 <xsl:template match="mml:mtext">
9         <xsl:text>\textrm{</xsl:text>
10         <xsl:apply-templates select="node()"/>
11         <xsl:text>}</xsl:text>
12 </xsl:template>
13
14 <xsl:template match="mml:mi">
15         <xsl:value-of select="."/>
16 </xsl:template>
17
18 <xsl:template match="mml:mn">
19         <xsl:value-of select="."/>
20 </xsl:template>
21
22 <xsl:template match="mml:mo">
23         <xsl:value-of select="."/>
24 </xsl:template>
25
26 <xsl:template match="mml:msup">
27         <xsl:text>{</xsl:text>
28         <xsl:apply-templates select="*[1]"/>
29         <xsl:text>}^{</xsl:text>
30         <xsl:apply-templates select="*[2]"/>
31         <xsl:text>}</xsl:text>
32 </xsl:template>
33
34 <xsl:template match="mml:msub">
35         <xsl:text>{</xsl:text>
36         <xsl:apply-templates select="*[1]"/>
37         <xsl:text>}_{</xsl:text>
38         <xsl:apply-templates select="*[2]"/>
39         <xsl:text>}</xsl:text>
40 </xsl:template>
41
42 <xsl:template match="mml:mrow">
43         <xsl:text>{</xsl:text>
44         <xsl:apply-templates select="node()"/>
45         <xsl:text>}</xsl:text>
46 </xsl:template>
47
48 <xsl:template match="mml:mfenced">
49         <xsl:text>(</xsl:text>
50         <xsl:apply-templates select="node()"/>
51         <xsl:text>)</xsl:text>
52 </xsl:template>
53
54 <xsl:template match="mml:mfrac">
55         <xsl:text>\frac{</xsl:text>
56         <xsl:apply-templates select="*[1]"/>
57         <xsl:text>}{</xsl:text>
58         <xsl:apply-templates select="*[2]"/>
59         <xsl:text>}</xsl:text>
60 </xsl:template>
61
62 <xsl:template match="mml:varepsilon">
63         <xsl:text>\varepsilon </xsl:text>
64 </xsl:template>
65
66 </xsl:stylesheet>