LaTeX在Jupyter Notebook中无法运行

6

我开始使用jupyter笔记本和python,但问题在于打印输出的格式不像标准的LaTeX。

我的代码单元格:

%%latex
\begin{center}
$(a+b)^{2} = a^{2}+2ab+b^{2}$
\end{center}

笔记本中的结果如下图所示: enter image description here

你是否需要使用\begin{center}\end{center}呢?为什么不尝试只使用$$(a+b)^{2} = a^{2}+2ab+b^{2}$$呢? - Tomas Farias
6个回答

4

来自jupyter文档:

支持的latex子集取决于客户端中的实现。在Jupyter Notebook中,此魔法只呈现MathJax定义的latex子集, 这里.

您可以使用Markdown来显示公式:使用单个$表示latex,或双重$$来居中。您需要将单元格格式化为markdown而不是code

您的单元格变成以下两行之一:

$$(a+b)^{2} = a^{2}+2ab+b^{2}$$
$(a+b)^{2} = a^{2}+2ab+b^{2}$

您必须运行单元格才能显示Markdown。


3

我曾经遇到过类似的问题。在我的ipython笔记本中,某个集合的latex方程式突然无法正常渲染。后来发现是我的latex解释器进入了奇怪的状态,因为我无意间执行了一个包含\def代码的单元格。

为了解决问题,我只需保存笔记本,停止python内核,关闭浏览器中的笔记本,然后重新打开并重新执行所有单元格。这样就解决了问题,公式再次正确地呈现出来了。


2

我从 https://dev59.com/kVwY5IYBdhLWcg3w_cJH#32166264 中发现,除非您进入Jupyter配置并确保启用MathJax,否则MathJax将无法呈现:

## Whether to enable MathJax for typesetting math/TeX
#
#  MathJax is the javascript library Jupyter uses to render math/LaTeX. It is
#  very large, so you may want to disable it if you have a slow internet
#  connection, or for offline use of the notebook.
#
#  When disabled, equations etc. will appear as their untransformed TeX source.
c.NotebookApp.enable_mathjax = True

不幸的是,这并没有完全解决我的问题,即使我确保笔记本在右上角受信任,但也许它能帮助其他人。


2
如果你要使用这样的环境:
\begin{equation}
(a+b)^{2} = a^{2}+2ab+b^{2}
\end{equation}

请注意,我没有使用$$ env来进行数学公式的编写,这个方法更适合行内数学公式。另外需要注意的是,每行之间不应添加空格,如果添加空格,则在运行单元格时,笔记本将显示LaTeX代码而不是渲染结果。


1

1
在我的情况下(winpython),看起来我的防火墙阻止了Mathjax的成功安装。我不得不从本地文件安装Mathjax才能使其工作:

  • 下载最新的Mathjax.zip
  • python -m IPython.external.mathjax C:\path\to\your\file\Mathjax.zip

现在,我可以在代码单元格和Markdown单元格中呈现LaTeX。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接