%%% { BRACE MATCHING HACK
\documentstyle[11pt,german,regel]{article}

\hoffset=0.5cm
\voffset=-1cm

\textwidth=15cm
\textheight=25cm
\frenchspacing

\rulerightindent=1cm

\def\`\{{{\tt\symbol{123}}}  %%% } BRACE MATCHING HACK {
\def\`\}{{\tt\symbol{125}}}
\def\file#1{{\tt #1}}
\def\environment#1{{\tt #1}}
\def\cmd#1{{\tt\symbol{92}#1}}


\begin{document}

\section*{Dokumentation zu `\file{regel.sty}' (V1.0)}

\begin{tabbing}
Aufgabe:\quad \= \kill
F"ur:    \> \LaTeX. \\
Aufgabe: \> Stellt eine Umgebung zum Setzen von Regeln zur Verf"ugung. \\
Autor:   \> Thomas Birnthaler, IMMD5 (Mustererkennung),
            FAU Erlangen-N"urnberg.
\end{tabbing}

\medskip
\noindent
Eine "ubliche Regel hat etwa die Form
%
\begin{regel}
  \IF{Bedingung 1 \AND \ldots \AND Bedingung N}
  \THEN{Folgerung 1 \OR \ldots \OR Folgerung M}
  \label{regel1}
\end{regel}
%
und wurde hier mit der \environment{regel}-Umgebung
durch folgende Eingabe erzeugt:

{\footnotesize
\begin{verbatim}
     \begin{regel}
       \IF{Bedingung 1 \AND \ldots \AND Bedingung N}
       \THEN{Folgerung 1 \OR \ldots \OR Folgerung M}
       \label{regel1}
     \end{regel}
\end{verbatim}}

Regeln werden in den vorhergehenden bzw. folgenden Absatz mit
aufgenommen, wenn sie oben bzw. unten {\em nicht\/} durch
eine Leerzeile von diesem abgetrennt sind.
Regel~(\ref{regel1}) wurde z.B. ohne Leerzeilen zwischen Text und
\environment{regel}-Umgebung in den umgebenden Absatz eingebaut,
w"ahrend die folgende Regel~(\ref{regel2}) durch Leerzeilen getrennt
einen Absatz f"ur sich allein bildet.

\begin{regel}
  \IF{Bedingung 1 \AND \ldots \AND Bedingung N}
  \THEN{Folgerung 1 \OR \ldots \OR Folgerung M}
  \label{regel2}
\end{regel}

In den folgenden Beispielen f"ur Regeln ist rechts neben jeder Regel
der Quelltext angegeben, der zum Erzeugen dieser Regel verwendet wurde.
%
\begin{itemize}

\item
Die Numerierung von Regeln erfolgt zusammen mit den Formeln der
\environment{equation}-Umgebung.
Das bedeutet, da"s nach der Gleichung~(\ref{gleichung1})
%
\begin{equation}
    x = \sqrt[3]{a^3 + b^3 + c^3}
    \label{gleichung1}
\end{equation}
%
die Regel~(\ref{regel3}) folgt.

\begin{minipage}[t]{6cm}
\begin{regel}
  \IF{Bedingung}
  \THEN{Folgerung}
  \label{regel3}
\end{regel}
\end{minipage}%
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel}
  \IF{Bedingung}
  \THEN{Folgerung}
  \label{regel3}
\end{regel}
\end{verbatim}
\end{minipage}

\item
Die Numerierung einer Regel kann durch das Kommando \cmd{nonumber} in
der normalen \environment{regel}-Umgebung bzw. durch die Verwendung der
\environment{regel*}-Umgebung unterdr"uckt werden. Die beiden folgenden Regeln
bekommen beispielsweise keine Nummer:

\medskip
\begin{minipage}[t]{6cm}%
\begin{regel}
  \IF{Bedingung}
  \THEN{Folgerung}
  \nonumber
\end{regel}
\end{minipage}
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel}
  \IF{Bedingung}
  \THEN{Folgerung}
  \nonumber
\end{regel}
\end{verbatim}
\end{minipage}

\medskip
\begin{minipage}[t]{6cm}
\begin{regel*}
  \IF{Bedingung}
  \THEN{Folgerung}
\end{regel*}
\end{minipage}%
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel*}
  \IF{Bedingung}
  \THEN{Folgerung}
\end{regel*}
\end{verbatim}
\end{minipage}

\item
In einer \environment{regel}-Umgebung k"onnen mehrere Regeln
hintereinander angegeben werden, die dann
gemeinsam eine Regelnummer erhalten. Das bedeutet, nicht Regeln sondern
\environment{regel}-Umgebungen werden numeriert.

\item
{\em Das in einer \environment{regel}-Umgebung m"ogliche
\cmd{label}-Kommando mu"s direkt
vor dem \cmd{end\{regel\}}-Befehl angegeben werden (siehe Beispiele).}

\item
Um Regeln in den Text mit einbeziehen zu k"onnen, ist nach dem Argument
eines \cmd{IF}- bzw. \cmd{THEN}-Kommandos ein optionales Satzzeichen aus
\{{\tt .,;}\} erlaubt.
Dieses Satzzeichen erscheint im Regel-Text nach der abschlie"senden
rechten Klammer des entsprechenden Arguments.
Beispiele daf"ur bieten die Regeln~(\ref{regel4}) bis (\ref{regel6}).

\medskip
\begin{minipage}[t]{6cm}
\begin{regel}
  \IF{Bedingung A},
  \THEN{Folgerung B}.
  \label{regel4}
\end{regel}
\end{minipage}%
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel}
  \IF{Bedingung A},
  \THEN{Folgerung B}.
  \label{regel4}
\end{regel}
\end{verbatim}
\end{minipage}

\medskip
\begin{minipage}[t]{6cm}
\begin{regel}
  \IF{Bedingung C}.
  \THEN{Folgerung D},
  \label{regel5}
\end{regel}
\end{minipage}%
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel}
  \IF{Bedingung C}.
  \THEN{Folgerung D},
  \label{regel5}
\end{regel}
\end{verbatim}
\end{minipage}

\medskip
\begin{minipage}[t]{6cm}
\begin{regel}
  \IF{Bedingung E};
  \THEN{Folgerung F};
  \label{regel6}
\end{regel}
\end{minipage}%
%
\hskip1cm
%
\begin{minipage}[t]{6cm}
\footnotesize
\begin{verbatim}
\begin{regel}
  \IF{Bedingung E};
  \THEN{Folgerung F};
  \label{regel5}
\end{regel}
\end{verbatim}
\end{minipage}

\item
Die Plazierung von Regeln im Text 
kann durch folgende Ma"se beeinflu"st werden
(ihre Defaultwerte sind jeweils in Klammern dahinter angegeben):
%
\begin{itemize}

\item
\small
\cmd{aboveruleskip} (1.5ex) und \cmd{belowruleskip} (1.5ex) \\
\normalsize
Abstand einer als eigener Absatz gesetzten Regel zum vorhergehenden
bzw. nachfolgenden Absatz.

\item
\small
\cmd{aboveruleshortskip} (0.5ex) und \cmd{belowruleshortskip} (0.5ex) \\
\normalsize
Abstand einer zum vorhergehenden
bzw. nachfolgenden Absatz dazugeh"orenden Regel zu diesem Absatz.

\item
\small
\cmd{ruleleftindent} (1cm) und \cmd{rulerightindent} (2cm) \\
\normalsize
Breite der linken und rechten Einr"uckung einer
Regel bez"uglich des aktuellen linken und rechten Textrandes.
\cmd{rulerightindent} sollte nicht
zu klein gew"ahlt werden, da im rechten Rand die Regelnummer erscheint.

\item
\small
\cmd{inruleskip} (0pt) \\
\normalsize
Zus"atzlicher Abstand zum normalen Zeilenabstand
zwischen dem \cmd{IF}- und \cmd{THEN}-Teil einer Regel.

\item
\small
\cmd{betweenruleskip} (1ex) \\
\normalsize
Abstand zwischen zwei Regeln innerhalb der gleichen \environment{regel}-Umgebung.

\item
\small
\cmd{rulehskip} (1ex) \\
\normalsize
Abstand zwischen den Schl"usselw"ortern THEN, AND, OR und dem nachfolgenden
Text.

\end{itemize}
Diese Ma"se k"onnen "uber das Kommando \cmd{setlength\{Mass\}\{Laenge\}}
ver"andert werden.

\end{itemize}

\medskip
Als abschlie"sende Beispiele noch eine gr"o"sere Regel, in der der Text von
Bedingungen und Folgerungen umbrochen werden mu"s, sowie einige 
Regeln, die direkt aneinandersto"sen.

\rulerightindent=2cm
\begin{regel}
  \IF{eine sehr lange Bedingung, die eigentlich sch"on umbrochen werden
      m"u"ste
    \AND
      eine zweite sehr lange Bedingung, die auch sch"on umbrochen werden
      m"u"ste},
  \THEN{eine sehr lange Folgerung, die wiederum sch"on umbrochen werden
        m"u"ste
    \OR
        eine zweite sehr lange Folgerung, die schlie"slich auch sch"on
        umbrochen werden m"u"ste
    \OR
        eine dritte lange Folgerung mit der Regelnummer daneben}.
\end{regel}

\bigskip

\begin{regel}
  \IF{Bedingung A};
  \THEN{Folgerung B};
\end{regel}
\begin{regel}
  \IF{Bedingung D};
  \THEN{Folgerung C};
\end{regel}
\begin{regel}
  \IF{Bedingung E};
  \THEN{Folgerung F};
\end{regel}
\begin{regel}
  \IF{Bedingung G};
  \THEN{Folgerung H};
\end{regel}
\begin{regel}
  \IF{Bedingung I};
  \THEN{Folgerung J}.
\end{regel}

\end{document}
%%% } BRACE MATCHING HACK
