%% 
% \iffalse metacomment%
%% Written by Lucas Wartenburger
%%
% This is a LaTeX2e package for handlung citations judgements and official documents. 
% It might be interesting primarily for papers about German law. Threrefore, the
% documentation will be in German.
%
% This material is copyrighted by Lucas Wartenburger. However, rights are granted
% according to version 2 of the GNU Public Licence (GPL). 
% This means in essence:
% - this file is freely distributable provided that it is not modified
% - it may be sold
% - it may be modified provided that the result is also placed under the GPL.
% (wherever these terms divert from the GPL, the latter shall prevail)
%
% Um eine Dokumentation zu erzeugen, lassen Sie einfach LaTeX2e "uber diese 
% Datei laufen.
% Wenn Sie das Package benutzen wollen, starten sie TeX mit der
% Datei abbreviations.ins und legen sie die so erzeugten Dateien in ein Verzeichnis, 
% wo sie TeX sp"ater findet.
%
% \fi
%
% \CheckSum{3332}
% 
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
%
% \ProvidesFile{jurarsp.dtx}[2006/03/04 v0.52 Documentation]
%
% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty}
% \DoNotIndex{\@flushglue,\@gobble,\@input}
% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle}
% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa}
% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue}
% \DoNotIndex{\@thanks,\@thefnmark,\@topnum}
% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin}
% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces}
% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup}
% \DoNotIndex{\mathcal,\csname,\def,\documentstyle,\dospecials,\edef}
% \DoNotIndex{\egroup}
% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist}
% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global}
% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn}
% \DoNotIndex{\ifcase}
% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item}
% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower}
% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing}
% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc}
% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut}
% \DoNotIndex{\strutbox}
% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt}
% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@}
% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim}
% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary}
% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle}
% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode}
% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip}
% \DoNotIndex{\nopagebreak}
% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle}
% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb}
% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar}
% \DoNotIndex{\[,\{,\},\]}
% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode}
% \DoNotIndex{\baselineskip,\begin,\tw@}
% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q}
% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H}
% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z}
% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0}
% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_}
% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother}
% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment}
% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined}
% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc}
% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar}
% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode}
% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting}
% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf}
% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse}
% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault}
% \DoNotIndex{\bfdefault}
% \DoNotIndex{\ifthenelse,\equal,\and,\or,\OR,\emph,\@for}
%
% \GetFileInfo{jurarsp.dtx}
% \title{Die Dokumentklasse |jurarsp|
% \thanks{Version \fileversion}}
% \author{Lucas Wartenburger}
% \date{\filedate}
% \maketitle
% \pagebreak[2]
%
% \begin{abstract}
%Zur Verwendung von Literatur in juristischen Dokumenten existiert bereits das umfangreiche
%|jurabib|-Paket von Jens Berger. Daneben enthalten juristische Texte jedoch h�ufig Zitate 
%anderer Quellen, insbesondere der Rechtsprechung (Urteile) sowie -- zumindest im Steuer- und 
%Europarecht -- amtlicher Dokumente (BMF-Schreiben etc.)
%Das vorliegende Paket erm�glicht es, diese Zitate aus einer \BibTeX-Datenbank zu erzeugen und
%automatisch in ein Verzeichnis aufzunehmen. 
%Das Paket versteht sich also als Erg�nzung zu |jurabib|; i.d.R. werden beide Pakete nebeneinander
%zum Einsatz kommen.
% \end{abstract}
%
% \tableofcontents
%
% \section{Einf�hrung}
% In juristischen Texten sind Zitate von Rechtsprechung und amtlichen Dokumenten oft ebenso 
% h�ufig wie "`normale"' Literatur-Zitate. Es liegt daher nahe, \LaTeX{} zur Automatisierung dieser 
% Zitate einzusetzen; insbesondere in Verbindung mit einer \BibTeX-Datenbank. So m�ssten die
% Urteile nur noch an einer Stelle eingegeben werden und w�ren danach in allen Dokumenten
% verf�gbar. 
% \BibTeX{} ist jedoch auf das Zitieren von Literatur ausgelegt, daran �ndert auch das |jurabib|
% Paket nichts. Rechtsprechung gehorcht jedoch -- (auch?) was die Zitierweise angeht -- 
% etwas anderen Gesetzen. So ist ein Urteil h�ufig an verschiedenen Stellen ver�ffentlicht. 
% Es gibt keinen "`Autor"' und keinen "`Herausgeber"' daf�r andere wichtige Daten, wie 
% Aktenzeichen, Datum und -- im Reich des caselaw (einschl. EuGH) -- die Angabe der Parteien. 
% Das vorliegende Paket ist ein Versuch, die F�higkeiten von \BibTeX{} und \LaTeX{} dennoch 
% f�r Rechtsprechung und amtliche Dokumente nutzbar zu machen. 
% \section{Einbindung des Paketes}
% \subsection{Installation der Dateien}
% Um die erforderlichen Dateien zu erzeugen, muss \TeX{} mit dem Aufruf
% \begin{quote}
% |tex jurarsp.ins| 
% \end{quote}
% gestartet werden. Die Datei |jurarsp.sty|
% muss so abgelegt werden, dass \LaTeX{} sie sp�ter findet. Die Datei |jurarsp.bst| muss 
% von \BibTeX gefunden werden, ist also i.d.R. unter |bibstyles| abzulegen. 
% Die Dateien |rsptest.tex| sowie |rsptest.bib| dienen als Beispiel.
% Die Datei |jurarsp.cfg| kann als Muster verwendet werden, ist aber 
% f�r den Ablauf nicht erforderlich.
%
% \subsection{Einbindung des Paketes}
% Um dieses Package zu verwenden, gen�gt eine Einbindung in den header des Dokuments 
% \begin{quote}
% |\usepackage{jurarsp}|
% \end{quote}
% An der Stelle im Dokument, an der sp�ter das Rechtsprechungsverzeichnis erscheinen
% soll, muss folgender Eintrag vorgenommen werden:
%\begin{quote}
%|\rspstyle{jurarsp}|\DescribeMacro{\rspstyle}
%
%|\rspdata{|\meta{Datenbankdatei}|}|\DescribeMacro{\rspdata}
%\end{quote}
% Benutzer von \BibTeX wird dieser Aufbau bekannt vorkommen, nur die Kommandos wurden leicht
% abgewandelt. 
% Die Datenbankdatei ist die |bib|-Datei, in der die Angaben enthalten sind, im Beispieldokument
% also |rsptest.bib|.
%
% Schlie�lich muss noch \BibTeX aufgerufen werden, um die Daten aus der Datenbank zu extrahieren. 
% Insgesamt sieht der Aufruf wie folgt aus:
%\begin{quote}
%|latex| \meta{Dateiname}
%
%|bibtex| \meta{Dateiname}|.rsp|
%
%|latex| \meta{Dateiname}
%
%|latex| \meta{Dateiname}
%\end{quote}
% Die Abgabe der Endung |.rsp| ist unbedingt n�tig, damit 
% die Daten nicht mit denen einer normalen Literaturdatenbank durcheinander geraten. 
%
%\subsection{Probleme beim Umstieg auf Version 0.52}
%Wer ein Dokument zuvor mit Version 0.50 oder 0.51 bearbeitet hat und nun auf Version 0.52 umsteigt, wird anfangs u.U. mit einer Flut von Fehlermeldungen �berh�uft. 
%
%Dies liegt i.d.R. daran, dass die bib-Datenbank nunmehr das Feld "`citeas"' erlaubt und daher die interne Struktur der tempor�ren Daten ge�ndert wurde. Man kann das Problem dadurch l�sen, dass man die Dateien mit der Endung "`rsp.aux"', "`rsp.bbl"' und "`rsp.blg"' l�scht. Danach sollte es funktionieren.
%
% \section{Aufbau der BibTeX-Datenbank}
% \subsection{Die Eintragstypen}
% Das Paket stellt vier eigene Eintragungstypen (entry-types) f�r \BibTeX{} zur Verf�gung. 
% Die klassischen \BibTeX-entries (|article|, |book| etc.) funktionieren mit diesem 
% Paket \emph{nicht}.
% \subsubsection{Der Typ \texttt{judgement}} 
% \DescribeEnv{judgement} Der wichtigste neue Eintragstyp ist |judgement|. Er enth�lt Daten
% zu Urteilen. Das nachfolgende Beispiel sollte weitgehend selbsterkl�rend sein.
%\begin{verbatim}
%@JUDGEMENT{aaa:dummy,
%crossref = "bghz",
%courtspecial = {GrS},
%chamber = {Gro{\ss}er Senat},
%date = {01.08.1993},
%decision = {Urteil},
%officialvolume = {83},
%officialpages = {244 ff.},
%journal = njw,
%journalyear = {1994},
%journalpages = {1923 ff.},
%journaladditional = {= JZ 1995, 2323 ff.},
%name = {Dummy-Entscheidung},
%parties = {Meyer ./. M{\"u}ller},
%sign = {II ZR 233/91},
%language = {Deutsch},
%keyword = {Test},
%laws = {{\SS} 223 ff. BGB},
%commented = {abl. Anm. K{\"u}belb{\"o}ck, MDR 95, 223 ff.},
%note = {rkr.},
%annote = {Kopien in Ordner 23, noch lesen},
%citeas = {official},
%sortkeyu = {}}
%\end{verbatim}
% \DescribeEnv{crossref}
% �ber das |crossref|-Feld wird der entsprechende |court|-Entry mit den Daten des Gerichts
% eingebunden, die f�r jedes Urteil gleich sein sollten. 
% \DescribeEnv{sortkeyu}
% |sortkeyu| enth�lt einen Sortierschl�ssel auf Urteilsebene. Dieser wird benutzt, um die Urteile
% eines Gerichts untereinander abweichend von der normalen Reihenfolge zu sortieren. 
% \DescribeEnv{note}\DescribeEnv{annote}
% Die Felder |note| und |annote| dienen zum Ablegen von Kommentaren, die in einem Entwurfsmodus 
% auch mit ausgedruckt werden k�nnen. 
% \DescribeEnv{citeas}
% Das Feld |citeas| kennt derzeit nur die Eintr�ge "`journal"' oder "`official"'; alle anderen Inhalte werden ignoriert bzw. haben keine Auswirkung. Wenn dort "`journal"' eingegeben ist, wird das System in jedem Fall das Zeitschrift-Zitat verwenden, egal ob Zeitschriften-Daten eingegeben sind oder nicht und -- was wichtiger ist -- egal, ob daneben auch Daten aus der amtlichen Sammlung angeben sind und "`preferofficial"' auf true steht. 
% \subsubsection{Der Typ \texttt{court}}
% \DescribeEnv{court}
% Der Eintragstyp |court| speichert Daten zum Gericht und steht zu den |judgement|-Eintr�gen 
% gewisserma�en in einer |1:n|-Beziehung, wobei |crossref| zum Herstellen der Beziehung dient.
% Beispiel:
%\begin{verbatim}
%@COURT{bghz,
%courtname = {Bundesgerichtshof},
%courtshort = {BGH},
%place = {Karlsruhe},
%official = {BGHZ},
%officialshort = {Z},
%sortkeyg = {015010010000},
%level = {Bundesgerichtshof},
%state = {Bundesrepublik Deutschland},
%jurisdiction = {Ordentliche Gerichtsbarkeit}}
%\end{verbatim}
% \DescribeEnv{sortkeyg}
% Das Feld |sortkeyg| beinhaltet den Sortierschl�ssel auf Gerichtsebene und ist damit vorrangig
% zu |sortkeyu|. Die Felder |level|, |state| und |jurisdiction| dienen zur Gruppierung des 
% Rechtsprechungs-Verzeichnisses und werden dort erl�utert.
% \DescribeEnv{official}
% |official| beinhaltet die amtliche Sammlung der Entscheidungen des Gerichts. Das Feld wird mit 
% |officialpages| und |officialvolume| aus dem |judgement|-Eintrag kombiniert.
% 
% \subsubsection{Die Typen \texttt{document} und \texttt{institution}}
% \DescribeEnv{document}\DescribeEnv{institution}
% |document| entspricht dem Typ |judgement|, beinhaltet aber keine Urteile, sondern 
% amtliche Dokumente (z.B. Entscheidungen der Kommission oder BMF-Schreiben). 
% |institution| enth�lt die entsprechenden Daten zu der �ffentlichen Stelle
% und entspricht damit dem Typ |court|.
% Die Eintr�ge k�nnten etwa so aussehen:
%\begin{verbatim}
%@DOCUMENT{bmf:st01:175,
%crossref = "bmf",
%date = {23.01.2001},
%decision = {\abbbmf{}-Schreiben},
%officialyear = {2001},
%officialpages = {175},
%name = {Schreiben betr. ertragsteuerliche Behandlung von Film- 
%und Fernsehfonds},
%sign = {IV A 6 --- S 2241 --- 8/01},
%language = {Deutsch},
%annote = {ge{\"a}nd. durch BMF v. 5.8.03
%in Beck Nr. 1 {\S} 5 / 4},
%sortkeyu = {0}}
%
%@INSTITUTION{bmf,
%courtname = {Bundesminister der Finanzen},
%courtshort = {BMF},
%place = {Berlin},
%official = {Bundessteuerblatt Teil I},
%officialshort = {BStBl. I},
%sortkeyg = {015020010000},
%level = {Bundesminister der Finanzen},
%state = {Bundesrepublik Deutschland},
%jurisdiction = {Finanzverwaltung}}
%\end{verbatim}
%
% \subsection{Das Rechtsprechungs-Verzeichnis}
% Ein Verzeichnis mit den beiden oben dargestellten Eintr�gen w�rde so aussehen:
%
% \rspstyle{jurarsp}
% \rspdata{rsptest}
% Hier die Zitate: \footnote{^^A
% \rcite[12]{aaa:dummy}, \rcite[13]{bmf:st01:175}.}
% \subsection{Ein Wort zur Datenbank}
% Dabei stellt sich freilich die Frage: Wie bearbeite ich die \BibTeX-Eintr�ge am besten? Die
% g�ngigen Programme sind an |jurarsp| nicht angepasst, was aber durchaus m�glich ist. Mir 
% pers�nlich waren diese jedoch alle etwas zu dubios, deshalb habe ich mir eine kleine
% Access-Datenbank gebastelt, die Literatur und Rechtsprechung aufnimmt und auf Kommando
% in eine \BibTeX-Datenbank exportiert. Wer daran interessiert ist, kann sich gerne an mich
% wenden. Ich kann die Datenbank aber nur als |mdw|-Datei herausgeben, da ich einiges an Code darin
% verwendet habe, der mir nicht selbst geh�rt. Ich pers�nlich traue einer relationalen Datenbank
% meine Daten einfach lieber an als einer Textdatei. Aber das ist Geschmackssache. 
%
% \section{Zitieren von Rechtsprechung und Dokumenten}
% Nachdem diese Arbeiten erledigt sind, kann die Datenbank im Dokument verwendet werden. Die 
% Befehle zum Aufrufen der Zitate sind recht �hnlich zu den Standard-\LaTeX-Befehlen.
% \subsection{Standardzitat}
% \DescribeMacro{\rcite}
% Der wichtigste Befehl ist |\rcite| und h�rt auf das Kommando:
%\begin{quote}
%|\rcite[|\meta{Fundstelle}|]{|\meta{Kennung}|}|
%\end{quote}
%Mit Kennung ist dabei die Eintragskennung aus der \BibTeX-Datenbank gemeint. Einen 
%Hinweis auf S. 25 des Beispielurteils
%von oben k�nnte man also erzeugen durch den Aufruf:
%\begin{quote}
%|\rcite[S.~25]{aaa:dummy}|
%\end{quote}
%Das Ergebnis w�re:
%\begin{quote}
%\rcite[S.~25]{aaa:dummy}
%\end{quote}
% \subsection{Sonderformen}
% \DescribeMacro{\rfullcite}
% Der Befehl |\rfullcite| erstellt ein komplettes Zitat mit zahlreichen Detailangaben.
%\begin{quote}
%|\rfullcite[S.~25]{aaa:dummy}|
%\end{quote}
%Das Ergebnis w�re:
%\begin{quote}
%\rfullcite[S.~25]{aaa:dummy}
%\end{quote}
% \DescribeMacro{\rleancite}
% |\rleancite| ist gewisserma�en das Gegenst�ck dazu und erstellt ein schlankes Zitat. Sinn macht
% dies etwa dann, wenn normalerweise (s.u.) voll zitiert wird und man diese Regel in einem Fall
% unterbrechen m�chte. Beispiel:
%\begin{quote}
%|\rleancite[S.~25]{aaa:dummy}|
%\end{quote}
%Das Ergebnis w�re (da keine weiteren Optionen eingestellt sind) identisch mit einem Normalzitat:
%\begin{quote}
%\rleancite[S.~25]{aaa:dummy}
%\end{quote}
% \DescribeMacro{\rrepeatcite}
% Das Kommando |\rrepeatcite| ist f�r "`Wiederholungszitate"' vorgesehen, gemeint sind damit solche F�lle, in denen eine ganze Reihe von Urteilen des gleichen Gerichts hintereinander zitiert wird. 
% Der Name des Gerichts kann dann bei den Folgezitaten weggelassen werden. Man muss jedoch selbst darauf achten, dass das Ergebnis noch sinnvoll und lesbar ist. Sp�ter lie�e sich dieser Punkt u.U. noch automatisieren, das ist aber nicht trivial.
%\begin{quote}
%|\rcite[33]{aaa:dummy}; \rrepeatcite[55]{aaa:dummy}|
%\end{quote}
%Das Ergebnis sieht so aus:
%\begin{quote}
%\rcite[33]{aaa:dummy}; \rrepeatcite[55]{aaa:dummy}
%\end{quote}
% \DescribeMacro{\rshortcite}
% |\rshortcite| funktioniert �hnlich wie |\rrepeatcite| und erzwingt im Zitat die Kurzform der
% amtlichen Sammlung. 
%\begin{quote}
%|so schon der BGH (\rshortcite[S.~25]{aaa:dummy})|
%\end{quote}
%Resultat:
%\begin{quote}
%so schon der BGH (\rshortcite[S.~25]{aaa:dummy})
%\end{quote}
% M.E. ist diese Zitierweise nicht sehr hilfreich, man sieht es aber dann und wann.
% \DescribeMacro{\rnocite}
% |\rspnocite| erzeugt gar kein Zitat, sorgt aber daf�r, dass der Eintrag in das Verzeichnis 
% aufgenommen wird (allerdings ohne dass eine Seitenzahl daneben erscheint).
% \DescribeMacro{\rphantomcite}
% |\rphantomcite| erzeugt ein "`Phantom-Zitat"', also einen Eintrag, der im Rechtsprechungs-Verzeichnis mit Angabe einer Seite ("`zitiert auf S. \dots"') erscheint, aber kein Zitat. Sinnvoll k�nnte dies dann sein, wenn man ein Urteil allgemein bespricht, ohne sich auf eine konkrete Stelle zu beziehen (ob das guter Stil ist, ist freilich eine andere Frage). 
% Man beachte, wie sich dieses Phantomzitat auf die Seitenangabe oben im Verzeichnis auswirkt.
%\begin{quote}
%|\rphantomcite{bmf:st01:175}|
%\end{quote}
%\rphantomcite{bmf:st01:175}
%
% \section{Individuelles Anpassen der Zitierweise}
% Zahlreiche Eigenschaften des Paketes lassen sich durch den Aufruf von Optionen 
% konfigurieren. So sind die Zitate in den Standardeinstellungen minimal eingestellt: Wenn man
% schon man alles in der Datenbank hat, will man es ja auch ausdrucken. 
%
% \DescribeMacro{\rspsetup}
% Die Konfiguration geschieht �ber den Befehl |\rspsetup|, der �hnlich wie bei |jurabib|
% auf dem |keyval|-Paket basiert. Man kann also mehrere Optionen b�ndeln nach dem Muster
% \begin{verbatim}
%  ... showname={documents,documentslist} ...
% \end{verbatim}
% 
% \subsection{Ausf�hrlichkeit der Informationen}
% Eine Gruppe von Optionen steuert die "`Informationsf�lle"' in den Zitaten und in den Verzeichnissen. 
% Die Optionen sind dabei f�r alle Kommandos dieser Gruppe gleich: 
%\begin{description}
%	\item[all] Feld wird immer angezeigt (soweit vorhanden), ist zugleich default-Option
%	\item[never] Feld wird nie angezeigt
%	\item[documents] Feld wird in den Zitaten von Dokumenten angezeigt
%	\item[judgements] Feld wird in den Zitaten von Rechtsprechung angezeigt
%	\item[lists] Feld wird nur in den Verzeichnissen angezeigt
%	\item[documentslist] Feld wird nur im Dokumentenverzeichnis angezeigt
%	\item[judgementslist] Feld wird nur im Rechtsprechungsverzeichnis angezeigt      
%\end{description}
% \DescribeEnv{showname} steuert die Anzeige des Namens (\BibTeX-Feld |name|), was f�r Dokumente 
% sicher mehr Sinn macht als f�r Urteile.
%
% \DescribeEnv{showparties} steuert die Anzeige der Parteien (\BibTeX-Feld |parties|), f�r Dokumente
% kaum sinnvoll.
%
% \DescribeEnv{showsign} steuert die Anzeige des Aktenzeichens (\BibTeX-Feld |sign|).
%
% \DescribeEnv{showdate} steuert die Anzeige des Datums (\BibTeX-Feld |date|), ist f�r Dokumente
% ohnehin aktiviert.
%
% \DescribeEnv{showdecision} steuert die Anzeige des "`Entscheidungstyps"', also "`Urteil"', "`Beschluss"', "`BMF-Schreiben"' etc. (\BibTeX-Feld |decision|), ist f�r Dokumente per default aktiviert.
%
% \DescribeEnv{showadditional} zeigt, wenn m�glich, weitere Quellen an, also z.B. den |journal|-Eintrag, wenn die amtl. Sammlung zitiert wurde, sowie das Feld |additional|.
%
% \DescribeEnv{showcommented} steuert die Anzeige von "`Urteilsanmerkungen"' (\BibTeX-Feld |commented|).
%
% \subsection{Weitere Einstellungen f�r Zitate}
%
% \DescribeEnv{longofficial} Diese Einstellung erm�glicht die Zitierung mit der Langform der
% Amtlichen Sammlung. Die Optionen sind identisch mit denen der oben dargestellten
% |show|-Einstellungen. Per Default wird die Langform bei Rechtsprechung verwendet, nicht jedoch 
% bei Dokumenten. Der Befehl |\rshortcite| erzwingt unabh�ngig von dieser Einstellung die Kurzform. 
%
% \DescribeEnv{preferofficial} 
% Diese Option kennt nur die Einstellungen |all|, |documents|, |judgements| und |never|. Die
% Zitate und die Verzeichnisse werden also zwingend gleich behandelt. Die Option bewirkt, dass 
% bevorzugt die amtliche Sammlung zitiert wird, wenn sowohl die Sammlung als auch eine 
% Zeitschriftenfundstelle erfasst sind. Anderenfalls wird die Zeitschrift bevorzugt zitiert. 
% Default-Wert ist |all|. 
% Die Einstellung in preferofficial hat keine Auswirkung wenn entweder Daten aus einer amtlichen Sammlung f�r das konkrete Urteil nicht vorhanden sind oder im Urteil "`citeas=journal"' angegeben ist.
%
% \DescribeEnv{conceptmode} bewirkt die Ausgabe der Felder |note| und |annote| f�r den Ausdruck von Entw�rfen. Optionen sind |on| und |off|.
%
% \DescribeEnv{citationmode} Diese Option steuert die Trennung von Werk und (konkreter) Fundstelle. 
% Optionen sind |comma|, |colon|, |semicolon| und |brackets|. Beim Verwendung von |brackets| wird 
% die konkrete Seite in Klammern angegeben. 
%
% \DescribeEnv{citationfont} Diese steuert den Schriftschnitt, mit dem die konkrete Fundstelle ausgedruckt wird. Zur Verf�gung stehen die Parameter |slanted|, |italics|, |bold| und |normal|.
%
% \subsection{Gruppierung der Verzeichnisse}
% Die folgenden vier Optionen beeinflussen die "`Gliederungstiefe"' der Verzeichnisse. M�glich sind bis zu vier Ebenen. Die �bergeordnete Gruppierung nach "`documents"' und "`judgements"' l�sst sich dagegen nicht abschalten. Die Optionen sind jeweils: 
%\begin{description}
%	\item[all] alle Verzeichnisse werden nach diesem Kriterium gruppiert
%	\item[never] kein Verzeichnis wird danach gruppiert
%	\item[documents] nur das Dokumentenverzeichnis wird gruppiert
%	\item[judgements] nur das Rechtsprechungsverzeichnis wird gruppiert
%\end{description}
% \DescribeEnv{groupbystate} steuert die Gruppierung nach dem Staat (Feld |state|)
%
% \DescribeEnv{groupbyjurisdiction} steuert die Gruppierung nach dem Gerichtszweig (bzw. dem Typ der Institutionen, Feld |jurisdiction|)
%
% \DescribeEnv{groupbylevel} steuert die Gruppierung nach der Hierarchie der Gerichte bzw. Beh�rden (Feld |level|)
%
% \DescribeEnv{groupbycourt} erstellt eine eigene Gruppierung f�r jedes Gericht (Feld |court|)
%
% Achtung! Diese Gruppierungen k�nnen nichts an der von \BibTeX{} vorgegebenen Sortierung �ndern. Diese l�sst sich nur durch entsprechend kluge Einstellungen in |sortkeyg| beeinflussen. Normalerweise geht \BibTeX{} davon aus, dass nach allen vier Ebenen gruppiert wird. L�sst man eine dazwischen weg, ohne die Sortierung entsprechend anzupassen, wird das Verzeichnis sehr un�bersichtlich. 
% \subsection{Layout der Verzeichnisse}
% Mit den folgenden Optionen kann das Layout des Rechtsprechungs- und Dokumentenverzeichnisses angepasst werden:
%
% \DescribeEnv{listpages} Die Einstellung |listpages| steuert die horizontale Ausrichtung der Seitenzahl-Spalte der Verzeichnisse. M�gliche Einstellungen sind left, right und center.
%
% \DescribeEnv{pagestring} Die Einstellung |pagestring| steuert den "`Vorspann"' vor den einzelnen Eintr�gen in der Seitenzahl-Spalte. Ein m�glicher Eintrag w�re also:
% 
% |pagestring={zit. auf S.~}|
%
% \section{Besondere Funktionen f�r Aufs�tze}
% Mit den bisher gezeigten Optionen lassen sich die meisten Aufgaben bereits bewerkstelligen. 
% Die folgenden Funktionen erleichtern die Verwendung des Paketes zum Schreiben von Aufs�tzen, in
% denen kein Verzeichnis gew�nscht wird. Man kann dann die Zitate unterschiedlich ausf�hrlich
% gestalten und u.U. wegen der Details nach oben verweisen. 
%
% Die ersten Optionen steuern die automatische Ausgabe von "`Vollzitaten"' (wie bei |\rfullcite|). 
% Parameter sind jeweils:
%\begin{description}
%	\item[never] niemals automatische Vollzitate
%	\item[all] immer voll zitieren
%	\item[first] das erste Zitat ist voll, Wiederholungszitate sind schlank
%	\item[chapter] das erste Zitat eines jeden Kapitels ist voll, Wiederholungszitate sind schlank
%	\item[section] das erste Zitat eines jeden Kapitels ist voll, Wiederholungszitate sind schlank
%\end{description}
%
% \DescribeEnv{judgementcitefull} steuert die Erstellung von Vollzitaten f�r Rechtsprechung
%
% \DescribeEnv{documentcitefull} steuert die Erstellung von Vollzitaten f�r Dokumente
%
% Es wird dennoch i.d.R. angezeigt sein, beide gleich einzustellen, um den Leser nicht 
% unn�tig zu verwirren. 
%
% \DescribeEnv{rlookat}
% |rlookat| erm�glicht einen Verweis aus dem Wiederholungszitat auf die Fu�note oder (falls das Zitat im normalen Text war) auf die Seite des Vollzitats. Optionen sind auch hier |all|, |never|, |judgements| und |documents|. Die Option ist wirkungslos, wenn |documentcitefull| und |judgementcitefull| auf |all| oder |never| gestellt sind.
%
% \DescribeEnv{makelists}
% Diese Option steuert, ob das Rechtsprechungs- und / oder Dokumentenverzeichnis erstellt und angezeigt wird. Optionen sind wieder |all|, |never|, |judgements| und |documents|.
%
%
% Die folgenden zwei Optionen steuern den Inhalt eines |full|- oder |lean|-Zitats. 
% \DescribeEnv{fullcitecontent} Parameter sind |normal| (Voreinstellung), |full| (alle verf�gbaren Informationen) und |likelists| (Vollzitat enth�lt gleiche Infos wie das jeweilige Verzeichnis)
%
% \DescribeEnv{leancitecontent}
% Parameter sind |normal| (Voreinstellung), |minimum| (minimales Zitat) und |likeentry| (so formatieren wie ein normales Zitat; dies macht sinn, wenn wegen |judgementcitefull=all| nie ein 
% normales Zitat erscheint.)
%
%
%\section{Kompatibilit�t}
% Das Paket vertr�gt sich gut mit dem "`gro�en Bruder"' |jurabib|, kann aber auch ohne 
% ihn existieren. In den Standarddokumentklassen sollte es funktionieren, getestet wurde aber
% bisher nur punktuell. Auch |jura.cls| sollte an sich gehen, aber ich schreibe keine 
% Hausarbeit und habe es daher noch nicht ausprobiert. Sehr gut klappt auch die Zusammenarbeit
% mit |juraabbrev|, so kann man etwa die K�rzel wie BGHZ gleich ins Abk�rzungsverzeichnis
% aufnehmen lassen.
% Auch mit |juramisc| scheint es keine Probleme zu geben, allerdings �berschreibt |jurarsp| das von |jurabook| eingestellte Fu�noten-Layout. 
%
% \section{Ausblick}
% \subsection{ToDo-List}
%
%\begin{itemize}
%	\item Einstellung von useofficial durch entsprechenden Eintrag auf Gerichts- oder Urteilsebene in der Bib-Datenbank -- erledigt in Version 0.52
%	\item bessere Formatierungsm�glichkeiten f�r die Verzeichnisse
%	\item gemeinsame Macros f�r Verzeichniseintrag und Fussnote zwecks leichterer Wartung
% -- erledigt in Version 0.52
%	\item ibidem-Funktion (sehr problematisch, vielleicht �berhaupt nicht sinnvoll)
%	\item Setup per Datei 
% \item bessere Formatierung der "`Seitenzahlliste"'; Hyperref-Fkt.
% \item \TeX4ht-Unterst�tzung
% \item Abgleich des Layouts mit jurabib
% \item zus�tzliche cite-Befehle oder Optionen
% \item Sortierung bei Gerichten mit Umlauten falsch
% \item Sortierungsreihenfolge bei verschiedenstelligen Zahlen
% \item M�glichkeit, auch bei officials den "`courtstring"' mit zu zitieren
% \item Zitieren von Entscheidungen ohne Journal o.�, zB. unver�ffentlichte oder im Internet ver�ffentlichte Entscheidungen
% \item Aktenzeichen nicht fest in Klammern anzeigen
% \item Zitieren von EG-Richtlinien und Kommissions-Dokumenten
%\end{itemize}
%
% \subsection{Kontakt}
% |jurarsp| nimmt zwar einige Anleihen bei |jurabib| und anderen Paketen, wurde aber 
% in den wesentlichen Teilen unabh�ngig davon entwickelt. Die Abweichungen zu |jurabib|
% im Anforderungsprofil waren so gro�, dass es mir einfacher schien, das Paket neu zu 
% schreiben. An der |bst|-Datei mag die Herkunft noch am ehesten erkennbar sein. 
% Das Paket ist sicher noch nicht ausgereift und wird in der n�chsten Zeit noch erweitert und 
% verbessert werden. Wer Vorschl�ge dazu hat, kann sich gerne an mich wenden. 
% Gleiches gilt selbstverst�ndlich auch f�r Fehlerberichte. 
% Ich bin zu erreichen unter:
% \begin{quote}
% Lucas Wartenburger \texttt{<elwwa@gmx.net>}
% \end{quote}
%
% \StopEventually
% 
% \section{Die Implementierung}
% \changes{0.4}{old}{erste Version}
% \changes{0.5}{2004/08/21}{Dokumentation angef"ugt}
% \changes{0.52}{2004/09/04}{Dokumentation an hyperref angepasst}
% \begin{macro}{Dokumentation}
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\usepackage{german}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{jurarsp}
\usepackage{hyperref}
\hypersetup{pdftex,
pdftitle={Dokumentation jurarsp.sty},
pdfauthor={Lucas Wartenburger},
pdfsubject={LaTeX-package jurarsp},
pdfkeywords={TeX, LaTeX, jurarsp, jura, law}}
% \OnlyDescription     %nur Anleitung (ohne Index und History)
\CodelineIndex        %kein Index wenn auskommentiert
\EnableCrossrefs      %kein Index wenn auskommentiert
\RecordChanges        %keine History wenn auskommentiert
\begin{document}
\DocInput{jurarsp.dtx}
\end{document}
%</driver>
%    \end{macrocode}
% \end{macro}
% \subsection{Allgmeine Einstellungen}
% \begin{macro}{Header}
%    \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{jurarsp}[2006/03/04 v0.52]
\RequirePackage{ifthen}
\RequirePackage{keyval}
\RequirePackage{xspace}
\RequirePackage{calc}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Layout}
% \changes{0.52}{2005/05/15}{neu rsp@pagestring}
% \changes{0.52}{2005/05/15}{neu rsp@listpages}
% Anregungen von Ferdinand Grassmann
%    \begin{macrocode}
%\newcommand*{\rspleftcolumn}{\textwidth /3 *2}
%\newcommand*{\rsprightcolumn}{\textwidth-\rspleftcolumn-1.2cm-\parindent}
\newcommand*{\cite@datedelimiter}{v.}
\def\rcite@before{, } 
\def\rcite@after{}
\def\rsp@citefont{\relax}
\def\rsp@pkg@name{Rechtsprechungs- und Dokumentendatenbank}
\def\rsp@listpages{\relax}
\def\rsp@pagestring{zitiert auf S.~}
\newcommand*{\rsptitledocuments}{Verwendete amtliche Dokumente}
\newcommand*{\rsptitlejudgements}{Verwendete Rechtsprechung}
\newif\ifrsp@make@table\rsp@make@tabletrue 
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Tools}
% F�r die Zusammenstellung der Seitenzahlen und f�r die Speicherung der Querverweise
% werden eigene |namedef|-Varianten ben�tigt.
%    \begin{macrocode}
\def\rsp@namedef#1{\expandafter\edef\csname #1\endcsname}
\def\rsp@gnamedef#1{\expandafter\global\expandafter\edef\csname #1\endcsname}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Counter}
%    \begin{macrocode}
\newcounter{rspbeginpage}
\newcounter{rspendpage}
\newcounter{rspcitefull@d}
\newcounter{rspcitefull@j}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{allgemeine Optionen}
% allgemein gilt hier:
% \begin{itemize}
% \item d=default f�r Dokumentenzitate
% \item j=default f�r Rechtsprechungszitate
% \item ld=default f�r Dokumentenverzeichnis
% \item lj=default f�r Rechtsprechungsverzeichnis
% \item ohne Kennung: aktueller Eintrag
% \end{itemize}
% Dokument oder Urteil?
%    \begin{macrocode}
\newif\ifcite@is@document
%    \end{macrocode}
% Default f�r Verwendung der amtl. Sammlung
%    \begin{macrocode}
\newif\ifcite@preferofficial@j\cite@preferofficial@jtrue
\newif\ifcite@preferofficial@d\cite@preferofficial@dtrue
%    \end{macrocode}
% Verwendung der amtl. Sammlung im konkreten Eintrag
%    \begin{macrocode}
\newif\ifcite@useofficial
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Ausgabesteuerung}
% Verwendung der Langform der amtl. Sammlung
%    \begin{macrocode}
\newif\ifcite@longofficial@d\cite@longofficial@dfalse
\newif\ifcite@longofficial@j\cite@longofficial@jtrue
\newif\ifcite@longofficial@ld\cite@longofficial@ldfalse
\newif\ifcite@longofficial@lj\cite@longofficial@ljtrue
\newif\ifcite@longofficial
%    \end{macrocode}
% Wiederholungszitat (mit |\rrepeatcite|) ohne Gerichtsangabe
%    \begin{macrocode}
\newif\ifcite@repeated
%    \end{macrocode}
% Langform der Gerichtsbezeichnung?
%    \begin{macrocode}
\newif\ifcite@longcourt
%    \end{macrocode}
% Gerichtsbezeichnung unterdr�cken (insb. dann, wenn die Bezeichnung 
% schon im |decision|-Feld steht)
%    \begin{macrocode}
\newif\ifcite@nocourt
%    \end{macrocode}
% Konzept drucken
%    \begin{macrocode}
\newif\ifcite@concept\cite@conceptfalse
%    \end{macrocode}
% Urteilsanmerkungen anzeigen
%    \begin{macrocode}
\newif\ifcite@showcommented@d\cite@showcommented@dfalse
\newif\ifcite@showcommented@j\cite@showcommented@jfalse
\newif\ifcite@showcommented@ld\cite@showcommented@ldfalse
\newif\ifcite@showcommented@lj\cite@showcommented@ljfalse
\newif\ifcite@commented 
%    \end{macrocode}
% "`Titel"' des Urteils / Doks anzeigen
%    \begin{macrocode}
\newif\ifcite@showname@d\cite@showname@dfalse
\newif\ifcite@showname@j\cite@showname@jfalse
\newif\ifcite@showname@ld\cite@showname@ldfalse
\newif\ifcite@showname@lj\cite@showname@ljfalse
\newif\ifcite@name
%    \end{macrocode}
% Parteien anzeigen
%    \begin{macrocode}
\newif\ifcite@showparties@d\cite@showparties@dfalse
\newif\ifcite@showparties@j\cite@showparties@jfalse
\newif\ifcite@showparties@ld\cite@showparties@ldfalse
\newif\ifcite@showparties@lj\cite@showparties@ljfalse
\newif\ifcite@parties
%    \end{macrocode}
% Datum anzeigen
%    \begin{macrocode}
\newif\ifcite@showdate@d\cite@showdate@dtrue
\newif\ifcite@showdate@j\cite@showdate@jfalse
\newif\ifcite@showdate@ld\cite@showdate@ldtrue
\newif\ifcite@showdate@lj\cite@showdate@ljfalse
\newif\ifcite@date
%    \end{macrocode}
% Aktenzeichen anzeigen
%    \begin{macrocode}
\newif\ifcite@showsign@d\cite@showsign@dfalse
\newif\ifcite@showsign@j\cite@showsign@jfalse
\newif\ifcite@showsign@ld\cite@showsign@ldfalse
\newif\ifcite@showsign@lj\cite@showsign@ljfalse
\newif\ifcite@sign
%    \end{macrocode}
% Urteil / Beschluss anzeigen
%    \begin{macrocode}
\newif\ifcite@showdecision@d\cite@showdecision@dtrue
\newif\ifcite@showdecision@j\cite@showdecision@jfalse
\newif\ifcite@showdecision@ld\cite@showdecision@ldtrue
\newif\ifcite@showdecision@lj\cite@showdecision@ljfalse
\newif\ifcite@decision
%    \end{macrocode}
% erg�nzende Fundstellen anzeigen
%    \begin{macrocode}
\newif\ifcite@showadditional@d\cite@showadditional@dfalse
\newif\ifcite@showadditional@j\cite@showadditional@jfalse
\newif\ifcite@showadditional@ld\cite@showadditional@ldfalse
\newif\ifcite@showadditional@lj\cite@showadditional@ljfalse
\newif\ifcite@additional
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Fullciteoptions}
% automatische Vollzitate
%    \begin{macrocode}
\newif\ifrsp@firstcite@full@d\rsp@firstcite@full@dfalse
\newif\ifrsp@firstcite@full@j\rsp@firstcite@full@jfalse
\newif\ifrsp@all@full@d\rsp@all@full@dfalse
\newif\ifrsp@all@full@j\rsp@all@full@jfalse
%    \end{macrocode}
% Erstzitat oder Wiederholungszitat
%    \begin{macrocode}
\newif\ifrsp@firstcite
%    \end{macrocode}
% Verweise nach oben (auf Fn. oder Seite)
%    \begin{macrocode}
\newif\ifrsp@lookat@j\rsp@lookat@jfalse
\newif\ifrsp@lookat@d\rsp@lookat@dfalse
\newif\ifrsp@lookat@use
%    \end{macrocode}
% Verzeichnisse anzeigen?
%    \begin{macrocode}
\newif\ifrsp@showlist@d\rsp@showlist@dtrue
\newif\ifrsp@showlist@j\rsp@showlist@jtrue
\newif\ifrsp@showlist
%    \end{macrocode}
% Inhalt eines Vollzitats
%    \begin{macrocode}
\def\rcite@fulloptions{\cite@signtrue\cite@namefalse%
		\cite@partiestrue\cite@datetrue%
    \cite@decisiontrue\cite@commentedfalse\cite@additionaltrue}  
%    \end{macrocode}
% Inhalt eines schlanken Zitats
%    \begin{macrocode}
\protect\def\rcite@leanoptions{\cite@signfalse%
		\cite@namefalse\cite@partiesfalse%
    \cite@commentedfalse\cite@additionalfalse%
    \ifcite@is@document\else\cite@decisionfalse\cite@datefalse\fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Gruppierungssteuerung}
% Gruppierungsebenen der Verzeichnisse
%    \begin{macrocode}
\newif\ifgroup@court@d\group@court@dfalse   
\newif\ifgroup@court@j\group@court@jfalse
\newif\ifgroup@level@d\group@level@dfalse   
\newif\ifgroup@level@j\group@level@jfalse
\newif\ifgroup@jurisdiction@d\group@jurisdiction@dfalse
\newif\ifgroup@jurisdiction@j\group@jurisdiction@jfalse
\newif\ifgroup@state@d\group@state@dfalse
\newif\ifgroup@state@j\group@state@jfalse
%    \end{macrocode}
% \end{macro}
% \begin{macro}{hyperref}
% \changes{0.52}{2004/09/04}{Unterst�tzung f�r hyperref}
% Idee von jurabib �bernommen
%    \begin{macrocode}
\providecommand\hyper@natlinkstart[1]{}%
\providecommand\hyper@natlinkend{}%
\providecommand\hyper@natanchorstart[1]{}%
\providecommand\hyper@natanchorend{}%
\def\hyper@rsplinkstart{\hyper@natlinkstart}
\def\hyper@rsplinkend{\hyper@natlinkend}
\def\hyper@rspanchorstart{\hyper@natanchorstart}
\def\hyper@rspanchorend{\hyper@natanchorend}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makefntext}
% Dieses if zeigt an, ob man sich gerade in einer Fussnote befindet (f�r lookat-Zwecke). 
% Das Konzept ist von |jurabib| abgeschaut.
%    \begin{macrocode}
\newif\ifrsp@fn\rsp@fnfalse
%    \end{macrocode}
% Die neue Definition von |@makefntext| stellt das |ifrsp@fn| und ein sch�neres 
% Layout gibt's gratis dazu. Vielen Dank an Matthias Eckermann, der diesen Code
% spendiert hat.
% \changes{0.52}{2004/10/06}{thinspace nach FN-mark eingef�gt}
%    \begin{macrocode}
\long\def\@makefntext#1{% 
  \rsp@fntrue%
  \@setpar{\@@par
  \@tempdima = \hsize
  \advance\@tempdima-15pt
  \parshape \@ne 15pt \@tempdima}%
  \par
  \parindent 1em\noindent
  \hbox to \z@{\hss\@makefnmark\thinspace}#1}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Debug}
% Auch dieser Code wurde weitgehend von |jurabib| kopiert.
%    \begin{macrocode}
\newif\ifrsp@debug\rsp@debugfalse
\let\rsp@typeout\typeout
\let\rsp@package@warning\PackageWarning
\let\rsp@package@warningNoLine\PackageWarningNoLine
\def\rsp@info#1{\PackageInfo{\rsp@pkg@name}{#1}}%
\newcommand*{\rspsilent}{%
  \rsp@info{*** Silent Mode ON ***}%
  \let\rsp@package@warning\@gobbletwo
  \let\rsp@package@warningNoLine\@gobbletwo
  \let\rsp@typeout\@gobble%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Tokens}
% Aufteilung der von \BibTeX �bergebenen Felder 
% Dieser Code wurde ebenfalls von |jurabib| inspiriert.
%
% Aufteilung von sechs Tokens 
%    \begin{macrocode}
\newcommand*{\rsp@firstofsix}   [6]{#1}
\newcommand*{\rsp@secondofsix}  [6]{#2}
\newcommand*{\rsp@thirdofsix}   [6]{#3}
\newcommand*{\rsp@fourthofsix}  [6]{#4}
\newcommand*{\rsp@fifthofsix}   [6]{#5}
\newcommand*{\rsp@sixthofsix}   [6]{#6}
%    \end{macrocode}
% von f�nf Tokens
%    \begin{macrocode}
\newcommand*{\rsp@firstoffive}  [5]{#1}
\newcommand*{\rsp@secondoffive} [5]{#2}
\newcommand*{\rsp@thirdoffive}  [5]{#3}
\newcommand*{\rsp@fourthoffive} [5]{#4}
\newcommand*{\rsp@fifthoffive}  [5]{#5}
%    \end{macrocode}
% von vier Tokens
%    \begin{macrocode}
\newcommand*{\rsp@firstoffour}  [4]{#1}
\newcommand*{\rsp@secondoffour} [4]{#2}
\newcommand*{\rsp@thirdoffour}  [4]{#3}
\newcommand*{\rsp@fourthoffour} [4]{#4}
%    \end{macrocode}
% von drei Tokens
%    \begin{macrocode}
\newcommand*{\rsp@firstofthree}  [3]{#1}
\newcommand*{\rsp@secondofthree} [3]{#2}
\newcommand*{\rsp@thirdofthree}  [3]{#3}
%    \end{macrocode}
% von zwei Tokens
%    \begin{macrocode}
\newcommand*{\rsp@firstoftwo}  [2]{#1}
\newcommand*{\rsp@secondoftwo} [2]{#2}
%    \end{macrocode}
% "`strippen"' einer �berfl�ssigen Klammer
%    \begin{macrocode}
\newcommand*{\rsp@firstofone}  [1]{#1}
%    \end{macrocode}
% Aufteilung der \BibTeX-Infos in einzelne logische Gruppen ("`Zeilen"')
%    \begin{macrocode}
\def\rsp@splitlines#1{%
 \protected@edef\rsp@general{\expandafter\rsp@firstofsix#1}%
 \protected@edef\rsp@court{\expandafter\rsp@secondofsix#1}%
 \protected@edef\rsp@decision{\expandafter\rsp@thirdofsix#1}%
 \protected@edef\rsp@official{\expandafter\rsp@fourthofsix#1}%
 \protected@edef\rsp@journal{\expandafter\rsp@fifthofsix#1}%
 \protected@edef\rsp@notes{\expandafter\rsp@sixthofsix#1}%
}
%    \end{macrocode}
% Aufteilung der 1. Zeile (allg. Angaben)
%    \begin{macrocode}
\def\rsp@@type{\expandafter\rsp@firstofsix\rsp@general}
\def\rsp@@state{\expandafter\rsp@secondofsix\rsp@general}
\def\rsp@@jurisdiction{\expandafter\rsp@thirdofsix\rsp@general}
\def\rsp@@level{\expandafter\rsp@fourthofsix\rsp@general}
\def\rsp@@place{\expandafter\rsp@fifthofsix\rsp@general}
\def\rsp@@court{\expandafter\rsp@sixthofsix\rsp@general}
%    \end{macrocode}
% Aufteilung der 2. Zeile (Angaben zum Gericht)
%    \begin{macrocode}
\def\rsp@@short{\expandafter\rsp@firstofthree\rsp@court}
\def\rsp@@special{\expandafter\rsp@secondofthree\rsp@court}
\def\rsp@@chamber{\expandafter\rsp@thirdofthree\rsp@court}
%    \end{macrocode}
% Aufteilung der 3. Zeile (Angaben zum Urteil)
%    \begin{macrocode}
\def\rsp@@date{\expandafter\rsp@firstoffive\rsp@decision}
\def\rsp@@sign{\expandafter\rsp@secondoffive\rsp@decision}
\def\rsp@@parties{\expandafter\rsp@thirdoffive\rsp@decision}
\def\rsp@@name{\expandafter\rsp@fourthoffive\rsp@decision}
\def\rsp@@decision{\expandafter\rsp@fifthoffive\rsp@decision}
%    \end{macrocode}
% Aufteilung der 4. Zeile (Funstelle in der amtl. Sammlung)
%    \begin{macrocode}
\def\rsp@@offlong{\expandafter\rsp@firstofthree\rsp@official}
\def\rsp@@offshort{\expandafter\rsp@secondofthree\rsp@official}
\def\rsp@@offpages{\expandafter\rsp@thirdofthree\rsp@official}
%    \end{macrocode}
% Aufteilung der 5. Zeile (Funstelle in Zeitschriften)
%    \begin{macrocode}
\def\rsp@@jname{\expandafter\rsp@firstofthree\rsp@journal}
\def\rsp@@jpages{\expandafter\rsp@secondofthree\rsp@journal}
\def\rsp@@additional{\expandafter\rsp@thirdofthree\rsp@journal}
%    \end{macrocode}
% Aufteilung der 6. Zeile (Anmerkungen)
% \changes{0.52}{2005/11/01}{Anpassung an neues "`citeas"'-Feld}
%    \begin{macrocode}
\def\rsp@@note{\expandafter\rsp@firstoffour\rsp@notes}
\def\rsp@@annote{\expandafter\rsp@secondoffour\rsp@notes}
\def\rsp@@commented{\expandafter\rsp@thirdoffour\rsp@notes}
\def\rsp@@citeas{\expandafter\rsp@fourthoffour\rsp@notes}
%    \end{macrocode}
% \end{macro}
% \subsection{Setup}
% \begin{macro}{rspsetup}
% Der folgende Code bearbeitet die einzelnen Optionen. 
% Auch hier stand unverkennbar |jurabib| Pate.
%    \begin{macrocode}
\def\rspsetup{\setkeys{rsp}}
\let\rsp@origExecuteOptions\ExecuteOptions
\let\ExecuteOptions\rspsetup
\def\ProcessOptionsWithKV#1{%
  \let\@tempa\@empty
  \@for\CurrentOption:=\@classoptionslist\do{%
  \@ifundefined{KV@#1@\CurrentOption}%
  {}{\edef\@tempa{\@tempa,\CurrentOption,}}}%
  \edef\@tempa{%
  \noexpand\setkeys{#1}{\@tempa\@ptionlist{\@currname.\@currext}}}%
  \@tempa%
  \AtEndOfPackage{\let\@unprocessedoptions\relax}%
}%
\ProcessOptionsWithKV{rsp}%
\let\ExecuteOptions\rsp@origExecuteOptions
\newif\ifrsp@kv@recognized\rsp@kv@recognizedfalse
\newcommand*{\rsp@kv@warning}[2]{%
  \rsp@package@warningNoLine{\rsp@pkg@name}{%
   unrecognized value `#1'\MessageBreak
   for key `#2' ignored}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{citationmode}
% Trennung zwischen Zitat und konkreter Fundstelle
%    \begin{macrocode}
\define@key{rsp}{citationmode}[brackets]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{colon}}{%
    \def\rcite@before{: }
    \def\rcite@after{}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{comma}}{%
    \def\rcite@before{, }
    \def\rcite@after{}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{semicolon}}{%
    \def\rcite@before{; }
    \def\rcite@after{}    
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{brackets}}{%
    \def\rcite@before{ {\rsp@citefont(}}
    \def\rcite@after{{\rsp@citefont)}}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{citationmode}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{citationfont}
% Formatierung der Fundstelle
%    \begin{macrocode}
\define@key{rsp}{citationfont}[slanted]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{normal}}{%
	  \def\rsp@citefont{\relax}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{italics}}{%
	  \def\rsp@citefont{\itshape}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{slanted}}{%
	  \def\rsp@citefont{\slshape}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{bold}}{%
	  \def\rsp@citefont{\bfseries}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{citationfont}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{preferofficial}
% Amtl. Sammlung oder Zeitschrift bevorzugen?
%    \begin{macrocode}
\define@key{rsp}{preferofficial}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@preferofficial@jtrue
    \cite@preferofficial@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@preferofficial@jtrue
    \cite@preferofficial@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@preferofficial@jfalse
    \cite@preferofficial@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \cite@preferofficial@jfalse
    \cite@preferofficial@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{preferofficial}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{conceptmode}
% Konzept ausdrucken?
%    \begin{macrocode}
\define@key{rsp}{conceptmode}[on]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{on}}{%
    \cite@concepttrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{off}}{%
    \cite@conceptfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{conceptmode}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{fullcitecontent}
% Inhalt eines Vollzitats
%    \begin{macrocode}
\define@key{rsp}{fullcitecontent}[full]{% 
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
%    \end{macrocode}
% alles so lassen wie oben voreingestellt
%    \begin{macrocode}
  \ifthenelse{\equal{\rsp@val}{normal}}{%
    \relax
    \rsp@kv@recognizedtrue
  }{\relax}%
%    \end{macrocode}
% |\rcite@fulloptions| statisch einstellen
%    \begin{macrocode}
  \ifthenelse{\equal{\rsp@val}{full}}{%
    \def\rcite@fulloptions{\cite@signtrue\cite@nametrue%
      \cite@partiestrue\cite@datetrue%
      \cite@decisiontrue\cite@commentedtrue\cite@additionaltrue}
    \rsp@kv@recognizedtrue
  }{\relax}%
%    \end{macrocode}
% |\rcite@fulloptions| dynamisch einstellen
%    \begin{macrocode}
  \ifthenelse{\equal{\rsp@val}{likelist}}{%
    \protect\def\rcite@fulloptions{\rsp@makeentry@defaults}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{fullcitecontent}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{leancitecontent}
% Inhalt eines Schlankzitats
%    \begin{macrocode}
\define@key{rsp}{leancitecontent}[normal]{% 
 \@for\rsp@val:=#1\do{%
%    \end{macrocode}
% alles so lassen wie oben voreingestellt
% zeigt bei docs auch decision und datum an
%    \begin{macrocode}
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{normal}}{% 
    \rsp@kv@recognizedtrue
  }{\relax}%
%    \end{macrocode}
% |\rcite@leanoptions| statisch einstellen
%    \begin{macrocode}
  \ifthenelse{\equal{\rsp@val}{minimum}}{%
    \def\rcite@leanoptions{\cite@signfalse\cite@namefalse%
     \cite@partiesfalse\cite@commentedfalse\cite@additionalfalse%
     \cite@decisionfalse\cite@datefalse}
    \rsp@kv@recognizedtrue
  }{\relax}%
%    \end{macrocode}
% |\rcite@leanoptions| dynamisch einstellen, macht nur Sinn, wenn die Normalzitierweise wegen fullcite=all nicht benutzt wird
%    \begin{macrocode}
  \ifthenelse{\equal{\rsp@val}{likeentry}}{% 
    \protect\def\rcite@leanoptions{\rsp@makecite@defaults}
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{leancitecontent}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{documentcitefull}
% automatische Vollzitate von Dokumenten
%    \begin{macrocode}
\define@key{rsp}{documentcitefull}[first]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@firstcite@full@dfalse
    \rsp@all@full@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{first}}{%
    \rsp@firstcite@full@dtrue
    \rsp@all@full@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{chapter}}{%
    \@ifundefined{chapter}{%
     \ClassError{\rsp@pkg@name}{%
      Sorry, `documentcitefull=chapter' makes no sense for\MessageBreak
      classes without \string\chapter%
     }{Try `documentcitefull=section' for an article class}}{}%
%    \end{macrocode}
% sch�n w�re |\setkeys{rsp}{documentcitefull=first}|, aber das funktioniert irgendwie nicht
%    \begin{macrocode}
    \rsp@firstcite@full@dtrue%
    \rsp@all@full@dfalse%
    \@addtoreset{rspcitefull@d}{chapter}%
    \def\rsp@resetfor@d{chapter}%
    \def\rsp@reset@look@label@for@d{\thechapter}% 
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{section}}{%
    \rsp@firstcite@full@dtrue%
    \rsp@all@full@dfalse%
    \@addtoreset{rspcitefull@d}{section}%
    \def\rsp@resetfor@d{section}%
    \def\rsp@reset@look@label@for@d{\thesection}% 
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \rsp@firstcite@full@dfalse
    \rsp@all@full@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{documentcitefull}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{judgementcitefull}
% automatische Vollzitate von Urteilen
%    \begin{macrocode}
\define@key{rsp}{judgementcitefull}[first]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@firstcite@full@jfalse
    \rsp@all@full@jfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{first}}{%
    \rsp@firstcite@full@jtrue
    \rsp@all@full@jfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{chapter}}{%
    \@ifundefined{chapter}{%
     \ClassError{\rsp@pkg@name}{%
      Sorry, `documentcitefull=chapter' makes no sense for\MessageBreak
      classes without \string\chapter%
     }{Try `documentcitefull=section' for an article class}}{}%
%    \end{macrocode}
% sch�n w�re |\setkeys{rsp}{judgementcitefull=first}|, aber das funktioniert irgendwie nicht
%    \begin{macrocode}
    \rsp@firstcite@full@jtrue
    \rsp@all@full@jfalse
    \@addtoreset{rspcitefull@j}{chapter}%
    \def\rsp@resetfor@j{chapter}%
    \def\rsp@reset@look@label@for@j{\thechapter}% 
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{section}}{%
    \rsp@firstcite@full@jtrue
    \rsp@all@full@jfalse
    \@addtoreset{rspcitefull@j}{section}%
    \def\rsp@resetfor@j{section}%
    \def\rsp@reset@look@label@for@j{\thesection}% 
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \rsp@firstcite@full@jfalse
    \rsp@all@full@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{judgementcitefull}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{makelists}
%  Verzeichnisse erstellen? 
%    \begin{macrocode}
\define@key{rsp}{makelists}[never]{%
\rsp@showlist@jfalse
\rsp@showlist@dfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \rsp@showlist@jtrue
    \rsp@showlist@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documents}}{%
		\rsp@showlist@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \rsp@showlist@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{makelists}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{listpages}
% Ausrichtung der Seitenzahl-Spalte in den Listen
% \changes{0.52}{2005/05/15}{neue Parameter}
% Anregung von Ferdinand Grassmann
%    \begin{macrocode}
\define@key{rsp}{listpages}[right]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{right}}{%
    \let\rsp@listpages=\raggedleft
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{left}}{%
    \let\rsp@listpages=\raggedright
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{center}}{%
		\let\rsp@listpages=\centering
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{listpages}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{pagestring}
% konfiguriert die Anzeige der Seitenzahlen
% (zitiert auf S. ...)
% Anregung von Ferdinand Grassmann
% \changes{0.52}{2005/05/15}{neue Funktion}
%    \begin{macrocode}
\define@key{rsp}{pagestring}{%
 \@for\rsp@val:=#1\do{%
  \ifthenelse{\equal{\rsp@val}{}}{%
   \rsp@kv@warning{empty value}{pagestring}}{%
   \let\rsp@pagestring=\rsp@val}%
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rlookat}
% In Folgezitaten nach oben verweisen?
%    \begin{macrocode}
\define@key{rsp}{rlookat}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@lookat@jfalse
    \rsp@lookat@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \rsp@lookat@jtrue
    \rsp@lookat@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \rsp@lookat@jfalse
    \rsp@lookat@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \rsp@lookat@jtrue
    \rsp@lookat@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{rlookat}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showname}
% Name anzeigen?
%    \begin{macrocode}
\define@key{rsp}{showname}[all]{%
    \cite@showname@jfalse
    \cite@showname@dfalse
    \cite@showname@ljfalse
    \cite@showname@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showname@jtrue
    \cite@showname@dtrue
    \cite@showname@ljtrue
    \cite@showname@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showname@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showname@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showname@ljtrue
    \cite@showname@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showname@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showname@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showname}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showparties}
% Parteien anzeigen?
%    \begin{macrocode}
\define@key{rsp}{showparties}[{judgements,judgementslist}]{%
    \cite@showparties@jfalse
    \cite@showparties@dfalse
    \cite@showparties@ljfalse
    \cite@showparties@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showparties@jtrue
    \cite@showparties@dtrue
    \cite@showparties@ljtrue
    \cite@showparties@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showparties@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showparties@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showparties@ljtrue
    \cite@showparties@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showparties@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showparties@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showparties}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showdate}
% Datum anzeigen?
%    \begin{macrocode}    
\define@key{rsp}{showdate}[all]{%
    \cite@showdate@jfalse
    \cite@showdate@dfalse
    \cite@showdate@ljfalse
    \cite@showdate@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showdate@jtrue
    \cite@showdate@dtrue
    \cite@showdate@ljtrue
    \cite@showdate@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showdate@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showdate@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showdate@ljtrue
    \cite@showdate@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showdate@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showdate@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showdate}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showdecision}
% Entscheidungstyp anzeigen?
%    \begin{macrocode}
\define@key{rsp}{showdecision}[all]{%
    \cite@showdecision@jfalse
    \cite@showdecision@dfalse
    \cite@showdecision@ljfalse
    \cite@showdecision@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showdecision@jtrue
    \cite@showdecision@dtrue
    \cite@showdecision@ljtrue
    \cite@showdecision@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showdecision@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showdecision@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showdecision@ljtrue
    \cite@showdecision@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showdecision@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showdecision@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showdecision}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showsign}
% Aktenzeichen anzeigen?
%    \begin{macrocode}
\define@key{rsp}{showsign}[all]{%
    \cite@showsign@jfalse
    \cite@showsign@dfalse
    \cite@showsign@ljfalse
    \cite@showsign@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showsign@jtrue
    \cite@showsign@dtrue
    \cite@showsign@ljtrue
    \cite@showsign@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showsign@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showsign@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showsign@ljtrue
    \cite@showsign@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showsign@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showsign@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showsign}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showcommented}
% Urteilsanmerkungen anzeigen?
%    \begin{macrocode}
\define@key{rsp}{showcommented}[all]{%
    \cite@showcommented@jfalse
    \cite@showcommented@dfalse
    \cite@showcommented@ljfalse
    \cite@showcommented@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showcommented@jtrue
    \cite@showcommented@dtrue
    \cite@showcommented@ljtrue
    \cite@showcommented@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showcommented@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showcommented@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showcommented@ljtrue
    \cite@showcommented@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showcommented@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showcommented@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showcommented}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{showadditional}
% erg�nzende Fundstellen anzeigen?
%    \begin{macrocode} 
\define@key{rsp}{showadditional}[all]{%
    \cite@showadditional@jfalse
    \cite@showadditional@dfalse
    \cite@showadditional@ljfalse
    \cite@showadditional@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@showadditional@jtrue
    \cite@showadditional@dtrue
    \cite@showadditional@ljtrue
    \cite@showadditional@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@showadditional@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@showadditional@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@showadditional@ljtrue
    \cite@showadditional@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@showadditional@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@showadditional@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{showadditional}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{longofficial}
% Lanform der amtl. Sammlung anzeigen?
%    \begin{macrocode}
\define@key{rsp}{longofficial}[all]{%
    \cite@longofficial@jfalse
    \cite@longofficial@dfalse
    \cite@longofficial@ljfalse
    \cite@longofficial@ldfalse
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \cite@longofficial@jtrue
    \cite@longofficial@dtrue
    \cite@longofficial@ljtrue
    \cite@longofficial@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \cite@longofficial@jtrue
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \cite@longofficial@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{lists}}{%
    \cite@longofficial@ljtrue
    \cite@longofficial@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{documentslist}}{%
    \cite@longofficial@ldtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgementslist}}{%
    \cite@longofficial@ljtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{longofficial}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{groupbystate}
% Verzeichnis nach Staaten gruppieren?
%    \begin{macrocode}
\define@key{rsp}{groupbystate}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \group@state@jtrue
    \group@state@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \group@state@jtrue
    \group@state@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \group@state@jfalse
    \group@state@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \group@state@jfalse
    \group@state@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{groupbystate}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{groupbyjurisdiction}
% Verzeichnis nach Gerichtszweigen gruppieren?
%    \begin{macrocode}
\define@key{rsp}{groupbyjurisdiction}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \group@jurisdiction@jtrue
    \group@jurisdiction@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \group@jurisdiction@jtrue
    \group@jurisdiction@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \group@jurisdiction@jfalse
    \group@jurisdiction@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \group@jurisdiction@jfalse
    \group@jurisdiction@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{groupbyjurisdiction}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{groupbylevel}
% Verzeichnis nach Hierarchie gruppieren?
%    \begin{macrocode}
\define@key{rsp}{groupbylevel}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \group@level@jtrue
    \group@level@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \group@level@jtrue
    \group@level@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \group@level@jfalse
    \group@level@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \group@level@jfalse
    \group@level@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{groupbylevel}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{groupbycourt}
% Verzeichnis nach einzelnen Gerichten / Beh�rden gruppieren?
%    \begin{macrocode}
\define@key{rsp}{groupbycourt}[all]{%
 \@for\rsp@val:=#1\do{%
  \rsp@kv@recognizedfalse
  \ifthenelse{\equal{\rsp@val}{all}}{%
    \group@court@jtrue
    \group@court@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{judgements}}{%
    \group@court@jtrue
    \group@court@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%  
  \ifthenelse{\equal{\rsp@val}{documents}}{%
    \group@court@jfalse
    \group@court@dtrue
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifthenelse{\equal{\rsp@val}{never}}{%
    \group@court@jfalse
    \group@court@dfalse
    \rsp@kv@recognizedtrue
  }{\relax}%
  \ifrsp@kv@recognized\else\rsp@kv@warning{\rsp@val}{groupbycourt}\fi
 }%
}%
%    \end{macrocode}
% \end{macro}
% \subsection{Erstellung der Verzeichnisse}
%Verarbeitung der Daten aus der rsp.bbl-Datei (\BibTeX-Output) 
%Output erscheint im Dokument bei |\rspstyle|
%
% \begin{macro}{thersplist}
%Liste der verwendeten Rechtsprechung (Header / Footer)
% \changes{0.52}{2004/09/24}{neue Spaltenberechnung}
%    \begin{macrocode}
\newenvironment{thersplist}%
{\ifthenelse{\boolean{rsp@showlist@j}\or\boolean{rsp@showlist@d}}{%
	 \begingroup
   \ifrsp@debug \ifrsp@fn Fussnote \else keine Fussnote \fi \fi%
   \ifrsp@make@table%
  		\newdimen\leftsize
			\newdimen\middistance
			\newdimen\rightsize
			\newdimen\interdistance
			\leftskip=0pt%
			\rightskip=0pt%
			\middistance=1pc%
			\interdistance=.5ex%
			\leftsize=.66\hsize
			\rightsize=\hsize
			\advance\rightsize by-\leftsize
			\advance\rightsize by-\leftskip
			\advance\rightsize by-\middistance
			\advance\rightsize by-\rightskip
   \else%
       \begin{description}\sloppy%
   \fi%
  }%
{}}%
{\ifthenelse{\boolean{rsp@showlist@j}\or\boolean{rsp@showlist@d}}{%
  \ifrsp@make@table\bigskip
      \else\def\@noitemerr{\@latex@warning{Empty `rsplist' environment}}
      \end{description}\fi
  \endgroup
  }%
{}}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rspitem}
% Die von \BibTeX erzeugte Zeile |\rspitem| in der Datei |.rsp.bbl| erzeugt 
% eine Eintragung in das Verzeichnis 
% der zitierten Rechtssprechung sowie einen Aufruf |\rspcite| in der Datei |.rsp.aux|
% Dieser erzeugt dann die Makros f�r die einzelnen Zitate.
%    \begin{macrocode}
\def\rspitem{\@ifnextchar[\@lrspitem\@rspitem}
%    \end{macrocode}
% Da \BibTeX{} immer Eintr�ge der Form
%\begin{quote}
%	|\rspitem[|\meta{Daten}|]{|\meta{K�rzel}|}|
%\end{quote}
% erzeugt, wird |\@rspitem| derzeit nicht verwendet. 
%    \begin{macrocode}
\def\@rspitem#1{\item\if@filesw \immediate\write\@auxout
       {\string\rspcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
%    \end{macrocode}
% |\@lrspitem| macht die eigentliche Arbeit
% Argumente: 
%\begin{description}
%	\item[1] Inhalt der Zitatdaten aus Bibtex
%	\item[2] Zitatk�rzel
%\end{description}
%    \begin{macrocode}
\def\@lrspitem[#1]#2{%
 \if@filesw
%    \end{macrocode}
% die Daten werden in Zeilen zerlegt und anschlie�end ein Eintrag in der Liste erstellt
%    \begin{macrocode}
  {\def\rsp@tempa{#1}% Daten
   \def\rsp@tempb{#2}% K�rzel
   \rsp@splitlines{\rsp@tempa}
   \rsp@makeentry{\rsp@tempb}{\rsp@tempa}
%    \end{macrocode}
% |\rspcite|-Kommando in rsp.aux eintragen (mit Inhalt von |\rsp@tempb|)
%\begin{quote}
%	|\rspcite{|\meta{K�rzel}|}{|\meta{Daten}|}|
%\end{quote}
%    \begin{macrocode}
   \let\protect\noexpand\immediate
     \write\@rspaux{\string\rspcite{#2}{#1}}}\fi\ignorespaces}
%     \write\@rspaux{\string\rspcite{\rsp@tempb}{\rsp@tempa}}}\fi\ignorespaces}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@makeentry}
% rsp@makeentry formatiert den Eintrag im Verzeichnis. Argumente: 
%\begin{description}
%	\item[1] Kuerzel
%	\item[2] Daten
%\end{description}
%    \begin{macrocode}
\DeclareRobustCommand{\rsp@makeentry}[2]{%
%    \end{macrocode}
% feststellen, ob das jeweilige Verzeichnis �berhaupt angezeigt werden soll
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@@type}{document}}%
  {\cite@is@documenttrue\ifrsp@showlist@d
   \rsp@showlisttrue\else\rsp@showlistfalse\fi}%
  {\cite@is@documentfalse\ifrsp@showlist@j
   \rsp@showlisttrue\else\rsp@showlistfalse\fi}%
\ifrsp@showlist%
%    \end{macrocode}
% Wenn ja: Gruppierungsebenen pr�fen
%
% zun�chst f�r Dokumente:
%    \begin{macrocode}
 \ifcite@is@document%
%    \end{macrocode}
% |\rsp@title@type|: �berschrift der obersten Gruppierungsebene (Rechtsprechung oder Dokumente)
%    \begin{macrocode}
   \def\rsp@title@type{\rsptitledocuments}
%    \end{macrocode}
% zweite Ebene: Gruppierung nach Staat, wenn anderer Staat oder Typ als bei letzten Eintrag
%    \begin{macrocode}
   \ifgroup@state@d%
    \ifthenelse%
     {\equal{\rsp@@state}{\rsp@@laststate}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@state{}}%gleicher staat
   	 {\def\rsp@title@state{\rsp@@state}}%neu
   \else%
    \def\rsp@title@state{}%
   \fi%
%    \end{macrocode}
% dritte Ebene: Gruppierung nach Zweig, wenn anderer Staat oder Typ als bei letzten Eintrag
%    \begin{macrocode}
   \ifgroup@jurisdiction@d%
    \ifthenelse%
     {\equal{\rsp@@jurisdiction}{\rsp@@lastjurisdiction}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@jurisdiction{}}%gleiche jurisdiction
   	 {\def\rsp@title@jurisdiction{\rsp@@jurisdiction}}%neu
   \else%
    \def\rsp@title@jurisdiction{}%
   \fi%
%    \end{macrocode}
% vierte Ebene: Gruppierung nach Level, wenn neu 
%    \begin{macrocode}
   \ifgroup@level@d%
    \ifthenelse%
     {\equal{\rsp@@level}{\rsp@@lastlevel}%
      \and\equal{\rsp@title@jurisdiction}{}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@level{}}%gleiches level
   	 {\def\rsp@title@level{\rsp@@level}}%neu
   \else%
    \def\rsp@title@level{}%
   \fi%
%    \end{macrocode}
% f�nfte Ebene: Gruppierung nach Gericht, wenn neu 
%    \begin{macrocode}
   \ifgroup@court@d%
    \ifthenelse%
     {\equal{\rsp@@court}{\rsp@@lastcourt}%
      \and\equal{\rsp@title@level}{}%      
      \and\equal{\rsp@title@jurisdiction}{}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@court{}}%gleiches gericht
   	 {\def\rsp@title@court{\rsp@@court}}%neu
   \else%
    \def\rsp@title@court{}%
   \fi%
  \else%
%    \end{macrocode}
% Gruppierung f�r Rechtsprechungsverzeichnis 
%    \begin{macrocode}
   \def\rsp@title@type{\rsptitlejudgements}
   \ifgroup@state@j%
    \ifthenelse%
     {\equal{\rsp@@state}{\rsp@@laststate}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@state{}}%gleicher staat
   	 {\def\rsp@title@state{\rsp@@state}}%neu
   \else%
    \def\rsp@title@state{}%
   \fi%
   \ifgroup@jurisdiction@j%
    \ifthenelse%
     {\equal{\rsp@@jurisdiction}{\rsp@@lastjurisdiction}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@jurisdiction{}}%gleiche jurisdiction
   	 {\def\rsp@title@jurisdiction{\rsp@@jurisdiction}}%neu
   \else%
    \def\rsp@title@jurisdiction{}%
   \fi%
   \ifgroup@level@j%
    \ifthenelse%
     {\equal{\rsp@@level}{\rsp@@lastlevel}%
      \and\equal{\rsp@title@jurisdiction}{}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
   	 {\def\rsp@title@level{}}%gleiches level
   	 {\def\rsp@title@level{\rsp@@level}}%neu
   \else%
    \def\rsp@title@level{}%
   \fi%
   \ifgroup@court@j%
    \ifthenelse%
     {\equal{\rsp@@court}{\rsp@@lastcourt}%
      \and\equal{\rsp@title@level}{}%      
      \and\equal{\rsp@title@jurisdiction}{}%
      \and\equal{\rsp@title@state}{}%
      \and\equal{\rsp@@type}{\rsp@@lasttype}}%
     {\def\rsp@title@court{}}%gleiches gericht
   	 {\def\rsp@title@court{\rsp@@court}}%neu
   \else%
    \def\rsp@title@court{}%
   \fi%
  \fi% 
%    \end{macrocode}
% nun werden nach diesen Voreinstellungen die Gruppierungs�berschriften erstellt
%
% 1. Ebene
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@@type}{\rsp@@lasttype}}{}%gleicher typ
 {%neuer typ
  \section*{\rsp@title@type%
   \@mkboth{\MakeUppercase\rsp@title@type}{\MakeUppercase\rsp@title@type}}}%
%    \end{macrocode}
% 2. Ebene
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@title@state}{}}%
  {}% kein neuer staat
  {{\noindent\bfseries\rsp@title@state}\par}%
%    \end{macrocode}
% 3. Ebene
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@title@jurisdiction}{}}%
  {}% kein neuer gerichtszweig
  {{\noindent\bfseries\itshape\rsp@title@jurisdiction}\par}%
%    \end{macrocode}
% 4. Ebene
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@title@level}{}}%
  {}% kein neues level
  {{\noindent\itshape\rsp@title@level}\par}%
%    \end{macrocode}
% 5. Ebene
% Hier wird auch dann keine �berschrift erstellt, wenn der Gerichtstitel identisch mit Level ist.
% So kann man eine Gliederung der Form "`BGH"', "`sonstige Zivilgerichte"' erstellen
%    \begin{macrocode}
 \ifthenelse{\equal{\rsp@title@court}{}}%
  {}% kein neues gericht
  {\ifthenelse{\equal{\rsp@title@court}{\rsp@title@level}}%
   {}% kein neues gericht
   {{\noindent\slshape\rsp@title@court}\par}}%
%    \end{macrocode}
% Nachdem nun alle Gruppierungen abgearbeitet sind, kann der eigentliche Eintrag erstellt werden. 
% Zun�chst wird, wenn der Eintrag schon mindestens einmal mit Seitenverweis zitiert wurde, 
% |\rsp@pushpages| noch einmal aufgerufen. Ansonsten w�rde die letzte "`Serie"' von Seitenzahlen
% verloren gehen: Beim letzten Aufruf von |\rsprealcitation| weiss das Programm noch nicht, 
% dass keine weiteren Zitate folgen. Dies wird erst bei der Erstellung des Verzeichnisses definitiv.
%    \begin{macrocode}
 \@ifundefined{p@#1}{}{\rsp@pushpages{#1}}%
%    \end{macrocode}
% nun wird der Eintrag in Tabellen- oder Descriptionform erstellt.
% Die Daten in der linken Spalte werden von |\rsp@makeentry@content| formatiert.
% \changes{0.52}{2004/09/04}{hyper-anchor eingef�gt}
% \changes{0.52}{2004/09/24}{Umstellung auf boxes statt minipages}
%    \begin{macrocode}
 \ifrsp@make@table
 %\medskip
 \noindent
%  \hspace{\parindent}
%  \begin{minipage}[b]{\rspleftcolumn}
   \hbox{\hskip\leftskip%
	 \vtop{\hsize=\leftsize\noindent%
    \hyper@rspanchorstart{#1}\strut\rsp@makeentry@content
    \strut\hyper@rspanchorend
   }\hskip\middistance
%  \end{minipage}
%  \hspace{10mm}
%  \begin{minipage}[b]{\rsprightcolumn}
  \vtop{\hsize=\rightsize\noindent%
%   \begin{flushright}%
    \rsp@listpages\strut\rsp@getpage{#1}\strut
%   \end{flushright}%
  }\hskip\rightskip
 }\par\vskip\interdistance
%  \end{minipage}
 \else
  \item[#2] \rsp@getpage{#1}
 \fi
%    \end{macrocode}
% Die Einstellungen des Eintrages werden aufgehoben, damit mit dem n�chsten Eintrag 
% bei der Formatierung der Gruppierung verglichen werden k�nnen.
%    \begin{macrocode}
 \global\edef\rsp@@lasttype{\rsp@@type}
 \global\edef\rsp@@laststate{\rsp@@state}
 \global\edef\rsp@@lastjurisdiction{\rsp@@jurisdiction}
 \global\edef\rsp@@lastlevel{\rsp@@level}
 \global\edef\rsp@@lastcourt{\rsp@@court}
\fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@makeentry@defaults}
% Diese Funktion stellt die Defaults aus dem Setup f�r die Erstellung des Verzeichnisses ein. 
% Sie muss aber bei jedem Eintrag neu aufgerufen werden, da die Einstellungen wie 
% |\cite@useofficialtrue| 
% sp�ter bei der Formatierung wieder ge�ndert werden, wenn gar keine Angaben zur Amtl. Sammlung
% vorhanden sind.
%    \begin{macrocode}
\def\rsp@makeentry@defaults{%
     \ifcite@is@document%
		  \ifcite@preferofficial@d\cite@useofficialtrue\else\cite@useofficialfalse\fi
  		\ifcite@showdate@ld\cite@datetrue\else\cite@datefalse\fi
  		\ifcite@showsign@ld\cite@signtrue\else\cite@signfalse\fi
  		\ifcite@showname@ld\cite@nametrue\else\cite@namefalse\fi
  		\ifcite@showparties@ld\cite@partiestrue\else\cite@partiesfalse\fi
  		\ifcite@showadditional@ld\cite@additionaltrue\else\cite@additionalfalse\fi
  		\ifcite@showcommented@ld\cite@commentedtrue\else\cite@commentedfalse\fi
  		\ifcite@showdecision@ld\cite@decisiontrue\cite@nocourttrue\else%
                        \cite@decisionfalse\cite@nocourtfalse\fi
  		\ifcite@longofficial@ld\cite@longofficialtrue\else\cite@longofficialfalse\fi
 		 \else
  		\ifcite@preferofficial@j\cite@useofficialtrue\else\cite@useofficialfalse\fi
  		\ifcite@showdate@lj\cite@datetrue\else\cite@datefalse\fi
  		\ifcite@showsign@lj\cite@signtrue\else\cite@signfalse\fi
  		\ifcite@showname@lj\cite@nametrue\else\cite@namefalse\fi
  		\ifcite@showparties@lj\cite@partiestrue\else\cite@partiesfalse\fi
  		\ifcite@showadditional@lj\cite@additionaltrue\else\cite@additionalfalse\fi
  		\ifcite@showcommented@lj\cite@commentedtrue\else\cite@commentedfalse\fi
  		\ifcite@showdecision@lj\cite@decisiontrue\else\cite@decisionfalse\fi 
  		\ifcite@longofficial@lj\cite@longofficialtrue\else\cite@longofficialfalse\fi
  		\cite@nocourtfalse
 		 \fi%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makeentrysequence}
% \changes{0.52}{2006/03/04}{neue Funktion}
% erm�glicht die leichtere Formatierung der Verzeichniseintr�ge
% und erleichtert die Wartung, indem f�r Zitate und Verzeichniseintr�ge weitgehend die 
% gleiche Macros verwendet werden k�nnen.
%    \begin{macrocode}
\def\@makeentrysequence{%
% Zitat aus amtl. Sammlung erstellen
  \rsp@delimspacefalse
  \ifcite@useofficial
   \ifcite@decision\@makecite@court{\delimspace}{}\else
    \ifcite@date\@makecite@court{\delimspace}{}\else
     \ifcite@sign\@makecite@court{\delimspace}{}\else
      \ifcite@parties\@makecite@court{\delimspace}{}\fi
     \fi
    \fi
   \fi
   \@makecite@decision{\delimspace}{}%
   \@makecite@date{\delimspace}{}%
   \@makecite@sign{\delimspace (}{)}%
   \@makecite@parties{\delimspace}{}%
   \@makecite@official{\delimspace}{}%
   \delimspace\rsp@@offpages
   \@makecite@additional{\space(}{)}%
   \@makecite@name{\bgroup\emph -- "`}{"' -- \egroup}%
   \@makecite@commented{,\space}{}%
   \@makecite@concept{}{}%
% Zeitschrift-Zitat erstellen
  \else
   \@makecite@court{\delimspace}{}%
   \@makecite@decision{\delimspace}{}%
   \@makecite@date{\delimspace}{}%
   \@makecite@sign{\delimspace (}{)}%
   \@makecite@parties{\delimspace}{}%
   \delimspace\rsp@@jname\space\rsp@@jpages
   \@makecite@additional{\space(}{)}%
   \@makecite@name{\bgroup\emph -- "`}{"' -- \egroup}%
   \@makecite@commented{,\space}{}%
   \@makecite@concept{}{}%
  \fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@makeentry@content}
% Dieses Makro formatiert die Verzeichniseintr�ge f�r |\rsp@makeentry|.
% \changes{0.52}{2006/03/04}{komplett neu geschrieben}
%    \begin{macrocode}
\def\rsp@makeentry@content{%
% Defaults einstellen
 \rsp@makeentry@defaults
% useofficial korrigieren je nach gegebenheiten; grunds�tzlich wird 
% also nach "`default"' zitiert; wenn dies nicht vorhanden ist, 
% dann der jeweils andere Datensatz
 \ifcite@useofficial
  \ifthenelse{\equal{\rsp@@offpages}{}\and\not\equal{\rsp@@jpages}{}}%
  {\cite@useofficialfalse}{\cite@useofficialtrue}%
 \else
  \ifthenelse{\equal{\rsp@@jpages}{}\and\not\equal{\rsp@@offpages}{}}%
  {\cite@useofficialtrue}{\cite@useofficialfalse}%
 \fi
% in jedem Fall geht die individuelle Einstellung im Eintrag vor
 \ifthenelse{\equal{\rsp@@citeas}{official}}{\cite@useofficialtrue}{%
  \ifthenelse{\equal{\rsp@@citeas}{journal}}{\cite@useofficialfalse}{}}%
% Datum
  \ifthenelse{\equal{\rsp@@date}{}}{\cite@datefalse}{}%
% Aktenzeichen
  \ifthenelse{\equal{\rsp@@sign}{}}{\cite@signfalse}{}%
% Entscheidungs-Typ
  \ifthenelse{\equal{\rsp@@decision}{}}{\cite@decisionfalse}{}%
% Parteien
   \ifthenelse{\equal{\rsp@@parties}{}}{\cite@partiesfalse}{}%
% erg�nzende angaben
   \ifthenelse{\equal{\rsp@@name}{}}{\cite@namefalse}{}%
   \ifthenelse{\equal{\rsp@@commented}{}}{\cite@commentedfalse}{}%
% schlie�lich die Ausgabe der Daten 
 \@makeentrysequence
}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Verarbeitung der Daten aus der \texttt{.rsp.aux}-Datei}
%Die Datei |.rsp.aux| wird am Anfang des Dokumentes gelesen und erzeugt keine Ausgabe. 
%Hier werden die Befehle erstellt, die das zitieren in der Fu�note erm�glichen. 
%Au�erdem werden die Seitenzahlen gesammelt und formatiert.
%
%Unter einer "`Serie"' wird hier eine ununterbrochene Folge von Seiten verstanden, 
%auf denen ein bestimmter Eintrag (Urteil / Dokument) jeweils mindestens 1x zitiert wird.
%
% \begin{macro}{rspcite}
%  Aus |\rspcite{bgh103}{|\meta{Daten}|}| wird |\j@bgh103{|\meta{Daten}|}|
%    \begin{macrocode}
\def\rspcite{\@newl@bel j}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsprealcitation}
% |\rsprealcitation| �bernimmt zwei Argumente: 
%\begin{description}
%	\item[1] Zitatk�rzel
%	\item[2] Seite des Zitats
%\end{description}
% Es wird ein Befehl der Form |\p@|\meta{K�rzel}|{|\meta{Seitenzahlen}|}| erstellt.
%    \begin{macrocode}
\def\rsprealcitation#1#2{%
  \@ifundefined{p@#1}%
%    \end{macrocode}
% erster aufruf:
%\begin{description}
%	\item[p@k�rzel] sammelt alle Seiten, wird aber erst am Ende der Serie gef�llt
%	\item[beg@k�rzel] speichert die erste Seite der aktuellen Serie
%	\item[end@k�rzel] speichert die (vorerst) letzte Seite der aktuellen Serie   
%\end{description}
%    \begin{macrocode}
  {%
    \@namedef{p@#1}{}% 
    \@namedef{beg@#1}{#2}% 
    \@namedef{end@#1}{#2}%      
  }%
%    \end{macrocode}
%bei mehrfacher Zitierung auf einer Seite soll die Seite nur einfach erscheinen
%ansonsten wird hier nur gepr�ft, ob die Serie ununterbrochen fortgesetzt wird.
%wenn eine neue Serie anf�ngt, wird die alte Serie in |\p@k�rzel| gespeichert.
%    \begin{macrocode}
  {% 
   \ifthenelse{\equal{\rsp@endpage{#1}}{#2}}
    {}%gleiche seite mit mehrf. zitat
    {% neue Seite
     \setcounter{rspendpage}{\rsp@endpage{#1}}
     \stepcounter{rspendpage}
     \ifthenelse{\equal{\therspendpage}{#2}}
      {% current page = end page + 1 -> Serie geht weiter
       \@namedef{end@#1}{#2} % setze neues Serienende
      }%
      {% current page > end page + 1 -> Serie ist vorbei
       \rsp@pushpages{#1}% Serie in p@k�rzel sichern
       % neue Serie eintragen
       \@namedef{beg@#1}{#2}
       \@namedef{end@#1}{#2}
      }%
    }% 
  }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rspnocitation}
% |\rspnocitation| wird von |rnocite| erzeugt. Ein solches "`Nichtzitat"' soll auch keine Seitenzahl im Verzeichnis erzeugen. 
%    \begin{macrocode}
\def\rspnocitation#1#2{\relax}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rspphantomcitation}
% |\rspphantomcitation| wird von |rphantomcite| erzeugt und entspricht (vorerst) |\rsprealcitation|,
% da auch die "`Phantome"' mit Seitenzahl im Verzeichnis erscheinen sollen.
%    \begin{macrocode}
\def\rspphantomcitation{\rsprealcitation}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@pushpages}
% Dieses Makro f�gt eine neue "`Serie"' an |\p@k�rzel| an.
%    \begin{macrocode}
\def\rsp@pushpages#1{%
       \ifthenelse{\equal{\rsp@beginpage{#1}}{\rsp@endpage{#1}}}%
        {% nur einfache Seite
         \def\rsp@newpage{\rsp@beginpage{#1}}%         
        }%
        {% Serie
         \setcounter{rspbeginpage}{\rsp@beginpage{#1}}
         \stepcounter{rspbeginpage}
         \ifthenelse{\equal{\therspbeginpage}{\rsp@endpage{#1}}}
         {% endpage = beginpage + 1 (kurze Serie)
          \def\rsp@newpage{\rsp@beginpage{#1}~f.}% 
         }%
         {% endpage > beginpage + 1 (lange Serie)
          \def\rsp@newpage{\rsp@beginpage{#1}~ff.}% 
         }%
        }%
%    \end{macrocode}
% Alternativ k�nnte man hier auch schreiben: 
% \begin{quote}
% |\def\rsp@newpage{\rsp@beginpage{#1}-\rsp@endpage{#1}}|
% \end{quote}
% Damit w�rde nicht mehr erscheinen "`S. 20 ff."', sondern "`S. 20-24"'
%
% Nun kann der Seitenstring erstellt bzw. erg�nzt werden. Dabei wird mit |\edef| gearbeitet, 
% damit sich die Angaben nicht mehr nachtr�glich verschieben. 
% \changes{0.52}{2005/05/15}{Umstellung auf rsp@pagestring}
%    \begin{macrocode}
       \edef\rsp@oldpage{\rsp@getpage{#1}}%
       \ifthenelse{\equal{\rsp@oldpage}{}}% erste Serie?
        {\rsp@namedef{p@#1}{\rsp@pagestring\expandafter\rsp@newpage}}% 
        {\rsp@namedef{p@#1}{\expandafter\rsp@oldpage, \expandafter\rsp@newpage}}% 
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@getpage}
% Die folgenden Befehle liefern jeweils den Inhalt der gespeicherten 
% Seitenzahlen. |\rsp@getpage| liefert dabei die gesamte Seitenliste
%    \begin{macrocode}
\def\rsp@getpage#1{\csname p@#1\endcsname}
%    \end{macrocode}
% |\rsp@beginpage| liefert die erste Seite der aktuellen Serie
%    \begin{macrocode}
\def\rsp@beginpage#1{\csname beg@#1\endcsname}
%    \end{macrocode}
% |\rsp@endpage| liefert die letzte Seite der aktuellen Serie
%    \begin{macrocode}
\def\rsp@endpage#1{\csname end@#1\endcsname}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Erstellung der konkreten Zitate}
% \subsubsection{Die \texttt{rcite}-Befehle}
% Grunds�tzlich werden in |\rcite@useroptions| die konkreten, vom Anwender vorgegebenen
% Einstellungen f�r ein Zitat gespeichert. Diese �berschreiben dann die "`Default"'-Werte aus dem 
% Setup und erm�glichen es so, dass in einem Dokument ein Eintrag auf verschiedene Weise zitiert
% werden kann. 
% \begin{macro}{rcite}
% normales Zitat mit default-Angaben
%    \begin{macrocode}
\DeclareRobustCommand\rcite{% 
  \def\rcite@useroptions{\relax}%
  \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rfullcite}
%  Vollzitat mit allen Angaben
%    \begin{macrocode}
\DeclareRobustCommand\rfullcite{%
   \def\rcite@useroptions{\rcite@fulloptions}%
   \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rleancite}
% schlankes Zitat mit Minimalangaben
%    \begin{macrocode}
\DeclareRobustCommand\rleancite{% 
   \def\rcite@useroptions{\rcite@leanoptions}%
   \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rrepeatcite}
%  Ketten-Zitat
% ohne Angabe der amtl. Sammlung
% ohne Angabe des Gerichts vor der Zeitschrift
%    \begin{macrocode}
\DeclareRobustCommand\rrepeatcite{%
   \def\rcite@useroptions{\cite@repeatedtrue\cite@nocourttrue}%
   \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{ranglocite}
% \changes{0.52}{2005/05/11}{neue Funktion eingef�gt}
%  Zitat f�r englische Rechtsprechung
% ohne Angabe des Gerichts; mit parties
% Anregung von Ferdinand Grassmann
%    \begin{macrocode}
\DeclareRobustCommand\ranglocite{%
   \def\rcite@useroptions{\cite@nocourttrue\cite@partiestrue}%
   \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rshortcite}
% erzwingt die Kurzform der amtl. Sammlung
% zB nur Z statt BGHZ 
% bei Zeitschriften Verhalten wie |\rrepeatcite|
%    \begin{macrocode}
\DeclareRobustCommand\rshortcite{% 
   \def\rcite@useroptions{\cite@longofficialfalse\cite@nocourttrue}%
   \@ifnextchar [{\@rcitex}{\@rcitex[]}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rnocite}
% nocite-Kommando, wenn im Verzeichnis nicht zitierte Quellen
% erscheinen sollen, ohne Seitenangabe
%    \begin{macrocode}
\def\rnocite#1{\@bsphack
  \@for\@rspciteb:=#1\do{%
    \edef\@rspciteb{\expandafter\@firstofone\@rspciteb}%
     \if@filesw\immediate\write\@rspaux{\string\citation{\@rspciteb}}%
     \immediate\write\@rspaux{\string\rspnocitation{\@rspciteb}{\thepage}}\fi
     \@ifundefined{j@\@rspciteb}{\G@refundefinedtrue
        \@latex@warning{No-Citation `\@rspciteb' undefined}}{}}%
  \@esphack%
  \ifrsp@debug \ifrsp@fn Fussnote \else keine Fussnote \fi \fi%
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rphantomcite}
% ein "`phantom"' erscheint mit Seitenangabe im Verzeichnis, aber nicht im Text
% (etwa wenn ohne echtes Zitat auf eine Entsch. Bezug genommen wird)
% \changes{0.52}{2004/10/11}{nicht immediate, sonst falsche Seitenzahl}
%    \begin{macrocode}
\def\rphantomcite#1{\@bsphack
  \@for\@rspciteb:=#1\do{%
    \edef\@rspciteb{\expandafter\@firstofone\@rspciteb}%
     \if@filesw\immediate\write\@rspaux{\string\citation{\@rspciteb}}%
 \edef\rsp@tmp{\string\rspphantomcitation{\@rspciteb}{\noexpand\thepage}}% 
\if@filesw\expandafter\expandafter\expandafter\write\@rspaux\expandafter{\rsp@tmp}\fi      %\immediate\write\@rspaux{\string\rspphantomcitation{\@rspciteb}{\thepage}}\fi
     \@ifundefined{j@\@rspciteb}{\G@refundefinedtrue
        \@latex@warning{Phantom-Citation `\@rspciteb' undefined}}{}}%
  \@esphack%
  \ifrsp@debug \ifrsp@fn Fussnote \else keine Fussnote \fi \fi%
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@rcitex}
% bearbeitet die Zitate und �bergibt den Output an |\@rcite|, der die Ausgabe des Zitats erstellt
%Parameter:
%\begin{description}
%	\item[1]   konkrete Fundstelle aus dem User-Aufruf
%	\item[2]   Kuerzel des Zitats (sp�ter |\@rciteb|
%\end{description}
% \changes{0.51}{2004/08/24}{Struktur umgestellt, �berfl. Latex-Code entfernt}
% \changes{0.52}{2006/03/03}{nochmals weitgehend umgeschrieben und vereinfacht}
%    \begin{macrocode}
\def\@rcitex[#1]#2{%
  \def\@rcitea{#1}%Seitenzahl  
  \edef\@rciteb{#2}%K�rzel
  %    \end{macrocode}
% eintragen in rsp.aux, dass Quelle verwendet wird, damit \BibTeX{} den Eintrag heraussucht
%    \begin{macrocode}
  \if@filesw\immediate\write\@rspaux{\string\citation{\@rciteb}}\fi
%    \end{macrocode}
% weiterhin auch die Seitenzahl eintragen 
% \changes{0.52}{2004/10/11}{nicht immediate, da sonst falsche Seitenzahl}
%    \begin{macrocode}  
   \edef\rsp@tmp{\string\rsprealcitation{\@rciteb}{\noexpand\thepage}}% 
   \if@filesw\expandafter\expandafter\expandafter
    \write\@rspaux\expandafter{\rsp@tmp}\fi   
%    \end{macrocode}
% testen, ob das j@-Kommando per rspcite definiert wurde;
% falls nicht: Fragezeichen drucken und Warnung ausgeben
%    \begin{macrocode}
     \@ifundefined{j@\@rciteb}%
      {\mbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
       {RSP-Citation `\@rciteb' on page \thepage \space undefined}}%
      {\@makecite{\csname j@\@rciteb\endcsname}}%
	\ifrsp@debug \ifrsp@fn Fussnote \else keine Fussnote \fi \fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@rcite}
%Parameter:
%\begin{description}
%	\item[1]Zitat (Daten vor der Fundstelle)
%	\item[2]Daten nach der konkreten Fundstelle
%	\item[3]konkrete Fundstelle (Seite)   
%\end{description}
% \end{macro}
%\subsubsection{Formatierung der Zitate}
% \begin{macro}{rsp@makecite@defaults}
% setzt Defaults fuer Zitat
%    \begin{macrocode}
\def\rsp@makecite@defaults{%
 \ifcite@is@document%
  \ifcite@preferofficial@d\cite@useofficialtrue\else\cite@useofficialfalse\fi
  \ifcite@showdate@d\cite@datetrue\else\cite@datefalse\fi
  \ifcite@showsign@d\cite@signtrue\else\cite@signfalse\fi
  \ifcite@showname@d\cite@nametrue\else\cite@namefalse\fi
  \ifcite@showparties@d\cite@partiestrue\else\cite@partiesfalse\fi
  \ifcite@showadditional@d\cite@additionaltrue\else\cite@additionalfalse\fi
  \ifcite@showcommented@d\cite@commentedtrue\else\cite@commentedfalse\fi
  \ifcite@showdecision@d\cite@decisiontrue\cite@nocourttrue\else%
                        \cite@decisionfalse\cite@nocourtfalse\fi%
%    \end{macrocode}
%bei amtl. Dokumenten kommt der Name der Organisation im
%Typ des Dokuments oft noch mal vor (zB BMF-Schreiben)
%    \begin{macrocode}
  \ifcite@longofficial@d\cite@longofficialtrue\else\cite@longofficialfalse\fi
 \else
  \ifcite@preferofficial@j\cite@useofficialtrue\else\cite@useofficialfalse\fi
  \ifcite@showdate@j\cite@datetrue\else\cite@datefalse\fi
  \ifcite@showsign@j\cite@signtrue\else\cite@signfalse\fi
  \ifcite@showname@j\cite@nametrue\else\cite@namefalse\fi
  \ifcite@showparties@j\cite@partiestrue\else\cite@partiesfalse\fi
  \ifcite@showadditional@j\cite@additionaltrue\else\cite@additionalfalse\fi
  \ifcite@showcommented@j\cite@commentedtrue\else\cite@commentedfalse\fi
  \ifcite@showdecision@j\cite@decisiontrue\else\cite@decisionfalse\fi 
  \ifcite@longofficial@j\cite@longofficialtrue\else\cite@longofficialfalse\fi
  \cite@nocourtfalse
 \fi%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecitesequence}
% \changes{0.52}{2005/11/01}{neue Funktion}
% Um die Reihenfolge der anzuzeigenden Daten flexibel zu gestalten, wird ein Macro eingesetzt, das die "`default"'-Reihenfolge enth�lt. 
% Wenn im Einzelfall eine andere Reihenfolge gew�nscht wird, kann der rcite-Aufruf dieses Macro �berschreiben und dadurch die Reihenfolge manipulieren. 
% So k�nnen auch spezielle Anforderungen erf�llt werden, ohne das ganze System umzuschreiben. Versierte User k�nnten sich die individuelle rcite-Funktion auch selbst basteln.
%    \begin{macrocode}
\def\@makecitesequence{\@defaultcitesequence}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{delimspace}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Dieses einfache Makro sorgt daf�r, dass am Anfang eines Zitates keine �berfl�ssigen 
% Leerzeichen erscheinen. Gerade im Zusammenhang mit "`nocourt"' ist es gelegentlich 
% im Zitat nicht leicht festzustellen, ob schon zuvor Daten stehen. Um die citesequence 
% m�glichst schlank zu halten, wurde diese Pr�fung ausgelagert.
%    \begin{macrocode}
\newif\ifrsp@delimspace\rsp@delimspacefalse 
\def\delimspace{%
 \ifrsp@delimspace\space\else\rsp@delimspacetrue\fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@defaultcitesequence}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Hier wird das Zitat aus den einzelnen Bestandteilen zusammen gebastelt. 
% An sich wird hier nur die Reihenfolge festgelegt; die "`Intelligenz"' 
% der Anwendung wurde ausgelagert, damit hier einfache Manipulationen m�glich sind.
%    \begin{macrocode}
\def\@defaultcitesequence{%
% Zitat aus amtl. Sammlung erstellen
  \rsp@delimspacefalse
  \ifcite@useofficial
   \ifcite@decision\@makecite@court{\delimspace}{}\else
    \ifcite@date\@makecite@court{\delimspace}{}\else
     \ifcite@sign\@makecite@court{\delimspace}{}\else
      \ifcite@parties\@makecite@court{\delimspace}{}\else
       \ifrsp@lookat@use\@makecite@court{\delimspace}{}\fi
      \fi
     \fi
    \fi
   \fi
   \@makecite@decision{\delimspace}{}%
   \@makecite@date{\delimspace}{}%
   \@makecite@sign{\delimspace (}{)}%
   \@makecite@parties{\delimspace}{}%
   \@makecite@official{\delimspace}{}%
   \delimspace\hyper@rsplinkstart{\@rciteb}\rsp@@offpages\hyper@rsplinkend
    \ifthenelse{\equal{\@rcitea}{}}{}%
     {\rcite@before{\rsp@citefont \@rcitea}\rcite@after}%
   \@makecite@additional{\space(}{)}%
   \@makecite@name{\bgroup\emph -- "`}{"' -- \egroup}%
   \@makecite@commented{,\space}{}%
   \@makecite@concept{}{}%
% Zeitschrift-Zitat erstellen
  \else
   \@makecite@court{\delimspace}{}%
   \@makecite@decision{\delimspace}{}%
   \@makecite@date{\delimspace}{}%
   \@makecite@sign{\delimspace (}{)}%
   \@makecite@parties{\delimspace}{}%
   \delimspace\rsp@@jname
   \space\hyper@rsplinkstart{\@rciteb}\rsp@@jpages\hyper@rsplinkend
   \ifthenelse{\equal{\@rcitea}{}}{}%
     {\rcite@before{\rsp@citefont \@rcitea}\rcite@after}%
   \@makecite@additional{\space(}{)}%
   \@makecite@name{\bgroup\emph -- "`}{"' -- \egroup}%
   \@makecite@commented{,\space}{}%
   \@makecite@concept{}{}%
  \fi
%    \end{macrocode}
% \changes{0.51}{2004/08/24}{bei nocourt Auffangfunktion f�r lookat}
% Dieser Fall kann nur vorkommen, wenn |nocourt| durch |repeatcite| oder |shortcite| 
% entgegen |rlookat| doch wieder auf |true| gesetzt wird. Es handelt sich um eine 
% echte Notoption; diese Zitate sehen nicht besonders toll aus. Besser sollte man 
% |repeatcite| oder |shortcite| in |lookat|-Umgebungen gar nicht verwenden. 
%    \begin{macrocode}
 \ifcite@nocourt
  \ifrsp@lookat@use\space\rsp@lookatstring\fi
 \fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@court}
% \changes{0.52}{2005/11/01}{neue Funktion}
% Angaben zum Gericht basteln
%    \begin{macrocode}
\def\@makecite@court#1#2{%
   \ifcite@nocourt\else
    \ifcite@longcourt
     \ifthenelse{\equal{\rsp@@chamber}{}}{#1\rsp@@court}%
       {#1\rsp@@court\space\rsp@@chamber}%   
    \else
     \ifthenelse{\equal{\rsp@@special}{}}{#1\rsp@@short}%
       {#1\rsp@@short\space\rsp@@special}%
    \fi
    \ifrsp@lookat@use\space\rsp@lookatstring\fi#2%
   \fi}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@date}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Datums- und Entscheidungstyp-Angaben
% 
%    \begin{macrocode}
\def\@makecite@date#1#2{%
  \ifcite@date
   \ifcite@decision
    #1\rsp@@decision\space\cite@datedelimiter\space\rsp@@date#2%
   \else
    #1\rsp@@date#2%
   \fi
  \fi}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@decision}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Entscheidungstyp-Angabe, wenn kein Datum angegeben ist
% 
%    \begin{macrocode}
\def\@makecite@decision#1#2{%
 \ifcite@date\else
  \ifcite@decision
   #1\rsp@@decision#2\fi
 \fi}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{makecite@sign}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Angabe Aktenzeichen
% 
%    \begin{macrocode}
\def\@makecite@sign#1#2{%
 \ifcite@sign
  #1\rsp@@sign#2\fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{makecite@parties}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Parteien-Angaben
% 
%    \begin{macrocode}
\def\@makecite@parties#1#2{%
 \ifcite@parties
  #1\rsp@@parties#2\fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@official}
% \changes{0.52}{2006/03/03}{neue Funktion}
% amtl. Sammlung
% 
%    \begin{macrocode}
\def\@makecite@official#1#2{%
 \ifcite@repeated
  \else
  \ifcite@longofficial #1\rsp@@offlong#2%
   \else #1\rsp@@offshort#2%
  \fi
 \fi
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{makecite@additional}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Parallel-Fundstellen, soweit vorhanden
% 
%    \begin{macrocode}
\def\@makecite@additional#1#2{%
% parallel-Fundstellen angeben?
 \ifcite@additional 
  \ifthenelse{\equal{\rsp@@additional}{}}%
  {% keine Extra-Angabe
   \ifcite@useofficial
    \ifthenelse{\equal{\rsp@@jpages}{}}{}%
     {#1=\space\rsp@@jname\space\rsp@@jpages #2}%
   \else%
    \ifthenelse{\equal{\rsp@@offpages}{}}{}%
     {#1=\ifcite@longofficial\rsp@@offlong\else%
      \rsp@@offshort\fi\space\rsp@@offpages #2}%
   \fi%
  }%
  {% Extra-Angabe vorhanden
   \ifcite@useofficial%
    \ifthenelse{\equal{\rsp@@jpages}{}}%
     {#1\space\rsp@@additional #2}%
     {#1=\space\rsp@@jname\space\rsp@@jpages\space\rsp@@additional #2}%
   \else
    \ifthenelse{\equal{\rsp@@offpages}{}}%
     {#1\rsp@@additional #2}%
     {#1=\ifcite@longofficial\rsp@@offlong\else
      \rsp@@offshort\fi\space\rsp@@offpages
    \space\rsp@@additional #2}%
   \fi%
  }%    
 \fi%
} 
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@name}
% \changes{0.52}{2006/03/03}{neue Funktion}
% "`Name"' der Entscheidung
% 
%    \begin{macrocode}
\def\@makecite@name#1#2{% 
% Name angeben?
 \ifcite@name
   #1\rsp@@name #2\fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@commented}
% \changes{0.52}{2006/03/03}{neue Funktion}
% Anmerkungs-Fundstellen
% 
%    \begin{macrocode}
\def\@makecite@commented#1#2{% 
% Anmerkungen angeben?
 \ifcite@commented #1\rsp@@commented #2\fi}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite@concept}
% \changes{0.52}{2006/03/03}{neue Funktion}
% erg�nzende Infos f�r Konzept-Ausdrucke
% 
%    \begin{macrocode}
\def\@makecite@concept#1#2{%
% Konzept drucken?
 \ifcite@concept% 
  \ifthenelse{\equal{\rsp@@note}{}}%
   {%
    \ifthenelse{\equal{\rsp@@annote}{}}%
   	{}%
   	{#1\emph{\rsp@@annote}#2}%
   }%
   {%
    \ifthenelse{\equal{\rsp@@annote}{}}%
   	{#1\emph{\rsp@@note}#2}%
   	{#1\emph{\rsp@@note, \rsp@@annote}#2}%   
   }%
 \fi}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makecite}
% \changes{0.52}{2005/11/01}{neue citeas-Funktion eingef�hrt}
% \changes{0.52}{2006/03/03}{Funktion komplett umgeschrieben}
% Dieses Makro ermittelt �ber mehrere Stufen, wie das Zitat zusammengesetzt sein soll, 
% also welche Angaben angezeigt werden sollen. Die Anzeige selbst geschieht dann �ber 
% den Aufruf von @makecitesequence am Ende.
%    \begin{macrocode}
\def\@makecite#1{%
 \protected@edef\rsp@all{\expandafter\rsp@firstofone#1}% 
 \rsp@splitlines\rsp@all
 \ifthenelse{\equal{\rsp@@type}{document}}%
  {\cite@is@documenttrue}%
  {\cite@is@documentfalse}%
% Defaults einstellen
 \rsp@makecite@defaults
% defaults ueberschreiben bei fullcite 
 \ifcite@is@document 
  \ifrsp@all@full@d\rcite@fulloptions\fi
  \ifrsp@firstcite@full@d\rsp@firstcite@full\fi
 \else
  \ifrsp@all@full@j\rcite@fulloptions\fi
  \ifrsp@firstcite@full@j\rsp@firstcite@full\fi
 \fi
% useofficial korrigieren je nach gegebenheiten; 
% grunds�tzlich wird also nach "`default"' zitiert; 
% wenn dies nicht vorhanden ist, dann der jeweils andere Datensatz
 \ifcite@useofficial
  \ifthenelse{\equal{\rsp@@offpages}{}\and\not\equal{\rsp@@jpages}{}}%
  {\cite@useofficialfalse}{\cite@useofficialtrue}%
 \else
  \ifthenelse{\equal{\rsp@@jpages}{}\and\not\equal{\rsp@@offpages}{}}%
  {\cite@useofficialtrue}{\cite@useofficialfalse}%
 \fi
% in jedem Fall geht die individuelle Einstellung im Eintrag vor
 \ifthenelse{\equal{\rsp@@citeas}{official}}{\cite@useofficialtrue}{%
  \ifthenelse{\equal{\rsp@@citeas}{journal}}{\cite@useofficialfalse}{}}%
% normal kein wiederholer-Zitat
 \cite@repeatedfalse
%    \end{macrocode}
% User-Options k�nnen die Einstellung |useofficial| �berschreiben
% ansonsten werden die User-Options aber durch das System wieder �berschrieben,
% wenn die gew�nschten Daten im Eintrag nicht vorhanden sind
%    \begin{macrocode}
 \rcite@useroptions 
% Datum
  \ifthenelse{\equal{\rsp@@date}{}}{\cite@datefalse}{}%
% Aktenzeichen
  \ifthenelse{\equal{\rsp@@sign}{}}{\cite@signfalse}{}%
% Entscheidungs-Typ
  \ifthenelse{\equal{\rsp@@decision}{}}{\cite@decisionfalse}{}%
% Parteien
   \ifthenelse{\equal{\rsp@@parties}{}}{\cite@partiesfalse}{}%
% erg�nzende angaben
   \ifthenelse{\equal{\rsp@@name}{}}{\cite@namefalse}{}%
   \ifthenelse{\equal{\rsp@@commented}{}}{\cite@commentedfalse}{}%
% schlie�lich die Ausgabe der Daten 
 \@makecitesequence}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{@makeciteb}
% \changes{0.51}{2004/08/23}{Spaces entfernt}
% \changes{0.52}{2006/03/03}{Funtion entfallen}
% stellt die Daten zusammen, die im Zitat hinter der konkreten Fundstelle erscheinen
% \end{macro}
% \subsubsection{Sonderfunktionen f�r Vollzitate und Querverweise}
% \begin{macro}{Tokenlisten}
% Der nachfolgende Code dient der Verwaltung von Tokenlisten zur Speicherung der 
% Erstzitate. Wurde ebenfalls weitgehend von |jurabib| �bernommen. 
%    \begin{macrocode}
\newcommand*{\rsp@list@d}{}
\newcommand*{\rsp@list@j}{}
\newtoks\rsp@temptoks
\newcommand*{\rsp@@append}[2]{%
    \ifthenelse{\equal{#2}{}}{%
        \protected@xdef#2{#1}%
    }{%
        \rsp@temptoks=\expandafter{#2}%
        \protected@xdef#2{\the\rsp@temptoks,#1}%
    }%
}%
\newcommand*{\rsp@append}[2]{%
    \rsp@if@elem{#1}{#2}{%
    }{%
        \rsp@@append{#1}{#2}%
    }%
}%
\newcommand*{\rsp@list@tempa}{}
\newcommand*{\rsp@list@tempb}{}
\newcommand*{\rsp@test@cmd}{}
\newcommand*{\rsp@if@elem}[2]{%
    \protected@edef\rsp@list@tempa{#1}%
    \let\rsp@test@cmd\@secondoftwo
    \@for\rsp@list@tempb:=#2\do{%
        \ifx\rsp@list@tempa\rsp@list@tempb
             \let\rsp@test@cmd\@firstoftwo
        \fi
    }%
    \rsp@test@cmd
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@undefineall}
% leert die Tokenliste, wenn bei firstcite=chapter etc. ein Neuanfang gesetzt werden muss. 
% Stammt im Prinzip auch von |jurabib|, wurde aber stark vereinfacht.
% 1. Arg: die Liste der zu loeschenden Makros,
% 2. Arg: chapter oder section,
% 3. Arg: docu oder judgement
%    \begin{macrocode}
\newcommand*{\rsp@undefineall}[3]{%
    \ifthenelse{\equal{#2}{chapter}}{%
                \rsp@info{Resetting citefirst on #3
                     for Chapter \thechapter}%
                \@for\rsp@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\rsp@list@tempa\endcsname{}%
                }%
    }{%
                \rsp@info{Resetting citefirst on #3
                     for Section \thesection}%
                \@for\rsp@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\rsp@list@tempa\endcsname{}%
                }%
    }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@firstcite@full}
% Gibt ein Vollzitat aus, wenn es sich um das erste Zitat des Dokuments / Chapter / Section
% handelt und erm�glicht ansonsten die Querverweise auf das Vollzitat.
%    \begin{macrocode}
\def\rsp@firstcite@full{%
%    \end{macrocode}
%reset fuer chapter und section
%    \begin{macrocode}
 \ifcite@is@document
  \@ifundefined{rsp@resetfor@d}{}{%
   \ifrsp@debug DOCRESET MOEGLICH\fi%
   \ifthenelse{\value{rspcitefull@d}=0}% 
% erstes dok im kapitel / section: RESET
     {\ifrsp@debug DOCRESET TATSAECHLICH\fi% 
      \rsp@undefineall{\rsp@list@d}{\rsp@resetfor@d}{documents}%
     }%     
     {}% kein reset
   }%
 \else%
  \@ifundefined{rsp@resetfor@j}{}{%
   \ifrsp@debug URTEILRESET MOEGLICH\fi%
   \ifthenelse{\value{rspcitefull@j}=0}% 
% erstes urteil im kapitel / section: RESET
     {\ifrsp@debug URTEILRESET TATSAECHLICH\fi%
      \rsp@undefineall{\rsp@list@j}{\rsp@resetfor@j}{judgements}%
     }%
     {}% kein reset
   }%
 \fi%
%    \end{macrocode}
% Vollzitat? wenn f@... noch nicht definiert ist
% oder wenn es (nach reset) leer ist
%    \begin{macrocode} 
 \@ifundefined{f@\@rciteb}{\rsp@firstcitetrue}%
  {%
   \ifthenelse{\equal{\@nameuse{f@\@rciteb}}{}}%
    {\rsp@firstcitetrue}%
    {\rsp@firstcitefalse}%
  }%
%    \end{macrocode}
% ja: fullcite erzwingen
% ref. setzen
% Seitenref. immer moeglich (1. Argument von f@kuerzel)
% Fn.-Ref. nur wenn in Fussnote (2. Argument von f@kuerzel)
%    \begin{macrocode}
 \ifrsp@firstcite
  \ifrsp@debug VOLLZITAT\fi
  \rcite@fulloptions
  \rsp@gnamedef{f@\@rciteb}{%
   {\thepage}% 
    \ifrsp@fn
     {\thempfn}%	
    \else
     {}% 
    \fi
   }%
   \ifrsp@debug\rsp@info{Referenz gesetzt fuer 
    \@rciteb: \expandafter\csname f@\@rciteb\endcsname}\fi
   \ifcite@is@document
    \rsp@append{f@\@rciteb}{\rsp@list@d}%
   \else
    \rsp@append{f@\@rciteb}{\rsp@list@j}%
   \fi
  \rsp@lookat@usefalse
 \else
  \ifrsp@debug NORMALZITAT\fi%
%    \end{macrocode}
% nein: normal-Zitat
% ref. benutzen?
%    \begin{macrocode}
  \ifcite@is@document
   \ifrsp@lookat@d
    \rsp@lookat@usetrue
    \cite@nocourtfalse
   \else
    \rsp@lookat@usefalse
   \fi
  \else
   \ifrsp@lookat@j
    \rsp@lookat@usetrue
    \cite@nocourtfalse
   \else
    \rsp@lookat@usefalse
   \fi
  \fi
  \relax
 \fi
%    \end{macrocode}
%Counter nach jedem Zitat weitersetzen
%    \begin{macrocode}
 \ifcite@is@document
  \stepcounter{rspcitefull@d}%
 \else
  \stepcounter{rspcitefull@j}%
 \fi 
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rsp@lookatstring}
% erzeugt den String mit dem Verweis auf die Seite / Fussnote des Vollzitats
%    \begin{macrocode}
\def\rsp@lookatstring{%
   \edef\rsp@reference{\@nameuse{f@\@rciteb}}% {{seite}{fn}}
   \def\rsp@refpage{\expandafter\rsp@firstoftwo\rsp@reference}%
   \def\rsp@refnote{\expandafter\rsp@secondoftwo\rsp@reference}%
   \ifthenelse{\equal{\rsp@refnote}{}}%
     {(oben S.~\rsp@refpage )}% without note
     {(oben Fn.~\rsp@refnote )}% with note
}%
%    \end{macrocode}
% \end{macro}
% \subsection{Initialisierung}
% \begin{macro}{AtBeginDocument}
% Initialisierung
%    \begin{macrocode}
\AtBeginDocument{%
% Merkposten f�r die Gruppierung zur�cksetzen
 \global\edef\rsp@@lasttype{start}
 \global\edef\rsp@@laststate{start}
 \global\edef\rsp@@lastjurisdiction{start}
 \global\edef\rsp@@lastlevel{start}
 \global\edef\rsp@@lastcourt{start}
% Aux-Datei �ffnen
  \newwrite\@rspaux
  \@input{\jobname.rsp.aux}%
  \if@filesw
    \immediate\openout\@rspaux\jobname.rsp.aux
    \immediate\write\@rspaux{\relax}%
  \fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rspdata}
%Mitteilung an \BibTeX, woher die Daten kommen (bib) 
%    \begin{macrocode}
\def\rspdata#1{%
  \if@filesw
    \immediate\write\@rspaux{\string\bibdata{#1}}%
  \fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{rspstyle}
% Formatdatei an \BibTeX �bergeben;
% einfuegen der rsp.bbl-Datei (dort wird dann das Verzeichnis erstellt)
%    \begin{macrocode}
\def\rspstyle#1{%
  \ifx\@begindocumenthook\@undefined\else
    \expandafter\AtBeginDocument
  \fi
    {\if@filesw
       \immediate\write\@rspaux{\string\bibstyle{#1}}%
     \fi}
  \@input@{\jobname.rsp.bbl}}
%    \end{macrocode}
% j@Kuerzel-Kommandos loeschen
%    \begin{macrocode}
\expandafter\let\csname j@*\endcsname\@empty
%</package>
%    \end{macrocode}
% \end{macro}
% \section{Die BibTeX-Styledatei}
% \changes{0.52}{2005/11/01}{neues Feld "`citeas"' eingef�hrt}
%    \begin{macrocode}
%<*bibstyle>
ENTRY{
	state			% DE
	jurisdiction		% Ord. Gerichtsbarkeit
	level			% Bundesgerichte
	place			% Karlsruhe
	courtname		% Bundesgerichtshof oder Bundesmin. der Fin. 
	courtshort		% BGH oder BMF
	courtspecial		% GrS
	chamber			% ("X ZR")
	date			% 26.9.1996
	decision		% Urteil / Beschluss / Vorlagebeschl.

	official		% Slg. 
	officialshort		% E (statt BVerfGE)
	officialyear		% 1996
	officialvolume		% I
	officialpages		% 4551, 4570 

	journal			% ("ZStW")
	journalyear		% ("1983")
	journalvolume		% ("94")
	journalpages		% ("493 ff.")

	journaladditional	% ("=JZ 93, 333")

	name			% Kimberly Clark
	parties			% Frankreich / Kommission
	sign			% C-241/94
	language		% FR
	keyword			% Selectivit�tskriterium im Beihilfenrecht
	laws			% Artt. 87 ff. EG
	commented		% Pacteau, GdP 1845, 233 ff.
	note			% wohl Fehlurteil
	annote			% Kopien in Ordner R23
	
	citeas			% journal / official (j/o)
	
	sortkeyg		% manueller Sortierschluessel (Ger-Ebene)
  sortkeyu		% manueller Sortierschluessel (Urt-Ebene)
  }
  { }
  { }


FUNCTION {not}
{   { #0 }
  { #1 }
  if$
}

FUNCTION {and}
{   'skip$
  { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
  'skip$
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "\rspitem[%" write$
  newline$
  " {" write$
    type$ empty$
	{ "{}" write$ }
	{ "{" type$ * "}" * write$ }
    if$
    state empty$
	{ "{}" write$ }
	{ "{" state * "}" * write$ }
    if$
    jurisdiction empty$
	{ "{}" write$ }
	{ "{" jurisdiction * "}" * write$ }
    if$
    level empty$
	{ "{}" write$ }
	{ "{" level * "}" * write$ }
    if$
    place empty$
	{ "{}" write$ }
	{ "{" place * "}" * write$ }
    if$
    courtname empty$
	{ "{}" write$ }
	{ "{" courtname * "}" * write$ }
    if$
  "}%" write$
  newline$

  " {" write$
    courtshort empty$
	{ "{}" write$ }
	{ "{" courtshort * "}" * write$ }
    if$
    courtspecial empty$
	{ "{}" write$ }
	{ "{" courtspecial * "}" * write$ }
    if$
    chamber empty$
	{ "{}" write$ }
	{ "{" chamber * "}" * write$ }
    if$
  "}%" write$
  newline$
}


FUNCTION {output.bibitem2}
{
  " {" write$
    date empty$
	{ "{}" write$ }
	{ "{" date * "}" * write$ }
    if$
    sign empty$
	{ "{}" write$ }
	{ "{" sign * "}" * write$ }
    if$
    parties empty$
	  	{"{}" write$ }
  		{"{" parties * "}" * write$}
	  if$
	  name empty$
	  	{"{}" write$ }
  		{"{" name * "}" * write$}
	  if$
    decision empty$
	{ "{}" write$ }
	{ "{" decision * "}" * write$ }
    if$

  "}%" write$
  newline$

  " {" write$
    official empty$
	{ "{}" write$ }
	{ "{" official * "}" * write$ }
    if$
    officialshort empty$
	{ "{}" write$ }
	{ "{" officialshort * "}" * write$ }
    if$
    officialpages empty$
    	{
	     officialvolume empty$
	     	{ 
	     	  officialyear empty$
	     	   { "{}" write$ }
	     	   { "{" officialyear * "}" * write$ }
	     	  if$
	     	}
	     	{
	     	  officialyear empty$
		       { "{" officialvolume * "}" * write$ }
		       { "{" officialyear * " " * officialvolume * "}" * write$ }
	        if$
	      }
	     if$
	    }
	    { 
       officialvolume empty$
		    {
		      officialyear empty$
		       { "{" officialpages * "}" * write$ }
		       { "{" officialyear * ", " * officialpages * "}" * write$ }
		      if$
		    }
		    {
		      officialyear empty$
		       { "{" officialvolume * ", " * officialpages * "}" * write$ }
	         { "{" officialyear * " " * officialvolume * ", " * officialpages * "}" * write$ }
	        if$
	      }
	     if$
	    }
    if$
  "}%" write$
  newline$

  " {" write$
    journal empty$
	{ "{}" write$ }
	{ "{" journal * "}" * write$ }
    if$
    journalpages empty$
	{ 
	  journalyear empty$
		{"{}" write$}
		{"{" journalyear * "}" * write$ }
	  if$
	}
	{
	  journalyear empty$
	  	{"{" journalpages * "}" * write$ }
		{"{" journalyear * ", " * journalpages * "}" * write$ }
	  if$
	}
    if$
    journaladditional empty$
	{ "{}" write$ }
	{ "{" journaladditional * "}" * write$ }
    if$
  "}%" write$
  newline$
}

FUNCTION {output.bibitem3}
{
  " {" write$
  note empty$
   { "{}" write$ }
   { "{" note * "}" * write$ }
  if$
  annote empty$
   { "{}" write$ }
   { "{" annote * "}" * write$ }
  if$
  commented empty$
   { "{}" write$ }
   { "{" commented * "}" * write$ }
  if$
  citeas empty$
   { "{}" write$ }
   { "{" citeas * "}" * write$ }
  if$    
  "}%" write$  
  newline$
  "]%" write$
  newline$
  "{" cite$ * "}%" * write$
  newline$
}

FUNCTION {judgement}
{ output.bibitem 
  output.bibitem2
  output.bibitem3
}

FUNCTION {court}{}

FUNCTION {institution}{}

FUNCTION {document}{
  output.bibitem 
  output.bibitem2
  output.bibitem3
}

FUNCTION {default.type}{judgement}

READ

FUNCTION {sortify}{ purify$ "l" change.case$ }

FUNCTION {field.or.null}
{ duplicate$ empty$
  { pop$ "" }
  'skip$
  if$
}



FUNCTION {presort}
{ 
  type$ field.or.null sortify
  "    "
  *
  sortkeyg empty$ 
  {
     state field.or.null sortify
  }
  {
     sortkeyg field.or.null sortify
  }
  if$
  *
  "    "
  *
  jurisdiction field.or.null sortify
  *
  "    "
  *
  level field.or.null sortify
  *
  "    "
  *
  courtshort field.or.null sortify
  *
  "    "
  *
 
  sortkeyu empty$
  {  
    officialpages empty$
	{
		journal field.or.null sortify
	}
	{
		officialshort field.or.null sortify
	}
    if$
  }
  {
    sortkeyu field.or.null sortify
  }
  if$
  *
  "    "
  *

    officialpages empty$
	{
		journalyear field.or.null sortify
		*
		"    "
		*
		journalvolume field.or.null sortify
		*
		"    "
		*
		journalpages field.or.null sortify
	}
	{
		officialyear field.or.null sortify
		*
		"    "
		*
		officialvolume field.or.null sortify
		*
		"    "
		*
		officialpages field.or.null sortify
	}
    if$
    *
  #1 entry.max$ substring$
  'sort.key$ :=
}


ITERATE {presort}

FUNCTION {before.sort} { "BEFORE SORT:" top$ }
EXECUTE {before.sort}
FUNCTION {print.sort.keys} {sort.key$ top$}
ITERATE {print.sort.keys}

SORT

FUNCTION {after.sort} {"AFTER SORT:" top$}
EXECUTE {after.sort}
ITERATE {print.sort.keys}


FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { "%" write$ newline$
      "% This bibliography was produced by using jurarsp.bst" write$ newline$
      "%" write$ newline$
      preamble$ write$ newline$
    }
  if$
  "\begin{thersplist}{}" write$ newline$
}

EXECUTE {begin.bib}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thersplist}" write$ newline$
}

EXECUTE {end.bib}
%</bibstyle>
%    \end{macrocode}
% \section{Beispieldateien}
% \subsection{Das Beispieldokument}
%    \begin{macrocode}
%<*example>
\documentclass[english]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{german}
\usepackage{calc}
\usepackage{jurarsp}
\usepackage{hyperref}
%
\begin{document}

\rspstyle{jurarsp}
\rspdata{rsptest}

\newpage

Beispiel f�r ein Rechtsprechungs-Zitat:\footnote{%
So schon 
\rcite[33 ff.]{aaa:dummy}.}

Beispiel f�r ein Dokument-Zitat:\footnote{%
\rcite[222]{bmf:st01:175}.}

BGH Zitat noch einmal vollst�ndig.%
\footnote{Vgl. auch dazu \rfullcite[223 ff.]{aaa:dummy}.}

\newpage

BGH Zitat noch einmal.%
\footnote{Vgl. auch dazu \rcite[223 ff.]{aaa:dummy}.}

BGH Zitat noch einmal.%
\footnote{So der BGH erstmals in 
\rshortcite[223 ff.]{aaa:dummy}, 
spaeter dann st. Rsp., vgl. \rcite[223 ff.]{aaa:dummy}; 
\rrepeatcite[223 ff.]{aaa:dummy}; ebenso nun \rcite[222]{bmf:st01:175}.}

\end{document}
%</example>
%    \end{macrocode}
% \subsection{Die BibTeX-Datenbank f�r das Beispieldokument}
%    \begin{macrocode}
%<*bibfile>
@JUDGEMENT{aaa:dummy,
crossref = "bghz",
courtspecial = {GrS},
chamber = {Gro{\ss}er Senat},
date = {01.08.1993},
decision = {Urteil},
officialvolume = {83},
officialpages = {244 ff.},
journal = {NJW},
journalyear = {1994},
journalpages = {1923 ff.},
journaladditional = {= JZ 1995, 2323 ff.},
name = {Dummy-Entscheidung},
parties = {Meyer ./. M{\"u}ller},
sign = {II ZR 233/91},
language = {Deutsch},
keyword = {Test},
laws = {{\S\S} 223 ff. BGB},
commented = {abl. Anm. K{\"u}belb{\"o}ck, MDR 95, 223 ff.},
note = {rkr.},
annote = {Kopien in Ordner 23, noch lesen},
citeas = {official},
sortkeyu = {}}

@COURT{bghz,
courtname = {Bundesgerichtshof},
courtshort = {BGH},
place = {Karlsruhe},
official = {BGHZ},
officialshort = {Z},
sortkeyg = {015010010000},
level = {Bundesgerichtshof},
state = {Bundesrepublik Deutschland},
jurisdiction = {Ordentliche Gerichtsbarkeit}}

@DOCUMENT{bmf:st01:175,
crossref = "bmf",
date = {23.01.2001},
decision = {BMF-Schreiben},
officialyear = {2001},
officialpages = {175},
name = {Schreiben betr. ertragsteuerliche Behandlung von Film- und Fernsehfonds},
sign = {IV A 6 --- S 2241 --- 8/01},
language = {Deutsch},
annote = {ge{\"a}nd. durch BMF v. 5.8.03 in Beck Nr. 1 {\S} 5 / 4},
sortkeyu = {0}}

@INSTITUTION{bmf,
courtname = {Bundesminister der Finanzen},
courtshort = {BMF},
place = {Berlin},
official = {Bundessteuerblatt Teil I},
officialshort = {BStBl. I},
sortkeyg = {015020010000},
level = {Bundesminister der Finanzen},
state = {Bundesrepublik Deutschland},
jurisdiction = {Finanzverwaltung}}
%</bibfile>
%    \end{macrocode}
% \subsection{Die BibTeX-Datenbank f�r die Dokumentation}
% Diese Datei muss extra mit geliefert werden, damit die Dokumentation die 
% Features von |jurarsp| zeigen kann (ansonsten funktionieren die Kommentarzeichen
% im |doc|-style nicht!
%    \begin{macrocode}
%<*bblfile>
\begin{thersplist}{}

\rspitem[^^A
 {{document}{Bundesrepublik Deutschland}{Finanzverwaltung}{Bundesminister der
  Finanzen}{Berlin}{Bundesminister der Finanzen}}^^A
 {{BMF}{}{}}^^A
 {{23.01.2001}{IV A 6 --- S 2241 --- 8/01}{}{Schreiben betr. ertragsteuerliche
  Behandlung von Film- und Fernsehfonds}{BMF-Schreiben}}^^A
 {{Bundessteuerblatt Teil I}{BStBl. I}{2001, 175}}^^A
 {{}{}{}}^^A
 {{}{ge{\"a}nd. durch BMF v. 5.8.03 in Beck Nr. 1 {\S} 5 / 4}{}{}}^^A
]^^A
{bmf:st01:175}^^A

\rspitem[^^A
 {{judgement}{Bundesrepublik Deutschland}{Ordentliche
  Gerichtsbarkeit}{Bundesgerichtshof}{Karlsruhe}{Bundesgerichtshof}}^^A
 {{BGH}{GrS}{Gro{\ss}er Senat}}^^A
 {{01.08.1993}{II ZR 233/91}{Meyer ./.
  M{\"u}ller}{Dummy-Entscheidung}{Urteil}}^^A
 {{BGHZ}{Z}{83, 244 ff.}}^^A
 {{NJW}{1994, 1923 ff.}{= JZ 1995, 2323 ff.}}^^A
 {{rkr.}{Kopien in Ordner 23, noch lesen}{abl. Anm. K{\"u}belb{\"o}ck, MDR 95,
  223 ff.}{official}}^^A
]^^A
{aaa:dummy}^^A

\end{thersplist}
%</bblfile>
%    \end{macrocode}
% \subsection{Die Konfigurationsdatei}
%    \begin{macrocode}
%<*config>
%% Funktion wird noch nicht unterst�tzt 
\rspsetup{}
%</config>
%    \end{macrocode}
%
% \Finale
% \PrintChanges 
% \PrintIndex