我在 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>
当我渲染下面的 latex 时,
\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) & = \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}
最佳答案
在 HTML 中,& 符号 ( &
) 用作引入实体的特殊字符,例如 <
对于 <
和>
对于 >
, 等等。因此,要在文档中获取显式的“&”符号,您需要使用 &
,它是 & 符号的实体。大多数为您提供编辑器来输入页面内容的内容管理系统 (CMS) 都会翻译 &
至&
自动为您服务,这是正确的做法。
我怀疑在你的情况下, &
的翻译至&
进行了两次,结果是&amp;
在您的 HTML 页面中。当浏览器读取该内容时,它会翻译第一个 &
返回&
,离开&
在您的页面中。 MathJax 看起来像 r^{2} & = s^{2} + t^{2} \\
作为对齐中的一行,并(正确地)将其解析为 r^{2}
在第一列和 amp; = s^{2} + t^{2}
在第二个。
如果您使用浏览器的“查看源代码”选项,您应该能够看到原始的 &amp;
在 HTML 中(除非您的 CMS 动态加载内容,否则您无法查看原始源)。
所以问题似乎出在您的 CMS 上,它似乎正在执行 &
至&
转换两次。尽管您可以配置 MathJax 来运行过滤器来转换 &
返回&
第二次(在浏览器完成转换之后),真正的问题在于 CMS,而不是 MathJax,因此这就是应该应用修复的地方(应用于 CMS,而不是 MathJax)。
关于javascript - MathJax 中的 HTML 实体(<、> 和 &)支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500227/