<?xml version='1.0' encoding=“UTF-8”?> <xsl:stylesheet xmlns:xsl=“www.w3.org/1999/XSL/Transform”
xmlns:m="http://www.w3.org/1998/Math/MathML" version='1.0'> <xsl:template match="m:munderover"> <xsl:call-template name="munderover"> <xsl:with-param name="base"> <xsl:call-template name="startspace"> <xsl:with-param name="symbol" select="./*[1]"/> </xsl:call-template> </xsl:with-param> <xsl:with-param name="under"> <xsl:call-template name="startspace"> <xsl:with-param name="symbol" select="./*[2]"/> </xsl:call-template> </xsl:with-param> <xsl:with-param name="over"> <xsl:call-template name="startspace"> <xsl:with-param name="symbol" select="./*[3]"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template name="munderover"> <xsl:param name="base"/> <xsl:param name="under"/> <xsl:param name="over"/> <xsl:choose> <xsl:when test="$over='¯'"> <!-- OverBar - over bar --> <xsl:text>\overline{</xsl:text> <xsl:call-template name="munder"> <xsl:with-param name="base" select="$base"/> <xsl:with-param name="under" select="$under"/> </xsl:call-template> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test="$over='︷'"> <!-- OverBrace - over brace --> <xsl:text>\overbrace{</xsl:text> <xsl:call-template name="munder"> <xsl:with-param name="base" select="$base"/> <xsl:with-param name="under" select="$under"/> </xsl:call-template> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test="$under='̲'"> <!-- UnderBar - combining low line --> <xsl:text>\underline{</xsl:text> <xsl:call-template name="mover"> <xsl:with-param name="base" select="$base"/> <xsl:with-param name="over" select="$over"/> <xsl:with-param name="pos_over" select="3"/> </xsl:call-template> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test="$under='︸'"> <!-- UnderBrace - under brace --> <xsl:text>\underbrace{</xsl:text> <xsl:call-template name="mover"> <xsl:with-param name="base" select="$base"/> <xsl:with-param name="over" select="$over"/> <xsl:with-param name="pos_over" select="3"/> </xsl:call-template> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test="translate($base,'∏∐⋂⋃⊔', '∑∑∑∑∑')='∑'"> <!-- if $base is operator, such as ∑ /sum L: summation operator ∏ /prod L: product operator ∐ /coprod L: coproduct operator ⋂ /bigcap ⋃ /bigcup ⊔ /bigsqcup --> <xsl:apply-templates select="./*[1]"/> <xsl:text>_{</xsl:text> <xsl:apply-templates select="./*[2]"/> <xsl:text>}^{</xsl:text> <xsl:apply-templates select="./*[3]"/> <xsl:text>}</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>\underset{</xsl:text> <xsl:apply-templates select="./*[2]"/> <xsl:text>}{\overset{</xsl:text> <xsl:apply-templates select="./*[3]"/> <xsl:text>}{</xsl:text> <xsl:apply-templates select="./*[1]"/> <xsl:text>}}</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template>
</xsl:stylesheet>