summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
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/tcolorbox/tcbtheorems.code.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/tcolorbox/tcbtheorems.code.tex')
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex175
1 files changed, 175 insertions, 0 deletions
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
new file mode 100644
index 0000000000..06ce9c04a5
--- /dev/null
+++ b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
@@ -0,0 +1,175 @@
+%% The LaTeX package tcolorbox - version 4.20 (2019/03/02)
+%% tcbtheorems.code.tex: Code for theorems in colorboxes
+%%
+%% -------------------------------------------------------------------------------------------
+%% Copyright (c) 2006-2019 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% -------------------------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of all files listed in README
+%%
+%\makeatletter
+\tcb@set@library@version{4.20}
+
+\RequirePackage{amsmath}
+
+\def\tcb@hack@amsmath{\tcb@hack@currenvir\vskip-\abovedisplayskip}
+
+\def\tcb@theo@form@namenumber#1#2{\hbox{#1~#2}}
+\def\tcb@theo@form@numbername#1#2{\hbox{#2~#1}}
+\def\tcb@theo@form@name#1#2{\hbox{#1}}
+
+\def\tcb@theo@desc@form@std#1{\tcb@desc@col\kvtcb@desc@font\kvtcb@desc@delim@left#1\kvtcb@desc@delim@right}
+
+\def\tcb@theo@title#1#2#3{%
+ \ifdefempty{#2}{\setbox\z@=\color@hbox#1\color@endbox}{\setbox\z@=\tcb@theo@form{#1}{#2}}%
+ \def\temp@a{#3}%
+ \ifx\temp@a\@empty\relax%
+ \unhbox\z@\kvtcb@terminatorsign%
+ \else%
+ \setbox\z@=\hbox{\unhbox\z@\kvtcb@separatorsign\ }%
+ \hangindent\wd\z@%
+ \hangafter=1%
+ \mbox{\unhbox\z@}{\tcb@theo@desc@form{#3}}\kvtcb@terminatorsign%
+ \fi%
+}
+
+\def\tcb@theo@listentry#1#2#3{%
+ \def\kvtcb@listentry{\protect\numberline{#2}#3}%
+}
+
+\def\tcb@theo@label#1#2{%
+ \def\temp@a{#2}%
+ \ifx\temp@a\@empty%
+ \else%
+ \tcbset{label={#1\kvtcb@label@sep#2},%
+ tcb@theo@full@label@supp={#1\kvtcb@label@sep#2},tcb@theo@label@supp={#2}}%
+ \fi%
+}
+
+\if@fleqn%
+\tcbset{%
+ ams equation upper/.style={before upper*=\tcb@hack@amsmath\equation,after upper*=\endequation},%
+ ams equation lower/.style={before lower*=\tcb@hack@amsmath\equation,after lower*=\endequation},%
+ ams equation* upper/.style={before upper*=\tcb@hack@amsmath\csname equation*\endcsname,after upper*=\endequation},%
+ ams equation* lower/.style={before lower*=\tcb@hack@amsmath\csname equation*\endcsname,after lower*=\endequation}%
+}%
+\else%
+\tcbset{%
+ ams equation upper/.style={before upper*=\tcb@hack@currenvir\equation,after upper*=\endequation},%
+ ams equation lower/.style={before lower*=\tcb@hack@currenvir\equation,after lower*=\endequation},%
+ ams equation* upper/.style={before upper*=\tcb@hack@currenvir\csname equation*\endcsname,after upper*=\endequation},%
+ ams equation* lower/.style={before lower*=\tcb@hack@currenvir\csname equation*\endcsname,after lower*=\endequation},%
+}%
+\fi
+
+\tcbset{
+ theorem/.style args={#1#2#3#4}{%
+ step and label={#2}{#4},%
+ title={\letcs\tcb@temp{the#2}\tcb@theo@title{#1}{\tcb@temp}{#3}}},%
+ math upper/.style={before upper*=$\displaystyle,after upper*=$},%
+ math lower/.style={before lower*=$\displaystyle,after lower*=$},%
+ math/.style={math upper,math lower},%
+ ams equation/.style={ams equation upper,ams equation lower},%
+ ams equation*/.style={ams equation* upper,ams equation* lower},%
+ ams align upper/.style={before upper*=\tcb@hack@amsmath\align,after upper*=\endalign},%
+ ams align lower/.style={before lower*=\tcb@hack@amsmath\align,after lower*=\endalign},%
+ ams align/.style={ams align upper,ams align lower},%
+ ams align* upper/.style={before upper*=\tcb@hack@amsmath\csname align*\endcsname,after upper*=\endalign},%
+ ams align* lower/.style={before lower*=\tcb@hack@amsmath\csname align*\endcsname,after lower*=\endalign},%
+ ams align*/.style={ams align* upper,ams align* lower},%
+ ams gather upper/.style={before upper*=\tcb@hack@amsmath\gather,after upper*=\endgather},%
+ ams gather lower/.style={before lower*=\tcb@hack@amsmath\gather,after lower*=\endgather},%
+ ams gather/.style={ams gather upper,ams gather lower},%
+ ams gather* upper/.style={before upper*=\tcb@hack@amsmath\csname gather*\endcsname,after upper*=\endgather},%
+ ams gather* lower/.style={before lower*=\tcb@hack@amsmath\csname gather*\endcsname,after lower*=\endgather},%
+ ams gather*/.style={ams gather* upper,ams gather* lower},%
+ ams nodisplayskip upper/.style={before upper=\vskip-\abovedisplayskip},%
+ ams nodisplayskip lower/.style={before lower=\vskip-\abovedisplayskip},%
+ ams nodisplayskip/.style={ams nodisplayskip upper,ams nodisplayskip lower},%
+ highlight math style/.style={highlight math/.style={notitle,nophantom,#1}},%
+ separator sign/.store in=\kvtcb@separatorsign,%
+ separator sign colon/.style={separator sign={:}},%
+ separator sign dash/.style={separator sign={\ --}},%
+ separator sign none/.style={separator sign=},%
+ terminator sign/.store in=\kvtcb@terminatorsign,%
+ terminator sign colon/.style={terminator sign={:}},%
+ terminator sign dash/.style={terminator sign={\ --}},%
+ terminator sign none/.style={terminator sign=},%
+ label separator/.store in=\kvtcb@label@sep,%
+ description delimiters/.code 2 args={\def\kvtcb@desc@delim@left{#1}\def\kvtcb@desc@delim@right{#2}},%
+ description delimiters parenthesis/.style={description delimiters=()},
+ description delimiters none/.style={description delimiters={}{}},
+ description color/.code={\def\temp@a{#1}\ifx\temp@a\@empty\relax%
+ \def\tcb@desc@col{}\else\def\tcb@desc@col{\color{#1}}\fi},%
+ description color/.default=,
+ description font/.store in=\kvtcb@desc@font,
+ description font/.default=,
+ description formatter/.code={\let\tcb@theo@desc@form=#1},%
+ description formatter/.default={\tcb@theo@desc@form@std},%
+ theorem name and number/.code={\let\tcb@theo@form=\tcb@theo@form@namenumber},
+ theorem number and name/.code={\let\tcb@theo@form=\tcb@theo@form@numbername},
+ theorem name/.code={\let\tcb@theo@form=\tcb@theo@form@name},
+ theorem style/.is choice,
+ theorem style/standard/.style={separator sign colon,description delimiters none,
+ terminator sign none,theorem name and number,attach title},
+ theorem style/change standard/.style={theorem style=standard,theorem number and name},
+ theorem style/plain/.style={separator sign none,description delimiters parenthesis,
+ terminator sign colon,theorem name and number,attach title to upper={\ }},
+ theorem style/plain apart/.style={separator sign none,description delimiters parenthesis,
+ terminator sign none,theorem name and number,attach title},
+ theorem style/break/.style={theorem style=plain,attach title to upper={\par}},
+ theorem style/change/.style={theorem style=plain,theorem number and name},
+ theorem style/change apart/.style={theorem style=plain apart,theorem number and name},
+ theorem style/change break/.style={theorem style=break,theorem number and name},
+ theorem style/margin/.style={theorem style=plain,theorem name,before title=\makebox[0pt][r]{\thetcbcounter\ }},
+ theorem style/margin apart/.style={theorem style=margin,attach title,terminator sign none},
+ theorem style/margin break/.style={theorem style=margin,attach title to upper={\par}},
+ theorem label supplement/.style={tcb@theo@label@supp/.style={#1}},
+ theorem full label supplement/.style={tcb@theo@full@label@supp/.style={#1}},
+}
+
+\newcommand{\new@tcbtheorem}[5][]{%
+ \@@newtcolorbox[auto counter,#1]{#2}[3][]{#4,%
+ title={\tcb@theo@title{#3}{\thetcbcounter}{##2}},%
+ list entry={\protect\numberline{\thetcbcounter}##2},%
+ nameref={##2},%
+ code={\tcb@theo@label{#5}{##3}},%
+ ##1}%
+ \@@newtcolorbox[#1,no counter,list inside=]{#2*}[2][]{#4,%
+ title={\tcb@theo@title{#3}{\@empty}{##2}},%
+ ##1}%
+}
+
+\def\newtcbtheorem{\let\@@newtcolorbox\newtcolorbox%
+ \new@tcbtheorem}
+
+\def\renewtcbtheorem{\let\@@newtcolorbox\renewtcolorbox%
+ \new@tcbtheorem}
+
+\newtcbox{\tcboxmath}[1][]{nobeforeafter,math upper,tcbox raise base,#1}
+\newtcbox{\tcbhighmath}[1][]{highlight math,nobeforeafter,math upper,tcbox raise base,#1}
+
+\tcbset{%
+ reset@theorems/.style={%
+ description formatter,description color,description font,
+ highlight math style={colframe=red,colback=yellow!25!white},%
+ theorem style=standard,label separator=:,%
+ theorem label supplement=,theorem full label supplement=,%
+ },
+ initialize@reset=reset@theorems,
+}
+
+% DEPRECATED
+\newcommand{\tcbmaketheorem}[5]{%
+ \newtcolorbox{#1}[3][]{#3,theorem={#2}{#4}{##2}{#5\kvtcb@label@sep##3},##1}%
+}