IEEE PDF eXpress终稿检测踩坑记录:PDF图片字体未嵌入与LaTeX参考文献编译异常解决方法 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. XTable X参考文献 [X]可以直接跳转到对应的位置。当时怀疑这些 PDF 超链接可能影响 IEEE PDF eXpress 检测因此首先备份.tex文件然后删除了相关高亮和链接设置。重新编译 PDF 并上传 IEEE PDF eXpress。结果问题依旧存在仍然提示Error in converting file。说明问题并不在这里。于是开始进一步缩小排查范围。一个非常有效的排查方法把所有图片暂时注释掉我将论文中所有图片的\includegraphics暂时注释例如% \includegraphics[width0.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 图片内部的字体嵌入情况。这里推荐使用pdffonts该工具属于 Poppler 工具集可以直接查看 PDF 中包含哪些字体以及字体是否已经嵌入。1. 首先进入论文图片目录在 PowerShell、VS Code Terminal 或 PyCharm Terminal 中进入存放 PDF 图片的文件夹cdD:\你的路径\figs2. 检查指定 PDF 图片执行pdffonts FigureX.pdf得到的结果类似下面这样重点看emb这一列。如果显示yes说明对应字体已经嵌入 PDF。如果显示no则说明该字体存在于 PDF 中但没有真正嵌入 PDF 文件。这种 PDF 图即使在自己的电脑上看起来完全正常提交到 IEEE PDF eXpress 后仍然可能产生字体相关错误。所以对于论文中的 PDF 矢量图我个人现在会在终稿提交之前执行一次pdffonts FigureX.pdf确认其中不存在明显的emb no问题。如果图片比较多也可以逐张检查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具体位置如下重新导出以后再执行pdffonts FigureX.pdf检查字体嵌入情况。在我这次论文中重新按照这种方式导出之后原本没有正确嵌入的字体得到了处理最终 IEEE PDF eXpress 也成功通过。最后检测结果如下为什么勾选 PDF/A 会有效简单理解即可PDF/A 是面向长期归档设计的一类 PDF 标准对文档中的字体、颜色等资源有更加严格的要求其中一个非常重要的要求就是PDF 文档不能依赖本机临时存在的字体资源而需要尽可能将相关字体信息包含在 PDF 内部。因此对于 Visio 导出的论文矢量图开启 PDF/A 有时可以解决字体没有正确嵌入的问题。不过这里一定要注意PDF/A 并不是万能解决方案。我实际测试发现启用符合 ISO 19005-1 标准PDF/A之后部分 Visio 图形的显示效果可能发生变化尤其是半透明区域透明度设置阴影渐变效果某些特殊图形效果原因在于 PDF/A-1 对透明效果存在比较严格的限制导出过程中可能发生透明度扁平化处理。因此建议如果图片没有使用复杂透明度效果可以优先尝试 PDF/A如果大量使用透明度、渐变或特殊效果则一定要仔细对比导出前后的图片效果。不要只检查pdffonts还应该肉眼检查一遍最终 PDF 图是否与 Visio 中的原图一致。四、为什么不直接把PDF图片全部转成PNG最开始也考虑过一个最简单粗暴的方法把所有 PDF 矢量图全部转换成 PNG。PNG 本身不存在字体嵌入问题因此理论上可以绕开 PDF 字体问题。这个方法确实非常有效但是对于论文框架图、网络结构图、消融模块图等包含大量细线文字箭头数学符号模块边框的图片并不是最优选择。因为将 PDF 矢量图转换成 PNG 后如果分辨率设置较低放大论文以后很容易看到文字边缘模糊线条出现锯齿箭头变虚小字号文字可读性下降如果为了保证清晰度而导出非常高分辨率的 PNG又会导致单张图片体积明显增加最终论文 PDF 文件也随之变大。所以对于论文中的网络结构图我个人还是更倾向于Visio ↓ PDF矢量图 ↓ pdffonts检查字体 ↓ LaTeX插入 ↓ IEEE PDF eXpress检查而不是简单地PDF → PNG只要 PDF 中字体能够正确嵌入矢量图依然是论文结构图非常理想的格式。五、顺便记录一个LaTeX参考文献突然无法生成的问题这次提交终稿时还遇到了另外一个比较奇怪的问题。国际会议提交 Camera-Ready 时除了最终 PDF很多会议还会要求同时提交论文源文件例如main.tex references.bib figs/因此我习惯在正式提交之前将论文工程复制一份出来然后把各种 LaTeX 编译过程文件全部删除只保留论文.tex 参考文献.bib figs/再从头完整编译一次。这样可以验证当前提交的 LaTeX 源文件是否真的能够脱离之前的缓存和中间文件独立完成编译。结果这次出现了一个非常奇怪的问题复制出来的工程无论如何都无法正确生成参考文献表现为.bbl .blg无法正常生成最终 PDF 中也没有 References。奇怪的是我回到原来的论文工程把同样的辅助文件全部删除以后重新编译参考文献却能够正常生成。折腾了一段时间以后最后尝试关闭并重新启动 TeXstudio。重新打开工程并编译之后参考文献又恢复正常了。这个问题更可能与 TeXstudio 当时的构建状态编译链设置工作目录BibTeX 调用状态辅助文件缓存有关而不是.bib文件本身损坏。如果遇到类似问题可以先检查完整的 LaTeX 编译链。对于传统 BibTeX一般是LaTeX ↓ BibTeX ↓ LaTeX ↓ LaTeX也就是类似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 无法通过。最快的检查方法pdffonts FigureX.pdf重点检查emb是否存在no对于 Visio 导出的 PDF可以尝试开启符合 ISO 19005-1 标准PDF/A重新导出但需要同时注意透明度、渐变等图形效果是否发生变化。第二个问题是删除 LaTeX 中间文件以后参考文献突然无法生成。这种情况下除了检查.bib和 BibTeX 报错之外也不要忽略编辑器本身的编译状态。我的实际情况就是重启 TeXstudio 后恢复正常。现在我在提交 IEEE Camera-Ready 论文之前一般会按照下面这个流程进行最终检查检查 LaTeX 正文 ↓ 检查所有 PDF 图片字体 ↓ pdffonts FigureX.pdf ↓ 确认 emb 不存在异常 no ↓ 删除 LaTeX 过程文件 ↓ 重新执行完整编译链 ↓ 检查参考文献、公式、图片、表格 ↓ 上传 IEEE PDF eXpress ↓ 通过后再提交 Camera-Ready很多 IEEE PDF eXpress 的问题并不是论文“看起来”有没有问题而是 PDF 文件内部是否真正满足出版规范。所以如果遇到Error in converting file而 LaTeX 本身又能够正常编译不妨优先检查一下论文中的 PDF 矢量图是否存在字体未嵌入的问题。希望这次踩坑记录能够给同样处于 IEEE 终稿提交阶段的同学提供一些参考。