Jupyter Markdown嵌入图片使用nbconvert导出PDF报错
报错根因定位
- Jupyter内置「插入图片」功能默认生成的
attachment:协议引用,仅适配Notebook自身的网页/交互展示场景,无法被nbconvert的PDF导出链路正确识别 - 导出流程在调用xelatex编译LaTeX文件时,会把完整带
attachment:前缀的字符串直接当成图片文件路径去查找资源,自然无法匹配到同目录下的真实图片文件,直接触发加载失败 - 叠加问题:当前图片文件名带URL编码的空格、括号、西语重音字符,长路径会进一步触发LaTeX的语法解析故障,连带出现
Missing $ inserted这类连锁报错
修复操作步骤
- 第一步:调整Markdown单元格的图片引用规则,删掉所有引用里的
attachment:前缀,改为直接使用和Notebook同目录下的图片相对路径。原错误引用代码:
修正后的引用格式示例:.png) - 第二步:建议提前将图片重命名为不含特殊字符、空格的短文件名(例如重命名为
aeropython_screenshot01.png),对应修改引用路径,从根源上降低LaTeX编译时的路径解析异常概率 - 第三步:重新执行原有nbconvert导出命令即可正常生成PDF:
jupyter nbconvert --to PDF --no-input REDACCION.ipynb
补充注意:如果插入的图片是直接内嵌在Notebook文件内部、没有在本地生成独立png文件,需要先把这些内嵌图片导出保存为独立文件,放到Notebook所在的同一目录下,再按上述规则修改引用,否则依然会出现文件找不到的报错。
内容的提问来源于stack exchange,提问作者Javi Brugarolas
相关产品推荐
相关产品推荐

