在 Jupyter 中将 ipynb 转换为 pdf
Posted
技术标签:
【中文标题】在 Jupyter 中将 ipynb 转换为 pdf【英文标题】:Convert ipynb to pdf in Jupyter 【发布时间】:2016-08-23 07:14:42 【问题描述】:我是 ipython notebook 的新手,我想将我的 ipynb 转换为 pdf。但是当我尝试通过 LaTex 下载为 PDF 时出现以下错误。
nbconvert failed: pdflatex not found on PATH
没有关于如何将 pdflatex 添加到我的 PATH 的文档。我用窗户。谢谢!
【问题讨论】:
你安装了 Latex 吗?如果没有,您需要以MikTex 之类的形式安装它。如果你有它,有关于更改路径here 的说明。 @ThomasK 谢谢!您的意思是添加安装 miktex 的路径? 它应该在某个地方安装一个pdflatex.exe
文件。 PATH 需要包含包含它的目录。
我得到的是xelatex
而不是pdflatex
当我去下载 Latex 时,它说下载 MikTex 所以,我的 .exe 说 basic-miktex-2.9.6850-x64 - 我的路径与我的 ipynb 文件所在的路径相同,但它仍然不工作?
【参考方案1】:
一个简单且令人惊讶的好解决方案是通过浏览器使用ctrl+p
将笔记本打印为pdf。只需确保您的绘图和图形未处于交互模式,否则它们将不会显示(将它们设置为 %matplotlib inline
)。
通过 Latex 导出 jupyter notebook 非常麻烦,并且需要大量修改才能使远程接近发布的内容做好准备。当我绝对需要出版质量时,我会在乳胶编辑器上进行,但 tutorial 详细介绍了在 jupyter 上进行。
获得更好结果的一些有用提示:
Higher resolution plots Hide your code-cells from the pdf 查看 these extensions 以改进您的 jupyter 文档【讨论】:
【参考方案2】:对于Mac OS X,我的解决方案是先安装MacTex,然后导出路径找到它:
### TeX
export PATH="/Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin:$PATH"
您可以将其添加到您的 .bash_profile
或类似的配置文件中以每次加载它。
在此处查看更多信息https://github.com/jupyter/nbconvert/issues/406
【讨论】:
在我的zshrc
中在 MacOS 上完美运行。谢谢
这个 Mactex 的东西到底怎么可能需要 3.9Gb 才能下载?
对于较新版本的 MacTeX:export PATH="/Library/TeX/texbin:$PATH"
【参考方案3】:
如cmets中Thomas K所说,您需要安装Latex,并将包含pdflatex.exe
文件的目录的路径添加到系统的PATH
变量中。
我寻找了一个轻量级发行版并尝试安装TeXworks,但我没有找到任何pdflatex.exe
文件。
所以我尝试了TeX Live,它在目标安装目录下创建pdflatex.exe
文件效果很好。这条路径应该类似于C:\...\texlive\2016\bin\win32
。
最后,只需将此路径添加到系统的PATH
环境变量中(可以使用Thomas K 共享的链接)。
如here所说,在进行任何路径更改后,您需要退出jupyter notebook并打开一个新的命令提示符,以便jupyter找到PATH
中新添加的项目。
然后,在 Jupyter 中,您可以通过运行以下命令检查您的环境变量(有关详细信息,请参阅此link):
导入操作系统 os.environ['PATH'].split(';')并检查它是否包含pdflatex.exe
文件的路径。
如果由于缺少文件/包而在将笔记本导出为 pdf 时遇到问题(这发生在我身上),请参考 link 在 TeX Live 下搜索并安装它们。
【讨论】:
此解决方案适用于 Windows - Mac OS X 版本见下文 一个小问题...您需要在新的命令提示符下重新启动 jupyter notebook 才能看到新添加的 PATH 项【参考方案4】:对于 Linux,报告的错误是由于缺少 XeLatex
,这是 texlive-xetex
软件包的一部分。
在 ubuntu 中的安装将是:
sudo apt install texlive-xetex
【讨论】:
【参考方案5】:除了使用 nbconvert 你可以做的是:
-
从文件选项将您的 ipynb 文件下载为 html。
右键单击并选择打印或使用Ctrl+P。
另存为 PDF
简单。
【讨论】:
【参考方案6】:这是对我有用的完整解决方案(适用于 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
【讨论】:
【参考方案7】:我同意乳胶安装(至少在 Windows 上)是痛苦的,并且在我的案例中结果不是一个好看的文档。如果您在 JupyterLab 中运行,单独使用 ctrl-p
方法效果不佳,但如果您将笔记本导出为 HTML,然后从浏览器打印,选择 PDF,则结果非常好。
【讨论】:
【参考方案8】:我知道我的解决方案不在一个级别。但它有效!
在您的笔记本标签浏览器中,只需按“ctrl + p”即可以pdf格式下载
【讨论】:
【参考方案9】:首先将笔记本文件导出为 HTML(可通过文件>下载为..)。
如果您使用的是 JupyterLab,则可以在 File > Export Notebook As... 下找到它。
使用(任何)免费在线转换器将 html 文件转换为 pdf 文件。 (一个这样的免费在线转换器是sejda
(https://www.sejda.com/html-to-pdf)
注意,网上有很多这样的转换器。
【讨论】:
【参考方案10】:对于错误 500
Debian 或 Ubuntu 用户:-
首先,在终端安装:-
sudo apt-get install texlive-full
然后
conda install -c conda-forge pandoc
【讨论】:
以上是关于在 Jupyter 中将 ipynb 转换为 pdf的主要内容,如果未能解决你的问题,请参考以下文章
ModuleNotFoundError: No module named 'jupyter_contrib_nbextensions' .ipynb文件转换.py文件时遇到错误(示例
ModuleNotFoundError: No module named 'jupyter_contrib_nbextensions' .ipynb文件转换.py文件时遇到错误(示例