Aus LinuxUser 06/2014

Aufpoliert

© Miqueias, sxc.hu

Graphviz-Bilder mit LaTeX und PSTricks aufbereiten

Das Programm Graphviz hilft beim Erstellen von Grafiken. Den letzten Schliff verleihen Sie den Ergebnissen aber am besten mittels LaTeX.

Serie: Graphviz

Teil 1 – Graphen flexibel berechnen LU 01/2014 http://www.linux-community.de/28542
Teil 2 — Feinschliff mit PSTricks LU 06/2014 http://www.linux-community.de/28543

Das Programm Graphviz [1] erweist sich als nützlicher Helfer beim Erstellen gerichteter und ungerichteter Graphen. Allerdings erweist sich das Tool bei der Ausgabe zuweilen als etwas eingeschränkt: So erlaubt es beispielsweise nicht, nur vertikale und horizontale Linien als Verbinder zwischen den Knoten zu verwenden oder mathematische Formeln in den Text der Beschriftungen einzufügen, so wie es in LaTeX üblich ist.

Abhilfe schafft hier das in Python programmierte Werkzeug Dot2tex [2]. Es verwendet als Eingabedatei das DOT-Format, ruft den entsprechenden Graphviz-Renderer auf, und erzeugt je nach Parameter verschiedene LaTeX-Dateien. Auf Wunsch ruft es anschließend noch LaTeX auf.

Das Tool kennt mehrere Möglichkeiten der Ausgabe (siehe Tabelle „Varianten“). Welche Sie verwenden, hängt jeweils davon ab, welchen LaTeX-Compiler (latex, pdflatex, xelatex oder lualatex) Sie verwenden und welches Ausgabeformat – im Wesentlichen Postscript oder PDF – Sie wünschen.

Varianten

Parameter Erläuterung
pst Erzeugt Befehle für PSTricks
psn Erzeugt Befehle für PSTricks (mit Nodes)
pgf Erzeugt PGF-Befehle
tikz Erzeugt TIKZ-Befehle

Das Portable Graphics Format (.pgf) und das TikZ-Format (.tikz) dienen zum Erstellen von Vektorgrafiken und erlauben es, direkt Postscript- oder PDF-Dateien zu erzeugen. Mit pst erhalten Sie die für dieses Tool üblichen Befehle. Das Aussehen kommt der einer normalen DOT-Ausgabe sehr nahe. Als Ausgabe kommt dabei Postscript heraus, das Sie aber sehr leicht in PDF umwandeln.

Mit dem Parameter psn aktivieren Sie den Node-Mechanismus von PSTricks [3], der es Ihnen unter anderem ermöglicht, festzulegen, an welcher Stelle die Verbindung das Objekt berührt und wie die Linien verlaufen sollen.

In der Praxis orientiert sich der Einsatz der Parameter an den Anforderungen, optisch fällt das Ergebnis sehr unterschiedlich aus. Abbildung 1 zeigt dies anhand eines Beispiels. Dot2tex bietet die Möglichkeit, ein komplettes LaTeX-Dokument oder nur den Code für die Grafik zu erzeugen. Dabei verarbeitet es die Dot-Datei und ruft den entsprechenden Graphviz-Renderer auf (Abbildung 2).

Abbildung 1: Das Ergebnis der verschiedenen Parameter weicht in Bezug auf die Optik deutlich ab.
Abbildung 1: Das Ergebnis der verschiedenen Parameter weicht in Bezug auf die Optik deutlich ab.
Abbildung 2: Dot2tex bedient sich in einem Zwischenschritt des entsprechenden Renderers von Graphviz.
Abbildung 2: Dot2tex bedient sich in einem Zwischenschritt des entsprechenden Renderers von Graphviz.

Als Format für die Ausgabe nutzt Dot2tex XDOT, das die DOT-Befehle mit entsprechenden Koordinaten und weiteren Angaben enthält. Dieses liest die Software erneut ein und wandelt es je nach Parameter in entsprechende LaTeX-Befehle um. Anschließend rufen Sie von Hand die gewünschte LaTeX-Engine auf.

TIPP

Verwenden Sie als LaTeX-Engine xelatex, haben Sie auf diese Weise die Möglichkeit, OpenType-Fonts zu verwenden. Auch Dateien mit der Zeichenkodierung UTF-8 bereiten keine Probleme.

Installation

In den Repositories der meisten Distributionen findet sich nicht nur Graphviz, sondern auch Dot2tex. Unter Ubuntu reicht der folgende Befehl, um die Software zu installieren:

$ sudo apt-get install graphviz dot2tex

Da es sich bei Dot2tex um ein Python-Programm handelt, zieht der Paketmanager über die Abhängigkeiten die entsprechenden Pakete nach, falls sie noch nicht installiert sein sollten.

Bei der LaTeX-Installation kommt es öfter vor, dass das Paket der Distribution nicht die aktuellste Version enthält. Hier ist es sinnvoll, die TeX-Live-Installation zu verwenden: Die hat die alten LaTeX-Pakete in vielen Distributionen ohnehin schon abgelöst.

So geht’s

Dot2tex erweitert die DOT-Befehle etwas. Die Variable d2toptions erlaubt, den Renderer (--prog) sowie weitere Parameter direkt in der DOT-Datei festzulegen. Das folgende Beispiel zeigt den Einsatz auf:

d2toptins="--prog=dot --figonly -f psn -t raw --encoding=utf8"

Der Parameter --figonly sorgt dafür, dass das Programm nur Befehle für die eigentliche Grafik erzeugt, die LaTeX-Präambel entfällt. Auf diese Weise verwenden Sie gegebenenfalls eigene Definitionen, etwa für die Schriften. Mit -f psn legen Sie den Modus für die Ausgabe fest.

Mit dem Parameter raw sorgen Sie dafür, dass beim Erzeugen der LaTeX-Datei keine Makros für Sonderzeichen zum Einsatz kommen. Das wiederum ermöglicht es, beliebige LaTeX-Befehle im Label zu verwenden.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 06/2014 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: