diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/jura |
Initial commit
Diffstat (limited to 'macros/latex/contrib/jura')
-rw-r--r-- | macros/latex/contrib/jura/README | 9 | ||||
-rw-r--r-- | macros/latex/contrib/jura/jura.dtx | 1237 | ||||
-rw-r--r-- | macros/latex/contrib/jura/jura.ins | 8 | ||||
-rw-r--r-- | macros/latex/contrib/jura/jura.pdf | bin | 0 -> 242119 bytes | |||
-rw-r--r-- | macros/latex/contrib/jura/jura2html | 173 |
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 Binary files differnew file mode 100644 index 0000000000..bbeece6d21 --- /dev/null +++ b/macros/latex/contrib/jura/jura.pdf 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/ä/ä/g; + $line =~ s/ö/ö/g; + $line =~ s/ü/ü/g; + $line =~ s/Ä/Ä/g; + $line =~ s/Ö/Ö/g; + $line =~ s/Ü/Ü/g; + $line =~ s/ß/ß/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ßnoten</H1></a>\n"; +$toc = $toc . "<a href=\"#toc$tocnum\">Fußnoten</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"; + |