If Fase Logo

mit Google im Archiv der If Fase

Ausgabe 4 vom 1. November 2005 (als PDF):

20. Oktober 2005 – Dr. Ludger Humbert

LaTeX – Teil 4: Darstellung von Automaten

In einer Reihe von Artikeln in der If Fase werden nützliche Elemente von LaTeX vorgestellt, die erprobt sind und bei der täglichen Arbeit der Informatiklehrerin eingesetzt werden.

In den bisher vorgelegten vier Teilen der Artikelserie – Ausgaben 0 … 3: rhinodidactics.de/Archiv – wurden Hinweise zur Installation, grundlegenden Arbeitsweisen, Quellen zu Dokumentationen, die Arbeit mit KOMAscript, Hinweise auf PSTricks und als stärker inhaltsbezogene Dimension die Erstellung von Arbeitsblättern und Struktogrammen thematisiert. In dieser Ausgabe beschäftigen wir uns mit der Erstellung von Automatengrafen.

Der grafischen Darstellung von Automaten kommt im Informatikunterricht eine sehr wichtige Rolle zu, da auf diese Weise ein »Spielfeld« dargestellt werden kann, das es ermöglicht, die Zustandsübergänge auf einer ikonischen Ebene zugänglich zu machen. Es wird hier nicht über äquivalente Darstellungsformen von Automaten diskutiert, die im Falle der Automatentafel in LaTeX mit Hilfe von Tabellen gesetzt werden können oder im Falle von kaskadierten Verzweigungsstrukturen, die sich mit dem Listings-Paket von Carsten Heinz gut umsetzen lassen.

Welche Ausgabe wird gewünscht?

Die zentrale Entscheidung, die zu treffen ist, wenn Automatengrafen erstellt werden, bezieht sich auf die Art der Produktion:
  1. Soll/muss mit pdflatex gearbeitet werden (ohne Tricks), so dass direkt aus dem LaTeX-Quellcode die Grafiken für das Dokument erstellt werden können?
    Dieses Vorgehen empfiehlt sich z.B. bei der Verwendung des Paketes latex-beamer, wenn der Graf schrittweise aufgebaut und erklärt werden soll.
  2. Sollen hingegen für statische Dokumente Automatengrafen erstellt werden, ist als primäres Zielformat einzig die Rahmenbedingung »Vektorgrafik« maßgeblich.
  3. Alternative/n

zu 1. Der direkte Weg zu »pdf«

führt über »pgf«, eine von Till Tantau (theoretischer Informatiker) entwickelte Schnittstelle, die er zur Erstellung seiner Präsentationen – er hat auch latex-beamer entwickelt – benutzt. Für das Paket latex-beamer ist die Version 3.06 aktuell: ftp://ftp.dante.de/tex-archive/macros/latex/contrib/beamer.zip , pgf 1.0 ftp://ftp.dante.de/tex-archive/graphics/pgf.zip kommt mit einer 247seitigen Anleitung für das Paket unter doc/pgf/en/pgfmanual.pdf . Auf S. 37 wird an einem Beispiel die Erstellung von Automaten beschrieben. Diese wird im Folgenden (leicht abgewandelt) dargestellt. Inzwischen wird auf der S. 130 die „Automata Drawing Library“ eingeführt. Diese wird hier nicht berücksichtigt, sollte aber beobachtet werden.

Automatengraf mit pgf

Automatengraf mit pgf

Der in der Abbildung dargestellte rudimentäre Automat wurde mit dem folgenden Quellcode produziert.

%
%

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

  \begin{scope}[shape=circle,minimum size=1cm,shape %
  
   action={draw,fill},fill=green]
    
    \node (q_A) at (0,0) {$q_{_A}$};
    
    \node (q_E) at (6,0) {$q_{_E}$};
    
    \node (q_1) at (2,0) {$q_{_1}$};
    
    \node (q_2) at (4,2) {$q_{_2}$};
    
  \end{scope}
   
  \draw (q_A) -- (q_1) -- (q_2) -| (q_E);
   
  \draw[->,shorten >=2pt] (q_A) .. controls +(75:1.4cm) %
  
  and +(105:1.4cm) .. node[above] {$x$} (q_A);
  
\end{tikzpicture}

\end{document}

Viele Elemente der Konstruktion sind (hoffentlich) selbsterklärend. Der Übergang qA auf qA erfordert eine besondere Konstruktion, nämlich die Angabe einer Bezierkurve. Diese besteht hier darin, den Weg zu explizieren, der über Kontrollpunkte spezifiziert wird. Hier wird mit Polarkoordinaten gearbeitet, die zwei Parameter haben: vor dem »:« steht der Winkel dahinter folgt die Länge des Vektors. Es kann auch mit kartesischen Koordinaten gearbeitet werden, die dann durch »,« getrennt werden. Die Verbindung der Punkte erfolgt durch eine Bezierkurve. Für weitere Details muss auf das Manual verwiesen werden.

zu 2. Spezialisierte LaTeX-Pakete

An anderer Stelle dieser Serie wurde bereits auf PSTricks hingewiesen. Als Ergänzung zu PSTricks wurde eine Sammlung von Macros mit der Bezeichnung Vaucanson-G entwickelt, die eine sehr komfortable Erstellung von Automaten ermöglicht:
www.liafa.jussieu.fr/~lombardy/Vaucanson-G

Zur Darstellung wird ein vollständiges, lauffähiges Beispiel angegeben:

%
%

\documentclass{article}

\usepackage{vaucanson-g}

\begin{document}

    \begin{VCPicture}{(0,-2)(6,2)}
    
        \State[p]{(0,0)}{A} \State[z_2]{(3,0)}{B}
         
        \Initial{A} \FinalState[r]{(6,0)}{C}
        
        \EdgeL{A}{B}{a} \ArcL{B}{C}{b} \ArcL{C}{B}{b}
        
        \LoopN{A}{a} \LoopS{C}{d}
        
    \end{VCPicture}
     
\end{document}

Automatengraf mit Vaucanson-G

Automatengraf mit Vaucanson-G

Durch die Spezialisierung auf Automaten ist es möglich, viele Details durch das Paket »erledigen« zu lassen. Dazu gibt es umfangreiche Konfigurationsmöglichkeiten, die für alle Automaten benutzt werden, aber auch überschrieben werden können. Das mitgelieferte Manual umfasst 30 Seiten und enthält eine vollständige Dokumentation aller veröffentlichen Möglichkeiten. So ist es z.B. möglich, Farben einzusetzen. Durch Einfügen der Zeile \input{VCPref-slides} nach usepackage werden die Standardeinstellungen für Präsentationen benutzt.

zu 3. Über „angenehme(?) Umwege“ zur Animation

Mit dem Werkzeug JasTeX werden interaktiv Automaten erstellt. www.lsv.ens-cachan.fr/~gastin/JasTeX/JasTeX.html Das Ergebnis kann anschließend mit dem LaTeX-Paket GasTeX www.lsv.ens-cachan.fr/~gastin/gastex/gastex.html
gesetzt werden. Es ist auch möglich, den LaTeX-Quellcode mit latex-beamer zu einer Animation zu vervollständigen.
Beispiel:
www.lsv.ens-cachan.fr/~gastin/gastex/ex-beamer-gastex.tex
www.lsv.ens-cachan.fr/~gastin/gastex/ex-beamer-gastex.pdf

Ein weiterer Zugang wird in den Beiträgen von Arne Hüls und Ralph Heinemann zu den besuchten und dokumentierten Praxisbericht von M. Hielscher kurz vorgestellt. Auch die dort präsentierte Variante erzeugt mittels LaTeX typografisch ausgezeichnete Ergebnisse.

Ausblick

Die hier vorgelegte Darstellung soll als Anregung dienen. Ich hoffe, dass es durch diese Hinweise möglich wird, eine jeweils angemessene Darstellung von Automatengrafen in typografisch ansprechender Form zu erstellen und nicht mit nichtskalierbaren Bildschirmfotos zu arbeiten oder gar Automaten mit Zeichenprogrammen »zu malen«.
Till Tantau beschreibt in seinem Manual (S. 38–44) die Erstellung von Grafiken. Er dokumentiert, wieviel Zeit für die Erstellung veranschlagt werden muss: Grob kann davon ausgegangen werden, dass genau soviel Zeit benötigt wird, wie der Text benötigt, der den gleichen Platz beansprucht.

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