Are token elements required in MathML?

时间:2015-08-07 01:33:12

标签: mathml

As the question title states, is it okay to write just

<math>a <msup>x 2</msup> + b x + c</math>

or do you really need to write

<math>
  <mrow>
    <mi>a</mi> <mo>&InvisibleTimes;</mo> <msup><mi>x</mi><mn>2</mn></msup>
    <mo>+</mo><mi>b</mi><mo>&InvisibleTimes;</mo><mi>x</mi>
    <mo>+</mo><mi>c</mi>
  </mrow>
</math>

As far as Firefox goes it doesn't render a

Invalid Markup

error, but that hardly means other browser might not in the future if the spec actually prohibits it officially.

2 个答案:

答案 0 :(得分:0)

  

正如问题标题所述,是否可以只写

<math>a <msup>x 2</msup> + b x + c</math>

,不是

  你真的需要写

吗?
<math>
  <mrow>
    <mi>a</mi> <mo>&InvisibleTimes;</mo> <msup><mi>x</mi><mn>2</mn></msup>
    <mo>+</mo><mi>b</mi><mo>&InvisibleTimes;</mo><mi>x</mi>
    <mo>+</mo><mi>c</mi>
  </mrow>
</math>

,请参阅http://www.w3.org/TR/MathML3/chapter2.html#fund.syntax

  

就Firefox而言,它不会呈现&#34;无效标记&#34;错误,但这很难意味着如果规范实际上正式禁止它,其他浏览器将来可能不会。

在开始浏览器中呈现&#34;无效标记&#34;任何不遵守规范的错误。今天浏览器尝试纠正标记。例如

<p>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
<p>
由于您需要使用

无效

<p></p>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
<p></p>

但是没有浏览器会停止渲染页面。

答案 1 :(得分:0)

MathML用于数学表示标记。它旨在提供正确排版数学公式所需的所有信息。

在数学排版中,标识符(或简称&#34;变量&#34;),运算符和数字的排版方式不同。有很多细微的差别,但仅举几例:标识符通常是斜体样式(并使用数学衬线字体),而数字是罗马风格。操作员在任何一方都使用微妙的间距规则。这只是几个例子。

由于演示MathML并非旨在描述公式的含义,而仅仅是外观,所有这些信息必须在标记中进行编码。 MathML渲染器也可以解释公式。它会查看标记并相应地呈现。

直接创作MathML并不容易,事实上,它主要是以编程方式完成的,而不是直接输入。如果您需要更简单的方法,请尝试使用ASCIImath或LaTeX。像MathJax这样的渲染器也可以渲染它们。