AsciiMath 中的二阶导数

Second derivative in AsciiMath

我想用 AsciiMath 表达 "the second derivative of f(x)"。

在 LaTeX 中,它只是 f''(x):

AsciiMath 中的相同结果是单引号而不是素数符号:

我可以使用 f^'(x)

在 AsciiMath 中获得完美的一阶导数

但同样的方法不适用于二阶导数:f^('')(x):

AsciiMath 中是否有一种语法可以产生与 LaTeX 相同的输出,使用主符号而不是单引号?

试试这个 f^('')(x) 它产生以下

我可以通过插入一个空文本块并将第二个素数符号放在上面来实现它,如下所示:f^'text()^'(x)

还有一个稍微短一些的文本块使用引号的形式:f^'""^'(x)

正如您所指出的,AsciiMath 不能很好地处理这种情况。目前建议的方法会产生质量较差的 MathML,虽然 MathJax 的输出甚至可以处理这种笨拙的 MathML,但呈现的本机 MathML(如 Firefox 的)将产生更差的结果。这是由 Firefox 的原生 MathML 呈现的f^'text()^'(x)

由于底层 MathML 有两个单独的 <msup> 元素,并且两个上标的底边高度不同,因此渲染效果很差:

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstyle displaystyle="true">
    <mrow>
      <msup>
        <mi>f</mi>
        <mo>&#x2032;</mo>
      </msup>
      <msup>
        <mrow>
          <mtext></mtext>
        </mrow>
        <mo>&#x2032;</mo>
      </msup>
    </mrow>
    <mrow>
      <mo>(</mo>
      <mi>x</mi>
      <mo>)</mo>
    </mrow>
  </mstyle>
</math>

产生更好 MathML 的一个可能的解决方案是使用双素数 unicode 字符 U+2033,如 f^″(x),或者如果您在 HTML 页面中输入它,如f^&#x2033;(x)。这由 MathJax 的 HTML-CSS 输出呈现为

Forefox 的原生 MathML 渲染器。此外,AsciiMath 为该输入生成的 MathML 在语义上更有意义:

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstyle displaystyle="true">
    <mrow>
      <msup>
        <mi>f</mi>
        <mo>&#x2033;</mo>
      </msup>
      <mrow>
        <mo>(</mo>
        <mi>x</mi>
        <mo>)</mo>
      </mrow>
    </mrow>
  </mstyle>
</math>

U+2034 处还有一个三重素数,U+2057 处还有一个四重素数,以备不时之需。如果 AsciiMath 可以自动将两个单独的素数组合成 U+2033 就好了,但目前还没有这样做。