代码之家  ›  专栏  ›  技术社区  ›  user2132672

每次运行单元时,Jupyter笔记本方程数都会增加

  •  2
  • user2132672  · 技术社区  · 7 年前

    我按照答案回答 this question 并使用以下公式在Jupyter笔记本中获得等式数:

    %%javascript
    MathJax.Hub.Config({
      TeX: { equationNumbers: { autoNumber: "AMS" } }
    });
    

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

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

    1 回复  |  直到 4 年前
        1
  •  2
  •   Davide Cervone    7 年前

    如果您添加

    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 \label 宏,而不更改用于链接到公式的标记ID)。