最近我将 lubuntu 版本从 16.04 更新到 18.04,从那时起,我在显示某些符号 pdf 图(使用evince
)时遇到了问题。我尝试显示的 pdf 文件如下:
https://www.dropbox.com/s/mc2wp2y8q2af1vj/stupidPlot.pdf?dl=0
在我的屏幕上它显示如下截图所示:
而它应该显示如下:
因此,希腊符号 delta、gamma 和大写 delta 未按预期显示。经过一番搜索,我猜想这一定与字体未嵌入我尝试读取的 pdf 文件有关(尽管我不确定,所以如果不是这种情况,请纠正我)。pdffonts
给出以下输出:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Times-Italic Type 1 WinAnsi no no no 7 0
Times-Bold Type 1 WinAnsi no no no 8 0
Times-BoldItalic Type 1 WinAnsi no no no 9 0
Helvetica Type 1 WinAnsi no no no 10 0
Helvetica-Oblique Type 1 WinAnsi no no no 11 0
Helvetica-Bold Type 1 WinAnsi no no no 12 0
Helvetica-BoldOblique Type 1 WinAnsi no no no 13 0
Courier Type 1 WinAnsi no no no 14 0
Courier-Oblique Type 1 WinAnsi no no no 15 0
Courier-Bold Type 1 WinAnsi no no no 16 0
Courier-BoldOblique Type 1 WinAnsi no no no 17 0
Symbol Type 1 Symbol no no no 18 0
Times-Roman Type 1 WinAnsi no no no 19 0
ZapfDingbats Type 1 ZapfDingbats no no no 20 0
Symbol Type 1 Symbol no no no 21 0
我尝试使用给出的建议来修复它: https://stackoverflow.com/questions/10277418/the-pdf-viewer-evince-on-linux-can-not-display-some-math-symbols-correctly运行 GhostScript 如下:
gs -o gs-repaired---stupidPlot.pdf -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite stupidPlot.pdf
这似乎不起作用并给出错误:
**** Error: Encountered 'obj' while expecting 'endobj'.
Treating this as a missing 'endobj', output may be incorrect.
**** Error: Encountered 'obj' while expecting 'endobj'.
Treating this as a missing 'endobj', output may be incorrect.
Processing pages 1 through 1.
Page 1
Loading NimbusSans-Regular font from /usr/share/ghostscript/9.26/Resource/Font/NimbusSans-Regular... 5086732 3571608 2679472 1286852 4 done.
Loading StandardSymbolsPS font from /usr/share/ghostscript/9.26/Resource/Font/StandardSymbolsPS... 5119500 3664456 2699672 1302649 4 done.
**** This file had errors that were repaired or ignored.
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.
**** 此文件的渲染输出可能不正确。
此外,我必须制作数万个 pdf 图,因此最好不要在其中嵌入字体以便正确显示它们。
所以我想知道是否有人知道从 lubuntu 16.04 更新到 18.04 时可能发生了什么变化(在 16.04 中,图表始终正确显示),以及如何正确显示 pdf evince
,最好不必在 pdf 中嵌入字体。
我也尝试使用xpdf
和okular
作为的替代evince
,但它们以相同的方式错误地显示符号。
答案1
在 Adobe Illustrator 中打开该文件,你会发现字形字体实际上是https://en.wikipedia.org/wiki/Symbol_(字体)它可能随 Adobe Reader 一起提供,但不随 evince 提供。同时,您可能没有将该字体安装为系统字体,因此没有什么可以退而求其次的。感谢 envince 没有默默地用其他字体替换它。
最后一件事是,字体是否在创建文件时嵌入了文件(完整信息在 pdf 本身中)。然而,基于https://root-forum.cern.ch/t/embed-fonts-in-pdf/21666/2ROOT 不允许嵌入字体以保持文件大小较小。
总结 确保字体设置为“Helvetica”,除非在 Mac 上会给你 Arial,但无论哪种方式你都应该能够正确显示符号。