If Fase Logo

mit Google im Archiv der If Fase

Ausgabe 20 vom 1. September 2007 (als PDF):

22. August 2007 – Dr. Ludger Humbert

LaTeX – Teil 20: Grafiken mit LaTeX erstellen

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.

Einbinden von Grafiken

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.

Zur Erstellung/Erzeugung von Grafiken

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.

Personenbaum

Quelle: [tlc2, S. 612 – 10-1-25] - Voraussetzungen: die Pakete epic, eepic und ecltree – ftp://dante.ctan.org/tex-archive/macros/latex/contrib/eclbip/ecltree.sty

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.

MetaPost

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

pgf

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.

Werkzeuge

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.

Die hier veröffentlichten Inhalte stellen keine Meinungsäußerungen der Studienseminare Hamm Arnsberg dar.
© Redaktion If Fase