-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontract.dtx
More file actions
3500 lines (3485 loc) · 133 KB
/
contract.dtx
File metadata and controls
3500 lines (3485 loc) · 133 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% \iffalse meta-comment
% ======================================================================
% contract.dtx
% Copyright (c) 2007–2026 Markus Kohm
%
% This file is part of the LaTeX package `contract'.
%
% 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 "maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of the files listed in MANIFEST.md.
% ======================================================================
%<identify>%%% --- docstrip run: identify ---
%<doc>%%% --- docstrip run: doc ---
%<init>%%% --- docstrip run: init ---
%<options>%%% --- docstrip run: options ---
%<postoptions>%%% --- docstrip run: postoptions ---
%<body>%%% --- docstrip run: body ---
%<final>%%% --- docstrip run: final ---
%<*dtx>
\expandafter\ifx\csname ProvidesFile\endcsname\relax
\def\ProvidesFile#1[#2]{}
\fi
\ProvidesFile{contract.dtx}[%
%</dtx>
%<package&identify>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package&identify>\providecommand*\DeclareRelease[3]{}
%<package&identify>\providecommand*\DeclareCurrentRelease[2]{}
%<package&identify>\DeclareCurrentRelease{v0.9}{2024-02-02}
%<package&identify>\ProvidesPackage{contract}[%
%<*dtx|(package&identify)>
2026-04-23 v0.92
%<*dtx>
source of
%</dtx>
package for jurists
]
%</dtx|(package&identify)>
%<*dtx>
\ifx\documentclass\undefined
%</dtx>
%<*ins>
\input docstrip.tex
\generate{\usepreamble\defaultpreamble
% \file{contract.ins}{%
% \from{contract.dtx}{ins}%
% }%
\file{contract.sty}{%
\from{contract.dtx}{package,identify}%
\from{contract.dtx}{package,init}%
\from{contract.dtx}{package,options}%
\from{contract.dtx}{package,postoptions}%
\from{contract.dtx}{package,body}%
\from{contract.dtx}{package,final}%
}%
}%
%</ins>
%<*dtx>
\else
\let\endbatchfile\relax
\fi
%</dtx>
%<*ins>
\endbatchfile
%</ins>
%<*dtx>
\documentclass[USenglish]{koma-script-source-doc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman,main=USenglish]{babel}
\usepackage{hvlogos}
\usepackage{tabularx}
\usepackage{graphicx}
% Note: The scrguide-… packages may currently not be available in any TeX
% distribution.
\usepackage[colorize]{scrguide-listings}
\usepackage{scrguide-doclink}
\usepackage{scrguide-index}
\usepackage{booktabs}
\usepackage{csquotes}
\usepackage[style=alphabetic,autolang=other]{biblatex}
\begin{filecontents}{\jobname.bib}
@online{pkg:babel,
author={Bezos López, Javier and Braams, Johannes L.},
version={24.1},
date={2024-01-07},
title={\pkg*{babel} --- Multilingual support for \LaTeX, Lua\LaTeX,
\XeLaTeX{} and Plain \TeX},
url={https://ctan.org/pkg/babel},
urldate={2024-01-08},
note={This package manages culturally-determined typographical (and other)
rules for a wide range of languages. A document may select a single
language to be supported, or it may select several, in which case the
document may switch from one language to another in a variety of ways.
Babel uses contributed configuration files that provide the detail of
what has to be done for each language, as well as \file{.ini} files
for about 300 languages from around the World, including many written
in non-Latin and RTL scripts. Many of them work with pdf\LaTeX, as
well as with \XeLaTeX{} and Lua\LaTeX, out of the box. A few even
work with plain formats.},
}
@online{pkg:koma-script,
author={Markus Kohm},
version={3.41},
date={2023-07-07},
title={{\KOMAScript} --- A bundle of versatile classes and packages},
url={https://ctan.org/pkg/koma-script},
urldate={2023-07-14},
note={The \KOMAScript{} bundle provides replacements for the \cls*{article},
\cls*{report}, and \cls*{book} classes with emphasis on typography and
versatility. There is also a letter class.},
}
@manual{pkg:koma-script:manual:de,
langid={ngerman},
author={Markus Kohm},
date={2023-06-16},
title={{\KOMAScript}},
subtitle={Die Anleitung},
url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-de.pdf}
,
urldate={2023-07-04},
}
@manual{pkg:koma-script:manual:en,
author={Markus Kohm},
date={2023-06-16},
title={{\KOMAScript}},
subtitle={The Guide},
url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-en.pdf},
urldate={2023-07-14},
}
@book{bk:koma-script,
langid ={ngerman},
author ={Kohm, Markus},
title ={{\KOMAScript}},
subtitle ={Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
year =2020,
edition =7,
publisher={Lehmanns Media},
address ={Berlin},
series ={Edition DANTE},
isbn ={978-3-96543-097-6},
note ={Print-Ausgabe},
}
@book{ebk:koma-script,
langid ={ngerman},
author ={Kohm, Markus},
title ={{\KOMAScript}},
subtitle ={Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
year =2020,
edition =7,
publisher={Lehmanns Media},
address ={Berlin},
series ={Edition DANTE},
isbn ={978-3-96543-103-4},
note ={eBook-Ausgabe},
}
\@online{pkg:parskip,
author ={Frank Mittelbach and Robin Fairbairns and H. Partl},
version ={2.0h},
date ={2021-03-14},
title ={\pkg*{parskip} --- Layout with zero \len{parindent}, non-zero \len{parskip}},
url ={https://www.ctan.org/pkg/parskip},
urldate ={2024-01-19},
note ={Simply changing \len{parskip} and \len{parindent} leaves a
layout that is untidy; this package (though it is no
substitute for a properly-designed class) helps alleviate this
untidiness.},
}
@manual{pkg:parskip:manual,
author ={Frank Mittelbach},
title ={The \pkg*{parskip} package},
date ={2021-03-14},
abstract ={The \pkg*{parskip} package helps in implementing paragraph
layouts where the paragraphs are separated by a vertical space
instead of (or in addition to) indenting them.
The package can be used with any document class at any size.
By default it produces the following paragraph layout: Zero
\len{parindent} and non-zero \len{parskip}. The stretchable
glue in \len{parskip} helps \LaTeX{} in finding the best place
for page breaks},
url ={http://mirrors.ctan.org/macros/latex/contrib/parskip/parskip.pdf},
urldate ={2024-01-19},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\setcounter{StandardModuleDepth}{2}
\setcounter{IndexColumns}{2}
\setcounter{GlossaryColumns}{2}
\providecommand*\targ[1]{\texttt{\char`\{#1\char`\}}}
\providecommand*\toarg[1]{\texttt{[#1]}}
\newenvironment{syntax}{%
\list{}{%
\listparindent -\leftmargin
\rightmargin \leftmargin
\leftmargin 2\leftmargin
\itemindent \listparindent
\parsep 0pt plus 1pt
}%
\def\obeyedlinedline{\item\relax}%
\obeylines
\obeyedlinedline
\MacroFont
}{%
\endlist
}
\makeatletter
\newenvironment{desctabular}{%
\renewcommand*{\arraystretch}{1.25}%
\newcommand{\entry}[2]{%
\l@addto@macro\desctab@content{%
\relax
\renewcommand*\arraystretch{1}\begin{tabular}[t]{@{}l@{}}##1\end{tabular}
& ##2\tabularnewline
}%
}
\newcommand\desctab@content{\begin{tabularx}{\linewidth}{@{}lX@{}}\toprule}%
}{%
\desctab@content
\bottomrule
\end{tabularx}
}
\makeatother
\newenvironment{desclist}{%
\newcommand*{\desccaption}[2]{%
\par
\vspace{5\baselineskip}\pagebreak[2]\vspace{-5\baselineskip}\nopagebreak
\captionof{table}{##1}\nopagebreak
\begin{desctabular}
}%
}{%
\end{desctabular}
}
\newenvironment{Example}{%
\lstset{belowskip=0pt plus 1pt minus .5pt}%
\labeling{{\usekomafont{disposition}\Examplename:}}
\item[{\usekomafont{disposition}\Examplename:}]%
}{%
\endlabeling
}
\newcaptionname{USenglish}{\Examplename}{Example}
\DeclareTOCStyleEntry[dynnumwidth,dynindent]{section}{section}
\DeclareTOCStyleEntries[dynnumwidth,dynindent]{subsection}
{subsection,subsubsection}
\DeclareLinkFallback{Counter}{tocdepth}
{https://en.wikibooks.org/wiki/LaTeX/Tables_of_Contents_and_Lists_of_Figures}
\DeclareLinkFallback{Macro}{arabic}
{https://en.wikibooks.org/wiki/LaTeX/Counters#Counter_style}
\DeclareLinkFallback{Macro}{begin}
{https://en.wikibooks.org/wiki/LaTeX/Basics#LaTeX_environments}
\DeclareLinkFallback{Macro}{bfseries}
{https://en.wikibooks.org/wiki/LaTeX/Fonts#Font_styles}
\DeclareLinkFallback{Macro}{end}
{https://en.wikibooks.org/wiki/LaTeX/Basics#LaTeX_environments}
\DeclareLinkFallback{Macro}{refstepcounter}
{https://en.wikibooks.org/wiki/LaTeX/Counters#Counter_manipulation}
\DeclareLinkFallback{Macro}{sffamily}
{https://en.wikibooks.org/wiki/LaTeX/Fonts#Font_styles}
\DeclareLinkFallback{Macro}{newcommand}
{https://mirrors.ctan.org/macros/latex/base/usrguide-historic.pdf#subsection.3.4}
\DeclareLinkFallback{Macro}{renewcommand}
{https://mirrors.ctan.org/macros/latex/base/usrguide-historic.pdf#subsection.3.4}
\DeclareLinkFallback{Macro}{defineshorthand}
{http://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf#subsection.1.10}
\DeclareLinkFallback{Macro}{useshorthands}
{http://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf#subsection.1.10}
\DeclareLinkFallback{Macro}{setkeys}
{https://mirrors.ctan.org/macros/latex/required/graphics/keyval.pdf#section.3}
\DeclareLinkFallback{Macro}{documentclass}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#12}
\DeclareLinkFallback{Macro}{dots}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#a7}
\DeclareLinkFallback{Macro}{label}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
\DeclareLinkFallback{Macro}{large}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#b3}
\DeclareLinkFallback{Macro}{pageref}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
\DeclareLinkFallback{Macro}{paragraph}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
\DeclareLinkFallback{Macro}{ref}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
\DeclareLinkFallback{Macro}{section}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
\DeclareLinkFallback{Macro}{subparagraph}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
\DeclareLinkFallback{Macro}{usepackage}
{http://mirrors.ctan.org/info/lshort/english/lshort.pdf#13}
\DeclareLinkFallback{Macro}{addsec}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.addsec}
\DeclareLinkFallback{Macro}{markboth}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.markboth}
\DeclareLinkFallback{Macro}{markright}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.markright}
\DeclareLinkFallback{Macro}{newkomafont}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls-experts.cmd.newkomafont}
\DeclareLinkFallback{Macro}{providecaptionname}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrbase.cmd.providecaptionname}
\DeclareLinkFallback{Macro}{KOMAoption}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.KOMAoption}
\DeclareLinkFallback{Macro}{KOMAoptions}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.KOMAoptions}
\DeclareLinkFallback{Macro}{addtokomafont}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.addtokomafont}
\DeclareLinkFallback{Macro}{setkomafont}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.setkomafont}
\DeclareLinkFallback{Macro}{usekomafont}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.usekomafont}
\DeclareLinkFallback{Macro}{usekomafont}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls-experts.cmd.newkomafont}
\DeclareLinkFallback{Macro}{DeclareTOCStyleEntry}
{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntry}
\begin{document}
\nocite{pkg:koma-script}
\DocInput{contract.dtx}
\end{document}
%</dtx>
% \fi
%
% \changes{v0.0.1}{2023-10-10}{new \KOMAScript{} spin-off}
% \changes{v0.9}{2024-02-02}{first release as standalone package}
%
% \GetFileInfo{contract.dtx}
% \title{%^^A
% \LaTeX{} Package \pkg*{contract}%^^A
% \thanks{%^^A
% The repository of this package can be found at
% \url{https://codeberg.org/komascript/latex-contract.git}
% where you also should report issues.%^^A
% }%^^A
% }
% \date{Version \fileversion{} of \filedate}
% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
% \maketitle
% \begin{abstract}
% The \pkg*{contract} package is intended for cautelar jurisprudence. It is
% intended to provide flexible help for lawyers and notaries in drafting
% contracts, statutes and legal commentaries. It has been developed in
% cooperation with Dr~Alexander Willand, and is still in the process of
% development.
%
% Package \pkg*{contract} is a
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} spin-off. It has
% been released from 2011 till 2023 as \pkg*{scrjura}. With
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} 3.42
% \pkg*{scrjura} is removed from
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} and released as
% new package \pkg*{contract}.
% \end{abstract}
%
% \tableofcontents
% \listoftables
% \listoffigures
%
% \addpart{User Manual}
%
% If you want to write a contract\Index{contract}, the articles of association
% for a company or an association, a law, or a legal commentary, the package
% \pkg*{contract} will provide typographical support. Although \pkg*{contract}
% is intended to provide general help for legal documents, the contract is the
% central element of the package. Particular attention is paid to
% clauses\Index{clause}, titles, and numbered provisions\,---\,if there are
% several of them in a clause\,---, numbered sentences, entries in the table
% of contents, and cross references according to German standards.
%
% The package has been developed in cooperation with Dr Alexander Willand of
% Karls\-ruhe. Many of its features go back to constructive inquiries from
% Prof Heiner Richter of the Hochschule Stralsund University of Applied
% Sciences.
%
% Some of you may search for the German user manual formally available in
% \cite{pkg:koma-script:manual:de}. The author's acute overload has resulted
% in this no longer being freely available. However, the corresponding chapter
% in \cite{bk:koma-script} and \cite{ebk:koma-script} is still accessible and
% applicable with appropriate adjustments to the package name.
%
%
% \section{Package Loading and Option Setting}
%
% You can load the package as common using:
% \begin{syntax}
% \cs{usepackage}\oarg{options}|{contract}|\quad.
% \end{syntax}
% In case of package \pkg*{contract} the \meta{options} are
% \meta{key}|=|\meta{value} options.
% \begin{description}
% \item[Note:] In case of using package \pkg*{contract} with package
% \pkg{hyperref} you should load \pkg{hyperref} always after
% \pkg*{contract}.
% \end{description}
%
% \DescribeCommand\contractSetup
% To change options after loading the package, you should use:
% \begin{syntax}
% \cs{contractSetup}\marg{options}
% \end{syntax}
% with \meta{options} is a comma separated list of \meta{key}=\meta{value}
% options as explained before.
% \begin{description}
% \item[Note:] Currently the options are still implemented using the internal
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package
% \href{https://www.ctan.org/pkg/koma-script}{\pkg*{scrkbase}}\footnote{You
% need at least \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
% v3.39 to have \pkg*{scrkbase} and all other \KOMAScript{} packages
% required by \pkg*{scrkbase} and \pkg*{contract} installed. If you use
% the recommended installation with the package manager of your
% \TeX{} distribution this version requirement should be fulfilled by
% installing the \KOMAScript{} package or by updating an already
% installed \KOMAScript.}. Therefore
% you could also setup \meta{options} using the
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} commands
% \cs{KOMAoptions} or \cs{KOMAoption}, which are described in
% \cite{pkg:koma-script:manual:en}. Moreover, because of the implementation,
% currently \cs{contractSetup} could also be used to setup other
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} options not
% related to package \pkg*{contract}. However, you should avoid this,
% because it will fail, when the implementation will be changed.
% \end{description}
%
% \section{Changing the Fonts of Elements}
% \label{sec:textmarkup}
%
% Currently package \pkg*{contract} still uses the font selection features of
% the internal \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
% package \pkg{scrkbase}. So the commands \cs{setkomafont},
% \cs{addtokomafont}, and \cs{usekomafont}, which are described in
% \cite{pkg:koma-script:manual:en}, can be used to change the fonts of the
% following elements:
% \begin{description}\setkomafont{descriptionlabel}{}
% \item[{\fnt{Clause}:}] \hfill\\
% Alias for \fnt{\meta{environment}.Clause} within any contract environment,
% e.\,g., \fnt{contract.Clause} within environment \env{contract}. If no
% corresponding element is defined, \fnt{contract.Clause} is used.
% \item[{\fnt{contract.Clause}:}]
% \hfill\mbox{(Default: \cs{sffamily}\cs{bfseries}\cs{large})}\\
% The heading of a \cs{Clause} within the environment \env{contract}.
% \item[{\fnt{\meta{environment}.Clause}:}]
% \hfill\mbox{(Default: \emph{none})}\\
% The heading of a \cs{Clause} within environment \meta{environment}, which
% has been defined using \cs{DeclareNewJuraEnvironment}, if the font has
% been setup using property |ClauseFont| or the element has been defined
% explicitly.
% \item[{\fnt{parnumber}:}]
% \hfill\mbox{(Default: \emph{empty})}\\
% The paragraph number within a contract environment.
% \item[{\fnt{sentencenumber}:}]
% \hfill\mbox{(Default: \emph{empty})}\\
% The sentence number printed by \cs{Sentence}.
% \end{description}
%
% \begin{description}
% \item[Note:] There are plans to no longer use package \pkg*{scrkbase}, but
% maybe package \pkg{scrextend} instead, if \pkg*{scrjura} is used with a
% non-\KOMAScript{} class. So the commands \cs{setkomafont},
% \cs{addtokomafont} and \cs{usekomafont} would still be available in
% future.
% \end{description}
%
% \section{Clauses in the Table of Contents}
% \label{sec:toc}
%
% The headings of clauses can also be added automatically to the table of
% contents, if desired. For this the package uses command
% \cs{DeclareTOCStyleEntry} of
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package
% \pkg{tocbasic} to define an entry level named |cpar|. Usage of package
% \pkg{tocbasic} also means, that you should not use another package to
% configure the Table of Contents, e.g., \pkg{tocloft}, \pkg{tocstyle} etc.
%
% \DescribeOption{juratotoc}
% \SpecialOptionIndex{juratotoc\quotechar=\meta{boolean}}
% \SpecialOptionIndex{juratotoc\quotechar=\meta{integer}}
% Clauses\Index{clause} are shown in the table of contents only if their
% level number is less than or equal to the
% \cnt{tocdepth} counter. By default, the level
% number is \len{maxdimen}, which is also used if the option is switched
% off using \opt[element=juratotoc]{juratotoc=false}. Because the
% \cnt{tocdepth} counter usually has a one-digit value,
% clause entries are therefore not normally displayed in the table of contents.
%
% If you switch on the option using the
% \opt[element=juratotoc]{juratotoc=true}, the level number 2 is used so that
% clauses are shown in the table of contents on the same level as
% subsections. For the default setting of \cnt{tocdepth}, clauses are then
% shown in all \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
% classes or standard classes.
%
% You can also use \opt[element=juratotoc]{juratotoc=\meta{integer}} to use
% \meta{integer} instead of \len{maxdimen} or 2 as level number.
%
% Internally usage of this option results in a call of
% \begin{syntax}
% \cs{DeclareTOCStyleEntry}\toarg{level=\meta{integer}}\targ{default}\targ{cpar}
% \end{syntax}
% respectively
% \begin{syntax}
% \cs{DeclareTOCStyleEntry}\toarg{level=2}\targ{default}\targ{cpar}
% \end{syntax}
% respectively
% \begin{syntax}
% \cs{DeclareTOCStyleEntry}\toarg{level=\cs{maxdimen}}\targ{default}\targ{cpar}\quad.
% \end{syntax}
%
% \DescribeOption[noindex]{juratocindent}
% \SpecialOptionIndex{juratocindent\quotechar=\meta{length}}
% \DescribeOption[noindex]{juratocnumberwidth}
% \SpecialOptionIndex{juratocnumberwidth\quotechar=\meta{length}}
% These options determine the indentation and spacing for clause entries in
% the table of contents. Any valid \meta{length} can be assigned. The defaults
% are the same as for subsection entries in \cls{scrartcl}.
%
% Internally, usage of these options results in calls to:
% \begin{syntax}
% \cs{DeclareTOCStyleEntry}\toarg{indent=\meta{length}}\targ{default}\targ{cpar}
% \end{syntax}
% respective
% \begin{syntax}
% \cs{DeclareTOCStyleEntry}\toarg{numwidth=\meta{length}}\targ{default}\targ{cpar}\quad.
% \end{syntax}
%
% \section{Environment for Contracts}
% \label{sec:contract}
%
% The essential mechanisms of package \pkg*{contract} are available only
% inside contract environments, either the predefined \env{contract} or any
% other environment defined with command \cs{DeclareNewJuraEnvironment}.
%
% \DescribeEnv{contract}^^A
% Currently, this is the one and only predefined environment for
% \pkg*{contract}. Using it activates automatic numbering of paragraphs and
% the \cs{Clause} and \cs{SubClause} commands, which will be documented below,
% are given concrete form.
%
% The \env{contract} environment must
% not be nested within itself. Within a document, however, you can use the
% environment several times. The clauses within these environments are treated
% as if they were within a single environment. As a result, ending the
% environment really only temporarily interrupts it, and the old environment is
% continued by the beginning of a new environment. However, you cannot end the
% environment within a clause. If you want instead print several contracts,
% you would need to define several contract environments using command
% \cs{DeclareNewJuraEnvironment}.
%
% \DescribeOption{contract}
% The whole document becomes a contract\Index{contract} if you use this option
% while loading the package with:
% \begin{syntax}
% \cs{usepackage}\toarg{\opt{contract}}\targ{contract}
% \end{syntax}
% or as a global option with \cs{documentclass}. The document then behaves
% exactly as if it would contain one \env{contract} environment.
%
%
% \subsection{Clauses}
% \label{sec:clause}
%
% Clauses^^A
% \Index[see{clause}]{section}^^A
% \Index[see{clause}]{paragraph}^^A
% \Index[indexmain]{clause}^^A
% \footnote{%^^A
% In English, a ``clause'' in a legal document is a section, paragraph, or
% phrase that relates to a particular point. Although it is common in English
% to also use the terms ``article'' or ``section'' for what we here call a
% ``clause'', we use the latter term throughout to avoid confusion with the
% \cls{article} class and the \cs{section} and
% \cs{paragraph} sectioning divisions of most document
% classes.} in a legal sense are defined in package \pkg*{contract} only
% within contracts\Index{contract}, that is inside the
% \env{contract} environment or other environments declared
% with \cs{DeclareNewJuraEnvironment}.
%
% \DescribeCommand{\Clause}
% \DescribeCommand{\SubClause}
% Each clause starts either with \cs{Clause}\oarg{property list} or
% \cs{SubClause}\oarg{property list}. The optional argument \meta{property
% list} is a comma separated list of \meta{key}|=|\meta{value}.
%
% These are the most important commands inside of a contract. Without using
% any additional \meta{key}, \cs{Clause} creates the heading of a clause,
% which consists of the sign ``\S'', followed by its number. In contrast,
% \cs{SubClause} creates the heading of a clause with the last number used by
% \cs{Clause} and adds a lower-case letter. \cs{SubClause} is mainly intended
% for cases where an act or a contract is amended and not only are clauses
% changed or deleted but new clauses are inserted between existing ones
% without completely changing the numbering.
%
% Both commands accept a comma-separated list of \meta{key}|=|\meta{value}
% properties and also some \meta{key}s without value. An overview
% of the available properties is shown in \autoref{tab:Clause.options}.
% The most important of them will be discussed in more detail.
%
% \begin{table}
% \captionabove{Available properties for the optional argument of
% \cs{Clause} and \cs{SubClause}}%^^A
% \label{tab:Clause.options}
% \begin{desctabular}
% \entry{|dummy|}{%^^A
% The heading will not be printed but is counted in the automatic
% numbering.%^^A
% }%^^A
% \entry{|head=|\meta{running head}}{%^^A
% If running heads are active, this \meta{running head} is used instead
% of the clause \meta{title}.%^^A
% }%^^A
% \entry{|nohead|}{%^^A
% The running head stays unchanged.%^^A
% }%^^A
% \entry{|notocentry|}{%^^A
% Does not make an entry into the table of contents.%^^A
% }%^^A
% \entry{|number=|\meta{number}}{%^^A
% Uses \meta{number} for the output of the clause number.%^^A
% }%^^A
% \entry{|preskip=|\meta{skip}}{%^^A
% Changes the vertical \meta{skip} before the clause heading.%^^A
% }%^^A
% \entry{|postskip=|\meta{skip}}{%^^A
% Changes the vertical \meta{skip} after the clause heading.%^^A
% }%^^A
% \entry{|title=|\meta{title}}{%^^A
% The clause \meta{title} will be printed in addition to the clause
% number. This is also used as the default for the \meta{running head}
% and the \meta{entry} in the table of contents.%^^A
% }%^^A
% \entry{|tocentry=|\meta{entry}}{%^^A
% Regardless of the clause \meta{title}, an \meta{entry} into the
% table of contents will be made, if such entries are activated (see
% option \opt{juratotoc}).%^^A
% }%^^A
% \end{desctabular}
% \end{table}
%
% By default, a skip of two lines is inserted before the heading and a skip of
% one line afterwards. You can change the size of these skips with the
% |preskip| and |postskip| properties. The new values apply not only
% to the current clause but from the current clause until the end of the
% current contract environment. You can also make the appropriate settings in
% advance with
% \begin{syntax}
% \cs{setkeys}\targ{\env{contract}}%^^A
% \targ{preskip=\meta{skip},postskip=\meta{skip}}
% \end{syntax}
% regardless of the specific clause and outside of a contract environment. You
% can also set these options inside the preamble after loading
% \pkg*{contract}, but you cannot set them while loading the package or by
% using \cs{contractSetup}.
%
% By default, clause headings use the font style
% \cs{sffamily}\cs{bfseries}\cs{large}. See \autoref{sec:textmarkup} for
% information about how to change the font for element \fnt{contract.Clause}.
%
% With the |title|, |head|, and |tocentry| property, you can title a clause in
% addition to the number. You should enclose the \meta{value} of each property
% inside curly brackets. Otherwise, for example, commas which are meant to be
% part of the \meta{value} will be confused with the delimiters between
% different properties of the \meta{property list}. Empty values for |head|
% and |tocentry| cause empty entries. If you want to avoid an entry, use the
% |nohead| resp. |notocentry| property.
%
% Instead of consecutive numbers, you can also set a clause number manually
% with the |number| property. However, this does not affect the numbers of
% the subsequent clauses. Empty numbers are not possible. Fragile commands
% inside |number| have to be protected with \cs{protect}. You should use
% only numbers and letters as a |number|.
%
% With the |dummy| property, you can suppress the output of the whole heading
% of a clause. The automatic numbering, however, will still count this
% clause. In this way, you can skip an automatically numbered clause with
%\begin{syntax}
% \cs{Clause}\toarg{dummy}
%\end{syntax}
% in case the clause corresponding clause has been deleted in a later version
% of a contract.
%
% Note that the |dummy| property only accepts the \meta{value}s |true| and
% |false|. All other \meta{value}s are usually ignored, but can lead to an
% error message in the worst case scenario.
%
% \DescribeCommand{\Clauseformat}
% As already mentioned, clauses and subclauses are normally numbered. The
% number is formatted with the help of the \cs{Clauseformat} command, which
% expects the \meta{number} as the only argument. The default is the
% following:
%\begin{syntax}
% \cs{newcommand*}\targ{\cs{Clauseformat}}\toarg{1}\targ{\cs{S}~\#1}
%\end{syntax}
% This produces the section mark, \cs{S} (\S), followed by a non-breaking
% space and the number. If you redefine this command, be sure it remains
% expandable.
%
% \DescribeOption{juratitlepagebreak}^^A
% \SpecialOptionIndex{juratitlepagebreak\quotechar=\meta{boolean}}^^A
% Usually, page breaks are prohibited within heading of all kinds. However,
% some lawyers require page breaks within clause headings. You can allow such
% a break by using option \opt{juratitlepagebreak} or
% \opt[element=juratitlepagebreak]{juratitlepagebreak=\meta{boolean}}. Boolean
% values of \texttt{true} or \texttt{false} can be used to toggle the option
% on or off. Using the option without a value is the same as using
% \texttt{true}. The option can be used as an optional argument of
% \cs{documentclass}, \cs{usepackage} when loading package \pkg*{contract}, or
% as an argument of \cs{contractSetup}.
%
% \DescribeOption[noindex]{clausemark}
% \SpecialOptionIndex{clausemark\quotechar=\meta{value}}
% Since clauses are a subordinate structure with independent numbering, they
% do not produce running heads by default. You can, however, create running
% heads with various settings using:
% \begin{syntax}
% \opt{clausemark}=\meta{value}
% \end{syntax}
% as an optional argument of \cs{documentclass}, \cs{usepackage} when loading
% package \pkg*{contract}, or as an argument of \cs{contractSetup}. You can
% find the available \meta{value}s and their meanings in
% \autoref{tab:clausemark}.
% \begin{table}
% \captionabove{Available values for the \opt{clausemark} option to
% activate running heads}%^^A
% \label{tab:clausemark}%^^A
% \begin{desctabular}
% \entry{\optvalue{both}}{%^^A
% Clauses generate left and right marks for running heads, if the
% document provides automatic running heads.%^^A
% \SpecialOptionIndex{clausemark\quotechar=both}%^^A
% }%^^A
% \entry{\optvalue{false}, \optvalue{off}, \optvalue{no}}{%^^A
% Clauses do not generate marks for running heads and therefore do not
% change running heads.%^^A
% \SpecialOptionIndex{clausemark\quotechar=false}%^^A
% }%^^A
% \entry{\optvalue{forceboth}}{%^^A
% Clauses use \cs{markboth} to generate left and right
% marks for running heads even if the document does not provide
% automatic running heads for the current page style.%^^A
% \SpecialOptionIndex{clausemark\quotechar=forceboth}%^^A
% }%^^A
% \entry{\optvalue{forceright}}{%^^A
% Clauses use \cs{markright} to generate right marks for
% running heads even if the document does not provide automatic running
% heads for the current page style.%^^A
% \SpecialOptionIndex{clausemark\quotechar=forceright}%^^A
% }%^^A
% \entry{\optvalue{right}}{%^^A
% Clauses generate right marks for running heads, if the document
% provides automatic running heads.%^^A
% \SpecialOptionIndex{clausemark\quotechar=right}%^^A
% }%^^A
% \end{desctabular}
% \end{table}
%^^A
%
%
% \subsection{Paragraphs}
% \label{sec:par}
% \Index{paragraph>numbering}%^^A
% Within clauses, \pkg*{contract} usually numbers paragraphs automatically.
% With this, the paragraphs provide a powerful structuring element, similar to
% \cs{paragraph} or \cs{subparagraph} in
% normal documents. For this reason, contracts usually use a vertical skip
% between paragraphs. The \pkg*{contract} package does not provide its own
% mechanism for this. Instead, you should uses the
% \opt{parskip}\SpecialOptionIndex{parskip} option of the
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
% classes. If you do not use a
% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} class, see the
% documentation of the used class or package \pkg{parskip}
% \nocite{pkg:parskip}\cite{pkg:parskip:manual}.
%
%
% \DescribeOption{parnumber}
% \SpecialOptionIndex{parnumber\quotechar=\meta{value}}
% The option can be used as an optional argument of \cs{documentclass},
% \cs{usepackage} when loading package \pkg*{contract}, or as an argument of
% \cs{contractSetup}.
%
% The default numbering of paragraphs is
% \opt[element=parnumber]{parnumber=auto}\SpecialOptionIndex{parnumber\quotechar=auto}
% and
% \opt[element=parnumber]{parnumber=true}\SpecialOptionIndex{parnumber\quotechar=true}. Sometimes
% you may need to disable the automatic numbering. You can do this with
% \opt[element=parnumber]{parnumber=false}\SpecialOptionIndex{parnumber\quotechar=false}.
% In this case, only the sentence numbering is reset.
%
% To implement this option, it has been necessary to hook into the
% paragraph-building mechanism of \LaTeX. In some rare cases, this can have a
% negative effect. If so, you can undo the change with
% \opt[element=parnumber]{parnumber=manual}\SpecialOptionIndex{parnumber\quotechar=manual}.
% On the other hand, \LaTeX{} itself sometimes undoes the change. In those
% cases you can activate it again with
% \opt[element=parnumber]{parnumber=auto}\SpecialOptionIndex{parnumber\quotechar=auto}.
%
% Clauses that consist of a single paragraph do not automatically receive a
% paragraph number. For this to work, there must not be two clauses with an
% identical number in a document. However should you ever need such numbering,
% you should switch to another contract environment (see
% \cs{DeclareNewJuraEnvironment}). Note that the number of
% paragraphs in a clause is not available before the end of the
% clause. Therefore you need a least two \LaTeX{} runs before the automatic
% paragraph numbering is correct.
%
%
% \DescribeCounter{par}
% \DescribeCommand{\thepar}
% \DescribeCommand{\parformat}
% \DescribeCommand{\parformatseparation}
% For numbering the paragraphs inside a clause we use the \cnt{par} counter.
% The output of \cs{thepar} will display an Arabic number, because the
% default is \cs{arabic}\targ{par}. \cs{parformat} provides the
% format, which is \cs{thepar} in rounded brackets. When numbering a
% paragraph manually, you should also use \cs{parformat}. It makes sense to
% call \cs{parformat} with a subsequent \cs{parformatseparation}, or at
% least a \cs{nobreakspace} or tilde.
%
% With automatic numbering, \cs{parformat} is followed by
% \cs{parformatseparation}, which currently consists of
% \cs{nonbreakspace}, the non-breakable space.
%
% The paragraph number is usually printed using the currently active font.
% See \autoref{sec:textmarkup} for information how to change the font of the
% \fnt{parnumber} element.
%
% \begin{description}
% \item{Note:} \pkg*{contract} currently assumes internally that
% \cs{thepar} is an Arabic number. Therefore you should definitely not
% redefine it!
% \end{description}
%
%
% \DescribeCommand{\withoutparnumber}
% If the paragraph number is not printed, \pkg*{contract} executes the
% \cs{withoutparnumber} command at the beginning of the new paragraph. The
% initial definition of this command is empty. This means it is a kind of
% dummy command that does nothing. It has been implemented because of a user
% request. Most users can ignore this command.
%
%
% \DescribeCommand{\ellipsispar}
% \DescribeCommand{\parellipsis}
% Sometimes\,---\,particularly in comparative commentaries\,---\,it is
% desirable to omit paragraphs but to mark the omission. Those omitted
% paragraphs\Index{paragraph>omission} should be taken into account by the
% paragraph counter. The package \pkg*{contract} provides the command
% \cs{ellipsispar} to do this.
%
% By default, \cs{ellipsispar} omits precisely one paragraph. Using the
% optional argument of
% \begin{syntax}
% \cs{ellipsispar}\oarg{number}
% \end{syntax}
% you can omit multiple paragraphs. In any case, the output shows just one
% unnumbered paragraph, which consists only of the ellipsis defined by
% \cs{parellipsis}. The automatic numbering of paragraphs takes the
% \meta{number} of omitted paragraphs into account.
% \begin{Example}
% Suppose you are writing a comment on the German\footnote{Please remember,
% this translation does not refer to an existing law but is only an example
% of how you might realise such a commentary with \pkg*{contract}.} penal
% code, but only on paragraph 3 of \S~2. Nevertheless, you'd like to
% indicate the omission indirectly. You can do this with:
%\begin{lstcode}[gobble=1]
% \documentclass[parskip=half]{scrartcl}
% \usepackage{contract}
% \begin{document}
% \begin{contract}
% \Clause{title={Temporal application},number=2}
% \ellipsispar[2]
%
% If the law that applies at the time the criminal act is
% committed is changed before the verdict, then the most
% lenient law shall be applicable.
%
% \ellipsispar[3]
% \end{contract}
% \end{document}
%\end{lstcode}
% To see the result, just give it a try.
% \end{Example}
%
% The ellipsis is by default \cs{textellipsis}, if such a command is
% defined. If not, \cs{dots} is used. You can redefine \cs{parellipsis} at any
% time with \cs{renewcommand}.
%
%
% \subsection{Sentences}
% \label{sec:sentence}
%
% \Index{sentence>number}%^^A
% Paragraphs in contracts consist of one or more sentences, some of which may
% also be numbered. However, as automatic numbering is cumbersome and
% error-prone, it has not yet been implemented in
% \pkg*{contract}. Semi-automatic numbering, however, is supported.
%
% \DescribeCounter{sentence}
% \DescribeCommand{\thesentence}
% \DescribeCommand{\sentencenumberformat}
% \DescribeCommand{\Sentence}
% Manual numbering of sentences is done with the \cs{Sentence} command. It
% adds one to the \cnt{sentence} counter. By default,
% \cs{sentencenumberformat} prints \cs{thesentence} as an Arabic number in
% superscript.
%
% The sentence number is usually printed using the currently active font.
% See \autoref{sec:textmarkup} for information how to change the font of the
% \fnt{sentencenumber} element.
%
% Using \pkg{babel} offers an easy way to define a shorthand for
% \cs{Sentence}:%^^A
% \phantomsection\label{sec:shorthandexample}%^^A
%\begin{lstcode}[moretexcs={useshorthands,defineshorthand},gobble=1]
% \useshorthands{'}
% \defineshorthand{'S}{\Sentence\ignorespaces}
%\end{lstcode}
% With this definition, any space after \lstinline|'S| will be ignored. You
% can even use the dot as an abbreviation for a dot and a new sentence number:
%\begin{lstcode}[moretexcs={useshorthands,defineshorthand},gobble=1]
% \defineshorthand{'.}{. \Sentence\ignorespaces}
%\end{lstcode}
% For details regarding \cs{useshorthands} and \cs{defineshorthand},
% please consult the manual of the \pkg{babel} package (see
% \cite{pkg:babel}). You can find an example of their application in
% \autoref{sec:example}, \autopageref{sec:example}.%^^A
%
%
% \section{Cross References}
% \label{sec:ref}
%
% The conventional mechanism to set cross references using \cs{label},
% \cs{ref}, and \cs{pageref} does not suffice for clauses, paragraphs, and
% sentences. Therefore \pkg*{contract} provides additional commands.
%
% \DescribeCommand{\ref}
% \DescribeCommand{\refL}
% \DescribeCommand{\refS}
% \DescribeCommand{\refN}
% The commands
% \begin{syntax}
% \cs{ref}\marg{label}
% \cs{refL}\marg{label}
% \cs{refS}\marg{label}
% \cs{refN}\marg{label}
% \end{syntax}
% give a full reference to clause, paragraph and sentence. \cs{refL} is a long
% text, \cs{refS} a short text, and \cs{refN} an abbreviated, numeric form.
% \cs{ref} defaults to \cs{refL}.
%
%
% \DescribeCommand{\refClause}
% \DescribeCommand{\refClauseN}
% The commands
% \begin{syntax}
% \cs{refClause}\marg{label}
% \cs{refClauseN}\marg{label}
% \end{syntax}
% reference a clause without displaying the paragraph or
% sentences. \cs{refClause} puts a section mark (\S) in front of the
% reference, while \cs{refClauseN} does not.
%
%
% \DescribeCommand{\refPar}
% \DescribeCommand{\refParL}
% \DescribeCommand{\refParS}
% \DescribeCommand{\refParN}
% The commands
% \begin{syntax}
% \cs{refPar}\marg{label}
% \cs{refParL}\marg{label}
% \cs{refParS}\marg{label}
% \cs{refParN}\oarg{number format}\marg{label}
% \end{syntax}
% reference a paragraph of a clause. The differences between the forms
% correspond to the differences between \cs{refL}, \cs{refN} and \cs{refS}. A
% feature worth noting is the optional argument of \cs{refParN}. Usually the
% numeric reference to a paragraph uses a Roman number. You can, however,
% specify a different \meta{number format} in the optional argument. This
% option primarily makes sense to use Arabic numbers. By default, \cs{refPar}
% is \cs{refParL}.
%
%