在 Jupyter 中将 ipynb 转换为 pdf

Convert ipynb to pdf in Jupyter

我是 ipython notebook 的新手,我想将我的 ipynb 转换为 pdf。但是当我尝试通过 LaTex 下载为 PDF 时出现以下错误。

nbconvert failed: pdflatex not found on PATH

没有关于如何将 pdflatex 添加到我的 PATH 的文档。我使用 windows。谢谢!

正如Thomas K在评论中所说,您需要安装Latex,然后将包含pdflatex.exe文件的目录路径添加到系统的PATH变量中.

我一直在寻找轻量级发行版并尝试安装 TeXworks,但我没有找到任何 pdflatex.exe 文件。
所以我尝试了 TeX Live,在目标安装目录下创建 pdflatex.exe 文件效果很好。这个路径应该像 C:\...\texlive16\bin\win32.
最后,您应该将此路径添加到系统的 PATH 环境变量中(您可以使用 Thomas K 共享的 link)。

如前所述here,您需要在进行任何路径更改后退出 jupyter notebook 并打开一个新的命令提示符,以便 jupyter 找到新添加的项目到 PATH

然后,在 Jupyter 中,您可以通过 运行 以下内容检查您的环境变量(详情请参阅此 link):

    import os
    os.environ['PATH'].split(';')

并检查它是否包含 pdflatex.exe 文件的路径。

如果您在将笔记本导出为 pdf 时由于缺少 files/packages 而遇到问题(这发生在我身上),请参阅此 link 在 TeX Live 下搜索并安装它们。

一个简单而出人意料的好解决方案是使用 ctrl+p 通过浏览器将笔记本打印为 pdf。只需确保您的绘图和图形未处于交互模式,否则它们将不会显示(将它们设置为 %matplotlib inline)。

通过 latex 导出 jupyter notebooks 非常麻烦,需要大量修改才能让远程接近发布的东西做好发布准备。当我绝对需要出版质量时,我会在乳胶编辑器上做,但是这个 tutorial 关于在 jupyter 上做它的长篇大论。

获得更好结果的一些有用提示:

  • Higher resolution plots
  • 查看 these extensions 以改进您的 jupyter 文档

对于Mac OS X,我的解决方法是先安装MacTex然后导出路径找到:

### TeX
export PATH="/Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin:$PATH"

您可以将它添加到您的 .bash_profile 或类似的配置文件中,以便每次都加载它。

在这里查看更多内容https://github.com/jupyter/nbconvert/issues/406

对于 Linux,报告的错误是由于缺少 XeLatextexlive-xetex 包的一部分。

ubuntu 中的安装将是: sudo apt install texlive-xetex

我同意 latex 安装(至少在 windows 上)很痛苦,而且我的结果不是一个好看的文档。如果您在 JupyterLab 中 运行,单独使用 ctrl-p 方法效果不佳,但如果您将笔记本导出到 HTML,然后从浏览器打印,选择 PDF,结果是挺好的

这是对我有用的完整解决方案(Mac)。

brew cask install mactex

$ cd ~/

$ touch .bash_profile

这将在 TextEditor

上打开 bash 配置文件

$ open -e .bash_profile

将以下内容粘贴到顶部并保存

export PATH="/Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin:$PATH" 

关闭所有笔记本并重新打开

这是一步步解释它的笔记本: https://github.com/ybaktir/notes/blob/master/Convert%20Jupyter%20Notebook%20to%20Pdf.ipynb

除了使用 nbconvert,您可以做的是:

  1. 从“文件”选项将您的 ipynb 文件下载为 HTML。
  2. 右键单击并 select 打印或使用 Ctrl+P.
  3. 另存为 PDF

简单。

我知道我的解法不在一个层次。但它有效!!

在您的浏览器的笔记本选项卡中,只需执行 "ctrl + p" 即可下载 pdf

首先将笔记本文件导出到 HTML(可通过文件 > 下载为..)。
如果您使用的是 JupyterLab,则可在 File > Export Notebook As....
下找到 使用(任何)免费在线转换器将 html 文件转换为 pdf 文件。 (一个这样的免费在线转换器是 sejda (https://www.sejda.com/html-to-pdf)

注意,网上有很多这样的转换器。