好吧,这对我来说是一次非常令人沮丧的冒险。我连续几天花了很多时间试图让MathJax启用并识别ipython笔记本中标记单元格中的mhchem扩展。数学表达式工作正常,但mhchem宏无法识别。我已经尝试在MathJax/config/default中启用该扩展。js
文件。我试着在Markdown窗口中添加以下脚本代码
<script type="text/x-mathjax-config">
MathJax.Hub.Config({TeX: {extensions:["TeX/mhchem.js"]}
...
});
</script>
我已经尝试了在互联网上能找到的每一个技巧和窍门。似乎什么都不管用。
我正在运行debian的喘息声。我想可能是默认的mhchem和MathJax包导致了这个问题,所以我在我的profile_default/静态目录中安装了一个自定义版本的MathJax for ipython笔记本,并配置ipython使用这个。同样,数学很好,化学不行。我可以直接从TeX使用mhchem扩展,但是MathJax只是拒绝加载扩展或识别\ce
标签。
我被难住了!
有人有什么想法吗?
首先,请注意,这些命令是\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>
那你就可以了。请特别注意,您不需要在mhchem前面使用
因为扩展数组是TeX块的一部分,MathJax知道如何在TeX目录中查找这些扩展数组。最后,如果使用TeX/
。jsconfig=TeX-AMS_HTML
(或其他配置文件之一),则使用default。js
未加载,因此没有效果。
如果这还不能回答您的问题,请发布更多关于您如何加载MathJax的详细信息(恐怕我不知道ipython notebook是如何处理的)。
如果你想让你创建的每一个笔记本都使用它,最好的方法是将它放入你的ipython个人资料的定制中。js
文件。具体来说,只需在该文件中输入以下内容:
/* Add some extensions to mathjax */
MathJax.Hub.Config({
TeX: {
extensions: ["mhchem.js"]
},
});
如果你不知道文件在哪里,你可以跑
ipython profile locate
在命令行上。它应该在该目录下的static/custom/
中。(我认为如果您的ipython配置文件太旧,您可能需要创建静态/自定义/
和文件。)
我自己的定制。js有更多的功能,比如扩展
"AMSmath.js", "AMSsymbols.js", "autobold.js",
和其他mathjax选项,以及自定义键盘快捷键等。所以有很多事情可以做。
谢谢你的回答。我试着在没有Tex/
的情况下加载脚本。我试过/ce
\ce
。几乎所有可以想象的事情。我最终找到了一个解决方案,具体如下:
如果我在数学表达式中使用'non-standard'/require
宏来强制加载mhchem扩展,那么一切都很好。
我在降价单元格的顶部添加了以下代码
$$\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在这次安装中开箱即用。
不管怎么说,希望这能让其他一些糟糕的化学用户少一些沮丧
我回顾了各种相关问题,包括 如何让MathJax在ipython笔记本中启用mhchem扩展 但我不能让它工作。。。 我的测试用例很简单 期待直立的$\pi$,但目前只是'\uppi'回来了。 我已经尝试了以下使用细胞魔法 这会生成
我试图找到一种方法,让mathjax在我的iPython笔记本上不使用STIX字体进行数学运算。相反,我更希望它使用“TeX”字体。根据我应该使用的Mathjax留档: 尽管如此,我不知道该把这个放在哪里。我已经试着把这段代码放到我的自定义代码中。js文件属于我自己的ipython配置文件,但它不起作用。理想情况下,我想对mathjax进行ipython配置文件特定的调整。
在了解了如何将mhchem插入IPython笔记本中的MathJax表达式之后(从这个问题开始),我非常高兴,直到我想将笔记本转换为PDF。我的降价单元格包含: 但尝试使用以下终端命令将笔记本转换为PDF 导致一个错误-类似于这篇文章。但是提出的解决方案()无法被标记单元格中的MathJax解释器识别。有什么想法或解决方法吗? IPython 3.0.0/MiKTeX 2.9/win7x86
问题内容: 我正在使用内联模式下的IPython Notebook和plot命令绘制一个NumPy值数组。 结果输出为: 然后,我的图显示在这些输出线的下方。 有没有办法只显示图并从输出中隐藏? 问题答案: 您可以使用分号结束行。这样可以在生成图时抑制不必要的输出: 通常,使用分号可以阻止IPython从代码块的该行打印任何输出值。例如,执行包含代码的单元将不会输出。 另一种方法是将变量绑定到图:
如何在IPython笔记本中显示LaTeX代码?
在ipython笔记本中使用matplotlib内联后端时,默认行为是使用bbox_inches='tight'通过savefig()在内部生成嵌入的png图像。这消除了轴周围的空白,在大多数情况下非常有用。 但是,有时可能需要(暂时)禁用此功能,例如,当他想要手动保持两个图形垂直对齐时(假设我们不想在此处使用子图): 那么如何禁用这种行为呢?谢谢~ 为了使这里涉及的问题更加明确(多亏了Anzel