- From: Alexey Shamrin <shamrin@mail.ru>
- Date: Tue, 11 Nov 2003 03:17:36 +0300
- To: www-math@w3.org
- Cc: davidc@nag.co.uk
Hello! There're bugs in http://www.w3.org/Math/XSL/ctop.xsl. 1. <limit/> Example: <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <apply> <limit/> </apply> </math> This example renders as "limit" instead of just "lim" as in http://www.w3.org/TR/MathML2/. 2. <bvar> in <sum/> and <product/> Example: <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <sum/> <bvar> <ci> x </ci> </bvar> <lowlimit> <cn> 0 </cn> </lowlimit> <uplimit> <ci> n </ci> </uplimit> <apply><sin/> <ci> x </ci> </apply> </apply> </math> The above example renders as (tested in latest Mozilla) $\sum_{0}^{n}sin(x)$ instead of $\sum_{x=0}^{n}sin(x)$. As you can see, <bvar> tag is simply ignored. The same happens in <apply> <product/> ... </apply>. I suggest to fix it the following way: --- ctop.xsl 2002-09-20 10:41:40.000000000 +0400 +++ ctop_new.xsl 2003-11-11 03:03:18.000000000 +0300 @@ -910,25 +910,43 @@ <mml:mrow> <mml:msubsup> <mml:mo>∑<!--sum--></mml:mo> - <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit/*|mml:interval/*[1]|mml:condition/*"/></mml:mrow> + <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit|mml:interval/*[1]|mml:condition/*"/></mml:mrow> <mml:mrow><xsl:apply-templates mode="c2p" select="mml:uplimit/*|mml:interval/*[2]"/></mml:mrow> </mml:msubsup> <xsl:apply-templates mode="c2p" select="*[last()]"/> </mml:mrow> </xsl:template> +<xsl:template mode="c2p" match="mml:apply[mml:sum]/mml:lowlimit" priority="3"> +<mml:mrow> +<xsl:apply-templates mode="c2p" select="../mml:bvar/node()"/> +<mml:mo>=</mml:mo> +<xsl:apply-templates mode="c2p"/> +</mml:mrow> +</xsl:template> + + <!-- 4.4.7.2 product --> <xsl:template mode="c2p" match="mml:apply[*[1][self::mml:product]]"> <mml:mrow> <mml:msubsup> <mml:mo>∏<!--product--></mml:mo> - <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit/*|mml:interval/*[1]|mml:condition/*"/></mml:mrow> + <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit|mml:interval/*[1]|mml:condition/*"/></mml:mrow> <mml:mrow><xsl:apply-templates mode="c2p" select="mml:uplimit/*|mml:interval/*[2]"/></mml:mrow> </mml:msubsup> <xsl:apply-templates mode="c2p" select="*[last()]"/> </mml:mrow> </xsl:template> +<xsl:template mode="c2p" match="mml:apply[mml:product]/mml:lowlimit" priority="3"> +<mml:mrow> +<xsl:apply-templates mode="c2p" select="../mml:bvar/node()"/> +<mml:mo>=</mml:mo> +<xsl:apply-templates mode="c2p"/> +</mml:mrow> +</xsl:template> + + <!-- 4.4.7.3 limit --> <xsl:template mode="c2p" match="mml:apply[*[1][self::mml:limit]]"> <mml:mrow> -- Best regards, Alexey mailto:shamrin@mail.ru
Received on Monday, 10 November 2003 19:26:20 UTC