我试图找到一种方法让mathjax在我的iPython笔记本中不使用STIX字体进行数学运算。相反,我更愿意让它使用“TeX'字体。根据Mathjax的文档,我应该使用:
MathJax.Hub.Config({
"HTML-CSS": {
preferredFont: "TeX"
}
});
话虽如此,我不确定在哪里放这个。我已经尝试将这段代码放入我自己的ipython配置文件中的custom.js文件中,但它不起作用。理想情况下,我想对mathjax进行ipython配置文件特定的调整。
答案 0 :(得分: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
下载Github
(https://github.com/mathjax/MathJax)。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
。它应该在第1489行附近。将其更改为
...
availableFonts: ["STIX-Web","TeX"],
imageFont: null;
preferredFont: "TeX",
webFont: "TeX"
...
答案 1 :(得分:3)
确保您获得正确配置的简单测试是将preferredFont: "TeX"
更改为scale: 200
。然后保存并重新加载笔记本。数学应该显然比以前更大。所以假设这有效,这意味着你的config.js
正在做它需要的东西。
现在,更重要的是,尝试添加另一行,以使您的配置看起来像
MathJax.Hub.Config({
"HTML-CSS": {
availableFonts: ["TeX"],
preferredFont: "TeX",
}
});
保存后,请不要忘记完全刷新笔记本页面。这会覆盖(我猜的是)default value of that availableFonts
variable,如果mathjax找不到TeX,它将允许STIX。我不确定为什么它似乎忽略了首选字体,但这似乎更像是一个mathjax问题而不是ipython问题。
所以现在,如果它仍然不是TeX字体(mathjax似乎调用MathJax_Math-Italic.otf
或类似),我猜想mathjax只是找不到那种字体,并且可能已经倒退了别的。如果是这种情况,那么你的mathjax安装就会出现问题。
答案 2 :(得分:2)
查看一些numericalmooc课程,例如this one,其中MathJax配置为included through a css
file,这是在笔记本中的某个位置导入的。
答案 3 :(得分:2)
我还想更改Jupyter Notebook中的数学字体。 我认为这是同一个问题:
首先我研究了MathJax文档: http://mathjax.readthedocs.org/en/latest/options/HTML-CSS.html
按照迈克的“比例:200测试”(谢谢!)我发现这个文件是我的Windows机器上正确的配置文件:
C:\ Users \用户mhof.ipython \ profile_default \静\定制\ custom.js。
但是试验如下:
MathJax.Hub.Config({
"HTML-CSS": {
availableFonts: [], preferredFont: null, // force Web fonts
webFont: "Neo-Euler"
}
});
或
MathJax.Hub.Config({
"HTML-CSS": {
availableFonts: ["TeX","STIX-Web","Neo-Euler"],
preferredFont: "Neo-Euler",
}
});
保存文件并在浏览器中刷新(F5)后,没有更改Jupyter Notebook数学字体外观。 (对于“比例:200测试”,差异清晰可见)。
在C:\ Anaconda3 \ Lib \ site-packages \ notebook \ static \ components \ MathJax下查看我的Anaconda安装Mathjax文件我发现HTML-CSS中缺少几种数学字体。 我想在这里解释了原因:https://github.com/jupyter/notebook/issues/1037。 项目Jupyer成员minrk建议如何通过使用以下方式告诉笔记本使用nbextensions中安装的完整MathJax: c.NotebookApp.mathjax_url ='nbextensions / mathjax'
我不知道我需要在哪个文件中使用这个表达式,有人可以帮忙吗?
作为替代试用方法,我用Mathjax项目网页下载的MathJax文件夹替换了Anaconda安装中的MathJax文件夹。 Jupyter笔记本像以前一样运行并显示公式,但在更改字体方面仍然没有成功。
如果有人能在我的试验中给我一个提示,以改变Jupyter笔记本中的数学字体,我会非常感激。
感谢您的回答,并且非常感谢非常有趣的Jupyter Notebook项目。
此致
马尔特
答案 4 :(得分:2)
我已经将@Stefan Shi的answer调整得更容易了,至少如果您安装了命令行svn
。
将以下内容放入名为install_tex_fonts
的脚本文件中(Windows-land中为install_tex_fonts.bat
):
svn export https://github.com/mathjax/MathJax/trunk/fonts/HTML-CSS/TeX/woff fonts/HTML-CSS/TeX/woff
svn export https://github.com/mathjax/MathJax/trunk/jax/output/HTML-CSS/fonts/TeX jax/output/HTML-CSS/fonts/TeX
将脚本文件移动到{PYTHON}/Lib/site-packages/notebook/static/components/MathJax
,其中{PYTHON}
是您安装Python的根目录
install_tex_fonts
(或./install_tex_fonts
来运行该脚本;我猜您还必须chmod a+x
)在~/.jupyter/custom/custom.js
文件中添加以下部分($([IPython.events]).on('app_initialized.NotebookApp')
行应该已存在):
$([IPython.events]).on('app_initialized.NotebookApp', function(){
MathJax.Hub.Config({
"HTML-CSS": {
availableFonts: ["TeX"],
preferredFont: "TeX",
webFont: "TeX"
}
});
答案 5 :(得分:1)
Jupyter附带了自己(较小)的MathJax版本。这就是为什么它找不到(Computer Modern)'TeX'字体的原因-只有STIX字体。
要解决此问题,我可以执行以下操作:
jax
目录。jax
目录:
~/anaconda3/lib/python3.7/site-packages/notebook/static/components/MathJax/jax
~/anaconda3/envs/<ENVIRONMENT>/lib/python3.7/site-packages/notebook/static/components/MathJax/jax
(如果您的python版本不是3.7,请在路径中调整python版本)