IEEE PDF eXpress终稿检测踩坑记录:PDF图片字体未嵌入与LaTeX参考文献编译异常解决方法
前言
在提交 IEEE 国际会议终稿时,很多会议都会要求作者首先通过 IEEE PDF eXpress 对最终 PDF 进行规范性检查。只有成功通过检测的论文,才能作为 Camera-Ready Final Paper 上传到会议终稿系统。
因此,即使论文使用的是 IEEE 官方提供的 LaTeX 模板,并且本地编译后的版式、字体和图片看起来都完全正常,也并不代表生成的 PDF 一定满足 IEEE 的出版要求。
这次提交终稿时,我就遇到了一个比较典型的问题:
本地 LaTeX 编译完全正常,但上传 IEEE PDF eXpress 后始终出现 Error / Failed,无法通过检测。

最开始想着既然使用的是 IEEE 官方 LaTeX 模板,理论上不应该出现太大的格式问题,结果上传后却出现了类似下面的检测错误:

经过一系列排查,最终发现真正的问题并不在 LaTeX 模板本身,而是:
论文中部分以 PDF 矢量格式插入的图片存在字体未嵌入(Font Not Embedded)的问题。
这里完整记录一下这次问题的排查和解决过程,也顺便记录一个 LaTeX 参考文献无法生成的"小坑",希望能够帮助到同样需要提交 IEEE 会议终稿的同学。
一、IEEE PDF eXpress始终无法通过,问题到底在哪里?
一开始,我首先怀疑的是自己对论文中的"参考文献、图号、表号"等内容设置了超链接和交叉引用跳转(原模版没有,是我自己优化的,包括亮眼颜色设置)。
例如在 PDF 中点击:
- Fig. X
- Table X
- 参考文献 X
可以直接跳转到对应的位置。
当时怀疑这些 PDF 超链接可能影响 IEEE PDF eXpress 检测,因此首先备份 .tex 文件,然后删除了相关高亮和链接设置。
重新编译 PDF 并上传 IEEE PDF eXpress。
结果:
问题依旧存在,仍然提示
Error in converting file。
说明问题并不在这里。
于是开始进一步缩小排查范围。
一个非常有效的排查方法:把所有图片暂时注释掉
我将论文中所有图片的 \includegraphics 暂时注释,例如:
latex
% \includegraphics[width=0.95\linewidth]{figs/FigureX.pdf}
然后重新编译一个完全不包含图片的论文 PDF,再次上传 IEEE PDF eXpress。
结果这次竟然:
成功通过检测。
到这里基本可以确定:
问题不在 LaTeX 正文,而是在论文中的某一张或某几张图片。
对于 IEEE 论文而言,如果使用 PNG、JPG 等位图,一般不存在字体嵌入问题;但是如果使用 Visio、Adobe Illustrator、Origin、Matplotlib 等软件生成的 PDF 矢量图,PDF 内部可能包含独立字体资源。
这些字体即使在本机能够正常显示,也不代表字体已经真正嵌入 PDF。
因此就可能出现一种情况:
图片显示完全正常,但 PDF 内部字体并未嵌入,最终导致 IEEE PDF eXpress 检测失败。
二、不要一张一张上传测试,直接用 pdffonts 检查
确定问题来自图片之后,如果论文里面有十几张甚至几十张 PDF 图片,一张一张删除、编译、上传 IEEE PDF eXpress 显然效率非常低。
更简单的方法是直接检查 PDF 图片内部的字体嵌入情况。
这里推荐使用:
bash
pdffonts
该工具属于 Poppler 工具集,可以直接查看 PDF 中包含哪些字体,以及字体是否已经嵌入。
1. 首先进入论文图片目录
在 PowerShell、VS Code Terminal 或 PyCharm Terminal 中进入存放 PDF 图片的文件夹:
bash
cd "D:\你的路径\figs"
2. 检查指定 PDF 图片
执行:
bash
pdffonts FigureX.pdf
得到的结果类似下面这样:

重点看:
text
emb
这一列。
如果显示:
text
yes
说明对应字体已经嵌入 PDF。
如果显示:
text
no
则说明:
该字体存在于 PDF 中,但没有真正嵌入 PDF 文件。
这种 PDF 图即使在自己的电脑上看起来完全正常,提交到 IEEE PDF eXpress 后仍然可能产生字体相关错误。
所以对于论文中的 PDF 矢量图,我个人现在会在终稿提交之前执行一次:
bash
pdffonts FigureX.pdf
确认其中不存在明显的:
text
emb = no
问题。
如果图片比较多,也可以逐张检查:
bash
pdffonts Figure1.pdf
pdffonts Figure2.pdf
pdffonts Figure3.pdf
pdffonts Figure4.pdf
这样比反复上传 IEEE PDF eXpress 排查要高效得多。
三、Visio导出的PDF字体未嵌入,如何解决?
我的论文框架图和模块图主要使用 Microsoft Visio 绘制。
最终发现,问题恰好来自 Visio 导出的部分 PDF 矢量图。
最直接的一种解决方法,是在 Visio 导出 PDF 时勾选:
符合 ISO 19005-1 标准(PDF/A)
具体位置如下:

重新导出以后,再执行:
bash
pdffonts FigureX.pdf
检查字体嵌入情况。
在我这次论文中,重新按照这种方式导出之后,原本没有正确嵌入的字体得到了处理,最终 IEEE PDF eXpress 也成功通过。
最后检测结果如下:

为什么勾选 PDF/A 会有效?
简单理解即可:
PDF/A 是面向长期归档设计的一类 PDF 标准,对文档中的字体、颜色等资源有更加严格的要求,其中一个非常重要的要求就是:
PDF 文档不能依赖本机临时存在的字体资源,而需要尽可能将相关字体信息包含在 PDF 内部。
因此对于 Visio 导出的论文矢量图,开启 PDF/A 有时可以解决字体没有正确嵌入的问题。
不过这里一定要注意:
PDF/A 并不是万能解决方案。
我实际测试发现,启用:
text
符合 ISO 19005-1 标准(PDF/A)
之后,部分 Visio 图形的显示效果可能发生变化,尤其是:
- 半透明区域
- 透明度设置
- 阴影
- 渐变效果
- 某些特殊图形效果
原因在于 PDF/A-1 对透明效果存在比较严格的限制,导出过程中可能发生透明度扁平化处理。
因此建议:
如果图片没有使用复杂透明度效果,可以优先尝试 PDF/A;如果大量使用透明度、渐变或特殊效果,则一定要仔细对比导出前后的图片效果。
不要只检查:
bash
pdffonts
还应该肉眼检查一遍最终 PDF 图是否与 Visio 中的原图一致。
四、为什么不直接把PDF图片全部转成PNG?
最开始也考虑过一个最简单粗暴的方法:
把所有 PDF 矢量图全部转换成 PNG。
PNG 本身不存在字体嵌入问题,因此理论上可以绕开 PDF 字体问题。
这个方法确实非常有效,但是对于论文框架图、网络结构图、消融模块图等包含大量:
- 细线
- 文字
- 箭头
- 数学符号
- 模块边框
的图片,并不是最优选择。
因为将 PDF 矢量图转换成 PNG 后,如果分辨率设置较低,放大论文以后很容易看到:
- 文字边缘模糊
- 线条出现锯齿
- 箭头变虚
- 小字号文字可读性下降
如果为了保证清晰度而导出非常高分辨率的 PNG,又会导致:
单张图片体积明显增加,最终论文 PDF 文件也随之变大。
所以对于论文中的网络结构图,我个人还是更倾向于:
text
Visio
↓
PDF矢量图
↓
pdffonts检查字体
↓
LaTeX插入
↓
IEEE PDF eXpress检查
而不是简单地:
text
PDF → PNG
只要 PDF 中字体能够正确嵌入,矢量图依然是论文结构图非常理想的格式。
五、顺便记录一个LaTeX参考文献突然无法生成的问题
这次提交终稿时还遇到了另外一个比较奇怪的问题。
国际会议提交 Camera-Ready 时,除了最终 PDF,很多会议还会要求同时提交论文源文件,例如:
text
main.tex
references.bib
figs/
因此我习惯在正式提交之前,将论文工程复制一份出来,然后把各种 LaTeX 编译过程文件全部删除,只保留:
text
论文.tex
参考文献.bib
figs/

再从头完整编译一次。
这样可以验证:
当前提交的 LaTeX 源文件是否真的能够脱离之前的缓存和中间文件独立完成编译。
结果这次出现了一个非常奇怪的问题:
复制出来的工程无论如何都无法正确生成参考文献,表现为:
text
.bbl
.blg
无法正常生成,最终 PDF 中也没有 References。
奇怪的是,我回到原来的论文工程,把同样的辅助文件全部删除以后重新编译,参考文献却能够正常生成。
折腾了一段时间以后,最后尝试:
关闭并重新启动 TeXstudio。
重新打开工程并编译之后,参考文献又恢复正常了。
这个问题更可能与 TeXstudio 当时的:
- 构建状态
- 编译链设置
- 工作目录
- BibTeX 调用状态
- 辅助文件缓存
有关,而不是 .bib 文件本身损坏。
如果遇到类似问题,可以先检查完整的 LaTeX 编译链。
对于传统 BibTeX,一般是:
text
LaTeX
↓
BibTeX
↓
LaTeX
↓
LaTeX
也就是类似:
bash
pdflatex main.tex
bibtex main
pdflatex main.tex
pdflatex main.tex
如果代码本身没有问题,却突然无法生成 .bbl,除了查看 BibTeX 报错信息之外,也可以尝试:
- 删除
.aux、.bbl、.blg等过程文件; - 检查 TeXstudio 的默认编译器和 BibTeX 配置;
- 确认当前工作目录正确;
- 重启 TeXstudio;
- 再执行一次完整编译。
总结
这次 IEEE 终稿提交遇到的问题,最终可以归结为两个比较容易忽略的地方。
第一个,也是最主要的问题:
LaTeX 本身没有错误,但插入的 PDF 矢量图中存在未嵌入字体,导致 IEEE PDF eXpress 无法通过。
最快的检查方法:
bash
pdffonts FigureX.pdf
重点检查:
text
emb
是否存在:
text
no
对于 Visio 导出的 PDF,可以尝试开启:
text
符合 ISO 19005-1 标准(PDF/A)
重新导出,但需要同时注意透明度、渐变等图形效果是否发生变化。
第二个问题是:
删除 LaTeX 中间文件以后参考文献突然无法生成。
这种情况下除了检查 .bib 和 BibTeX 报错之外,也不要忽略编辑器本身的编译状态。我的实际情况就是重启 TeXstudio 后恢复正常。
现在我在提交 IEEE Camera-Ready 论文之前,一般会按照下面这个流程进行最终检查:
text
检查 LaTeX 正文
↓
检查所有 PDF 图片字体
↓
pdffonts FigureX.pdf
↓
确认 emb 不存在异常 no
↓
删除 LaTeX 过程文件
↓
重新执行完整编译链
↓
检查参考文献、公式、图片、表格
↓
上传 IEEE PDF eXpress
↓
通过后再提交 Camera-Ready
很多 IEEE PDF eXpress 的问题,并不是论文"看起来"有没有问题,而是 PDF 文件内部是否真正满足出版规范。
所以如果遇到:
text
Error in converting file
而 LaTeX 本身又能够正常编译,不妨优先检查一下:
论文中的 PDF 矢量图是否存在字体未嵌入的问题。
希望这次踩坑记录能够给同样处于 IEEE 终稿提交阶段的同学提供一些参考。