You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将Colab中的ipynb文件导出为带书签的PDF/EPUB?

解决方法:导出带Markdown标题书签的PDF/EPUB

我完全懂你的痛点——默认jupyter nbconvert导出的PDF经常排版混乱,还丢失标题对应的书签。下面是几个亲测有效的方法,帮你导出带有h1/h2层级书签的规范文档:

方法1:优化Jupyter nbconvert的导出参数

如果坚持用本地nbconvert工具,调整参数和模板就能解决问题:

  • 首先确保本地安装了LaTeX环境(比如TeX Live或MikTeX),这是nbconvert生成PDF的基础;同时更新nbconvert到最新版本:pip install --upgrade nbconvert
  • 使用官方的report模板,它会自动把Markdown的h1、h2映射为LaTeX的章节/小节,进而生成PDF书签:
    jupyter nbconvert --to pdf --template report your_notebook.ipynb
    
  • 如果遇到中文排版乱码,添加指定XeLaTeX引擎的参数(XeLaTeX对中文支持更好):
    jupyter nbconvert --to pdf --template report --PDFExporter.latex_command="xelatex -interaction=nonstopmode" your_notebook.ipynb
    
  • 注意:确保你的Markdown标题格式标准(# 标题内容,#和文字之间有空格),避免特殊符号干扰识别。

方法2:直接在Google Colab中用打印功能导出(最省心)

Colab的原生显示排版已经很规整,用Chrome的打印功能导出能完美保留标题书签:

  1. 在Colab中确认所有h1/h2标题格式正确,调整好代码块、文本的排版
  2. 点击浏览器右上角的「打印」按钮(或按Ctrl+P),在打印预览面板中:
    • 选择「目标打印机」为「另存为PDF」
    • 打开「更多设置」,调整纸张尺寸(比如A4)、边距为合适值,勾选「背景图形」(如果需要保留Colab的样式)
    • 切换到预览面板的「书签」标签,你会看到自动识别的h1/h2层级书签,确认后点击「保存」即可

方法3:导出EPUB(及转PDF)

如果需要EPUB格式,或者想通过EPUB转PDF保留书签,可以用pandoc工具:

  1. 在Colab中把笔记本导出为Markdown文件:「文件」→「下载」→「下载为Markdown」
  2. 用pandoc将Markdown转为EPUB(自动生成层级书签):
    pandoc -s your_notebook.md -o your_notebook.epub
    
  3. 如果需要从EPUB转PDF,继续用pandoc,或者用Calibre这类EPUB阅读器导出,都能保留书签结构:
    pandoc your_notebook.epub -o your_notebook.pdf
    

注意事项

  • 标题层级要清晰:避免出现无h1前置的h2,这样书签的层级结构会更规整
  • 若有特殊格式(比如公式、图片),优先用Colab打印或pandoc方法,比nbconvert的兼容性更好

内容的提问来源于stack exchange,提问作者Pythoner

火山引擎 最新活动