EPS, LaTeX und PSfrag

Wer längere Texte wie z.B. Diplomarbeiten mit LaTeX schreibt, möchte auch hochwertige Abbildungen in das Dokument einfügen. Mit dem „normalen“ latex müssen die Grafiken dazu im EPS-Format vorliegen. Mit pdflatex dagegen werden Rastergrafikformate wie JPEG oder PNG benötigt. Hier ist es nicht (direkt) möglich EPS-Dateien einzubinden.
Dieser Artikel beschäftigt sich mit der ersten Methode, der Einbindung von EPS-Grafiken mit Hilfe von „latex“, denn diese Vorgehensweise hat einen Vorteil. Es ist möglich die Beschriftungen der Grafiken in der jeweiligen LaTeX-Schriftart darstellen zu können und dabei auch den Mathematik-Modus von LaTeX zu nutzen. So kann das Schriftbild innerhalb des Dokuments vereinheitlicht sowie Formeln und Formelzeichen LaTeX-typisch sehr hochwertig dargestellt werden.

Voraussetzungen

Die Ersetzung der Schriftart wird von  LaTeX-Paket PSfrag vorgenommen. Wenn es noch nicht in der verwendeten TeX-Distribution enthalten ist, muss es zunächst installiert werden. Ebenfalls benötigt wird das Paket graphic oder graphix.

Hier ein Minimalbeispiel für die Verwendung von PSfrag:

\begin{figure}
%Text omega_f durch entsprechendes Symbol ersetzen
\psfrag{omega_f}{$\omega _f$}
\includegraphics{grafik}

Leider funktioniert das nicht mit jeder beliebigen EPS-Datei. Der zu ersetzende Text muss im Klartext in der Datei stehen. Das kann man überprüfen, indem man die EPS-Datei in einem Texteditor öffnet und nach der zu ersetzenden Zeichenfolge sucht.

Warum sind nicht alle EPS-Grafiken kompatibel?

Wenn der Text im Klartext angegeben wird, ist auch die Schriftart, in der der Text dargestellt werden soll, im EPS angegeben. Wenn nun die Grafik auf einem System geöffnet wird, das nicht über diese Schriftart verfügt, wird eine andere Schrift zur Anzeige verwendet. Das Ergebnis sieht dann u.U. deutlich anders aus. Diese Art von EPS-Dateien ist also nicht portabel. Wird die Schrift dagegen in einen Pfad umgewandelt und als Vektorgrafik in die EPS-Datei eingebettet, muss die Schriftart auf dem System nicht vorhanden sein; das Ergebnis sieht immer gleich aus. Diese Lösung ist also portabel, aber leider nicht kompatibel mit PSfrag. Welche Methode der Entwickler der verwendeten Software implementiert hat, lässt sich meist nur durch eigene Experimente herausfinden.

Übersicht über den EPS-Export verschiedener Programme

DIA

Kompatibler Export möglich. Zur Konvertierung von DIA nach EPS auf der Konsole:

dia -e out.eps -t eps-builtin in.dia

MATLAB

Der eingebaut EPS-Export ist inkompatibel. Mit LaPrint kann aber eine kompatible EPS-Datei zusammen mit einer TeX-Datei, die die benötigten PSfrag-Ersetzungen bereits enthält, erzeugt werden.

Maple

Maple enthält zwei verschiedene EPS-Exporter. Der ältere der beiden exportiert kompatibel. In Versionen vor Maple 11 wurde der ältere Exporter verwendet, wenn man die Grafik nicht über das GUI exportiert, sondern über plotsetup direkt in eine Datei geschrieben hat. Hier ein entsprechendes Beispiel:

plotsetup(ps, plotoutput = `fig1.eps`, plotoptions=`portrait,noborder,height=5in,width=5in`);
plot(sin(x),x=0..2*Pi,labels=[x,y]);

In neueren Versionen kann der ältere Exporter nur noch aus dem Classic- oder CLI-Modus aufgerufen werden. Um direkt aus dem normalen Worksheetmode kompatible EPS-Dateien zu erzeugen, kann dieses Skript verwendet werden.

OpenOffice/LibreOffice Draw

Standardmäßig ist der EPS-Export inkompatibel. Durch das Einfügen von

<item oor:path="/org.openoffice.Office.Common/Filter/Graphic/Export/EPS"><prop oor:name="TextMode" oor:op="fuse"><value>2</value></prop></item>

in die Datei registrymodifications.xcu (Windows: %APPDATA%\OpenOffice.org\3\user\registrymodifications.xcu, Linux: /.libreoffice/3/user/registrymodifications.xcu) kann der Export kompatibel gemacht werden.

Quelle

EAGLE

Mit dem ULP eagle2ps_v2.1 lässt sich ein kompatible Postscript-Datei
erzeugen, die mit ps2eps in ein EPS umgewandelt werden kann. Die Version von der CadSoft-Homepage exportiert die Texte an den Pins als Pfade, nicht als Text. Das ist in dieser modifizierten Version behoben:

ULP eagle2ps mit Fix für Pintexte

Version:2.1
Größe:8.1 KiB
Datum:18. April 2013

Der EPS-Export des CAM-Prozessors sowie die ULPs eps_export_411.ulp, epscdraw_411.ulp, epscdraw.ulp, epsdraw.ulp sind inkompatibel.

UPDATE 07.06.2012

EAGLE hinzugefügt, kompatiblen Export für Maple und OpenOffice/LibreOffice hinzufügt

UPDATE 24.02.2013

Link zu PSFrag aktualisiert

2 Gedanken zu „EPS, LaTeX und PSfrag

  1. Der Workaround, der bei Maple, aber auch bei allen anderen funktioniert ist relativ einfach:
    Man bindet die Bilder mit „overpic“ anstatt mit \includegraphics
    und kann dann mit \put angeben, wo genau der LaTeX Text stehen soll.

    Also einfach alle sonstigen Beschriftungen in der *.eps Datei weg lassen dann in LaTeX alles neu setzen.

    Kleines Beispiel dazu:

    \usepackage[percent]{overpic}

    \begin{overpic}[width=10cm,grid,tics=10]{Bild}
    %Grid macht es einfacher seinen text wie gewünscht zu plazieren.
    \put(20,30){Test Test}
    \end{overpic}

    MfG
    Floo0

    P.S.:
    Siehe dazu auch http://ftp.univie.ac.at/packages/tex/info/l2picfaq/german/l2picfaq.pdf
    3.7.5.

  2. Diesen Workaround habe ich auch schon verwendet. Dort muss man die Beschriftung selbst positionieren, mit psfrag ist sie automatisch an der richtigen Stelle. Feintuning ist aber auch mit psfrag nötig.

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.