如何将公式转换为MathML以在网页中使用

时间:2014-10-19 17:38:15

标签: html xslt math mathjax mathml

我花了几个小时在网上寻找解决方案,并且走了太多奇怪的胡同......

假设我有一个公式:     x ^ 2 + 3x + 32

我想随机选择用文本框替换公式的一部分(我可以这样做)

x^2 + [textbox]x +32

然后显示格式良好的结果,供学生输入。 (我不能这样做)

我看过MathJax和MathML,我认为如果我可以将结果变成mathml格式,包括我排序的文本框。我已经可以很好地使用MathJax显示公式了。

什么不起作用:

  • 使用文本框(替换数字)查找并替换生成的公式

  • 使用文本框(添加注释标签)查找并替换生成的公式

两个approches我试过搞乱间距/剪辑文本框,所以它无法使用。我认为唯一的方法是使用已包含的文本框生成MathML,而不是尝试在之后添加它。

但我不知道怎么做?任何人都可以建议一种方法来生成带有文本框的mathml,以便在mathjax中使用吗?

到目前为止,这是我失败的尝试:

<script type="math/mml" id="scriptTag">
  <math>
    <mfrac>
      <msqrt>
        <mn>
          <semantics>
            <annotation-xml encoding='application/xhtml+xml'>
              <input xmlns='http://www.w3.org/1999/xhtml' type='text' size='4' />
            </annotation-xml>
          </semantics>
       </mn>
     </msqrt>
     <mn> 3 </mn>
    </mfrac>
  </math>
</script>

我可以使用本指南创建基本(无文本框)mathml: http://www.xmlmind.com/tutorials/MathML/

1 个答案:

答案 0 :(得分:3)

我认为现代浏览器允许在HTML5中混合使用HTML元素和MathML元素:

<div>
<h2>Example 2</h2>
<div>
<math>
  <mrow>
    <mn><input type="text" size="4"></mn>
    <mo>*</mo>
    <mi>x</mi>
  </mrow>
</math>
</div>
</div>

&#13;
&#13;
<div>
<h2>Example 2</h2>
<div>
<math>
  <mrow>
    <mn><input type="text" size="4"></mn>
    <mo>*</mo>
    <mi>x</mi>
  </mrow>
</math>
</div>
</div>
&#13;
&#13;
&#13;

这是一个上标示例,Firefox显示输入框:

<div>
<h2>Example msup</h2>
<div>
<math>
  <mrow>
    <msup>
      <mn>2</mn>
      <mn><input type="text" size="4"></mn>
    </msup>
  </mrow>
</math>
</div>
</div>

&#13;
&#13;
<div>
<h2>Example msup</h2>
<div>
<math>
  <mrow>
    <msup>
      <mn>2</mn>
      <mn><input type="text" size="4"></mn>
    </msup>
  </mrow>
</math>
</div>
</div>
&#13;
&#13;
&#13;