diff options
author | Karl Berry <karl@freefriends.org> | 2021-12-16 21:16:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-12-16 21:16:03 +0000 |
commit | c1b5f89b5d4beeb4fab27b20b7e3bc6992344d4c (patch) | |
tree | ea34d2df757e53820d32f51ea9c14c6c73ed3a88 /Master/texmf-dist/tex/latex | |
parent | 285b5f61acac3bf7dd8382dc3307939321cc993d (diff) |
tcolorbox (16dec21)
git-svn-id: svn://tug.org/texlive/trunk@61320 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
19 files changed, 485 insertions, 204 deletions
diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index 90724439f47..9b51bcdc38b 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex @@ -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) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{pdfcol} \pdfcolInitStack{tcb@breakable} @@ -912,7 +912,7 @@ } -\def\tcb@init@breakability{% +\def\tcb@init@breakable{% \let\tcb@savebox=\tcb@vbox% \let\endtcb@savebox=\endtcb@vbox% \let\tcb@drawcolorbox=\tcb@drawcolorbox@breakable% @@ -927,16 +927,16 @@ \tcbset{% breakable@true/.code={% - \tcb@init@breakability% + \tcb@isbreakabletrue% \let\tcb@defToTotalHeight=\tcb@defToTotalHeightBreakable}, breakable@unlimited/.code={% - \tcb@init@breakability% + \tcb@isbreakabletrue% \let\tcb@defToTotalHeight=\tcb@defToTotalHeightUnlimited}, breakable/.style={breakable@#1}, breakable/.default=true,% unbreakable/.style={breakable=false},% enforce breakable/.code={% - \tcb@init@breakability% + \tcb@isbreakabletrue% \let\tcb@defToTotalHeight=\tcb@defToTotalHeightBreakable}, title after break/.store in=\kvtcb@followingtitle,% notitle after break/.style={title after break=},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index 0264f5406d6..1c9689d7a76 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex @@ -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) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{listings,skins,xparse,external,raster} @@ -25,6 +25,8 @@ \RequirePackage{refcount}[2011/10/16] \RequirePackage{hyperref}[2012/02/06] \ifdefined\marginnote\else\RequirePackage{marginnote}[2012/03/29]\fi +\IfFileExists{pifont.sty}{}{\tcb@warning{Library 'documentation' may need symbols from package 'pifont' (not installed)}} +\IfFileExists{marvosym.sty}{}{\tcb@warning{Library 'documentation' may need symbols from package 'marvosym' (not installed)}} \definecolor{Option}{rgb}{0.118,0.546,0.222} \definecolor{Definition}{rgb}{0.784,0.06,0.176} @@ -371,7 +373,7 @@ { \tcbset{doc~name=, doc~parameter=, doc~description=, #1} \begin{tcb@manual@entry} - \seq_clear:N \g__tcobox_label_seq + \seq_gclear:N \g__tcobox_label_seq \begin{tcbraster}[raster~columns=1,raster~row~skip=0pt, raster~after~skip=4.1pt,raster~force~size=false,doc@raster@#3] \seq_set_from_clist:Nn \l_tmpa_seq {#2} @@ -391,7 +393,7 @@ \group_end: } \end{tcbraster} - \seq_clear:N \g__tcobox_label_seq + \seq_gclear:N \g__tcobox_label_seq \nobreak \tcbset{before~upper=} \use:c { kvtcb@doc@body@#3@before } diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex index ffddc26eb5f..fedb6fc58cc 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex @@ -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) %% tcbexternal.code.tex: Code for externalization %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{pro@cessing} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex index f3498292edf..d65e520c9bc 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -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) %% tcbfitting.code.tex: Code for fit boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \newdimen\tcbfitdim \newdimen\tcb@lowerfitdim @@ -71,7 +71,21 @@ \def\tcb@@capture@fitbox{% \let\endtcolorbox=\relax% - \Collect@Body\tcbox@inner@fitbox@collected% + \iftcb@wrap@environment% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% + {\begingroup\tcb@hack@currenvir% + \Collect@Body\tcbox@inner@fitbox@collected@for@wrapping}% + {\Collect@Body\tcbox@inner@fitbox@collected}% +} + +\long\def\tcbox@inner@fitbox@collected@for@wrapping#1\end#2{% + \endgroup% + \let\tcb@end@tcolorboxenvironment\relax% + \tcbox@inner@fitbox@collected{#1\end{#2}}% + \end{tcolorbox}% } \def\tcbfontsize#1{\fontsize{#1\tcbfitdim}{#1\dimexpr\kvtcb@fit@skip\tcbfitdim}\selectfont} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index 8337770bdbe..8ae95cee03f 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex @@ -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) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbset{% before upper app/.code={\appto\kvtcb@before@upper{#1}},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex index 992259c371d..b5198624683 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex @@ -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) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{listings}[2007/02/22] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex index 328ba791634..3ec7dd5ae5f 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex @@ -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) %% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{pro@cessing} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index 76cb24dc43a..1f1d771f597 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex @@ -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) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{listings} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex index a5bde8d84aa..ca10489beea 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex @@ -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) %% tcbmagazine.code.tex: Code for box sets and magazine styles %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{breakable} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex index 8417ab97cd2..6c3a2eea6b5 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex @@ -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) %% tcbminted.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,60 +18,128 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{minted}[2011/09/17] % to be removed, if integrated into the minted package (#281) \minted@def@optcl{envname}{-P envname}{#1} +% to be removed, if minted becomes newer than v2.5 (2017/07/19) +% and resolves the package clash with fancyvrb +\ProvideDocumentCommand\tcbTemporaryPatchMintedFancyvrb{}{% + \@ifpackagelater{minted}{2021/12/01}{}{\@ifpackagelater{fancyvrb}{2021/11/19}{% + % patch from muzimuzhi + \RequirePackage{regexpatch}% + \def\minted@use@FancyVerbStartNum{\the\numexpr\FancyVerbStartNum}% + \def\minted@use@FancyVerbStopNum{\the\numexpr\FancyVerbStopNum}% + % patch for fivesum computation + \xpatchcmd*\minted@pygmentize% + {\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi}% + {\minted@use@FancyVerbStartNum}% + {}{}% + \xpatchcmd*\minted@pygmentize% + {\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi}% + {\minted@use@FancyVerbStopNum}% + {}{}% + % patch for option "autogobble" + \xpatchcmd\minted@autogobble% + {\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi}% + {\minted@use@FancyVerbStartNum}% + {}{}% + \xpatchcmd\minted@autogobble% + {\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi}% + {\minted@use@FancyVerbStopNum}% + {}{}% +}{}}} + +\tcbTemporaryPatchMintedFancyvrb + \tcbuselibrary{listings@core} -\def\tcb@minted@input@listing#1#2#3#4{% - \edef\temp@a{#4}% - \ifx\temp@a\@empty% - \else% - \toks@=\expandafter{#4}% - \edef\tcb@temp{\noexpand\usemintedstyle{\the\toks@}}% - \tcb@temp% - \fi% - \ifdefstring{\tcb@listing@capture}{hbox}{% - \toks@=\expandafter{#1,envname=BVerbatim}% - }{% - \toks@=\expandafter{#1}% - }% - \edef\tcb@temp{\noexpand\inputminted[\the\toks@]}% - \IfFileExists{\minted@outputdir#3}% - {\tcb@temp{#2}{\minted@outputdir#3}}% - {\tcb@temp{#2}{#3}}% -} +\ExplSyntaxOn -\def\tcb@minted@uselistinglisting{% - \tcb@minted@input@listing{\kvtcb@minted@options}{\kvtcb@minted@language}{\kvtcb@listingfile}{\kvtcb@minted@style}% -}% +\cs_new_nopar:Npn \__tcobox_minted_input_listing:nnnn #1#2#3#4 + { + \tl_if_empty:nF { #4 } + { + \usemintedstyle { #4 } + } + \tl_set:Nn \l_tmpa_tl { \inputminted[#1 } + \str_if_eq:VnT \tcb@listing@capture { hbox } + { + \tl_put_right:Nn \l_tmpa_tl { ,envname=BVerbatim } + } + \tl_put_right:Nn \l_tmpa_tl { ] } + \file_if_exist:nTF { \minted@outputdir #3 } + { + \l_tmpa_tl { #2 }{ \minted@outputdir #3 } + } + { + \l_tmpa_tl { #2 }{ #3 } + } + } -\def\tcb@minted@usetemplisting{% - \tcb@minted@input@listing{\kvtcb@minted@options}{\kvtcb@minted@language}{\kvtcb@tempfile}{\kvtcb@minted@style}% -}% +\cs_generate_variant:Nn \__tcobox_minted_input_listing:nnnn {VVVV} + + +\cs_new_nopar:Npn \__tcbbox_minted_uselistinglisting: + { + \__tcobox_minted_input_listing:VVVV + \kvtcb@minted@options + \kvtcb@minted@language + \kvtcb@listingfile + \kvtcb@minted@style + } + + +\cs_new_nopar:Npn \__tcbbox_minted_usetemplisting: + { + \__tcobox_minted_input_listing:VVVV + \kvtcb@minted@options + \kvtcb@minted@language + \kvtcb@tempfile + \kvtcb@minted@style + } + + +\cs_new_nopar:Npn \__tcbbox_minted_doc_usetemplisting: + { + \__tcobox_minted_input_listing:VVVV + \kvtcb@docmintoptions + \kvtcb@docminted@language + \kvtcb@tempfile + \kvtcb@docmintstyle + } + + +\tcbset + { + listing~engine/minted/.code= + { + \cs_set_eq:NN \tcbuselistinglisting \__tcbbox_minted_uselistinglisting: + \cs_set_eq:NN \tcbusetemplisting \__tcbbox_minted_usetemplisting: + \cs_set_eq:NN \tcb@doc@usetemplisting \__tcbbox_minted_doc_usetemplisting: + }, + } + +\ExplSyntaxOff -\def\tcb@minted@doc@usetemplisting{% - \tcb@minted@input@listing{\kvtcb@docmintoptions}{\kvtcb@docminted@language}{\kvtcb@tempfile}{\kvtcb@docmintstyle}% -} \tcbset{% minted language/.store in=\kvtcb@minted@language, minted options/.store in=\kvtcb@minted@options, + default@minted@options/.store in=\kvtcb@default@minted@options, + default minted options/.style={default@minted@options={#1},minted options={#1}}, minted style/.store in=\kvtcb@minted@style, - listing engine/minted/.code={\let\tcbuselistinglisting\tcb@minted@uselistinglisting% - \let\tcbusetemplisting\tcb@minted@usetemplisting% - \let\tcb@doc@usetemplisting\tcb@minted@doc@usetemplisting}, } \tcbset{% + default@minted@options={tabsize=2,fontsize=\small,breaklines,autogobble}, reset@minted/.style={% minted language=latex, - minted options={tabsize=2,fontsize=\small,breaklines,autogobble}, + code={\let\kvtcb@minted@options\kvtcb@default@minted@options}, minted style=, listing engine=minted, }, diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex index b61f49a7b25..107d1f7bec7 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex @@ -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) %% tcbposter.code.tex: Code for posters %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{breakable,magazine,skins,fitting} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex index 37fb7d65e71..d23d7838858 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex @@ -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) %% tcbprocessing.code.tex: Code for conditional processing %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{pdftexcmds} \RequirePackage{shellesc} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex index 8905f8a0b6d..350f9494664 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex @@ -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) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,12 +17,18 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \newcounter{tcbrastercolumn} \newcounter{tcbrasterrow} \newcounter{tcbrasternum} \newcounter{tcbraster} +\def\tcb@raster@number{\@arabic\c@tcbraster}% +\def\theHtcbrasternum{\tcb@raster@number.\@arabic\c@tcbrasternum} + +\setcounter{tcbrasternum}{1} +\setcounter{tcbrastercolumn}{1} +\setcounter{tcbrasterrow}{1} \def\tcb@raster@ehg@all{% \tcbset{equal height group={\kvtcb@raster@ehgid}}% @@ -126,6 +132,7 @@ \tcb@layer@pushup% \stepcounter{tcbraster}% \edef\tcb@raster@number{\number\c@tcbraster}% + \edef\tcb@raster@save@num{\number\c@tcbrasternum}% \edef\tcb@raster@save@column{\number\c@tcbrastercolumn}% \edef\tcb@raster@save@row{\number\c@tcbrasterrow}% \let\tcb@raster@change@fitbox\@empty% @@ -179,6 +186,7 @@ \stepcounter{tcbrastercolumn}% \fi},% box align=\kvtcb@raster@valign,% + code={\preto\kvtcb@phantom{\addtocounter{tcbrasternum}{-1}\refstepcounter{tcbrasternum}}},% }% \tcbdimto\tcb@raster@box@width{(\tcb@raster@width+\tcb@raster@xskip-\tcb@raster@skip@left-\tcb@raster@skip@right)/\kvtcb@raster@columns-\tcb@raster@xskip}% \tcb@raster@set@size{% @@ -215,9 +223,9 @@ \addvspace{\glueexpr\tcb@raster@skip@after-\parskip}% \endgroup% \tcb@end@raster% + \setcounter{tcbrasternum}{\tcb@raster@save@num}% \setcounter{tcbrastercolumn}{\tcb@raster@save@column}% \setcounter{tcbrasterrow}{\tcb@raster@save@row}% - \setcounter{tcbrasternum}{\the\numexpr(\c@tcbrasterrow-1)*\kvtcb@raster@columns+\c@tcbrastercolumn\relax}% } \newcommand{\tcbitem@following}[1][]{% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 54517b2ddd8..0aaa34246df 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex @@ -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) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{tikz}[2010/10/13] @@ -1124,7 +1124,7 @@ \fi% \tcbdimto\kvtcb@bottom{\kvtcb@bottom+\kvtcb@yinnershift@boxedtitle}% }, - attach@title@boxed/.style n args={5}{% + attach@title@boxed/.style n args={6}{% detach title, code={\def\tcb@specialtitle@hook{% \ifx\tcbtitletext\@empty\else% @@ -1135,7 +1135,15 @@ \let\tcb@trans@boxedstyle\kvtcb@style@boxedtitle% \setbox\tcb@titlebox\color@hbox\bgroup\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@before@boxedtitle\kvtcb@haligntitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title\kvtcb@after@boxedtitle\egroup\color@endbox% \setbox\tcb@titlebox\color@hbox\tcbox[skin=\tcb@trans@skin@current,colframe=tcbtranscol@frame,colback=tcbtranscol@back,% - code={\pgfkeysalsofrom\tcb@trans@boxedsize\pgfkeysalsofrom\tcb@trans@boxedstyle}]{\box\tcb@titlebox}\color@endbox% + code={\pgfkeysalsofrom\tcb@trans@boxedsize\pgfkeysalsofrom\tcb@trans@boxedstyle% + \ifcase#6 + \or% + \global\tcbdimto\tcb@xshift@boxedtitle@delta{\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper}% + \else% + \global\tcbdimto\tcb@xshift@boxedtitle@delta{\kvtcb@right@rule+\kvtcb@boxsep+\kvtcb@rightupper}% + \fi% + }% + ]{\box\tcb@titlebox}\color@endbox% % \tcbdimto\tcboxedtitleheight{\ht\tcb@titlebox+\dp\tcb@titlebox}% \tcbdimto\tcboxedtitlewidth{\wd\tcb@titlebox}% @@ -1143,8 +1151,16 @@ \let\tcb@specialgeonodes@first\relax% \let\tcb@specialgeonodes@middle\relax% \let\tcb@specialgeonodes@last\relax% + \ifcase#6 + \tcbdimto\tcb@xshift@boxedtitle{\kvtcb@xshift@boxedtitle}% + \or% + \tcbdimto\tcb@xshift@boxedtitle{\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper-\tcb@xshift@boxedtitle@delta}% + \else% + \tcbdimto\tcb@xshift@boxedtitle{\tcb@xshift@boxedtitle@delta-(\kvtcb@right@rule+\kvtcb@boxsep+\kvtcb@rightupper)}% + \fi% \def\tcb@specialgeonodes@unbroken{% - \node[#4,name=title,at={([xshift=\kvtcb@xshift@boxedtitle,yshift=\kvtcb@yshift@boxedtitle]frame.#5)}, + \node[#4,name=title,at={([xshift=\tcb@xshift@boxedtitle,yshift=\kvtcb@yshift@boxedtitle]frame.#5)}, + line width=0mm,inner sep=0mm,outer sep=0mm,draw=none,fill=none,rectangle, minimum width=\tcboxedtitlewidth,minimum height=\tcboxedtitleheight]{};}% \cslet{tcb@specialgeonodes@#3}{\tcb@specialgeonodes@unbroken}% \def\tcb@specialgeonodes@hook{\csname tcb@specialgeonodes@\tcb@split@state\endcsname}% @@ -1152,15 +1168,17 @@ \cspreto{tcb@underlay@#3}{\tcb@underlay@boxedtitle\pgftext[at={\pgfpointanchor{title}{center}}]{\box\tcb@titlebox}}% \fi}}% }, - attach@title@boxed@top/.style n args={3}{attach@title@boxed={#1}{top}{first}{#2}{#3}},% - attach@title@boxed@bottom/.style n args={3}{attach@title@boxed={#1}{bottom}{last}{#2}{#3}},% % - attach boxed title to top left/.style={attach@title@boxed@top={#1}{above right}{north west}}, - attach boxed title to top center/.style={attach@title@boxed@top={#1}{above}{north}}, - attach boxed title to top right/.style={attach@title@boxed@top={#1}{above left}{north east}}, - attach boxed title to bottom left/.style={attach@title@boxed@bottom={#1}{below right}{south west}}, - attach boxed title to bottom center/.style={attach@title@boxed@bottom={#1}{below}{south}}, - attach boxed title to bottom right/.style={attach@title@boxed@bottom={#1}{below left}{south east}}, + attach boxed title to top left/.style = {attach@title@boxed={#1}{top}{first}{above right}{north west}{0}}, + attach boxed title to top text left/.style = {attach@title@boxed={#1}{top}{first}{above right}{north west}{1}}, + attach boxed title to top center/.style = {attach@title@boxed={#1}{top}{first}{above}{north}{0}}, + attach boxed title to top text right/.style = {attach@title@boxed={#1}{top}{first}{above left}{north east}{2}}, + attach boxed title to top right/.style = {attach@title@boxed={#1}{top}{first}{above left}{north east}{0}}, + attach boxed title to bottom left/.style = {attach@title@boxed={#1}{bottom}{last}{below right}{south west}{0}}, + attach boxed title to bottom text left/.style = {attach@title@boxed={#1}{bottom}{last}{below right}{south west}{1}}, + attach boxed title to bottom center/.style = {attach@title@boxed={#1}{bottom}{last}{below}{south}{0}}, + attach boxed title to bottom text right/.style = {attach@title@boxed={#1}{bottom}{last}{below left}{south east}{2}}, + attach boxed title to bottom right/.style = {attach@title@boxed={#1}{bottom}{last}{below left}{south east}{0}}, reduce@vertical@rules/.code={% \ifdim\dimexpr\kvtcb@left@rule<\dimexpr\kvtcb@right@rule\relax% \tcbdimto\tcb@temp{\kvtcb@left@rule/2}% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex index beeccff8561..138b4b1bae9 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex @@ -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) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{skins} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex index 3a992cad093..12a415fa4e0 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex @@ -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) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -18,44 +18,218 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \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}} +\ExplSyntaxOn -\def\tcb@theo@desc@form@std#1{\tcb@desc@col\kvtcb@desc@font\kvtcb@desc@delim@left#1\kvtcb@desc@delim@right} +\tl_new:N \l__tcobox_theo_description_color_tl +\tl_new:N \l__tcobox_theo_description_delimiter_left_tl +\tl_new:N \l__tcobox_theo_description_delimiter_right_tl +\tl_new:N \l__tcobox_theo_description_font_tl +\tl_new:N \l__tcobox_theo_hanging_indent_tl +\tl_new:N \l__tcobox_theo_label_separator_tl +\tl_new:N \l__tcobox_theo_separatorsign_tl +\tl_new:N \l__tcobox_theo_terminatorsign_tl -\def\tcb@theo@title@indent@std#1{\hangindent#1\hangafter=1\relax} -\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\ }% - \tcb@theo@title@indent{\wd\z@}% - \mbox{\unhbox\z@}{\tcb@theo@desc@form{#3}}\kvtcb@terminatorsign% - \fi% -} +\cs_new_nopar:Npn \__tcobox_theo_format_name_number:nn #1#2 + { + \tl_if_empty:nTF { #1 } + { + #2 + } + { + #1 + \tl_if_empty:nF { #2 } + { + \nobreakspace + #2 + } + } + } -\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% -} +\cs_new_nopar:Npn \__tcobox_theo_format_number_name:nn #1#2 + { + \__tcobox_theo_format_name_number:nn { #2 } { #1 } + } + + +\cs_new:Npn \__tcobox_theo_format_description_standard:n #1 + { + \l__tcobox_theo_description_color_tl + \l__tcobox_theo_description_font_tl + \l__tcobox_theo_description_delimiter_left_tl + #1 + \l__tcobox_theo_description_delimiter_right_tl + } + + +\cs_new:Npn \__tcobox_theo_title:nnn #1#2#3 + { + % format and save display name and number + \tl_set:Nx \l_tmpa_tl { \__tcobox_theo_format:nn{#1}{#2} } + \tl_if_empty:nTF { #3 } + { + % no theorem title; insert name and number + \l_tmpa_tl + \l__tcobox_theo_terminatorsign_tl + } + { + % box display name and number + \tl_if_empty:NTF \l_tmpa_tl + { + \box_clear:N \l_tmpa_box + } + { + \hbox_set:Nn \l_tmpa_box + { + \tl_use:N \l_tmpa_tl + \l__tcobox_theo_separatorsign_tl + \nobreakspace + } + } + % set (hanging) indent for name and number + \str_if_eq:VnTF \l__tcobox_theo_hanging_indent_tl { auto } + { + \hangindent \box_wd:N \l_tmpa_box + \hangafter = 1 + } + { + \dim_set:Nn \l_tmpa_dim { \l__tcobox_theo_hanging_indent_tl } + \if_dim:w \l_tmpa_dim = \c_zero_dim + \else: + \if_dim:w \l_tmpa_dim > \c_zero_dim + \hangindent \l_tmpa_dim + \hangafter = 1 + \else: + \hangindent -\l_tmpa_dim + \hangafter = -1 + \fi: + \fi: + } + % insert box with name and number + \mode_leave_vertical: + \box_use_drop:N \l_tmpa_box + % insert formated title + \group_begin: + \__tcobox_theo_format_description:n{#3} + \group_end: + \l__tcobox_theo_terminatorsign_tl + } + } + + +\NewDocumentCommand \new@tcbtheorem { O{} m m +m m } + { + \@@newtcolorbox[auto~counter,#1]{#2}[3][] + { + #4, + title = {\__tcobox_theo_title:nnn{#3}{\thetcbcounter}{##2}}, + list~entry = {\protect\numberline{\thetcbcounter}##2}, + nameref = {##2}, + theo@label = {#5}{##3}, + ##1 + } + \@@newtcolorbox[#1,no~counter,list~inside=]{#2*}[2][] + { + #4, + title = {\__tcobox_theo_title:nnn{#3}{}{##2}}, + ##1 + } + } + + +\NewDocumentCommand \newtcbtheorem {} + { + \cs_set_eq:NN \@@newtcolorbox \newtcolorbox + \new@tcbtheorem + } + + +\NewDocumentCommand \renewtcbtheorem {} + { + \cs_set_eq:NN \@@newtcolorbox \renewtcolorbox + \new@tcbtheorem + } + + +\tcbset + { + theo@label/.code~n~args = {2} + { + \tl_if_empty:nF { #2 } + { + \tcbset + { + label = {#1\l__tcobox_theo_label_separator_tl#2}, + tcb@theo@full@label@supp = {#1\l__tcobox_theo_label_separator_tl#2}, + tcb@theo@label@supp = {#2} + } + } + }, + theorem/.style~n~args = {4} + { + step~and~label={#2}{#4}, + title={\__tcobox_theo_title:nnn{#1}{\cs:w the#2\cs_end:}{#3}} + }, + theorem~name~and~number/.code = + { + \cs_set_eq:NN \__tcobox_theo_format:nn \__tcobox_theo_format_name_number:nn + }, + theorem~number~and~name/.code = + { + \cs_set_eq:NN \__tcobox_theo_format:nn \__tcobox_theo_format_number_name:nn + }, + theorem~name/.code = + { + \cs_set_eq:NN \__tcobox_theo_format:nn \use_i:nn + }, + theorem~number/.code = + { + \cs_set_eq:NN \__tcobox_theo_format:nn \use_ii:nn + }, + separator~sign/ .tl_set:N = \l__tcobox_theo_separatorsign_tl, + terminator~sign/ .tl_set:N = \l__tcobox_theo_terminatorsign_tl, + label~separator/ .tl_set:N = \l__tcobox_theo_label_separator_tl, + theorem~hanging~indent/ .tl_set:N = \l__tcobox_theo_hanging_indent_tl, + theorem~hanging~indent/.default=auto, + description~delimiters/.code~n~args = {2} + { + \tl_set:Nn \l__tcobox_theo_description_delimiter_left_tl { #1 } + \tl_set:Nn \l__tcobox_theo_description_delimiter_right_tl { #2 } + }, + description~color/.code = + { + \tl_if_empty:nTF { #1 } + { + \tl_clear:N \l__tcobox_theo_description_color_tl + } + { + \tl_set:Nn \l__tcobox_theo_description_color_tl { \color{#1} } + } + }, + description~color/.default=, + description~font/.tl_set:N = \l__tcobox_theo_description_font_tl, + description~font/.default =, + description~formatter/.code = + { + \cs_set_eq:NN \__tcobox_theo_format_description:n #1 + }, + description~formatter/.default = \__tcobox_theo_format_description_standard:n, + } + +\ExplSyntaxOff + + +\newtcbox{\tcboxmath}[1][]{nobeforeafter,math upper,tcbox raise base,#1} +\newtcbox{\tcbhighmath}[1][]{highlight math,nobeforeafter,math upper,tcbox raise base,#1} + + +\def\tcb@hack@amsmath{\tcb@hack@currenvir\vskip-\abovedisplayskip} \if@fleqn% \tcbset{% @@ -74,9 +248,6 @@ \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},% @@ -98,28 +269,14 @@ 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 dash/.style={separator sign={\nobreakspace --}},% 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 dash/.style={terminator sign={\nobreakspace --}},% terminator sign none/.style={terminator sign=},% - label separator/.store in=\kvtcb@label@sep,% - description delimiters/.code n args={2}{\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}, @@ -137,45 +294,8 @@ 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}}, - theorem hanging indent/.code={% - \ifstrequal{#1}{auto}{% - \let\tcb@theo@title@indent\tcb@theo@title@indent@std% - }{% - \def\tcb@theo@title@indent##1{% - \ifdim#1=0pt\relax% - \else% - \ifdim#1>0pt\relax% - \hangindent#1\hangafter=1\relax% - \else% - \hangindent\dimexpr-#1\relax\hangafter=-1\relax% - \fi% - \fi - }% - }% - }, - theorem hanging indent/.default=auto, -} - -\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={% @@ -188,7 +308,3 @@ initialize@reset=reset@theorems, } -% DEPRECATED -\newcommand{\tcbmaketheorem}[5]{% - \newtcolorbox{#1}[3][]{#3,theorem={#2}{#4}{##2}{#5\kvtcb@label@sep##3},##1}% -} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex index 2dd113a57c8..56a837171e0 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex @@ -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) %% tcbvignette.code.tex: Code for ornamental frames %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \tcbuselibrary{skins} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex index e07be17169f..cdefe0ab270 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex @@ -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) %% tcbxparse.code.tex: Code for xparse features %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{4.51} +\tcb@set@library@version{5.0.0} \RequirePackage{xparse}[2013/12/31] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty index 47a03bc0cbc..a60f658eb30 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty +++ b/Master/texmf-dist/tex/latex/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 |