如何在IPython Notebook中显示LaTeX代码?
当前回答
minrk给出的答案(包括完整性)很好,但还有另一种方式我更喜欢。
通过在文本单元格中键入%% LaTeX作为第一行,还可以将整个单元格呈现为LaTeX。这很有用,如果你
想要更多的控制, 想要的不仅仅是数学环境, 或者如果你要在一个格子里写很多数学。
minrk的回答是:
IPython笔记本使用MathJax进行渲染 html/markdown中的LaTeX。只要把你的LaTeX数学放在$$中。 $$c = \√{a^2 + b^2}$$ 或者你也可以从Python中显示LaTeX / Math输出,如图所示 笔记本的结尾 旅游: IPython。display导入display, Math, Latex 显示器(数学(r 'F (k) = \ int_ {- \ infty} ^ {\ infty} f (x) e ^{2 \πk} dx '))
其他回答
Since, I was not able to use all the latex commands in Code even after using the %%latex keyword or the $..$ limiter, I installed the nbextensions through which I could use the latex commands in Markdown. After following the instructions here: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md and then restarting the Jupyter and then localhost:8888/nbextensions and then activating "Latex Environment for Jupyter", I could run many Latex commands. Examples are here: 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}
如你所见,我仍然无法使用uspackage。但也许将来会有所改进。
如果希望从笔记本代码单元中显示LaTeX方程,可以创建一个简单的包装器类,利用Jupyter笔记本丰富的显示表示。这个类应该有一个_repr_latex_方法(注意在开始和结束处有一个下划线,而不是其他特殊方法的双下划线)来输出LaTeX字符串。例如:
class LaTeXEquation:
def __init__(self, eqntext):
self.eqntext = eqntext
def __repr__(self):
return repr(self.eqntext)
def _repr_latex_(self):
"""
Special method for rich display of LaTeX formula.
"""
# add $'s at start and end if not present
if self.eqntext.strip()[0] != "$" and self.eqntext.strip()[-1] != "$":
return "$" + self.eqntext + "$"
else:
return self.eqntext
myeqn = "x = y^2"
然后在代码单元格中,如果你这样做,例如,
LaTeXEquation(myeqn)
它将显示格式化的方程式。
我在这篇文章中写了如何在Jupyter Notebook中编写LaTeX。
你需要用美元($)符号把它们括起来。
要向左对齐,请使用单个美元($)符号。
$ P (A) = \压裂{n (A)} {n (U)} $
要对齐到中心,请使用双元($$)符号。
$ $ P (A) = \压裂{n (A)} {n (U)} $ $
使用\limit for \lim, \sum和\int在每个符号的顶部和底部添加限制。 使用反斜杠来转义LaTeX的特殊单词,如数学符号、拉丁单词、文本等。
试试这个。
$$\overline{x}=\frac{\sum \limits _{i=1} ^k f_i x_i}{n} \text{, where } n=\sum \limits _{i=1} ^k f_i $$
矩阵
分段函数
$$
\begin{align}
\text{Probability density function:}\\
\begin{cases}
\frac{1}{b-a}&\text{for $x\in[a,b]$}\\
0&\text{otherwise}\\
\end{cases}
\\
\text{Cumulative distribution function:}\\
\begin{cases}
0&\text{for $x<a$}\\
\frac{x-a}{b-a}&\text{for $x\in[a,b)$}\\
1&\text{for $x\ge b$}\\
\end{cases}
\end{align}
$$
上面的代码将创建这个。
如果你想知道如何为方程添加编号和对齐方程,请阅读这篇文章来了解详细信息。
我开发了pretty typy,它提供了一种打印方程的好方法。不幸的是,它不是高性能的,需要测试。
例子:
当然,sympy是一个很好的替代方案,尽管prettyPy不允许计算表达式,变量初始化是不需要的。
有一天我在使用colab时遇到了这个问题。我发现最省事的方法就是在打印之前运行这段代码。那么,一切都很有魅力。
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'></script>"))
get_ipython().events.register('pre_run_cell', load_mathjax_in_cell_output)
import sympy as sp
sp.init_printing()
结果如下所示:
推荐文章
- 使用pandoc从Markdown转换为PDF时设置空白大小
- Python和IPython的区别是什么?
- 如何从终端运行。ipynb Jupyter Notebook ?
- 移除jupyter笔记本上的内核
- 如何使用列的格式字符串显示浮动的熊猫数据帧?
- 使用Python 2。3. Python。IPython Notebook中的x
- 如何加载/编辑/运行/保存文本文件(.py)到IPython笔记本细胞?
- 在R中制作乳胶表的工具
- 在安装pip后,“jupyter:命令未找到”
- 在IPython中自动重载模块
- 如何防止谷歌Colab断开连接?
- git + LaTeX工作流
- 如何在Jupyter Notebook中显示文件中的图像?
- 熊猫操作期间的进度指标
- 修改IPython/Jupyter笔记本工作目录