EPS-Grafiken

EPS-Grafikdateien sind das traditionelle Format, um Grafikdateien in LATEX einzufügen. Auf den Mailinglisten finden sich viele Fragen zu EPS-Grafiken, daher werden hier einige wichtige Aspekte dazu angesprochen und erläutert, wie das Einfügen von EPS-Grafiken in Kile funktioniert.

LATEX und EPS-Grafiken

Benutzen Sie LATEX um PS- oder PDF-Ausgaben zu erzeugen, haben Sie wahrscheinlich einige Probleme mit Grafiken. Sie müssen EPS-Grafiken (Encapsulated PostScript®) verwenden, aber keine JPEG- oder PNG-Dateien. Letztere können Sie mit Umwandlungsprogrammen wie convert aus dem Paket ImageMagickbearbeiten.

Die EPS-Dateien werden sowohl von LATEX als auch von der DVI-PS-Umwandlung benutzt.

  • LATEX sucht in der EPS-Datei nach den Begrenzungslinien des Bildes, um mit dieser Information den nötigen Platz für die Grafik bereitzustellen.

  • Das Umwandlungs-Programm DVI-PS liest die EPS-Dateien und fügt die Grafiken in die PS-Datei ein.

Dies hat einige Konsequenzen:

  • LATEX liest die EPS-Datei nicht ein, wenn die Parameter der Begrenzungslinien im Befehl zum Einfügen der Grafik angegeben wird.

  • LATEX kann nur Dateien im ASCII-Format lesen, daher wird die Information über die Begrenzungslinien aus komprimierten EPS-Dateien oder Dateien in anderen Formaten nicht erfasst.

  • Die EPS-Grafiken werden nicht in die DVI-Dateien eingebunden. Da die EPS-Dateien aber für die Umwandlung von DVI-Dateien in PS-Dateien benötigt werden, müssen sie immer zusammen mit den DVI-Dateien verschoben werden.

Nun starten Sie LATEX und ein DVI-PS-Umwandlungsprogramm wie dvips erzeugt Ihr PostScript®-Dokument. Möchten Sie ein PDF-Dokument als Ausgabedatei, benutzen Sie dvips mit der Option -Ppdf und starten dann ps2pdf. Für diese Lösung gibt es viele Informationen.

Verarbeitung von PostScript® in Kile

Kile hilft Ihnen, die Informationen über die Begrenzungslinien zu ermitteln. Wenn Sie das Paket ImageMagick installiert haben, kann Kile diese Information aus der EPS-Datei ermitteln und als Option einfügen. Dies erfolgt automatisch, wenn Sie die Grafikdatei auswählen. Diese Vorgehensweise hat zwei Vorteile:

  • Die Information ist bereits im Dialog eingelesen und muss nicht später von LATEX ermittelt werden.

  • Noch wichtiger ist es, dass die Breite und Höhe des Bildes berechnet werden kann, wenn die Auflösung bekannt ist. Diese Information wird oben im Dialog angezeigt und gibt Ihnen Hinweise bei der Skalierung von Grafiken.

  • Kile kann auch gepackte EPS-Dateien in den Archivformaten „zip“ und „gzip“ lesen. Diese gepackten Dateien sind erheblich kleiner als nicht komprimierte EPS-Dateien. Diese Funktion kann aber nur mit bestimmten Systemeinstellungen und einer Änderung Ihrer lokalen Grafikeinstellung benutzt werden. Dies wird im Abschnitt Bitmap-Grafik erläutert.

PostScript® und Bitmap-Grafiken

Wenn Ihr System die Option shell-escape unterstützt, können in Kile mit der richtigen Einstellung des TEX-Systems Bitmap-Grafiken einfach eingefügt werden. JPEG- oder PNG-Grafikdateien müssen nicht umgewandelt werden, dies erfolgt automatisch, wenn die DVI-Datei in das PS-Format umgewandelt wird.

LATEXbenötigt Informationen über die Datei-Erweiterungen. Das Paket graphicx sucht nach einer Datei graphics.cfg, die in Ihrem Pfad für LATEX-Dokumente enthalten sein muss. Suchen Sie nach Einträgen wie zum Beispiel:

\DeclareGraphicsRule{.pz}{eps}{.bb}{}%
   \DeclareGraphicsRule{.eps.Z}{eps}{.eps.bb}{}%
   \DeclareGraphicsRule{.ps.Z}{eps}{.ps.bb}{}%
   \DeclareGraphicsRule{.ps.gz}{eps}{.ps.bb}{}%
   \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{}%

und ersetzen Sie diese Zeilen durch:

\DeclareGraphicsRule{.pz}{eps}{.bb}{}%
   \DeclareGraphicsRule{.eps.Z}{eps}{.eps.bb}{}%
   \DeclareGraphicsRule{.ps.Z}{eps}{.ps.bb}{}%
   \DeclareGraphicsRule{.ps.gz}{eps}{.ps.bb}{}%
   % changed or new graphic rules
   \DeclareGraphicsRule{.eps.zip}{eps}{.eps.bb}{`unzip -p #1}%   zipped EPS
   \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1}%   gzipped EPS
   \DeclareGraphicsRule{.jpg}{eps}{}{`convert #1 eps:-}%         JPEG
   \DeclareGraphicsRule{.gif}{eps}{.bb}{`convert #1 eps:-}%      GIF
   \DeclareGraphicsRule{.png}{eps}{.bb}{`convert #1 eps:-}%      PNG
   \DeclareGraphicsRule{.tif}{eps}{.bb}{`convert #1 eps:-}%      TIFF
   \DeclareGraphicsRule{.pdf}{eps}{.bb}{`convert #1 eps:-}%      PDF-graphics

Sie finden diese Datei zum Beispiel in Debian-Systemen unter /etc/texmf/latex/graphics.cfg. Am besten kopieren Sie diese Datei in Ihren lokalen Tex-Pfad und ändern dann diese Datei. Lesen Sie im TEX-Handbuch Ihrer Distribution nach, wie Sie eine Liste der TEX-Ordner ermitteln können.

Mit dieser Einrichtungsdatei können Sie Bitmap-Grafiken und komprimierte EPS-Dateien im „zip“- oder „gzip“-Format in LATEX einfügen. Der Befehl für die Umwandlung wird mit dvips angegeben. Dabei werden keine zusätzlichen Dateien erzeugt. Das Ergebnis des Umwandlungsprozesses wird direkt in eine PS-Datei eingefügt. LATEX muss nur die Größe der Grafik kennen. Diese Information ist in den Begrenzungslinien enthalten, die von Kile aus gelesen wird.

Dieses Verfahren wird von einigen Leuten als unsicher eingeschätzt. Auf jeden Fall benötigen Sie die Information über die Begrenzungslinien nicht, Kile ermittelt diese Information aus allen Grafikformaten.

PDFLATEX und EPS-Grafiken

Wie bereits festgestellt, kann PDFLATEX keine EPS-Grafikdateien verarbeiten, dazu sind Umwandlungsprogramme wie epstopdf nötig. Fügen Sie dazu das Paket epstopdf nach dem Paket graphicx ein.

\usepackage[pdftex]{graphicx}
   \usepackage{epstopdf}

Nun können Sie bereits EPS-Grafikdateien einfügen, wenn Sie pdflatex mit der Option --shell-escape aufrufen, aber es ist mit weiteren Anpassungen des Grafiksystems sogar möglich, EPS-Dateien im „zip“- oder „gzip“-Format zu verarbeiten. Dazu muss noch einmal die Datei graphics.cfg angepasst werden. Suchen Sie dieses Mal nach:

% pdfTeX läuft im PDF-Modus
   \ExecuteOptions{pdftex}%

und fügen einige Zeilen hinzu:

% pdfTeX läuft im PDF-Modus
   \ExecuteOptions{pdftex}%
   \AtEndOfPackage{%
      \g@addto@macro\Gin@extensions{.eps.gz,.eps.zip}%
      \@namedef{Gin@rule@.eps.gz}#1{{pdf}{.pdf}{`gunzip -c #1 | epstopdf -f 
>\Gin@base.pdf}}%
      \@namedef{Gin@rule@.eps.zip}#1{{pdf}{.pdf}{`unzip -p #1 | epstopdf -f 
>\Gin@base.pdf}}%
   }%

Mit diesen Zeilen sollte PDFLATEX EPS-Dateien verarbeiten könne, dann gibt es wahrscheinlich keine weiteren Probleme mit Grafiken.