In einer Reihe von Artikeln in der If Fase werden nützliche Elemente von LaTeX vorgestellt, die erprobt sind und bei der Arbeit der Informatiklehrerin eingesetzt werden.
In den bisher vorgelegten zwanzig Teilen der Artikelserie – Ausgaben 0 … 19: rhinodidactics.de/Archiv – finden Sie Hinweise und Anmerkungen zu den Themen: Installation, grundlegende Arbeitsweisen, Quellen zu Dokumentationen, Arbeit mit KOMAscript, PSTricks, Erstellung von Arbeitsblättern, Struktogrammen, Automatengraphen, Elemente von UML, Barcodes, Formularerstellung, Zitieren, Abbildungen, ER Diagramme, Fragen der [Mikro-]Typografie und Setzen von Briefen. Mit der vorliegenden Ausgabe 20 wird die Erstellung von Graphiken mit Hilfe von LaTeX thematisiert.
Die Einbindung, Skalierung, Drehung von Grafiken, die in ein LaTeX-Dokument eingebaut werden sollen, wird in diesem Beitrag nicht thematisiert. Zu diesem Thema existieren einige gute Darstellungen, die sich mittels einer Recherche leicht finden lassen.
LaTeX enthielt bis vor einigen Jahren einzig mit der
picture
-Umgebung eine eingebaute, allerdings eher rudimentäre
Möglichkeit, um Vektorgraphiken zu erstellen. Frank Mittelbach und Michael
Goossens veröffentlichten im April 2004 (2. Auflage August 2004) den
LaTeX-Companion 2nd Edition [tlc2]. Auf Seite 638 wird
dort festgestellt: the pict2e package that was announced by Leslie
Lamport in 1994 in the second edition of the LaTeX book, but which was never
written. Die zugehörige Fußnote macht deutlich, dass dies geändert
wird: For the next LaTeX release a first implementation of the pict2e
package is being considered for inclusion in LaTeX. Die Umgebung
pict2e
ist inzwischen verfügbar und Bestandteil der
TeXlive-Distribution. Damit sind die Restriktionen, die mit der
picture
-Umgebung verbunden sind, überwunden. Für komplexe
Grafiken ist mit der picture
- und der
pict2e
-Umgebung allerdings ein hoher Aufwand zu treiben, da für
fast alle Objekte, seien es Linien, Vektoren, Viertelkreise oder
Bézier-Kurven, die explizite Angabe der Koordinaten erforderlich ist. Dies
ist sehr mühselig (und abschreckend). Daher wurde die Umgebung
epic
entwickelt, die es ermöglicht, nur die Endpunkte anzugeben.
Diese Vereinfachung erbte allerdings die Einschränkungen der
picture
-Umgebung. Die erweiterte Implementierung
eepic
umgeht diese Einschränkungen und führt eine Reihe neuer
elementarer Elemente ein.
Um die Leistungsfähigkeit zu zeigen, wird hier die Darstellung eines Baumdiagramms gezeigt (Quelle: www.ctan.org/tex-archive/info/examples/tlc2 10-1-25.ltx)
% \documentclass{article} \usepackage{epic,eepic,ecltree} \begin{document} \begin{bundle}{grandfather} \chunk{\begin{bundle}{uncle\strut} \chunk{cousin}\drawwith{\dottedline{3}} \end{bundle}} \chunk{\begin{bundle}{father\strut} \chunk[\footnotesize older]{% \begin{bundle}{brother} \chunk{nephew} \end{bundle}} \chunk{\begin{bundle}{\textbf{Me}\strut} \chunk{\begin{bundle}{son} \chunk{grandson} \end{bundle}} \chunk{daughter}\chunk{son}\chunk{son} \end{bundle}} \chunk[\footnotesize younger]{sister} \end{bundle}} \end{bundle} \end{document}
Darüber hinaus existieren weitere Pakete, die für klar abgegrenzte
Aufgaben geeignet sind und auf eepic
aufbauen. In [tlc2, Seite
612f] werden die Pakete curves
(10-1-24), ecltree
(10-1-25), bar
(10-1-26), hetarom
(10-1-27) jeweils
durch ein kurzes Beispiel illustriert. Der Quellcode für Beispiele liegt der
TeXlive-Distribution bei. In einer Standardinstallation finden Sie die
Beispiele unter /usr/share/doc/texlive-doc-en/english/tlc2/ Die hinter den
Paketnamen in Klammern angegebene Bezeichnung ist – ergänzt um .ltx
– der zugehörige Dateiname (mit dem Quellcode für die jeweilige Grafik)
im angegebenen Verzeichnis. Außerdem ist darauf hinzuweisen, dass die
Erweiterungspakete ggf. nachinstalliert werden müssen.
pspicture
TeX bietet die Möglichkeit, gekapselte Elemente nicht selbst zu berücksichtigen, sondern weiterzureichen. Auf dieser basieren alle Ansätze, die Postscript-Kommandos bis in die Postscript-Datei weitergeben, so dass der Postscript-Treiber sie auswertet. Da Postscript eine vollständige (kellerorientierte) Programmiersprache (auch für Grafiken) ist, können mit dieser Technik komplexe Grafiken im LaTeX-Quellcode beschrieben werden.
PSTricks
Der Ansatz, der mit pspicture
verfolgt wird, findet sich
ebenfalls in dem PSTricks-Paket, das seit geraumer Zeit die zentrale
Anlaufstelle für die Erstellung komplexer Darstellungen mit Hilfe von LaTeX
darstellt. Die vielen einzelnen Pakete, die PSTricks als Grundlage
voraussetzen, lassen kaum Wünsche offen. Zur Dokumentation wurde von Herbert
Voß ein hervorragendes deutsches Buch (vierte Auflage 2007) vorgelegt, das
mit vielen Beispielen den direkten Einstieg in die Erstellung
unterschiederlicher Grafiken schnell und erfolgreich vermittelt.
Donald Knuth, der Entwickler von TeX, hat mit MetaPost eine Beschreibungssprache für Grafiken entwickelt, die zu Unrecht ein Schattendasein führt. Dabei wurden inzwischen einige Pakete entwickelt, die – auf MetaPost aufbauend – die Erstellung komplexer Grafiken auf einfache Art ermöglichen. In unserer Serie haben wir in den Ausgaben 6, 7, und 11 (alle in 2006 veröffentlicht) einige Beispiele vorgestellt, die auf diesem Ansatz beruhen. rhinodidactics.de/Archiv/Archiv-2006.html
Im Zusammenhang mit dem LaTeX-Beamer-Paket hat Till Tantau eine
Möglichkeit entwickelt, um (zunächst) grafische Primitive direkt mit
pdflatex
für PDF-Dokumente verfügbar zu machen. Die Entwicklung
dieses Pakets erfolgt inzwischen unabhängig von dem Beamer-Paket und stellt
zunehmend durch viele Erweiterungen eine ernstzunehmende Konkurrenz für
PSTricks
dar. Vorteil der Implementierung: da inzwischen viele
Anwenderinnen von LaTeX nicht mehr mit der Aufrufkette: latex
,
dvips
, ps2pdf
, sondern direkt mit
pdflatex
arbeiten, ist die Erstellung von eingebetteten Grafiken
aus LaTeX-Quellcode gegenüber PSTricks
um Einiges einfacher. In
der Ausgabe 18 (Mai 2007) unserer Serie wurde die Benutzung dieses
Pakets ausführlich erläutert. rhinodidactics.de/Ausgaben/ausgabe-18.pdf Ein
Editor für TikZ (frontend von pgf) steht mit
www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language
ktikz
bereit.
Da mir häufig die Frage gestellt wird, ob es denn wirklich notwendig ist,
alle Graphiken im Quellcode zu schreiben, soll hier nicht verschwiegen
werden, dass ich für einige Anwendungsfälle – wenn es denn schnell
gehen muss – mit dia
www.gnome.org/projects/dia ein Werkzeug empfehle, das in der
Lage ist, die Vektorgraphiken in einen Teil der oben darstellten Formate zu
exportieren: pgf, PSTricks
, MetaPost
und nicht zu
vergessen dot
sowie xfig
. Das letzte angegebene
Format ist ein spezifisches Format für das graphische Werkzeug XFig, das
(zumindest von Einigen) sehr geschätzt wird. Nicht vergessen werden soll das
dot
-Format, das für die programmgesteuerte Generierung von
Graphiken (mit automatischem Layout) eine grosse Rolle spielt.