[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / odt2spip_32 / inc / xsltml / scripts.xsl
diff --git a/www/plugins/odt2spip_32/inc/xsltml/scripts.xsl b/www/plugins/odt2spip_32/inc/xsltml/scripts.xsl
new file mode 100644 (file)
index 0000000..fcaab18
--- /dev/null
@@ -0,0 +1,292 @@
+<?xml version='1.0' encoding="UTF-8"?>\r
+<xsl:stylesheet 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: scripts.xsl,v 1.1.1.1 2002/10/26 14:20:06 shade33 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
+<xsl:template match="m:munderover">\r
+       <xsl:variable name="base">\r
+               <xsl:call-template name="startspace">\r
+                       <xsl:with-param name="symbol" select="./*[1]"/>\r
+               </xsl:call-template>\r
+       </xsl:variable>\r
+       <xsl:variable name="under">\r
+               <xsl:call-template name="startspace">\r
+                       <xsl:with-param name="symbol" select="./*[2]"/>\r
+               </xsl:call-template>\r
+       </xsl:variable>\r
+       <xsl:variable name="over">\r
+               <xsl:call-template name="startspace">\r
+                       <xsl:with-param name="symbol" select="./*[3]"/>\r
+               </xsl:call-template>\r
+       </xsl:variable>\r
+       \r
+       <xsl:choose>\r
+               <xsl:when test="$over='&#x000AF;'">     <!-- OverBar - over bar -->\r
+                       <xsl:text>\overline{</xsl:text>\r
+                       <xsl:call-template name="munder">\r
+                               <xsl:with-param name="base" select="$base"/>\r
+                               <xsl:with-param name="under" select="$under"/>\r
+                       </xsl:call-template>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="$over='&#x0FE37;'">     <!-- OverBrace - over brace -->\r
+                       <xsl:text>\overbrace{</xsl:text>\r
+                       <xsl:call-template name="munder">\r
+                               <xsl:with-param name="base" select="$base"/>\r
+                               <xsl:with-param name="under" select="$under"/>\r
+                       </xsl:call-template>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="$under='&#x00332;'">    <!-- UnderBar - combining low line -->\r
+                       <xsl:text>\underline{</xsl:text>\r
+                       <xsl:call-template name="mover">\r
+                               <xsl:with-param name="base" select="$base"/>\r
+                               <xsl:with-param name="over" select="$over"/>\r
+                               <xsl:with-param name="pos_over" select="3"/>\r
+                       </xsl:call-template>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="$under='&#x0FE38;'">    <!-- UnderBrace - under brace -->\r
+                       <xsl:text>\underbrace{</xsl:text>\r
+                       <xsl:call-template name="mover">\r
+                               <xsl:with-param name="base" select="$base"/>\r
+                               <xsl:with-param name="over" select="$over"/>\r
+                               <xsl:with-param name="pos_over" select="3"/>\r
+                       </xsl:call-template>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="translate($base,'&#x0220F;&#x02210;&#x022c2;&#x022c3;&#x02294;',\r
+                                               '&#x02211;&#x02211;&#x02211;&#x02211;&#x02211;')='&#x02211;'">\r
+<!-- if $base is operator, such as\r
+                       &#x02211;       /sum L: summation operator\r
+                       &#x0220F;       /prod L: product operator\r
+                       &#x02210;       /coprod L: coproduct operator\r
+                       &#x022c2;       /bigcap\r
+                       &#x022c3;       /bigcup\r
+                       &#x02294;       /bigsqcup\r
+-->\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>_{</xsl:text>\r
+                       <xsl:apply-templates select="./*[2]"/>\r
+                       <xsl:text>}^{</xsl:text>\r
+                       <xsl:apply-templates select="./*[3]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:text>\underset{</xsl:text>\r
+                       <xsl:apply-templates select="./*[2]"/>\r
+                       <xsl:text>}{\overset{</xsl:text>\r
+                       <xsl:apply-templates select="./*[3]"/>\r
+                       <xsl:text>}{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}}</xsl:text>\r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:mover">\r
+       <xsl:call-template name="mover">\r
+               <xsl:with-param name="base">\r
+                       <xsl:call-template name="startspace">\r
+                               <xsl:with-param name="symbol" select="./*[1]"/>\r
+                       </xsl:call-template>\r
+               </xsl:with-param>\r
+               <xsl:with-param name="over">\r
+                       <xsl:call-template name="startspace">\r
+                               <xsl:with-param name="symbol" select="./*[2]"/>\r
+                       </xsl:call-template>\r
+               </xsl:with-param>\r
+       </xsl:call-template>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:munder">\r
+       <xsl:call-template name="munder">\r
+               <xsl:with-param name="base">\r
+                       <xsl:call-template name="startspace">\r
+                               <xsl:with-param name="symbol" select="./*[1]"/>\r
+                       </xsl:call-template>\r
+               </xsl:with-param>\r
+               <xsl:with-param name="under">\r
+                       <xsl:call-template name="startspace">\r
+                               <xsl:with-param name="symbol" select="./*[2]"/>\r
+                       </xsl:call-template>\r
+               </xsl:with-param>\r
+       </xsl:call-template>\r
+</xsl:template>\r
+\r
+<xsl:template name="mover">\r
+       <xsl:param name="base"/>\r
+       <xsl:param name="over"/>\r
+       <xsl:param name="pos_over" select="2"/>\r
+       <xsl:choose>\r
+               <xsl:when test="$over='&#x000AF;'">     <!-- OverBar - over bar -->\r
+                       <xsl:text>\overline{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="$over='&#x0FE37;'">     <!-- OverBrace - over brace -->\r
+                       <xsl:text>\overbrace{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="translate($base,'&#x0220F;&#x02210;&#x022c2;&#x022c3;&#x02294;',\r
+                                               '&#x02211;&#x02211;&#x02211;&#x02211;&#x02211;')='&#x02211;'">\r
+<!-- if $base is operator, such as\r
+                       &#x02211;       /sum L: summation operator\r
+                       &#x0220F;       /prod L: product operator\r
+                       &#x02210;       /coprod L: coproduct operator\r
+                       &#x022c2;       /bigcap\r
+                       &#x022c3;       /bigcup\r
+                       &#x02294;       /bigsqcup\r
+-->\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>^{</xsl:text>\r
+                       <xsl:apply-templates select="./*[$pos_over]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:text>\stackrel{</xsl:text>\r
+                       <xsl:apply-templates select="./*[$pos_over]"/>\r
+                       <xsl:text>}{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>\r
+                       <!--\r
+                       <xsl:text>\overset{</xsl:text>\r
+                       <xsl:apply-templates select="./*[$pos_over]"/>\r
+                       <xsl:text>}{</xsl:text> \r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>-->\r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="munder">\r
+       <xsl:param name="base"/>\r
+       <xsl:param name="under"/>\r
+       <xsl:choose>\r
+               <xsl:when test="$under='&#x00332;'">    <!-- UnderBar - combining low line -->\r
+                       <xsl:text>\underline{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="$under='&#x0FE38;'">    <!-- UnderBrace - under brace -->\r
+                       <xsl:text>\underbrace{</xsl:text>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:when test="translate($base,'&#x0220F;&#x02210;&#x022c2;&#x022c3;&#x02294;',\r
+                                               '&#x02211;&#x02211;&#x02211;&#x02211;&#x02211;')='&#x02211;'">\r
+<!-- if $base is operator, such as\r
+                       &#x02211;       /sum L: summation operator\r
+                       &#x0220F;       /prod L: product operator\r
+                       &#x02210;       /coprod L: coproduct operator\r
+                       &#x022c2;       /bigcap\r
+                       &#x022c3;       /bigcup\r
+                       &#x02294;       /bigsqcup\r
+-->\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>_{</xsl:text>\r
+                       <xsl:apply-templates select="./*[2]"/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:text>\underset{</xsl:text>         <!-- Required AmsMath package -->\r
+                       <xsl:apply-templates select="./*[2]"/>\r
+                       <xsl:text>}{</xsl:text> \r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:text>}</xsl:text>  \r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:msubsup">\r
+       <xsl:text>{</xsl:text>  \r
+       <xsl:apply-templates select="./*[1]"/>\r
+       <xsl:text>}_{</xsl:text>\r
+       <xsl:apply-templates select="./*[2]"/>\r
+       <xsl:text>}^{</xsl:text>        \r
+       <xsl:apply-templates select="./*[3]"/>\r
+       <xsl:text>}</xsl:text>  \r
+</xsl:template>\r
+\r
+<xsl:template match="m:msup">\r
+       <xsl:text>{</xsl:text>  \r
+       <xsl:apply-templates select="./*[1]"/>\r
+       <xsl:text>}^{</xsl:text>        \r
+       <xsl:apply-templates select="./*[2]"/>\r
+       <xsl:text>}</xsl:text>  \r
+</xsl:template>\r
+\r
+<xsl:template match="m:msub">\r
+       <xsl:text>{</xsl:text>  \r
+       <xsl:apply-templates select="./*[1]"/>\r
+       <xsl:text>}_{</xsl:text>        \r
+       <xsl:apply-templates select="./*[2]"/>\r
+       <xsl:text>}</xsl:text>  \r
+</xsl:template>\r
+\r
+<xsl:template match="m:mmultiscripts" mode="mprescripts">\r
+       <xsl:for-each select="m:mprescripts/following-sibling::*">\r
+               <xsl:if test="position() mod 2 and local-name(.)!='none'">\r
+                       <xsl:text>{}_{</xsl:text>       \r
+                       <xsl:apply-templates select="."/>\r
+                       <xsl:text>}</xsl:text>  \r
+               </xsl:if>\r
+               <xsl:if test="not(position() mod 2) and local-name(.)!='none'">\r
+                       <xsl:text>{}^{</xsl:text>       \r
+                       <xsl:apply-templates select="."/>\r
+                       <xsl:text>}</xsl:text>  \r
+               </xsl:if>\r
+       </xsl:for-each>\r
+       <xsl:apply-templates select="./*[1]"/>\r
+       <xsl:for-each select="m:mprescripts/preceding-sibling::*[position()!=last()]">\r
+               <xsl:if test="position()>2 and local-name(.)!='none'">\r
+                       <xsl:text>{}</xsl:text> \r
+               </xsl:if>\r
+               <xsl:if test="position() mod 2 and local-name(.)!='none'">\r
+                       <xsl:text>_{</xsl:text> \r
+                       <xsl:apply-templates select="."/>\r
+                       <xsl:text>}</xsl:text>  \r
+               </xsl:if>\r
+               <xsl:if test="not(position() mod 2) and local-name(.)!='none'">\r
+                       <xsl:text>^{</xsl:text> \r
+                       <xsl:apply-templates select="."/>\r
+                       <xsl:text>}</xsl:text>  \r
+               </xsl:if>\r
+       </xsl:for-each>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:mmultiscripts">\r
+       <xsl:choose>\r
+               <xsl:when test="m:mprescripts">\r
+                       <xsl:apply-templates select="." mode="mprescripts"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:apply-templates select="./*[1]"/>\r
+                       <xsl:for-each select="*[position()>1]">\r
+                               <xsl:if test="position()>2 and local-name(.)!='none'">\r
+                                       <xsl:text>{}</xsl:text> \r
+                               </xsl:if>\r
+                               <xsl:if test="position() mod 2 and local-name(.)!='none'">\r
+                                       <xsl:text>_{</xsl:text> \r
+                                       <xsl:apply-templates select="."/>\r
+                                       <xsl:text>}</xsl:text>  \r
+                               </xsl:if>\r
+                               <xsl:if test="not(position() mod 2) and local-name(.)!='none'">\r
+                                       <xsl:text>^{</xsl:text> \r
+                                       <xsl:apply-templates select="."/>\r
+                                       <xsl:text>}</xsl:text>  \r
+                               </xsl:if>\r
+                       </xsl:for-each>\r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+</xsl:stylesheet>
\ No newline at end of file