[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / odt2spip_32 / inc / xsltml / tokens.xsl
diff --git a/www/plugins/odt2spip_32/inc/xsltml/tokens.xsl b/www/plugins/odt2spip_32/inc/xsltml/tokens.xsl
new file mode 100644 (file)
index 0000000..0d1d750
--- /dev/null
@@ -0,0 +1,296 @@
+<?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: 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
+<xsl:template match="m:mi|m:mn|m:mo|m:mtext|m:ms">\r
+       <xsl:call-template name="CommonTokenAtr"/>\r
+</xsl:template>\r
+\r
+<xsl:template name="mi">\r
+       <xsl:choose>\r
+               <xsl:when test="string-length(normalize-space(.))>1 and not(@mathvariant)">\r
+                       <xsl:text>\mathrm{</xsl:text>\r
+                               <xsl:apply-templates/>\r
+                       <xsl:text>}</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:apply-templates/>\r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="mn">\r
+       <xsl:apply-templates/>\r
+</xsl:template>\r
+\r
+<xsl:template name="mo">\r
+       <xsl:apply-templates/>\r
+</xsl:template>\r
+\r
+<xsl:template name="mtext">\r
+       <xsl:variable name="content">\r
+               <xsl:call-template name="replaceMtextEntities">\r
+                       <xsl:with-param name="content" select="."/>\r
+               </xsl:call-template>\r
+       </xsl:variable>\r
+       <xsl:text>\text{</xsl:text>\r
+       <xsl:value-of select="$content"/>\r
+       <xsl:text>}</xsl:text>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:mspace">\r
+       <xsl:text>\phantom{\rule</xsl:text>\r
+       <xsl:if test="@depth">\r
+               <xsl:text>[-</xsl:text>\r
+               <xsl:value-of select="@depth"/>\r
+               <xsl:text>]</xsl:text>\r
+       </xsl:if>\r
+       <xsl:text>{</xsl:text>\r
+       <xsl:if test="not(@width)">\r
+               <xsl:text>0ex</xsl:text>\r
+       </xsl:if>\r
+       <xsl:value-of select="@width"/>\r
+       <xsl:text>}{</xsl:text>\r
+       <xsl:if test="not(@height)">\r
+               <xsl:text>0ex</xsl:text>\r
+       </xsl:if>\r
+       <xsl:value-of select="@height"/>\r
+       <xsl:text>}}</xsl:text>\r
+</xsl:template>\r
+\r
+<xsl:template name="ms">\r
+       <xsl:choose>\r
+               <xsl:when test="@lquote"><xsl:value-of select="@lquote"/></xsl:when>\r
+               <xsl:otherwise><xsl:text>"</xsl:text></xsl:otherwise>\r
+       </xsl:choose><xsl:apply-templates/><xsl:choose>\r
+               <xsl:when test="@rquote"><xsl:value-of select="@rquote"/></xsl:when>\r
+               <xsl:otherwise><xsl:text>"</xsl:text></xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="CommonTokenAtr">\r
+       <xsl:if test="@mathbackground">\r
+               <xsl:text>\colorbox[rgb]{</xsl:text>\r
+               <xsl:call-template name="color">\r
+                       <xsl:with-param name="color" select="@mathbackground"/>\r
+               </xsl:call-template>\r
+               <xsl:text>}{$</xsl:text>\r
+       </xsl:if>\r
+       <xsl:if test="@color or @mathcolor"> <!-- Note: @color is deprecated in MathML 2.0 -->\r
+               <xsl:text>\textcolor[rgb]{</xsl:text>\r
+               <xsl:call-template name="color">\r
+                       <xsl:with-param name="color" select="@color|@mathcolor"/>\r
+               </xsl:call-template>\r
+               <xsl:text>}{</xsl:text>\r
+       </xsl:if>\r
+       <xsl:if test="@mathvariant">\r
+               <xsl:choose>\r
+                       <xsl:when test="@mathvariant='normal'">\r
+                               <xsl:text>\mathrm{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='bold'">\r
+                               <xsl:text>\mathbf{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='italic'">\r
+                               <xsl:text>\mathit{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='bold-italic'">    <!-- Required definition -->\r
+                               <xsl:text>\mathbit{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='double-struck'">  <!-- Required amsfonts -->\r
+                               <xsl:text>\mathbb{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='bold-fraktur'">   <!-- Error -->\r
+                               <xsl:text>{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='script'">\r
+                               <xsl:text>\mathcal{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='bold-script'">    <!-- Error -->\r
+                               <xsl:text>\mathsc{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='fraktur'">        <!-- Required amsfonts -->\r
+                               <xsl:text>\mathfrak{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='sans-serif'">\r
+                               <xsl:text>\mathsf{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='bold-sans-serif'"> <!-- Required definition -->\r
+                               <xsl:text>\mathbsf{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='sans-serif-italic'"> <!-- Required definition -->\r
+                               <xsl:text>\mathsfit{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='sans-serif-bold-italic'"> <!-- Error -->\r
+                               <xsl:text>\mathbsfit{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:when test="@mathvariant='monospace'">\r
+                               <xsl:text>\mathtt{</xsl:text>\r
+                       </xsl:when>\r
+                       <xsl:otherwise>\r
+                               <xsl:text>{</xsl:text>\r
+                       </xsl:otherwise>\r
+               </xsl:choose>\r
+       </xsl:if>\r
+       <xsl:call-template name="selectTemplate"/>\r
+       <xsl:if test="@mathvariant">\r
+               <xsl:text>}</xsl:text>\r
+       </xsl:if>\r
+       <xsl:if test="@color or @mathcolor">\r
+               <xsl:text>}</xsl:text>\r
+       </xsl:if>\r
+       <xsl:if test="@mathbackground">\r
+               <xsl:text>$}</xsl:text>\r
+       </xsl:if>\r
+</xsl:template>\r
+\r
+<xsl:template name="selectTemplate">\r
+<!--   <xsl:variable name="name" select="local-name()"/>\r
+       <xsl:call-template name="{$name}"/>-->\r
+       <xsl:choose>\r
+               <xsl:when test="local-name(.)='mi'">\r
+                       <xsl:call-template name="mi"/>\r
+               </xsl:when>\r
+               <xsl:when test="local-name(.)='mn'">\r
+                       <xsl:call-template name="mn"/>\r
+               </xsl:when>\r
+               <xsl:when test="local-name(.)='mo'">\r
+                       <xsl:call-template name="mo"/>\r
+               </xsl:when>\r
+               <xsl:when test="local-name(.)='mtext'">\r
+                       <xsl:call-template name="mtext"/>\r
+               </xsl:when>\r
+               <xsl:when test="local-name(.)='ms'">\r
+                       <xsl:call-template name="ms"/>\r
+               </xsl:when>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="color">\r
+<!-- NB: Variables colora and valueColor{n} only for Sablotron -->\r
+       <xsl:param name="color"/>\r
+       <xsl:variable name="colora" select="translate($color,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>\r
+       <xsl:choose>\r
+       <xsl:when test="starts-with($colora,'#') and string-length($colora)=4">\r
+               <xsl:variable name="valueColor">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,2,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="$valueColor div 15"/><xsl:text>,</xsl:text>\r
+               <xsl:variable name="valueColor1">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,3,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="$valueColor1 div 15"/><xsl:text>,</xsl:text>\r
+               <xsl:variable name="valueColor2">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,4,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="$valueColor2 div 15"/>\r
+       </xsl:when>\r
+       <xsl:when test="starts-with($colora,'#') and string-length($colora)=7">\r
+               <xsl:variable name="valueColor1">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,2,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:variable name="valueColor2">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,3,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="($valueColor1*16 + $valueColor2) div 255"/><xsl:text>,</xsl:text>\r
+               <xsl:variable name="valueColor1a">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,4,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:variable name="valueColor2a">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,5,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="($valueColor1a*16 + $valueColor2a) div 255"/><xsl:text>,</xsl:text>\r
+               <xsl:variable name="valueColor1b">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,6,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:variable name="valueColor2b">\r
+                       <xsl:call-template name="Hex2Decimal">\r
+                               <xsl:with-param name="arg" select="substring($colora,7,1)"/>\r
+                       </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:value-of select="($valueColor1b*16 + $valueColor2b) div 255"/>\r
+       </xsl:when>\r
+<!-- ======================= if color specifed as an html-color-name ========================================== -->\r
+       <xsl:when test="$colora='aqua'"><xsl:text>0,1,1</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='black'"><xsl:text>0,0,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='blue'"><xsl:text>0,0,1</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='fuchsia'"><xsl:text>1,0,1</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='gray'"><xsl:text>.5,.5,.5</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='green'"><xsl:text>0,.5,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='lime'"><xsl:text>0,1,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='maroon'"><xsl:text>.5,0,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='navy'"><xsl:text>0,0,.5</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='olive'"><xsl:text>.5,.5,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='purple'"><xsl:text>.5,0,.5</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='red'"><xsl:text>1,0,0</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='silver'"><xsl:text>.75,.75,.75</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='teal'"><xsl:text>0,.5,.5</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='white'"><xsl:text>1,1,1</xsl:text></xsl:when>\r
+       <xsl:when test="$colora='yellow'"><xsl:text>1,1,0</xsl:text></xsl:when>\r
+       <xsl:otherwise>\r
+               <xsl:message>Exception at color template</xsl:message>\r
+       </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="Hex2Decimal">\r
+       <xsl:param name="arg"/>\r
+       <xsl:choose>\r
+               <xsl:when test="$arg='f'">\r
+                       <xsl:value-of select="15"/>\r
+               </xsl:when>\r
+               <xsl:when test="$arg='e'">\r
+                       <xsl:value-of select="14"/>\r
+               </xsl:when>\r
+               <xsl:when test="$arg='d'">\r
+                       <xsl:value-of select="13"/>\r
+               </xsl:when>\r
+               <xsl:when test="$arg='c'">\r
+                       <xsl:value-of select="12"/>\r
+               </xsl:when>\r
+               <xsl:when test="$arg='b'">\r
+                       <xsl:value-of select="11"/>\r
+               </xsl:when>\r
+               <xsl:when test="$arg='a'">\r
+                       <xsl:value-of select="10"/>\r
+               </xsl:when>\r
+               <xsl:when test="translate($arg, '0123456789', '9999999999')='9'"> <!-- if $arg is number -->\r
+                       <xsl:value-of select="$arg"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                       <xsl:message>Exception at Hex2Decimal template</xsl:message>\r
+               </xsl:otherwise>\r
+       </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template match="m:*/text()">\r
+       <xsl:call-template name="replaceEntities">\r
+               <xsl:with-param name="content" select="normalize-space()"/>\r
+       </xsl:call-template>\r
+</xsl:template>\r
+\r
+</xsl:stylesheet>
\ No newline at end of file