PDF中没有嵌入字体吗?

我使用pdflatex命令创建了一个PDF文件,但其中一些字体没有嵌入进去。请查看pdffonts的输出结果。我还检查了"updmap --edit"来确认选项"pdftexDownloadBase14"是否为真。它是真的。但是,仍然有一些字体没有被嵌入。请帮助我解决这个问题。 enter image description here

我模糊地记得有些字体因为许可问题无法嵌入。绝对不确定是否是这种情况。 - enzotib
我找到的一种方法是使用pdftops命令将pdf转换为ps,然后再使用"ps2pdf14"将ps转换为pdf来解决问题。然而,这样做会降低pdf的质量。这并不是最好的解决方案。 - samarasa
你在tex.stackexchange上提问可能会有更好的运气。 - N.N.
2个回答

这可能不是对askubuntu来说最相关的问题,但我还是会尽力回答:你可能在文档中包含了使用Helvetica字体的图形(一个常见的例子是Matlab创建的图表的坐标轴标签),对吗? 如果你在文档中使用了Helvetica字体(例如通过\usepackage{helvet}),那么将会使用Helvetica替代字体Nimbus Sans L
目前无法嵌入外部图形的字体(如果确保外部图形自己嵌入了字体,则应该可以工作)。
因此,如评论中建议的,唯一的解决方案似乎是进行PDF->PS->PDF转换,例如:
pdf2ps file.pdf file.ps
ps2pdf14 -dPDFSETTINGS=/prepress -dEmbedAllFonts=true file.ps file.pdf

很遗憾,例如超链接将无法在这个转换中保留下来。
请参考(tex.stackexchange)的相关问题: https://tex.stackexchange.com/questions/10391/how-to-embed-fonts-at-compile-time-with-pdflatex

另一个(我相信,更好的)选择是使用Ghostscript:
gs -q -dNOPAUSE -dBATCH -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -sOutputFile=${file}_FONTS-EMBEDDED.pdf ${file}.pdf

这样做更好,因为生成的 pdf 文件更小并且在文本复制方面表现良好。实际上,此方法嵌入其他字体来替代原始字体。但是,生成的 pdf 将包含所有嵌入的字体。我在这里找到了这种方法。