Schlagwort: EPS

  • Einbinden von Vektorgrafiken in PDF-Dokumente mit LaTeX.

    LaTeX.Nachdem ich die letzten beiden Tage damit beschäftigt war, den Quelltext meines Programmierpraktikums zu kommentieren, habe ich heute mit dem Tippen der Ausarbeitung begonnen. Wie es sich für einen anständig wissenschaftlich arbeitenden Informatiker gehört, verwende ich dafür LaTeX.

    Dabei bin ich auf ein kleines Problem gestoßen bei dem es mich wundert, dass ich es nicht schon viel früher gelöst habe. Schließlich handelt es sich bei der schriftlichen Ausarbeitung meines Programmierpraktikums bei weitem nicht um mein erstes größeres LaTeX-Projekt. Es geht darum, Vektorgrafiken in Form von EPS-Dateien (Encapsulated PostScript) mit dem Befehl \includegraphics{} in ein PDF-Dokument einzubinden.

    Der Vorteil von Vektorgrafiken liegt auf der Hand: Sie lassen sich ohne Qualitätsverlust oder Entstehen von Artefakten skalieren, also vergrößern oder verkleinern. Natürlich eignen sich Vektorgrafiken nicht für jede Art von Bild (klassisches Gegenbeispiel ist das Foto). Aber jede Form von Diagrammen oder Schemata, wie sie ausschließlich in meiner Programmierpraktikumsausarbeitung vorkommen, speichert man am besten als Vektorgrafik.

    So lange man sein LaTeX-Dokument nach DVI oder PS exportiert, ist die Verwendung von EPS-Dateien, die Bilder als Vektorgrafiken speichern, kein Problem. Exportiert man sein LaTeX-Dokument jedoch nach PDF, ist man mit folgendem Problem konfrontiert: Der Export erfolgt in der Regel mittels des Befehls pdflatex und dieser akzeptiert nur PNG, BMP oder TIFF-Dateien als Bilddateien. Da keine dieser Bilddateien ein Vektorgrafikformat ist, muss man sich was einfallen lassen.

    Abhilfe schafft hierbei das Package \usepackage{epstopdf}: Es wandelt beim Übersetzungsvorgang alle im LaTeX-Dokument eingebundenen EPS-Dateien implizit in PDF-Dateien um, die dann als Bilder inkludiert werden können. Diese PDF-Dateien sind dann auch Vektorgrafiken, die in den PDF-Export übernommen werden. Man muss lediglich \usepackage{epstopdf} am Anfang seines LaTeX-Dokuments angeben. Die EPS-Dateien lassen sich dann wie gewohnt an gewünschter Stelle mit \includegraphics{dateiname.eps} einbinden.

    Eine Kleinigkeit muss man jedoch beachten: Bei epstopdf handelt es sich um ein externes Programm. Dies muss pdflatex beim Übersetzungsvorgang mitgeteilt werden, ansonsten erhält man eine Fehlermeldung der Form Shell escape feature is not enabled. MiKTeX verwendet hierfür den Parameter --enable-write18, teTeX und TeX Live den Parameter --shell-escape.

    Wer TeXnicCenter als LaTeX-Editor verwendet, dem sei an dieser Stelle schnell erklärt, wie er das Argument --enable-write18 automatisch übernimmt. Über „Ausgabe“ → „Ausgabeprofil definieren“ kann man unter „Argumente, die an den Compiler übergeben werden sollen“ das Argument --enable-write18 (für MiKTeX) angeben. In der Regel steht dort bereits -interaction=nonstopmode "%pm". Dem stellt man das neue Argument getrennt durch ein Leerzeichen einfach voran.

    Noch ein kleiner Hinweis am Rande: Wer will, dass seine Grafik automatisch auf die Breite des Textes skaliert wird, kann dies mit der Option width=\textwidth machen. Das Einfügen eines Bildes würde dann beispielsweise so aussehen: \includegraphics[width=\textwidth]{dateiname.eps}. Auch Skalierungen wie \includegraphics[width=0.4\textwidth]{dateiname.eps} oder \includegraphics[width=.7\textwidth-2cm]{dateiname.eps} sind möglich.