TexStudio pdf 查看器显示的内容与实际 PDF 不同。字体问题?

TexStudio pdf 查看器显示的内容与实际 PDF 不同。字体问题?

我正在使用 将一页 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 查看器中的样子如下:

Mathematica 图形

相同的编译后的 PDF 在外部 Adob​​e PDF 阅读器中的样子如下:

Mathematica 图形

所包含的图像 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 编译。

Mathematica 图形

Mathematica 图形

有什么想法可以让 TexStudio 显示与 PDF 文件中实际相同的内容吗?

这是(包含图像 pdf 文件pdfinfoa.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

相关问题可能是texstudio-内部嵌入式 pdf 查看器显示与外部 pd 不同的图形

答案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 种。这种替换的成功程度将因配置和可用性而异。但是,除非主机具有相同的字体、合适的设置、相同的版本等,否则结果将不会与创建文件的机器上的结果完全相同,而这种情况不太可能发生。大多数情况下,您会得到一些合理的结果。有时,正如您所见,您会得到一些字符完全错误的结果。

保证在另一台机器上(或经过一段时间和更新等后的同一台机器或在另一个查看器中)的外观的唯一方法是确保所有字体都已嵌入。

相关内容