summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/coolthms/coolthms.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/coolthms/coolthms.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/coolthms/coolthms.sty')
-rw-r--r--macros/latex/contrib/coolthms/coolthms.sty206
1 files changed, 206 insertions, 0 deletions
diff --git a/macros/latex/contrib/coolthms/coolthms.sty b/macros/latex/contrib/coolthms/coolthms.sty
new file mode 100644
index 0000000000..a07ebcd602
--- /dev/null
+++ b/macros/latex/contrib/coolthms/coolthms.sty
@@ -0,0 +1,206 @@
+%%
+%% 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'.