You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook导出PDF出现乱码及格式渲染异常问题求助

Jupyter Notebook导出PDF乱码及格式异常解决方案

问题根因

  • 格式异常:nbconvert转PDF默认走LaTeX渲染链路,无法解析Markdown单元格内嵌入的<h1>、<h2>这类HTML标签,会将标签直接作为普通文本输出,无法渲染为对应标题样式
  • 乱码:默认LaTeX模板未配置支持Unicode/中文的字体,非ASCII字符无法正常渲染就会显示为乱码

分步解决方案

方案一:调整语法+优化转换参数(推荐,保留原生PDF导出能力)

  1. 替换所有内嵌HTML标题为Markdown原生标题语法:将<h1>Test Presentation</h1>改为# Test Presentation,<h2>改为## 前缀,<h3>改为### 前缀,原生Markdown语法对nbconvert的适配性远高于内嵌HTML
  2. 转换时指定支持Unicode的xelatex引擎和对应字体,执行如下命令:
jupyter nbconvert --to pdf --template classic --pdf-engine=xelatex --variable mainfont="Microsoft YaHei" C:\Users\myProfile\myFile.ipynb

参数说明:

  • --template classic:使用官方经典模板,规避自定义模板的适配问题
  • --pdf-engine=xelatex:明确指定支持Unicode的渲染引擎
  • --variable mainfont="Microsoft YaHei":配置系统已安装的中文字体,Windows默认自带微软雅黑,Mac可替换为PingFang SC,Linux可替换为Noto Sans CJK SC

方案二:HTML中转导出(兼容性最强,适配所有自定义样式)

如果调整语法后仍有格式问题,可先导出为HTML再转PDF,浏览器对HTML样式的渲染完整度远高于LaTeX链路:

  1. 先执行命令导出为HTML文件:
    jupyter nbconvert --to html C:\Users\myProfile\myFile.ipynb
  2. 用本地浏览器打开生成的HTML文件,按下Ctrl+P(Mac为Command+P)调出打印面板,选择「另存为PDF」即可,所有样式、排版都会和Notebook里的预览效果完全一致

可选修复操作

如果上述操作仍有异常,升级nbconvert到最新版本即可,老版本存在和高版本Pandoc、MikTex的适配bug:
conda update nbconvert


内容的提问来源于stack exchange,提问作者ENIAC-6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:06:05