programme:xfig

XFig

Allgemeines

Das Grafikprogramm xfig bietet neben der beschriebenen Textersetzung (Text in Grafiken ersetzen) eine weitere, sehr bequeme Möglichkeit zum Erstellen von LaTeX-Text in Grafiken. Der Text wird dabei beim Erstellen der Grafik direkt in LaTeX-Schreibweise eingegeben. Also zum Beispiel bei mathematischem Text mit den umgebenden Dollarsymbolen $ … $. Diese Vorgehensweise erlaubt es, eine Grafik in mehreren Dokumenten zu verwenden, ohne daß der zu ersetzende Text in jedem Dokument separat angegeben werden muß.

Mit der Exportoption „Combined PS/LaTeX“ von xfig lassen sich aus einer Grafik zwei Dateien erzeugen, zum einen eine TEX-Datei, welche den LaTeX-Text enthält, und zum anderen eine EPS-Datei mit den graphischen Elementen. In der TEX-Datei wird automatisch ein \includegraphics für die EPS-Datei eingefügt. Somit genügt es, im Dokument mit \input die TEX-Datei einzubinden.

Voreinstellungen für xfig

xfig bietet die Möglichkeit, nur Teile des Textes in die TEX-Datei zu exportieren, und den restlichen Text als Grafik in den EPS-Teil zu geben. Die Auswahl des Textes, welcher in die TEX-Datei geschrieben werden soll, erfolgt über die Eigenschaften der Textobjekte. Da es aber sinnvoll ist, den gesamten Text in die TEX-Datei zu exportiern, sollte man das gleich als Voreinstellung festlegen. Dies geschieht mit folgenden Kommandozeilenoptionen:

  • „-specialtext“ Sonderzeichen wie „/“ nicht gesondert behandeln
  • „-latexfonts“ LaTeX-Schriftarten verwenden
  • „-startlatexFont default“ Standardmäßig die default-Schrift verwenden

Weiters empfiehlt sich folgende Angabe:

  • „-metric“ Auf metrisches System umschalten

Grafik Exportieren und Einbinden

Aus einer mit diesen Einstellungen erzeugten Grafik (xfig.fig) können nun über den Menüpunkt „File > Export…“ die beiden Dateien erzeugt werden. Dazu muß lediglich „Combined PS/LaTeX (both parts)“ als Sprache (Language) ausgewählt werden. Die dabei erstellten Dateien sind xfig.pstex_t für den TEX-Teil und xfig.pstex für den EPS-Teil.

Das folgende Fragment eines LaTeX-Dokuments zeigt die Verwendung der exportierten Grafik. Der wesentliche Unterschied zu EPS-Grafiken besteht darin, daß anstelle von \includegraphics der Befehl \input verwendet wird, und daß die Endung der TEX-Datei (pstex_t) mit angegeben werden muß.

\documentclass{article}
\usepackage{graphicx,color}
 
\begin{document}
  \input{xfig.pstex_t}
\end{document}

Mit „latex“ und „dvips“ kann anschließend eine Postscript-Datei erstellt werden (xfig.ps).

xfig und PDF

Ein weiterer Vorteil dieser Methode gegenüber dem psfrag-Paket ist der, daß PDFs mit „pdflatex“ direkt aus LaTeX-Dokumenten erstellt werden können. xfig bietet ab Version 3.2 patchlevel 4 auch den Export von „Combined PDF/LaTeX (both parts)“ an. Genau so wie beim Postscript-Export werden zwei Dateien erstellt, eine TEX-Datei mit dem Text (xfig.pdftex_t) und eine PDF-Datei mit der Grafik (xfig.pdftex). Das einfügen der Grafik in ein Dokument erfolgt gleich wie beim Erstellen einer Postscript-Datei. Allerdings erkennt LaTeX das Format einer pdftex-Datei nicht von selbst, daher ist es notwendig, dies separat zu definieren mit einer „DeclareGraphicsRule“-Anweisung.

\documentclass{article}
\usepackage{graphicx,color}
\DeclareGraphicsRule{.pdf}{pdf}{.pdf}{}
 
\begin{document}
  \input{xfig.pdf_t}
\end{document}

Mit „pdflatex“ kann anschließend eine PDF-Datei erstellt werden (xfig.pdf).

(Hinweis zum PDF-Export gibt es in den FAQ)

Postscript und PDF

In manchen Fällen ist es wünschenswert, aus einem Dokument Postscript und PDF zu erstellen. Das würde bedeuten, daß zwei verschiedene Versionen des Dokumentes notwendig sind. Um dies zu umgehen, führen wir einen neuen Befehl ein, der abhängig vom Ausgabeformat entweder die PS- oder die PDF-Version der Grafik lädt:

\documentclass{article}
\usepackage{graphicx,color}
 
\ifnum\pdfoutput=0
 \newcommand{\inputfig}[1]{\input{#1.pstex_t}}
\else
 \newcommand{\inputfig}[1]{\input{#1.pdf_t}}
\fi
 
\begin{document}
  \inputfig{xfig}
\end{document}
programme/xfig.txt · Zuletzt geändert: 14.09.2010 16:45 von Thomas Quaritsch