答案1
问题可能不是 Matlab 代码清单,而是您可能包含在文档中的 Matlab 图形(并以 EPS 格式导出)。当 Matlab 生成 EPS 文件时,它不会嵌入用于图形文本标签(标题、刻度、图例……)的字体。理论上,您可以指示 Latexpdf 或 latex+dvips+ps2pdf 嵌入所有字体,但我的经验是,包含的图形中使用的字体通常未嵌入。
最好的选择是将字体嵌入到每个图形中,正如所指出的那样这里:
ps2pdf13 -dPDFSETTINGS=/prepress fig_non_embedded.pdf fig_embedded.pdf
如果无法再次生成该文档,则此响应可以帮助修复整个文档:
答案2
我在 Mac 上提交 PDF 给 IEEE 时遇到了这个问题。使用 Adobe Reader 和 Preview,我能够解决这个问题。我认为如果您使用的是 PC,任何 PDF 打印机都可以代替 Preview。
以下是我采取的步骤。您可以单独修复每个图形,也可以修复整个文档。
使用 Adobe Reader 打开 pdf 文件。
右键单击图像,然后单击“文档属性”。
点击“字体”。检查字体是否未嵌入。应该显示“Courier”或其他字体名称。
如果您的 PDF 不是标准页面大小,请点击“说明”并查看页面大小。记下来。例如 19.4 x 5.22 英寸。
在预览中打开 PDF。转到文件->打印。如果使用的 PDF 不是标准页面大小,请单击纸张大小并选择自定义。您需要创建一个自定义页面大小,该大小等于您在步骤 4 中写下的大小。不要忘记将所有边距归零。完成此操作后,您需要在打印对话框中将打印比例设置为 100%。
在打印对话框(在 Mac 上的预览中)的左下角,单击“PDF”将 PDF 打印为新 PDF。选择目标并打印。
在 Adobe Reader 中打开新的 pdf 并验证字体现在是否嵌入。
我希望这有帮助。
答案3
有一个技巧被证明是有用的。
你可以用记事本打开你用 Matlab 生成的 eps 文件,把里面的 Helvetica 全部替换成 Arial,然后重新编译生成 pdf。
现在它起作用了!