[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / odt2spip_30 / inc / xsltml / cmarkup.xsl
diff --git a/www/plugins/odt2spip_30/inc/xsltml/cmarkup.xsl b/www/plugins/odt2spip_30/inc/xsltml/cmarkup.xsl
deleted file mode 100644 (file)
index c7a7219..0000000
+++ /dev/null
@@ -1,1093 +0,0 @@
-<?xml version='1.0' encoding="UTF-8"?>\r
-<xsl:stylesheet\r
-               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
-               xmlns:m="http://www.w3.org/1998/Math/MathML"\r
-               version='1.0'>\r
-                \r
-<!-- ====================================================================== -->\r
-<!-- $id: tokens.xsl, 2002/22/11 Exp $\r
-     This file is part of the XSLT MathML Library distribution.\r
-     See ./README or http://www.raleigh.ru/MathML/mmltex for\r
-     copyright and other information                                        -->\r
-<!-- ====================================================================== -->\r
-\r
-<!-- 4.4.1.1 cn -->\r
-<xsl:template match="m:cn"><xsl:apply-templates/></xsl:template>\r
-\r
-<xsl:template match="m:cn[@type='complex-cartesian']">\r
-       <xsl:apply-templates select="text()[1]"/>\r
-       <xsl:text>+</xsl:text>\r
-       <xsl:apply-templates select="text()[2]"/>\r
-       <xsl:text>i</xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:cn[@type='rational']">\r
-       <xsl:apply-templates select="text()[1]"/>\r
-       <xsl:text>/</xsl:text>\r
-       <xsl:apply-templates select="text()[2]"/>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:cn[@type='integer' and @base!=10]">\r
-               <xsl:apply-templates/>\r
-               <xsl:text>_{</xsl:text><xsl:value-of select="@base"/><xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:cn[@type='complex-polar']">\r
-       <xsl:apply-templates select="text()[1]"/>\r
-       <xsl:text>e^{i </xsl:text>\r
-       <xsl:apply-templates select="text()[2]"/>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:cn[@type='e-notation']">\r
-    <xsl:apply-templates select="text()[1]"/>\r
-    <xsl:text>E</xsl:text>\r
-    <xsl:apply-templates select="text()[2]"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.1.1 ci 4.4.1.2 csymbol -->\r
-<xsl:template match="m:ci | m:csymbol">\r
-       <xsl:choose>\r
-               <xsl:when test="string-length(normalize-space(text()))>1">\r
-                       <xsl:text>\mathrm{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>\r
-               </xsl:when>\r
-               <xsl:otherwise><xsl:apply-templates/></xsl:otherwise>\r
-       </xsl:choose>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.1 apply 4.4.2.2 reln -->\r
-<xsl:template match="m:apply | m:reln">\r
-       <xsl:apply-templates select="*[1]">\r
-       <!-- <? -->\r
-               <xsl:with-param name="p" select="10"/>\r
-       </xsl:apply-templates>\r
-       <!-- ?> -->\r
-       <xsl:text>(</xsl:text>\r
-       <xsl:for-each select="*[position()>1]">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="not(position()=last())"><xsl:text>, </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>)</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.3 fn -->\r
-<xsl:template match="m:fn[m:apply[1]]"> <!-- for m:fn using default rule -->\r
-       <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.4 interval -->\r
-<xsl:template match="m:interval[*[2]]">\r
-       <xsl:choose>\r
-               <xsl:when test="@closure='open' or @closure='open-closed'">\r
-                       <xsl:text>\left(</xsl:text>             \r
-               </xsl:when>\r
-               <xsl:otherwise><xsl:text>\left[</xsl:text></xsl:otherwise> \r
-       </xsl:choose>\r
-       <xsl:apply-templates select="*[1]"/>\r
-       <xsl:text> , </xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:choose>\r
-               <xsl:when test="@closure='open' or @closure='closed-open'">\r
-                       <xsl:text>\right)</xsl:text>            \r
-               </xsl:when>\r
-               <xsl:otherwise><xsl:text>\right]</xsl:text></xsl:otherwise> \r
-       </xsl:choose>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:interval">\r
-       <xsl:text>\left\{</xsl:text><xsl:apply-templates/><xsl:text>\right\}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.5 inverse -->\r
-<xsl:template match="m:apply[*[1][self::m:inverse]]">\r
-       <xsl:apply-templates select="*[2]"/><xsl:text>^{(-1)}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.6 sep 4.4.2.7 condition -->\r
-<xsl:template match="m:sep | m:condition"><xsl:apply-templates/></xsl:template>\r
-\r
-<!-- 4.4.2.9 lambda -->\r
-<xsl:template match="m:lambda">\r
-       <xsl:text>\mathrm{lambda}\: </xsl:text>\r
-       <xsl:apply-templates select="m:bvar/*"/>\r
-       <xsl:text>.\: </xsl:text>\r
-  <xsl:apply-templates select="*[last()]"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.10 compose -->\r
-<xsl:template match="m:apply[*[1][self::m:compose]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\circ </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.11 ident -->\r
-<xsl:template match="m:ident"><xsl:text>\mathrm{id}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.2.12 domain 4.4.2.13 codomain 4.4.2.14 image 4.4.3.21 arg 4.4.3.24 lcm\r
-               4.4.5.9 grad 4.4.5.10 curl 4.4.9.4 median 4.4.9.5 mode-->\r
-<xsl:template match="m:domain | m:codomain | m:image | m:arg | m:lcm | m:grad |\r
-                                                                m:curl | m:median | m:mode">\r
-       <xsl:text>\mathop{\mathrm{</xsl:text>\r
-       <xsl:value-of select="local-name()"/>\r
-       <xsl:text>}}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.15 domainofapplication -->\r
-<xsl:template match="m:domainofapplication"/>\r
-\r
-<!-- 4.4.2.16 piecewise -->\r
-<xsl:template match="m:piecewise">\r
-       <xsl:text>\begin{cases}</xsl:text>\r
-       <xsl:apply-templates select="m:piece"/>\r
-       <xsl:apply-templates select="m:otherwise"/>\r
-       <xsl:text>\end{cases}</xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:piece">\r
-               <xsl:apply-templates select="*[1]"/>\r
-               <xsl:text> &amp; \text{if $</xsl:text>\r
-               <xsl:apply-templates select="*[2]"/>\r
-               <xsl:text>$}</xsl:text>\r
-               <xsl:if test="not(position()=last()) or ../m:otherwise"><xsl:text>\\ </xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:otherwise">\r
-       <xsl:apply-templates select="*[1]"/>\r
-       <xsl:text> &amp; \text{otherwise}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.1 quotient -->\r
-<xsl:template match="m:apply[*[1][self::m:quotient]]">\r
-       <xsl:text>\left\lfloor\frac{</xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>}{</xsl:text>\r
-       <xsl:apply-templates select="*[3]"/>\r
-       <xsl:text>}\right\rfloor </xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.2 factorial -->\r
-<xsl:template match="m:apply[*[1][self::m:factorial]]">\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>!</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.3 divide -->\r
-<xsl:template match="m:apply[*[1][self::m:divide]]">\r
-       <xsl:param name="p" select="0"/>\r
-  <xsl:param name="this-p" select="3"/>\r
-  <xsl:if test="$this-p &lt; $p"><xsl:text>\left(</xsl:text></xsl:if>\r
-  <xsl:text>\frac{</xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-<!--           <xsl:with-param name="p" select="$this-p"/>\r
-       </xsl:apply-templates>-->\r
-       <xsl:text>}{</xsl:text>\r
-       <xsl:apply-templates select="*[3]"/>\r
-<!--           <xsl:with-param name="p" select="$this-p"/>\r
-       </xsl:apply-templates>-->\r
-       <xsl:text>}</xsl:text>\r
-       <xsl:if test="$this-p &lt; $p"><xsl:text>\right)</xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.4 max min -->\r
-<xsl:template match="m:apply[*[1][self::m:max or self::m:min]]">\r
-       <xsl:text>\</xsl:text>\r
-       <xsl:value-of select="local-name(*[1])"/>\r
-       <xsl:text>\{</xsl:text>\r
-   <xsl:choose>\r
-               <xsl:when test="m:condition">\r
-               <xsl:apply-templates select="*[last()]"/>\r
-               <xsl:text>, </xsl:text>\r
-                       <xsl:apply-templates select="m:condition/node()"/>\r
-               </xsl:when>\r
-               <xsl:otherwise>\r
-                       <xsl:for-each select="*[position() &gt; 1]">\r
-                               <xsl:apply-templates select="."/>\r
-                               <xsl:if test="position() !=last()"><xsl:text> , </xsl:text></xsl:if>\r
-                       </xsl:for-each>\r
-               </xsl:otherwise>\r
-   </xsl:choose>\r
-       <xsl:text>\}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.5  minus-->\r
-<xsl:template match="m:apply[*[1][self::m:minus] and count(*)=2]">\r
-       <xsl:text>-</xsl:text>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="5"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][self::m:minus] and count(*)&gt;2]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo">-</xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="2"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.6  plus-->\r
-<xsl:template match="m:apply[*[1][self::m:plus]]">\r
-  <xsl:param name="p" select="0"/>\r
-  <xsl:if test="$p &gt; 2">\r
-               <xsl:text>(</xsl:text>\r
-       </xsl:if>\r
-  <xsl:for-each select="*[position()&gt;1]">\r
-   <xsl:if test="position() &gt; 1">\r
-    <xsl:choose>\r
-      <xsl:when test="self::m:apply[*[1][self::m:times] and\r
-      *[2][self::m:apply/*[1][self::m:minus] or self::m:cn[not(m:sep) and\r
-      (number(.) &lt; 0)]]]">-</xsl:when>\r
-      <xsl:otherwise>+</xsl:otherwise>\r
-    </xsl:choose>\r
-   </xsl:if>   \r
-    <xsl:choose>\r
-      <xsl:when test="self::m:apply[*[1][self::m:times] and\r
-      *[2][self::m:cn[not(m:sep) and (number(.) &lt;0)]]]">\r
-                       <xsl:value-of select="-(*[2])"/>\r
-                       <xsl:apply-templates select=".">\r
-                    <xsl:with-param name="first" select="2"/>\r
-                    <xsl:with-param name="p" select="2"/>\r
-                  </xsl:apply-templates>\r
-       </xsl:when>\r
-      <xsl:when test="self::m:apply[*[1][self::m:times] and\r
-      *[2][self::m:apply/*[1][self::m:minus]]]">\r
-                               <xsl:apply-templates select="./*[2]/*[2]"/>\r
-                               <xsl:apply-templates select=".">\r
-                                       <xsl:with-param name="first" select="2"/>\r
-                                       <xsl:with-param name="p" select="2"/>\r
-                               </xsl:apply-templates>\r
-                       </xsl:when>\r
-                       <xsl:otherwise>\r
-                               <xsl:apply-templates select=".">\r
-                                       <xsl:with-param name="p" select="2"/>\r
-                               </xsl:apply-templates>\r
-                       </xsl:otherwise>\r
-               </xsl:choose>\r
-       </xsl:for-each>\r
-       <xsl:if test="$p &gt; 2">\r
-               <xsl:text>)</xsl:text>\r
-       </xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.7 power -->\r
-<xsl:template match="m:apply[*[1][self::m:power]]">\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="5"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>^{</xsl:text>\r
-       <xsl:apply-templates select="*[3]">\r
-               <xsl:with-param name="p" select="5"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.8 remainder -->\r
-<xsl:template match="m:apply[*[1][self::m:rem]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo">\mod </xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="3"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.9  times-->\r
-<xsl:template match="m:apply[*[1][self::m:times]]" name="times">\r
-  <xsl:param name="p" select="0"/>\r
-  <xsl:param name="first" select="1"/>\r
-  <xsl:if test="$p &gt; 3"><xsl:text>(</xsl:text></xsl:if>\r
-  <xsl:for-each select="*[position()&gt;1]">\r
-               <xsl:if test="position() &gt; 1">\r
-                       <xsl:choose>\r
-                               <xsl:when test="self::m:cn">\times <!-- times --></xsl:when>\r
-                               <xsl:otherwise><!--invisible times--></xsl:otherwise>\r
-                       </xsl:choose>\r
-               </xsl:if> \r
-               <xsl:if test="position()&gt;= $first">\r
-                       <xsl:apply-templates select=".">\r
-                               <xsl:with-param name="p" select="3"/>\r
-                       </xsl:apply-templates>\r
-               </xsl:if>\r
-       </xsl:for-each>\r
-  <xsl:if test="$p &gt; 3"><xsl:text>)</xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.10 root -->\r
-<xsl:template match="m:apply[*[1][self::m:root]]">\r
-       <xsl:text>\sqrt</xsl:text>\r
-       <xsl:if test="m:degree!=2">\r
-               <xsl:text>[</xsl:text>\r
-               <xsl:apply-templates select="m:degree/*"/>\r
-               <xsl:text>]</xsl:text>\r
-       </xsl:if>\r
-       <xsl:text>{</xsl:text>\r
-       <xsl:apply-templates select="*[position()&gt;1 and not(self::m:degree)]"/>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.11 gcd -->\r
-<xsl:template match="m:gcd"><xsl:text>\gcd </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.3.12 and -->\r
-<xsl:template match="m:apply[*[1][self::m:and]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\land <!-- and --></xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.13 or -->\r
-<xsl:template match="m:apply[*[1][self::m:or]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="3"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\lor </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.14 xor -->\r
-<xsl:template match="m:apply[*[1][self::m:xor]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="3"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\mathop{\mathrm{xor}}</xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.15 not -->\r
-<xsl:template match="m:apply[*[1][self::m:not]]">\r
-       <xsl:text>\neg </xsl:text>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.16 implies -->\r
-<xsl:template match="m:apply[*[1][self::m:implies]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo">\implies </xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="3"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.17 forall 4.4.3.18 exists -->\r
-<xsl:template match="m:apply[*[1][self::m:forall or self::m:exists]]">\r
-       <xsl:text>\</xsl:text>\r
-       <xsl:value-of select="local-name(*[1])"/>\r
-       <xsl:text> </xsl:text>\r
-       <xsl:apply-templates select="m:bvar"/>\r
-       <xsl:if test="m:condition">\r
-               <xsl:text>, </xsl:text><xsl:apply-templates select="m:condition"/>\r
-       </xsl:if>\r
-       <xsl:if test="*[last()][local-name()!='condition'][local-name()!='bvar']">\r
-               <xsl:text>\colon </xsl:text>\r
-         <xsl:apply-templates select="*[last()]"/>\r
-  </xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.19 abs -->\r
-<xsl:template match="m:apply[*[1][self::m:abs]]">\r
-       <xsl:text>\left|</xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>\right|</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.20 conjugate -->\r
-<xsl:template match="m:apply[*[1][self::m:conjugate]]">\r
-       <xsl:text>\overline{</xsl:text><xsl:apply-templates select="*[2]"/><xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.22 real -->\r
-<xsl:template match="m:real"><xsl:text>\Re </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.3.23 imaginary -->\r
-<xsl:template match="m:imaginary"><xsl:text>\Im </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.3.25 floor -->\r
-<xsl:template match="m:apply[*[1][self::m:floor]]">\r
-       <xsl:text>\lfloor </xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>\rfloor </xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.3.25 ceiling -->\r
-<xsl:template match="m:apply[*[1][self::m:ceiling]]">\r
-       <xsl:text>\lceil </xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>\rceil </xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.1 eq -->\r
-<xsl:template match="m:apply[*[1][self::m:eq]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">=</xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.2 neq -->\r
-<xsl:template match="m:apply[*[1][self::m:neq]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\neq </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.3 gt -->\r
-<xsl:template match="m:apply[*[1][self::m:gt]]">\r
-<xsl:param name="p" select="0"/>\r
-<xsl:call-template name="infix">\r
-       <xsl:with-param name="this-p" select="1"/>\r
-       <xsl:with-param name="p" select="$p"/>\r
-       <xsl:with-param name="mo">&gt; </xsl:with-param>\r
-</xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.4 lt -->\r
-<xsl:template match="m:apply[*[1][self::m:lt]]">\r
-<xsl:param name="p" select="0"/>\r
-<xsl:call-template name="infix">\r
-       <xsl:with-param name="this-p" select="1"/>\r
-       <xsl:with-param name="p" select="$p"/>\r
-       <xsl:with-param name="mo">&lt; </xsl:with-param>\r
-</xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.5 geq -->\r
-<xsl:template match="m:apply[*[1][self::m:geq]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\ge </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.6 leq -->\r
-<xsl:template match="m:apply[*[1][self::m:leq]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\le </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.7 equivalent -->\r
-<xsl:template match="m:apply[*[1][self::m:equivalent]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\equiv </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.8 approx -->\r
-<xsl:template match="m:apply[*[1][self::m:approx]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="1"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\approx </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.4.9 factorof -->\r
-<xsl:template match="m:apply[*[1][self::m:factorof]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo"> | </xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="3"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.5.1 int -->\r
-<xsl:template match="m:apply[*[1][self::m:int]]">\r
-       <xsl:text>\int</xsl:text>\r
-       <xsl:if test="m:lowlimit/*|m:interval/*[1]|m:condition/*">\r
-               <xsl:text>_{</xsl:text>\r
-               <xsl:apply-templates select="m:lowlimit/*|m:interval/*[1]|m:condition/*"/>\r
-               <xsl:text>}</xsl:text>\r
-       </xsl:if>\r
-       <xsl:if test="m:uplimit/*|m:interval/*[2]">\r
-               <xsl:text>^{</xsl:text>\r
-               <xsl:apply-templates select="m:uplimit/*|m:interval/*[2]"/>\r
-               <xsl:text>}</xsl:text>\r
-       </xsl:if>\r
-       <xsl:text> </xsl:text>\r
-       <xsl:apply-templates select="*[last()]"/>\r
-       <xsl:text>\,d </xsl:text>\r
-       <xsl:apply-templates select="m:bvar"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.5.2 diff -->\r
-<xsl:template match="m:apply[*[1][self::m:diff] and m:ci and count(*)=2]" priority="2">\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>^\prime </xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][self::m:diff]]" priority="1">\r
-       <xsl:text>\frac{</xsl:text>\r
-       <xsl:choose>\r
-               <xsl:when test="m:bvar/m:degree">\r
-                       <xsl:text>d^{</xsl:text>\r
-                       <xsl:apply-templates select="m:bvar/m:degree/node()"/>\r
-                       <xsl:text>}</xsl:text>\r
-                       <xsl:apply-templates select="*[last()]"/>\r
-                       <xsl:text>}{d</xsl:text>\r
-                       <xsl:apply-templates select="m:bvar/node()"/>\r
-                       <xsl:text>^{</xsl:text>\r
-                       <xsl:apply-templates select="m:bvar/m:degree/node()"/>\r
-                       <xsl:text>}</xsl:text>\r
-               </xsl:when>\r
-               <xsl:otherwise>\r
-                       <xsl:text>d </xsl:text>\r
-                       <xsl:apply-templates select="*[last()]"/>\r
-                       <xsl:text>}{d </xsl:text>\r
-                       <xsl:apply-templates select="m:bvar"/>\r
-                       <xsl:text>}</xsl:text>\r
-               </xsl:otherwise>\r
-       </xsl:choose>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.5.3 partialdiff -->\r
-<xsl:template match="m:apply[*[1][self::m:partialdiff] and m:list and m:ci and count(*)=3]" priority="2">\r
-       <xsl:text>D_{</xsl:text>\r
-       <xsl:for-each select="m:list[1]/*">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="position()&lt;last()"><xsl:text>, </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>}</xsl:text>\r
-       <xsl:apply-templates select="*[3]"/>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][self::m:partialdiff]]" priority="1">\r
-       <xsl:text>\frac{\partial^{</xsl:text>\r
-       <xsl:choose>\r
-               <xsl:when test="m:degree">\r
-                       <xsl:apply-templates select="m:degree/node()"/>\r
-               </xsl:when>\r
-               <xsl:when test="m:bvar/m:degree[string(number(.))='NaN']">\r
-                       <xsl:for-each select="m:bvar/m:degree">\r
-                               <xsl:apply-templates select="node()"/>\r
-                               <xsl:if test="position()&lt;last()"><xsl:text>+</xsl:text></xsl:if>\r
-                       </xsl:for-each>\r
-                       <xsl:if test="count(m:bvar[not(m:degree)])&gt;0">\r
-                               <xsl:text>+</xsl:text>\r
-                               <xsl:value-of select="count(m:bvar[not(m:degree)])"/>\r
-                       </xsl:if>\r
-               </xsl:when>\r
-               <xsl:otherwise>\r
-                       <xsl:value-of select="sum(m:bvar/m:degree)+count(m:bvar[not(m:degree)])"/>\r
-               </xsl:otherwise>\r
-       </xsl:choose>\r
-       <xsl:text>}</xsl:text>\r
-       <xsl:apply-templates select="*[last()]"/>\r
-       <xsl:text>}{</xsl:text>\r
-       <xsl:for-each select="m:bvar">\r
-               <xsl:text>\partial </xsl:text>\r
-               <xsl:apply-templates select="node()"/>\r
-               <xsl:if test="m:degree">\r
-                       <xsl:text>^{</xsl:text>\r
-                       <xsl:apply-templates select="m:degree/node()"/>\r
-                       <xsl:text>}</xsl:text>\r
-               </xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.2.8 declare 4.4.5.4 lowlimit 4.4.5.5 uplimit 4.4.5.7 degree 4.4.9.5 momentabout -->\r
-<xsl:template match="m:declare | m:lowlimit | m:uplimit | m:degree | m:momentabout"/>\r
-\r
-<!-- 4.4.5.6  bvar-->\r
-<xsl:template match="m:bvar">\r
-       <xsl:apply-templates/>\r
-       <xsl:if test="following-sibling::m:bvar"><xsl:text>, </xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.5.8 divergence-->\r
-<xsl:template match="m:divergence"><xsl:text>\mathop{\mathrm{div}}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.5.11 laplacian-->\r
-<xsl:template match="m:laplacian"><xsl:text>\nabla^2 </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.6.1 set -->\r
-<xsl:template match="m:set">\r
-       <xsl:text>\{</xsl:text><xsl:call-template name="set"/><xsl:text>\}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.2 list -->\r
-<xsl:template match="m:list">\r
-       <xsl:text>\left[</xsl:text><xsl:call-template name="set"/><xsl:text>\right]</xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template name="set">\r
-   <xsl:choose>\r
-               <xsl:when test="m:condition">\r
-               <xsl:apply-templates select="m:bvar/*[not(self::bvar or self::condition)]"/>\r
-               <xsl:text>\colon </xsl:text>\r
-                       <xsl:apply-templates select="m:condition/node()"/>\r
-               </xsl:when>\r
-               <xsl:otherwise>\r
-                       <xsl:for-each select="*">\r
-                               <xsl:apply-templates select="."/>\r
-                               <xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if>\r
-                       </xsl:for-each>\r
-               </xsl:otherwise>\r
-   </xsl:choose>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.3 union -->\r
-<xsl:template match="m:apply[*[1][self::m:union]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\cup </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.4 intersect -->\r
-<xsl:template match="m:apply[*[1][self::m:intersect]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="3"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\cap </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.5 in -->\r
-<xsl:template match="m:apply[*[1][self::m:in]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo">\in </xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="3"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.5 notin -->\r
-<xsl:template match="m:apply[*[1][self::m:notin]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="mo">\notin </xsl:with-param>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="this-p" select="3"/>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.7 subset -->\r
-<xsl:template match="m:apply[*[1][self::m:subset]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\subseteq </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.8 prsubset -->\r
-<xsl:template match="m:apply[*[1][self::m:prsubset]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\subset </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.9 notsubset -->\r
-<xsl:template match="m:apply[*[1][self::m:notsubset]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\nsubseteq </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.10 notprsubset -->\r
-<xsl:template match="m:apply[*[1][self::m:notprsubset]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\not\subset </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.11 setdiff -->\r
-<xsl:template match="m:apply[*[1][self::m:setdiff]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\setminus </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.12 card -->\r
-<xsl:template match="m:apply[*[1][self::m:card]]">\r
-       <xsl:text>|</xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>|</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.6.13 cartesianproduct 4.4.10.6 vectorproduct -->\r
-<xsl:template match="m:apply[*[1][self::m:cartesianproduct or self::m:vectorproduct]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\times </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<xsl:template\r
-match="m:apply[*[1][self::m:cartesianproduct][count(following-sibling::m:reals)=count(following-sibling::*)]]"\r
-priority="2">\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="5"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>^{</xsl:text>\r
-       <xsl:value-of select="count(*)-1"/>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.7.1 sum -->\r
-<xsl:template match="m:apply[*[1][self::m:sum]]">\r
-       <xsl:text>\sum</xsl:text><xsl:call-template name="series"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.7.2 product -->\r
-<xsl:template match="m:apply[*[1][self::m:product]]">\r
-       <xsl:text>\prod</xsl:text><xsl:call-template name="series"/>\r
-</xsl:template>\r
-       \r
-<xsl:template name="series">\r
-       <xsl:if test="m:lowlimit/*|m:interval/*[1]|m:condition/*">\r
-               <xsl:text>_{</xsl:text>\r
-               <xsl:if test="not(m:condition)">\r
-                       <xsl:apply-templates select="m:bvar"/>\r
-                       <xsl:text>=</xsl:text>\r
-               </xsl:if>\r
-               <xsl:apply-templates select="m:lowlimit/*|m:interval/*[1]|m:condition/*"/>\r
-               <xsl:text>}</xsl:text>\r
-       </xsl:if>\r
-       <xsl:if test="m:uplimit/*|m:interval/*[2]">\r
-               <xsl:text>^{</xsl:text>\r
-               <xsl:apply-templates select="m:uplimit/*|m:interval/*[2]"/>\r
-               <xsl:text>}</xsl:text>\r
-       </xsl:if>\r
-       <xsl:text> </xsl:text>\r
-       <xsl:apply-templates select="*[last()]"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.7.3 limit -->\r
-<xsl:template match="m:apply[*[1][self::m:limit]]">\r
-       <xsl:text>\lim_{</xsl:text>\r
-       <xsl:apply-templates select="m:lowlimit|m:condition/*"/>\r
-       <xsl:text>}</xsl:text>\r
-       <xsl:apply-templates select="*[last()]"/>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[m:limit]/m:lowlimit" priority="3">\r
-       <xsl:apply-templates select="../m:bvar/node()"/>\r
-       <xsl:text>\to </xsl:text>\r
-       <xsl:apply-templates/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.7.4 tendsto -->\r
-<xsl:template match="m:apply[*[1][self::m:tendsto]]">\r
-       <xsl:param name="p"/>\r
-       <xsl:call-template name="binary">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\r
-                       <xsl:choose>\r
-                               <xsl:when test="@type='above'">\searrow </xsl:when>\r
-                               <xsl:when test="@type='below'">\nearrow </xsl:when>\r
-                               <xsl:when test="@type='two-sided'">\rightarrow </xsl:when>\r
-                               <xsl:otherwise>\to </xsl:otherwise>\r
-                       </xsl:choose>\r
-               </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.8.1 common tringonometric functions 4.4.8.3 natural logarithm -->\r
-<xsl:template match="m:apply[*[1][\r
- self::m:sin or                self::m:cos or  self::m:tan or          self::m:sec or\r
- self::m:csc or                self::m:cot or  self::m:sinh or         self::m:cosh or\r
- self::m:tanh or               self::m:coth or self::m:arcsin or       self::m:arccos or\r
- self::m:arctan or     self::m:ln]]">\r
-       <xsl:text>\</xsl:text>\r
-       <xsl:value-of select="local-name(*[1])"/>\r
-       <xsl:text> </xsl:text>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:sin | m:cos | m:tan | m:sec | m:csc |\r
-                                                                m:cot | m:sinh | m:cosh | m:tanh | m:coth |\r
-                                                                m:arcsin | m:arccos | m:arctan | m:ln">\r
-       <xsl:text>\</xsl:text>\r
-       <xsl:value-of select="local-name(.)"/>\r
-       <xsl:text> </xsl:text>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][\r
- self::m:sech or               self::m:csch or         self::m:arccosh or\r
- self::m:arccot or     self::m:arccoth or      self::m:arccsc or\r
- self::m:arccsch or self::m:arcsec or  self::m:arcsech or\r
- self::m:arcsinh or self::m:arctanh]]">\r
-       <xsl:text>\mathrm{</xsl:text>\r
-       <xsl:value-of select="local-name(*[1])"/>\r
-       <xsl:text>\,}</xsl:text>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:sech | m:csch | m:arccosh | m:arccot |\r
-                                                                m:arccoth | m:arccsc |m:arccsch |m:arcsec |\r
-                                                                m:arcsech | m:arcsinh | m:arctanh">\r
-       <xsl:text>\mathrm{</xsl:text>\r
-       <xsl:value-of select="local-name(.)"/>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.8.2 exp -->\r
-<xsl:template match="m:apply[*[1][self::m:exp]]">\r
-       <xsl:text>e^{</xsl:text><xsl:apply-templates select="*[2]"/><xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.8.4 log -->\r
-<xsl:template match="m:apply[*[1][self::m:log]]">\r
-       <xsl:text>\lg </xsl:text>\r
-       <xsl:apply-templates select="*[last()]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][self::m:log] and m:logbase != 10]">\r
-       <xsl:text>\log_{</xsl:text>\r
-       <xsl:apply-templates select="m:logbase/node()"/>\r
-       <xsl:text>}</xsl:text>\r
-       <xsl:apply-templates select="*[last()]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<!-- 4.4.9.1 mean -->\r
-<xsl:template match="m:apply[*[1][self::m:mean]]">\r
-       <xsl:text>\langle </xsl:text>\r
-       <xsl:for-each select="*[position()&gt;1]">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="position() !=last()"><xsl:text>, </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>\rangle </xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.9.2 sdef -->\r
-<xsl:template match="m:sdev"><xsl:text>\sigma </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.9.3 variance -->\r
-<xsl:template match="m:apply[*[1][self::m:variance]]">\r
-       <xsl:text>\sigma(</xsl:text>\r
-       <xsl:apply-templates select="*[2]"/>\r
-       <xsl:text>)^2</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.9.5 moment -->\r
-<xsl:template match="m:apply[*[1][self::m:moment]]">\r
-       <xsl:text>\langle </xsl:text>\r
-       <xsl:apply-templates select="*[last()]"/>\r
-       <xsl:text>^{</xsl:text>\r
-       <xsl:apply-templates select="m:degree/node()"/>\r
-       <xsl:text>}\rangle</xsl:text>\r
-       <xsl:if test="m:momentabout">\r
-               <xsl:text>_{</xsl:text>\r
-               <xsl:apply-templates select="m:momentabout/node()"/>\r
-               <xsl:text>}</xsl:text>\r
-       </xsl:if>\r
-       <xsl:text> </xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.1 vector  -->\r
-<xsl:template match="m:vector">\r
-       <xsl:text>\left(\begin{array}{c}</xsl:text>\r
-       <xsl:for-each select="*">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="position()!=last()"><xsl:text>\\ </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>\end{array}\right)</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.2 matrix  -->\r
-<xsl:template match="m:matrix">\r
-       <xsl:text>\begin{pmatrix}</xsl:text>\r
-       <xsl:apply-templates/>\r
-       <xsl:text>\end{pmatrix}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.3 matrixrow  -->\r
-<xsl:template match="m:matrixrow">\r
-       <xsl:for-each select="*">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="position()!=last()"><xsl:text> &amp; </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:if test="position()!=last()"><xsl:text>\\ </xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.4 determinant  -->\r
-<xsl:template match="m:apply[*[1][self::m:determinant]]">\r
-       <xsl:text>\det </xsl:text>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-</xsl:template>\r
-\r
-<xsl:template match="m:apply[*[1][self::m:determinant]][*[2][self::m:matrix]]" priority="2">\r
-       <xsl:text>\begin{vmatrix}</xsl:text>\r
-       <xsl:apply-templates select="m:matrix/*"/>\r
-       <xsl:text>\end{vmatrix}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.5 transpose -->\r
-<xsl:template match="m:apply[*[1][self::m:transpose]]">\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>^T</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.5 selector -->\r
-<xsl:template match="m:apply[*[1][self::m:selector]]">\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="7"/>\r
-       </xsl:apply-templates>\r
-       <xsl:text>_{</xsl:text>\r
-       <xsl:for-each select="*[position()&gt;2]">\r
-               <xsl:apply-templates select="."/>\r
-               <xsl:if test="position() !=last()"><xsl:text>, </xsl:text></xsl:if>\r
-       </xsl:for-each>\r
-       <xsl:text>}</xsl:text>\r
-</xsl:template>\r
-\r
-<!-- 4.4.10.7 scalarproduct 4.4.10.8 outerproduct -->\r
-<xsl:template match="m:apply[*[1][self::m:scalarproduct or self::m:outerproduct]]">\r
-       <xsl:param name="p" select="0"/>\r
-       <xsl:call-template name="infix">\r
-               <xsl:with-param name="this-p" select="2"/>\r
-               <xsl:with-param name="p" select="$p"/>\r
-               <xsl:with-param name="mo">\dot </xsl:with-param>\r
-       </xsl:call-template>\r
-</xsl:template>\r
-\r
-<!-- 4.4.11.2 semantics -->\r
-<xsl:template match="m:semantics"><xsl:apply-templates select="*[1]"/></xsl:template>\r
-\r
-<xsl:template match="m:semantics[m:annotation/@encoding='TeX']">\r
-       <xsl:apply-templates select="m:annotation[@encoding='TeX']/node()"/>\r
-</xsl:template>\r
-\r
-<!-- 4.4.12.1 integers -->\r
-<xsl:template match="m:integers"><xsl:text>\mathbb{Z}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.2 reals -->\r
-<xsl:template match="m:reals"><xsl:text>\mathbb{R}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.3 rationals -->\r
-<xsl:template match="m:rationals"><xsl:text>\mathbb{Q}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.4 naturalnumbers -->\r
-<xsl:template match="m:naturalnumbers"><xsl:text>\mathbb{N}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.5 complexes -->\r
-<xsl:template match="m:complexes"><xsl:text>\mathbb{C}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.6 primes -->\r
-<xsl:template match="m:primes"><xsl:text>\mathbb{P}</xsl:text></xsl:template>\r
-       \r
-<!-- 4.4.12.7 exponentiale -->\r
-<xsl:template match="m:exponentiale"><xsl:text>e</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.8 imaginaryi -->\r
-<xsl:template match="m:imaginaryi"><xsl:text>i</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.9 notanumber -->\r
-<xsl:template match="m:notanumber"><xsl:text>NaN</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.10 true -->\r
-<xsl:template match="m:true"><xsl:text>\mbox{true}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.11 false -->\r
-<xsl:template match="m:false"><xsl:text>\mbox{false}</xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.12 emptyset -->\r
-<xsl:template match="m:emptyset"><xsl:text>\emptyset </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.13 pi -->\r
-<xsl:template match="m:pi"><xsl:text>\pi </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.14 eulergamma -->\r
-<xsl:template match="m:eulergamma"><xsl:text>\gamma </xsl:text></xsl:template>\r
-\r
-<!-- 4.4.12.15 infinity -->\r
-<xsl:template match="m:infinity"><xsl:text>\infty </xsl:text></xsl:template>\r
-\r
-<!-- ****************************** -->\r
-<xsl:template name="infix" >\r
-  <xsl:param name="mo"/>\r
-  <xsl:param name="p" select="0"/>\r
-  <xsl:param name="this-p" select="0"/>\r
-  <xsl:if test="$this-p &lt; $p"><xsl:text>(</xsl:text></xsl:if>\r
-  <xsl:for-each select="*[position()&gt;1]">\r
-               <xsl:if test="position() &gt; 1">\r
-                       <xsl:copy-of select="$mo"/>\r
-               </xsl:if>   \r
-               <xsl:apply-templates select=".">\r
-                       <xsl:with-param name="p" select="$this-p"/>\r
-               </xsl:apply-templates>\r
-       </xsl:for-each>\r
-  <xsl:if test="$this-p &lt; $p"><xsl:text>)</xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-<xsl:template name="binary" >\r
-  <xsl:param name="mo"/>\r
-  <xsl:param name="p" select="0"/>\r
-  <xsl:param name="this-p" select="0"/>\r
-  <xsl:if test="$this-p &lt; $p"><xsl:text>(</xsl:text></xsl:if>\r
-       <xsl:apply-templates select="*[2]">\r
-               <xsl:with-param name="p" select="$this-p"/>\r
-       </xsl:apply-templates>\r
-       <xsl:value-of select="$mo"/>\r
-       <xsl:apply-templates select="*[3]">\r
-       <xsl:with-param name="p" select="$this-p"/>\r
-       </xsl:apply-templates>\r
-       <xsl:if test="$this-p &lt; $p"><xsl:text>)</xsl:text></xsl:if>\r
-</xsl:template>\r
-\r
-</xsl:stylesheet>
\ No newline at end of file