如何为iPython笔记本配置mathjax?

Bla*_*ilk 6 python ipython mathjax ipython-notebook

我正试图找到一种方法让mathjax在我的iPython笔记本中不使用STIX字体进行数学运算.相反,我宁愿让它使用'TeX'字体.根据Mathjax的文档,我应该使用:

MathJax.Hub.Config({
  "HTML-CSS": {
    preferredFont: "TeX"
  }
});
Run Code Online (Sandbox Code Playgroud)

话虽这么说,我不知道在哪里放这个.我已经尝试将这一块代码放入我自己的ipython配置文件中的custom.js文件中,但它不起作用.理想情况下,我想对mathjax进行ipython配置文件特定的调整.

Ste*_*Shi 6

我最近遇到了确切的问题.我真的不喜欢STIX-Web渲染方程的默认字体.经过一段时间的实验,我找到了一种方法来改变Jupyter Notebook中的MathJax字体.我的Jupyter笔记本版本是4.3.1,它随Anaconda一起提供.我认为其他版本的解决方案应该类似.

我试着custom.js/notebook/static/custom/custom.js和中编辑~/.jupyter/custom/custom.js.不行.我也试过编辑mathjaxutils.js.它什么都不做.最后我看到这篇文章https://github.com/jupyter/help/issues/109.我意识到Jupyter main.min.js用来读取MathJax配置.所以这是解决方案:

  • MathJax(https://github.com/mathjax/MathJax)下载Github.
  • 解压缩MathJax文件并进入文件夹
    • 复制jax/output/HTML-CSS/fonts/TeX到directoy../notebook/static/components/MathJax/jax/output/HTML-CSS/fonts/
    • 复制fonts/HTML-CSS/TeX../notebook/static/components/MathJax/fonts/HTML-CSS/
  • 打开../notebook/static/notebook/js/main.min.js,搜索availableFonts.它应该在第14894行附近.改为

    ...
    availableFonts: ["STIX-Web","TeX"],
    imageFont: null;
    preferredFont: "TeX",
    webFont: "TeX"
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 刷新笔记本.


Mik*_*ike 3

确保配置正确的一个简单测试是preferredFont: "TeX"scale: 200. 然后保存并重新加载笔记本。数学显然应该比以前大得多。因此,假设有效,就意味着您config.js正在做需要做的事情。

现在,更重要的是,尝试添加另一行,以便您的配置看起来像

MathJax.Hub.Config({
  "HTML-CSS": {
    availableFonts: ["TeX"],
    preferredFont: "TeX",
  }
});
Run Code Online (Sandbox Code Playgroud)

保存后,不要忘记完全刷新笔记本页面。这会覆盖(我猜测是)该变量的默认值availableFonts,如果 mathjax 找不到 TeX,它将允许 STIX。我不知道为什么它似乎忽略了首选字体,但这看起来更像是 mathjax 问题而不是 ipython 问题。

所以现在,如果它仍然不是 TeX 字体(mathjax 似乎称之为MathJax_Math-Italic.otf或类似字体),我猜 mathjax 只是找不到该字体,并且可能已经依靠其他字体了。如果是这种情况,则说明您的 mathjax 安装有问题。