diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /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.tex | 175 |
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}% +} |