MathML 表格

在了解了所有基础数学符号后,接下来需要考虑表格布局,这可用于类似矩阵的表达式和其他高级数学布局。

MathML 表格元素

MathML 表格元素与 HTML 表格 相似:<mtable> 元素代表一个数学表格,它的子元素是 <mtr> 元素(代表行),而每一行又包含 <mtd> 元素作为子元素(代表单元格)。<mtable> 元素可以插入到 MathML 公式中的任何位置。<mtd> 元素可以包含任意数量的 MathML 子元素,并将它们布局为一个 <mrow> 容器。

表格通常用于类似矩阵的表达式(包括向量)。以下是一个取自关于 CSS matrix() 函数的文章中的基本示例:

html
<math display="block">
  <mrow>
    <mo>(</mo>
    <mtable>
      <mtr>
        <mtd>
          <mi>a</mi>
        </mtd>
        <mtd>
          <mi>c</mi>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <msub>
            <mi>t</mi>
            <mi>x</mi>
          </msub>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mi>b</mi>
        </mtd>
        <mtd>
          <mi>d</mi>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <msub>
            <mi>t</mi>
            <mi>y</mi>
          </msub>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>1</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>1</mn>
        </mtd>
      </mtr>
    </mtable>
    <mo>)</mo>
  </mrow>
</math>

允许单元格跨越多行和多列

这同样与 HTML 表格 类似。<mtd> 元素接受 columnspanrowspan 属性,用于指示单元格跨越多个行和列。下方内部矩阵跨越了外部矩阵的两列。

注意: 出于历史原因,MathML 中用于列跨越的属性名为 columnspan,而不是 colspan

用于高级布局的用法

除了表示类似矩阵的对象外,MathML 表格有时也用于数学公式内的复杂布局,例如在 维基百科的勒让德符号定义 中。在此,不同的情况写在三行中,而值和条件则放置在两列中。

警告: <mtable> 文章 通过特殊属性(如对齐或间距)提供了更高级的布局选项。这些属性起源于 CSS 等效项之前,最初是为非 CSS 感知的渲染器设计的。但是,这些属性可能并未在所有浏览器中实现。未来,<mtable> 用于纯布局目的(即非实际的类似矩阵的对象)很可能被基于 CSS 的替代方案取代。

总结

在本篇文章中,我们回顾了 <mtable><mtr><mtd> 元素,它们是 HTML 中表格元素的对应项。我们了解了如何使用它们来表示类似矩阵的对象,以及它们有时如何用于复杂的布局。

您几乎完成了本模块的学习——我们只剩最后一件事要做。在 三个著名的数学公式评估 中,您将运用新知识,使用 HTML 和 MathML 重写一篇小数学文章。

另见