
\begin{ger}
\section*{Einleitung}

In diesem Handbuch wird die Benutzung des \Renew~Plugins \emph{FA} beschrieben.
Das Plugin erm\"oglicht das Zeichnen endlicher Automaten.
Es werden die Schritte zur Aktivierung des Plugins und seine Handhabung bzgl. des Zeichnens beschrieben.
Die Durchf\"uhrung einer Simulation endlicher Automaten wird hier nicht beschrieben.
Da das Begleiter-Plugin \emph{FA Formalism} die Simulation realisiert, wird dort eine Anleitung f\"ur die Simulation gegeben.
\end{ger}

\begin{eng}
\section*{Introduction}

On the following pages, you will learn about the usage of \Renew s~plugin \emph{FA}.
The plugin allows for drawing of finite automata.
The first part describes the activation of the plugin and the second part covers its capabilities concerning drawing.
Simulation of drawn automata is not part of this manual, as it is facilitated by the companion plugin \emph{FA Formalism}.
Thus, instructions on simulation is given there.
\end{eng}

%----

\begin{ger}
\section*{Aktivierung}

Das FA Plugin wird in einigen \Renew-Paketen mitgeliefert.
In diesem Fall wird das Plugin beim Start von \Renew~automatisch geladen.
Das hei\ss{}t, dass es zur Aktivierung bereitsteht.
Erst wenn die FA-Werkzeugleiste aktiviert wurde, ist es nutzbar.
\\ \\
Hier wird davon ausgegangen dass die Ausgangssitiation eine neu ge\"offnete \Renew-Instanz ist (s. Abbildung \ref{fig:renewinstance}).
\end{ger}

\begin{eng}
\section*{Activation}

Some \Renew~packages include the FA plugin.
In this case, the plugin is automatically loaded on startup of \Renew.
However, this just means it is ready for activation.
Only after activating the FA toolbar, the plugin is accessable.
\\ \\
This manual assumes you have started up a fresh instance of \Renew (see figure \ref{fig:renewinstance}).
\end{eng}

%----

\begin{figure}[h]
  \centering
  \includegraphics[width=\textwidth]{images/renewinstance.png}

\begin{ger}
  \caption{Ausgangssituation -- eine neu ge\"offnete \Renew-Instanz }
\end{ger}
\begin{eng}
  \caption{Starting point -- a fresh instance of \Renew }
\end{eng}

  \label{fig:renewinstance}
\end{figure}

%----

\begin{ger}
Die Aktivierung erfolgt \"uber folgende Men\"upunkte (vgl. Abbildung \ref{fig:aktivierung}):\\
\end{ger}

\begin{eng}
The following menu items show how to activate the toolbar (see figure \ref{fig:aktivierung}):\\
\end{eng}

%----

\framebox[1.2\width]{Tools} $\blacktriangleright$ \framebox[1.2\width]{FA Drawing Tool} $\blacktriangleright$ \framebox[1.2\width]{FA Drawing Tool \scriptsize Ctrl-6}
\\
\begin{figure}[h]
  \centering
  \includegraphics[scale=.7]{images/tools-fadrawingtool-fadrawingtool.png}
\begin{ger}
  \caption{Aktivierung der FA-Werkzeugleiste}
\end{ger}
\begin{eng}
  \caption{Activation of the FA toolbar}
\end{eng}
  \label{fig:aktivierung}
\end{figure}
\\

%----

\begin{ger}
Die Aktivierung war erfolgreich, wenn die FA-Werkzeugleiste als dritte Zeile angezeigt wird (s. Abbildung \ref{fig:faactivated}).
\end{ger}

\begin{eng}
You have successfully activated the FA toolbar, if it is shown as the third row in the main window of \Renew~(see figure \ref{fig:faactivated}).
\end{eng}

%----

\begin{figure}[h]
  \centering
  \includegraphics[width=\textwidth]{images/faactive.png}
\begin{ger}
  \caption{\Renew-Instanz mit aktivierter FA-Werkzeugleiste}
\end{ger}
\begin{eng}
  \caption{\Renew instance with activated FA toolbar}
\end{eng}
  \label{fig:faactivated}
\end{figure}

%----

\begin{ger}
\section*{\"Offnen eines Drawings}

Zum Zeichnen eines endlichen Automaten ist es n\"otig eine neue Zeichnung (hier Drawing genannt) zu erstellen.
Dieses Drawing muss vom Typ \emph{Finite Automata Drawing} (FA-Drawing) sein.
\\ \\
Zum erstellen eines FA-Drawings w\"ahlt man folgende Men\"upunkte (vgl. Abbildung \ref{fig:newdrawing}):\\
\end{ger}
\begin{eng}
\section*{Opening a drawing}

To draw a finite automaton it is necessary to create or open a new drawing.
This drawing has to be of type \emph{Finite Automata Drawing} (FA drawing).
\\ \\
To create a new FA drawing, navigate along the following menu items (see figure \ref{fig:newdrawing}):\\
\end{eng}

%----

\framebox[1.2\width]{File} $\blacktriangleright$ \framebox[1.2\width]{New Drawing \ldots}
\\
\begin{figure}[h]
  \centering
  \includegraphics[width=\textwidth]{images/newdrawing.png}
\begin{ger}
  \caption{Erstellung eines neuen Drawings}
\end{ger}
\begin{eng}
  \caption{Creating a new FA drawing}
\end{eng}
  \label{fig:newdrawing}
\end{figure}
\\

%----

\begin{ger}
Hierauf \"offnet sich ein Dialog, der die Wahl des Drawing-Typs fordert (s. Abbildung \ref{fig:drawingtypeselected}).
Ein FA-Drawing wird erstellt, indem \framebox[1.1\width]{\emph{Finite Automata Drawing (*.fa)}} gew\"ahlt wird.
Eine neues Fenster der Drawing-Zeichenfl\"ache \"offnet sich.
\end{ger}
\begin{eng}
  Subsequently, a dialog box pops up which lets you choose the drawing type to use (see figure \ref{fig:drawingtypeselected}).
  To create an FA drawing choose \framebox[1.1\width]{\emph{Finite Automata Drawing (*.fa)}}.
  A new window will open, showing the drawing area of that drawing.
\end{eng}

%----

\begin{figure}[h]
  \centering
  \includegraphics[scale=.7]{images/drawingtypeselected.png}
\begin{ger}
  \caption{Dialog zur Wahl des Drawing-Typs}
\end{ger}
\begin{eng}
  \caption{Dialog box for choosing the drawing type}
\end{eng}
  \label{fig:drawingtypeselected}
\end{figure}

%----

\begin{ger}
\begin{samepage}
\section*{Zeichnen}

F\"ur das Zeichnen von endlichen Automaten sind vor allem die Werkzeuge der FA-Werkzeugleiste relevant.
Die FA-Werkzeuge sind (nach Abbildung \ref{fig:faactivated} unten und v.l.n.r.) :
\begin{itemize}
  \item Startzustand
  \item Zustand
  \item Endzustand
  \item Start-Endzustand
  \item Benennung (n)
  \item Beschriftung (i)
  \item Wort (w)
  \item Kante
  \item Schleife
\end{itemize}
\end{samepage}
~ \\

Zur Verwendung der Werkzeuge w\"ahlt man sie in der Werkzeugleiste mit der linken Maustaste aus und wendet es dann einmalig mit der linken Maustaste in der Zeichenfl\"ache an.
Zust\"ande werden so an dem gew\"ahlten Ort gezeichnet, Kanten m\"ussen per Drag'n'Drop vom Ausgangs- zum Zielzustand gezogen werden.
F\"ur Schleifen gen\"ugt ein Klick auf den entsprechenden Zustand.
W\"orter k\"onnen per Linksklick zu Startzust\"anden hinzugef\"ugt und mit erneutem Rechtsklick editiert werden. Jeder Startzustand kann maximal ein Wort haben.
Abbildung \ref{fig:examplefa} zeigt einen, mit den FA-Werkzeugen gezeichneten, endlichen Automaten.
\end{ger}

\begin{eng}
  \begin{samepage}
\section*{Drawing}

The tools of the FA toolbar are used for drawing finite automaton.
They are named as follows (according to figure \ref{fig:faactivated} bottom and l to r) :
\begin{itemize}
  \item Startstate
  \item State
  \item Final state
  \item Start-Final state
  \item Naming (n)
  \item Inscription (i)
  \item Word (w)
  \item Arc
  \item Loop
\end{itemize}
\end{samepage}
~ \\

You use a tool by choosing it with a left click and then apply it one-time by another left click into the drawing area.
That way you can draw states to desired locations, whereas arcs need to be drawn per drag'n'drop from source to destination state.
Loops are drawn by a single click to the according state.
Words can be added to star states via left click. They can be edited by right-clicking them. A start state may have at most one word.
Figure \ref{fig:examplefa} shows a simple FA drawing, drawn with the FA toolbar.
\end{eng}

%----

\begin{figure}
    \centering
    \begin{subfigure}[h]{0.4\textwidth}
      \includegraphics[width=\textwidth]{images/examplefa}
\begin{ger}
        \caption{Standard Darstellung}
\end{ger}
\begin{eng}
        \caption{Standard representation}
\end{eng}
      \label{fig:standard}
    \end{subfigure}
    ~
    \begin{subfigure}[h]{0.4\textwidth}
        \includegraphics[width=\textwidth]{images/examplefa-jantzen}
\begin{ger}
        \caption{Alternative Darstellung}
\end{ger}
\begin{eng}
        \caption{Alternative representation}
\end{eng}
        \label{fig:alternative}
    \end{subfigure}
\begin{ger}
    \caption{Endlicher Automat gezeichnet mit den FA-Werkzeugen in zwei unterschiedlichen Darstellungsweisen}
\end{ger}
\begin{eng}
    \caption{Finite automaton drawn with the FA toolbar shown in two representations}
\end{eng}
    \label{fig:examplefa}
\end{figure}

%----


\begin{ger}
In der Zeichenfl\"ache kann ein Zustand per Linksklick ausgew\"ahlt werden, sodass Ankerpunkte angezeigt werden.
Die eckigen Ankerpunkte erlauben die \"Anderung der Gr\"o\ss{}e.
Der runde Ankerpunkt erm\"oglicht das Zeichnen eines weiteren, mit einer Kante verbundenen, Zustands per Drag'n'Drop.

W\"ahlt man eine Kante per Linksklick aus erscheinen ebenfalls Ankerpunkte.
Die eckigen Ankerpunkte erlauben das umsetzen der Kante an andere Zust\"ande.
Der runde Ankerpunkt erm\"oglicht das Umlenken bzw. W\"olben der Kante.

Benennungen und Beschriftungen
\footnote{Der Unterschied zwishen den Textwerkzeugen liegt darin, dass Beschriftungen und W\"orter bei der Simulation des Automaten eine Bedeutung haben; Benennungen hingegen nicht.}
 k\"onnen nur an Elemente geh\"angt werden.
Per Rechtsklick auf einen Zustand kann eine Benennung mit automatischer Nummerierung (von $Z_0$ aufw\"arts) erstellt werden.
Mittels Rechtsklick auf eine Kante wird eine Beschriftung mit dem Standardinhalt \emph{a} (f\"ur NFAs) oder \emph{a, -> X} (f\"ur PDAs) erstellt.

Neben diesen Elementen lassen sich auch alle Werkzeuge der oberen Werkzeugleiste (Zeichenwerkzeuge) problemlos nutzen.
Zu beachten ist, dass diese keine Semantik (bzgl. Simulation) haben und ausschlie\ss{}lich zur Darstellung dienen.
\\
\"Uber den Men\"upunkt \framebox[1.2\width]{Tools} $\blacktriangleright$ \framebox[1.2\width]{FA Drawing Tool} sind weitere Funktionen aufrufbar.
So l\"asst sich \"uber \framebox[1.2\width]{Decoration} der Typ des momentan ausgew\"ahlten Zustands \"andern.
Auf diese Weise ist es nicht n\"otig ihn zu L\"oschen und Benennungen, Beschriftungen und Kanten an einen neuen Zustand zu h\"angen.
Au\ss{}erdem ist die Darstellung der Zust\"ande \"uber \framebox[1.2\width]{FA Toggle Mode} in eine alternative Variante \"anderbar (s. Abbildung \ref{fig:alternative}).
Die Funktionalit\"aten und Eigenschaften der \framebox[1.2\width]{FA Simulation Settings} werden im \FAFormalism-Handbuch beschrieben.

Der \framebox[1.2\width]{FA Comparator} erm\"oglicht es, die Sprachen von NFAs zu vergleichen.
Auf der linken Seite des sich neu ge\"offneten Fensters kann entweder eine Zeichnung oder ein regul\"arer Ausdruck eingegeben werden.
Auf der rechten Seite k\"onnen mehrere Zeichnungen hinzugef\"ugt werden.
Durch das Dr\"ucken des \textit{Compare}-Knopfes werden alle Zeichnungen der rechten Seite mit der Vorlage auf der linken Seite verglichen.
Auf der Konsole wird f\"ur jede Zeichnung angegeben, ob der darin enthaltene NFA die gleiche Sprache wie die Vorlage akzeptiert.
Ist dies nicht der Fall wird außerdem das k\"urzeste Wort ausgegeben, welches nur in einer der beiden Sprachen enthalten ist.
Das ver\"andern einer Zeichnung wird vom \textit{Comparator} nicht registriert, in diesem Fall muss die Zeichnung erneut hinzugef\"ugt werden.
\end{ger}

\begin{eng}
When choosing a state by left click, anchor points for this state are shown.
Rectangular anchor points allow for scaling the state.
Round anchor points  allow for drawing a further state by drag'n'drop, which is connected to the base state with an arc.

Also when choosing an arc by left click, anchor points are shown.
Rectangular anchor points allow for changing the source or destination state by moving the arc tips.
Round anchor points allow for arc bending.

Naming and inscribing
\footnote{The difference between the text tools lies in the semantics. Inscriptions and words are considered while simulation, whereas namings are not.}
 can only be attachted to elements.
By right clicking a state it is named with an automatically increasing tag (from $Z_0$ upwards).
Via right clicking an arc a default inscription \emph{a} (for NFAs) or \emph{a, -> X} (for PDAs) is attached to it.

In addition to these elements, all elements of the top toolbar (drawing tools) can be used.
It should be noted that those do not have any semantics, thus are only for display purposes.
\\
Further features are accessible via the menu points \framebox[1.2\width]{Tools} $\blacktriangleright$ \framebox[1.2\width]{FA Drawing Tool}.
\framebox[1.2\width]{Decoration} allows for changing the type of the currently selected state(s).
By changing the type in this way it is not necessary to delete it, inscriptions and arcs, which would then have to be reattached.
Furthermore, the representation of states is switchable between an alternative (see figure \ref{fig:alternative}) and a standard type via the menu item \framebox[1.2\width]{FA Toggle Mode}.
The purpose and functionality of the \framebox[1.2\width]{FA Simulation Settings} is covered in the \FAFormalism~guide.

With the \framebox[1.2\width]{FA Comparator}, it is possible to compare the languages of NFAs.
On the left-hand side of the newly opened window, a template in form of an \textit{fa}-drawing or regular expression can be entered.
On the right-hand side, multiple \textit{fa}-drawings can be added.
By using the \textit{Compare} button, all drawings from the right-hand side are one-by-one compared to the template.
The result of this comparison will be printed into the console.
If the languages are not equal, the shortest separating word will also be given.
\end{eng}
