数学公式和数字(内联)的最佳语义 HTML 元素是什么?

Kai*_*ack 10 html semantic-markup

我写了很多数学文章,想知道在文本中标记数字/公式的最佳方法是什么。

\n

我主要使用 Latex,但我会尽量避免使用它,并在合适的情况下使用内联 HTML 元素。

\n

现在我正在使用<code>123</code>(样式为内联CSS),这会产生易于阅读的文本块,例如:

\n

内联代码示例

\n

但由于它不是code,因此它在语义上是不正确的。\n

\n

元素研究

\n

我试图找到语义上最合适的 HTML 元素。这些是我的结果:

\n
    \n
  1. HTML元素<var>
  2. \n
\n
\n

该元素表示数学或计算机编程上下文中的变量。

\n
\n

但不适用于数字、公式。

\n
    \n
  1. 另外<q>(行内引用),<abbr>或者<dfn>似乎不适用。

    \n
  2. \n
  3. <data>看起来有点宽泛,并且带有数据属性。

    \n
  4. \n
  5. <mark>将是一名候选人。

    \n
  6. \n
\n
\n

“该标签突出显示内容,因为它在某些情况下具有特殊的相关性。”

\n
\n

正如你所看到的,我正在猜测并需要建议。

\n
\n

<数学> 标签

\n

有一个单独的<math>元素(参考)。

\n
\n

该元素用于在当前行中包含数学表达式。

\n
\n

它专为与MathML一起使用而设计。HTML 不能在内部使用,因为内容是使用预期的 MathML 语法呈现的。

\n

例子:

\n
<math>&int;_a_^b^{f(x)<over>1+x} dx</math>\n<math>Z<sub>1</sub> = 100 \xe2\x82\xac</math>\n
Run Code Online (Sandbox Code Playgroud)\n

结果:

\n

\xe2\x88\xab_a_^b^{f(x)1+x} dx\nZ 1 = 100 \xe2\x82\xac

\n
\n第一个示例工作正常,第二个示例失败(甚至没有渲染)。\n
\n

...完整的 MathML 表达式必须包含在标签中。(...) 封闭标签的存在应该是对 MathML 内容的合理启发式测试。(...) 然而,MathML 支持 HTML 的问题带来了许多困难。(...) 因此,目前 MathML 规范不允许 MathML 表达式中包含任何 HTML 元素。

\n
\n