%% %% This is file `coolthms.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% coolthms.dtx %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from coolthms.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file coolthms.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.) \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{coolthms}[2013/02/04 v1.2 Theorem markup and advanced referencing] \let\Finv\@undefined \let\Game\@undefined \let\beth\@undefined \let\gimel\@undefined \let\daleth\@undefined \RequirePackage{amssymb} \RequirePackage{hyperref} \RequirePackage{etoolbox} \RequirePackage{scrbase} % for \ifstr string comparison macro \RequirePackage{letltxmacro} \RequirePackage{ifthen} \RequirePackage{xargs} \RequirePackage{kvoptions} \@ifpackageloaded{amsmath} {\RequirePackage[thmmarks,amsmath,hyperref]{ntheorem}} {\RequirePackage[thmmarks,hyperref]{ntheorem}} \RequirePackage{cleveref} \begingroup \catcode`\#=12 \gdef\ctp@hashchar{#}% \endgroup \@ifundefined{proofname}{\newcommand{\proofname}{Proof}}{} \let\ctp@temp\proofname\relax \AtBeginDocument{\edef\ctp@temp{\proofname}% \apptocmd{\select@language}{\edef\ctp@temp{\proofname}}{}{}} \AfterEndEnvironment{proof}{\gdef\proofname{\ctp@temp}} \DeclareStringOption[\ctp@temp]{proofname} \DeclareStringOption[$\Box$]{proofsymbol} \DeclareStringOption[\it]{proofcaptionstyle} \DeclareStringOption[\coolthms@indent]{proofindent} \DeclareStringOption[:]{separator} \DeclareStringOption[0em]{indent} \DeclareStringOption[0pt]{minskip} \DeclareStringOption[6pt]{maxskip} \DeclareBoolOption{externalchapters} \DeclareLocalOptions{separator,indent,minskip,maxskip% proofname,proofsymbol,proofcaptionstyle,proofindent,externalchapters} \ProcessKeyvalOptions* \@ifundefined{c@chapter}{% \newcounter{chapter}% \setcounter{chapter}{1}% }{}% \ifcoolthms@externalchapters \renewcommand{\thechapter}{\Roman{chapter}} \renewcommand{\thesection}{\arabic{section}} \def\refstepcounter@noarg#1{% \cref@old@refstepcounter{#1}% \cref@constructprefix{#1}{\cref@result}% \@ifundefined{cref@#1@alias}% {\def\@tempa{#1}}% {\def\@tempa{\csname cref@#1@alias\endcsname}}% \edef\chapter@current@value{\the\value{chapter}} \protected@edef\cref@currentlabel{% [\@tempa][\arabic{#1}][\cref@result]% \string\ifstr{\string\the\string\value{chapter}}% {\chapter@current@value}{\string\relax}{\thechapter.}% \csname p@#1\endcsname\csname the#1\endcsname} \protected@edef\cref@old@currentlabel{% [\@tempa][\arabic{#1}][\cref@result]% \csname p@#1\endcsname\csname the#1\endcsname} \ifstr{\@tempa}{chapter}{\protected@edef\cref@currentlabel{\cref@old@currentlabel}}{}} \def\refstepcounter@optarg[#1]#2{% \cref@old@refstepcounter{#2}% \cref@constructprefix{#2}{\cref@result}% \edef\chapter@current@value{\the\value{chapter}} \protected@edef\cref@currentlabel{% [#1][\arabic{#2}][\cref@result]% \string\ifstr{\string\the\string\value{chapter}}% {\chapter@current@value}{\string\relax}{\thechapter.}% \csname p@#2\endcsname\csname the#2\endcsname} \protected@edef\cref@old@currentlabel{% [#1][\arabic{#2}][\cref@result]% \csname p@#2\endcsname\csname the#2\endcsname} \ifstr{#1}{chapter}{\protected@edef\cref@currentlabel{\cref@old@currentlabel}}{}} \def\ctp@label@noarg#1{% \letcs{\mycurrentlabel}{@currentlabel} \expandafter\def\csname @currentlabel\endcsname{\string\ifstr% {\string\the\string\value{chapter}}{\the\value{chapter}}% {\string\relax}{\thechpt}\mycurrentlabel} \label@noarg{#1} \cslet{@currentlabel}{\mycurrentlabel} }% \def\ctp@label@optarg[#1]#2{% \letcs{\mycurrentlabel}{@currentlabel} \expandafter\def\csname @currentlabel\endcsname{\string\ifstr% {\string\the\string\value{chapter}}{\the\value{chapter}}% {\string\relax}{\thechpt}\mycurrentlabel} \label@optarg[#1]{#2} \cslet{@currentlabel}{\mycurrentlabel} \def\label{\@ifnextchar[\ctp@label@optarg\ctp@label@noarg}%] } \else % belongs to \ifcoolthms@externalchapters \fi \newtheoremstyle{keinenummern}% {\item[\hskip\labelsep\theorem@headerfont ##1\theorem@separator]}% {\item[\hskip\labelsep\theorem@headerfont ##1\ % {\normalfont(##3)}\theorem@separator]} \newtheoremstyle{mitnummern}% {\item[\hskip\labelsep\theorem@headerfont ##1\ ##2\theorem@separator]}% {\item[\hskip\labelsep\theorem@headerfont ##1\ ##2\ % {\normalfont(##3)}\theorem@separator]} \newtheoremstyle{unserbeweis}% {\item[{\hskip\labelsep\theorem@headerfont ##1\theorem@separator}]}% {\item[\hskip\labelsep{\theorem@headerfont ##3\theorem@separator}]} \newcommandx*{\definetheorem}[5][1=thmcnt,3=,5=section]{ \@ifundefined{c@#1}{ \@ifundefined{c@#5}{ \newtheorem{#1}{#1} }{ \newtheorem{#1}{#1}[#5] } }{} \theoremstyle{mitnummern} \newtheorem{#2}[#1]{#4} \theoremstyle{keinenummern} \newtheorem{n#2}[#1]{#4} \ifblank{#3}{ \crefname{#2}{#4}{#4} }{ \crefname{#2}{#4}{#3} } \crefformat{#2}{##2#4~##1##3} \BeforeBeginEnvironment{n#2}{\addtocounter{#1}{-1}} \BeforeBeginEnvironment{#2}{% \addtocounter{#1}{1}% \edef\ctp@labelcode% {ctp@#2@\roman{chapter}@\roman{section}@\arabic{#1}}\relax% \ifcoolthms@externalchapters \immediate\write\@auxout{\string\crefname{\ctp@labelcode}% {#4\noexpand~% \string\ifstr{\string\the\string\value{chapter}}% {\chapter@current@value}{\string\relax}{\thechapter.}% \csname the#1\endcsname}% {#3\noexpand~\csname the#1\endcsname}}\relax% \immediate\write\@auxout{\string\crefformat{\ctp@labelcode}% {\string##2#4\noexpand~% \string\ifstr{\string\the\string\value{chapter}}% {\chapter@current@value}{\string\relax}{\thechapter.}% \csname the#1\endcsname\noexpand~% \ctp@hashchar1\ctp@hashchar3}}\relax% \else \immediate\write\@auxout{\string\crefname{\ctp@labelcode}% {#4\noexpand~\csname the#1\endcsname}% {#4 plural\noexpand~\csname the#1\endcsname}}\relax% \immediate\write\@auxout{\string\crefformat{\ctp@labelcode}% {\string##2#4\noexpand~\csname the#1\endcsname\noexpand~% \ctp@hashchar1\ctp@hashchar3}}\relax% \fi \ifcoolthms@externalchapters \def\Label##1{\cref@old@label{##1}% \protected@edef\cref@currentlabel{% \expandafter\cref@override@label@type% \cref@old@currentlabel\@nil{\ctp@labelcode}}% \protected@write\@auxout{}% {\string\newlabel{##1@cref}{{\cref@currentlabel}{\thepage}}}} \else \edef\Label##1{\noexpand\label[\ctp@labelcode]{##1}}% \fi \addtocounter{#1}{-1} % }% End of \BeforeBeginEnvironment }% End of \newcommandx*{\definetheorem} \newcommandx*{\theoremmarkup}[6][1=\bf,2=\normalfont,3=\relax,% 4=\coolthms@indent,5=\coolthms@separator,6=arabic]{ \theoremheaderfont{\hspace*{-\theorem@indent}#1} \theorembodyfont{#2} \theoremsymbol{#3} \theoremindent#4\relax \theoremseparator{#5} \theoremnumbering{#6} } \crefformat{equation}{#2(#1)#3} \crefformat{chapter}{#2\chaptername~#1#3} \theorempreskipamount\coolthms@minskip plus \coolthms@maxskip\relax \theorempostskipamount\coolthms@minskip plus \coolthms@maxskip\relax \theoremstyle{unserbeweis} \theoremmarkup[\coolthms@proofcaptionstyle][\normalfont]% [\coolthms@proofsymbol][\coolthms@proofindent] \expandafter\newtheorem{proof}{\coolthms@proofname} \theoremmarkup \endinput %% %% End of file `coolthms.sty'.