Die Dateien

Die Dateien

Diese Frage enthält keinen direkten Bezug zu TeX; ich bin jedoch beim Arbeiten mit auf das Problem gestoßen pdflatex, insbesondere beim Einfügen epsder Ausgabe in eine pdfDatei. Außerdem erwarte ich von diesem SE die meiste Expertise in Bezug auf die epsund pdfDateiformate. Ich hoffe also, dass diese Frage themenbezogen ist. Ich habe ein paar andere Fragen zur Konvertierung der MATLAB-Ausgabe recherchiert; keine davon schien sich jedoch mit dem spezifischen Problem zu befassen, mit dem ich konfrontiert bin, oder der Detaillierungsgrad der Frage war äußerst begrenzt.

Mein Problem ist: Einige Grafikelemente werden im Acrobat Reader nicht angezeigt. Text wird einwandfrei angezeigt, und ob Elemente angezeigt werden oder nicht, hängt von der Exportroutine und ihrer Größe ab. Es scheint kein Beschneidungsproblem zu sein. In anderen Viewern sehe ich dieses Problem nicht. Ich werde also die Lösung von ausprobieren.Bestimmte EPS-Dateien lassen sich mit epstopdf nicht konvertieren, Aber ...

... meine Frage ist, warum passiert das trotzdem? Ist das ein Fehler im Acrobat Reader? In epstopdf? In MATLAB? Oder verwendet diese Toolchain eine Funktion, die ich besser vermeiden sollte, weil sie bekanntermaßen Probleme verursacht?

Wie gesagt, ich habe das Problem auf ein Problem reduziert, das unabhängig von ist pdflatex.

So erstelle ich die Dateien in MATLAB. Ich hoffe, dass der Code für jeden verständlich ist.

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

Die Dateien

saveas_32.pdfund print-d_32.pdfsind die Dateien, die falsch angezeigt werden. So sieht das aus:

Bildbeschreibung hier eingeben

Meine Beobachtungen

  • Alle EPS-Dateien werden in GSview gut angezeigt.
  • Alle PDF-Dateien werden in Google Chrome gut angezeigt.
  • saveasund print-ddie Dateien sehen überall gleich aus; das ist nicht überraschend. Es ist eher überraschend, dass printdie Dateien einen hässlichen Rand haben, den ich manuell zuschneiden müsste; das möchte ich nicht tun.
  • Alle anderen (Nicht- print)PDF-Dateien sehen hinsichtlich der Komposition ziemlich perfekt aus.
  • Alle 33PDF-Dateien werden im Acrobat Reader einwandfrei angezeigt.
  • Die print_32PDF-Datei sieht im Acrobat Reader gut aus (aber dieser hässliche Rand ...).
  • In allen anderen (nicht- print) 32PDF-Dateien fehlt das Bild. Der Text steht an der erwarteten Position.
  • In 32EPS-Dateien werden die Bilddaten als „Muster“ gespeichert.
  • In 33EPS-Dateien werden die Bilddaten als java.awt.image.BufferedImage gespeichert.

Versionsinformation

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)

Antwort1

Die Antwort ist einfach, und @samcarters Kommentar hat mich darauf gebracht. Es waren die Anzeigeeinstellungen in meiner Installation von Adobe Reader. Ich hatte „Dokumentfarben ersetzen“ aktiviert (ich erinnere mich, einmal mit dieser Einstellung herumgespielt zu haben), und obwohl dies in einem normalen Dokument nicht viel ändert (und sicherlich keine Bilder entfernt), werden meine Beispielbilder im Format 32 x 32 (oder kleiner) entfernt. Ich vermute, der Unterschied zwischen 32 x 32 und 33 x 33 besteht darin, dass letztere als Bitmaps codiert (und nicht ersetzt) ​​werden, während erstere als Muster einer Form codiert (und ersetzt) ​​werden. Dies muss eine Unterscheidung sein, die der ursprüngliche Encoder (in diesem Fall MATLAB) vornimmt, da Sie diesen Unterschied in den EPS-Dateien sehen.

Wenn ich diese Option deaktiviere, werden meine Bilder wiederhergestellt!

Bildbeschreibung hier eingeben

verwandte Informationen