需安装并配置xelatex:Mac用brew install mactex,Windows装MiKTeX并勾选自动安装缺失包、添加miktex\bin\x64到PATH,安装后重启终端并运行xelatex --version验证;中文显示异常则需在LaTeX模板中加入\usepackage{ctex}并设置系统级中文字体如Noto Sans CJK SC。

nbconvert 报 “xelatex not found” 怎么办
这说明 LaTeX 编译器压根没装,或者系统找不到它。Jupyter 的 nbconvert --to pdf 本质是调用 xelatex 编译中间生成的 .tex 文件,缺了它就卡死。
- Mac 用户直接运行
brew install mactex(别选精简版,macTeX 自带完整字体和xelatex) - Windows 用户装 MiKTeX 时必须勾选
Install missing packages on-the-fly,并把miktex\bin\x64加进系统PATH - 装完后重启终端或 VSCode,再执行
xelatex --version确认能输出版本号 - 如果仍报错,检查是否误装了 32 位 MiKTeX(Win10/11 应用 64 位),或 Mac 上
which xelatex返回空——可能是安装路径未被 shell 加载
PDF 里中文全变方框或空白
这是默认 LaTeX 模板用的是 Latin Modern 字体,根本不认识汉字。不是编码问题,是字体缺失+模板没声明中文支持。
- 最稳妥的做法:修改 nbconvert 默认模板,在
\documentclass后插入\usepackage{ctex},并删掉原模板里的\usepackage{fontspec}等冗余行(ctex已内置字体管理) - 模板路径通常在:
anaconda3/lib/site-packages/nbconvert/templates/latex/article.tplx(Mac/Linux)或Anaconda3\Lib\site-packages\nbconvert\templates\latex\article.tplx(Windows) - 改完后不用重启 Jupyter,但要清空临时目录:
rm -rf /tmp/nbconvert_*(Mac/Linux)或手动删%TEMP%\nbconvert_*(Windows),否则缓存旧模板继续出错 - 不改模板的话,每次导出后手动编辑生成的
.tex文件,加\usepackage{ctex}也行,但没法自动化
导出时报 “Missing character: There is no … in font”
错误信息里明确指出某个 Unicode 码位(比如 U+76F8)在当前字体里找不到对应字形。说明虽然用了 ctex,但底层字体不支持你文档里的中文字体。
-
ctex默认用“Fandol”字体,它覆盖常用汉字,但缺生僻字、古籍用字、部分 emoji 或数学符号 - 想彻底解决,得换系统级中文字体:在模板或
.tex文件里加\setmainfont{Noto Sans CJK SC}(推荐)或\setmainfont{Microsoft YaHei}(Win)、\setmainfont{PingFang SC}(Mac) - 注意:字体名必须和系统实际安装名称一致,大小写敏感;Mac 上用 Font Book 查确认名,Windows 上去 C:\Windows\Fonts 里看文件属性
- 如果用的是 Conda 环境,某些字体路径权限受限,建议用系统全局安装的字体,别放项目目录里
Pandoc 找不到或报 “nbconvert failed: pandoc wasn’t found”
pandoc 是 nbconvert 转换 .ipynb → .tex 的核心工具,不是可选组件。pip 或 conda 安装的 pandoc 经常缺二进制或路径不对。
- 必须去 pandoc.org 下载官方 .msi(Win)或 .pkg(Mac)安装包,走图形向导安装
- Win 默认装到
C:\Program Files\Pandoc\,Mac 到/usr/local/bin/pandoc,确保该路径在PATH里 - 验证:终端运行
pandoc --version,有输出即成功;若提示 command not found,检查 PATH 是否包含安装目录 - VSCode 用户注意:如果用 VSCode 终端导出,需关掉再重开终端,否则 PATH 不刷新
pandoc 装了但 xelatex 没装,或 xelatex 装了但模板没切到 ctex,又或者字体名拼错一个字母。每个环节都得单独验证,不能只看最终 PDF 出没出来。



















