1 <?xml version='1.0' encoding="UTF-8"?>
\r
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
\r
3 xmlns:m="http://www.w3.org/1998/Math/MathML"
\r
6 <!-- ====================================================================== -->
\r
7 <!-- $Id: glayout.xsl 149 2006-09-12 21:23:53Z fletcher $
\r
8 This file is part of the XSLT MathML Library distribution.
\r
9 See ./README or http://www.raleigh.ru/MathML/mmltex for
\r
10 copyright and other information
\r
11 Modified by Fletcher T. Penney for MultiMarkdown Version 2.0.a -->
\r
12 <!-- ====================================================================== -->
\r
14 <!-- 3.3.2 mfrac -->
\r
15 <xsl:template match="m:mfrac">
\r
17 <xsl:when test="@linethickness">
\r
18 <xsl:text>\genfrac{}{}{</xsl:text>
\r
20 <xsl:when test="number(@linethickness)">
\r
21 <xsl:value-of select="@linethickness div 10"/>
\r
22 <xsl:text>ex</xsl:text>
\r
24 <xsl:when test="@linethickness='0'">
\r
25 <xsl:text>0ex</xsl:text>
\r
27 <xsl:when test="@linethickness='thin'">
\r
28 <xsl:text>.05ex</xsl:text>
\r
30 <xsl:when test="@linethickness='medium'"/>
\r
31 <xsl:when test="@linethickness='thick'">
\r
32 <xsl:text>.2ex</xsl:text>
\r
35 <xsl:value-of select="@linethickness"/>
\r
38 <xsl:text>}{}{</xsl:text>
\r
41 <xsl:text>\frac{</xsl:text>
\r
44 <xsl:if test="@numalign='right'">
\r
45 <xsl:text>\hfill </xsl:text>
\r
47 <xsl:apply-templates select="./*[1]"/>
\r
48 <xsl:if test="@numalign='left'">
\r
49 <xsl:text>\hfill </xsl:text>
\r
51 <xsl:text>}{</xsl:text>
\r
52 <xsl:if test="@denomalign='right'">
\r
53 <xsl:text>\hfill </xsl:text>
\r
55 <xsl:apply-templates select="./*[2]"/>
\r
56 <xsl:if test="@denomalign='left'">
\r
57 <xsl:text>\hfill </xsl:text>
\r
59 <xsl:text>}</xsl:text>
\r
62 <xsl:template match="m:mfrac[@bevelled='true']">
\r
63 <xsl:text>\raisebox{1ex}{$</xsl:text>
\r
64 <xsl:apply-templates select="./*[1]"/>
\r
65 <xsl:text>$}\!\left/ \!\raisebox{-1ex}{$</xsl:text>
\r
66 <xsl:apply-templates select="./*[2]"/>
\r
67 <xsl:text>$}\right.</xsl:text>
\r
71 <xsl:template match="m:mroot">
\r
73 <xsl:when test="count(./*)=2">
\r
74 <xsl:text>\sqrt[</xsl:text>
\r
75 <xsl:apply-templates select="./*[2]"/>
\r
76 <xsl:text>]{</xsl:text>
\r
77 <xsl:apply-templates select="./*[1]"/>
\r
78 <xsl:text>}</xsl:text>
\r
81 <!-- number of argumnets is not 2 - code 25 -->
\r
82 <xsl:message>exception 25:</xsl:message>
\r
83 <xsl:text>\text{exception 25:}</xsl:text>
\r
88 <xsl:template match="m:msqrt">
\r
89 <xsl:text>\sqrt{</xsl:text>
\r
90 <xsl:apply-templates/>
\r
91 <xsl:text>}</xsl:text>
\r
94 <xsl:template match="m:mfenced">
\r
96 <xsl:when test="@open">
\r
97 <xsl:if test="translate(@open,'{}[]()|','{{{{{{{')='{'">
\r
98 <xsl:text>\left</xsl:text>
\r
100 <xsl:if test="@open='{' or @open='}'">
\r
101 <xsl:text>\</xsl:text>
\r
103 <xsl:if test="translate(@open,'{}[]()|','{{{{{{{')!='{' and (translate(@close,'{}[]()|','{{{{{{{')='{' or not(@close))">
\r
104 <xsl:text>\left.</xsl:text>
\r
106 <xsl:value-of select="@open"/>
\r
108 <xsl:otherwise><xsl:text>\left(</xsl:text></xsl:otherwise>
\r
110 <xsl:variable name="sep">
\r
112 <xsl:when test="@separators">
\r
113 <xsl:value-of select="translate(@separators,' ','')"/>
\r
115 <xsl:otherwise>,</xsl:otherwise>
\r
118 <xsl:for-each select="./*">
\r
119 <xsl:apply-templates select="."/>
\r
120 <xsl:if test="not(position()=last())">
\r
122 <xsl:when test="position()>string-length($sep)">
\r
123 <xsl:value-of select="substring($sep,string-length($sep))"/>
\r
126 <xsl:value-of select="substring($sep,position(),1)"/>
\r
132 <xsl:when test="@close">
\r
133 <xsl:if test="translate(@close,'{}[]()|','{{{{{{{')='{'">
\r
134 <xsl:text>\right</xsl:text>
\r
136 <xsl:if test="@close='{' or @close='}'">
\r
137 <xsl:text>\</xsl:text>
\r
139 <xsl:if test="translate(@close,'{}[]()|','{{{{{{{')!='{' and (translate(@open,'{}[]()|','{{{{{{{')='{' or not(@open))">
\r
140 <xsl:text>\right.</xsl:text>
\r
142 <xsl:value-of select="@close"/>
\r
144 <xsl:otherwise><xsl:text>\right)</xsl:text></xsl:otherwise>
\r
148 <xsl:template match="m:mphantom">
\r
149 <xsl:text>\phantom{</xsl:text>
\r
150 <xsl:apply-templates/>
\r
151 <xsl:text>}</xsl:text>
\r
154 <xsl:template match="m:menclose">
\r
156 <xsl:when test="@notation = 'actuarial'">
\r
157 <xsl:text>\overline{</xsl:text>
\r
158 <xsl:apply-templates/>
\r
159 <xsl:text>\hspace{.2em}|}</xsl:text>
\r
161 <xsl:when test="@notation = 'radical'">
\r
162 <xsl:text>\sqrt{</xsl:text>
\r
163 <xsl:apply-templates/>
\r
164 <xsl:text>}</xsl:text>
\r
167 <xsl:text>\overline{)</xsl:text>
\r
168 <xsl:apply-templates/>
\r
169 <xsl:text>}</xsl:text>
\r
174 <xsl:template match="m:mrow">
\r
175 <xsl:apply-templates/>
\r
178 <xsl:template match="m:mstyle">
\r
179 <xsl:if test="@displaystyle='true'">
\r
180 <xsl:text>{\displaystyle </xsl:text>
\r
182 <xsl:if test="@scriptlevel and not(@displaystyle='true')">
\r
183 <xsl:text>{</xsl:text>
\r
185 <xsl:when test="@scriptlevel=0"><xsl:text>\textstyle </xsl:text></xsl:when>
\r
186 <xsl:when test="@scriptlevel=1"><xsl:text>\scriptstyle </xsl:text></xsl:when>
\r
187 <xsl:otherwise><xsl:text>\scriptscriptstyle </xsl:text></xsl:otherwise>
\r
190 <xsl:if test="@background">
\r
191 <xsl:text>\colorbox[rgb]{</xsl:text>
\r
192 <xsl:call-template name="color">
\r
193 <xsl:with-param name="color" select="@background"/>
\r
194 </xsl:call-template>
\r
195 <xsl:text>}{$</xsl:text>
\r
197 <xsl:if test="@color[not(@mathcolor)] or @mathcolor">
\r
198 <xsl:text>\textcolor[rgb]{</xsl:text>
\r
199 <xsl:call-template name="color">
\r
200 <xsl:with-param name="color" select="@color|@mathcolor"/>
\r
201 </xsl:call-template>
\r
202 <xsl:text>}{</xsl:text>
\r
204 <xsl:apply-templates/>
\r
205 <xsl:if test="@color[not(@mathcolor)] or @mathcolor">
\r
206 <xsl:text>}</xsl:text>
\r
208 <xsl:if test="@background">
\r
209 <xsl:text>$}</xsl:text>
\r
211 <xsl:if test="@scriptlevel and not(@displaystyle='true')">
\r
212 <xsl:text>}</xsl:text>
\r
214 <xsl:if test="@displaystyle='true'">
\r
215 <xsl:text>}</xsl:text>
\r
219 <xsl:template match="m:merror">
\r
220 <xsl:apply-templates/>
\r