0

我在 TEX 代码中遇到了 HTML 实体的问题。我浏览了这个链接并尝试了那里的所有步骤,但是,我仍然面临"&"符号问题。

这是我的 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 在浏览器中呈现)。请给我建议。 在此处输入图像描述

4

1 回答 1

1

在 HTML 中,和号 ( &) 用作引入实体的特殊字符,例如&lt;for<&gt;for>等。因此,要在文档中获得明确的 & 符号,您需要使用&amp;,它是 & 符号的实体。大多数为您提供编辑器以输入页面内容的内容管理系统 (CMS) 会自动为您翻译&&amp;这是正确的做法。

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

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

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

于 2020-03-09T15:05:12.870 回答