MathML 分数和根

本文介绍如何通过嵌套分数和根来构建更复杂的 MathML 表达式,这依赖于文本容器。

先决条件 已安装基本软件,了解文件操作的基础知识,以及 HTML 基础知识(学习HTML 简介)。
目标 熟悉用于编写分数和平方根的 MathML 元素。

<mfrac>、<msqrt> 和 <mroot> 的子树

MathML 入门文章中,我们已经了解了<mfrac> 元素来描述分数。让我们考虑一个基本示例,该示例添加了用于根的新元素(<msqrt><mroot>)。

html
<math>
  <mfrac>
    <mtext>child1</mtext>
    <mtext>child2</mtext>
  </mfrac>
</math>
<br />
<math>
  <msqrt>
    <mtext>child1</mtext>
    <mtext>child2</mtext>
    <mtext>...</mtext>
    <mtext>childN</mtext>
  </msqrt>
</math>
<br />
<math>
  <mroot>
    <mtext>child1</mtext>
    <mtext>child2</mtext>
  </mroot>
</math>

以下是浏览器渲染方式的屏幕截图

Screenshot of mfrac, msqrt, mroot

  • 我们已经知道<mfrac> 元素被渲染为分数:第一个子元素(分子)绘制在第二个子元素(分母)之上,并用水平线隔开。
  • <msqrt> 被渲染为平方根:它的子元素像一个<mrow>一样布局,前面带有根号 √,并完全覆盖在一个横线上。
  • 最后,<mroot> 元素被渲染为 n 次根:第一个元素被根号覆盖,而第二个元素用作根的次数,并作为前缀上标渲染。

主动学习:嵌套不同的元素

这是一个简单的练习,用于验证您是否理解了 MathML 子树与其视觉渲染之间的关系。该文档包含一个 MathML 公式,您必须检查该 MathML 公式中子树的所有对应子树。完成后,您可以检查 MathML 公式的源代码,并验证它是否符合您的预期。

可伸缩的根号

如前所述,<msqrt><mroot> 元素的横线水平延伸以覆盖其内容。但实际上,根号 √ 也延伸以与它们的内容一样高。

html
<math display="block">
  <mroot>
    <msqrt>
      <mfrac>
        <mn>1</mn>
        <mn>2</mn>
      </mfrac>
    </msqrt>
    <mn>3</mn>
  </mroot>
</math>

警告:通常需要特殊的数学字体才能使这种拉伸成为可能,前面的示例依赖于网络字体

没有横线的分数

有些数学概念有时使用分数式表示法来书写,例如二项式系数勒让德符号。使用<mfrac> 元素来标记此类表示法是合适的。对于没有绘制水平线的分数式表示法,请将linethickness="0" 属性附加到<mfrac> 元素。

html
<math display="block">
  <mrow>
    <mo>(</mo>
    <mfrac linethickness="0">
      <mn>3</mn>
      <mn>2</mn>
    </mfrac>
    <mo>)</mo>
  </mrow>
  <mo>=</mo>
  <mn>3</mn>
  <mo></mo>
  <mfrac>
    <mn>3</mn>
    <mn>2</mn>
  </mfrac>
</math>

注意:虽然linethickness 属性可用于指定任意厚度,但最好保留默认值,该值根据数学字体中指定的参数计算得出。

总结

在本课中,我们了解了如何使用<mfrac><msqrt><mroot> 元素来构建分数和根。我们注意到这些元素的一些特殊功能,即分数和根号。我们了解了如何使用linethickness 属性来绘制没有横线的分数。在下一篇文章中,我们将继续讨论基本数学符号,并考虑脚本

另请参阅