开始使用 MathML
在本文中,我们将以一个简单的 HTML 文档为例,看看如何在其中添加 MathML 公式,并介绍一些元素。
通过 <math> 元素在 HTML 中插入公式
MathML 使用与 HTML 相同的语法来表示元素和属性树。特别是,每个数学公式都由一个 <math>
元素表示,可以将其放置在 HTML 页面中。在以下文档中,它位于一段文本中
<!doctype html>
<html lang="en-US">
<head>
<title>My first math page</title>
</head>
<body>
<p>
The fraction
<math>
<mfrac>
<mn>1</mn>
<mn>3</mn>
</mfrac>
</math>
is not a decimal number.
</p>
</body>
</html>
<mfrac>
元素指定一个分数,分数包含一个分子(它的第一个子元素)和一个分母(它的第二个子元素)。这是它在浏览器中的呈现方式
警告:如果您看到的只是“1 3”而不是分数,则您的浏览器可能不支持 MathML。请查看 浏览器兼容性表 获取更多详细信息。
display 属性
请注意,在前面的示例中,公式位于与段落文本相同的行上。但是,通常将较大的数学公式居中显示在单独的行上,如下所示。为此,您需要在 <math>
元素上附加一个 display="block"
属性。
您可能还会注意到外观的一些细微变化:分数的文本和垂直间距变得更大。如果没有 display="block"
属性,高度将最小化以避免干扰周围文本的流动。有了 display="block"
属性,优先考虑的是数学公式的可读性。
注意:这对应于 LaTeX 的内联公式(由美元符号 $...$
标记)和显示公式(由 \[...\]
标记)的概念。
注意:上面提到的外观变化实际上由 math-style
属性控制,该属性对于 <math display="block">
初始值为 normal
,否则为 compact
。在某些 MathML 子树中,此属性可能会自动变为 compact
,但对于本入门教程,我们将忽略这个细微差别。同样,这与 LaTeX 类似。
使用 <mrow> 元素进行分组
<math>
元素实际上可以包含任意数量的子元素,并且基本上会按行呈现它们。例如,简单的公式“1 + 2 + 3”将在 MathML 中这样编码
<math>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<mo>+</mo>
<mn>3</mn>
</math>
<mrow>
元素是一个通用容器,它执行类似的布局,但可以放置在 MathML 子树中的任何位置。它有助于将几个元素组合在一起。例如,以下分数(它的第一个子元素)的分子是“one plus two”。
<math>
<mfrac>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
</mrow>
<mn>3</mn>
</mfrac>
</math>
主动学习:嵌套表达式
作为一个练习,请找出如何使用我们迄今为止看到的 MathML 元素来编写以下表达式。如果您卡住了或想验证解决方案,请查看示例的源代码。
总结
在本文中,我们介绍了如何在 HTML 文档中使用 <math>
元素插入数学公式。我们学习了使用 display="block"
或不使用 display="block"
的 <math>
元素之间的渲染差异。此外,我们还遇到了一些其他的 MathML 元素:用于分数的 <mfrac>
、用于分组的 <mrow>
以及一些文本元素。我们将在下一篇文章中进一步分析这些 文本容器。