diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/contract/contract.sty | 1099 |
1 files changed, 1099 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/contract/contract.sty b/Master/texmf-dist/tex/latex/contract/contract.sty new file mode 100644 index 00000000000..1eed286c19f --- /dev/null +++ b/Master/texmf-dist/tex/latex/contract/contract.sty @@ -0,0 +1,1099 @@ +%% +%% This is file `contract.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% contract.dtx (with options: `package,identify') +%% contract.dtx (with options: `package,init') +%% contract.dtx (with options: `package,options') +%% contract.dtx (with options: `package,postoptions') +%% contract.dtx (with options: `package,body') +%% contract.dtx (with options: `package,final') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from contract.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file contract.dtx contract.dtx contract.dtx contract.dtx contract.dtx contract.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%%% --- docstrip run: identify --- +\NeedsTeXFormat{LaTeX2e}[2020/10/01] +\ProvidesPackage{contract}[% + 2024-02-07 v0.91 + package for jurists +] +%%% --- docstrip run: init --- +\@ifpackageloaded{hyperref}{% + \PackageError{contract}{Package hyperref already loaded}{% + If you want to use package contract with package hyperref, you have + to\MessageBreak + load package contract before package hyperref.\MessageBreak + To solve the problem, you just should move the loading of package + hyperref\MessageBreak + behind the loading of package contract.}% +} +\RequirePackage{scrkbase}[2013/03/26] +\RequirePackage{tocbasic} +\DeclareTOCStyleEntry[% + indent=1.5em, + numwidth=2em, + level=\maxdimen +]{default}{cpar} +%%% --- docstrip run: options --- +\KOMA@ifkey{contract}{@documentcontract} +\IfLTXAtLeastTF{2020/10/01}{% + \AddToHook{begindocument/end}{% + \RelaxFamilyKey[.contract.sty]{KOMA}{contract}% + \if@documentcontract\expandafter\contract\fi + }% +}{% + \g@addto@macro\document{% + \RelaxFamilyKey[.contract.sty]{KOMA}{contract}% + \if@documentcontract\expandafter\contract\fi + }% +} +\KOMA@key{juratotoc}[true]{% + \KOMA@set@ifkey{juratotoc}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@tempswa + \DeclareTOCStyleEntry[level=2]{default}{cpar}% + \else + \DeclareTOCStyleEntry[level=\maxdimen]{default}{cpar}% + \fi + \else + \DeclareTOCStyleEntry[level=#1]{default}{cpar}% + \fi + \KOMA@kav@xreplacevalue{contract.sty}{juratotoc}{\cpartocdepth}% +} +\KOMA@kav@xadd{contract.sty}{juratotoc}{\cpartocdepth}% +\KOMA@key{juratocnumberwidth}{% + \DeclareTOCStyleEntry[numwidth=#1]{default}{cpar}% + \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{contract.sty}{juratocnumberwidth}{#1}% +} +\KOMA@kav@add{contract.sty}{juratocnumberwidth}{2em} +\KOMA@key{juratocindent}{% + \DeclareTOCStyleEntry[indent=#1]{default}{cpar}% + \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{contract.sty}{juratocindent}{#1}% +} +\KOMA@kav@add{contract.sty}{juratocindent}{1.5em}% +\KOMA@ifkey{juratitlepagebreak}{@juratitlepagebreak} +\newif\ifparnumber +\KOMA@key{parnumber}[true]{% + \Ifstr{#1}{auto}{% + \AutoPar + \FamilyKeyStateProcessed + \KOMA@kav@remove{contract.sty}{parnumber}{manual}% + \KOMA@kav@remove{contract.sty}{parnumber}{auto}% + \KOMA@kav@add{contract.sty}{parnumber}{auto}% + }{% + \Ifstr{#1}{manual}{% + \ManualPar + \FamilyKeyStateProcessed + \KOMA@kav@remove{contract.sty}{parnumber}{manual}% + \KOMA@kav@remove{contract.sty}{parnumber}{auto}% + \KOMA@kav@add{contract.sty}{parnumber}{manual}% + }{% + \KOMA@set@ifkey{parnumber}{parnumber}{#1}% + \KOMA@kav@replacebool{contract.sty}{parnumber}{parnumber}% + }% + }% +} +\KOMA@kav@add{contract.sty}{parnumber}{true} +\KOMA@kav@add{contract.sty}{parnumber}{auto} +\newcommand*{\Clausemark}[1]{} +\KOMA@key{clausemark}{% + \begingroup + \KOMA@set@ncmdkey{clausemark}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {forceright}{1},% + {forceboth}{2},% + {right}{3},% + {both}{4}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase\number\@tempa + \endgroup + \let\Clausemark\@gobble + \or + \endgroup + \renewcommand*{\Clausemark}[1]{% + \markright{\csname MakeMarkcase\endcsname{##1}}}% + \or + \endgroup + \renewcommand*{\Clausemark}[1]{% + \markboth{\csname MakeMarkcase\endcsname{##1}}% + {\csname MakeMarkcase\endcsname{##1}}}% + \or + \endgroup + \renewcommand*{\Clausemark}[1]{% + \ifx + \@mkboth\@gobbletwo + \else + \markright{\csname MakeMarkcase\endcsname{##1}}% + \fi}% + \or + \endgroup + \renewcommand*{\Clausemark}[1]{% + \@mkboth{\csname MakeMarkcase\endcsname{##1}}% + {\csname MakeMarkcase\endcsname{##1}}}% + \else + \endgroup + \fi + \FamilyKeyStateProcessed + \else + \endgroup + \FamilyKeyStateUnknownValue + \fi + \KOMA@kav@xreplacevalue{contract.sty}{clausemark}{#1}% +} +\KOMA@kav@add{contract.sty}{clausemark}{false} +\@ifundefined{KOMA@DeclareDeprecatedOption}{}{% + \KOMA@DeclareDeprecatedOption[contract]{markright}{clausemark=forceright}% + \KOMA@DeclareDeprecatedOption[contract]{markboth}{clausemark=forceboth}% +} +\KOMA@key{paragraphmark}{% + \PackageWarningNoLine{contract}{% + You've used obsolete option `paragraphmark'.\MessageBreak + Usage of this option is deprecated.\MessageBreak + You should simply replace `paragraphmark'\MessageBreak + by `clausemark'% + }% + \KOMAExecuteOptions[.contract.sty]{clausemark=#1}% +} +\newcommand*{\parcite@format}{0} +\newcommand*{\sentencecite@format}{0} +\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},% + {paroff}{4},{nopar}{4},% + {sentencelong}{10},{longsentence}{10},{SentenceL}{10},% + {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},% + {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},% + {sentenceoff}{40},{nosentence}{40},% + {long}{11},% + {short}{22},% + {numeric}{33},% + {paragraphonly}{44},{onlyparagraph}{44},% + {ParagraphOnly}{44},{OnlyParagraph}{44}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \@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}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup-\aftergroup1\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}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup-\aftergroup1\aftergroup}% + \fi + \else + \aftergroup\FamilyKeyStateUnknownValue + \fi + \endgroup + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \KOMA@kav@removekey{contract.sty}{ref}% + \ifcase\parcite@format + \KOMA@kav@add{contract.sty}{ref}{parlong}% + \or + \KOMA@kav@add{contract.sty}{ref}{parshort}% + \or + \KOMA@kav@add{contract.sty}{ref}{parnumeric}% + \or + \KOMA@kav@add{contract.sty}{ref}{paroff}% + \fi + \ifcase\sentencecite@format + \KOMA@kav@add{contract.sty}{ref}{sentencelong}% + \or + \KOMA@kav@add{contract.sty}{ref}{sentenceshort}% + \or + \KOMA@kav@add{contract.sty}{ref}{sentencenumeric}% + \or + \KOMA@kav@add{contract.sty}{ref}{sentenceoff}% + \fi + \fi +} +\KOMA@kav@add{contract.sty}{ref}{parlong}% +\KOMA@kav@add{contract.sty}{ref}{sentencelong}% +\@ifundefined{KOMA@DeclareDeprecatedOption}{}{% + \KOMA@DeclareDeprecatedOption[contract]{parcitename}{ref=parlong} + \KOMA@DeclareDeprecatedOption[contract]{sentencecitename}{ref=sentencelong} +} +%%% --- docstrip run: postoptions --- +\KOMAProcessOptions\relax +%%% --- docstrip run: body --- +\providecommand*{\DeprecatedParagraph}{% + \PackageError{contract}{modification of old document needed}{% + It seem that this document was made for scrjura up to version + 0.7a.\MessageBreak + Since scrjura version 0.9 \string\Paragraph, \string\SubParagraph, and all + depending\MessageBreak + commands, options, and counters have been renamed.\MessageBreak + You should replace the terms `Paragraph' and `paragraph` by `Clause` + and\MessageBreak + `clause` if they are part of the name of a contract feature, otherwise + this\MessageBreak + document may produce severall additional error messages and maybe the + wrong\MessageBreak + result. Sorry for the inconvenience.% + }% + \ParagraphCompatibilityHacks +} +\newcommand*{\ParagraphCompatibilityHacks}{% + \PackageWarning{contract}{compatibility hacks for `\string\Paragraph' + executed.\MessageBreak + There is no support for documents using these hacks!\MessageBreak + There is no warranty for real compatibility!\MessageBreak + Even if the LaTeX run of the document doesn't report\MessageBreak + any error, the result may be completely wrong.\MessageBreak + Therefore it is recommended to solve the problem,\MessageBreak + instead of trying to work around using the\MessageBreak + compatibility hacks% + }% + \gdef\Paragraph{\Clause}% + \gdef\SubParagraph{\SubClause}% + \gdef\c@Paragraph{\c@Clause}% + \gdef\cl@Paragraph{\cl@Clause}% + \gdef\c@SubParagraph{\c@SubClause}% + \gdef\cl@SubParagraph{\cl@SubClause}% + \gdef\theParagraph{\theClause}% + \gdef\theSubParagraph{\theSubClause}% + \gdef\refParagraph{\refClause}% + \gdef\refParagraphN{\refClauseN}% + \aliaskomafont{Paragraph}{Clause}% + \scr@ifundefinedorrelax{Paragraphmark}{}{% + \global\let\Clausemark\Paragraphmark + }% +} +\providecommand*{\Paragraph}{\DeprecatedParagraph\Paragraph} +\providecommand*{\SubParagraph}{\DeprecatedParagraph\SubParagraph} +\providecommand*{\refParagraph}{\DeprecatedParagraph\refParagraph} +\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN} +\newcommand*{\contract@env@type}{} +\newcommand*{\ellipsispar}[1][1]{% + \begingroup + \KOMAoptions{parnumber=manual}\parellipsis\par + \addtocounter{par}{#1}% + \if@filesw + \protected@write\@auxout{}{% + \string\newmaxpar{\contract@env@type}% + {\csname the\contract@env@type + AbsoluteClause\endcsname}% + {\thepar}% + }% + \fi + \endgroup + \addtocounter{par}{-1}\refstepcounter{par}% + \ignorespaces +} +\newcommand*{\parellipsis}{% + \scr@ifundefinedorrelax{textellipsis}{\dots}{\textellipsis}% +} +\newenvironment{contract}{% + \ifx\contract@env@type\@empty + \let\@doendpe\contract@doendpe + \let\Clause\contract@paragraph + \let\c@Clause\c@contractClause + \edef\cl@Clause{\cl@Clause\cl@contractClause}% + \let\SubClause\contract@subparagraph + \let\c@SubClause\c@contractSubClause + \edef\cl@SubClause{\cl@SubClause\cl@contractSubClause}% + \let\Sentence\contract@sentence + \renewcommand*{\contract@env@type}{contract}% + \aliaskomafont{Clause}{contract.Clause}% + \else + \PackageError{contract}{nested `contract` detected}{% + You may not use a `contract' environment inside\MessageBreak + a `\contract@env@type' environment or after loading\MessageBreak + package `contract' with option `\contract@env@type'!}% + \fi +}{} +\let\if@contract@skiphyperref\iftrue +\let\cl@Clause\@empty +\let\cl@SubClause\@empty +\newcounter{contractClause} +\renewcommand*{\thecontractClause}{% + {\contract@Clauseformat{\arabic{Clause}}}} +\DeclareRobustCommand*{\contract@Clauseformat}[1]{\Clauseformat{#1}} +\newcommand*{\Clauseformat}[1]{\S~#1} +\newcounter{contractSubClause} +\@addtoreset{SubClause}{Clause} +\renewcommand*{\thecontractSubClause}{% + {\theClause\alph{SubClause}}} +\newcounter{contractAbsoluteClause} +\newcommand*{\DeclareNewJuraEnvironment}[1]{% + \@ifundefined{#1}{\expandafter\let\csname #1\expandafter\endcsname + \csname end#1\endcsname}{}% + \@ifundefined{#1}{\let\reserved@defjuraenvironment\@defjuraenvironment}{% + \PackageError{contract}{ignorring declaration of `#1'}{% + You've tried to declare jura environment `#1', but + environment\MessageBreak + `#1' or command + \expandafter\string\csname #1\endcsname\space or + \expandafter\string\csname end#1\endcsname\MessageBreak + already exists.\MessageBreak + Declaration will be ignored}% + \long\def\reserved@defjuraenvironment##1[##2]##3##4{}% + }% + \kernel@ifnextchar [%] + {\reserved@defjuraenvironment{#1}}{\reserved@defjuraenvironment{#1}[]}% +} +\@onlypreamble\DeclareNewJuraEnvironment +\DefineFamily{KOMAarg} +\DefineFamilyMember{KOMAarg} +\newcommand{\@defjuraenvironment}{} +\long\def\@defjuraenvironment#1[#2]#3#4{% + \let\reserved@defjuraenvironment\relax + \newcounter{#1Clause}% + \newcounter{#1AbsoluteClause}% + \newcounter{#1SubClause}% + \FamilyCSKey[.contract.sty]{KOMAarg}{Clause}{#1@Clause}% + \FamilyCSKey[.contract.sty]{KOMAarg}{SubClause}{#1@SubClause}% + \FamilyCSKey[.contract.sty]{KOMAarg}{Sentence}{#1@Sentence}% + \DefineFamilyKey[.contract.sty]{KOMAarg}{ClauseNumberFormat}{% + \expandafter\def\csname #1@Clauseformat \endcsname####1{##1{####1}}% + \expandafter\edef\csname #1@Clauseformat\endcsname{% + \noexpand\protect\expandafter\noexpand\csname #1@Clauseformat \endcsname + }% + \FamilyKeyStateProcessed + } + \DefineFamilyKey[.contract.sty]{KOMAarg}{ClauseFont}{% + \IfExistskomafont{#1.Clause}{% + \IfIsAliaskomafont{#1.Clause}{% + \expandafter\let\csname scr@fnt@instead@#1.Clause\endcsname\relax + \newkomafont{#1.Clause}{##1}% + }{\setkomafont{#1.Clause}{##1}}% + }{% + \newkomafont{#1.Clause}{##1}% + }% + } + \FamilyExecuteOptions[.contract.sty]{KOMAarg}{#2}% + \RelaxFamilyKey[.contract.sty]{KOMAarg}{ClauseFont}% + \RelaxFamilyKey[.contract.sty]{KOMAarg}{ClauseNumberFormat}% + \RelaxFamilyKey[.contract.sty]{KOMAarg}{Sentence}% + \RelaxFamilyKey[.contract.sty]{KOMAarg}{SubClause}% + \RelaxFamilyKey[.contract.sty]{KOMAarg}{Clause}% + \@ifundefined{#1@Clauseformat}{% + \expandafter\DeclareRobustCommand\expandafter*% + \csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}% + }{}% + \expandafter\renewcommand\expandafter*\csname the#1Clause\endcsname{% + \protect\@nameuse{#1@Clauseformat}{\arabic{#1Clause}}}% + \newenvironment{#1}{% + \par + \ifx\contract@env@type\@empty + \edef\contract@env@type{#1}% + \let\@doendpe\contract@doendpe + \expandafter\let\expandafter\c@Clause\csname c@#1Clause\endcsname + \edef\cl@Clause{\cl@Clause\csname cl@#1Clause\endcsname}% + \expandafter\let\expandafter\c@SubClause + \csname c@#1SubClause\endcsname + \edef\cl@SubClause{\cl@SubClause + \csname cl@#1SubClause\endcsname}% + \@ifundefined{#1@Clause}{% + \let\Clause\contract@paragraph + }{% + \expandafter\let\expandafter\Clause + \csname #1@Clause\endcsname + }% + \@ifundefined{#1@SubClause}{% + \let\SubClause\contract@subparagraph + }{% + \expandafter\let\expandafter\SubClause + \csname #1@SubClause\endcsname + }% + \@ifundefined{#1@Sentence}{% + \let\Sentence\contract@sentence + }{% + \expandafter\let\expandafter\Sentence\csname #1@Sentence\endcsname + }% + \@ifundefined{\contract@env@type @everypar}{% + \expandafter\let + \csname \contract@env@type @everypar\endcsname + \contract@everypar + }{}% + \IfExistskomafont{#1.Clause}{% + \IfIsAliaskomafont{#1.Clause}{% + \aliaskomafont{Clause}{\csname scr@fnt@instead@#1.Clause\endcsname}% + }{% + \aliaskomafont{Clause}{#1.Clause}% + }% + }{% + \aliaskomafont{Clause}{contract.Clause}% + }% + #3% + \else + \PackageError{contract}{nested contract environments detected}{% + You must not use a `#1' environment inside\MessageBreak + a `\contract@env@type' environment or after loading\MessageBreak + package `contract' with option `\contract@env@type'!}% + \fi + }{% + #4% + \par + }% +} +\define@key{contract}{title}{% + \def\contract@title{#1}% + \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi + \ifx\contract@head\relax\def\contract@head{\contract@title}\fi +} +\define@key{contract}{entry}{% + \PackageWarning{contract}{deprecated option `entry'.\MessageBreak + You should use option `tocentry' instead of\MessageBreak + option `entry'% + }% + \def\contract@entry{#1}} +\define@key{contract}{tocentry}{\def\contract@entry{#1}} +\define@key{contract}{noentry}[]{% + \PackageWarning{contract}{deprecated option `noentry'.\MessageBreak + You should use option `notocentry' instead of\MessageBreak + option `noentry'% + }% + \let\contract@entry\relax} +\define@key{contract}{notocentry}[]{\let\contract@entry\relax} +\define@key{contract}{head}{\def\contract@head{#1}} +\define@key{contract}{nohead}[]{\let\contract@head\relax} +\define@key{contract}{number}{\def\contract@number{#1}} +\newcommand*{\contract@preskip}{2\baselineskip} +\newcommand*{\contract@postskip}{\baselineskip} +\define@key{contract}{preskip}{\def\contract@preskip{#1}} +\define@key{contract}{postskip}{\def\contract@postskip{#1}} +\newif\ifcontract@dummy +\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname} +\newkomafont{contract.Clause}{\sffamily\bfseries\large} +\newcommand*{\contract@paragraph@font}{\usekomafont{Clause}% + \@hangfrom} +\newcounter{@AbsClause} +\def\theH@AbsClause{P-\arabic{@AbsClause}} +\def\theHClause{\theH@AbsClause} +\def\theHSubClause{\theH@AbsClause} +\NewDocumentCommand\contract@paragraph {o} {% + \stepcounter{\contract@env@type AbsoluteClause}% + \ManualPar\parnumbertrue + \let\contract@title\relax + \let\contract@entry\relax + \let\contract@head\relax + \let\contract@number\relax + \contract@dummyfalse + \IfValueT{#1}{\setkeys{contract}{#1}}% + \ifcontract@dummy\else + \par + \@afterindentfalse + \addvspace{\contract@preskip}% + \fi + \ifx\contract@number\relax + \let\p@Clause\@empty + \expandafter\let\expandafter\theClause + \csname the\contract@env@type Clause\endcsname + \refstepcounter{Clause}% + \else + \begingroup + \let\@elt\@stpelt + \cl@Clause + \endgroup + \protected@edef\theClause{% + \protect\@nameuse{\contract@env@type @Clauseformat}{\contract@number}% + }% + \protected@edef\@currentlabel{\theClause}% + \def\@currentcounter{Clause}% + \fi + \stepcounter{@AbsClause}% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname if@skiphyperref\endcsname\relax + \else + \expandafter\let\csname if@contract@skiphyperref\expandafter\endcsname + \csname if@skiphyperref\endcsname + \fi + \if@contract@skiphyperref\else + \hyper@refstepcounter{@AbsClause}% + \fi + \let\theSubClause\theClause + \ifcontract@dummy\else + \begingroup + \if@juratitlepagebreak\else\interlinepenalty\@M\fi + \contract@paragraph@font{\theClause + \ifx\contract@title\relax\else\enskip\fi}% + \contract@title + \ifx\contract@entry\relax\else + \expandafter\addxcontentsline\expandafter{\ext@toc}% + {cpar}[\theClause]\contract@entry + \addxcontentsline{cpa}{cpar}[\theClause]\contract@entry + \fi + \ifx\contract@head\relax\else + \expandafter\Clausemark\expandafter{% + \expandafter\theSubClause\expandafter\enskip\contract@head}% + \fi + \par + \endgroup\nobreak\vskip\contract@postskip + \contract@afterheading + \fi +} +\NewDocumentCommand \contract@subparagraph {o}{% + \stepcounter{\contract@env@type AbsoluteClause}% + \ManualPar\parnumbertrue + \let\contract@title\relax + \let\contract@entry\relax + \let\contract@head\relax + \let\contract@number\relax + \contract@dummyfalse + \IfValueT{#1}{\setkeys{contract}{#1}}% + \ifcontract@dummy\else + \par + \@afterindentfalse + \vskip\contract@preskip + \fi + \ifx\contract@number\relax + \let\p@SubClause\@empty + \let\theSubClause\thecontractSubClause + \refstepcounter{SubClause}% + \else + \begingroup + \let\@elt\@stpelt + \cl@SubClause + \endgroup + \protected@edef\theSubClause{\theClause\contract@number}% + \protected@edef\@currentlabel{\theSubClause}% + \def\@currentcounter{SubClause}% + \fi + \stepcounter{@AbsClause}% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname if@skiphyperref\endcsname\relax + \else + \expandafter\let\csname if@contract@skiphyperref\expandafter\endcsname + \csname if@skiphyperref\endcsname + \fi + \if@contract@skiphyperref\else + \hyper@refstepcounter{@AbsClause}% + \fi + \ifcontract@dummy\else + \begingroup + \if@juratitlepagebreak\else\interlinepenalty\@M\fi + \contract@paragraph@font{\theSubClause + \ifx\contract@title\relax\else\enskip\fi}% + \contract@title + \ifx\contract@entry\relax\else + \expandafter\addxcontentsline\expandafter{\ext@toc}% + {cpar}[\theSubClause]\contract@entry + \addxcontentsline{cpa}{cpar}[\theSubClause]\contract@entry + \fi + \ifx\contract@head\relax\else + \expandafter\Clausemark\expandafter{% + \expandafter\theSubClause\expandafter\enskip\contract@head}% + \fi + \par + \endgroup + \nobreak\vskip\contract@postskip + \contract@afterheading + \fi +} +\newcommand*{\AutoPar}{% + \expandafter\let\expandafter\contract@used@everypar + \csname \contract@env@type @everypar\endcsname +} +\newcommand*{\ManualPar}{% + \let\contract@used@everypar\relax +} +\CheckCommand*{\@afterheading}{% + \@nobreaktrue + \everypar{% + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \if@afterindent \else + {\setbox\z@\lastbox}% + \fi + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi}% +} +\newcommand*{\contract@afterheading}{% + \@nobreaktrue + \everypar{% + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \if@afterindent \else + {\setbox\z@\lastbox}% + \fi + \else + \clubpenalty \@clubpenalty + \everypar{% + \contract@used@everypar + }% + \fi + \contract@used@everypar + }% + \AutoPar +} +\newcommand*{\contract@used@everypar}{} +\providecommand*{\IncludeInRelease}[3]{% + \PackageInfo{contract}{temporary definition of \string\IncludeInRelease}% + \Ifstr{#1}{0000/00/00}{% + \let\IncludeInRelease\@undefined + \def\EndIncludeInRelease{\let\EndIncludeInRelease\@undefined}% + }{% + \let\EndIncludeInRelease\relax + \long\def\@gobble@IncludeInRelease##1\EndIncludeInRelease{% + \let\@gobble@IncludeInRelease\@undefined + }% + \expandafter\@gobble@IncludeInRelease + }% +} +\IncludeInRelease{2015/01/01}{\@doendpe}{clubpenalty fix} +\CheckCommand*\@doendpe{\@endpetrue + \def\par{\@restorepar + \clubpenalty\@clubpenalty + \everypar{}\par\@endpefalse}\everypar + {{\setbox\z@\lastbox}% + \everypar{}\@endpefalse}} +\newcommand*{\contract@doendpe}{% + \@endpetrue + \def\par{% + \@restorepar + \clubpenalty\@clubpenalty + \everypar{% + \csname contract@used@everypar\endcsname + }% + \par\@endpefalse + }% + \everypar{% + {\setbox\z@\lastbox}\everypar{% + \csname contract@used@everypar\endcsname + }% + \@endpefalse + }% +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix} +\CheckCommand*\@doendpe{\@endpetrue + \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar + {{\setbox\z@\lastbox}\everypar{}\@endpefalse}} +\newcommand*{\contract@doendpe}{% + \@endpetrue + \def\par{% + \@restorepar\everypar{% + \csname contract@used@everypar\endcsname + }% + \par\@endpefalse + }% + \everypar{% + {\setbox\z@\lastbox}\everypar{% + \csname contract@used@everypar\endcsname + }% + \@endpefalse + }% +} +\EndIncludeInRelease +\DeclareRobustCommand*{\contract@separator}[1]{#1} +\DeclareRobustCommand*{\contract@usetype}[1]{\contract@@usetype{#1}} +\newcommand*{\contract@@usetype}[1]{} +\newcounter{par} +\renewcommand*{\thepar}{\arabic{par}} +\def\theHpar{\theH@AbsClause-\Roman{par}} +\newcommand*{\parformat}{(\thepar)} +\newcommand*{\parformatseparation}{\nobreakspace} +\newkomafont{parnumber}{} +\renewcommand*\p@par{{\contract@usetype{\contract@env@type}\theSubClause\contract@separator{\nobreakspace}}} +\@addtoreset{par}{Clause} +\@addtoreset{par}{SubClause} +\newcommand*{\withoutparnumber}{} +\newcommand*{\contract@everypar}{% + \ifparnumber + \ifx\contract@special@par\relax + \ifx\contract@special@reset@par\relax\else + \global\let\thepar\contract@special@reset@par + \global\let\contract@special@reset@par\relax + \fi + \refstepcounter{par}% + \refstepcounter{sentence}% + \else + \ifx\contract@special@reset@par\relax + \global\let\contract@special@reset@par\thepar + \fi + \global\let\thepar\contract@special@par + \global\let\contract@special@par\relax + \setcounter{sentence}{0}\refstepcounter{sentence}% + \fi + \begingroup + \if@filesw + \protected@write\@auxout{% + \expandafter\let\csname \contract@env@type @Clauseformat\endcsname + \@firstofone + }{% + \string\newmaxpar{\contract@env@type}% + {\csname the\contract@env@type + AbsoluteClause\endcsname}% + {\thepar}% + }% + \fi + \getmaxpar\@tempa{\contract@env@type}% + {\csname the\contract@env@type AbsoluteClause\endcsname}% + \def\reserved@a##1\@nnil{\def\@tempa{##1}}% + \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil + \ifnum \@tempcnta>\@ne + {\usekomafont{parnumber}{\parformat\parformatseparation}}% + \else + \def\reserved@a{\relax}% + \ifx\@tempa\reserved@a + \withoutparnumber + \else + {\usekomafont{parnumber}{\parformat\parformatseparation}}% + \fi + \fi + \endgroup + \else + \begingroup\withoutparnumber\endgroup + \setcounter{sentence}{-1}\refstepcounter{sentence}% + \fi +} +\newcommand*{\thisparnumber}[1]{% + \def\contract@special@par{#1}% +} +\newcommand*{\contract@special@par}{} +\let\contract@special@par\relax +\newcommand*{\contract@special@reset@par}{} +\let\contract@special@reset@par\relax +\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}} +\newcommand*{\ref@L}[2]{% + \begingroup + \def\parcite@format{0}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}} +\newcommand*{\ref@S}[2]{% + \begingroup + \def\parcite@format{1}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}} +\newcommand*{\ref@N}[2]{% + \begingroup + \def\parcite@format{2}% + \let\sentencecite@format\parcite@format + \ref#1{#2}% + \endgroup +} +\newcommand*{\refClause}{% + \kernel@ifstar {\ref@Clause*}{\ref@Clause{}} +} +\newcommand*{\ref@Clause}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% + \else + \begingroup + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% + \def\@tempc##1##2\@nil{##1}% + \let\contract@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#2\endcsname\noexpand\@nil}% + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref#1{#2}% + \endgroup + \fi +} +\newcommand*{\refClauseN}{% + \kernel@ifstar {\ref@ClauseN*}{\ref@ClauseN{}} +} +\newcommand*{\ref@ClauseN}[2]{% + \begingroup + \let\Clauseformat\relax + \ref@Clause{#1}{#2}% + \endgroup +} +\newcommand*{\refPar}{% + \kernel@ifstar {\ref@Par*}{\ref@Par{}} +} +\newcommand*{\ref@Par}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% + \else + \begingroup + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% + \def\@tempc##1##2\@nil{##1}% + \let\contract@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#2\endcsname\noexpand\@nil}% + \def\@tempc##1##2##3\@nil{##2}% + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa{% + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#2' on page \thepage \space + with undefined par number}% + }\noexpand\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref#1{#2}% + \endgroup + \fi +} +\newcommand*{\refParL}{% + \kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}} +} +\newcommand*{\ref@ParX}[3]{% + \begingroup + \def\parcite@format{#1}% + \let\sentencecite@format\parcite@format + \ref@Par{#2}{#3}% + \endgroup +} +\newcommand*{\refParS}{% + \kernel@ifstar {\ref@ParX1*}{\ref@ParX1{}} +} +\newcommand*{\refParN}{% + \kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}} +} +\newcommand*{\ref@ParN}[2]{% + \kernel@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 +} +\newcommand*{\refSentence}{% + \kernel@ifstar {\ref@Sentence*}{\ref@Sentence{}} +} +\newcommand*{\ref@Sentence}[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax + \ref#1{#2}% + \else + \begingroup + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}% + \def\@tempc##1##2\@nil{##1}% + \let\contract@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#2\endcsname\noexpand\@nil}% + \def\@tempc##1##2##3##4\@nil{##3}% + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa{}{% + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#2' on page \thepage \space + with undefined sentence number}% + }\noexpand\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref#1{#2}% + \endgroup + \fi +} +\newcommand*{\refSentenceL}{% + \kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}} +} +\newcommand*{\ref@SentenceX}[3]{% + \begingroup + \def\parcite@format{#1}% + \let\sentencecite@format\parcite@format + \ref@Sentence{#2}{#3}% + \endgroup +} +\newcommand*{\refSentenceS}{% + \kernel@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}} +} +\newcommand*{\refSentenceN}{% + \kernel@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}} +} +\newcounter{sentence}[par] +\renewcommand*{\thesentence}{\arabic{sentence}} +\def\theHsentence{\theHpar-\arabic{sentence}} +\scr@ifundefinedorrelax{labelformat}{% + \renewcommand*{\p@sentence}{\expandafter\p@@sentence} + \newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}% + \contract@separator{\nobreakspace}}{\sentence@cite{#1}}}% +}{% + \labelformat{sentence}{\p@par{{\par@cite{\thepar}}% + \contract@separator{\nobreakspace}}{\sentence@cite{#1}}}% +} +\newcommand*{\contract@sentence}{% + \ifvmode + \if@endpe + \refstepcounter{sentence}% + \else + \leavevmode + \fi + \else + \refstepcounter{sentence}% + \fi + {\usekomafont{sentencenumber}{\sentencenumberformat}}% + \nobreak\hskip\z@ +} +\newkomafont{sentencenumber}{} +\newcommand*{\sentencenumberformat}{\textsuperscript{\thesentence}} +\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}} +\newcommand*{\parciteformat}[1]{% + \ifcase \parcite@format + \expandafter\parlongformat + \or + \expandafter\parshortformat + \or + \expandafter\parnumericformat + \else + \unskip\expandafter\@gobble + \fi + {#1}% +} +\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}} +\newcommand*{\sentenceciteformat}[1]{% + \ifcase \sentencecite@format + \expandafter\sentencelongformat + \or + \expandafter\sentenceshortformat + \or + \expandafter\sentencenumericformat + \else + \unskip\expandafter\@gobble + \fi + {#1}% +} +\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}.} +\newcommand*{\parname}{Paragraph} +\AtBeginDocument{% + \providecaptionname{german,ngerman,austrian,naustrian}\parname{Absatz}% + \providecaptionname{german,ngerman,austrian,naustrian}\parshortname{Abs.}% + \providecaptionname{german,ngerman,austrian,naustrian}\sentencename{Satz}% + \providecaptionname{german,ngerman,austrian,naustrian}\sentenceshortname{S.}% + \providecaptionname{english,american,british,canadian,% + USenglish,UKenglish,usenglish,ukenglish}\parname{paragraph}% + \providecaptionname{english,american,british,canadian,% + USenglish,UKenglish,usenglish,ukenglish}\parshortname{par.}% + \providecaptionname{english,american,british,canadian,% + USenglish,UKenglish,usenglish,ukenglish}\sentencename{sentence}% + \providecaptionname{english,american,british,canadian,% + USenglish,UKenglish,usenglish,ukenglish}\sentenceshortname{sent.}% +} +\providecommand*{\parname}{\contract@lang@error{\parname}} +\providecommand*{\parshortname}{\contract@lang@error{\parshortname}} +\providecommand*{\sentencename}{\contract@lang@error{\sentencename}} +\providecommand*{\sentenceshortname}{\contract@lang@error{\sentenceshortname}} +\newcommand*{\contract@lang@error}[1]{% + \PackageError{contract}{% + current language not supported% + }{% + Currently contract only supports languages `german', `ngerman', + `austrian',\MessageBreak + `naustrian', `english', `american', `british', `canadian', + `USenglish',\MessageBreak + `UKenglish', `usenglish`, and `ukenglish'.\MessageBreak + It seems, that you are using another language (maybe `\languagename') or + that\MessageBreak + your language selection isn't compatible to package `babel'.\MessageBreak + Because of this you have to define `\string#1' by yourself!\MessageBreak + It would be nice if you'll send your definitions to the author.% + }% + \textbf{??}% +} +\newcommand*{\newmaxpar}[3]{% + \begingroup + \expandafter\let\csname #1@Clauseformat\endcsname\@firstofone + \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa + \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}% + \endgroup +} +\newcommand*{\getmaxpar}[3]{% + \begingroup + \expandafter\let\csname #2@Clauseformat\endcsname\@firstofone + \protected@edef\@tempa{#3}% + \@onelevel@sanitize\@tempa + \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax + \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}% + \else + \edef\@tempa{\endgroup + \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}% + \fi + \@tempa +} +\AtBeginDocument{% + \if@filesw + \immediate\write\@auxout{% + \string\providecommand*\string\newmaxpar[3]{} + }% + \fi +} +%%% --- docstrip run: final --- +\endinput +%% +%% End of file `contract.sty'. |