如何在IPython笔记本中显示LaTeX代码?
这出现在我正在进行的搜索中,找到了一个更好的解决方案,更多的搜索,IPython笔记本现在有一个 %%latex 魔术,使整个单元格Latex没有每行的 $$ 包装 .
%%latex
$$
请参阅Rich Display System的笔记本电脑之旅
IPython笔记本使用MathJax在html / markdown中呈现LaTeX . 把你的LaTeX数学放在 $$ 里面 .
$$c = \sqrt{a^2 + b^2}$$
或者你可以在Python中显示LaTeX / Math输出,如notebook tour末尾所示:
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Udacity的博客有 Best LaTeX Primer 我见过:它清楚地显示了如何使用易读的LaTeX命令,并且易于记忆!强烈推荐 .
This Link has Excellent Examples 显示代码和渲染结果!您可以使用此站点快速了解如何通过示例编写LaTeX .
而且,这是一个快速Reference for LaTeX命令/符号 .
inline, wrap in: $
The equation used depends on whether the the value of $Vmax$ is R, G, or B.
block, wrap in: $$
$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
block, wrap in: \begin 和 \end{equation}
\end{equation}
\begin{equation} H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G \end{equation}
block, wrap in: \begin 和 \end{align}
\end{align}
\begin{align} H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B \end{align}
LaTex Cell: %%latex magic命令将整个单元格变为 LaTeX Cell
%%latex \begin{align} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{align}
Math object 传入 raw LaTeX string :
from IPython.display import Math Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Latex class . 注意:您必须自己包含分隔符 . 这允许您使用其他LaTeX模式,例如 eqnarray :
eqnarray
from IPython.display import Latex Latex(r"""\begin{eqnarray} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}""")
(抱歉,这里没有例子,只是文档)
原始单元原始单元格提供了一个可以直接写入输出的位置 . 笔记本不评估原始单元格 . 当通过nbconvert时,原始单元格以未修改的形式到达目标格式 . 例如,这允许您将完整的LaTeX键入到原始单元格中,该单元格仅在由nbconvert转换后由LaTeX呈现 .
对于Markdown Cells,引自Jupyter Notebook docs:
在Markdown单元格中,您还可以使用标准的LaTeX表示法以简单的方式包含数学:$ ... $用于内联数学,$$ ... $$用于显示数学 . 执行Markdown单元格时,LaTeX部分会自动在HTML输出中呈现为具有高质量排版的方程式 . 这是由MathJax实现的,它支持大量的LaTeX功能 . 由LaTeX和AMS-LaTeX(amsmath包)定义的标准数学环境也可以工作,例如\ begin ... \ end ,和\ {开始对准} \ {结束}对齐 . 新的LaTeX宏可以使用标准方法定义,例如\ newcommand,通过将它们放在Markdown单元格中的数学分隔符之间的任何位置 . 然后,在整个IPython会话的其余部分中都可以使用这些定义 .
如果您希望数学出现在一行中,请使用$$,例如,
$$a = b + c$$ (line break after the equation)
如果您在数学后不需要换行符,请使用单个美元符号$,例如,
$a = b + c$ (no line break after the equation)
您可以选择要标记的单元格,然后编写由mathjax解释的乳胶代码,如上面的响应者之一所述 .
或者,iPython笔记本教程的Latex部分很好地解释了这一点 .
你可以这样做:
或者这样做:
%%latex \begin{align} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{align}
More info found in this link
我可以't deny that I' m没有偏见,但我更喜欢使用prettyPy而不是写出完整的LaTeX表达式 .
例:
当然,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 Environment for Jupyter",我可以运行许多Latex命令 . 示例如下:https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html
\section{First section} \textbf{Hello} $ \begin{equation} c = \sqrt{a^2 + b^2} \end{equation} $ \begin{itemize} \item First item \item Second item \end{itemize} \textbf{World}
如你所见,我仍然无法使用usepackage . 但也许它将来会得到改善 .
minrk给出的答案(包括完整性)是好的,但还有另一种我喜欢的方式 .
您还可以通过键入 %%latex 作为文本单元格中的第一行来将整个单元格渲染为 LaTeX . 如果你这很有用
LaTeX
想要更多控制,
想要的不仅仅是数学环境,
或者如果你打算在一个单元格中写下很多数学 .
minrk's answer:
IPython笔记本使用MathJax在html / markdown中呈现LaTeX . 把你的LaTeX数学放在$$里面 . $$ c = \ sqrt {a ^ 2 b ^ 2} $$或者您可以显示Python的LaTeX / Math输出,如笔记本游览结束时所示:来自IPython.display导入显示,Math,Latexdisplay(Math(r'F(k)= \ int _ { - \ infty} ^ {\ infty} f(x)e ^ {2 \ pi i k} dx'))
如果您的主要目标是进行数学运算,SymPy将an excellent approach提供给看起来很棒的功能性乳胶表达式 .
9 回答
这出现在我正在进行的搜索中,找到了一个更好的解决方案,更多的搜索,IPython笔记本现在有一个
%%latex
魔术,使整个单元格Latex没有每行的$$
包装 .请参阅Rich Display System的笔记本电脑之旅
IPython笔记本使用MathJax在html / markdown中呈现LaTeX . 把你的LaTeX数学放在
$$
里面 .或者你可以在Python中显示LaTeX / Math输出,如notebook tour末尾所示:
LaTeX参考文献:
Udacity的博客有 Best LaTeX Primer 我见过:它清楚地显示了如何使用易读的LaTeX命令,并且易于记忆!强烈推荐 .
This Link has Excellent Examples 显示代码和渲染结果!
您可以使用此站点快速了解如何通过示例编写LaTeX .
而且,这是一个快速Reference for LaTeX命令/符号 .
总结:在Jupyter / IPython中表示LaTeX的各种方法:
降价单元格示例:
inline, wrap in: $
block, wrap in: $$
block, wrap in: \begin 和
\end{equation}
block, wrap in: \begin 和
\end{align}
代码单元的示例:
LaTex Cell: %%latex magic命令将整个单元格变为 LaTeX Cell
Math object 传入 raw LaTeX string :
Latex class . 注意:您必须自己包含分隔符 . 这允许您使用其他LaTeX模式,例如
eqnarray
:原始单元格的文档:
(抱歉,这里没有例子,只是文档)
其他文件:
对于Markdown Cells,引自Jupyter Notebook docs:
如果您希望数学出现在一行中,请使用$$,例如,
如果您在数学后不需要换行符,请使用单个美元符号$,例如,
您可以选择要标记的单元格,然后编写由mathjax解释的乳胶代码,如上面的响应者之一所述 .
或者,iPython笔记本教程的Latex部分很好地解释了这一点 .
你可以这样做:
或者这样做:
More info found in this link
我可以't deny that I' m没有偏见,但我更喜欢使用prettyPy而不是写出完整的LaTeX表达式 .
例:
当然,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 Environment for Jupyter",我可以运行许多Latex命令 . 示例如下:https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html
如你所见,我仍然无法使用usepackage . 但也许它将来会得到改善 .
minrk给出的答案(包括完整性)是好的,但还有另一种我喜欢的方式 .
您还可以通过键入
%%latex
作为文本单元格中的第一行来将整个单元格渲染为LaTeX
. 如果你这很有用想要更多控制,
想要的不仅仅是数学环境,
或者如果你打算在一个单元格中写下很多数学 .
minrk's answer:
如果您的主要目标是进行数学运算,SymPy将an excellent approach提供给看起来很棒的功能性乳胶表达式 .