MathJax 方程编号不会在 GitHub 页面上使用 Jekyll 显示



这是我的mathjax.html

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
tex: {
equationNumbers: { autoNumber: "AMS" },
tagSide: "right"
},
tex2jax: {
inlineMath: [ ['$','$'], ["\(","\)"] ],
displayMath: [ ['$$','$$'], ["\[","\]"] ],
processEscapes: true
}
});
</script>
<script type="text/javascript"
charset="utf-8"
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

它包含在_includes文件夹中的head.html

{% include mathjax.html %}

这反过来又在_layouts文件夹中的default.html中引用

{%- include head.html -%}

当我在通过 GitHub Pages 部署的 Jekyll 网站上的 Markdown 文档中使用label{eq:xyz}ref{eq:xyz}eqref{eq:xyz}时,

  • 方程未编号
  • 公式引用显示为"(???(">

例:

$$ label{eq:MSE}tag{1}
mathrm{MSE}(hat{theta}) = mathrm{Var}(hat{theta}) - mathrm{Bias}(hat{theta},theta)^2
$$
(...)
eqref{eq:MSE}

我几乎尝试了我在互联网上可以找到的任何MathJax配置,但无济于事。我让它工作的唯一方法是在每个方程的标签后添加tag{1}tag{2}tag{3}...,即使这样,使用begin{split} ... end{split}的方程仍然没有编号。谁能告诉我出了什么问题?

对于autoNumber: "AMS",只有某些方程环境会自动编号。 特别是,由$$...$$分隔的数学不会自动编号;为此,您需要使用begin{equation}...end{equation}(或其他编号对齐环境之一(。 因此,使用tag{}是使用$$...$$获取方程的方程编号的唯一方法。

如果要对双美元分隔的显示公式进行编号,请使用autoNumber: 'all'。 这将使每个显示的方程式都有一个数字,而不仅仅是 AMS 编号的环境。

另请注意,split环境不提供公式编号;它用于外部编号环境。


编辑:事实证明,您的问题是TeX配置块的大写。 它应该是TeX:而不是tex:(在版本 2 中,这是您正在使用的版本(,因此您的 TeX 配置未被 TeX 输入 jax 找到,因此未被使用。 这是一个工作示例:

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: {
equationNumbers: { autoNumber: "AMS" },
tagSide: "right"
},
tex2jax: {
inlineMath: [ ['$','$'], ["\(","\)"] ],
displayMath: [ ['$$','$$'], ["\[","\]"] ],
processEscapes: true
}
});
MathJax.Hub.Register.StartupHook("TeX AMSmath Ready", function () {
MathJax.InputJax.TeX.Stack.Item.AMSarray.Augment({
clearTag() {
if (!this.global.notags) {
this.super(arguments).clearTag.call(this);
}
}
});
});
</script>
<script type="text/javascript" charset="utf-8"
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS_CHTML">
</script>
<p>
begin{equation}
label{eq:square}
begin{split}
(x+1)^2 &= (x+1)(x+1)\
&= x^2 + 2x + 1
end{split}
end{equation}
</p>
<p>
Link to equation eqref{eq:square}
</p>

我还更改了CDN以不成为退役cdn.mathjax.org,并将配置文件更改为仅加载TeX(而不是MathML(并使用CommonHTML输出而不是较旧(和较慢(的HTML-CSS输出的配置文件。 最后,我删除了不需要的配置部分(extensionsjax数组,因为这些已经包含在组合配置文件TeX-AMS_CHTML中。

最新更新