Presentation MathML:如何在初等数学中正确放置十进制长加法的结转?

Presentation MathML: How to place carryovers of long addition of decimal numbers in Elementary Math correctly?

我正在尝试根据 Elementary Math for Long Addition 生成 MathML。从 W3 website 的例子中,只有没有小数点的赋值,例如

<mstack>
  <mscarries crossout='updiagonalstrike'>
    <mn>2</mn>  <mn>12</mn>  <mscarry crossout='none'> <none/> </mscarry>
  </mscarries>
  <mn>2,327</mn>
  <msrow> <mo>-</mo> <mn> 1,156</mn> </msrow>
  <msline/>
  <mn>1,171</mn>
</mstack>

这将表示为:

所以,我刚刚创建了自己的 MathML 文件,其中包含带小数点的数字。我的 MathML 是:

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstack>
    <mn>789.255</mn>
    <msrow>
       <mo>+</mo>
       <mn>56.86</mn>
    </msrow>
    <mscarries>
       <mn>1</mn>
       <mn>1</mn>
       <mn>1</mn>
       <mn>1</mn>
       <none/>
       <none/>
    </mscarries>
    <msline/>
    <mn>846.115</mn>
  </mstack>
</math>

结果是:

可以看到遗留物没有正确放置。它们从左边的(不可见的)小数点前开始,而不是从最右边的列开始到左边。

任何人都知道如何根据 MathML 使用初等数学正确放置这些遗留物? (我也尝试使用 stackalign='right' 作为 mstack 的属性,但它看起来也不太好。)

提前致谢!

据我所知,没有任何基于 Web 的 MathML 渲染器能够很好地支持 MathML 3 的所谓 "elementary math" 部分。

如评论中所述,fmath似乎不​​支持location="s"

WIRIS is closest (with minor visual glitches), MathJax's experimental extension 在这方面遇到了麻烦(由于其骇人听闻的 msline 技巧)但可以大致正确。

不幸的是,它们在错误方面有所不同,因此这里为每个示例提供了一个 MathML 示例。

以下在 WIRIS(但不是 MathJax)中运行良好:

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstack>
    <mn>789.255</mn>
    <mscarries location="s">
       <mn>1</mn>
       <mn>1</mn>
       <mn>1</mn>
        <none/>
       <mn>1</mn>
        <none/>
        <none/>
    </mscarries>
    <msrow>
       <mo>+</mo>
       <mn>56.86</mn>
       <none/>
    </msrow>
    <msline/>
    <mn>846.115</mn>
  </mstack>
</math>

下一个与 MathJax(使用 mml3 扩展名,例如,使用 http://codepen.io/pkra/pen/QwbJWa)大致兼容,但不适用于 WIRIS。

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstack>
    <mn>789.255</mn>
    <mscarries position="-2" location="s">
       <mn>1</mn>
       <mn>1</mn>
       <mn>1</mn>
        <none/>
       <mn>1</mn>
    </mscarries>
    <msrow>
       <mo>+</mo>
       <mn>56.86</mn>
       <none/>
    </msrow>
    <msline/>
    <mn>846.115</mn>
  </mstack>
</math>

免责声明:我是 MathJax 团队的一员。