summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jura
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/jura
Initial commit
Diffstat (limited to 'macros/latex/contrib/jura')
-rw-r--r--macros/latex/contrib/jura/README9
-rw-r--r--macros/latex/contrib/jura/jura.dtx1237
-rw-r--r--macros/latex/contrib/jura/jura.ins8
-rw-r--r--macros/latex/contrib/jura/jura.pdfbin0 -> 242119 bytes
-rw-r--r--macros/latex/contrib/jura/jura2html173
5 files changed, 1427 insertions, 0 deletions
diff --git a/macros/latex/contrib/jura/README b/macros/latex/contrib/jura/README
new file mode 100644
index 0000000000..37a71edb53
--- /dev/null
+++ b/macros/latex/contrib/jura/README
@@ -0,0 +1,9 @@
+README to accompany the jura package by Felix Braun.
+
+jura implements the rules usually used in typesetting term papers at
+German law schools. Please note that the author did not supply a user
+guide in English as users outside the German legal profession will
+hardly need the package. So if you process jura.dtx with LaTeX you
+will get a user guide and package documentation in German only.
+
+Juergen Fenn, 2006-05-24.
diff --git a/macros/latex/contrib/jura/jura.dtx b/macros/latex/contrib/jura/jura.dtx
new file mode 100644
index 0000000000..4465a2b0d9
--- /dev/null
+++ b/macros/latex/contrib/jura/jura.dtx
@@ -0,0 +1,1237 @@
+% \iffalse metacomment
+%
+%% Written by Felix Braun
+%%
+% This is a LaTeX2e class for papers in german law schools. It is
+% probably only of use for german law students, so the rest of the
+% documentation will be in german.
+%
+% This material is copyrighted by Felix Braun. 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 die jura-Domumentklasse benutzen wollen, starten sie TeX mit der
+% Datei jura.ins und legen sie die so erzeugten Dateien in ein Verzeichnis,
+% wo sie TeX sp"ater findet.
+%
+% \fi
+% \CheckSum{948}
+% \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{jura.dtx}[1998/07/06 v4.3 Documentation]
+% \GetFileInfo{jura.dtx}
+% \title{Die Dokumentklasse |jura|\thanks{Version \fileversion}}
+% \author{Felix Braun}
+% \date{\filedate}
+% \maketitle
+% \tableofcontents
+%
+% \pagebreak[2]
+% \begin{abstract}
+% Dies ist eine Dokumentklasse f"ur \LaTeXe\ zum Schreiben von juristischen
+% Hausarbeiten. Sie benutzt die daf"ur "ubliche Seitenaufteilung mit 7 cm Rand.
+%
+% Au"serdem wird ein Paket zur Verf"ugung gestellt, da"s einem erlaubt, in
+% \LaTeX-Dokumenten die "Uberschriften nach dem alphanummerischen System zu
+% nummerieren und automatisch ins Inhaltverzeichnis aufzunehmen. Querverweise
+% innerhalb des Dokuments werden korrekt behandelt.
+% \end{abstract}
+%
+% \section{Einleitung}
+% Im Laufe des Jurastudiums an einer deutschen Universit"at m"ussen mindestens
+% sechs Hausarbeiten angefertigt werden, an deren Form bestimmte Anforderungen
+% gestellt werden. Um diese zu erf"ullen, eignet sich ein Textsatzprogramm wie
+% \LaTeX\ in besonderer Weise.
+%
+% Allerdings ist \LaTeX\ nicht auf die speziellen Anforderungen, die an eine
+% juristische Hausarbeit gestellt werden ausgelegt. Insbesondere verwendet
+% \LaTeX\ standardm"a"sig eine rein nummerische Gliederung, die nicht den
+% Gewohnheiten in der Rechtswissenschaft entspricht. Weiterhin werden die
+% "Uberschriften in verschiedenen Gr"o"sen gesetzt, was bei juristischen
+% Gutachten, die typischerweise stark untergliedert sind, den Text mehr
+% zerrei"st, als da"s es seine Lesbarkeit erh"oht.
+%
+% Diese \LaTeXe -Dokumentklasse dient dazu, diese Probleme zu beheben, ohne auf
+% den Komfort der automatischen Erstellung des Inhaltsverzeichnisses sowie
+% die M"oglichkeit von Verweisen mit Gliederungsnummern verzichten zu m"ussen.
+%
+% \section{Verwendung}
+% In diesem Paket befindet sich zum einen die Dokumentklasse |jura.cls|,
+% die das "ubliche Seitenlayout einer juristischen Hausarbeit an deutschen
+% Universit"aten in \LaTeX\ umsetzt. Das bedeutet eine Seitenaufteilung mit
+% 7cm Rand, anderthalbfachem Zeilenabstand und einer 12-Punkt
+% Schrift.\footnote{Das Layout ist jedoch so flexibel, da"s es den selben Text
+% mit einfachen "Anderungen unauf"|f"allig auf mehr oder weniger Seiten
+% verteilen kann, falls im Notfall Bedarf in dieser Richtung bestehen
+% sollte. \texttt{(-;}}
+%
+% Unabh"angig davon wird das Paket |alphanum.sty| bereitgestellt, welches
+% einige neue Befehle enth"alt, mit denen Texte nach dem alphanummerischen
+% System gegliedert werden k"onnen, wie es in juristischen Dokumenten "ublich
+% ist; au"serdem werden einige \LaTeX -Befehle an dieses Schema angepasst.
+% Alle diese Befehle k"onnen unabh"angig von der benutzten Dokumentklasse
+% verwendet werden falls die formalen Vorgaben einmal vom "Ublichen
+% abweichen sollten (wie etwa bei Dissertationen oder Urteilen).
+%
+% \subsection{Einbindung}
+% Um die |jura|-Dokumentenklasse benutzen zu k"onnen, m"ussen erst die
+% beiden Dateien |jura.cls| und |alphanum.sty| erzeugt werden. Dies
+% geschieht indem man \TeX\ mit der Datei |jura.ins| aufruft. Dabei wird
+% gleichzeitig ein Testdokument mit Namen |juratest.ltx| erzeugt, das die
+% Verwendung aller Funktionen der Klasse demonstriert. Die so erzeugten
+% Dateien legt man dann in ein Verzeichnis, in dem \LaTeX\ sie sp"ater findet.
+%
+% Bei der Erstellung eines Dokuments teilt man \LaTeX\ mit, da"s man die
+% |jura| Dokumentklasse benutzen m"ochte, indem man einfach am Anfang des
+% Dokuments
+% \begin{quote}
+% \cs{documentclass}\oarg{Optionen}|{jura}|
+% \end{quote}
+% angibt. Optionen k"onnen dabei sein:
+% \begin{description}
+% \item[twoside:] f"ur einen doppelseitigen Ausdruck. Bei Seiten mit geraden
+% Nummern ist der Rand auf der rechten Seite.
+% \item[draft:] Zeilen, bei denen \LaTeX\ Probleme mit der Formatierung hatte,
+% werden mit einem schwarzen Balken markiert.
+% \item[widefront:] der Kopfteil der Arbeit bekommt ein anderes Layout mit
+% weniger Rand und daf"ur breiteren Text (s.u. \ref{Struc}).
+% \item[normalfront:] auch der Kopfteil beh"alt das Layout mit 7cm Rand links.
+% \item[tightfn:] Fu"snoten werden, anders als der Rest des Dokuments,
+% nur mit einfachem Zeilenabstand gesetzt.
+% \item[spacedfn:] auch Fu"snoten werden mit anderthalbfachem Zeilenabstand
+% gesetzt
+% \end{description}
+% Von diesen Optionen sind normalfront und tightfn voreingestellt.
+% Beim Ausdruck sind Schriftgr"o"se 12pt und DIN A4 Papier fest eingestellt,
+% da das Layout auf diesen Vorgaben beruht.
+%
+% M"ochte man auf das Layout verzichten und lediglich die Befehle f"ur die
+% alphanummerische Gliederung benutzen, schreibt man einfach
+% \begin{quote}
+% |\usepackage{alphanum}|
+% \end{quote}
+% irgendwo in den Kopf des Dokuments. Optionen oder andere Komplikationen
+% gibt es dazu (noch) nicht.
+%
+% \subsection{neue Befehle}
+% \subsubsection{Dokumentstruktur}
+% Die in diesem Abschnitt beschriebenen Befehle ergeben nur im Zusammenhang
+% mit dem juristischen Layout einen Sinn und werden daher nur definiert, wenn
+% dieses auch verwendet wird; sie sind deshalb nicht benutzbar, wenn
+% lediglich das Paket |alphanum.sty| eingebunden wird.
+%
+% \label{Struc}Die grobe Struktur des Dokuments wird wie auch bei der
+% Standard-Dokument"-klas"-se |book| durch die Befehle \cs{frontmatter},
+% \cs{mainmatter} und \cs{backmatter} bestimmt.\DescribeMacro{\frontmatter}
+% \DescribeMacro{\mainmatter}\DescribeMacro{\backmatter} Dabei wird der
+% Kopfteil der Arbeit, welcher z.B. Inhaltsverzeichnis, Sachverhalt oder
+% Literaturverzeichnis enth"alt, mit r"omischen Zahlen paginiert. Die einzelnen
+% Abschnitte beginnen jeweils auf einer neuen Seite.
+%
+% \subsubsection{Gliederung}
+% \DescribeMacro{\toc}
+% Durch den Befehl \cs{toc}\oarg{Inhaltverzeichnis}\marg{"Uberschrift} wird ein
+% neuer Gliederungspunkt auf der aktuellen Ebene eingef"ugt. Er wird
+% automatisch nummeriert. Wird ein optionales Argument angegeben, wird dieses,
+% sonst die \meta{"Uberschrift} ins Inhaltsverzeichnis aufgenommen. Es
+% existiert auch eine *-Version des Befehls (also \cs{toc*}\marg{"Uberschrift}),
+% die in den Flie"stext nur die Gliederungsnummer aufnimmt. \meta{"Uberschrift}
+% findet sich dann nur noch im Inhaltsverzeichnis.
+%
+% Mit dem Kommando \cs{sub}\oarg{Inhaltsverzeichnis}\marg{"Uberschrift}
+% \DescribeMacro{\sub} wird zus"atzlich auf die n"achsttiefere Ebene gewechselt.
+% Es wird also \meta{"Uberschrift} als Unterpunkt zum gerade bearbeiteten Titel
+% eingef"ugt. Die "Uberschriften werden wie bereits gesagt nach dem "ublichen
+% alphanummerischen System nummeriert. Dabei tragen die einzelnen Ebenen
+% folgende Bezeichnungen:\footnote{Diese lassen sich aber ohne gro"sen Aufwand
+% an andere Vorgaben anpassen. Siehe dazu die Dokumentation des Makros
+% \cs{J@INumberRoot}.}
+% \begin{quote}
+% A. I. 1. a) aa) $\alpha$) $\alpha\alpha$) (1) (a) (aa) ($\alpha$)
+% ($\alpha\alpha$)
+% \end{quote}
+% Es stehen somit 12 Gliederungsebenen zur Verf"ugung. Das sollte auch f"ur die
+% aufwendigsten Arbeiten ausreichen. Auch hier erzeugt die *-Form nur die
+% Gliederungsnummer, nimmt aber auch \meta{"Uberschrift} in das
+% Inhaltsverzeichnis auf.
+%
+% Mit \DescribeMacro{\levelup} \cs{levelup} wird die aktuelle Tiefe beendet und
+% es wird auf die n"achsth"ohere Ebene zur"uckgekehrt.
+%
+% \DescribeMacro{\lvlastyle} Das konkrete Aussehen der "Uberschriften im Text
+% ist für jede Gliederungsebene getrennt einstellbar. Es wird bestimmt durch
+% die Makros \cs{lvlastyle}, \cs{lvlbstyle} bis \cs{lvllstyle}. Voreingestellt
+% ist dabei
+% \begin{itemize}
+% \item für Gliederungsebene 1 große, fette Schrift
+% (\cs{large}\cs{bfseries}),
+% \item für Gliederungsebenen 2--7 normal große, fette Schrift
+% (\cs{bfseries}),
+% \item für Gliederungsebenen 8--12 kurisve Schrift
+% (\cs{itshape}).
+% \end{itemize}
+%
+% Diese Voreinstellungen k"onnen durch Umdefinieren der entsprechenden Makros
+% ver"andert werden. Zum Beispiel k"onnen "Uberschriften auf Ebene 3 in
+% Kapit"alchen gesetzt werden indem irgendwo im Dokument folgender Befehl
+% eingef"ugt wird:
+% \begin{quote}\begin{verbatim}
+% \renewcommand*{\lvlcstyle}{\scshape}
+% \end{verbatim}\end{quote}
+%
+% \DescribeMacro{\sectfont} Zum Setzen der "Uberschriften kann au"serdem ein
+% beliebiger anderer Font benutzt werden. Dieser wird durch das Makro
+% \cs{sectfont} bestimmt. Voreingestellt ist hier der normale Textfont
+% (\cs{normalfont}).
+%
+% \subsubsection{Verweise}
+% Die Syntax der Befehle f"ur Querverweise innerhalb des Textes (\cs{label},
+% \cs{pageref} und \cs{ref}) wurde nicht ver"andert. \DescribeMacro{\ref}
+% \cs{ref} verh"alt sich aber gegen"uber Standard-\LaTeX\ etwas anders: Um
+% einen Abschnitt eindeutig identifizieren zu k"onnen, m"ussen alle
+% dar"uberliegenden Ebenen mitangegeben werden (z.\,B.: A\,II\,3.). Da das
+% bei gro"ser Gliederungstiefe recht lang wird, werden alle die
+% Gliederungsnummern weggelassen, die mit der aktuellen "ubereinstimmen.
+% Der Verweis sieht also je nach Kontext unterschiedlich aus. Zur
+% Verdeutlichung diene folgendes Beispiel; man beachte, wie die verschiedenen
+% Verweise auf denselben Abschnitt aussehen.
+% \begin{quote}
+% {\large\bfseries A. Gew"ahrleistung aus Vertrag}[\ldots]\\
+% {\bfseries I. Kaufvertrag}[\ldots]\\
+% {\bfseries 1. Vertragsschlu"s}[\ldots]\\
+% {\bfseries 2. Mangel}\\\relax
+% [\ldots] wie bereits zum Vertragsschlu"s ausgef"uhrt (s.o. 1.)[\ldots]\\
+% {\bfseries II. Werkvertrag}\\\relax
+% [\ldots] wie beim Kaufvertragsschlu"s gesehen (s.o. I\,1.)[\ldots]\\
+% {\large\bfseries B. Schadensersatz}\\\relax
+% [\ldots] schon beim Kauvertragsschlu"s er"ortert (s.o. A\,I\,1.)[\ldots]
+% \end{quote}
+% Dieses Verhalten kann jedoch umgangen werden, wenn die *-Form des Befehls,
+% also \cs{toc*}, benutzt wird. Mit diesem Befehl werden immer auch alle
+% h"oheren Gliederungsebenen mit ausgegeben.
+%
+% \subsection{Literaturverzeichnis}
+% \DescribeEnv{jurabibliography}
+% Auch die \LaTeX-Standardumgebung f"ur das Literaturverzeichnis ist nicht auf
+% die besonderen Bed"urfnisse juristischer Arbeiten zugeschnitten. Es wird also
+% die neue Umgebung |jurabibliography| zur Verf"ugung gestellt. Das
+% Literaturverzeichnis wird mit
+% \begin{quote}
+% |\begin{jurabibliography}|
+% \end{quote}
+% anders als die \LaTeX-Umgebung also ohne Argument begonnen und entsprechend
+% auch mit
+% \begin{quote}
+% |\end{jurabibliography}|
+% \end{quote}
+% wieder beendet. \DescribeMacro{\jbibitem}Dazwischen werden die einzelnen
+% Eintr"age mit dem Befehl
+% \begin{quote}
+% \cs{jbibitem}\marg{Autor}\marg{Kurztext}\marg{K"urzel}\ldots \meta{Eintrag}\ldots
+% \end{quote}
+% erzeugt. Dabei ist \meta{Autor} der Name des Autors, so wie er im
+% Literaturverzeichnis erscheinen soll; \meta{Kurztext} enth"alt den Text, der
+% bei Bez"ugen in der Arbeit erzeugt wird; \meta{K"urzel} schlie"slich ist eine
+% beliebige Zeichenfolge, die im Text nicht erscheint, die aber zum Zitieren mit
+% dem \DescribeMacro{\cite}Befehl \cs{cite}\oarg{Fundstelle}\marg{K"urzel}
+% gebraucht wird.
+%
+% Dieser erzeugt im eigentlichen Text (oder in den Fu"snoten) den
+% \meta{Kurztext} des Literatureintrages mit dem K"urzel \meta{K"urzel}, gefolgt
+% von der genauen \meta{Fundstelle} sofern diese angegeben wird. So erzeugt bei
+% einem Literaturverzeichnis mit folgendem Eintrag
+% \begin{verbatim}
+% \begin{jurabibliography}
+% ...
+% \jbibitem{Maurer, Hartmut}{\emph{Maurer} AVwR }{Maurer}"`Allgemeines...
+% ...
+% \end{jurabibliography}
+% \end{verbatim}
+% der Befehl |\cite[\S~3 Rn.5]{Maurer}| dieses Ergebnis: \emph{Maurer} AVwR \S~3
+% Rn.5.
+%
+% \DescribeEnv{sachverhalt} F"ur den Sachverhalt wird eine eigene Umgebung
+% bereitgestellt. Sie wird durch |\begin{sachverhalt}| und |\end{sachverhalt}|
+% aufgerufen.
+%
+% \subsection{Hinweise}
+% Da ich mein Studium nunmehr beendet habe, bekomme ich nur noch selten
+% Gelegenheit, juristische Arbeiten nach den strengen Formalia für
+% Hausarbeiten zu verfassen. Aus diesem Grunde entwickele ich dieses Packet
+% nur noch auf ausdrückliche Anregung von au"sen hin weiter. Ich bin somit
+% zwar immer noch dankbar für Anregungen oder Hinweise auf Fehler, von
+% selbst werde ich aber wohl nicht mehr tätig werden.
+%
+% Die jeweils neueste Version dieser Dokumentklasse findet sich auf den
+% ftp-Servern des \TeX-Archivs\footnote{z.B. \texttt{ftp.dante.de},
+% \texttt{ftp.ctan.org}, \texttt{ftp.tex.ac.uk}.} in dem Verzeichnis
+% \begin{quote}
+% \texttt{CTAN: macros/latex/contrib/supported/jura/}
+% \end{quote}
+% und auf Carsten Gerlachs |jura.cls|-Homepage
+% \begin{quote}
+% \texttt{http://home.pages.de/\textasciitilde gerlo/juracls/}
+% \end{quote}
+%
+% Für die Benutzung von Literaturdatenbanken mittels \BibTeX\ hat Jens Berger
+% ein Packet namens \texttt{jurabib} geschrieben, welches sich bestens mit
+% den hier enthaltenen verwenden l"asst. Zu finden ist dieses auf den
+% ftp-Servern des \TeX-Archivs im selben Verzeichnis wie die Dokumentklasse
+% \texttt{jura}.
+%
+% Sollten Sie einen Fehler finden, einen Verbesserunsvorschlag haben oder
+% sonst das dringende Bed"urfnis versp"uren, ein Lebenszeichen von sich zu
+% geben, bin ich erreichbar unter:
+% \begin{quote}
+% Felix Braun \texttt{<fbraun@atdot.org>}
+% \end{quote}
+%
+% \StopEventually
+%
+% \changes{1.0}{old}{erste Version}
+% \changes{2.0}{old}{jetzt als Dokumentoption einzubinden}
+% \changes{2.0}{old}{Inhaltsverzeichnis kann an beliebige Stelle gesetzt werden}
+% \changes{3.0}{1996/01/08}{\LaTeXe-Dokumentklasse}
+% \changes{3.0}{1996/01/08}{komplett neu geschrieben viel k"urzer und eleganter}
+% \changes{3.0}{1996/01/08}{Dokumentation mit \texttt{doc}}
+% \changes{3.1}{1996/01/21}{History den einzelnen Macros zugeordnet}
+% \changes{3.1}{1996/01/30}{wo m"oglich Definitionen mit \cs{new\-command*}}
+% \changes{3.4}{1996/05/29}{Installation durch eigenes Script}
+% \changes{3.5}{1996/06/26}{Testdokument integriert}
+% \changes{3.9}{1997/09/03}{Dokumentation "uberarbeitet}
+% \changes{4.0}{1998/01/17}{split into a documentclass and a package, adapted documentation}
+% \changes{4.1}{1998/02/12}{placed under the GPL}
+% \changes{4.1}{1998/02/12}{changed the names of all internal functions according to \LaTeX2e-conventions}
+% \changes{4.2}{1998/07/05}{replaced all Umlauts with \texttt{german.sty}-notation [Hilmar Preusse]}
+% \changes{4.3}{1999/04/21}{updated documentation}
+%
+% \section{Quelltext}
+% Der Quelltext mag kein Lehrbeispiel f"ur saubere Programmiertechnik
+% sein, vieles ist nur im \emph{trial-and-error}-Verfahren entstanden, aber
+% immerhin erf"ullt er seine Aufgabe. F"ur Verbesserungsvorschl"age in jeder
+% Hinsicht bin ich stets dankbar.
+%
+% \subsection{Kopf}%
+% Jetzt folgt der Code, der es erm"oglicht, dieses Dokumentation zu setzen.
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{german}
+%\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{jura.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% Hier identifizieren sich die verschiedenen Dateien, je nachdem, welche
+% Optionen |detex| "ubergeben wurden.
+% \begin{macrocode}
+%<class,package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<class>\ProvidesClass{jura}[1998/07/13 v4.3 juristische Hausarbeiten]
+%<*package>
+\ProvidesPackage{alphanum}[1998/07/13 v4.3 alphanumeric section numbers]
+%</package>
+%<test>\ProvidesFile{juratest.ltx}
+% \end{macrocode}
+%
+% \subsection{Optionen}
+% \begin{macro}{Optionen}
+% |twoside| und |draft| werden deklariert. Wenn sie angegeben
+% werden, "ubergeben wir sie einfach an |report|. Dort werden sie dann
+% benutzt.
+% \changes{3.0}{1996/01/08}{twoside m"oglich}
+% \changes{3.0}{1996/01/08}{draft m"oglich}
+% \begin{macrocode}
+%<*class>
+\DeclareOption{twoside}{\PassOptionsToClass{twoside}{report}}
+\DeclareOption{draft}{\PassOptionsToClass{draft}{report}}
+% \end{macrocode}
+% \changes{3.8}{1996/08/27}{widefront m"oglich [Felix Roske]}
+% |widefront| setzt die Textbreite auf 15,77cm; links und rechts bleibt je ein
+% Zoll Rand. |normalfront| beh"alt den selben Seitenschnitt wie im Hauptteil
+% des Textes. Voreingestellt ist |normalfront|
+% \begin{macrocode}
+\newlength\frontwidth\newlength\ofrontmargin\newlength\efrontmargin
+\DeclareOption{widefront}{\setlength{\frontwidth}{15,77cm}
+\setlength{\efrontmargin}{0,75mm}\setlength{\ofrontmargin}{0,75mm}}
+\DeclareOption{normalfront}{\setlength{\frontwidth}{12,2cm}
+\setlength{\ofrontmargin}{4,46cm}\setlength{\efrontmargin}{-7,4mm}}
+% \end{macrocode}
+%
+% \changes{4.0}{1998/01/17}{tightfn und spacedfn eingebaut}
+% \changes{4.1}{1998/02/13}{tightfn und spacedfn funktionieren}
+% tightfn und spacedfn definieren den Befehl \cs{footnotespacing}, der
+% dann von \cs{@footnotetext} benutzt wird (siehe Seite \pageref{fntext}).
+% \begin{macrocode}
+\newcommand*{\J@FootnoteSpread}{1}
+\DeclareOption{tightfn}{\renewcommand*{\J@FootnoteSpread}{1}}
+\DeclareOption{spacedfn}{\renewcommand*{\J@FootnoteSpread}{1.3}}
+\AtEndOfClass{\setlength{\footnotesep}{\J@FootnoteSpread\footnotesep}}
+\ExecuteOptions{normalfront,tightfn}
+\ProcessOptions\relax
+\LoadClass[a4paper,12pt]{report}
+% \end{macrocode}
+% \changes{4.0}{1998/01/17}{braucht |alphanum.sty|}
+% Schlie"slich wird noch der Style f"ur die alphanummerische Gliederung
+% geladen.
+% \begin{macrocode}
+\RequirePackage{alphanum}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Seitenschnitt}
+% \begin{macro}{Seitenschnitt}
+% Jetzt folgen die "Anderungen in der Seitenaufteilung. Das wichtigste ist der
+% gro"se Rand links.
+% \changes{1.2}{old}{\cs{parindent} eingef"ugt}
+% \changes{1.3}{old}{kleineres \cs{parindent}}
+% \changes{1.5}{old}{kein \cs{parskip} mehr}
+% \changes{2.7}{old}{\cs{texwidth} auf 12,2cm heruntergesetzt so da"s jetzt die 60-70 Zeichen je Zeile eingehalten werden}
+% \changes{2.7}{old}{\cs{marginparwidth} angepasst}
+% \changes{3.0}{1996/01/08}{Seitennotizen im inneren Rand}
+% \changes{3.0}{1996/01/08}{Seitennotizen gr"o"ser}
+% \changes{3.3}{1996/04/19}{\cs{textheight} mit \cs{baselineskip}}
+% \changes{3.4}{1996/05/29}{Zeilenabstand wird mit \cs{linespread} gesetzt}
+% \changes{3.4}{1996/05/29}{\cs{linespread} auf 1.3 reduziert f"ur 1,5fachen Zeilenabstand}
+% \changes{3.4}{1996/05/29}{Anzahl der Zeilen pro Seite angepasst}
+% \changes{3.4}{1996/05/29}{gleicher Rand oben und unten}
+% \changes{3.7}{1996/08/03}{Seitenspiegel wird berechnet, so da"s mehr/weniger Zeilen pro Seite m"oglich sind}
+% \changes{3.8}{1996/08/24}{\cs{topskip} wird nicht mehr gesetzt da andere Funktion als aus Kopka ersehen}
+% \begin{macrocode}
+\setlength{\parskip}{0ex}
+\setlength{\parindent}{1,3em}
+\setlength{\textwidth}{12,2cm}
+\setlength{\oddsidemargin}{4,46cm}
+\setlength{\evensidemargin}{-7,4mm}
+\setlength{\marginparwidth}{3,5cm}
+\reversemarginpar
+% \end{macrocode}
+% Nun folgt der anderhalbfache Zeilenabstand (\cs{linespread}|{1.3}| ist sogar
+% etwas mehr als Zeilenabstand 1,5). Standardm"assig werden 34 Zeilen pro
+% Seite gesetzt. Der Text wird aber auch mit mehr oder weniger Zeilen
+% zentriert, so da"s er an ein etwaiges Seitenlimit angepasst werden kann.
+% \begin{macrocode}
+\linespread{1.3}
+\setlength{\textheight}{34\baselineskip}
+\setlength{\textheight}{\baselinestretch\textheight}
+\setlength\topmargin{\paperheight}
+\addtolength\topmargin{-2in}
+\addtolength\topmargin{-\headheight}
+\addtolength\topmargin{-\headsep}
+\addtolength\topmargin{-\textheight}
+\addtolength\topmargin{-\footskip}
+\addtolength\topmargin{-\topskip}
+\addtolength\topmargin{-.5\topmargin}
+\@settopoint\topmargin
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{neue Macros}
+% Hier folgt der eigentlich interessante Teil, die Definition der Makros.
+% \subsubsection{Fu"snoten}
+% \begin{macro}{\@footnotetext}
+% \changes{1.1}{old}{\cs{footnotesep} wird auch mit \cs{baselinestretch} multipliziert}
+% \changes{3.8}{1996/08/13}{Fu"snoten mit einfachem Zeilenabstand}
+% \changes{3.8}{1996/08/13}{\cs{footnotesep} wieder auf einfachen Abstand}
+% \changes{4.0}{1998/01/16}{"Anderungen des \LaTeX-Kernels "ubernommen}
+% Im Gegensatz zum restlichen Text sollen die Fu"snoten mit nur einfachem
+% Zeilenabstand gesetzt werden. Dazu mu"s der \LaTeX-interne Befehl
+% \cs{@footnotetext} umdefiniert werden. Die Idee dazu stammt aus dem
+% \texttt{setspace}-pacakge von Geoffrey Tobin
+% (\texttt{G.Tobin@latrobe.edu.au}). \label{fntext}Der Code ist, bis auf das
+% \cs{linespread}, identisch mit dem \LaTeX-Befehl\footnote{siehe
+% |ltfloat.dtx|.}.
+% \begin{macrocode}
+\long\def\@footnotetext#1{\insert\footins{%
+ \linespread{\J@FootnoteSpread}\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+% \end{macrocode}
+% \end{macro}
+% % \subsubsection{Dokumentstruktur}
+% \begin{macro}{\frontmatter}
+% \changes{3.8}{1996/08/27}{Dokuentstrukturierung m"oglich}
+% \begin{macro}{\mainmatter}
+% \changes{3.8}{1996/08/27}{Dokuentstrukturierung m"oglich}
+% \begin{macro}{\backmatter}
+% \changes{3.8}{1996/08/27}{Dokuentstrukturierung m"oglich}
+% Die Dokumentteile beginnen jeweils auf einer neuen Seite. Textbreite, und
+% "=r"ander werden entsprechend der gew"ahlten Option gesetzt.
+% \begin{macrocode}
+\newcommand*{\frontmatter}{\cleardoublepage\pagenumbering{Roman}%
+\oddsidemargin\ofrontmargin\evensidemargin\efrontmargin%
+\hsize\frontwidth\columnwidth\hsize\linewidth\hsize\textwidth\hsize}
+\newcommand*{\mainmatter}{\cleardoublepage\pagenumbering{arabic}%
+\hsize12,2cm\columnwidth12,2cm\linewidth12,2cm\textwidth12,2cm%
+\oddsidemargin4,46cm\evensidemargin-7,4mm}
+\newcommand*{\backmatter}{\clearpage}
+%</class>
+% \end{macrocode}
+% \end{macro}\end{macro}\end{macro}
+%
+% \subsubsection{griechische Buchstaben}
+% \begin{macro}{\@greek}
+% Wir wollen einfach griechische Buchstaben erzeugen. Deswegen hier ein Makro,
+% da"s analog zu |\@alph{|\meta{Wert}|}| griechische Kleinbuchstaben erzeugt.
+% \changes{3.0}{1996/01/08}{Fehlermeldung wenn Argument gr"o"ser als 24}
+% \changes{3.1}{1996/01/30}{Argument ist jetzt Z"ahlername nicht Wert}
+% \changes{3.9}{1997/09/01}{Argument wieder Wert, f"ur Verweise}
+% \changes{3.9}{1997/09/02}{Name von \cs{greek} nach \cs{@greek} ge"andert
+% parallel zu "ahnlichen \LaTeX-Befehlen}
+% \changes{4.1}{1998/02/05}{\cs{ifcase} doesn't read its argument in braces}
+% \begin{macrocode}
+%<*package>
+\newcommand*{\@greek}[1]{\ifcase#1\relax\or$\alpha$\or$\beta$\or
+$\gamma$\or$\delta$\or$\varepsilon$\or$\zeta$\or$\eta$\or$\vartheta$\or
+$\iota$\or$\kappa$\or$\lambda$\or$\mu$\or$\nu$\or$\xi$\or$o$\or$\pi$\or
+$\rho$\or$\sigma$\or$\tau$\or$\upsilon$\or$\varphi$\or$\chi$\or$\psi$\or
+$\omega$\else\@ctrerr\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Z"ahler}
+% Nun werden die Z"ahler f"ur die zw"olf Ebenen deklariert.
+% \changes{3.9}{1997/09/02}{Z"ahler werden durch \cs{levelup} per Hand
+% zur"uckgesetzt}
+% \begin{macrocode}
+\newcounter{lvla}
+\newcounter{lvlb}
+\newcounter{lvlc}
+\newcounter{lvld}
+\newcounter{lvle}
+\newcounter{lvlf}
+\newcounter{lvlg}
+\newcounter{lvlh}
+\newcounter{lvli}
+\newcounter{lvlj}
+\newcounter{lvlk}
+\newcounter{lvll}
+% \end{macrocode}
+% \begin{macro}{\thelvla}
+% \changes{3.7}{1996/08/03}{\LaTeX-Konformere Numerierung}
+% Die Ausgabe der Z"ahler erfolg zentral "uber ein eigenes Macro. Dadurch
+% m"ussen "Anderungen an der Bezeichnung der Gliederungsebenen nur an einer
+% Stelle vorgenommen werden.
+% \begin{macrocode}
+\renewcommand*{\thelvla}{\J@Number}
+\renewcommand*{\thelvlb}{\J@Number}
+\renewcommand*{\thelvlc}{\J@Number}
+\renewcommand*{\thelvld}{\J@Number}
+\renewcommand*{\thelvle}{\J@Number}
+\renewcommand*{\thelvlf}{\J@Number}
+\renewcommand*{\thelvlg}{\J@Number}
+\renewcommand*{\thelvlh}{\J@Number}
+\renewcommand*{\thelvli}{\J@Number}
+\renewcommand*{\thelvlj}{\J@Number}
+\renewcommand*{\thelvlk}{\J@Number}
+\renewcommand*{\thelvll}{\J@Number}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lvlamark}
+% \changes{3.7}{1996/08/03}{neue Macros zur Unterst"utzung von Kopfzeilen}
+% Bei doppelseitigen Dokumenten stehen in der linken Kopfzeile die beiden
+% obersten Gliederungsebenen; in der rechten die dritte Ebene.
+% \begin{macrocode}
+\if@twoside
+\newcommand*{\lvlamark}[1]{\J@SetCurrent%
+ \@mkboth{\J@NumberRoot1\J@NumberEnd1\ #1}%
+ {\J@NumberRoot1\J@NumberEnd1\ #1}}
+\newcommand*{\lvlbmark}[1]{\J@SetCurrent%
+ \@mkboth{\J@NumberRoot1\,\J@NumberRoot2\J@NumberEnd2\ #1}%
+ {\J@NumberRoot1\,\J@NumberRoot2\J@NumberEnd2\ #1}}
+\newcommand*{\lvlcmark}[1]{\J@SetCurrent\markright{\J@Number\ #1}}
+% \end{macrocode}
+% Bei einseitigen Dokumenten m"ussen sich die ersten drei Gliederungsebenen
+% notgedrungen die Kopfzeile teilen. Dabei erscheint jeweils nur die
+% "Uberschrift der untersten belegten Ebene.
+% \begin{macrocode}
+\else
+\newcommand*{\lvlamark}[1]{\J@SetCurrent%
+ \markright{\J@NumberRoot1\J@NumberEnd1\ #1}}
+\newcommand*{\lvlbmark}[1]{\J@SetCurrent%
+\markright{\J@NumberRoot1\,\J@NumberRoot2\J@NumberEnd2\ #1}}
+\newcommand*{\lvlcmark}[1]{\J@SetCurrent%
+\markright{\J@NumberRoot1\,\J@NumberRoot2\,\J@Number\ #1}}
+\fi
+% \end{macrocode}
+% Die anderen Gliederungsebenen bleiben unber"ucksichtigt. Hier wird lediglich
+% der Marker \cs{@currentlabel} aktualisiert.
+% \begin{macrocode}
+\newcommand*{\lvldmark}{\J@SetCurrent\@gobble}
+\newcommand*{\lvlemark}{\lvldmark}
+\newcommand*{\lvlfmark}{\lvldmark}
+\newcommand*{\lvlgmark}{\lvldmark}
+\newcommand*{\lvlhmark}{\lvldmark}
+\newcommand*{\lvlimark}{\lvldmark}
+\newcommand*{\lvljmark}{\lvldmark}
+\newcommand*{\lvlkmark}{\lvldmark}
+\newcommand*{\lvllmark}{\lvldmark}
+% \end{macrocode}
+% \end{macro}
+%
+% Schlie"slilch brauchen wir noch einen Z"ahler f"ur die aktuelle Tiefe, den
+% wir auch initialisieren.
+% \begin{macrocode}
+\newcounter{tiefe}\setcounter{tiefe}{1}
+% \end{macrocode}
+%
+% Die folgenden Z"ahler definieren, bis zu welcher Ebene die "Uberschriften mit
+% einer Gliederungsnummer versehen und in das Inhaltsverzeichnis aufgenommen
+% werden sollen. Wir wollen, da"s alle zw"olf Ebenen im Verzeichnis erscheinen
+% und auch im Text nummeriert werden.
+% \begin{macrocode}
+\setcounter{tocdepth}{12}\setcounter{secnumdepth}{12}
+% \end{macrocode}
+%
+% \subsubsection{"Uberschriften}
+% \begin{macro}{\J@Number}
+% \changes{1.3}{old}{Typo in Level 7 korrigiert}
+% \changes{2.6}{old}{Nummerierung der "Uberschriften ganz neu und viel eleganter}
+% \cs{Number} erzeugt abh"angig vom aktuellen Wert des Z"ahlers |tiefe| die
+% Nummerierung. Diese besteht aus der eigentlichen Zahl
+% (\cs{NumberRoot}\marg{tiefe}) und einer Klammer oder einem Punkt
+% (\cs{NumberEnd\marg{tiefe}}).
+% \begin{macrocode}
+\newcommand*{\J@Number}{\J@NumberRoot{\value{tiefe}}%
+\J@NumberEnd{\value{tiefe}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\J@NumberRoot}
+% \changes{3.5}{1996/07/04}{Erzeugung der Gliederungsnummern getrennt f"ur Textverweise}
+% \changes{3.9}{1997/08/28}{Ruft jetzt nur noch die lowlevel Funktion
+% \cs{J@INumberRoot} auf}
+% Die Nummer wird von der \textit{low level}-Funktion \cs{J@INumberRoot}
+% erzeugt. Dieser mu"s die tiefe (\#1), sowie der Wert des dazugeh"ohrigen
+% Z"ahlers "ubergeben werden.
+% \begin{macrocode}
+\newcommand*{\J@NumberRoot}[1]{\J@INumberRoot{#1}%
+{\csname c@lvl\@alph{#1}\endcsname}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\J@INumberRoot}
+% \changes{3.9}{1997/08/28}{neue Funktion f"ur Verweise}
+% \changes{4.2}{1998/03/06}{added closing parenthesis for levels 8--12, compliant to my own documentation from years ago [Rainer Loritz]}
+% Hier wird die eigentliche Gliederungsnummer erzeugt. Der Aufruf erfolgt mit
+% zwei Argumenten: \cs{J@INumberRoot}\marg{Tiefe}\marg{Wert}. \meta{Tiefe}
+% bestimmt, auf welcher Gliederungsebene die Nummer erzeugt wird, \meta{Wert}
+% den konkreten Wert. So erzeugt |\J@INumberRoot{1}{3}| die Ziffer C.
+% "Anderungen in der Abfolge der einzelnen Gliederungsebenen sollten an
+% dieser Stelle vorgenommen werden.
+% \begin{macrocode}
+\newcommand*{\J@INumberRoot}[2]{%
+\ifcase#1\or
+\@Alph{#2}\or
+\@Roman{#2}\or
+\@arabic{#2}\or
+\@alph{#2}\or
+\@alph{#2}\@alph{#2}\or
+\@greek{#2}\or
+\@greek{#2}\@greek{#2}\or
+(\@arabic{#2})\or
+(\@alph{#2})\or
+(\@alph{#2}\@alph{#2})\or
+(\@greek{#2})\or
+(\@greek{#2}\@greek{#2})\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\J@NumberEnd}
+% \changes{3.5}{1996/07/04}{Erzeugung der Gliederungsnummern getrennt f"ur Textverweise}
+% \changes{3.3}{1996/05/02}{Gliederungsnummern Duden-konform nach R~6}
+% Hinter den Nummern der Gliederungsebenen 8--12 (die schon von sich aus
+% geklammert sind) folgt nur ein Leerzeichen. Nach den ersten drei Ebenen steht
+% --~dudenkonform~-- ein Punkt; sonst folgt eine runde Klammer.
+% \begin{macrocode}
+\newcommand*{\J@NumberEnd}[1]{\ifnum#1<8\ifnum#1<4.\else)\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% Die folgenden internen Kommandos werden zur Erzeugung des
+% Inhaltsverzeichnisses gebraucht. F"ur jede Gliederungsebene gibt es einen
+% \cs{l@lvl*}-Befehl. \cs{@dottedtocline} ist ein internes \LaTeX\-Kommando, das grob
+% folgende Syntax hat\footnote{f"ur eine genauere Beschreibung siehe
+% |ltsect.dtx|}
+% \begin{quote}
+% |\@dottedtocline{|\meta{Ebene}|}{|\meta{Indent erste Zeile}|}{|\meta{Indent
+% folgende Zeilen}|}|
+% \end{quote}
+% \begin{macrocode}
+\newcommand*\l@lvla{\@dottedtocline{1}{0em}{2,5em}}
+\newcommand*\l@lvlb{\@dottedtocline{2}{1em}{2,5em}}
+\newcommand*\l@lvlc{\@dottedtocline{3}{2em}{2,5em}}
+\newcommand*\l@lvld{\@dottedtocline{4}{3em}{2,5em}}
+\newcommand*\l@lvle{\@dottedtocline{5}{4em}{2,5em}}
+\newcommand*\l@lvlf{\@dottedtocline{6}{5em}{2,5em}}
+\newcommand*\l@lvlg{\@dottedtocline{7}{6em}{2,5em}}
+\newcommand*\l@lvlh{\@dottedtocline{8}{7em}{2,5em}}
+\newcommand*\l@lvli{\@dottedtocline{9}{8em}{2,5em}}
+\newcommand*\l@lvlj{\@dottedtocline{10}{9em}{2,5em}}
+\newcommand*\l@lvlk{\@dottedtocline{11}{10em}{2,5em}}
+\newcommand*\l@lvll{\@dottedtocline{12}{11em}{2,5em}}
+% \end{macrocode}
+%
+% \begin{macro}{\J@SetCurrent}
+% \changes{3.5}{1996/07/04}{neues Macro zur Unterst"utzung von Textverweisen}
+% \changes{3.9}{1996/08/27}{ge"andert f"ur kurze Verweise}
+% \changes{4.2}{1998/03/06}{changed from \cs{edef} to \cs{xdef} [Rainer Loritz]}
+% \changes{4.2}{1998/03/06}{added braces for level numbers with more than one digit}
+% Hier werden die Z"ahler der einzelnen Ebenen in der Variablen
+% \cs{@currentlabel} gespeichert.
+% \begin{macrocode}
+\newcommand*{\J@SetCurrent}{\xdef\@currentlabel{{\arabic{lvla}}%
+{\arabic{lvlb}}{\arabic{lvlc}}{\arabic{lvld}}{\arabic{lvle}}%
+{\arabic{lvlf}}{\arabic{lvlg}}{\arabic{lvlh}}{\arabic{lvli}}%
+{\arabic{lvlj}}{\arabic{lvlk}}{\arabic{lvll}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\toc}
+% \changes{3.2}{1996/02/15}{neue *-Form implementiert}
+% \changes{3.5}{1996/05/25}{verschiedene "Uberschriften in Text und Inhaltsverzeichnis m"oglich}
+% \changes{3.5}{1996/07/04}{Variable f"ur Textbe"uge wird aktualisiert}
+% Wir wollen in der aktuellen |tiefe| eine "Uberschrift schreiben und diese
+% dann in das Inhaltsverzeichnis eintragen lassen. Je nachdem, ob ein |*| folgt
+% wird es eine lange oder kurze "Uberschrift.
+% \begin{macrocode}
+\newcommand*{\toc}{\secdef\J@LongToc\J@ShortToc}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\J@ShortToc}
+% \changes{3.2}{1996/02/15}{neu f"ur *-Form}
+% \changes{3.5}{1996/07/05}{\cs{@gobblecr} hinzugef"ugt}
+% Kurze "Uberschriften erscheinen im Text einfach als die Gliederungsnummer.
+% \begin{macrocode}
+\newcommand*{\J@ShortToc}[1]{\stepcounter{lvl\alph{tiefe}}\J@Number\ %
+% \end{macrocode}
+% Der Titel wird auf der aktuellen Ebene ins Inhaltsverzeichnis "ubernommen.
+% \begin{macrocode}
+\addcontentsline{toc}{lvl\alph{tiefe}}%
+ {\protect\numberline{\J@Number}#1}%
+% \end{macrocode}
+% Die Kopfzeilen werden aktualisiert, Ein eventuell folgender Zeilenwechsel
+% wird ignoriert.
+% \begin{macrocode}
+\csname lvl\alph{tiefe}mark\endcsname{#1}\@gobblecr}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\J@LongToc}
+% \changes{3.2}{1996/02/15}{neu f"ur *-Form}
+% \changes{2.0}{old}{Paginierungsfehler bei Seitenumbruch umgangen}
+% \changes{2.5}{old}{endlich immer korrekte Seitenangaben im Inhaltsverzeichnis}
+% \changes{2.5}{old}{auch mathematische Symbole (zB. \S) sind in "Uberschriften fett}
+% \changes{1.5}{old}{Abst"ande vor und nach den "Uberschriften}
+% \changes{2.1}{old}{Abst"ande vor und nach "Uberschriften ver"andert}
+% \changes{2.2}{old}{Keine L"ocher mehr wenn mehrere "Uberschriften direkt aufeinander folgen}
+% \changes{2.3}{old}{vor gro"sen "Uberschriften mehr Platz als vor kleinen}
+% \changes{3.3}{1996/05/15}{maximalen Abstand "uber "Uberschriften verringert}
+% \changes{2.3}{old}{Seitenumbruch zwischen "Uberschrift und Flie"stext verhindert}
+% \changes{2.5}{old}{kein Seitenumbruch zwischen "Uberschrift und erstem Absatz}
+% \changes{2.5}{old}{kein Seitenumbruch innerhalb mehrzeiliger "Ueberschriften}
+% \changes{2.6}{old}{"Uberschriften, die l"anger als eine Zeile sind, werden korrekt verarbeitet, allerdings bleibt unten zu wenig Abstand}
+% \changes{2.7}{old}{unterer Abstand bei mehrzeiligen "Uberschriften klappt jetzt wenn auch ziemlich unelegant gel"ost}
+% \changes{3.0}{1996/01/08}{mehrzeilige "Uberschriften funktionieren dank \LaTeXe richtig}
+% \changes{3.6}{1996/07/07}{benutzt \cs{@tempdim}-Register}
+% \changes{2.2}{old}{neuer Bug: Leerzeichen nach "Uberschriften}
+% \changes{2.3}{old}{\cs{parindent} auch f"ur erste Zeile nach "Uberschrift (dadurch haben sich eine Menge Probleme gel"ost)}
+% \changes{2.6}{old}{kein \cs{parindent} mehr f"ur erste Zeile nach einer "Uberschrift}
+% \changes{3.6}{1996/07/13}{benutzt \LaTeX-Routine \cs{@afterheading}}
+% \changes{3.6}{1996/07/13}{direkt aufeinander folgende "Uberschriften werden korrekt behandelt}
+% \changes{3.7}{1996/08/03}{v"ollig neu geschrieben benutzt jetzt \LaTeX-Routine \cs{@startsection}}
+% \changes{3.8}{1996/08/13}{weniger Varianz bei Abst"anden vor/nach "Uberschriften}
+% \changes{3.8}{1996/08/14}{benutzt nicht mehr \cs{@tempdima} dadurch St"orung mit \cs{addvskip} vermieden.}
+% \changes{4.3}{1998/07/13}{Schriftart der "Uberschriften frei definierbar}
+% Da wir den \LaTeX-internen Befehl \cs{@startsection} benutzen, ist uns viel
+% Arbeit abgenommen. Wir m"ussen diesen lediglich mit geeigneten Werten
+% f"uttern\footnote{Argumente siehe |ltsect.dtx|.}.
+% \begin{macrocode}
+\newcommand*{\J@LongToc}[2][]{%
+\@startsection{lvl\alph{tiefe}}{\value{tiefe}}{0pt}
+% \end{macrocode}
+% Vor "Uberschriften in der ersten Gliederungsebene lassen wir 4ex Raum. Vor
+% allen anderen lediglich 2,7ex.
+% \begin{macrocode}
+{\ifnum\value{tiefe}=1 -4ex plus-1,5ex minus-0,ex\else
+-2,7ex plus-0,8ex minus-0,2ex\fi}
+% \end{macrocode}
+% Nach "Uberschriften der Ebenen 8--12 folgt kein Zeilenwechsel, sondern es
+% wird lediglich 1em Abstand gelassen. Ansonsten folgt nach der "Uberschrift
+% ein Abstand von 0,6ex.
+% \begin{macrocode}
+{\ifnum\value{tiefe}>7 -1em plus-0,5em\relax\else
+0,6ex plus0,3ex minus0,1ex\fi}
+% \end{macrocode}
+% Hier wird der Schriftstil der "Uberschriften bestimmt, dabei wird
+% grunds"atzlich vom \cs{sectfont} ausgegangen. Der genaue Schriftstil
+% wird je nach Gliederungsebene durch einen der Befehle
+% \cs{lvlastyle}--\cs{lvllstyle} festgelegt.
+% \begin{macrocode}
+{\sectfont\csname lvl\alph{tiefe}style\endcsname}[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lvlastyle}
+% \begin{macro}{\sectfont}
+% \changes{4.3}{1998/07/13}{Freie Wahl der "Uberschriftenstile m"oglich}
+% Hier werden die Schriftarten f"ur die einzelnen Gliederungsebenen definiert.
+% "Uberschriften der Ebene 1 werden gro"s, alle anderen in normaler Gr"o"se
+% gesetzt; Ebenen 1--7 sind fett, 8--12 kursiv.
+% \begin{macrocode}
+\providecommand*{\sectfont}{\normalfont}
+\newcommand*{\lvlastyle}{\large\bfseries}
+\newcommand*{\lvlbstyle}{\bfseries}
+\let\lvlcstyle=\lvlbstyle
+\let\lvldstyle=\lvlbstyle
+\let\lvlestyle=\lvlbstyle
+\let\lvlfstyle=\lvlbstyle
+\let\lvlgstyle=\lvlbstyle
+\newcommand*{\lvlhstyle}{\itshape}
+\let\lvlistyle=\lvlhstyle
+\let\lvljstyle=\lvlhstyle
+\let\lvlkstyle=\lvlhstyle
+\let\lvllstyle=\lvlhstyle
+% \end{macrocode}
+% \end{macro}\end{macro}
+% \begin{macro}{\@seccntformat}
+% \changes{3.7}{1996/08/03}{Umdefinition von \LaTeX-internen Befehlen}
+% \begin{macro}{numberline}
+% \changes{3.7}{1996/08/03}{Umdefinition von \LaTeX-internen Befehlen}
+% Da wir zum Erzeugen der "Uberschriften \LaTeX-Routinen verwenden, m"ussen hier
+% einige Befehle umdefiniert werden. In "Uberschriften soll nach der
+% Gliederungsnummer sowohl im Text (\cs{@seccntformat}) als auch im
+% Inhaltsverzeichnis (\cs{numberline}) nur ein Leerzeichen folgen.
+% \begin{macrocode}
+\renewcommand*{\@seccntformat}[1]{\csname the#1\endcsname\ }
+\renewcommand*{\numberline}[1]{#1\ }
+% \end{macrocode}
+% \end{macro}\end{macro}
+%
+% \begin{macro}{\leveldown}
+% \changes{4.2}{1998/07/05}{New macro [Tilman Finke]}
+% In diesem Makro werden lediglich einige Fehler abgefangen. Ansonsten wird nur
+% |tiefe| um eins erh"oht.
+% \changes{1.4}{old}{Input-Zeilennummern bei Warnings}
+% \begin{macrocode}
+\newcommand*{\leveldown}{%
+\ifnum\value{lvla}=0%
+ \PackageWarning{alphanum}{\protect\sub\space without
+ \protect\toc\space}\fi
+\ifnum\value{tiefe}=12%
+ \PackageWarning{alphanum}{too many sublevels!! Ignored \protect\sub.
+ \MessageBreak There will probably be an \protect\levelup\space
+ without \protect\sub\space warning later on}
+ \setcounter{tiefe}{11}\fi
+\stepcounter{tiefe}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sub}
+% \changes{3.2}{1996/02/15}{*-Version implementiert}
+% \changes{4.2}{1998/07/05}{Macro maintained for downward compatibility}
+% The real work of this macro is done in \cs{leveldown} and \cs{toc}. This
+% is only a command that saves a lot of work typing those two commands that
+% typically occur at the same time.
+% \begin{macrocode}
+\newcommand*{\sub}{\leveldown\toc}
+% \end{macrocode}
+% \end{macro}\begin{macro}{\levelup}
+% \changes{1.3}{old}{mehr Warnings}
+% \changes{1.4}{old}{Input-Zeilennummern bei Warnings}
+% \changes{3.0}{1996/01/08}{Name von \cs{endsub} nach \cs{levelup} ge"andert (Kollision mit \TeX)}
+% Auch hier werden einige Fehler abgefangen.
+% \begin{macrocode}
+\newcommand*{\levelup}{%
+\ifnum\value{tiefe}=1%
+ \PackageWarning{alphanum}{\protect\levelup\space without\protect\sub}
+ \stepcounter{tiefe}\fi
+\ifnum\value{lvl\alph{tiefe}}=1%
+ \PackageWarning{alphanum}{only one subitem in level "\J@Number" ending}%
+\fi
+% \end{macrocode}
+% Ansonsten wird |tiefe| um eins verringert, der alte Ebenenz"ahler auf Null
+% gesetzt, der Absatz beendet und ein wenig Zwischenraum gelassen, falls nicht
+% direkt eine neue "Uberschrift folgt.
+% \changes{2.4}{old}{\cs{endsub} beendet Absatz und l"asst Freiraum}
+% \changes{3.9}{1997/09/01}{alter Levelcounter auf Null}
+% \begin{macrocode}
+\setcounter{lvl\alph{tiefe}}{0}
+\addtocounter{tiefe}{-1}\par\addvspace{2,7ex plus0,8ex minus1ex}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Zitate, Verweise}
+% \begin{macro}{\@cite}
+% Jetzt wird der Befehl \cs{@cite}, auf den \cs{cite} zur"uckgreift, so ver"andert,
+% da"s nicht immer die l"astigen eckigen Klammern erzeugt werden. Au"serdem wird
+% zwischen dem Kurztext und dem optionalen Argument kein Komma mehr gesetzt. So
+% l"asst sich das Kommando flexibler einsetzen.
+% \begin{macrocode}
+\renewcommand*{\@cite}[2][]{#1#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@citex}
+% \changes{3.9}{1997/08/26}{Zeilenumbr"uche innerhalb von Zitaten}
+% Um innerhalb der Zitate Zeilenumbr"uche zuzulassen, mu"s auch diese
+% Funktion ge"andert werden. Im wesentlichen habe ich wieder den Kernel
+% abgeschrieben\footnote{siehe |ltbibl.dtx|}, also erwarte bitte niemand,
+% da"s ich diesen Code erkl"aren kann!
+% \changes{4.0}{1998/01/16}{"Anderungen des \LaTeX-Kernels "ubernommen}
+% \begin{macrocode}
+\def\@citex[#1]#2{%
+ \let\@citea\@empty
+ \@cite{\@for\@citeb:=#2\do
+ {\@citea\def\@citea{,\penalty\@m\ }%
+ \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
+ \G@refundefinedtrue
+ \@latex@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+% \end{macrocode}
+% An dieser Stelle habe ich die umgebende \cs{hbox} entfernt, um
+% Zeilenumbr"uche zuzulassen. Im Kernel lautet die Zeile:
+% \begin{quote}
+% |{\hbox{\csname b@\@citeb\endcsname}}}}{#1}}|
+% \end{quote}
+% \begin{macrocode}
+ {\csname b@\@citeb\endcsname}}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ref}
+% \changes{3.9}{1997/08/27}{Umdefinition f"ur kurze Verweise}
+% \changes{4.0}{1998/01/16}{neue *-Form implementiert}
+% Als erstes wird gepr"uft, ob der Befehl mit oder ohne * aufgerufen wurde,
+% dementsprechend wird das Flag \cs{tempswa} initialisiert. Dieses
+% beeinflu"st in \cs{J@refP}, ob Gliederungsziffern, die mit der aktuellen
+% Position "ubereinstimmen, ausgegeben werden. Danach wird die Kontrolle an
+% \cs{Jref} "ubergeben.
+% \begin{macrocode}
+\renewcommand*{\ref}{%
+\@ifstar{\@tempswatrue\J@ref}{\@tempswafalse\J@ref}}
+% \end{macrocode}
+% \begin{macro}{\J@ref}
+% \changes{4.0}{1998/01/16}{neues Macro zur Bearbeitung von \cs{ref*}}
+% Hier wird zun"achst getestet, ob die angegebene Marke definiert ist, wenn
+% nicht, wird eine entsprechende Warnung ausgegeben.
+% \begin{macrocode}
+\newcommand*{\J@ref}[1]{%
+\expandafter\ifx\csname r@#1\endcsname\relax
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}
+ \@latex@warning{Reference '#1' on page \thepage \space undefined}%
+% \end{macrocode}
+% Ist die Marke definiert, wird deren Name (\cs{r@}\meta{Marke}) zur weiteren
+% Bearbeitung an \cs{J@refX} "ubergeben.
+% \begin{macrocode}
+\else
+ \expandafter\J@refX\csname r@#1\endcsname
+\fi}
+% \end{macrocode}
+% \end{macro}\begin{macro}{\J@refX}
+% Dort wird die Marke in zwei Elemente expandiert: eines mit den gespeicherten
+% Z"ahlern f"ur den Verweis und eines, das die Seitennummer enth"alt auf der
+% der Verweis gemacht wurde.
+% \begin{macrocode}
+\newcommand*{\J@refX}[1]{\expandafter\J@refXX#1}
+% \end{macrocode}
+% \end{macro}\begin{macro}{\J@refXX}
+% \changes{4.2}{1998/07/10}{supports references to footnotes [Andreas Stefanski]}
+% Wir lesen beide Elemente, sodann wird getestet, ob der erste Parameter eine
+% einfache Zahl ist. Ist das der Fall, kann es sich nicht um eine Z"ahlerliste
+% handeln, wie sie von |jura.cls| erzeugt wurde, sondern nur um einen normalen
+% \LaTeX-Verweis. Der wird einfach nur ausgegeben. F"ur die tiefere Magie
+% bedanke ich mich bei Donald Arsenau, es funktioniert jetzt, auch wenn ich
+% nicht so recht erkl"aren kann, warum.
+% \begin{macrocode}
+\newcommand*{\J@refXX}[2]{%
+\ifcat_\ifnum9<1#1_\else X\fi
+ #1%
+\else
+% \end{macrocode}
+% Ansonsten "ubergeben wir die gespeicherten Z"ahler an die n"achste Funktion.
+% Die Gruppe wird dabei aufgel"ost, so da"s jetzt \emph{zw"olf} Elemente
+% erzeugt werden (eines f"ur jede Ebene).
+% \begin{macrocode}
+ \expandafter\J@refA#1%
+\fi}
+% \end{macrocode}
+% \end{macro}\begin{macro}{\J@refA}\begin{macro}{\J@refB}
+% Es werden jetzt die ersten sechs der zw"olf gespeicherten Z"ahler gelesen.
+% Au"serdem werden die tempor"aren Variablen initialisiert. In
+% \cs{@tempcnta} wird die Tiefe der letzten belegten Gliederungsebene
+% gespeichert.
+% \begin{macrocode}
+\newcommand*{\J@refA}[6]{\@tempcnta\@ne%
+% \end{macrocode}
+% Danach rufen f"ur jede gelesene Gliederungsebene \cs{JrefP} auf. Dabei
+% "ubergeben wir die aktuelle Ebene, den Wert des gespeicherten Z"ahlers,
+% sowie den Wert des Z"ahlers der vorangeangenen Ebene. Schlie"slich
+% rufen wir \cs{JrefB} auf, um die verbleibenden sechs Z"ahler auf die
+% selbe Art zu bearbeiten. Am Ende von \cs{JrefB} wird abh"ahngig von
+% der Tiefe der letzten belegten Ebene entweder ein "`."' oder ein "`)"'
+% erzeugt.
+% \begin{macrocode}
+\J@refP1{#1}0\J@refP2{#2}{#1}\J@refP3{#3}{#2}\J@refP4{#4}{#3}%
+\J@refP5{#5}{#4}\J@refP6{#6}{#5}\J@refB#6}
+\newcommand*{\J@refB}[7]{\J@refP7{#2}{#1}\J@refP8{#3}{#2}%
+\J@refP9{#4}{#3}\J@refP{10}{#5}{#4}\J@refP{11}{#6}{#5}%
+\J@refP{12}{#7}{#6}\J@NumberEnd\@tempcnta}
+% \end{macrocode}
+% \end{macro}\end{macro}\begin{macro}{\J@refP}
+% \cs{JrefP} vergleich die aktuelle Gliederungsebene mit der gespeicherten
+% bis ein Unterschied auftaucht; dann wird \cs{@tempswa} auf "`wahr"' gesetzt.
+% Ab dann wird f"ur jeden gespeicherten Gliederungsz"ahler, der gesetzt war
+% (d.h. einen Wert gr"o"ser als Null hat) die Gliederungsnummer erzeugt. Wurde
+% \cs{tempswa} bereits oben auf "`wahr"' gesetzt, werden alle
+% Gliederungsnummern erzeugt.
+% \cs{@tempcnta} wird auf die aktuelle Tiefe gesetzt.
+% \changes{3.9}{1997/09/17}{Fehlermeldung f"ur selbstbez"ugliche Verweise}
+% \begin{macrocode}
+\newcommand*{\J@refP}[3]{%
+\if@tempswa%
+ \ifnum#2>0\@tempcnta#1\,\J@INumberRoot{#1}{#2}\fi
+\else%
+ \ifnum#2=\value{lvl\@alph{#1}}%
+ \ifnum#1=12\PackageError{alphanum}{Self-reference detected!}{You used
+ a \protect\ref\space in the same section as the referenced
+ \protect\label\MessageBreak That makes no sense!}\fi
+% \end{macrocode}
+% Sind alle Z"ahler der beiden Gliederungsebenen gleich, wurde also innerhalb
+% eines Gliederungspunktes auf einen Unterpunkt verwiesen, erzeugen wir
+% die Gliederungsziffer der letzten gemeinsamen Ebene. Das ist wohl das
+% gew"unschte Ergebnis.
+% \begin{macrocode}
+ \else
+ \ifnum#2>0\@tempcnta#1\@tempswatrue\J@INumberRoot{#1}{#2}\else
+ \ifnum#3>0%
+ \@tempcnta#1\advance\@tempcnta-1\relax\J@INumberRoot{\@tempcnta}{#3}%
+ \fi
+ \fi
+ \fi
+\fi}
+%</package>
+% \end{macrocode}
+% \end{macro}\end{macro}
+%
+% \subsection{Umgebungen}
+% Hier folgen die Umgebungen, die an die Gebr"auche bei rechtswissenschaftlichen
+% Arbeiten angepasst sind
+%
+% \subsubsection{Deckblatt}
+% \begin{environment}{titlepage}
+% \changes{2.6}{old}{neues Feature titlepage implementiert}
+% \changes{3.2}{1996/02/10}{entr"umpelt, genauere Abmessungen}
+% \changes{3.8}{1996/08/27}{\cs{oddsidemargin} auf richtige Gr"o"se}
+% \changes{3.8}{1996/08/30}{zweiseitiges Layout wird korrekt behandelt}
+% Als Folge der geringen Textbreite mu"s die |titlepage|-Umgebung f"ur die
+% Titelseite neu definiert werden, so da"s dort mehr Platz zur Verf"ugung steht.
+% \begin{macrocode}
+%<*class>
+\renewenvironment*{titlepage}{%
+ \thispagestyle{empty}\setcounter{page}{1}%
+ \setlength{\oddsidemargin}{0,75mm}\setlength{\parindent}{0cm}%
+ \hsize15,77cm\columnwidth15,77cm\linewidth15,77cm\textwidth15,77cm}%
+ {\newpage\if@twoside\thispagestyle{empty}\null\clearpage\fi}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\and}
+% \begin{macro}{\maketitle}
+% \changes{3.2}{1996/02/11}{eigenes Layout}
+% \cs{maketitle} bekommt ein neues Layout. Der Name des Autors / der Autoren
+% erscheint linksb"undig am oberen Rand. So k"onnen auch Matrikelnummer und
+% Adresse ansehnlich hinzugef"ugt werden.
+% \begin{macrocode}
+\renewcommand{\maketitle}{\begin{titlepage}%
+\let\footnotesize\small\let\footnoterule\relax\let\footnote\thanks
+\begin{tabular}[t]{l}%
+\@author
+\end{tabular}\par%
+\null\vfill
+\begin{center}%
+{\LARGE\@title\par}\vspace{8ex}%
+{\@date\par}%
+\end{center}\par
+\@thanks
+\vfill\vfill\null
+\end{titlepage}%
+\setcounter{footnote}{0}\global\let\thanks\relax
+\global\let\maketitle\relax\global\let\@thanks\@empty
+\global\let\@author\@empty\global\let\@date\@empty
+\global\let\@title\@empty\global\let\title\relax
+\global\let\author\relax\global\let\date\relax
+\global\let\and\relax}
+\renewcommand*{\and}{\end{tabular}\hspace{1em}\hfill%
+\begin{tabular}[t]{l}}
+%</class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Literaturverzeichnis}
+% \begin{environment}{jurabibliography}
+% \changes{3.1}{1996/01/20}{neues Feature Literaturverzeichnis}
+% \changes{3.7}{1996/08/03}{Kopfzeilen nicht mehr nur Gro"sbuchstaben}
+% Zuerst wird die neue Umgebung |jurabibliography| definiert. Daf"ur wird im
+% wesentlichen die Standardumgebung |description| benutzt. Vorher wird
+% allerdings noch die "Uberschrift erzeugt, sowie die Kopfzeilen gesetzt.
+% Die Bibliographie funktioniert aber auch in jeder anderen Umgebung, die den
+% Befehl \cs{item}\oarg{voller Autorenname} akzeptiert, so da"s mittels einer
+% entsprechend angepassten Listenumgebung leicht ein anderes Layout f"ur das
+% Literaturverzeichnis erreicht werden kann.
+% \begin{macrocode}
+%<*package>
+\newenvironment*{jurabibliography}
+{\chapter*{\bibname
+ \@mkboth{\bibname}{\bibname}}%
+ \begin{description}\sloppy}{\end{description}}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\jbibitem}
+% Jetzt brauchen wir nur noch den eigentlichen Eintrag in die |.aux|-Datei und
+% in den Text vorzunehmen. Das Makro ist im Wesentlichen von \cs{@lbibitem} aus
+% |ltbibl.dtx| abgeschrieben, insoweit habe ich es einfach als gegeben
+% akzeptiert und vermag die Einzelheiten nicht zu erkl"aren.
+% \begin{macrocode}
+\def\jbibitem#1#2#3{\item[#1]\if@filesw
+ {\let\protect\noexpand\immediate
+ \write\@auxout{\string\bibcite{#3}{#2}}}\fi\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Sachverhalt}
+% \begin{environment}{sachverhalt}
+% \changes{3.5}{1996/07/04}{Neue Umgebung [Karsten Trostmann]}
+% \changes{3.7}{1996/08/03}{Kopfzeile wird gesetzt}
+% Die Umgebung f"ur den Sachverhalt beh"alt das normale Seitenlayout bei.
+% Es wird lediglich "`Sachverhalt"' als "Uberschrift eingef"ugt. Am Ende wird
+% die aktuelle Seite beendet.
+% \begin{macrocode}
+\newenvironment{sachverhalt}{\chapter*{Sachverhalt}%
+\@mkboth{Sachverhalt}{Sachverhalt}}{\clearpage}
+%</package>
+% \end{macrocode}
+%\end{environment}
+%
+% \subsection{Testdokument}
+% Jetzt kommt noch ein Dokument, das einige M"oglichkeiten der
+% |jura|-Dokument"-klas"-se demonstriert. F"ur eine einfachere Handhabung
+% definiere ich zus"atzlich die Abk"urzungen \cs{fn} f"ur Fu"snoten und
+% \cs{q} f"ur Zitate. Das hat au"ser ersparter Tipparbeit den weiteren
+% Vorteil, da"s man den Stil der Zitate wenn n"otig zentral "andern kann,
+% z.B. nach \cs{textsc}.
+% \begin{macrocode}
+%<*test>
+\documentclass[draft]{jura}
+\usepackage[T1]{fontenc}\usepackage{german}
+\def\fn{\footnote}
+\def\q{\textit}
+\begin{document}
+\frontmatter
+\author{Kai Musterer\\
+Beispielplatz 3a\\
+54321 Eutern\\
+2. Fachsemester\\
+Matr.-Nr.: 132435\and
+Valeska Nachspeise\\
+Suarezstr. 23\\
+10528 Berlin\\
+4. Fachsemester\\
+Matr.-Nr.: 345675}
+\title{"Ubungen im "offentlichen Recht f"ur Fortgeschrittene}
+\date{Wintersemester 1996/97\\
+Prof. Dr. Guntram B"osartig\\
+1. Hausarbeit}
+\maketitle
+\begin{sachverhalt}
+V ist Eigent"umer eines Grundst"ucks hinsichtlich dessen zugunsten von D
+ein Vorkaufsrecht im Grundbuch eingetragen ist. V ver"au"sert das
+Grundst"uck an K, der das Grundbuch nicht einsieht und von dem
+Vorkaufsrecht nichts wei"s. Nach dem Eigentumserwerb errichtet K auf dem
+Grundst"uck ein Wohnhaus. Erst danach wird D der Verkauf mitgeteilt.
+Dieser erkl"art umgehend, er "`steige in den Vertrag mit K ein"'.\par
+\bigskip Wie ist die Rechtslage?
+\end{sachverhalt}
+\tableofcontents
+\begin{jurabibliography}
+\jbibitem{Kodal, Kurt/Kr"amer,
+Joachim}{Kodal/Kr"amer/}{KKStrR}"`Stra"senrecht"' 5.~Auf"|lage M"unchen:
+Beck, 1995
+\jbibitem{Kopp, Ferdinand O.}{\q{Kopp} VwGO
+}{Kopp}"`Verwaltungsgerichtsordnung"' 10.~Auf"|lage M"unchen: Beck,
+1994
+\end{jurabibliography}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mainmatter
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+\toc[Einleitung]{Einleitung\footnotemark[1]}%
+\footnotetext[1]{Dies war eine "Uberschrift.}%
+\renewcommand{\thefootnote}{\arabic{footnote}}%
+Da das Gericht zuvor eine R"uckwirkung au"serhalb des Strafrechts f"ur
+zul"assig gehalten hatte (s.o.), war es auch nicht gezwungen, den
+Begriff der R"uckwirkung genau zu umrei"sen, die fr"uheren Urteile
+besch"aftigten sich daher nur mit den Ausnahmen\fn{\cite[\S~3
+Rn.~4]{Kopp}.} vom Grundsatz der Zul"assigkeit.
+
+In einem auf die freie Entfaltung der\marginpar{\footnotesize
+Rechtssicherheit dient der Handlungsfreiheit} Pers"onlichkeit angelegten
+Staat mu"s der Rechtssicherheit im besonderen Ma"se Bedeutung zukommen.
+Sie ist wesentliche Voraussetzung daf"ur, da"s der B"urger
+eigenverantwortlich planen und entscheiden kann, denn nur wenn absehbar
+ist, in welche Richtung und in welcher Weise das Recht auf seine
+Handlungen reagiert, kann der B"urger sinnvoll einen Lebensplan
+gestalten.
+
+\sub{Alle meine Entchen schwimmen auf dem See, K"opfchen in das Wasser
+Schw"anzchen in die H"oh' \S~1 HGB}
+Abgesehen davon, da"s eine solche Handhabung\label{Verweis}
+praktisch wohl nicht durch"-f"uhrbar w"are\footnote{BVerfGE 12,
+13 (14); \cite[Art. 20 Rn.3]{Kopp}.}, widerspr"ache sie zum einen der
+Entscheidung des Grundgesetzes f"ur die Demokratie, weil sie einem neuen
+Parlament mit ge"anderten Mehrheiten die M"oglichkeit nimmt, Gesetze zu
+erlassen.\footnote{Siehe zum ganzen: \cite[\S~12 Rn.~10]{Kopp}.}
+
+\toc*{Ausweitung des Ansatzes}
+Die in diesem Urteil begr"undete Rechtsprechung, hat sich in weiteren
+Urteilen zur Berufsfreiheit und der Eigentumsgaratie
+verfestigt\fn{\label{fn}BVerfGE 25, 236 (248f.); 32, 1 (22ff.); 50, 265
+(275ff.); \cite[\q{Bassenge} \S~26 Rn. 13]{KKStrR}.} und wurde sp"ater
+auch auf andere Grundrechte ausgeweitet (s.o. unter \ref{Verweis} volle
+Gliederungsnummer: \ref*{Verweis}). Genauer: siehe Fu"snote \ref{fn}.
+\end{document}
+%</test>
+% \end{macrocode}
+% \Finale \PrintChanges \PrintIndex
diff --git a/macros/latex/contrib/jura/jura.ins b/macros/latex/contrib/jura/jura.ins
new file mode 100644
index 0000000000..648e4f8614
--- /dev/null
+++ b/macros/latex/contrib/jura/jura.ins
@@ -0,0 +1,8 @@
+% This file requires at least Version 2.4a[1996/06/06] of docstrip.tex to
+% run properly.
+\def\batchfile{jura.ins}
+\input docstrip
+\keepsilent
+\generate{\file{jura.cls}{\from{jura.dtx}{class}}
+ \file{alphanum.sty}{\from{jura.dtx}{package}}
+ \file{juratest.ltx}{\from{jura.dtx}{test}}}
diff --git a/macros/latex/contrib/jura/jura.pdf b/macros/latex/contrib/jura/jura.pdf
new file mode 100644
index 0000000000..bbeece6d21
--- /dev/null
+++ b/macros/latex/contrib/jura/jura.pdf
Binary files differ
diff --git a/macros/latex/contrib/jura/jura2html b/macros/latex/contrib/jura/jura2html
new file mode 100644
index 0000000000..4af307081a
--- /dev/null
+++ b/macros/latex/contrib/jura/jura2html
@@ -0,0 +1,173 @@
+#!/usr/bin/perl
+#
+# Konvertiert den LaTeX-Jura-Style nach HTML.
+# Aufruf: jura2html <File>
+#
+# 14.6.1997 Carsten Gerlach (gerlo@iceland.in-berlin.de)
+#
+# Der Konverter geht davon aus, daß im Text \fn für \footnote und \q für \emph
+# verwendet wurde.
+#
+# Aus technischen Gründen wird das Inhaltsverzeichnis am Ende ausgegeben.
+#
+#
+
+
+# einige Standard-Ersetzungen
+sub htmlify {
+ $line =~ s/\\-//g; # \- entfernen
+ $line =~ s:\\/: :g; # \/ -> SPC
+ $line =~ s/\\ldots/.../g; # \ldots -> ...
+ $line =~ s/\\&/&/g; # \& -> &
+ $line =~ s/\\\\/<br>/g; # \\ -> <br>
+ $line =~ s/"'/"/g;
+ $line =~ s/"`/"/g; # Anführungsstriche
+ $line =~ s/---/-/g;
+ $line =~ s/--/-/g; # --- und -- zu -
+ $line =~ s/ä/&auml/g;
+ $line =~ s/ö/&ouml/g;
+ $line =~ s/ü/&uuml/g;
+ $line =~ s/Ä/&Auml/g;
+ $line =~ s/Ö/&Ouml/g;
+ $line =~ s/Ü/&Uuml/g;
+ $line =~ s/ß/&szlig/g; # Umlaute konvertieren
+ $line =~ s:\\q{([^{}]*)}:<i>\1</i>:g; # \q{...} : kursiver Text
+ $line =~ s:{\\tt([^{}]*)}:<tt>\1</tt>:g; # {\tt ...} : typewriter
+}
+
+
+%headings = (
+ "00", "A. ", "01", "B. ", "02", "C. ", "03", "D. ", "04", "E. ", "05", "F. ", "06", "G. ", "07", "H. ", "08", "I. ", "09", "J. ",
+ "10", "I. ", "11", "II. ", "12", "III. ", "13", "IV. ", "14", "V. ", "15", "VI. ", "16", "VII. ", "17", "VIII. ", "18", "IX. ", "19", "X. ",
+ "20", "1. ", "21", "2. ", "22", "3. ", "23", "4. ", "24", "5. ", "25", "6. ", "26", "7. ", "27", "8. ", "28", "9. ", "29", "10. ",
+ "30", "a) ", "31", "b) ", "32", "c) ", "33", "d) ", "34", "e) ", "35", "f) ", "36", "g) ", "37", "h) ", "38", "i) ", "39", "j) ",
+ "40", "aa) ", "41", "bb) ", "42", "cc) ", "43", "dd) ", "44", "ee) ", "45", "ff) ", "46", "gg) ", "47", "hh) ", "48", "ii) ", "49", "jj) ",
+);
+
+# Beginn der Bibliographie suchen
+while(!(($line = <>) =~ m/\\begin{jurabibliography}/)) {}
+
+#
+# Bibliographie einlesen
+#
+$/ = "\r\n\r\n"; # paragraph slurp mode
+$i = 0;
+while(!(($line = <>) =~ m/\\end{jurabibliography}/)) {
+ htmlify;
+ $line =~ s/(\n|\r)//g; # newlines entfernen
+ if($line =~ m/\\jbibitem\s* # Beginn matchen
+ { ( (?: [^}\\] | \\[^}]*} )* ) } # 1. Autor
+ [^{]*
+ { ( (?: [^}\\] | \\[^}]*} )* ) } # 2. Zitierung
+ [^{]*
+ { ( (?: [^}\\] | \\[^}]*} )* ) } # 3. Kürzel
+ \s*
+ (.*) # 4. Titel
+ /xs) {
+ $bibitem{"$3"} = $2; # Zitierung nach Kürzel merken
+ $bibtext[$i++] = "<b>$1</b> $4"; # Einträge für Lit.verzeichnis
+ }
+}
+
+# Beginn des Textes suchen
+$/ = "\n"; # line slurp mode
+while(!(($line = <>) =~ m/\\mainmatter/)) {}
+
+print "<HTML><BODY>\n";
+
+#
+# Text bearbeiten
+#
+$toclevel = 0;
+$actnum[$toclevel] = -1;
+$footnotenum = 1;
+$tocnum = 0;
+$/ = "\r\n\r\n"; # paragraph slurp mode
+while($line = <>) {
+ htmlify;
+ #
+ # \sub und \toc
+ #
+ if($line =~ m/\\sub{([^{}]*)}/) {
+ $toclevel++;
+ $actnum[$toclevel] = 0;
+ $hd = $toclevel + 1;
+ $hdtxt = $headings{"$toclevel$actnum[$toclevel]"};
+ $line =~ s:\\sub{([^{}]*)}:<a name="toc$tocnum"><H$hd>$hdtxt\1</H$hd></a>:;
+ $toc = $toc . "<a href=\"#toc$tocnum\">$hdtxt$1</a><br>\n";
+ $tocnum++;
+ }
+ if($line =~ m/\\toc{([^{}]*)}/) {
+ $actnum[$toclevel]++;
+ $hd = $toclevel + 1;
+ $hdtxt = $headings{"$toclevel$actnum[$toclevel]"};
+ $line =~ s:\\toc{([^{}]*)}:<a name="toc$tocnum"><H$hd>$hdtxt\1</H$hd></a>:;
+ $toc = $toc . "<a href=\"#toc$tocnum\">$hdtxt$1</a><br>\n";
+ $tocnum++;
+ }
+ #
+ # \levelup
+ #
+ while($line =~ m/\\levelup/g) {
+ $toclevel--;
+ }
+ $line =~ s/\\levelup//g;
+ #
+ # \cite expandieren
+ #
+ $p1 = 0;
+ pos($line) = 0;
+ while($line =~ m/\\cite\[([^[]*)\]{([^{}]*)}/g) {
+ $p2 = pos;
+ pos($line) = $p1;
+ $cite = $bibitem{"$2"} . $1;
+ $line =~ s/\\cite[^}]*}/$cite/;
+ pos($line) = $p2;
+ $p1 = $p2;
+ }
+ #
+ # \fn auflösen und merken
+ #
+ $p1 = 0;
+ pos($line) = 0;
+ while($line =~ m/\\fn{([^}]*)}/g) {
+ $footnotetxt[$footnotenum] = $1;
+ $p2 = pos;
+ pos($line) = $p1;
+ $txt = " <a href=\"#fn$footnotenum\">[$footnotenum]</a>";
+ $line =~ s:\\fn{[^{}]*}:$txt:;
+ pos($line) = $p2;
+ $p1 = $p2;
+ $footnotenum++;
+ }
+ print "$line<P>";
+}
+
+#
+# Literaturverzeichnis ausgeben
+#
+print "<a name=\"toc$tocnum\"><H1>Literaturverzeichnis</H1></a>\n";
+$toc = $toc . "<a href=\"#toc$tocnum\">Literaturverzeichnis</a><br>\n";
+$tocnum++;
+for($i=0; $i < @bibtext; $i++) {
+ print "$bibtext[$i]<P>\n";
+}
+
+#
+# Fußnotenverzeichnis ausgeben
+#
+print "<a name=\"toc$tocnum\"><H1>Fu&szlignoten</H1></a>\n";
+$toc = $toc . "<a href=\"#toc$tocnum\">Fu&szlignoten</a><br>\n";
+$tocnum++;
+for($i=1; $i < @footnotetxt; $i++) {
+ print "<a name=\"fn$i\">[$i] $footnotetxt[$i]</a><P>\n";
+}
+
+#
+# Inhaltsverzeichnis ausgeben
+#
+print "<H1>Inhaltsverzeichnis</H1>\n";
+print $toc;
+
+print "</BODY></HTML>\n";
+