好的,这对我来说是一次非常令人沮丧的冒险。我连续几天花了很多时间试图让MathJax启用并识别ipython笔记本中Markdown单元格中的mhchem扩展。数学表达式运行良好,但mhchem宏\ce
\cf
\cee
只是无法识别。我尝试在MathJax/config/default.js
文件中启用扩展程序。我尝试在Markdown窗口中添加以下脚本代码
<script type="text/x-mathjax-config">
MathJax.Hub.Config({TeX: {extensions:["TeX/mhchem.js"]}
...
});
</script>
我已经尝试过在互联网上找到的每一个技巧和提示。似乎没什么用。
我正在运行debian wheezy。我想也许默认的mhchem和MathJax包导致了这个问题,所以我为ipython notebook安装了一个自定义版本的MathJax到我的profile_default / static目录中,并配置了ipython来使用它。再次,数学很好,化学是不行。我可以直接从TeX使用mhchem扩展,但MathJax只是拒绝加载扩展或识别\ce
标记。
我很难过!
有人有什么想法吗?
答案 0 :(得分:11)
感谢您的回答。我曾尝试使用没有Tex/
的脚本加载脚本。我曾尝试/ce
\ce
。几乎可以想象的一切。我终于找到了一个解决方案,它如下:
如果我在数学表达式中使用'非标准'/require
宏来强制加载mhchem扩展,那么一切都很有效。
我在Markdown单元格的顶部添加了以下代码
$$\require{mhchem}$$
奇怪的是,一旦我在第一个降价单元的第一行完成了这项工作,它似乎在整个笔记本中完美运行。甚至在我执行以下内容的代码页中测试mhchem扩展:
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
display(Math(r'\ce{H2O}'))
如果没有/require
宏,上面的代码会正确生成数学函数,但化学公式将简单地呈现为'\ ceH2O'
通过包含/require
行,笔记本中的所有mhchem用法似乎都能正常工作。
另外,我应该注意到我正在运行从Debian Jesse存储库安装的ipython包。事实证明仍然是0.13。最后,我删除了这些软件包并使用setuptools直接安装了1.10。通过此安装,MathJax开箱即用。
无论如何,希望这会为其他一些不好的化学用户带来一些挫败感
答案 1 :(得分:6)
如果您希望将创建的每个笔记本用于执行此操作,首选方法是将其放入ipython配置文件的custom.js
文件中。具体来说,只需将以下内容放在该文件中:
/* Add some extensions to mathjax */
MathJax.Hub.Config({
TeX: {
extensions: ["mhchem.js"]
},
});
如果您不知道在哪里找到该文件,可以运行
ipython profile locate
命令行上的。它应该在该目录下的static/custom/
中。 (我想如果您的ipython配置文件太旧,您可能需要创建static/custom/
和该文件。)
我自己的custom.js
中有更多内容,例如扩展程序
"AMSmath.js", "AMSsymbols.js", "autobold.js",
和other mathjax options,以及自定义键盘快捷键等。所以可以做很多事情。
答案 2 :(得分:2)
首先,注意命令是\ce
,\cf
和\cee
,而不是/ce
,/cf
和/cee
,所以如果你输入了后者,那肯定是他们没有做到你期望的一个原因。
此外,您还没有完成配置,也没有提供MathJax.js的加载方式,因此不清楚您所做的事情是否有效或现在。但是,如果您的HTML页面包含
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: {extensions: ["mhchem.js"]}
});
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
然后那应该为你做。请特别注意,您不需要在TeX/
前使用mhchem.js
,因为您的扩展阵列是TeX块的一部分,并且MathJax知道在TeX目录中查找这些内容。最后,如果您使用config=TeX-AMS_HTML
(或其他配置文件之一),则不会加载default.js
,因此无效。
如果这不能解答您的问题,请发布有关您如何加载MathJax的更多详细信息(我担心我不知道ipython笔记本如何处理它)。