Sie sind hier

Paket für Verträge mit Komascript-Bordmitteln

Hallo,

ich schreibe Verträge und verwende dafür ein kleines Paket, siehe hier: http://groups.google...hl=de#cec11c2fb7fc66c3

Darin wird allerdings das Paket titlesec verwendet. Nach verschiedenen Diskussionen hier erscheint es mir möglich, das alles mit Komascript-Bordmitteln umzusetzen. Ich weiß aber nicht, wie und dachte, da verübst Du doch mal einen Anschlag auf Markus!

Minimaldokument:

\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
%
\begin{document}
%
\section{Allgemeines}
\subsection{Geltungsbereich}
\abs So gehts los
%
\abs\stz So dann weiter. \stz Und noch ein Satz.
%
\end{document}

Sections bilden die Abschnitte, die aber die Paragraphenzählung nicht zurücksetzen:

\@removefromreset{subsection}{section}% mit dem Paket remreset

Subsection soll mit einem Paragraphenzeichen beginnen. \abs soll bei zwei oder mehr Absätzen in einem Paragraphen (der durch subsection begonnen wird) dazu führen, dass jeder Absatz mit einer Nummer -- z.B. (1) -- beginnt. Wenn nur ein Absatz den gesamten Paragraphen bildet, soll aber die Nummerierung entfallen. Mit dem Beginn der nächsten Subsection (also des nächsten Paragraphen) wird die Zählung zurückgesetzt.

\stz soll jeden Satz eines Absatzes mit einer kleinen, hochgestellten Zahl nummerieren, sofern der Absatz mehr als einen (durch \stz begonnenen) Satz hat. Zähler beginnt in jedem neuen Absatz wieder mit 1.

Hier im Forum gab es kürzlich eine schöne Hilfe, wie man Überschriften mit Paragraphenzeichen ausstattet. Die Überschriften bekommt man also hin, indem man subsection so umwandelt:

\renewcommand*{\thesubsection}{\S\,\arabic{subsection}}

Nur: damit funktioniert meine Absatzzählung nicht mehr, denn darin wird 'halt subsection verwendet:

\newcommand\ABSATZ{%
	\ifnum\theABSATZ>0%
	\immediate\write\pgfnr{%
		\string\@namedef{hasmanyabsatz\thesubsection}{x}%
	}%
	\fi% 
	\refstepcounter{ABSATZ}%
	\@ifundefined{hasmanyabsatz\thesubsection}{% nur ein Absatz: keine Nummer 
	}{%
		(\arabic{ABSATZ})~% 
	}% 
}%

Außerdem führt \refstepcounter{ABSATZ} zu hyperref-Warnungen, weil natürlich Absatz 1 in so einem Vertrag ziemlich häufig auftaucht und für hyperref immer gleich aussieht.

Wie gesagt, ich möchte das Paket auf möglichst wenige andere Pakete aufsetzen. Wahrscheinlich sind ifthen und remreset unvermeidlich, aber die Überschriftenformatierung möchte ich eigentlich mit Komascript oder \@startsection zusammenbauen.

Ich habe den Verdacht, dass ich die Sache viel zu kompliziert angefangen (=zusammengeklaut) habe. Eigentlich gibt es ja schon die Gliederungsebene \paragraph{}. Vielleicht kann man die ja in eine Bedingung einpacken: Wenn in einer Subsection mehr als ein \abs vorkommt, wird \paragraph ausgegeben mit einem Titel der aus "(\theABSATZ)" besteht.

Wenn Du, Markus, gelegentlich einmal Zeit hast, wäre mir das eine große Hilfe.

Vielen Dank und Gruß,
Alexander

Bild von Markus Kohm

Ich habe jetzt erst einmal die Formatierung des Beitrags etwas überarbeitet (ein paar pre- und ein paar code-Tags eingebaut). Dabei auch mal ein Hinweis: Drupal ist dumm. Wenn ein in der Übersicht gekürzter Beitrag in einem mehrzeiligen code-Segment endet, dann vergisst Drupal den Ende-Tag einzufügen, so dass auch nachfolgende Beiträge in der Übersicht als Code angezeigt werden. Bei pre passiert das nicht. Deshalb sollte man für mehrzeilige Code-Segmente immer pre verwenden. Alternativ kann man mit <!--break--> eine Stelle vor dem Code als Ende der Kurzform definieren.

Zurück zur Frage. Zunächst das Problem, dass der Vergleich mit \theABSATZ nicht mehr funktioniert. Nun, das ist eigentlich gar kein Problem, weil man eigentlich gar nicht mit der Ausgabe des Zählers, sondern mit seinem Wert vergleichen will:

        \ifnum\value{ABSATZ}>0

Dass ich an der Stelle das Prozentzeichen entfernt habe, ist übrigens auch Absicht. TeX erkennt das Ende der Zahl erst an diesem Leerzeichen und entfernt das Leerzeichen automatisch. Als kleiner Verständnistest:

\documentclass{article}
\usepackage[ngerman]{babel}
\begin{document}
Einmal Quatsch mit So"se bitte:

Ist 1 oder 0 gr"o"ser?

\ifnum 1>0%
 1 ist gr"o"ser
\else
 0 ist gr"o"ser
\fi
\end{document}

Sobald das Prozentzeichen entfernt wird, stimmt das Ergebnis. In der FAQ gibt es einen Beitrag zu Leerzeichen, der das nur kurz anschneidet.

Ansonsten: Sollen die Absätze immer echte Absätze sein? Muss dabei auch noch der Absatzeinzug funktionieren? Oder gibt es auch etwas wie:

$1 (1) Dies ist der erste Absatz. (2) Dies der zweite.

Gibt es auch nicht nummerierte Absätze innerhalb von Absätzen? Darf die Lösung auch auf Babel bestehen? Gibt es neben den nummerierten Sätzen auch nicht nummerierte Sätze?

Ggf. wäre es nämlich auch möglich, dafür zu sorgen, dass innerhalb einer bestimmten Umgebung ein ganz normaler Absatz automatisch eine Nummer bekommt. Ebenso wäre es möglich, dass ein Punkt automatisch eine Nummer einfügt. Wahrscheinlich sollte man dafür aber ein Ersatzzeichen verwenden, damit man trotzdem noch schreiben kann: Der Vertrag erlangt am 11.\,11.~2011 seine Gültigkeit.

Daher kommt auch meine Frage nach Babel. Dort kann man nämlich sehr schön eigene Shortcuts definieren.

... jedenfalls für einen Profi. Schon die Vereinfachung der Bedingung mit ifnum hört sich gut an. Ich dachte übrigens immer, dass ein Prozentzeichen am Ende der Zeile unter gar keinen Umständen schaden könne. Mmh.

Die Absätze sind immer echte Absätze. In Verträgen gibt es keinen Erstzeileneinzug, sondern nur Absatzabstand.

Manchmal braucht man tatsächlich einen nicht nummerierten Unterabsatz unter einem nummerierten Absatz. Im Lauf von Verhandlungen muss man manchmal einen Absatz irgendwo dazwischen schreiben und möchte nicht alle durch eine geänderte Nummerierung verwirren.

Dagegen gibt es bei der Satznummerierung nur zwei Möglichkeiten: Entweder alle Sätze eines Absatzes einschließlich aller Unterabsätze sind durchnummeriert, oder die Sätze eines Absatzes sind nicht nummeriert. Das hängt davon ab, wie lange und kompliziert ein Absatz ist. Eine lange Abfindungsklausel über eine halbe Seite kann man besser diskutieren, wenn man am Telefon Satz für Satz durchgeht und jeder weiß, wovon gerade gesprochen wird.

Zur Frage nach Babel: Ja, man kann auf Babel abstellen, nicht aber auf ngerman, weil ich teilweise englisch verwende und teilweise, gemeinsam mit Übersetzern, auch andere Sprachen. Bei Erstellung der Endversion (z.B. links deutsch, rechts niederländisch) mit dem parallel-Paket mußte ich bisher aber immer alle Überschriften per Hand nummerieren, weil ja jede Nummer zweimal vorkommt. Selbst Aufzählungen sind dann nur mit gesonderten Definitionen möglich. Wie Du richtig gesehen hast, taugt der Punkt nicht als Zeichen für den nächsten Satz.

Wenn das mit Babel ausartet, war die bisherige Schreibweise mit \abs und \stz auch brauchbar.

Innerhalb der Absätze gibt es dann Aufzählungen aller Art, paralist ist hier sehr praktisch. Häufig sind auch Tabellen, in denen beispielsweise die Verteilung von Anteilen, Gewinnen oder sonstwas festgelegt wird.

Ich werde mir auf Deinen Hinweis hin die HTML tags genauer anschauen.

Herzlichen Dank erst 'mal,

Gruß,
Alexander

Bild von Markus Kohm

Ok, Du hast das jetzt eigentlich schon sehr schön spezifiziert. Dabei hat sich nach meinem Eindruck aber das Problem mit hyperref nochmal verstärkt. Das Problem mit hyperref ist, dass hyperref die Anker aus den Nummern bildet. Dabei verwendet hyperref für den Zähler foo als Anker \theHfoo. Ist \theHfoo nicht definiert, dann wird als Anker \thefoo verwendet. Da nun \theABSATZ bei allen Absätzen mit gleicher Nummer gleich ist und kein \theHABSATZ existiert, gibt es doppelte Anker. Nun könnte man natürlich einfach

\newcommand*{\theHABSATZ}{\theHsection.\theABSATZ}

definieren und das Problem wäre erst einmal gelöst.

Wenn Du aber mehrsprachige Verträge hast, dann hast Du eventuell sogar die Paragraphennummern gleich. In jedem Fall aber hättest Du immernoch jeden \theHABSATZ identisch in jeder Sprache. Ich weiß noch nicht, ob man dieses Problem mit dem parallel-Paket einfach automatisch lösen kann.

Shortcuts für einen neuen Satz kann man mit babel sprachunabhängig definieren. Man könnte beispielsweise »§« als neues Shortcutzeichen definieren. Dann könnte im weiteren beispielsweise »§ « das Paragraphzeichen selbst sein, währende »§p« ein neuer Absatz und »§s« ein neuer Satz wäre. Wobei es auch möglich ist, das einfach nur dann zu machen, wenn babel geladen wurde.

Also, ich habe ein paar Ideen. Mal sehen, wann ich dazu komme, da etwas zu basteln.

Noch eine Frage: Wenn ich mich nicht irre, dann nummerieren Juristen Paragraphen nie um, sondern schieben eher einen Paragraph 1a nach 1 ein. Das wäre ggf. bei der Anweisung für Paragraphen zu berücksichten.

Achja: Werden nur Paragraphen der Form

§1 Titel
(1) Absatz.
(2) Absatz.

oder auch welche der Form

§1 (1) Absatz.
(2) Absatz.

oder in nochmal anderer Form benötigt?

Und ist folgende Zusammenfassung korrekt?

Ein Paragraph hat eine arabische Nummer. Diese ist nicht von den Abschnittsnummern abhängig. Sprünge in der Nummerierung sind möglich.

Es gibt ggf. Unterparagraphen, die wie Paragraphen formatiert werden aber zusätzlich eine alphabethische Nummer erhalten (z. B. 1a). Es gibt keine Unterunterparagraphen. Sprünge in der Nummerierung sind möglich.

Hat ein Paragraph nur einen Absatz, so wird der Absatz nicht nummeriert. Sonst mit einer arabischen Nummer in Klammer, wobei die Nummer immer fortlaufend ist. Es gibt keine Unternummern zu Absätzen.

Hat ein Absatz nur einen Satz, so wird der Satz nicht nummeriert. Sonst wird ihm eine hochgestellte arabische Nummer vorangestellt. Die Nummern sind fortlaufend. Es gibt keine Unternummern.

Ich bin mit mehrsprachigen Verträgen und parallel bisher auch zurecht gekommen. Mühsam ist sowas ohnehin. Ich wäre schon froh, ich hätte eine grundsätzliche Lösung für deutsche oder (!) englische Texte ohne titlesec. Vermutlich muss man sich mit 20 % der Features 80 % der Mühe machen. Das hyperref-Problem bei mehrsprachigen Texten hat für mich eine niedrige Priorität.

Nummerierung: Du hast recht. Teilweise gibts § 1a) und 1b) als eigene Paragraphen. Aber das ist bei Verträgen seltener als bei Gesetzen. Auf jeden Fall wäre das ein nützliches Feature, unverzichtbar ist es nicht.

Jeder Paragraph hat eine Überschrift, ob eingerückt in der Form

§ 1 Überschrift (1) Text des ersten Absatzes.
(2) Text des zweiten Absatzes

oder eben in der üblichen Form mit einer nicht allzuweit abgesetzten Überschrift. Letzteres ist weitaus üblicher.

Ich habe Deine Zusammenfassung leicht geändert:

  • Ein Paragraph hat eine arabische Nummer. Diese ist nicht von den Abschnittsnummern abhängig. Sprünge in der Nummerierung sind möglich, aber eher selten in der Praxis.
  • Es gibt ggf. Unterparagraphen, die wie Paragraphen formatiert werden aber zusätzlich eine alphabethische Nummer erhalten (z. B. 1a). Es gibt keine Unterunterparagraphen. Sprünge in der Nummerierung sind möglich, aber extrem selten.
  • Hat ein Paragraph nur einen Absatz, so wird der Absatz nicht nummeriert. Sonst mit einer arabischen Nummer in Klammer, wobei die Nummer immer fortlaufend ist. Es gibt keine Unternummern zu Absätzen.
  • Hat ein Absatz nur einen Satz, so wird der Satz nicht nummeriert. Sonst wird ihm eine hochgestellte arabische Nummer vorangestellt. Die Nummern sind fortlaufend. Es gibt keine Unternummern. Die Satznummerierung sollte absatzweise an- und abschaltbar sein.
  • Abschnitte und Paragraphen unterstützen \tableofcontents.

"Also, ich habe ein paar Ideen. Mal sehen, wann ich dazu komme, da etwas zu basteln."

Es würde mich sehr freuen. Die "zusätzlichen" Features unter Ausnahme der fremdsprachigen Optionen würden das Paket tauglich machen für den Satz von Gesetzen, in welcher Form auch immer. Ich muss Dich aber warnen: Es werden dann noch mehr Juristen kommen und Fragen stellen. Andererseits: Jürgen Fenn hat ja bald ein Drittel der jüngsten Komödie bestritten. Und ich arbeite fleißig in einem Forum mit, in dem ich die absoluten Anfängerfragen beantworte (alles andere dann aber doch nicht). Es kommt ein kleiner Input von den Juristen zurück.

Gruß,
Alexander

Bild von Markus Kohm

Für die Satz-Nummern muss man jeweils eine Anweisung setzen, wobei ich im Beispiel auch gezeigt habe, wie man das mit babel vereinfachen kann. Ich könnte auch noch den Punkt aktiv machen und umdefinieren, damit das (abschaltbar) automatisch passiert. Aber vorher hätte ich gerne einen Tester, dem ich den ganzen Schlonz mal auf's Auge drücken kann. Doku gibt es natürlich bisher nur in Form von Implementierungsdoku im Paket und in Form eines Beispiels.

Achja: hyperref-Unterstützung ist noch unvollständig und komplett ungetestet. parallel wird auch noch nicht beachtet. Im Prinzip ist es erst eine Designstudie.

her damit!

Ich habe eine E-Mail eben mit meiner Adresse gesendet. Vielen Dank für die Mühe,

Gruß,
Alexander

Bild von Markus Kohm

Am Ende funktioniert nichts, so wie Du es haben willst.

BTW: Da sind ein paar ganz hinterlistige \everpar-Tricks drin, um die Absatznummerierung automatisch hin zu bekommen. Die Tricks haben sicher ihre Grenzen, aber ich fand es schon sehr interessant, in der LaTeX-Doku nachzulesen, was LaTeX alles mit \everypar fummelt, und auf dem Weg herauszufinden, was man selbst fummeln muss, wenn eigene \everypar-Anweisungen nicht mit LaTeX kollidieren und im Extremfall LaTeX überleben sollen. Den einen oder anderen Hack werde ich sicher noch überdenken – insbesondere wenn noch anderer Juristenkram(*) in das Paket soll.

* Kram sind die Dinge, die manche Menschen sehr schnell sehr lieb gewinnen, während andere im besten Fall nichts damit anfangen und im schlimmsten Fall nur abfällig darüber reden können.

Hallo,

an solch einem Vertragspaket wäre ich auch sehr interessiert. Seid Ihr da zu einem Ergebnis gekommen und kann man das irgendwo finden oder ist das noch nicht fertig oder eingeschlafen?
Danke für eine kurze Nachricht.

Christian

Bild von Markus Kohm

Wenn Du also ein aktuelles KOMA-Script installiert hast, dann hast Du auch scrjura installiert. Die Anleitung dazu sollte dann als scrjura.pdf verfügbar sein. Aktuell gibt es diverse Änderungen (Erweiterungen bei Querverweisen), die in der aktuellen KOMA-Script-Release noch nicht enthalten sind, aber in der nächsten enthalten sein werden.

Es ist grundsätzlich zu beachten, dass derzeit keine Garantie auf Kompatibilität von einer Version zur nächsten gegeben ist. Deshalb empfehle ich, die jeweils verwendete Version von scrjura.sty derzeit zusammen mit den Quellen des Dokuments zu speichern. Bei Weitergabe sind die Lizenzbedingungen zu beachten und deshalb auch scrjura.dtx und scrlogo.dtx mit weiterzugeben und deshalb am besten auch diese beiden Dateien mit den Quellen des Dokuments zu speichern. Alternativ findet man alte Versionen von scrjura natürlich auch in den Archiven der entsprechenden alten KOMA-Script-Versionen auf BerliOS. Es gibt aber keine Garantie, dass diese alten Versionen dort ewig angeboten werden!

Markus hat ja recht, aber ich benutze das Paket nun seit über einem Jahr und es funktioniert sehr gut.

Wenn ich nur dazu käme, die neue Anleitung zu schreiben.

Falls Du Fragen / Anregungen hast, wäre das vielleicht ein guter Zeitpunkt.

Gruß,
Alexander

Comments for "Paket für Verträge mit Komascript-Bordmitteln" abonnieren