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


当前回答

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

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

其他回答

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 '))

我正在使用Jupyter笔记本电脑。 我必须写

%%latex
$sin(x)/x$

来获得LaTex字体。

我在这篇文章中写了如何在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}
$$

上面的代码将创建这个。

如果你想知道如何为方程添加编号和对齐方程,请阅读这篇文章来了解详细信息。

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'))

这是在我刚刚做的搜索中出现的,通过更多的搜索发现了一个更好的解决方案,IPython笔记本现在有一个%%乳胶魔法,使整个细胞乳胶没有$$包装每行。

关于富显示系统,请参考笔记本手册