我按照this question的答案,并使用以下内容在Jupyter笔记本中获取等式数字:
%%javascript
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
但是,每次我使用其中的等式更新降价单元格时,数字会增加1或继续从笔记本中已有的最大数字开始。
例如,如果单元格被编辑两次,则第一个等式可能被编号为(3),并且它是笔记本中唯一的等式,或者如果笔记本中有4个等式,则可能编号为(5)细胞编辑一次。如果我关闭笔记本并再次打开它,所有数字都是正确的。
有没有办法阻止这种情况发生或修复它而不关闭和打开笔记本?
答案 0 :(得分:2)
如果你添加
MathJax.Hub.Register.StartupHook("TeX AMSmath Ready", function () {
var AMS = MathJax.Extension['TeX/AMSmath'];
MathJax.InputJax.TeX.postfilterHooks.Add(function (data) {
var jax = data.script.MathJax;
jax.startNumber = AMS.startNumber;
jax.eqLabels = AMS.eqlabels;
jax.eqIDs = AMS.eqIDs;
});
MathJax.InputJax.TeX.prefilterHooks.Add(function (data) {
var jax = data.script.MathJax;
if (jax.startNumber != undefined) {
AMS.startNumber = jax.startNumber;
Object.keys(jax.eqLabels).forEach(function (x) {delete AMS.labels[x]});
Object.keys(jax.eqIDs).forEach(function (x) {delete AMS.IDs[x]});
}
}, 1);
});
到您的%%javascript
部分,它会设置一些前置和后置过滤器,用于保存有关方程式编号,标签和等式ID的信息,这些信息在处理时是等式的一部分,如果重新处理后,它将重置方程编号以从给定方程的编号开始,并从使用中的方法的记录中清除标签和ID,以便它应使用现有的方程编号重新排版(而不是关于重复\label
个宏,而不是更改用于链接到等式的标记ID。
我认为应该做你想要的。