2016-06-02 10 views
0

Я пытаюсь создать MathML в соответствии с Элементарной математикой для длительного добавления. Из примеров из W3 website существуют только назначения без десятичной точки, например.Презентация MathML: Как правильно разместить переносы длинного добавления десятичных чисел в элементарной математике?

<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> 

Это будет представлено как: enter image description here

Итак, я только что создал свои собственные 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> 

И результат: enter image description here

Вы можете видеть, что переходящие запасы не правильно установлены. Они начинаются перед (невидимой) десятичной точкой влево, вместо того, чтобы начинать с самого правого столбца влево.

Кто-нибудь знает, как правильно разместить эти переносы с помощью элементарной математики в соответствии с MathML? (Я также пытался использовать stackalign='right' в качестве атрибута mstack, но он тоже не очень хорошо выглядит.)

Заранее спасибо!

+0

Какой двигатель рендеринга вы используете? –

+0

Кроме того, носители должны пройти до линии, на которую они воздействуют. –

+0

Да, вы правы в размещении 'mscarries' перед соответствующей строкой, но в моем случае я пытаюсь представить математику в соответствии с австрийскими математическими школьниками (что выглядит выше). Я попытался разместить «mscarries» перед первой строкой. Но это ничего не меняет. Я использую библиотеку Java под названием fmath с этого сайта: http://www.fmath.info/formula/java/how_to_use.jsp#mathml – APex

ответ

1

Насколько я знаю, веб-средство визуализации MathML не поддерживает так называемую «элементарную математическую» часть MathML 3 достаточно хорошо.

Как указано в комментариях, fmath, похоже, не поддерживает location="s".

WIRIS находится ближе всего (с небольшими визуальными глюками), MathJax's experimental extension имеет проблемы с этим (из-за его Hacky 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.