文件

文件

这个问题不包含任何对 TeX 的直接引用;但是,我在使用时遇到了这个问题pdflatex,特别是在eps将输出包含到文件中时。此外,我希望这个 SE 上有关于和文件格式pdf的最多专业知识。所以我希望这个问题是主题。我研究了几个关于 MATLAB 输出转换的其他问题;然而,它们似乎都没有解决我面临的具体问题,或者问题中的细节数量极其有限。epspdf

我的问题是:Acrobat Reader 中不显示某些图形元素。文本显示正常,元素是否显示取决于导出例程及其大小。这似乎不是裁剪问题。我在其他查看器中没有看到这个问题。所以我将尝试解决方案某些 EPS 文件无法使用 epstopdf 进行转换, 但 ...

... 我的问题是,为什么会发生这种情况?这是 Acrobat Reader 中的错误吗?在epstopdf?在 MATLAB 中?或者该工具链使用的功能我最好避免使用,因为它已知会导致问题?

正如我所说,我已将问题简化为与无关的问题pdflatex

这就是我在 MATLAB 中生成文件的方式,我希望任何人都能理解该代码。

for dim = 32 : 33
    im = rand(dim);
    suf = sprintf('_%d.eps', dim);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    saveas(gcf, ['saveas' suf]);
    system(['epstopdf saveas' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print-d' suf], '-deps');
    system(['epstopdf print-d' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print' suf]);
    system(['epstopdf print' suf]);
end

文件

saveas_32.pdf并且print-d_32.pdf显示的文件是错误的。如下所示:

在此处输入图片描述

我的观察

  • 所有 eps 文件在 GSview 中看起来都很好。
  • 所有 pdf 文件在 Google Chrome 中看起来都很好。
  • saveas并且print-d文件在任何地方看起来都一样;这并不奇怪;令人惊讶的是print文件有一个难看的边框,我需要手动裁剪;我不想那样做。
  • 所有其他(非print)pdf 文件在构图方面看起来都相当完美。
  • 所有33pdf 文件在 Acrobat Reader 中看起来都很好。
  • pdf文件print_32在 Acrobat Reader 中看起来很好(但是边框很丑……)。
  • 所有其他(非print32pdf 文件都缺少图像。文本位于预期位置。
  • 32eps 文件中,图像数据以“图案”的形式存储。
  • 33eps 文件中,图像数据以 java.awt.image.BufferedImage 的形式存储。

版本信息

GSView 5.0

GPL Ghostscript 9.20 (2016-09-26)

MATLAB Version: 9.1.0.441655 (R2016b)
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 14393)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 
64-Bit Server VM mixed mode

MATLAB's Ghostscript:
It seems that MATLAB does not ship with Ghostscript any longer. 
From pdf files saved with MATLAB, I find this:
Apache FOP Version 2.2.0-SNAPSHOT: PDFDocumentGraphics2D
I cannot see if this is used to generate eps output, too.

C:\>which epstopdf
/Program Files/MiKTeX 2.9/miktex/bin/x64/epstopdf

C:\>epstopdf --version
MiKTeX EPS-to-PDF Converter 2.9.6200 (MiKTeX 2.9.6210 64-bit)

From EPS files, which are converted using this tool:
MiKTeX GPL Ghostscript 9.19

Adobe Acrobat Reader DC 2015.023.20056

Chrome Version 55.0.2883.87 m (64-bit)

答案1

答案很简单,@samcarter 的评论让我找到了答案。这是我安装的 Adob​​e Reader 中的显示设置。我打开了“替换文档颜色”(我记得曾经尝试过这个设置),尽管这在常规文档中不会发生太大变化(当然也不会删除图像),但它确实删除了我的示例 32x32(或更小)图像。我猜 32x32 和 33x33 之间的区别在于后者被编码为位图(而不是被替换),而前者被编码为形状的图案(并被替换)。这一定是初始编码器(在本例中为 MATLAB)做出的区分,因为您在 eps 文件中看到了这种差异。

关闭该选项即可恢复我的图像!

在此处输入图片描述

相关内容