如何在IPython Notebook中显示LaTeX代码?


当前回答

我开发了pretty typy,它提供了一种打印方程的好方法。不幸的是,它不是高性能的,需要测试。

例子:

当然,sympy是一个很好的替代方案,尽管prettyPy不允许计算表达式,变量初始化是不需要的。

其他回答

如果希望从笔记本代码单元中显示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)

它将显示格式化的方程式。

使用$$如果你想要你的数学出现在单行,例如,

$$a = b + c$$ (line break after the equation)

如果在数学运算之后不需要换行符,可以使用单美元符号$,例如:

$a = b + c$   (no line break after the equation)

IPython笔记本使用MathJax在html/markdown中渲染LaTeX。只要把你的LaTeX数学放在$$中。

$$c = \sqrt{a^2 + b^2}$$

或者你可以从Python中显示LaTeX / Math输出,就像在笔记本之旅结束时看到的那样:

from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))

在Markdown单元格中直接使用LaTeX语法适合我。我使用Jypiter 4.4.0。

我不需要使用%%latex魔术命令,我坚持,只是一个markdown单元格:

\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}

呈现:

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。但也许将来会有所改进。