这是我的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输出的配置文件。 最后,我删除了不需要的配置部分(extensions
和jax
数组,因为这些已经包含在组合配置文件TeX-AMS_CHTML
中。