%jur-fall.sty - Style-Datei f"ur eine Umgebung mit juristischen Beispielsf"allen - Peter Felix Schuster
\ProvidesPackage{jur-fall}[2006/08/02 v0.18 Paket f"ur juristische Beispielsf"alle als Umgebung]

\RequirePackage{ifthen}
\RequirePackage{jur-aufz}

%Z"ahler f"ur F"alle und Abwandlungen definieren und setzen
\newcommand{\@fallname}{Fall}%Makro f"ur die Bezeichnung f"ur F"alle
\newcommand{\@abwandlungname}{Abwandlung}%Makro f"ur die Bezeichnung f"ur Abwandlungen
\newcommand{\@anspruchname}{Anspruch}%Makro f"ur die Bezeichnung f"ur Anspr"uche
\newcounter{fall}%Z"ahler fall (f"ur Fall-Nr)
\newcounter{abwandlung}[fall]%Z"ahler abwandlung (f"ur Abwandlung-Nr), wird bei fall-Erh"ohung zur"uckgesetzt
\newcounter{einzelabwandlung}%[fall]%Z"ahler einzelabwandlung (f"ur Nummer von alleinstehenden Abwandlungen)
\newcounter{anspruch}[fall]%Z"ahler anspruch (f"ur Anspruch-Nr), wird bei fall-Erh"ohung zur"uckgesetzt
\setcounter{fall}{0}%Anfangs auf 0 setzen
\setcounter{abwandlung}{0}%Anfangs auf 0 setzen
\setcounter{einzelabwandlung}{0}%Anfangs auf 0 setzen
\setcounter{anspruch}{0}%Anfangs auf 0 setzen
\newcommand{\newfall}{\refstepcounter{fall}}%Makro, das den Z"ahler erh"oht
\newcommand{\newabwandlung}{\refstepcounter{abwandlung}}%Makro, das den Z"ahler erh"oht
\newcommand{\neweinzelabwandlung}{\refstepcounter{einzelabwandlung}}%Makro, das den Z"ahler erh"oht. Eher sinnlos,
                                %wenn er nicht gebraucht wird 
\newcommand{\newanspruch}{\refstepcounter{anspruch}}%Makro, das den Z"ahler erh"oht

% \the<counter> gibt an, wie der Z"ahler ausgegeben werden soll.
\renewcommand{\thefall}{\@fallname\,\arabic{fall}}%In arabischen Ziffern nummerieren.
\renewcommand{\theabwandlung}{\@abwandlungname\space\alph{abwandlung})}%In Kleinbuchstaben nummerieren.
\renewcommand{\theeinzelabwandlung}{\@abwandlungname.}%Gar nicht nummerieren (wer a sagt, muss auch b sagen)
\renewcommand{\theanspruch}{\Roman{anspruch}.}%In gro"sen r"omischen Ziffern nummerieren.

% \p@<counter> (steht wohl f"ur pre- oder so) wird bei Verweisen auf den Counter (\ref...) vor die Ausgabe des Counters gepackt
\renewcommand{\p@fall}{}%Bei Verweisen Fall (Nr) ausgegeben
\renewcommand{\p@abwandlung}{\thefall,\space}%Bei Verweisen Fall (Nr), Abwandlung (Nr) ausgegeben
\renewcommand{\p@einzelabwandlung}{\thefall,\space}%Bei Verweisen Fall (Nr), Abwandlung (Nr) ausgegeben
\renewcommand{\p@anspruch}{\thefall,\space}%Bei Verweisen Fall (Nr), Anspruch (Nr) ausgegeben
%\ifthenelse{\equal{\arabic{abwandlung}}{0}}{dann nix}{sonst \theabwandlung}
%\ifthenelse{\equal{\arabic{einzelabwandlung}}{0}}{dann nix}{sonst \theeinzelabwandlung}

%Hyperref verwendet \theH<counter>, um Fehler bei nicht-eindeutigen Referenzierungen (zB gibt es unter Fall 1 eine
%Abwandlung a, wie auch unter Fall 2, beides hei"st aber a.) zu umgehen.
%Hier ist es ganz sinnvoll, auf \p@<counter>\the<counter> zur"uckzugreifen. 
\newcommand{\theHabwandlung}{\p@abwandlung\theabwandlung}%F"ur hyperref
\newcommand{\theHeinzelabwandlung}{\p@einzelabwandlung\theeinzelabwandlung\arabic{einzelabwandlung}}%F"ur hyperref
\newcommand{\theHanspruch}{\p@anspruch\theanspruch}%F"ur hyperref

%TODO: Umstellen auf \@starsection:
% \@startsection{fall}{1}{0pt}{\baselineskip}{0pt}{\bfseries}[#1]{#2}
% \@startsection{abwandlung}{2}{0pt}{\baselineskip}{0pt}{\bfseries}[#1]{#2}
% \@startsection{einzelabwandlung}{2}{0pt}{\baselineskip}{0pt}{\bfseries}[#1]{#2}
% \@startsection{anspruch}{3}{0pt}{\baselineskip}{0pt}{\bfseries}[#1]{#2}

%Umgebung fall definieren.
\newenvironment{fall}[1][]{%Ab hier Anfangsbefehle f"ur Umgebung
\newfall%Z"ahler erh"ohen.
\par\vspace{.75\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
\begingroup\itshape\textbf{\thefall\ifthenelse{\equal{#1}{}}{.}{, \glqq{}#1\grqq{}:} }%
%Gruppe beginnen, auf kursiv, Fall-Nummer ausgeben, die Fallbezeichnung voranstellen, evtl. Falltitel nachstellen 
}%Bis hier Anfangsbefehle f"ur Umgebung
{%Ab dieser Zeile Endbefehle f"ur Umgebung
\endgroup%
\par\vspace{.25\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
}%Gruppe beenden (Kein kursiv mehr).

%TODO: gemeinsamen Nenner definieren!
%Dasselbe in gr"un f"ur Abwandlungen
\newenvironment{abwandlung}{%
\par\vspace{.75\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
\newabwandlung\begingroup\itshape\textbf{\theabwandlung}%
}%
{%
\endgroup%
\par\vspace{.25\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
}

%Die Sternchen-Variante sollte verwendet werden, wenn es zu einem Fall nur eine Abwandlung gibt (alleinstehende Abwandlung).
%Bei ihr wird nicht wirklich gez"ahlt, sondern nur Abwandlung. ausgegeben. %\neweinzelabwandlung
\newenvironment{abwandlung*}{%
\par\vspace{.75\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
\neweinzelabwandlung\begingroup\itshape\textbf{\theeinzelabwandlung}}%
{%
\endgroup%
\par\vspace{.25\baselineskip}%Neuen Absatz beginnen wenn n"otig. Abstand halten
}

% Anspruch ist eine Pseudeo-Gliederungsebene, die eine "Uberschrift erzeugt. 
%           \Anspruch{"Uberschrift}
% Auch hier wieder eine Sternchen-Variante, die den Z"ahler unterdr"uckt
%           \Anspruch*{"Uberschrift}
\newcommand{\Anspruch}{\@ifstar{\@anspruch}{\@ansprueche}}%"Uberpr"ufen, ob mit Sternchen aufgerufen
%\newcommand{\einzelanspruch}[1]{\@anspruch{#1}}

%Aufruf ohne Stern:
\newcommand{\@ansprueche}[1]{\newanspruch\@anspruch{\theanspruch\space{}#1}}%Mit Nummer, ansonsten wie Sternchen-Variante

%Sternchen-Variante und gemeinsamer Nenner
\newcommand{\@anspruch}[1]{\allowbreak\par\vskip .67\baselineskip%Absatz, Abstand lassen, Titel #1 schreiben, Abstand 
  \noindent\textbf{#1}%\begingroup\endgroup%\sffamily 
  \par\nobreak\vskip .33\baselineskip \@afterheading}
%\@afterheading sorgt daf"ur, dass kein Umbruch zwischen "Uberschrift und folgendem Text erfolgt
%aus: source2e 61.2 (S. 332 von 534) (Def. v. \@xsect)
%\nopagebreak\par\vspace{.25\baselineskip}\nopagebreak
%Kann man hier \par nutzen?

%Umgebung anspruch und anspruch*. Machen eigentlich nix anderes als \Anspruch und \Anspruch*
%Allerdings definieren sie die Oberebene f"ur Aufz"ahlungen um. (Benutzung empfohlen!)
%Aufruf mit \begin{anspruch}{Titel des Anspruchs} ... \end{anspruch}
\newenvironment{anspruch}[1]{\footnotesize\@ansprueche{#1}\oberebene{\p@anspruch\theanspruch}}{}%\begingroup\endgroup
\newenvironment{anspruch*}[1]{\footnotesize\@anspruch{#1}\oberebene{\thefall, Anspruch}}{}%\begingroup\endgroup

\endinput