diff options
author | Karl Berry <karl@freefriends.org> | 2009-03-31 00:25:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-03-31 00:25:41 +0000 |
commit | d9a28f240927d595970990e323f189f3ed45bdaf (patch) | |
tree | 7ccf4eea17aed62ba6dcc4639b67832a863782b4 /Master/texmf-dist/source/latex/koma-script/scrjura.dtx | |
parent | 088ae35fa451f7492dec5997ba5f8d53df17f47e (diff) |
koma-script update (30mar09)
git-svn-id: svn://tug.org/texlive/trunk@12579 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrjura.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrjura.dtx | 724 |
1 files changed, 581 insertions, 143 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrjura.dtx b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx index 426afc48377..729f2d33e81 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrjura.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx @@ -1,11 +1,50 @@ -% \CheckSum{938} +% \CheckSum{1229} % \iffalse meta-comment -% scrjura.sty +% ====================================================================== +% scrjura.dtx +% Copyright (c) Markus Kohm, 2007-2009 +% +% NOTE: THIS IS AN UNSUPPORTED BETA-VERSION! +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. % +% The KOMA-Script bundle consists of all files listed in manifest.txt. +% This work `scrjura' consists of the files `scrjura.dtx' and +% `scrlogo.dtx'. +% ---------------------------------------------------------------------- +% scrjura.dtx % Copyright (c) Markus Kohm, 2007-2009 -% This is a alpha verion, therefor: All rights reserved. % -% Dieses Paket geht auf eine Anregung von cookie170 zurück. +% HINWEIS: DIES IST EINE BETA-VERSION FÜR DIE ES KEINERLEI SUPPORT GIBT! +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt +% genannt sind. +% Das Werk `scrjura' besteht aus den Dateien `scrjura.dtx' und +% `scrlogo.dtx'. +% ====================================================================== % \fi % % \CharacterTable @@ -35,7 +74,7 @@ %<driver>\ProvidesFile{scrjura.drv} %<package>\ProvidesPackage{scrjura} %<*dtx|package|driver> - [2008/01/23 v0.4b alpha + [2009/03/24 v0.5a beta %</dtx|package|driver> %<driver> (driver)% %<package> (package)% @@ -120,10 +159,10 @@ This file was generated from file(s) of the KOMA-Script bundle. --------------------------------------------------------------- This work may be distributed and/or modified under the conditions of -the LaTeX Project Public License, version 1.3b of the license. +the LaTeX Project Public License, version 1.3c of the license. The latest version of this license is in http://www.latex-project.org/lppl.txt -and version 1.3b or later is part of all distributions of LaTeX +and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later and of this work. This work has the LPPL maintenance status "author-maintained". @@ -170,7 +209,7 @@ standard classes created by The LaTeX3 Project 1994-1996. \Msg{* a versatile LaTeX2e bundle} \Msg{*} \ifbeta - \Msg{* THIS IS AN ALPHA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} + \Msg{* THIS IS AN BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} \Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} % \Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} \else @@ -202,7 +241,7 @@ standard classes created by The LaTeX3 Project 1994-1996. % \date{\filedate} % \author{Markus Kohm\thanks{Paketautor, mailto:komascript(at)gmx.info}\and % Dr.\,Alexander -% Willand\thanks{Autor der Anleitung}} +% Willand\thanks{Autor der Anleitung, mailto:alexander.willand(klammeraffe)t-online.de}} % \begin{document} % \maketitle % \begin{abstract} @@ -219,10 +258,10 @@ standard classes created by The LaTeX3 Project 1994-1996. % Dieser Teil von \KOMAScript{} darf ohne die restlichen Teile von % \KOMAScript{} verteilt werden. Dazu dürfen die Dateien % »\texttt{scrlogo.dtx}« und »\texttt{scrjura.dtx}« unter den Bedingungen der -% \LaTeX{} Project Public License, wahlweise Version 1.3b oder (nach Ihrer +% \LaTeX{} Project Public License, wahlweise Version 1.3c oder (nach Ihrer % Entscheidung) jede spätere Version, verteilt und verändert werden. Die % aktuelle Version dieser Lizenz ist unter -% \mbox{http://www.latex-project.org/lppl.txt} zu finden und Version~1.3b oder +% \mbox{http://www.latex-project.org/lppl.txt} zu finden und Version~1.3c oder % neuer ist Teil von \LaTeX{} Version 2005/12/01 oder neuer. Es ist nicht % gestattet die Datei »\texttt{scrjura.dtx}« ohne die Datei % »\texttt{scrlogo.dtx}« zu verteilen. Eine Verteilung ist nur zusammen @@ -249,7 +288,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % % Wer juristische Dokumente verfasst, steht oft unter hohem % Zeitdruck. Überraschende Fehlermeldungen von \LaTeXe{} kann man da nicht -% brauchen. Erfreulicherweise setzt \textsf{scrjura} lediglich das keyval"=Paket voraus. +% brauchen. Erfreulicherweise setzt \textsf{scrjura} lediglich das +% \textsf{scrkbase"=Paket} voraus. % % \textsf{scrjura} bietet zwei Modi: % \begin{enumerate} @@ -267,12 +307,15 @@ standard classes created by The LaTeX3 Project 1994-1996. % % Ein Inhaltsverzeichnis wird wie üblich mit |\tableofcontents| erzeugt und % enthält -- neben etwaigen anderen Überschriften -- auch alle -% Paragraphentitel, sofern |scrjura| mit der Option |juratotoc| geladen +% Paragraphentitel, sofern \textsf{scrjura} mit der Option |juratotoc| geladen % wurde. Automatische Kolumnentitel sind ebenfalls möglich. % % Jeder Paragraph hat einen Titel, z.\,B.: |\Paragraph{title=Besitz}|. Die % Nummerierung der Paragraphen erfolgt automatisch, kann aber auch manuell -% vorgenommen werden. +% vorgenommen werden. +% +% Nahezu alle vom Anwender anzugebenden Daten folgen dem \textit{key=value}"=Schema, +% wie bereits an dem eben genannten Titel eines Paragraphen zu sehen war. % % Enthält ein Paragraph mehr als einen Absatz, werden alle Absätze automatisch % nummeriert. Die Nummerierung kann fallweise abgeschaltet werden. Es ist @@ -283,9 +326,10 @@ standard classes created by The LaTeX3 Project 1994-1996. % beispielsweise "`§ 16 Absatz 3 Satz 1"' als auch "`§ 16 III 1"' als Ausgabe % zu erhalten. % -% \textsf{scrjura} unterstützt das |hyperref|"=Paket, ist damit aber hier noch nicht ausfürlich -% getestet worden. Wie immer, wird |hyperref| zuletzt geladen. Andernfalls gibt es faszinierende -% Fehlermeldungen. Wird |hyperref| wieder entfernt, muss die *.aux-Datei gelöscht werden. +% \textsf{scrjura} unterstützt das |hyperref|"=Paket, ist damit aber hier noch +% nicht ausfürlich getestet worden. Wie immer, wird |hyperref| zuletzt +% geladen. Andernfalls gibt es faszinierende Fehlermeldungen. Wird |hyperref| +% wieder entfernt, muss die *.aux-Datei gelöscht werden. % % \subsection{Die Optionen beim Laden des Pakets} % @@ -306,30 +350,62 @@ standard classes created by The LaTeX3 Project 1994-1996. % Inhaltsverzeichnisses zurück. Bei dreistelligen Paragraphennummern kann im % Inhaltsverzeichnis die Nummer in den Überschriftstext hineinragen. % -% Die einfachste Abhilfe gegen diesen Fehler besteht darin, die Box mit der Gliederungsnummer zu -% verbreitern, beispielsweise mit +% Die einfachste Abhilfe gegen diesen Fehler besteht darin, die Box mit der +% Gliederungsnummer zu verbreitern, beispielsweise mit % % |\renewcommand{\numberline}[1]{\makebox[6em][l]{#1}}|. % % Die Breite der Box lässt den jeweiligen Gegebenheiten anpassen. % -% Eine andere Abhilfe bei der Verwendung einer Komascript"=Klasse besteht +% Eine andere Abhilfe bei der Verwendung einer \KOMAScript"=Klasse besteht % darin, die Option |tocleft| zu verwenden. Zuletzt kann man % selbstverständlich auf die verschiedenen Pakete zurückgreifen, mit denen % sich das Inhaltsverzeichnis anpassen lässt. Den Gewinn an Möglichkeiten % erkauft man sich allerdings mit einem erhöhten Risiko, dass Fehler % auftreten. % -% Im deutschen Recht werden \textit{Absätze} in Normen zwar arabisch nummeriert, -% aber mit römischen Nummern referenziert. -% \DescribeOption{parcitename}% -% Mit der Option \texttt{parcitename} kann dafür gesorgt werden, dass -% \textsf{scrjura} Absätze anders, nämlich in der Form |\parname~|\meta{Nummer} referenziert. +% +% Ein für den Autor der Anleitung entscheidender Vorteil von \textsf{scrjura} +% liegt in dem umfassenden System, auf andere Klauseln des Vertrages verweisen +% zu können. Beim Laden des Paktes kann per Option entschieden werden, +% wie die Verweise formatiert werden sollen: lang (Bsp: »§ 314 Absatz 2 Satz 2«), +% kurz (»§ 314 Abs. 2 S. 2«) und numerisch (»§ 314 II 2«). Die Optionen hierzu lauten: +% \begin{itemize} +% \item ref=numeric +% \item ref=long +% \item ref=short +% \end{itemize} +% +% Wird nichts angegeben, ist |ref=long| voreingestellt. +% +% Wer hier spezifische Wünsche hat, kann die Zitierweise von Absätzen und Sätzen +% bereits bei den Optionen hiervon abweichend festlegen. Es sind beliebige Kombinationen +% von |parlong, parshort, parnumeric| mit |sentenceslong, sentenceshort, sentencesnumeric| +% möglich. Beispiel: |\usepackage[ref=parlong, ref=sentenceshort]{scrjura}|. +% Wir haben allerdings diese Kombinationen nicht alle getestet. +% +% \subsection{Optionen betreffend Kolumnentitel} % -% \DescribeOption{sentencecitename}% -% Normalerweise werden \textit{Sätze} mit arabischen Nummern gezählt und referenziert. Es kann -% jedoch mit der Option \texttt{sentencecitename} auch dafür gesorgt werden, -% dass sie in der Form |\sentencename~|\meta{Nummer} referenziert werden. +% Bei langen Verträgen können automatische Kolumnentitel hilfreich +% sein. Allerdings hängt die Ausgabe hier davon ab, wie die diese erzeugt +% werden. \DescribeOption{paragraphmark}% +% \textsf{scrjura} unterstützt lebende Kolumnentitel. Die Option \texttt{paragraphmark} kann +% auf folgende Werte gesetzt werden: +% \begin{itemize} +% \item false, off, no +% \item right +% \item both +% \end{itemize} +% +% +% Sollte der Vertrag in Abschnitte unterteilt werden, also etwa mit einer Zeile +% |\parnumberfalse\section{ABSCHNITT}\parnumbertrue|, +% würde auf den ungeraden Seiten die Abschnittsüberschriften und auf den +% geraden Seiten der Titel des aktuellen Paragraphen angegeben werden. +% +% Im übrigen können die zur Gestaltung von Kopfzeilen üblichen Pakete (z.B. scrpage2) +% verwendet werden. +% % % % \subsection{Der Paragraph} @@ -341,7 +417,7 @@ standard classes created by The LaTeX3 Project 1994-1996. % % \DescribeMacro{\Paragraph}% % Für die Paragraphenüberschrift stehen verschiedene optionale Argumente zur -% Verfügung, die -- ungewohnterweise -- in einer durch Kommata zu trennenden +% Verfügung, die ebenfalls in einer durch Kommata zu trennenden % key=value-Liste angegeben werden: % % \bigskip\renewcommand{\arraystretch}{1.3} @@ -399,45 +475,80 @@ standard classes created by The LaTeX3 Project 1994-1996. % wird der Abschnitt zum ersten als Paragraphenabsatz und dann als Abschnitt % nummeriert. % -% \subsection{Kolumnentitel} -% Bei langen Verträgen können automatische Kolumnentitel hilfreich -% sein. Allerdings hängt die Ausgabe hier davon ab, wie die diese erzeugt -% werden. \DescribeOption{markboth}% -% \DescribeOption{markright}% -% \textsf{scrjura} unterstützt diese \LaTeXe"=Befehle sowie die darauf -% aufbauenden |\rightmark| und |\leftmark|. Mit dem Paket |scrpage2| könnte -% beispielsweise in der Präambel angegeben werden -% -% |\usepackage[juratotoc, markboth]{scrjura}|\\ -% |\usepackage[automark]{scrpage2}|\\ -% |\pagestyle{scrheadings}|\\ -% |\ihead{\rightmark}|\\ -% |\chead{}|\\ -% |\ohead{\leftmark}|\\ -% -% \DescribeMacro{\Paragraphmark}% -% Hiermit können -- ähnlich wie bei |\chaptermark{}| -- Kolumnentitel per Hand -% gesetzt werden. % % \subsection{Verweise} % \label{sec:referenzierung} -% \textsf{scrjura} verfügt über einige sehr praktische Möglichkeiten, sich im -% Vertragstext auf andere Paragraphen, Absätze und Sätze zu beziehen: -% \begin{itemize} -% \item |\ref{}| (in der Klammer ist jeweils das Label anzugeben) -% verweist in der Form Paragraph Absatz Satz (z.\,B. § 2 III 1) auf die -% genaue Stelle des Labels |\label{}|. -% \item |\refParagraph{}| druckt nur den Paragraphen, -% \item |\refPar{}| druckt nur den Absatz und -% \item |\refSentence{}| nur den Satz. -% \end{itemize} % -% Daraus kann man problemlos Anweisungen wie: +% Verlässlich funktionierende Verweise sind eine große Erleichterung +% beim Abfassen von Verträgen. Wenn in einem ersten Entwurf eines Gesellschaftsvertrags +% die Abfindungsregelungen in §§~28 ff. enthalten sind, diese aber nach einigen Umbauten +% sich irgendwann in §§~19 ff. wiederfinden, dann müssen alle Verweise auf die unterschiedlichen +% Abfindungsregelungen für kündigende Gesellschafter, für solche, die in Rente gehen und für +% 'rausgeworfene diese Änderungen nachvollzogen haben. % -% |\newcommand*{\refPARabs}[1]{\refParagraph{#1}~\refPar{#1}}| \\ -% ableiten. |\refPARabs{}| würde die Stelle des Labels mit Paragraph und -% Absatz beschreiben. - +% In der Grundeinstellung führt der Verweis |\ref{testA}| auf ein |\label{testA}|, das in einem Absatz +% platziert wurde, zur Ausgabe eines Vollverweises einschließlich der Satzangabe. +% +% Nun will man häufig nicht den Paragraph, Absatz \textit{und} Satz, +% sondern nur Paragraph und Absatznummer referenzieren. Die folgende Tabelle +% enthält eine systematische Darstellung aller Verweismöglicheiten. Ein »L« kennzeichnet die +% Langform, ein »S« die Kurzform und ein »N« die nummerische Darstellung des Verweises. +% +% Zunächst das Beispiel, auf das sich die Tabelle bezieht: +% +% \begin{verbatim} +% \begin{contract} +% \Paragraph{title=Beispiel} +% Es irrt der Mensch.\label{testA} +% \end{contract} +% \end{verbatim} +% +% Dies ergibt einen sehr kurzen Paragraphen: +% +% \rule{10cm}{0.4pt} +% +% \begin{contract} +% \Paragraph{title=Beispiel} +% +% Es irrt der Mensch.\label{testA} +% +% \end{contract} +% +% \rule{10cm}{0.4pt} +% +% \bigskip +% +% Folgende Verweise auf diesen § 1 Absatz 1 Satz 1 sind möglich: +% +% \bigskip +% +% \begin{tabular}{ll} +% Code & Ergebnis \\ +% \hline +% \verb|\ref{testA}| & \ref{testA} \\ +% \verb|\refL{testA}| & \refL{testA} \\ +% \verb|\refS{testA}| & \refS{testA} \\ +% \verb|\refN{testA}| & \refN{testA} \\ +% \verb|\refParagraph{testA}| & \refParagraph{testA} \\ +% \verb|\refParagraphN{testA}| & \refParagraphN{testA} \\ +% \verb|\refPar{testA}| & \refPar{testA} \\ +% \verb|\refParL{testA}| & \refParL{testA} \\ +% \verb|\refParS{testA}| & \refParS{testA} \\ +% \verb|\refParN{testA}| & \refParN{testA} \\ +% \verb|\refParN[arabic]{testA}| & \refParN[arabic]{testA} \\ +% \verb|\refSentence{testA}| & \refSentence{testA} \\ +% \verb|\refSentenceL{testA}| & \refSentenceL{testA} \\ +% \verb|\refSentenceS{testA}| & \refSentenceS{testA} \\ +% \verb|\refSentenceN{testA}| & \refSentenceN{testA} \\ +% \end{tabular} +% +% Zu jeder existiert noch eine Stern"=Version, also z.B. +% |\ref*{testA}|. Wenn das Paket |hyperref| geladen ist, erzeugt +% die besternte Version einen Verweis, der \textit{kein} Hyperlink ist. +% Wenn das Paket jedoch nicht geladen wurde, erzeugt die besternte Version +% -- Fehler. +% +% % \subsection{Absatz- und Satznummerierung} % \label{sec:abs-u-satznummerierung} % \DescribeMacro{\parnumbertrue}% @@ -463,12 +574,12 @@ standard classes created by The LaTeX3 Project 1994-1996. % kann der Satzendepunkt apostrophiert gesetzt werden: |'.|, damit wird dann % der nächste Satz nummeriert. % % -% \subsection{kile anpassen} -% Bei langen Verträgen ist es sehr hilfreich, die Gliederung und die Paragraphentitel -% auf dem Bildschirm einblenden zu können. Wer kile als Editor verwendet, -% der kann sich -- Open Source sei Dank! -- selbst helfen. Bei Version 2.0.0 -% von kile genügt es, in der Datei |kiledocumentinfo.cpp| an geeigneter Stelle -% zwei Zeilen einzufügen: +% \subsection{kile anpassen, \textsf{scrjura} unter lyx} +% Bei langen Verträgen ist es sehr hilfreich, die Gliederung und die +% Paragraphentitel auf dem Bildschirm einblenden zu können. Wer kile als +% Editor verwendet, der kann sich -- Open Source sei Dank! -- selbst +% helfen. Bei Version 2.0.0 von kile genügt es, in der Datei +% |kiledocumentinfo.cpp| an geeigneter Stelle zwei Zeilen (jeweils ohne Zeilenumbruch) einzufügen: % \begin{verbatim} % m_dictStructLevel["\\Paragraph"]= % KileStructData(5, KileStruct::Sect, "Paragraph"); @@ -476,13 +587,27 @@ standard classes created by The LaTeX3 Project 1994-1996. % m_dictStructLevel["\\SubParagraph"]= % KileStructData(6, KileStruct::Sect, "SubParagraph"); % \end{verbatim} -% (Einzufügen ohne Zeilenumbruch.) +% % % -% Zahlen über 7 sind eine schlechte Idee. Nach dem Speichern der Datei folgt der übliche -% Dreisprung: configure, make, make install (oder checkinstall \dots). kile zeigt danach -% Paragraphen und »Unterparagraphen« als Dokumentenstruktur an. Vielleicht -% findet ein Anwender ja heraus, wie dies mit tecniccenter zu bewerkstelligen ist. +% Zahlen über 7 sind eine schlechte Idee. Nach dem Speichern der Datei folgt +% der übliche Dreisprung: configure, make, make install (oder checkinstall +% \dots). kile zeigt danach Paragraphen und »Unterparagraphen« als +% Dokumentenstruktur an. Vielleicht findet ein Anwender ja heraus, wie dies +% mit \TeX nicCenter zu bewerkstelligen ist. +% +% Bis jemand für die Verwendung von \textsf{scrjura} eine lyx-Klasse schreibt, wozu wir ausdrücklich ermutigen wollen, +% kann man sich bei der Nutzung von lyx damit behelfen, im sog. »\LaTeX"=Vorspann« +% beispielsweise die Definition des Unterunterabschnitts anzupassen: +% +% |\renewcommand{\subsubsection}[1]{\Paragraph{title= #1}}| +% +% Damit lassen sich Paragraphenüberschriften in lyx als Unterunterabschnittsüberschriften +% setzen. Da die Absätze von Verträgen ohnehin von \textsf{scrjura} automatisch nummeriert werden, +% zeigen sich die Nachteile dieses Vorgehens erst, wenn man einen Unterunterabschnitt benötigt. +% +% +% % % \subsection{Sonstiges} %\label{sec:else} @@ -539,10 +664,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % % \section{Bekannte Probleme} % -% Automatische Absatznummerierung kann gestört werden. Paket \textsf{hyperref} -% darf nicht vor \textsf{scrjura} geladen werden. Noch nicht alles -% implementiert. Kein Support, da Alpha-Version. -% +% Die Verweistechnik wurde noch nicht ausführlich getestet; Fehler sind +% möglich. % % % \StopEventually{\PrintIndex\PrintChanges} @@ -565,6 +688,12 @@ standard classes created by The LaTeX3 Project 1994-1996. } % \end{macrocode} % +% Es wird das Paket \textsf{scrkbase} benötigt, weil alles weitere darauf +% aufbaut. +% \begin{macrocode} +\RequirePackage{scrkbase} +% \end{macrocode} +% % \begin{option}{contract} % Mit der Option |contract| wird das gesamte Dokument zu einem Vertrag. Man % darf dann keine der von diesem Paket bereit gestellten Umgebungen mehr @@ -581,14 +710,14 @@ standard classes created by The LaTeX3 Project 1994-1996. % Mit dieser Option wird der Schalter |\if@juratotoc| auf |\iftrue| gesetzt. % \begin{macro}{\if@juratotoc} % Mit dem Schalter wiederum wird erreicht, dass Paragraphen in das -% Inhaltsverzeichnis ausgenommen werden. +% Inhaltsverzeichnis aufgenommen werden. % \begin{macrocode} -\newif\if@juratotoc -\DeclareOption{juratotoc}{\@juratotoctrue} +\KOMA@ifkey{juratotoc}{@juratotoc} % \end{macrocode} % \end{macro} % \end{option} % +% \begin{option}{paragraphmark} % \begin{option}{markright} % \begin{option}{markboth} % \begin{macro}{\Paragraphmark} @@ -598,42 +727,114 @@ standard classes created by The LaTeX3 Project 1994-1996. % die zu verwendende Nummer (das könnte bei Bedarf noch geändert werden!) % \begin{macrocode} \newcommand*{\Paragraphmark}[1]{} -\DeclareOption{markright}{% - \renewcommand*{\Paragraphmark}[1]{\markright{#1}}% -} -\DeclareOption{markboth}{% - \renewcommand*{\Paragraphmark}[1]{\markboth{#1}{#1}}% +\KOMA@key{paragraphmark}{% + \begingroup + \KOMA@set@ncmdkey{paragraphmark}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {forceright}{1},% + {forceboth}{2},% + {right}{3},% + {both}{4}% + }{#1}% + \ifcase\number\@tempa + \endgroup + \let\Paragraphmark\@gobble + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{\markright{##1}}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{\markboth{##1}{##1}}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{% + \ifx\@mkboth\@gobbletwo\else\markright{##1}\fi}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{\@mkboth{##1}{##1}}% + \else + \endgroup + \fi } +\KOMA@DeclareDeprecatedOption[scrjura]{markright}{paragraphmark=forceright} +\KOMA@DeclareDeprecatedOption[scrjura]{markboth}{paragraphmark=forceboth} % \end{macrocode} % \end{macro} % \end{option} % \end{option} +% \end{option} % +% \begin{option}{ref} % \begin{option}{parcitename} % \begin{option}{sentencecitename} -% In der Voreinstellung werden die Absätze über römische Zahlen zitiert. Man -% kann sie aber auch über den Namen zitieren, also in der Form »Absatz 3« -% statt »III«. Das gleiche gibt es dann auch noch für Sätze. +% Die Form, in der Absätze und Sätze referenziert werden. Es gibt eine lange, +% eine abgekürzte und eine nummerische Form. +% +% \begin{macro}{\parcite@fromat} +% \begin{macro}{\sentencecite@fromat} +% In der Voreinstellung wird das lange Format verwendet. % \begin{macrocode} -\DeclareOption{parcitename}{% - \AtEndOfPackage{\renewcommand*{\parciteformat}[1]{\parname~#1}}% -} -\DeclareOption{sentencecitename}{% - \AtEndOfPackage{\renewcommand*{\sentenceciteformat}[1]{\sentencename~#1}}% +\newcommand*{\parcite@format}{0} +\newcommand*{\sentencecite@format}{0} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Per Option kann die Voreinstellung verändert werden. +% \begin{macrocode} +\KOMA@key{ref}{% + \begingroup + \KOMA@set@ncmdkey{ref}{@tempa}{% + {parlong}{1},{longpar}{1},{ParL}{1},% + {parshort}{2},{shortpar}{2},{ParS}{2},% + {parnumeric}{3},{numericpar}{3},{ParN}{3},% + {sentencelong}{10},{longsentence}{10},{SentenceL}{10},% + {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},% + {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},% + {long}{11},% + {short}{22},% + {numeric}{33}% + }{#1}% + \@tempcnta=\@tempa\relax + \@tempcntb=\z@ + \@whilenum \@tempcnta>9 \do{% + \advance\@tempcnta -10\relax + \advance\@tempcntb \@ne\relax + }% + \ifcase \@tempcnta + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup0\aftergroup}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup1\aftergroup}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup2\aftergroup}% + \fi + \ifcase \@tempcntb + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup0\aftergroup}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup1\aftergroup}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup2\aftergroup}% + \fi + \endgroup } +\KOMA@DeclareDeprecatedOption[scrjura]{parcitename}{ref=parlong} +\KOMA@DeclareDeprecatedOption[scrjura]{sentencecitename}{ref=sentencelong} % \end{macrocode} % \end{option} % \end{option} +% \end{option} % % Optionen ausführen. % \begin{macrocode} -\ProcessOptions\relax -% \end{macrocode} -% -% Es wird das Paket \textsf{keyval} benötigt, weil alles weitere darauf -% aufbaut. -% \begin{macrocode} -\RequirePackage{keyval} +\KOMAProcessOptions\relax % \end{macrocode} % % \begin{environment}{contract} @@ -665,7 +866,9 @@ standard classes created by The LaTeX3 Project 1994-1996. \let\cl@SubParagraph\@empty \newcounter{contractParagraph} \renewcommand*{\thecontractParagraph}{% - {\S~\arabic{contractParagraph}}} + {\contract@Paragraphformat{\arabic{contractParagraph}}}} +\DeclareRobustCommand*{\contract@Paragraphformat}[1]{\paragraphformat{#1}} +\newcommand*{\paragraphformat}[1]{\S~#1} \newcounter{contractSubParagraph} \@addtoreset{SubParagraph}{Paragraph} \renewcommand*{\thecontractSubParagraph}{% @@ -677,7 +880,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % \begin{macro}{\contract@paragraph} % Das ist das Macro, das in Verträgen |\Paragraph| zur Verfügung stellt. % Ein Vertrag besteht aus mehreren Paragraphen. Jeder Paragraph hat einige -% optionale Elemente, die über das keyval-Paket geregelt werden. +% optionale Elemente, die (auf dem Umweg über scrkbase) über das +% keyval-Paket geregelt werden. % \begin{option}{title} % \begin{option}{head} % \begin{option}{entry} @@ -1064,13 +1268,67 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macrocode} % \end{macro} % +% +% \begin{macro}{\refL} +% \begin{macro}{\ref@L} +% Das gleiche wie |\ref| aber zwingend mit der Langform. +% \begin{macrocode} +\newcommand*{\refL}{\@ifstar {\ref@L*}{\ref@L{}}} +\newcommand*{\ref@L}[2]{% + \begingroup + \def\parcite@format{0}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refS} +% \begin{macro}{\ref@S} +% Das gleiche wie |\ref| aber zwingend mit der Kurzform. +% \begin{macrocode} +\newcommand*{\refS}{\@ifstar {\ref@S*}{\ref@S{}}} +\newcommand*{\ref@S}[2]{% + \begingroup + \def\parcite@format{1}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refN} +% \begin{macro}{\ref@N} +% Das gleiche wie |\ref| aber zwingend mit der numerischen Form. +% \begin{macrocode} +\newcommand*{\refN}{\@ifstar {\ref@N*}{\ref@N{}}} +\newcommand*{\ref@N}[2]{% + \begingroup + \def\parcite@format{2}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\refParagraph} -% Zitiert nur den Paragraphen einer Paragraphen, eines Absatzes oder eines -% Satzes. +% \begin{macro}{\ref@Paragraph} +% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines +% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine +% Sternform. Ohne hyperref produziert diese nur Unsinn. % \begin{macrocode} -\newcommand*{\refParagraph}[1]{% - \expandafter\ifx\csname r@#1\endcsname\relax - \ref{#1}% +\newcommand*{\refParagraph}{% + \@ifstar {\ref@Paragraph*}{\ref@Paragraph{}} +} +\newcommand*{\ref@Paragraph}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% \else \begingroup % \end{macrocode} @@ -1082,14 +1340,14 @@ standard classes created by The LaTeX3 Project 1994-1996. \expandafter\expandafter\expandafter\@tempb \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% % \end{macrocode} % Den ersten Teil der Referenz in |\@tempa| ablegen. % \begin{macrocode} \def\@tempc##1##2\@nil{##1}% \let\jura@separator\@gobble \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc - \csname r@#1\endcsname\noexpand\@nil}% + \csname r@#2\endcsname\noexpand\@nil}% % \end{macrocode} % Den ersten Teil von |\@tempa| in |\@tempa| ablegen. % \begin{macrocode} @@ -1097,21 +1355,47 @@ standard classes created by The LaTeX3 Project 1994-1996. \@tempa\@nil}% \let\@@protect\protect \let\protect\noexpand - \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% \let\protect\@@protect - \ref{#1}% + \ref#1{#2}% \endgroup \fi } % \end{macrocode} % \end{macro} +% \end{macro} +% +% \begin{macro}{\refParagraphN} +% \begin{macro}{\ref@ParagraphN} +% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines +% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine +% Sternform. Ohne hyperref produziert diese nur Unsinn. +% \begin{macrocode} +\newcommand*{\refParagraphN}{% + \@ifstar {\ref@ParagraphN*}{\ref@ParagraphN{}} +} +\newcommand*{\ref@ParagraphN}[2]{% + \begingroup + \let\paragraphformat\relax + \ref@Paragraph{#1}{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} % % \begin{macro}{\refPar} -% Zitiert nur den Absatz eines Absatzes oder eines Satzes. +% \begin{macro}{\ref@Par} +% Zitiert nur den Absatz eines Absatzes oder eines Satzes. Für mehr +% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne +% hyperref produziert diese nur Unsinn. % \begin{macrocode} -\newcommand*{\refPar}[1]{% - \expandafter\ifx\csname r@#1\endcsname\relax - \ref{#1}% +\newcommand*{\refPar}{% + \@ifstar {\ref@Par*}{\ref@Par{}} +} +\newcommand*{\ref@Par}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% \else \begingroup % \end{macrocode} @@ -1123,14 +1407,14 @@ standard classes created by The LaTeX3 Project 1994-1996. \expandafter\expandafter\expandafter\@tempb \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% % \end{macrocode} % Den ersten Teil der Referenz in |\@tempa| ablegen. % \begin{macrocode} \def\@tempc##1##2\@nil{##1}% \let\jura@separator\@gobble \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc - \csname r@#1\endcsname\noexpand\@nil}% + \csname r@#2\endcsname\noexpand\@nil}% % \end{macrocode} % Den zweiten Teil von |\@tempa| in |\@tempa| ablegen. % \begin{macrocode} @@ -1139,26 +1423,83 @@ standard classes created by The LaTeX3 Project 1994-1996. \@tempa{% \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% - \@latex@warning{Reference `#1' on page \thepage \space + \@latex@warning{Reference `#2' on page \thepage \space with undefined par number}% }\noexpand\@nil}% \let\@@protect\protect \let\protect\noexpand - \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% \let\protect\@@protect - \ref{#1}% + \ref#1{#2}% \endgroup \fi } % \end{macrocode} % \end{macro} +% \end{macro} +% +% \begin{macro}{\refParL} +% \begin{macro}{\ref@ParX} +% \begin{macrocode} +% Das Gleiche zwingend lang. +\newcommand*{\refParL}{% + \@ifstar {\ref@ParX0*}{\ref@ParX0{}} +} +\newcommand*{\ref@ParX}[3]{% + \begingroup + \def\parcite@format{#1}% + \let\sentencecite@format\parcite@format + \ref@Par{#2}{#3}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refParS} +% Das Gleiche zwingend kurz. +% \begin{macrocode} +\newcommand*{\refParS}{% + \@ifstar {\ref@ParX1*}{\ref@ParX1{}} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\refParN} +% Das Gleiche zwingend nummerisch. +% \begin{macrocode} +\newcommand*{\refParN}{% + \@ifstar {\ref@ParN2*}{\ref@ParN2{}} +} +\newcommand*{\ref@ParN}[2]{% + \@ifnextchar [%] + {\ref@@ParN{#1}{#2}}% + {\ref@ParX{#1}{#2}}% +} +\newcommand*{\ref@@ParN}{} +\def\ref@@ParN#1#2[#3]#4{% + \begingroup + \renewcommand*{\parnumericformat}[1]{% + \csname @#3\endcsname{\number ##1\relax}% + }% + \ref@ParX{#1}{#2}{#4}% + \endgroup +} +% \end{macrocode} +% \end{macro} % % \begin{macro}{\refSentence} -% Zitiert nur den Satz eines Satzes. +% \begin{macro}{\ref@Sentence} +% Zitiert nur den Satz eines Satzes. Für mehr +% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne +% hyperref produziert diese nur Unsinn. % \begin{macrocode} -\newcommand*{\refSentence}[1]{% - \expandafter\ifx\csname r@#1\endcsname\relax - \ref{#1}% +\newcommand*{\refSentence}{% + \@ifstar {\ref@Sentence*}{\ref@Sentence{}} +} +\newcommand*{\ref@Sentence}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% \else \begingroup % \end{macrocode} @@ -1170,14 +1511,14 @@ standard classes created by The LaTeX3 Project 1994-1996. \expandafter\expandafter\expandafter\@tempb \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% % \end{macrocode} % Den ersten Teil der Referenz in |\@tempa| ablegen. % \begin{macrocode} \def\@tempc##1##2\@nil{##1}% \let\jura@separator\@gobble \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc - \csname r@#1\endcsname\noexpand\@nil}% + \csname r@#2\endcsname\noexpand\@nil}% % \end{macrocode} % Den dritten Teil von |\@tempa| in |\@tempa| ablegen. % \begin{macrocode} @@ -1186,19 +1527,56 @@ standard classes created by The LaTeX3 Project 1994-1996. \@tempa{}{% \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% - \@latex@warning{Reference `#1' on page \thepage \space + \@latex@warning{Reference `#2' on page \thepage \space with undefined sentence number}% }\noexpand\@nil}% \let\@@protect\protect \let\protect\noexpand - \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% \let\protect\@@protect - \ref{#1}% + \ref#1{#2}% \endgroup \fi } % \end{macrocode} % \end{macro} +% \end{macro} +% +% \begin{macro}{\refSentenceL} +% \begin{macro}{\ref@SentenceX} +% \begin{macrocode} +% Das Gleiche zwingend lang. +\newcommand*{\refSentenceL}{% + \@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}} +} +\newcommand*{\ref@SentenceX}[3]{% + \begingroup + \def\parcite@format{#1}% + \let\sentencecite@format\parcite@format + \ref@Sentence{#2}{#3}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refSentenceS} +% Das Gleiche zwingend kurz. +% \begin{macrocode} +\newcommand*{\refSentenceS}{% + \@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\refSentenceN} +% Das Gleiche zwingend nummerisch. +% \begin{macrocode} +\newcommand*{\refSentenceN}{% + \@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}} +} +% \end{macrocode} +% \end{macro} % % \begin{macro}{\contract@sentence} % Sätze nummerieren. @@ -1227,10 +1605,18 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macro} % % \begin{macro}{\parciteformat} -% Zitierstil für Absätze. In der Voreinstellung ist das |\@Roman|. +% Zitierstil für Absätze. % \begin{macrocode} \DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}} -\newcommand*{\parciteformat}[1]{\@Roman{\numexpr #1\relax}} +\newcommand*{\parciteformat}[1]{% + \ifcase \parcite@format + \parlongformat{#1}% + \or + \parshortformat{#1}% + \or + \parnumericformat{#1}% + \fi +} % \end{macrocode} % \end{macro} % @@ -1238,30 +1624,82 @@ standard classes created by The LaTeX3 Project 1994-1996. % Zitierstil für Sätze. In der Voreinstellung ist das |\@arabic|. % \begin{macrocode} \DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}} -\newcommand*{\sentenceciteformat}[1]{\@arabic{\numexpr #1\relax}} +\newcommand*{\sentenceciteformat}[1]{% + \ifcase \sentencecite@format + \sentencelongformat{#1}% + \or + \sentenceshortformat{#1}% + \or + \sentencenumericformat{#1}% + \fi +} % \end{macrocode} % \end{macro} % +% \begin{macro}{\parlongformat} +% \begin{macro}{\parshortformat} +% \begin{macro}{\parnumericformat} +% \begin{macro}{\sentencelongformat} +% \begin{macro}{\sentenceshortformat} +% \begin{macro}{\sentencenumericformat} +% Formatierung in den sechs Formen. +% \begin{macrocode} +\newcommand*{\parlongformat}[1]{\parname~#1} +\newcommand*{\parshortformat}[1]{\parshortname~#1} +\newcommand*{\parnumericformat}[1]{\@Roman{\number #1\relax}} +\newcommand*{\sentencelongformat}[1]{\sentencename~#1} +\newcommand*{\sentenceshortformat}[1]{\sentenceshortname~#1} +\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % \begin{macro}{\parname} +% \begin{macro}{\parshortname} % \begin{macro}{\sentencename} +% \begin{macro}{\sentenceshortname} +% \begin{macro}{\scrjura@lang@error} % Der Name eines Absatzes und eines Satzes. % \begin{macrocode} \newcommand*{\parname}{Paragraph} \AtBeginDocument{% - \@ifundefined{captionsgerman}{}{% - \addto\captionsgerman{\def\parname{Absatz}}% - \addto\captionsgerman{\def\sentencename{Satz}}% - \ifnum \l@german=\language\selectlanguage{german}\fi - }% - \@ifundefined{captionsngerman}{}{% - \addto\captionsngerman{\def\parname{Absatz}}% - \addto\captionsngerman{\def\sentencename{Satz}}% - \ifnum \l@ngerman=\language\selectlanguage{ngerman}\fi + \providecaptionname{german}\parname{Absatz}% + \providecaptionname{german}\parshortname{Abs.}% + \providecaptionname{german}\sentencename{Satz}% + \providecaptionname{german}\sentenceshortname{S.}% + \providecaptionname{ngerman}\parname{Absatz}% + \providecaptionname{ngerman}\parshortname{Abs.}% + \providecaptionname{ngerman}\sentencename{Satz}% + \providecaptionname{ngerman}\sentenceshortname{S.}% +} +\providecommand*{\parname}{\scrjura@lang@error{\parname}} +\providecommand*{\parshortname}{\scrjura@lang@error{\parshortname}} +\providecommand*{\sentencename}{\scrjura@lang@error{\sentencename}} +\providecommand*{\sentenceshortname}{\scrjura@lang@error{\sentenceshortname}} +\newcommand*{\scrjura@lang@error}[1]{% + \PackageErrorNoLine{scrjura}{% + current language not supported% + }{% + Currently scrjura only supports languages ``german'' and + ``ngerman''.\MessageBreak + It seems, that you are using another language (maybe + \languagename).\MessageBreak + Because of this you have to define \string#1\space by + yourself!\MessageBreak + It would be nice if you'll send your definitions to the author.% }% + \textbf{??}% } % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\newmaxpar} % \begin{macro}{\getmaxpar} |