How to write LaTeX in IPython Notebook?
如何在IPython笔记本中显示LaTeX代码?
IPython笔记本使用MathJax在html / markdown中呈现LaTeX。把你的LaTeX数学放在
1 | $$c = \sqrt{a^2 + b^2}$$ |
或者你可以在Python笔记本游览结束时看到Python的LaTeX / Math输出:
1 2 |
这出现在我正在进行的搜索中,通过更多搜索找到了更好的解决方案,IPython笔记本现在具有
请参阅Rich Display System的笔记本导览
LaTeX参考文献:
Udacity的Blog有我见过的最好的LaTeX Primer:它清楚地展示了如何使用易读的LaTeX命令,并且易于记忆!强烈推荐。
此链接具有显示代码和渲染结果的优秀示例!
您可以使用此站点快速了解如何通过示例编写LaTeX。
并且,这是LaTeX命令/符号的快速参考。
总结:在Jupyter / IPython中表示LaTeX的各种方法:
降价单元格的示例:
内联,换行:
1 2 | The equation used depends on whether the the value of $V?max??$ is R, G, or B. |
阻止,包裹:
1 | $$H← ?????0 ?+? \frac{??30(G?B)??}{Vmax?Vmin} ??, if V?max?? = R$$ |
block,wrap in:
1 2 3 |
阻止,包装:
1 2 3 |
代码单元的示例:
LaTex Cell:
1 2 3 4 5 6 7 8 9 10 |
要传入原始LaTeX字符串的Math对象:
乳胶类。注意:您必须自己包含分隔符。这允许您使用其他LaTeX模式,例如
1 2 3 4 5 6 7 8 9 10 11 12 | from IPython.display import Latex Latex(r"""\begin{eqnarray} abla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ abla \cdot \vec{\mathbf{E}} & = 4 \pi ho \\ abla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ abla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}""") |
原始单元的文档:
(抱歉,这里没有例子,只是文档)
Raw cells
Raw cells provide a place in which you can write output directly. Raw cells are not evaluated by the notebook. When passed throughnbconvert , raw cells arrive in the destination format unmodified. For example, this allows you to type full LaTeX into a raw cell, which will only be rendered by LaTeX after conversion bynbconvert .
其他文件:
对于Markdown Cells,引自Jupyter Notebook文档:
Within Markdown cells, you can also include mathematics in a straightforward way, using standard LaTeX notation: $...$ for inline mathematics and $$...$$ for displayed mathematics. When the Markdown cell is executed, the LaTeX portions are automatically rendered in the HTML output as equations with high quality typography. This is made possible by MathJax, which supports a large subset of LaTeX functionality
Standard mathematics environments defined by LaTeX and AMS-LaTeX (the amsmath package) also work, such as \begin{equation}...\end{equation}, and \begin{align}...\end{align}. New LaTeX macros may be defined using standard methods, such as
ewcommand, by placing them anywhere between math delimiters in a Markdown cell. These definitions are then available throughout the rest of the IPython session.
如果您希望数学出现在一行中,请使用$$,例如,
1 | $$a = b + c$$ (line break after the equation) |
如果您在数学后不需要换行符,请使用单个美元符号$,例如,
1 | $a = b + c$ (no line break after the equation) |
您可以选择要标记的单元格,然后编写由mathjax解释的乳胶代码,如上面的响应者之一所述。
或者,iPython笔记本教程的Latex部分很好地解释了这一点。
你可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 | from IPython.display import Latex Latex(r"""\begin{eqnarray} abla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ abla \cdot \vec{\mathbf{E}} & = 4 \pi ho \\ abla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ abla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}""") |
或者这样做:
1 2 3 4 5 6 7 8 9 10 11 12 | %%latex \begin{align} abla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ abla \cdot \vec{\mathbf{E}} & = 4 \pi ho \\ abla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ abla \cdot \vec{\mathbf{B}} & = 0 \end{align} |
更多信息请参见此链接
我开发了prettyPy,它提供了打印方程式的好方法。不幸的是,它不具备性能并且需要测试。
例:
当然,sympy是一个很好的选择,虽然prettyPy不允许评估表达式,但不需要变量初始化。
因为,即使在使用%% latex关键字或$ .. $限制器之后,我也无法使用Code中的所有latex命令,我安装了nbextensions,我可以在Markdown中使用latex命令。按照以下说明操作:https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md然后重新启动Jupyter然后重新启动localhost:8888 / nbextensions,然后激活"Latex Env??ironment for Jupyter",我可以运行许多Latex命令。示例如下:https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html
1 2 3 4 5 6 7 8 9 10 11 12 |
如你所见,我仍然无法使用usepackage。但也许它将来会得到改善。
minrk给出的答案(包括完整性)是好的,但还有另一种我喜欢的方式。
您还可以通过键入
- 想要更多的控制,
- 想要的不仅仅是数学环境,
- 或者如果你打算在一个单元格中写下很多数学。
minrk的回答:
IPython notebook uses MathJax to render
LaTeX inside html/markdown. Just put your LaTeX math inside$$ .
1 $$c = \sqrt{a^2 + b^2}$$
Or you can display LaTeX / Math output from Python, as seen towards
the end of the notebook
tour:
1
2
如果您的主要目标是进行数学运算,SymPy提供了一种非常出色的功能性乳胶表达方法。
直接在Markdown单元格中使用LaTeX语法对我有用。 我正在使用Jypiter 4.4.0。
我不必使用
1 2 3 4 5 6 7 8 9 10 11 | \begin{align} abla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ abla \cdot \vec{\mathbf{E}} & = 4 \pi ho \\ abla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ abla \cdot \vec{\mathbf{B}} & = 0 \end{align} |
呈现给:
我正在使用Jupyter笔记本。
我不得不写
1 2 | %%latex $sin(x)/x$ |
获得LaTex字体。
有一天我使用colab来解决这个问题。 我发现最无痛的方法就是在打印前运行此代码。 一切都像魅力一样。
1 2 3 4 5 6 7 8 | from IPython.display import Math, HTML def load_mathjax_in_cell_output(): display(HTML("<script src='https://www.gstatic.com/external_hosted/" "mathjax/latest/MathJax.js?config=default'>")) get_ipython().events.register('pre_run_cell', load_mathjax_in_cell_output) import sympy as sp sp.init_printing() |
结果如下: