我正在使用 将一页 pdf 作为图像加载\includegraphics
。此页面包含一些数学运算。当我编译 Latex 文件并使用 TeXStudio 查看器时,我发现数学字体不正确(来自包含的图形 pdf 文件!)。当我使用外部 PDF 阅读器(如 adobe)查看时,pdf 图像文件很好,生成的 pdf 文件也很好。
它只会在 TeXStudio 内部显示错误。
平均能量损失
\documentclass[12pt]{report}%
\usepackage{graphicx}
\pdfminorversion=6 %needed since graphics pdf is 1.6.
\begin{document}
\includegraphics[width=0.8\textwidth]{a}
\end{document}
该 PDF 在 Texstudio 查看器中的样子如下:
相同的编译后的 PDF 在外部 Adobe PDF 阅读器中的样子如下:
所包含的图像 PDF 文件是一页 PDF 文件。如果您想重现此问题,以下是此文件的链接:一个.pdf
我在 Linux 上的 TL 2015 和 Windows 上使用 MiKTex 2.9 编译了上述 MWE,两种情况下都没有问题。这只是 TeXStudio 查看器的问题。看起来它没有加载某些字体,我不知道如何解决这个问题。
眼镜:
TexStudio:TeXstudio 2.10.4(hg 5633:150614dcede6)使用 Qt 版本 5.5.1,用 Qt 5.5.1 R 编译。
有什么想法可以让 TexStudio 显示与 PDF 文件中实际相同的内容吗?
这是(包含图像 pdf 文件pdfinfo
)a.pdf
pdfinfo a.pdf
Creator: TeX
Producer: pdfTeX-1.40.16
CreationDate: Sat Dec 19 00:17:35 2015
ModDate: Sat Dec 19 00:17:35 2015
Tagged: no
Form: none
Pages: 1
Encrypted: no
Page size: 365 x 622 pts
Page rot: 0
File size: 19737 bytes
Optimized: no
PDF version: 1.6
感谢下面 cfr 的提示,这里是pdffonts
应用于所包含的图像 pdf 文件的输出。
pdffonts a.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Times-Roman Type 1 Custom no no no 19 0
Times-Italic Type 1 Custom no no no 20 0
Symbol Type 1 Symbol no no no 21 0
Times-Bold Type 1 Standard no no no 22 0
ADWCRP+rsfs10 Type 1C WinAnsi yes yes no 23 0
EGYAWT+CMR10 Type 1C WinAnsi yes yes no 24 0
Helvetica-Bold Type 1 Custom no no no 25 0
GNWMUE+CMSY10 Type 1C Custom yes yes yes 26 0
IQWWFY+CMMI10 Type 1C Custom yes yes yes 27 0
这是pdffonts
包含上述 pdf 文件的主要 pdf 文件,作为 includegraphics
>pdffonts foo.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
ZJXPIR+CMR12 Type 1 Builtin yes yes no 5 0
Times-Roman Type 1 Custom no no no 21 0
Times-Italic Type 1 Custom no no no 22 0
Symbol Type 1 Symbol no no no 23 0
Times-Bold Type 1 Standard no no no 24 0
ADWCRP+rsfs10 Type 1C WinAnsi yes yes no 25 0
EGYAWT+CMR10 Type 1C WinAnsi yes yes no 26 0
Helvetica-Bold Type 1 Custom no no no 27 0
GNWMUE+CMSY10 Type 1C Custom yes yes yes 28 0
IQWWFY+CMMI10 Type 1C Custom yes yes yes 29 0
答案1
PDF 有许多非嵌入字体。这意味着它在不同的查看器和不同的系统中会显示不同,具体取决于可用的字体。它acroread
有自己的默认和后备字体,并且可能正在使用这些字体。TeXStudio 中的问题很可能是由于您的系统范围的字体配置,即您安装了哪些字体以及它们是如何配置的。特别是,如果您没有 PDF 所需的字体,系统将尝试用其他字体替换。(至少,在 Linux 上是这样。)因此成功率会有所不同。
请注意,即使您在 TeXStudio 中修复了此问题,问题仍然存在。因此,您不应将存在此问题的 PDF 发送给任何其他人,并期望它看起来相同,甚至以有意义的方式显示所有字符。正如您所见,这根本无法保证!唯一的好解决方案是修复 PDF 以嵌入所有字体。如果做不到这一点,您可以将文件嵌入为图像。这有明显的缺点,但应该可以保证在外星系统和外星查看器中正确显示。
创建 PDF 时应嵌入所有字体。有时不这样做是为了减小文件大小,但大多数情况下这是由于用户无知、健忘和创建文件的应用程序的默认设置不佳造成的。
要检查字体是否已嵌入,请在 PDF 查看器中查看文件的“属性”(位置取决于查看器 - Okularacroread
等肯定提供此功能)或pdffonts
在命令行中使用。在字体列表中,您应该看到所有字体都已嵌入Embedded
(子集也可以)。
如果您看到与文件系统位置一起使用的字体,那么它正在使用您机器上的字体,因为原始字体未嵌入。
在这个特定的文件中,有些字体是嵌入的,但有些不是。因此,查看器或操作系统必须替换未嵌入的字体。
pdffonts
以下是该文件的输出:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Times-Roman Type 1 Custom no no no 19 0
Times-Italic Type 1 Custom no no no 20 0
Symbol Type 1 Symbol no no no 21 0
Times-Bold Type 1 Standard no no no 22 0
ADWCRP+rsfs10 Type 1C WinAnsi yes yes no 23 0
EGYAWT+CMR10 Type 1C WinAnsi yes yes no 24 0
Helvetica-Bold Type 1 Custom no no no 25 0
GNWMUE+CMSY10 Type 1C Custom yes yes yes 26 0
IQWWFY+CMMI10 Type 1C Custom yes yes yes 27 0
关键的列是,emb
它显示 9 种字体中只有 4 种是嵌入的。这意味着查看器 ( acroread
) 或操作系统(对于 TeXStudio、Okular 等应用程序)必须替换剩余的 5 种。这种替换的成功程度将因配置和可用性而异。但是,除非主机具有相同的字体、合适的设置、相同的版本等,否则结果将不会与创建文件的机器上的结果完全相同,而这种情况不太可能发生。大多数情况下,您会得到一些合理的结果。有时,正如您所见,您会得到一些字符完全错误的结果。
保证在另一台机器上(或经过一段时间和更新等后的同一台机器或在另一个查看器中)的外观的唯一方法是确保所有字体都已嵌入。