summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tcolorbox/tcolorbox.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-17 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2021-12-17 03:01:00 +0000
commit6827f87d3315fc677ae89a9260d455a312a90864 (patch)
tree88318243546c8d29294c2d21d5d7998ccd9d57a4 /macros/latex/contrib/tcolorbox/tcolorbox.sty
parent16b22a983bc0f05cbbb201a6e0f5cbbfc3c8fffb (diff)
CTAN sync 202112170300
Diffstat (limited to 'macros/latex/contrib/tcolorbox/tcolorbox.sty')
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty115
1 files changed, 85 insertions, 30 deletions
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index 47a03bc0cb..a60f658eb3 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%% This work consists of all files listed in README
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tcolorbox}[2021/06/14 version 4.51 text color boxes]
-\def\tcb@version{4.51}
+\ProvidesPackage{tcolorbox}[2021/12/16 version 5.0.0 text color boxes]
+\def\tcb@version{5.0.0}
\RequirePackage{pgf}[2008/01/15]
\RequirePackage{verbatim}[2003/08/22]
@@ -42,6 +42,8 @@
\newif\iftcb@ignorenobreak
\newif\iftcb@checkpage
\newif\iftcb@resetcounteronoverlays
+\newif\iftcb@wrap@environment
+\newif\iftcb@isbreakable
\newbox\tcb@titlebox
\newbox\tcb@upperbox
@@ -90,7 +92,7 @@
\tcbset{autoparskip}%
}
-\def\tcb@hack@currenvir{\edef\tcb@temp{\noexpand\def\noexpand\@currenvir{\kvtcb@savedelimiter}}\tcb@temp}
+\def\tcb@hack@currenvir{\edef\@currenvir{\kvtcb@savedelimiter}}
\def\tcb@sbs@quota@leftwidth{%
\tcbdimto\tcb@w@upper{\kvtcb@sbs@ratio}%
@@ -132,6 +134,13 @@
\pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}}
\pgfkeys{/handlers/.colorlet/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\colorlet{#1}{##1}}}
+\ExplSyntaxOn
+
+\pgfkeys{/handlers/.tl_set:N/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\tl_set:Nn#1{##1}}}
+
+\ExplSyntaxOff
+
+
\newcommand\tcbtitle{\ifx\tcbtitletext\@empty\else%
\leavevmode{\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title}\fi}
@@ -708,15 +717,17 @@
lefthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftratio},
righthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightratio},
breakable@false/.code={%
- \let\tcb@savebox=\tcb@lrbox%
- \let\endtcb@savebox=\endtcb@lrbox%
+ \tcb@isbreakablefalse%
\let\tcb@defToTotalHeight=\tcb@defToTotalHeightStandard%
- \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone%
- \def\tcb@upperdraw@begin@hook{\color{tcbcolupper}}%
- \def\tcb@lowerdraw@begin@hook{\color{tcbcollower}}%
},
code/.code={#1},
- capture/.store in=\kvtcb@capture,%
+ capture/.code={%
+ \def\kvtcb@capture{#1}%
+ \ifcsname tcb@@capture@\kvtcb@capture\endcsname\else%
+ \tcb@error{Unknown capture mode `\kvtcb@capture'. Use `minipage', `hbox', or `fitbox'}{}%
+ \def\kvtcb@capture{minipage}%
+ \fi%
+ },%
hbox/.style={capture=hbox},%
minipage/.style={capture=minipage},%
void/.style={capture=v@@d,capture/.code=,options@for/.code=,code={\def\tcbinputlisting@core{}}},
@@ -808,16 +819,12 @@
verbatim ignore percent/true/.code={\def\tcb@verbatim@change@percent{\catcode`\^^e=9}},
verbatim ignore percent/false/.code={\let\tcb@verbatim@change@percent\@empty},
verbatim ignore percent/.default=true,
+ wrap@environment/.is if=tcb@wrap@environment,
}
\def\kvtcb@beforebox{}
\def\kvtcb@afterbox{}
-\tcbset{%
- autoparskip,minipage,savedelimiter=tcolorbox,%
- set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,%
-}%
-
\def\tcb@set@label#1{%
\ifx\kvtcb@label@type\@empty%
\label{#1}%
@@ -1031,8 +1038,29 @@
}
\def\tcb@@capture@hbox{%
- \let\endtcolorbox=\relax%
- \Collect@Body\tcbox@inner@hbox@collected%
+ \let\endtcolorbox\relax%
+ \iftcb@wrap@environment%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {\begingroup\tcb@hack@currenvir%
+ \Collect@Body\tcbox@inner@hbox@collected@for@wrapping}%
+ {\Collect@Body\tcbox@inner@hbox@collected}%
+}
+
+\long\def\tcbox@inner@hbox@collected@for@wrapping#1\end#2{%
+ \endgroup%
+ \let\tcb@end@tcolorboxenvironment\relax%
+ \tcbox@inner@hbox@collected{#1\end{#2}}%
+ \end{tcolorbox}%
+}
+
+% will be overwritten in `fitting` library
+\def\tcb@@capture@fitbox{%
+ \tcb@error{You need to load `fitting' library to use capture mode `fitbox'}{}%
+ % fallback
+ \tcb@@capture@minipage%
}
% save 'comment' from 'verbatim'
@@ -1055,7 +1083,7 @@
}
\def\tcb@count@boxes{%
- \global\advance\c@tcolorbox@number by 1\relax%
+ \global\advance\c@tcolorbox@number 1\relax%
\edef\thetcolorboxnumber{\number\c@tcolorbox@number}%
\expandafter\ifx\csname tcolorboxpage@\thetcolorboxnumber\endcsname\relax%
\edef\thetcolorboxpage{\number\c@page}%
@@ -1097,10 +1125,10 @@
\def\tcb@managed@layers@max{0}
\def\tcbsetmanagedlayers#1{%
- \setcounter{tcblayer}{\tcb@managed@layers@max}%
+ \global\c@tcblayer\tcb@managed@layers@max\relax%
\ifnum\c@tcblayer<#1\relax%
\loop
- \stepcounter{tcblayer}%
+ \global\advance\c@tcblayer 1\relax%
\newbox\tcb@temp%
\cslet{tcb@footnote@\romannumeral\c@tcblayer}{\tcb@temp}%
\tcbset{every box on layer \number\c@tcblayer/.style={reset,every box}}
@@ -1108,7 +1136,7 @@
\else%
\fi%
\xdef\tcb@managed@layers@max{#1}%
- \setcounter{tcblayer}{0}%
+ \global\c@tcblayer 0\relax%
}
\@onlypreamble\tcbsetmanagedlayers
\tcbsetmanagedlayers{4}%
@@ -1121,7 +1149,7 @@
\def\tcb@layer@inc{%
\tcb@count@boxes%
- \stepcounter{tcblayer}%
+ \global\advance\c@tcblayer 1\relax%
\ifnum\c@tcblayer>1\relax%
\tcbset{breakable@true/.code=}%
\else%
@@ -1138,8 +1166,8 @@
\def\tcb@layer@pushup{%
\tcb@count@boxes%
- \global\advance\c@tcolorbox@number by -1\relax%
- \stepcounter{tcblayer}%
+ \global\advance\c@tcolorbox@number -1\relax%
+ \global\advance\c@tcblayer 1\relax%
\ifnum\c@tcblayer>1\relax%
\tcbset{breakable@true/.code=}%
\else%
@@ -1152,7 +1180,7 @@
\tcbset{every box on layer \number\c@tcblayer}%
\tcbset{every box on layer \number\c@tcblayer/.code=}%
\fi%
- \addtocounter{tcblayer}{-1}%
+ \global\advance\c@tcblayer -1\relax%
}
\def\tcb@layer@dec{%
@@ -1161,17 +1189,34 @@
\expandafter\global\setbox\@mpfootins\box\csname tcb@footnote@\romannumeral\c@tcblayer\endcsname%
\setcounter{mpfootnote}{\csname tcb@footnote@cnt@\romannumeral\c@tcblayer\endcsname}%
\fi%
- \addtocounter{tcblayer}{-1}%
+ \global\advance\c@tcblayer -1\relax%
}
\let\tcbtextheight\tcb@zpt%
+\def\tcb@init@breakable{}
+
+\def\tcb@init@unbreakable{%
+ \let\tcb@savebox=\tcb@lrbox%
+ \let\endtcb@savebox=\endtcb@lrbox%
+ \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone%
+ \def\tcb@upperdraw@begin@hook{\color{tcbcolupper}}%
+ \def\tcb@lowerdraw@begin@hook{\color{tcbcollower}}%
+}%
+
\long\def\tcb@apply@box@options#1{%
\let\tcb@space\tcb@zpt%
\let\tcb@outer@textheight\tcbtextheight%
\let\tcbtextheight\tcb@zpt%
\let\tcbtextwidth\tcb@zpt%
- \tcbset{#1}\tcb@lateoptions@hook\tcb@afteroptions@hook%
+ \tcbset{#1}%
+ \tcb@lateoptions@hook\let\tcb@lateoptions@hook\@empty%
+ \tcb@afteroptions@hook%
+ \iftcb@isbreakable%
+ \tcb@init@breakable%
+ \else%
+ \tcb@init@unbreakable%
+ \fi%
\let\iftcb@minipage\if@minipage%
\let\iftcb@nobreak\if@nobreak%
}
@@ -2041,8 +2086,13 @@
\tcb@process@newenvironment}
\newcommand{\tcolorboxenvironment}[2]{%
- \BeforeBeginEnvironment{#1}{\begin{tcolorbox}[savedelimiter={#1},#2]}%
- \AfterEndEnvironment{#1}{\end{tcolorbox}}%
+ \AddToHook{env/#1/before}{%
+ \begin{tcolorbox}[savedelimiter={#1},#2,wrap@environment,%
+ code={\def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}}]%
+ }%
+ \AddToHook{env/#1/after}{%
+ \tcb@end@tcolorboxenvironment%
+ }%
}
% auxiliary code to remove a leading backspace
@@ -2299,12 +2349,17 @@
list entry=,no label type,
opacityupper=1.0,opacitylower=1.0,opacitytitle=1.0,opacityframe=1.0,opacityback=1.0,@opacitybacktitle=1.0,
subtitle style=,title filled=false,every float=,ignore nobreak=false,before nobreak=\noindent,
- tcbox width=auto,
+ tcbox width=auto,wrap@environment=false,
},
initialize@reset=reset@core,
shield externalize=false,
}
+\tcbset{%
+ autoparskip,minipage,savedelimiter=tcolorbox,%
+ set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,%
+}%
+
\def\tcbsetforeverylayer#1{\tcbset{initialize@reset={#1}}}
% libraries