将Jupyter Notebook (ipynb) 转换为 PDF 文件的完整指南
将Jupyter Notebook (ipynb) 转换为 PDF 文件的完整指南
Jupyter Notebook 是数据科学家和研究人员最爱的工具之一,但共享或打印时往往需要 .pdf 格式。本文会带你了解几种靠谱的转换方式,从零基础到进阶技巧,让你轻松搞定。
方法一:使用 nbconvert 命令行(最常用)
nbconvert 是 Jupyter 自带的导出工具,可以直接在终端运行。
基本命令
jupyter nbconvert --to pdf your_notebook.ipynb这个命令会尝试用 LaTeX 引擎编译(需要安装 Pandoc 和 LaTeX 发行版,如 TeX Live 或 MiKTeX)。如果缺环境,会报错,得先装好。
安装依赖(以 Ubuntu 为例)
sudo apt-get install texlive-xetex texlive-fonts-recommended texlive-plain-generic pandoc在 macOS 上可以用 brew install pandoc 然后安装 MacTeX。Windows 用户推荐安装 MiKTeX 并添加环境变量。
方法二:使用 --to webpdf(无需 LaTeX)
如果不想碰 LaTeX,可以尝试 webpdf 方式:
jupyter nbconvert --to webpdf --allow-chromium-download your_notebook.ipynb这需要 Chromium 或 Google Chrome。首次运行会自动下载 Chromium,之后渲染成 PDF 效果很好,代码和图表不会乱。
方法三:在线转换(零安装)
如果只是偶尔转换,可以用 Google Colab 或 nbviewer 加浏览器打印功能:
- 将 ipynb 上传到 nbviewer 或 GitHub,通过 URL 打开。
- 在浏览器中按
Ctrl+P或Cmd+P,选择“另存为 PDF”。 - 注意:代码块可能会被分页截断,建议调整边距或使用“打印背景图”选项。
高级技巧:自定义模板与样式
如果想精细控制 PDF 布局,可以创建自定义 LaTeX 模板或使用 jupyter-contrib-nbextensions 的“nbconvert 导出器”。例如:
jupyter nbconvert --to pdf --template mytemplate.tplx notebook.ipynb模板文件中可以修改字体、页眉页脚、目录等。
常见问题与解决
- 数学公式乱码:确保 LaTeX 安装完整,或改用
--to webpdf。 - 中文支持:在模板中添加
\usepackage{ctex}或使用 XeLaTeX 引擎。 - 图片缺失:检查单元格输出中的图片是否以 base64 内嵌,或者调整为本地路径。
总结
以上方法各有利弊:nbconvert+LaTeX 最灵活但配置复杂;webpdf 简单但较慢;在线法最省心但功能有限。推荐日常使用 webpdf,正式出版可用 LaTeX 模板。希望这篇文章能帮你顺利搞定 ipynb 转 PDF!