Beruflich Dokumente
Kultur Dokumente
Mathematische Ideen möchten visualisiert werden. Ob- ist kein Zeichenprogramm“ (wohl das erste rekursive ty-
wohl sich alle Mathematik-Sachverhalte rein durch Texte pografische deutsche Akronym der Informatikgeschich-
und Symbolfolgen beschreiben lassen, veranschaulichen te). Der Name soll Autoren warnen, dass sie keinen gra-
wir sie am liebsten mittels Zeichnungen von Relationen, fischen Editor erwarten dürfen, sondern vielmehr eine
Funktionen, Graphen, Mengen oder Räumen. Eine Mög- Sammlung von TEX-Befehlen mit allen Vor- und Nachtei-
lichkeit, Visualisierungen von mathematischen Ideen spe- len, die ein solcher Ansatz mit sich bringt.
ziell im Kontext des TEX-Satzprogrammes zu erstellen,
stellt die Grafikbeschreibungssprache TikZ dar. Anhand Ursprünglicher Anlass für die Entwicklung von TikZ war,
eines einfachen Beispiels – ein Graph, dessen Knoten im dass ich für meine Promotionsschrift Zeichnungen di-
Kreis angeordnet werden sollen – werden im Artikel drei rekt in TEX erstellen wollte. Alle damals verfügbaren
unterschiedliche Arten vorgestellt, diesen mit TikZ zu Pakete hatten Nachteile: Metafont und PSTRICKS kamen
zeichnen: Die direkte Nutzung von Pfaden, was die in der mit dem PDF-Format nicht zurecht, die Qualität der von
TikZ-Historie älteste Möglichkeit darstellt; die Nutzung LATEXs Picture-Umgebung erzeugten Zeichnungen genüg-
spezieller Befehle zum Zeichnen von Knoten und Kanten, te mir nicht, Pakete wie XYPIC nutzten eine kryptische
eine neuere und komfortablere Art der Beschreibung; Syntax und waren weitgehend undokumentiert. So ent-
und schließlich die Nutzung spezieller Graphzeichnen- stand eine erste noch sehr einfache Version von TikZ,
Algorithmen, der jüngsten Erweiterung von TikZ. die aber bereits Zeichnungen sowohl im PDF- wie auch
PostScript-Format erstellen konnte, die qualitativ hoch-
wertige Zeichnungen erzeugte und die auch eine Doku-
mentation besaß. Über zehn Jahre später ist die Doku-
1 Einleitung
mentation auf weit über 1000 Seiten angewachsen und
mit TikZ lassen sich nun viele Standardprobleme bei der
David Hilbert hat mit seinem berühmten Ausspruch, es Visualisierung von Mathematik auf elegante Art lösen.
müsse egal sein, ob man von „Punkten“, „Geraden“ und
„Ebenen“ spreche oder von „Tischen“, „Stühlen“ und
„Bierseideln“, die Anschaulichkeit aus dem Kern der Ma-
x1
thematik verbannt: Mathematik-Studenten lernen heu-
te früh, dass sich die gesamte Mathematik auf logische
xn x2
Kalküle und die Axiome der Mengenlehre zurückführen
lässt, dass jeder mathematische Satz letztendlich nur ei-
ne formell ableitbare Symbolfolge darstellt. Betritt man
aber hundert Jahre nach Hilberts Diktum das Büro einer xn−1 ...
Mathematikerin, eines Theoretischen Informatikers oder
einer Theoretischen Physikerin, so sind die Tafeln dort Abbildung 1. Die mit TikZ zu erstellende Beispielzeichnung
voll mit Skizzen, komplexen Diagrammen und Zeichnun-
gen von Graphen. Formell mag die Mathematik auf rei-
ne Symbolmanipulation zurückführbar sein – wenn Men- Dieselbe Zeichnung kann in TikZ oft auf viele verschie-
schen über mathematische Sachverhalte sprechen und dene Arten erzeugt werden. Im Folgenden sollen gleich
schreiben, nutzen sie vielfältige Arten der Visualisierung, drei Wege gezeigt werden, wie der in Abbildung 1 ge-
um ihre Ideen anderen verständlich zu machen. zeigte Graph in TikZ beschrieben werden kann. Als ers-
tes werden wir den Graphen direkt mittels Pfaden zeich-
Mathematische Texte werden heute fast ausschließlich mit nen, was zugleich die Methode der Wahl in der allerers-
Donald Knuths Programm TEX verfasst, da es eine uner- ten Version von TikZ war. Komfortabler ist dann schon
reichte typografische Qualität bietet und gleichzeitig ge- die Nutzung von „Knoten“ und „Kanten“ zur Beschrei-
übten Autoren eine unerreicht hohe Arbeitsgeschwindig- bung des Graphen – die Namen kommen nicht von un-
keit erlaubt. Die Visualisierung von mathematischen Ideen gefähr –, was bisher die beste Art war, eine Zeichnung
hingegen ist in TEX nicht direkt vorgesehen; Knuth hat wie die in Abbildung 1 zu beschreiben. Zum Schluss darf
aber einen allgemeinen Mechanismus in sein Programm dann die seit Anfang 2014 verfügbare Version von TikZ
eingebaut, mit dem sich diese Fähigkeit mit einigem Auf- ihre Fertigkeiten demonstrieren: Durch die Nutzung ei-
wand prinzipiell nachrüsten lässt. Ein freies Paket, das den ner neuen Graphsyntax und Algorithmen zum automa-
Aufwand nicht gescheut hat, ist das TikZ-Paket, um das tischen Zeichnen von Graphen lässt sich der Graph auf
es in diesem Artikel gehen soll. „TikZ“ steht für „TikZ sehr kompakte Art beschreiben.
Wir können nun TikZ bitten, für einen Graphen (oder Sie stellt den \graph-Befehl zur Verfügung. Er nimmt
auch nur für einen Teil) die Knotenpositionen selbst zu als Parameter eine Beschreibung eines Graphen in ei-
berechnen. Dazu übergeben wir dem Bild eine geeigne- ner Variante der DOT-Notation und erzeugt daraus ganz
te Option, in unserem Fall mit dem leicht wunderlichen normale nodes und edges. Die Beschreibung des Gra-
Namen simple necklace layout. Er deutet an, dass (a) phen besteht aus Folgen von Knoten, deren Beschrif-
die Knoten wie auf einer Kette im Kreis angeordnet wer- tungen einfach direkt angegeben werden, getrennt durch
den sollen und (b) eine simple Variante der hierfür mög- spezielle Kantensymbole wie -> oder -- oder auch <-.
lichen Algorithmen genutzt werden soll. Ansonsten kann Kommt eine Beschriftung mehrfach vor, so wird ange-
die Beschreibung des Graphen gleich bleiben, einzig die nommen, dass es sich um denselben Knoten handelt, wo-
Koordinatenangaben für die Knoten entfernen wir: durch sich leicht Pfade durch den Graphen spezifizieren
\begin{tikzpicture}[simple necklace layout] lassen. Schließlich lassen sich noch Knotennamen in dop-
\node [circle, draw] (A) {$x_1$}; pelte Anführungszeichen einschließen, wenn sie Symbole
\node [circle, draw] (B) {$x_2$}; enthalten, die in TEX eine besondere Bedeutung haben.
\node [circle] (C) {$\dots$};
\node [circle, draw] (D) {$x_{n-1}$}; Unser Beispielgraph lässt sich nach diesen Vorbemerkun-
\node [circle, draw] (E) {$x_n$};
gen sehr kompakt darstellen:
\draw (A) edge[bend right=17, ->] (B);
\draw (B) edge[bend right=17, ->] (C);
\graph { "$x_1$" -> "$x_2$" -> "$\dots$" ->
\draw (C) edge[bend right=17, ->] (D);
"$x_{n-1}$" -> "$x_n$" -> "$x_1$" };
\draw (D) edge[bend right=17, ->] (E);
\draw (E) edge[bend right=17, ->] (A);
\end{tikzpicture} Diese knappe Beschreibung können wir elegant in eine
Kurzvariante der {tikzpicture}-Umgebung einbauen:
Dem \tikz-Befehl darf ein einzelner Grafikbefehl folgen,
x1 für den dann ein eigenes Bild erstellt wird. Aus
x2 xn \tikz [simple necklace layout]
\graph { "$x_1$" -> "$x_2$" -> "$\dots$" ->
... xn−1
"$x_{n-1}$" -> "$x_n$" -> "$x_1$" };