
Ausgabe auch geöffnet beihttps://github.com/texstudio-org/texstudio/issues/51
Wenn ich diese MWE-Latex-Datei in Texstudio unter Windows mit MikTex kompiliere und dann das Ergebnis mit dem internen PDF-Viewer von Texstudio ansehe, werden weiße Streifen über das Bild angezeigt. Diese Linien sind im Originalbild nicht vorhanden.
Außerdem werden diese Zeilen nicht angezeigt, wenn ich die kompilierte PDF-Datei mit einem externen PDF-Reader wie Adobe ansehe.
Warum ist das so? Das Bild ist auch eine PDF-Datei. Kann man das Problem lösen? Es ist eigentlich kein großes Problem, da es sich anscheinend nur um ein Artefakt des Texstudio PDF Viewer selbst handelt, aber ich wollte fragen, ob es eine Möglichkeit gibt, das zu beheben.
Hier ist MWE
\documentclass{article}
\usepackage{graphicx}
\begin{document}
This is my image, as PDF file, imported using includegraphics
\includegraphics[width=\textwidth]{image}
\end{document}
Ich habe die Datei image.pdf auf meine Webseite gestelltHier
So sieht das kompilierte PDF im Texstudio PDF Viewer aus
So sieht das PDF im Adobe PRO PDF Reader aus
Beachten Sie die weißen Linien, die in Texstudio angezeigt werden. Dies ist pdfinfo
auf der Bilddatei
pdfinfo image.pdf
Creator: Wolfram Mathematica 11.2.0.0 for Microsoft Windows (64-bit) (September 10, 2017) Student Edition - Personal Use Only
Producer:
CreationDate: Sat Mar 3 16:13:39 2018
ModDate: Sat Mar 3 16:13:39 2018
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 1
Encrypted: no
Page size: 470 x 367 pts
Page rot: 0
File size: 99049 bytes
Optimized: no
PDF version: 1.5
ich benutze
TeXstudio 2.12.6 (hg 6632:7777b2b8a906)
Using Qt Version 5.9.1, compiled with Qt 5.9.1 R
Windows 7.
Antwort1
Dies ist ein Problem, das bei mehreren Versionen von Mathematica auftrat, obwohl ich es seltsamerweise mit Mathematica 11 (unter Linux, nicht unter Windows) nicht reproduzieren kann. Es tritt auf, wenn Vektorgrafiken mit Polygonen schattiert werden (wie hier), die Umrisse der Polygone jedoch weggelassen werden. Um das Problem zu beheben, exportieren Sie Ihr Bild als EPS (Sie können es später in PDF konvertieren), indem Sie Ihren ContourPlot-Befehl in einen Exportbefehl einschließen:
Export[ "myfile.eps" , Contourplot[ ... ] ]
Öffnen Sie dann die EPS-Datei in Ihrem bevorzugten Texteditor und suchen Sie das Makro, das zum Füllen von Polygonen verwendet wird. Dieses befindet sich ganz oben in der Datei und sieht wahrscheinlich so aus:
/f { fill bind def }
oder vielleicht
/f fill load def
Wechseln Sie fill
zur gsave fill grestore stroke
Datei und speichern Sie sie. Die neue Anweisung weist den Viewer an, die Polygone zu schattierenUndZeichnen Sie ihre Umrisse. Nach dem erneuten Laden in Ihrem Viewer sollte das Problem behoben sein.
Antwort2
Das Bild besteht aus Dreiecken. Das folgende Bild wird aus der PDF-Datei generiert. Zuerst wird der Seitenstrom der Datei dekomprimiert durch:
pdftk image.pdf cat output image-uncompress.pdf uncompress
Anschließend wird die Datei durch Ersetzen von " m B
" durch " m S
" und " m f
" durch " m S
" geändert. Das Ersetzen von B
und f
durch S
entfernt die Füllung und es werden nur die Dreiecke gezeichnet.
Wie man sehen kann, kollidieren die weißen Linien mit den Rändern zwischen Dreiecken. Es handelt sich also möglicherweise um ein Rundungsproblem.
Antwort3
Normalerweise umgehe ich dieses Problem, indem ich solche Bilder in mehreren Ebenen exportiere.
- Eine Ebene, die nur das farbige Histogramm enthält, keine Achsen oder Text. Diese Datei wird so gespeichert, dass
.png
Viewer-Artefakte an den Rändern der Bins vermieden werden.
- Die nächste Ebene enthält alle Linien und Texte. Diese Ebene wird gespeichert als
.pdf
- Beide Ebenen können auf verschiedene Weise kombiniert werden. Sie können Inkscape verwenden oder es direkt in Latex tun und eine
picture
Umgebung zum Stapeln der Bilder verwenden.
(Bei Histogrammen mit einer sehr großen Anzahl von Bins reduziert dieser Ansatz auch die Dateigröße erheblich und beschleunigt das Rendern der .pdf
)