如何解决Jupyter导出PDF时Markdown单元格PNG附件插入失败问题
解决方案
1. 修复依赖包缺失问题
everyshi.sty目前已从CTAN的ms包迁移至everysel包,你可以打开MiKTeX控制台搜索安装everysel包,也可以直接执行命令完成安装:
mpm --install everysel
2. 解决内嵌附件图片无法识别问题
你遇到的核心报错是nbconvert导出流程无法解析Markdown单元格内嵌的attachment:前缀图片路径,可根据需求选择以下任意方案处理:
- 方案1:替换为本地路径引用(最稳定)
将Markdown单元格内的截图提前保存到Notebook所在的同一目录,重命名为简单易识别的文件名(如run_result.png),将原来的附件引用替换为标准Markdown图片格式:
修改完成后重新导出PDF即可正常识别图片。 - 方案2:手动导出LaTeX文件后编译
不需要修改Notebook内容,先执行命令导出LaTeX源文件(导出失败时不会自动删除临时文件):
执行完成后同目录会生成jupyter nbconvert --to latex 你的笔记本文件名.ipynb.tex文件和导出的所有附件图片,打开.tex文件删除所有图片路径前的attachment:前缀,再手动执行两次XeLaTeX编译即可生成PDF:xelatex 你的笔记本文件名.tex - 方案3:HTML中转导出(操作最简单)
先将Notebook导出为HTML格式,用浏览器打开生成的HTML文件后选择打印,将打印目标设置为「保存为PDF」即可,该流程不需要处理LaTeX相关依赖,可完美兼容内嵌附件图片。
补充说明
你日志中提到的-q参数是MiKTeX定制的dvipdfmx静默模式扩展参数,不属于报错原因,无需额外调整。默认导出PDF失败时nbconvert会自动删除临时生成的.tex文件,所以你之前全盘搜索无法找到该文件。
内容的提问来源于stack exchange,提问作者Julian Moore
相关产品推荐
相关产品推荐

