HTML MathJax 中的实体(<、> 和 &)支持

HTML entity(&lt;, &gt; and &amp;) support in MathJax

我遇到了 TEX 代码中 HTML 实体的问题。我完成了 link 并尝试了所有步骤,但我仍然面临 "&" 符号的问题。

这是我的 Mathjax 配置对象:

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    messageStyle: 'none', 
    showMathMenu: false,
    processEnvironments:true,
    tex2jax: { inlineMath: [['$', '$'], ["\(", "\)"]], 
    processClass: "equationrender", 
    ignoreClass:"StylePara"
    } });
</script>

当我渲染下面的乳胶时,

\begin{align}
h(x) &= \int \left( \frac{f(x) + g(x)}{1+ f^{2}(x)}\right)\nonumber\
r^{2} &= s^{2} + t^{2}, \nonumber\
2u + 1 &= v + w^{\alpha},\nonumber\
x &= \frac{y + z}{\sqrt{s + 2u}};
\end{align}

在网页中呈现后,TEX 代码更改如下,

\begin{align}
h(x)  &amp; = \int \left( \frac{f(x) + g(x)}{1+ f^{2}(x)}\right)\nonumber\
r^{2}  &amp; = s^{2} + t^{2}, \nonumber\
2u + 1  &amp; = v + w^{\alpha},\nonumber\
x  &amp; = \frac{y + z}{\sqrt{s + 2u}};
\end{align}

如何将 & 转换为 mathjax 可理解的乳胶代码(请参考 TEX 在浏览器中呈现的屏幕截图)。请给我建议。

在HTML中,符号(&)被用作引入实体的特殊字符,如&lt;表示<&gt; 对应 >,依此类推。因此,要在您的文档中获得一个明确的符号,您需要使用 &amp;,这是一个符号的实体。大多数为您提供编辑器以输入页面内容的内容管理系统 (CMS) 会自动将 & 转换为 &amp;,这是正确的做法。

我怀疑在您的情况下,&&amp; 的翻译进行了两次,结果是 HTML 页面中的 &amp;amp;。当浏览器读取它时,它会将第一个 &amp; 翻译回 &,在您的页面中留下 &amp;。然后 MathJax 看起来像 r^{2} &amp; = s^{2} + t^{2} \ 作为对齐中的一行,并且(正确地)将其解析为第一列中的 r^{2} 和第二列中的 amp; = s^{2} + t^{2}

如果您使用浏览器的 "view source" 选项,您应该能够在 HTML 中看到原始的 &amp;amp;(除非您的 CMS 动态加载内容,您可以在其中看到无法查看原始来源)。

所以问题似乎出在您的 CMS 上,它似乎将 & 转换为 &amp; 两次。尽管您可以将 MathJax 配置为 运行 过滤器以将 &amp; 转换回 & 第二次(在浏览器完成转换后),但真正的问题在于 CMS,而不是 MathJax ,所以这就是应该应用修复程序的地方(应用于 CMS,而不是 MathJax)。