Die EPS-Dateien habe ich selbst erzeugt. In den EPS-Dateien habe ich die \interpolate false
Option gesetzt. Ich binde sie in den LaTeX-Quellcode mit includegraphics
TikZ ein (weil ich mehrere davon schön nah beieinander haben möchte).
Dann führe ich die Standardschritte aus:
latex src.tex
dvips -Ppdf src.dvi
ps2pdf src.ps
In einem Texteditor sehe ich, dass die PostScript-Quelldatei den vollständigen Text der EPS-Datei beibehalten hat. Sogar meine Kommentare darin (wie es sein sollte). Die \interpolate false
Zeile ist also auch geblieben. Wenn ich die PostScript-Quelle mit Evince (dem GNOME-PDF-Viewer) öffne, gibt es tatsächlich keine Interpolation. Nur zur Kontrolle habe ich mit dem Editor \interpolate true
die PostScript-Datei eingerichtet und erneut geöffnet und bestätigt, dass Evince jetzt tatsächlich das Bild interpoliert. Dies zeigt, dass Evince zumindest diese Option versteht.
Aber wenn ich die Datei öffne, src.pdf
die von ps2pdf ausgegeben wurde, sehe ich, dass die Ausgabe auf jeden Fall interpoliert (geglättet) ist! Ich habe die PDF-Datei auch mit einem Texteditor geöffnet und festgestellt, dass nur die grundlegendsten Parameter des EPS-Bildes übrig geblieben sind (wie Breite oder Höhe). \interpolate false
entfernt worden waren.
Aus den obigen Ergebnissen erkenne ich, dass das Problem nicht bei includegraphics
einem der LaTeX-Schritte oder gar meinem PDF-Viewer liegt. Es liegt bei ps2pdf.
In seinemDokumentation, es scheint AntiAliasColorImages
, AntiAliasGrayImages
und zu haben AntiAliasMonoImages
, aber im Folgenden heißt es:
(note 0) This parameter can be set and queried, but currently has no effect.
Wenn ich also den folgenden Befehl ausführe, gibt es keinen Unterschied:
ps2pdf -dAntiAliasGrayImages=false -dAntiAliasMonoImages=false src.ps
Ich wollte sehen, ob ich das Problem irgendwie lösen kann. Für mich ist es sehr wichtig, dass in der PDF-Datei kein Anti-Aliasing auftritt.
Antwort1
Der Standardwert für den Schlüssel /Interpolate
im Bildwörterbuch der PDF-Datei ist false
, siehePDF-Spezifikation, Abschnitt8.9.5.3 Bildinterpolation. Daher /Interpolate false
macht das Hinzufügen nur die Standardeinstellung explizit. Wahrscheinlich wird das Antialiasing vom PDF-Viewer durchgeführt und sollte dort deaktiviert werden.
Beachten Sie auch den Hinweis, der der Beschreibung beiliegt /Interpolate
:
Ein konformer Reader kann sich dafür entscheiden, diese PDF-Funktion nicht zu implementieren, oder er kann eine beliebige spezifische Interpolationsimplementierung verwenden.
Test von/Interpolate
Der Treiber pdftex.def
für das Paket graphics
unterstützt den booleschen Schlüssel interpolate
, der seine Einstellung dem Schlüssel /Interpolate
im Bildwörterbuch zuordnet. Der Standardwert (false) und der aktivierte Schlüssel zeigen die erwarteten Ergebnisse mit diesemBildin AR9 oder xpdf 3.03 oder evince 3.4.0:
\documentclass{article}
\pagestyle{empty}
\usepackage{graphicx}
\begin{document}
\centering
\includegraphics[width=.48\linewidth]{uJ9k7.png}\hfill
\includegraphics[width=.48\linewidth, interpolate]{uJ9k7.png}
\end{document}