====================================================================== Verwendung von psfrag mit pdflatex ====================================================================== English version: README psfrag ist ein LaTeX-Paket, das es erlaubt, in eingebundenen EPS-Grafiken Textelemente durch LaTeX-Text zu ersetzen. Dadurch kann man erreichen, dass die Beschriftung von Grafiken im Schrifttyp zum übrigen Text passt und vor allem auch mathematische Formeln sehr elegant in die Grafik einbringen. Bsp.: \psfrag{x}{$x$} \psfrag{y}{$y = x^2$} \includegraphics{diagramm} Benutzt man latex (nicht pdflatex) wird die Datei diagramm.eps eingebunden. Die Endung wird automatisch angefügt. Dabei wird jedes Vorkommen von "x" im Diagramm durch "x" im Mathe-Font ersetzt und jedes "y" durch die Formel "y = x^2". Teilstrings werden dabei übrigens nicht ersetzt, sondern nur komplette Strings. Da psfrag Postscript benutzt, um die Ersetzungen durchzuführen, funktioniert es prinzipiell nicht, psfrag mit pdflatex zu verwenden, das keinerlei Schnittstellen zu Postscript besitzt. Einen möglichen Ausweg, wie man das Problem umgehen kann, möchte ich hier darstellen: Die Idee ist, aus der EPS-Grafik eine neue EPS-Grafik zu erzeugen, in der die LaTeX-Ersetzungen bereits durchgeführt sind. Diese neue EPS-Grafik kann dann samt der Ersetzungen nach PDF konvertiert werden und in pdflatex eingebunden werden. Um das zu erreichen, muss pro Grafik ein neues LaTeX-Dokument für die psfrag-Ersetzung angelegt werden und diverse Konvertierungen durchgeführt werden. Um das zu vereinfachen, habe ich das fragmaster.pl Perlskript geschrieben. Das Skript benötigt neben perl, latex und dvips zur Konvertierung von EPS nach PDF das Programm epstopdf. Um das Skript zu verwenden legt man je Grafik zwei Dateien an: * _fm.eps: die EPS-Grafik selbst, * _fm: eine fragmaster-Steuerdatei. Daraus werden dann die Grafiken mit Ersetzung erzeugt: * .eps, * .pdf Die Steuerdatei ist eine LaTeX-Datei und kann so aussehen: % Ein normaler Kommentar. % % Ein spezieller Kommentar: % fmopt: width=6cm % % Ein anderer spezieller Kommentar: % head: % \usepackage{amsmath} % end head % psfrag-Befehle: \psfrag{x}{$x$} \psfrag{y}{$y = x^2$} Der spezielle Kommentar fmopt: wird so ausgewertet, dass das Nachfolgende als Option an \includegraphics weitergegeben wird. So kann z.B. durch width=6cm die Grafik an die Schriftgröße angepasst werden. Das spezielle Kommentarkonstrukt "head:"/"end head" führt dazu, dass die dazwischenliegenden Kommentarzeilen (ohne die voranstehenden Kommentarzeichen "%") in die Präambel der LaTeX-Hilfsdatei übernommen werden. fragmaster.pl durchsucht das aktuelle Verzeichnis nach Dateien, die in _fm enden und nach den entsprechenden _fm.eps-Dateien. Das Skript überprüft anhand des Dateidatums, ob die Grafiken mit Ersetzung neu erzeugt werden müssen und erstellt die entsprechenden Dateien automatisch (in etwa so wie "make" es tun würde). Im LaTeX-Dokument kann man diese Dateien dann mit \includegraphics{} ohne die Dateiendung einbinden. latex wählt die EPS-Datei, pdflatex wählt die PDF-Datei. ====================================================================== Beispiel ====================================================================== Die folgenden Beispieldateien sind beigefügt: * parabel_fm.gp Gnuplot-Datei um folgende EPS-Grafik zu erzeugen, * parabel_fm.eps Roh-EPS-Datei ohne psfrag-Ersetzungen, * parabel_fm fragmaster-Datei mit den psfrag-Befehlen, * parabel.eps die fertige EPS-Datei, * parabel.pdf die fertige PDF-Datei, * document.tex LaTeX-Beispiel, das die Grafik einbindet, * document.pdf Beispiel-PDF, * document.ps Beispiel-PS, * parabel_fm.pdf PDF-Version der Roh-EPS-Datei (nur für das Beispiel notwendig!). ====================================================================== Probleme und Lösungen ====================================================================== Wenn das EPS als Landscape-Grafik erzeugt wird, also im gv oben statt "Portrait" "Landscape" steht, und die Grafik im Dokument nachher um 90° Grad gedreht erscheint, dann liegt das wahrscheinlich daran, dass das Originalbild breiter ist als hoch. Manche (neuere) Versionen von dvips schließen dann "clever" darauf, dass das Landscape sei, wobei das Format natürlich nichts über die Ausrichtung des Inhalts sagt... Jedenfalls kann man das dvips abgewöhnen, indem man folgende Zeile in /usr/share/texmf/dvips/config/config.pdf einträgt: @ custom 0pt 0pt Wen's genauer interessiert, dem seien die Quellen von dvipsk ans Herz gelegt... Viel Spaß mit dem Skript! Tilman ===== Bemerkung: Bitte lesen auch English README für aktualisiertes info. -- Agustin Martin. ===== ====================================================================== Links zu anderen Lösungen ====================================================================== * Pdfrack * unpsfrag Letzte Änderung: Do 19. Mär 20:57:37 CET 2009