首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次细胞运行时木星笔记本方程数增加

每次细胞运行时木星笔记本方程数增加
EN

Stack Overflow用户
提问于 2017-09-20 07:14:52
回答 1查看 1.2K关注 0票数 2

我按照this question的答案,使用以下方法在木星笔记本中获得方程号:

代码语言:javascript
复制
%%javascript
MathJax.Hub.Config({
  TeX: { equationNumbers: { autoNumber: "AMS" } }
});

然而,每次我更新一个带有等式的标记单元格时,这个数字就会从笔记本中的最大数字增加一个或继续。

例如,如果单元格被编辑了两次,第一个方程可能被编号(3),这是笔记本中唯一的方程,或者如果笔记本中有4个方程,并且单元格被编辑一次,则可以编号(5)。如果我关闭笔记本,再打开它,所有的数字都是正确的。

有没有一种方法可以阻止这种情况发生,或者在不关闭和打开笔记本的情况下修复?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 23:03:02

如果你加上

代码语言:javascript
复制
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)重新排版。

我认为这应该能做你想要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46315518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档