Blame xsl/mathml2/glayout.xsl

Packit 0f19cf

Packit 0f19cf
Packit 0f19cf
		xmlns:m="http://www.w3.org/1998/Math/MathML"
Packit 0f19cf
                version='1.0'>
Packit 0f19cf

Packit 0f19cf

Packit 0f19cf
Packit 0f19cf
     This file is part of the XSLT MathML Library distribution.
Packit 0f19cf
     See ./README or http://www.raleigh.ru/MathML/mmltex for
Packit 0f19cf
     copyright and other information                                        -->
Packit 0f19cf

Packit 0f19cf

Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mfrac">
Packit 0f19cf
	<xsl:choose>
Packit 0f19cf
		<xsl:when test="@linethickness">
Packit 0f19cf
			<xsl:text>\genfrac{}{}{</xsl:text>
Packit 0f19cf
			<xsl:choose>
Packit 0f19cf
				<xsl:when test="number(@linethickness)">
Packit 0f19cf
					<xsl:value-of select="@linethickness div 10"/>
Packit 0f19cf
					<xsl:text>ex</xsl:text>
Packit 0f19cf
				</xsl:when>
Packit 0f19cf
				<xsl:when test="@linethickness='0'">
Packit 0f19cf
					<xsl:text>0ex</xsl:text>
Packit 0f19cf
				</xsl:when>
Packit 0f19cf
				<xsl:when test="@linethickness='thin'">
Packit 0f19cf
					<xsl:text>.05ex</xsl:text>
Packit 0f19cf
				</xsl:when>
Packit 0f19cf
				<xsl:when test="@linethickness='medium'"/>
Packit 0f19cf
				<xsl:when test="@linethickness='thick'">
Packit 0f19cf
					<xsl:text>.2ex</xsl:text>
Packit 0f19cf
				</xsl:when>
Packit 0f19cf
				<xsl:otherwise>
Packit 0f19cf
					<xsl:value-of select="@linethickness"/>
Packit 0f19cf
				</xsl:otherwise>
Packit 0f19cf
			</xsl:choose>
Packit 0f19cf
			<xsl:text>}{}{</xsl:text>
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:otherwise>
Packit 0f19cf
			<xsl:text>\frac{</xsl:text>
Packit 0f19cf
		</xsl:otherwise>
Packit 0f19cf
	</xsl:choose>
Packit 0f19cf
	<xsl:if test="@numalign='right'">
Packit 0f19cf
		<xsl:text>\hfill </xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:apply-templates select="./*[1]"/>
Packit 0f19cf
	<xsl:if test="@numalign='left'">
Packit 0f19cf
		<xsl:text>\hfill </xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:text>}{</xsl:text>	
Packit 0f19cf
	<xsl:if test="@denomalign='right'">
Packit 0f19cf
		<xsl:text>\hfill </xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:apply-templates select="./*[2]"/>
Packit 0f19cf
		<xsl:if test="@denomalign='left'">
Packit 0f19cf
		<xsl:text>\hfill </xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:text>}</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mfrac[@bevelled='true']">
Packit 0f19cf
	<xsl:text>\raisebox{1ex}{$</xsl:text>
Packit 0f19cf
	<xsl:apply-templates select="./*[1]"/>
Packit 0f19cf
	<xsl:text>$}\!\left/ \!\raisebox{-1ex}{$</xsl:text>
Packit 0f19cf
	<xsl:apply-templates select="./*[2]"/>
Packit 0f19cf
	<xsl:text>$}\right.</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mroot">
Packit 0f19cf
	<xsl:choose>
Packit 0f19cf
		<xsl:when test="count(./*)=2">
Packit 0f19cf
			<xsl:text>\sqrt[</xsl:text>
Packit 0f19cf
			<xsl:apply-templates select="./*[2]"/>
Packit 0f19cf
			<xsl:text>]{</xsl:text>	
Packit 0f19cf
			<xsl:apply-templates select="./*[1]"/>
Packit 0f19cf
			<xsl:text>}</xsl:text>	
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:otherwise>
Packit 0f19cf
		
Packit 0f19cf
			<xsl:message>exception 25:</xsl:message>
Packit 0f19cf
			<xsl:text>\text{exception 25:}</xsl:text> 
Packit 0f19cf
		</xsl:otherwise>
Packit 0f19cf
	</xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:msqrt">
Packit 0f19cf
	<xsl:text>\sqrt{</xsl:text>
Packit 0f19cf
	<xsl:apply-templates/>
Packit 0f19cf
	<xsl:text>}</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mfenced">
Packit 0f19cf
	<xsl:choose>
Packit 0f19cf
		<xsl:when test="@open">
Packit 0f19cf
			<xsl:if test="translate(@open,'{}[]()|','{{{{{{{')='{'">
Packit 0f19cf
				<xsl:text>\left</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:if test="@open='{' or @open='}'">
Packit 0f19cf
				<xsl:text>\</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:if test="translate(@open,'{}[]()|','{{{{{{{')!='{' and (translate(@close,'{}[]()|','{{{{{{{')='{' or not(@close))">
Packit 0f19cf
				<xsl:text>\left.</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:value-of select="@open"/>
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:otherwise><xsl:text>\left(</xsl:text></xsl:otherwise>
Packit 0f19cf
	</xsl:choose>
Packit 0f19cf
			<xsl:variable name="sep">
Packit 0f19cf
				<xsl:choose>
Packit 0f19cf
					<xsl:when test="@separators">
Packit 0f19cf
						<xsl:value-of select="translate(@separators,' ','')"/>
Packit 0f19cf
					</xsl:when>
Packit 0f19cf
					<xsl:otherwise>,</xsl:otherwise>
Packit 0f19cf
				</xsl:choose>
Packit 0f19cf
			</xsl:variable>
Packit 0f19cf
			<xsl:for-each select="./*">
Packit 0f19cf
				<xsl:apply-templates select="."/>
Packit 0f19cf
				<xsl:if test="not(position()=last())">
Packit 0f19cf
					<xsl:choose>
Packit 0f19cf
						<xsl:when test="position()>string-length($sep)">
Packit 0f19cf
							<xsl:value-of select="substring($sep,string-length($sep))"/>
Packit 0f19cf
						</xsl:when>
Packit 0f19cf
						<xsl:otherwise>
Packit 0f19cf
							<xsl:value-of select="substring($sep,position(),1)"/>
Packit 0f19cf
						</xsl:otherwise>
Packit 0f19cf
					</xsl:choose>
Packit 0f19cf
				</xsl:if>
Packit 0f19cf
			</xsl:for-each>
Packit 0f19cf
	<xsl:choose>
Packit 0f19cf
		<xsl:when test="@close">
Packit 0f19cf
			<xsl:if test="translate(@close,'{}[]()|','{{{{{{{')='{'">
Packit 0f19cf
				<xsl:text>\right</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:if test="@close='{' or @close='}'">
Packit 0f19cf
				<xsl:text>\</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:if test="translate(@close,'{}[]()|','{{{{{{{')!='{' and (translate(@open,'{}[]()|','{{{{{{{')='{' or not(@open))">
Packit 0f19cf
				<xsl:text>\right.</xsl:text>
Packit 0f19cf
			</xsl:if>
Packit 0f19cf
			<xsl:value-of select="@close"/>
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:otherwise><xsl:text>\right)</xsl:text></xsl:otherwise>
Packit 0f19cf
	</xsl:choose>	
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mphantom">
Packit 0f19cf
	<xsl:text>\phantom{</xsl:text>
Packit 0f19cf
	<xsl:apply-templates/>
Packit 0f19cf
	<xsl:text>}</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:menclose">
Packit 0f19cf
	<xsl:choose>
Packit 0f19cf
		<xsl:when test="@notation = 'actuarial'">
Packit 0f19cf
			<xsl:text>\overline{</xsl:text>
Packit 0f19cf
			<xsl:apply-templates/>
Packit 0f19cf
			<xsl:text>\hspace{.2em}|}</xsl:text>
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:when test="@notation = 'radical'">
Packit 0f19cf
			<xsl:text>\sqrt{</xsl:text>
Packit 0f19cf
			<xsl:apply-templates/>
Packit 0f19cf
			<xsl:text>}</xsl:text>
Packit 0f19cf
		</xsl:when>
Packit 0f19cf
		<xsl:otherwise>
Packit 0f19cf
			<xsl:text>\overline{)</xsl:text>
Packit 0f19cf
			<xsl:apply-templates/>
Packit 0f19cf
			<xsl:text>}</xsl:text>
Packit 0f19cf
		</xsl:otherwise>
Packit 0f19cf
	</xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mrow">
Packit 0f19cf
	<xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:mstyle">
Packit 0f19cf
	<xsl:if test="@displaystyle='true'">
Packit 0f19cf
		<xsl:text>{\displaystyle </xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:if test="@scriptlevel and not(@displaystyle='true')">
Packit 0f19cf
		<xsl:text>{</xsl:text>
Packit 0f19cf
		<xsl:choose>
Packit 0f19cf
			<xsl:when test="@scriptlevel=0"><xsl:text>\textstyle </xsl:text></xsl:when>
Packit 0f19cf
			<xsl:when test="@scriptlevel=1"><xsl:text>\scriptstyle </xsl:text></xsl:when>
Packit 0f19cf
			<xsl:otherwise><xsl:text>\scriptscriptstyle </xsl:text></xsl:otherwise> 
Packit 0f19cf
		</xsl:choose> 
Packit 0f19cf
	</xsl:if>	
Packit 0f19cf
	<xsl:if test="@background">
Packit 0f19cf
		<xsl:text>\colorbox[rgb]{</xsl:text>
Packit 0f19cf
		<xsl:call-template name="color">
Packit 0f19cf
			<xsl:with-param name="color" select="@background"/>
Packit 0f19cf
		</xsl:call-template>
Packit 0f19cf
		<xsl:text>}{$</xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:if test="@color[not(@mathcolor)] or @mathcolor">
Packit 0f19cf
		<xsl:text>\textcolor[rgb]{</xsl:text>
Packit 0f19cf
		<xsl:call-template name="color">
Packit 0f19cf
			<xsl:with-param name="color" select="@color|@mathcolor"/>
Packit 0f19cf
		</xsl:call-template>
Packit 0f19cf
		<xsl:text>}{</xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:apply-templates/>
Packit 0f19cf
	<xsl:if test="@color[not(@mathcolor)] or @mathcolor">
Packit 0f19cf
		<xsl:text>}</xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:if test="@background">
Packit 0f19cf
		<xsl:text>$}</xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
	<xsl:if test="@scriptlevel and not(@displaystyle='true')">
Packit 0f19cf
		<xsl:text>}</xsl:text>
Packit 0f19cf
	</xsl:if>	
Packit 0f19cf
	<xsl:if test="@displaystyle='true'">
Packit 0f19cf
		<xsl:text>}</xsl:text>
Packit 0f19cf
	</xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
<xsl:template match="m:merror">
Packit 0f19cf
	<xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf

Packit 0f19cf
</xsl:stylesheet>