Aufpoliert

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 https://www.linux-community.de/28542
Teil 2 — Feinschliff mit PSTricks LU 06/2014 https://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.

Dies setzt allerdings voraus, dass Sie bestimmte Zeichen wie etwa & in der LaTeX-Notation \& schreiben. Damit das Encoding für Xelatex stimmt, enthält die Liste der Parameter zusätzlich die Angabe --encoding=utf8. Alle Parameter sowie weitere Hinweise zum Programm rufen Sie über dot2tex --help auf. Der folgende Befehl übersetzt das Beispiel aus Listing 1:

$ dot2tex -o bsp01.tex bsp01.d2t

Listing 1

digraph G {
  d2toptions="--prog=dot --figonly -f psn -t raw --encoding=utf8"
  DOT -> Organisationsdiagramme;
  DOT -> Pfeildiagramme;
  DOT -> MindMaps;
  DOT -> Netzpläne;
}

Das Ergebnis sehen Sie in Listing 2. Als Maßeinheit kommt hier bp zum Einsatz, der Postscript-Punkt. Dabei entspricht 1 Millimeter ungefähr 2,83 bp.

Listing 2

\begin{pspicture}[linewidth=1bp](0bp,0bp)(734bp,112bp)
  \pstVerb{2 setlinejoin}
  \rput(370bp,19bp){\rnode{Pfeildiagramme}{\psovalbox[]{Pfeildiagramme}}}
  \rput(133bp,19bp){\rnode{Organisationsdiagramme}{\psovalbox[]{Organisationsdiagramme}}}
  \rput(534bp,19bp){\rnode{MindMaps}{\psovalbox[]{MindMaps}}}
  \rput(452bp,93bp){\rnode{DOT}{\psovalbox[]{DOT}}}
  \rput(673bp,19bp){\rnode{Netzpläne}{\psovalbox[]{Netzpläne}}}
  \ncline[]{-}{DOT}{Pfeildiagramme}
  \ncline[]{-}{DOT}{Organisationsdiagramme}
  \ncline[]{-}{DOT}{Netzpläne}
  \ncline[]{-}{DOT}{MindMaps}
\end{pspicture}

Da es aufwendig ist, die LaTeX-Präambel für die einzelnen Grafiken immer wieder anzupassen, bietet sich ein anderer Weg an: Zum einen wäre es möglich, den Code für das Bild über die Anweisung \input{Datei} einzubinden. Zum anderen könnten Sie die ganze Datei mit einem Apache-Ant-Worker-Task [4] übersetzen (Listing 3). Hier können Sie beliebige Makros definieren, um diese in der Node-Beschriftung (“Label”) zu nutzen.

Das Build-Tool Apache Ant [5] dient in erster Linie dazu, Quellcode zu übersetzen, wenn sich dieser oder eine abhängige Quelle verändert hat. Durch die sehr einfache Erweiterbarkeit eignet sich das Programm aber auch sehr gut zum Erstellen von Dokumenten aus LaTeX-Quellen oder zum Konvertieren von Bildern.

Listing 3

<?xml version="1.0" encoding="UTF-8"?>
<project name="dot2tex" basedir="." default="dot2tex">
<!-- ant-worker-task einbinden -->
<property name="ant.worker" value="lib/ant-worker.jar" />
<taskdef resource="de/nm/ant/antlib.xml" classpath="${ant.worker}" />
<!-- alle d2t-Dateien umwandeln -->
<target name="dot2tex">
<ifnewer destdir="."
        destextname="pdf"
        srcdir="."
        srcextname="b[0-9]*.*\.d2t$"
        verboseheader="false">
<d2t2pdf>
<![CDATA[
\documentclass[12pt]{article}
\usepackage{libertineotf}
\usepackage{xcolor}
\usepackage{pst-all,pst-grad}
\usepackage[a0paper]{geometry}
\newpsstyle{umlLR}{arrowinset=0,arrowlength=1,arrowscale=3,ArrowFill=false,angleA=0,angleB=180,nodesepA=1pt,armA=1cm,armB=1cm}
\newpsstyle{umlBT}{arrowinset=0,arrowlength=1,arrowscale=3,ArrowFill=false,angleA=-90,angleB=90,nodesepA=1pt,armA=1cm,armB=1cm}
\pagestyle{empty}
\begin{document}%
]]>
</d2t2pdf>
<pdfcrop />
<removeother othernames="d2t,pdf" />
</ifnewer>
</target>
</project>

Das Build-Skript, eine XML-Datei, rufen Sie mit dem Kommandozeilenwerkzeug Ant auf. Geben Sie keinen Namen für das Skript an, dann sucht das Tool nach der Datei build.xml im aktuellen Verzeichnis. Im Beispiel startet es den Task dot2tex (Listing 3, Zeile 9). Damit Ant die Erweiterung findet, binden Sie die entsprechende Bibliothek ein (Zeile 5 und 6). Die Datei ant-worker.jar befindet sich dabei im Unterverzeichnis lib.

Das Kommando ifnewer sorgt dafür, dass das Skript die DOT-Dateien mit dem Suffix d2t nur dann übersetzt, wenn diese sich geändert haben. In diesem Fall arbeitet Ant die nachfolgenden Kommandos d2t2pdf (erstellt das PDF-Bild), pdfcrop (entfernt einen eventuell vorhandenen unnötigen weißen Rand im PDF) und removeother (löscht alle nicht mehr benötigten Dateien) ab.

In der D2T-Datei kommt der Parameter figonly zum Einsatz, die Präambel setzt das Skript (Zeile 17 bis 25). Hier ist als Font der Libertine-OTF-Font eingebunden, dazu einige PSTricks-Pakete und das Paket xcolor zum Einsatz von Farben [6]. Über die Papiergröße A0 stellen Sie sicher, dass die berechnete Grafik auf das Blatt passt. Später schneiden Sie einfach mit Pdfcrop den weißen Rand ab und erhalten ein PDF in der Größe, das der Grafik entspricht.

Um UML-Diagramme zu erzeugen, enthält die Präambel zusätzlich zwei Anweisungen newpsstyle. Die darauf folgenden Befehle sorgen dafür, dass standardmäßig keine Seitennummer erscheint. Anschließend beginnt der Hauptteil des Dokuments. Das zugehörige abschließende Element fügt d2t2pdf automatisch am Ende ein.

Am Schluss räumt das Worker-Skript noch auf: Mit removeother löscht es alle Dateien, die den Basisnamen der Grafikdatei tragen, aber nicht die Endung .d2t oder .pdf aufweisen (siehe Kasten “Temporäre Dateien löschen?”). Das so erzeugte PDF binden Sie über \includegraphics{Datei} in die Master-Datei ein.

Temporäre Dateien löschen?

Oft stellt sich die Frage, ob es sinnvoll ist, temporäre Dateien sofort wieder zu löschen. Das Argument dagegen lautet häufig, die Festplatten seien inzwischen so groß, dass der Platzbedarf nicht stört.

Beim Beispiel aus Listing 3 entstehen insgesamt sechs Dateien: das Original (.d2t), die LaTeX-Datei (.tex), die TeX-Datei mit der Präambel, die Log-Datei sowie ein File, in dem LaTeX Referenzen, Verzeichnisse oder Ähnliches speichert. Ging beim Erzeugen alles glatt, benötigen Sie nur noch die D2T- und PDF-Datei, alles andere ist überflüssig.

Haben Sie allerdings 1000 Eingabedateien, so entstehen auf diese Weise 6000 zusätzliche Dateien, wobei Sie nur 2000 benötigen. Dadurch erhöht sich der Aufwand für das Dateisystem beträchtlich. Verwendet dieses zusätzlich einen Write-Cache, so löscht das System die temporären Dateien meist wieder, bevor sie tatsächlich auf der Festplatte landen. Das verringert bei Dokumenten mit vielen Bildchen die Übersetzungszeit deutlich.

Attribute für PSN

Für die Ausgabe im Modus psn stehen zusätzliche Attribute [7] für Node und Edge bereit. Damit Sie besser verstehen, wie die Attribute wirken, zeigt Listing 4 die Ausgabe, die die Software in diesem Modus für den Node erzeugt.

Listing 4

\rput(Position){\rnode{Node-Name}{\psshape[Psshade-Optionen]{Label}}}

Bei Position trägt die Software die errechnete Position ein. Für den Node kommt der definierte Name zum Einsatz. Bei Psshade-Optionen landen die entsprechenden Werte des Attributes. Für das Label wandelt das Programm den Text um beziehungsweise übernimmt ihn im Modus raw unverändert.

Zusätzlich steht noch das Attribut psbox bereit, das dafür sorgt, dass der Text des Nodes im LaTeX-Element parbox landet. Zur Angabe der Breite und Höhe verwenden Sie die Parameter width und height des Nodes (jeweils in Zoll). Ohne psbox bestimmt PSTricks die Größe der Box selbst. Auch für die Verbindungen stehen zusätzliche Attribute bereit. Die Ausgabe zeigt dabei Listing 5.

Listing 5

\psedge[Psedge-Optionen]{Style}{Ausgangspunkt}{Endpunkt}

Der Aufbau gestaltet sich hier ähnlich wie beim Node. Zusätzlich definiert stylestr die Spitzen, zum Beispiel “->”. Ansonsten besteht die Möglichkeit, alle Optionen für Verbindungen und Beschriftungen zu verwenden, die PSTricks bereitstellt, darunter jeden selbst definierten Verbindungstyp (siehe Tabelle “Verbindungen” und Tabelle “Beschriftungen”).

Verbindungen

Parameter Erläuterung
ncline direkte Linie
ncarc gebogene Linie
ncdiag Verbindung aus drei Segmenten
ncdiagg Verbindung aus zwei Segmenten
ncbar wie ncdiag, aber mit festem 90-Grad-Winkel
ncangle wie ncdiag, Längen und Winkel berechnet die Software automatisch
ncangles wie ncangle, jedoch mit vier Segmenten
ncloop wie ncangle, jedoch mit fünf Segmenten
nccurve Bézierkurve
nccircle Kreisverbindung zum eigenen Knoten

Beschriftungen

Parameter Erläuterung
ncput auf der Linie (center)
naput über der Linie (above)
nbput unter der Linie (below)
* die Stern-Varianten arbeiten nicht transparent, überschreiben also die Linie
nrot Richtung (Standard: von links nach rechts respektive oben nach unten)

PSTricks

Der Modus psn setzt auf dem LaTeX-Paket pstricks auf. PSTricks nutzt die Möglichkeiten von PostScript zum Berechnen und zur Ausgabe der Grafiken. Der LaTeX-Compiler XeTeX bringt einen Postscript-Interpreter mit, sodass Sie PSTricks mit diesem direkt verwenden könnten.

Beherrscht der von Ihnen verwendete LaTeX-Compiler kein Postscript, wie etwa pdflatex oder lualatex, bietet das Gespann latex/dvips/ps2pdf einen Ausweg. Informationen [8] und Beispiele [9] zu PSTricks finden Sie online.

Das Beispiel in Abbildung 3 zeigt die Möglichkeiten von PSTricks, der entsprechende Code findet sich in Listing 6. Zeile 3 definiert die Zeichen- und Füllfarbe für Nodes. Für die Verbindungen (Zeile 4) kommen gerade Linien (ncline) zum Einsatz. Dabei gilt, dass diese 0,5 Punkt vom Anfangspunkt starten und 1 Punkt vom Endknotenpunkt enden. Dadurch berührt die Linie oder der Pfeil das eigentliche Node-Objekt nicht. Kommen ein doppelter Rahmen, ein Schatten oder Ähnliches hinzu, erhöhen Sie die Werte etwas, um den Abstand zu wahren.

Abbildung 3: Durch den Einsatz des LaTeX-Pakets PSTricks kommen Farbe, neue Formen und die Möglichkeit zu neuen Stilen beim Beschriften ins Spiel.

Abbildung 3: Durch den Einsatz des LaTeX-Pakets PSTricks kommen Farbe, neue Formen und die Möglichkeit zu neuen Stilen beim Beschriften ins Spiel.

Listing 6

digraph G {
  d2toptions="--prog=dot --figonly -s -f psn -t raw --encoding=utf8"
  node [shape=box,color=red,fillcolor=yellow,psshadeoption="fillstyle=solid"];
  edge [psedge=ncline, psedgeoption="nodesepA=-.5pt,nodesepB=1pt"];
  A [shape=circle];
  B [label="$\frac{4}{5x}$"];
  C [psshadeoption="fillstyle=gradient",psbox=true,width=.5, height=.2];
  C1 [shape=triangle,style=dotted]
  C2 [psshape=psdblframebox,psbox=true,width=.5, height=.5]
  C3 [psshape=psdiabox,style=dotted]
  C4 [psshape=psshadowbox,psbox=true,width=.5, height=.5]
  A -> B [color=green,label="label", pslabeloption="nrot=:U",headlabel="head", taillabel="tail"];
  A -> C [pslabel="naput", label="label", psarrow="->",pslabeloption="nrot=:U",psedgeoption="style=umlLR"];
  A -> D [color=red,pslabel="ncput*",pslabeloption="nrot=:U",headlabel="head", taillabel="tail"];
  C -> C1 [psedge=ncangles,psedgeoption="angleA=-90,angleB=90,armA=1cm"];
  C -> C2 [psedge=ncangles,psedgeoption="angleA=-90,angleB=90,armA=1cm"];
  C -> C3 [psedge=ncangles,psedgeoption="angleA=-90,angleB=90,armA=1cm"];
  C -> C4 [psedge=ncangles,psedgeoption="angleA=-90,angleB=90,armA=1cm"];
}

In Zeile 7 sehen Sie, wie Sie eine mathematische Formel einbauen. Dazu dient im Beispiel das LaTeX-Kommando frac (mathematische Kommandos müssen Sie in Dollarzeichen $ einfassen). Einen Farbverlauf legen Sie mit gradient wie in Zeile 8 fest. Beispiele für andere Formen sehen Sie in den Zeilen 9 bis 12. Wollen Sie eine gepunktete Linie zwischen den Objekten verwenden, so erzeugen Sie diese über style (Zeile 9). Zu den möglichen Werten für das Attribut gehören neben dotted auch bold oder dashed.

Beispiele für Beschriftungen finden Sie ab Zeile 14. Dabei kommen die Anweisungen naput und ncput* aus dem PSTricks-Paket zum Zug. Der Text erscheint neben respektive auf der Verbindung, wobei die Software bei Letzterer die Linie für den Text unterbricht. Für den Node C definiert der Stil umlLR die Pfeilspitze, die aus dem LaTeX-Vorspann stammt (siehe Listing 3). Diese Methode ermöglicht es, umfangreichere Definitionen zu verwenden, ohne diese in jede D2T-Datei zu schreiben. In der PSTricks-Dokumentation finden Sie hier viele weitere Möglichkeiten.

Zeile 17 sowie die darauf folgenden zeigen, wie Sie nur horizontale beziehungsweise vertikale Linien zum Verbinden verwenden. Dabei fängt die Linie beim Anfangsknoten unten (bei -90 Grad) an und endet beim Endknoten oben (bei +90 Grad). Ein Knick soll vom Anfangsknoten nach einem Zentimeter erfolgen. Mit armB definieren Sie dies für den Endknoten.

PSTricks stellt nicht nur die Standardobjekte, sondern auch beliebige selbst definierte Objekte bereit. Im Projektmanagement fällt mitunter die Aufgabe an, einen Netzplan zu erstellen. Auch diesen berechnen Sie bei Bedarf mit Dot2tex unter Einsatz selbst definierter Objekte (Abbildung 4). Dabei bietet es sich wieder an, das Objekt für den Netzplan in der LaTeX-Präambel zu definieren (Listing 7) und über die Zeile aus Listing 8 in die DOT-Datei einzubinden.

Abbildung 4: Berechnung eines Netzplans mittels Dot2tex.

Abbildung 4: Berechnung eines Netzplans mittels Dot2tex.

Listing 7

\newcommand*\nplan[9]{{%
  \psset{unit=1mm}
  \sffamily
  \begin{pspicture}(0,0)(50,30)%
    \psframe*[linecolor=lightgray](0,15)(10,25)%
    \rput[bl](1,15){\parbox[c][10mm]{8mm}{\centering #1}}% nr
    \rput[bl](11,15){\parbox[c][10mm]{36mm}{#2}}% bezeichnung
    \rput[bl](1,5){\parbox[c][10mm]{8mm}{\centering #3}}% dauer
    \rput[bl](11,5){\parbox[c][10mm]{18mm}{\centering #4}}% fp
    \rput[bl](31,5){\parbox[c][10mm]{18mm}{\centering #5}}% gp
    \rput[bl](1,25){\parbox[c][5mm]{10mm}{#6}}% faz
    \rput[br](49,25){\parbox[c][5mm]{10mm}{\raggedleft #7}}% fez
    \rput[bl](1,0){\parbox[c][5mm]{10mm}{#8}}% saz
    \rput[br](49,0){\parbox[c][5mm]{10mm}{\raggedleft #9}}% sez
    \psline{-}(0,15)(50,15)%
    \psline{-}(10,5)(10,25)%
    \psline{-}(30,5)(30,15)%
    \psframe(0,5)(50,25)%
  \end{pspicture}}%
}

Listing 8

A1 [label="\nplan{1}{Erdarbeiten}{1}{0}{0}{0}{1}{0}{1}"];

PDFs umwandeln

Standardmäßig gibt Xelatex ein PDF aus. Verwenden Sie jedoch ein Textverarbeitungsprogramm, das dieses Format nicht importiert, so wandeln Sie das PDF mit Convert aus dem ImageMagick-Fundus um. Als Zielformate bieten sich JPG oder PNG an.

Anstelle von Convert hilft das sehr einfache Skript aus Listing 9, das bei JPG-Dateien sogar eine bessere Qualität liefert. Zusätzlich entfernt es vorher mittels Pdfcrop den weißen Rand. Für PNGs verwenden Sie Listing 10. Unter Ubuntu installieren Sie die notwendigen Tools mit folgendem Kommando:

$ sudo apt-get install texlive-extra-utils poppler-utils netpbm

Listing 9

#!/bin/bash
if [ -z $1 ]; then
  echo "mypdf2jpg <file.pdf> [file.jpg]"
  exit 1
fi
if [ -z $2 ]; then
  name=${1%.pdf}.jpg
else
  name=$2
fi
pdfcrop --clip $1 tmp.pdf
if [ -f tmp.pdf ]; then
  mv -f tmp.pdf $1
fi
pdftoppm $1 | ppmtojpeg > $name

Listing 10

#!/bin/bash
if [ -z $1 ]; then
  echo "mypdf2png <file.pdf> [file.png]"
  exit 1
fi
if [ -z $2 ]; then
  name=${1%.pdf}.png
else
  name=$2
fi
pdfcrop --clip $1 tmp.pdf
if [ -f tmp.pdf ]; then
  mv -f tmp.pdf $1
fi
pdftoppm -cropbox -r 600 -png $1 > $name

Fazit

Dot2tex liefert in Kombination mit dem LaTeX-Paket PSTricks deutlich bessere Grafiken und stellt mehr Möglichkeiten bereit. Das zusätzliche Einarbeiten in LaTeX und vor allem die Kommandos von PSTricks zahlen sich durch deutlich ansprechendere Ergebnisse aus.

An dieser Stelle zeigt sich beeindruckend die Stärke freier Software: Wenn es der Zweck erfordert, kombinieren Sie einfach unterschiedliche Tools und erzielen auf diese Weise das bestmögliche Ergebnis. 

Der Autor

Michael Niedermair unterrichtet in München an der Städtischen Berufsschule für Informationstechnik und koordiniert dort den Fachbereich Programmierung und Anwendungsentwicklung. Er schreibt viel in LaTeX, vor allem Skripte für den Unterricht, wobei er Schaubilder mit Graphviz und Dot2tex berechnet.

Glossar

TikZ

Ein rekursives Akronym: “TikZ ist kein Zeichenprogramm”.

Infos

[1] Graphviz: http://graphviz.org

[2] Dot2tex: http://www.fauskes.net/code/dot2tex/

[3] PSTricks: http://tug.org/PSTricks/

[4] Ant-Worker-Task: http://sourceforge.net/projects/antworker/

[5] Apache Ant: https://ant.apache.org/

[6] LaTeX-Paket xcolor: Daniel Tibi, “Farbenfroh”, LU 01/2014, S. 82, https://www.linux-community.de/31562

[7] DOT-Attribute: http://www.graphviz.org/content/attrs

[8] PSTricks-Buch: http://www.dante.de/index/Literatur/PsTricks.html

[9] TeX Live: http://tug.org/texlive/

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2014 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben