diff options
Diffstat (limited to 'macros/latex/contrib/tcolorbox/tcolorbox.sty')
-rw-r--r-- | macros/latex/contrib/tcolorbox/tcolorbox.sty | 140 |
1 files changed, 96 insertions, 44 deletions
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty index be2dc7e19b..23f0d51569 100644 --- a/macros/latex/contrib/tcolorbox/tcolorbox.sty +++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) +%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- @@ -17,11 +17,12 @@ %% %% This work consists of all files listed in README %% -\NeedsTeXFormat{LaTeX2e}[2021-11-15] -\ProvidesPackage{tcolorbox}[2024/01/10 version 6.2.0 text color boxes] -\def\tcb@version{6.2.0} +\NeedsTeXFormat{LaTeX2e}[2023-11-01] +\ProvidesPackage{tcolorbox}[2024/07/10 version 6.3.0 text color boxes] +\def\tcb@version{6.3.0} -\RequirePackage{pgf}[2008/01/15] +%\RequirePackage{pgf}[2008/01/15] +\RequirePackage{tikz}[2023/01/15] \RequirePackage{verbatim}[2003/08/22] \RequirePackage{environ}[2013/04/01] \RequirePackage{etoolbox}[2011/01/03] @@ -57,6 +58,7 @@ \ExplSyntaxOn \bool_new:N \l__tcobox_prevent_init_overwrite_bool +\bool_new:N \l__tcobox_savebox_construction_bool \box_new:N \l__tcobox_tmpa_box \dim_new:N \l__tcobox_tmpa_dim \fp_new:N \l__tcobox_tmpa_fp @@ -561,7 +563,7 @@ toggle left and right/evenpage/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@evenpage\tcbset{check odd page}}, toggle left and right/forced/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@forced}, toggle left and right/.default=evenpage, - graphical environment/.store in=\kvtcb@graphenv, + graphical environment/.style=,% deprecated % frame engine/.is choice, frame engine/standard/.style={frame code=\tcb@drawframe@standard}, @@ -1003,22 +1005,13 @@ IfBooleanF/.code~n~args={2}{\IfBooleanF{#1}{\pgfkeysalso{#2}}}, } -\IfFormatAtLeastTF{2023-06-01} - { - \def\tcb@set@parbox@indent@{ - \exp_args:Nne \hook_gput_next_code:nn {para/begin} - { \__tcobox_set_parbox_indent:n { \thetcolorboxnumber } } - \let\tcb@set@parbox@indent\@empty - } - } - { - % Note: To be removed in future - \def\tcb@set@parbox@indent@{ - \vspace{-\parskip} - \noindent - \let\tcb@set@parbox@indent\@empty - } - } + +\def\tcb@set@parbox@indent@{ + \exp_args:Nne \hook_gput_next_code:nn {para/begin} + { \__tcobox_set_parbox_indent:n { \thetcolorboxnumber } } + \let\tcb@set@parbox@indent\@empty +} + \cs_new_protected:Npn \__tcobox_set_parbox_indent:n #1 { @@ -1027,12 +1020,20 @@ { \int_compare_p:nNn { #1 } = { \thetcolorboxnumber } } % and if inside a "tcb@savebox" env (upper or lower part is non-empty), % hence not at the time of using saved \tcb@upperbox or \tcb@lowerbox - { \cs_if_exist_p:N \tcbbreak } + { \l__tcobox_savebox_construction_bool } { \OmitIndent } } + +\def\tcb@set@savebox@construction@true + { + \bool_set_true:N \l__tcobox_savebox_construction_bool + } +\bool_set_false:N \l__tcobox_savebox_construction_bool + + \ExplSyntaxOff \def\tcb@parbox@true@indent{}% @@ -1045,6 +1046,7 @@ \let\tcb@parboxrestore=\@parboxrestore \def\tcb@parbox@false@settings{% + \@nobreakfalse% \let\par\@@par% \linewidth\hsize% \@totalleftmargin\z@% @@ -1082,6 +1084,7 @@ \reserved@a \@endpefalse% \global\@newlistfalse% + \tcb@set@savebox@construction@true% \let\tcbbreak\@@par% \csname tcb@parbox@use@\kvtcb@parbox\endcsname% \tcb@minipage{#2}% @@ -2025,17 +2028,42 @@ \fi% } -\def\tcb@drawing@env@begin{% - \csname tcb@before@\tcb@split@state\endcsname% - \begin{\kvtcb@graphenv}% - \tcb@bbdraw% - \tcb@apply@graph@patches% -} -\def\tcb@drawing@env@end{% - \end{\kvtcb@graphenv}% - \csname tcb@after@\tcb@split@state\endcsname% -} +\let\tcb@tikz@option@hook\@empty +\let\tcb@tikz@begin@hook\@empty +\let\tcb@tikz@end@hook\@empty + +\ExplSyntaxOn + +\NewSocket{tagsupport/tcb/drawing/begin}{0} +\NewSocket{tagsupport/tcb/drawing/end}{0} +\NewSocketPlug{tagsupport/tcb/drawing/begin}{suspend} + {\tag_mc_end_push:\tag_mc_begin:n{artifact}} +\NewSocketPlug{tagsupport/tcb/drawing/end}{resume} + {\tag_mc_end:\tag_mc_begin_pop:n{}} +\AssignSocketPlug{tagsupport/tcb/drawing/begin}{suspend} +\AssignSocketPlug{tagsupport/tcb/drawing/end}{resume} + +\NewDocumentEnvironment{ tcb@drawing }{ } + { + \use:c{ tcb@before@\tcb@split@state } + \exp_last_unbraced:NnNo \begin{tikzpicture}[\tcb@tikz@option@hook] + \UseTaggingSocket{tcb/drawing/begin} + \SuspendTagging{tcb/drawing} + \tcb@tikz@begin@hook + \tcb@bbdraw + \tcb@apply@graph@patches + } + { + \tcb@tikz@end@hook + \ResumeTagging{tcb/drawing} + \UseTaggingSocket{tcb/drawing/end} + \end{tikzpicture} + \use:c{ tcb@after@\tcb@split@state } + } + +\ExplSyntaxOff + \def\tcb@set@normal@unbroken@beforeafter{% \let\tcb@before@unbroken=\kvtcb@beforebox% @@ -2077,7 +2105,8 @@ \tcb@ch% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% \tcbdimto\tcbtextheight{\tcb@innerheight-\kvtcb@boxsep*2-\kvtcb@top-\kvtcb@bottom}% - \tcb@drawing@env@begin% + \begin{tcb@drawing}% + %\tcb@drawing@env@begin% \pgfsetbaseline{\the\dimexpr\kvtcb@baseline-\kvtcb@bbbottom\relax}% \tcb@extensions@preframe% % draw frame and interior @@ -2097,7 +2126,8 @@ \tcb@tdraw@upper% \iftcb@hasLower\tcb@tdraw@lower\fi% \tcb@extensions@final% - \tcb@drawing@env@end% + %\tcb@drawing@env@end% + \end{tcb@drawing}% } \let\tcb@drawcolorbox@standalone=\tcb@drawcolorbox @@ -2255,6 +2285,9 @@ } \def\tcb@proc@counter@auto#1{% + \ifcsdef{c@tcb@cnt@#1} + {\tcb@error{Auto counter for environment '#1' already defined}{}} + {}% \newcounter{tcb@cnt@#1}% \csxdef{tcb@cnt@#1}{tcb@cnt@#1}% \tcb@proc@counter@autoanduse{#1}% @@ -2297,6 +2330,33 @@ \ExplSyntaxOn +\prg_new_conditional:Npnn \__tcobox_if_single_cs:n #1 { p, TF } + { + \bool_lazy_and:nnTF + { \tl_if_single_p:n { #1 } } + { \token_if_cs_p:N #1 } + { \prg_return_true: } + { \prg_return_false: } + } + +\msg_new:nnn { tcolorbox } { invalid-box-name } + { + Invalid~box~name~`` \tl_to_str:n {#1} ''.~ + A~single~command~is~expected~after~space~trimming.~ + I'll~drop~this~box~definition. + } + +\cs_new:Npn \__tcobox_set_backslash_removed:Nn #1#2 + { + \__tcobox_if_single_cs:nTF { #2 } + { + \tl_set:Ne #1 { \exp_last_unbraced:Ne \cs_to_str:N { \tl_trim_spaces:n { #2 } } } + } + { + \msg_error:nnn { tcolorbox } { invalid-box-name } { #2 } + } + } + \cs_new:Npn \__tcobox_process_newtcolorbox:nn #1#2 { \bool_lazy_and:nnF @@ -2312,14 +2372,6 @@ } -\cs_new:Npn \__tcobox_set_backslash_removed:Nn #1#2 - { - \tl_set:Nn #1 { #2 } - \tl_trim_spaces:N #1 - \tl_set:Ne #1 { \exp_last_unbraced:NV \cs_to_str:N #1 } - } - - \NewDocumentCommand \__tcobox_new_tcolorbox:w { m +O{} >{\TrimSpaces} m o +o +m } { \__tcobox_process_newtcolorbox:nn { #2 }{ #3 } @@ -2740,7 +2792,7 @@ \tcb@new@skin{standard}{frame engine=standard,interior titled engine=standard, interior engine=standard,segmentation engine=standard,title engine=standard, - graphical environment=pgfpicture,geometry nodes=false, + geometry nodes=false, set@extensions@preframe=,set@extensions@postframe={\tcb@apply@overlay},set@extensions@final=,% set@outerboundary=\tcb@boundaryframe@standard,% shape@of@skin=unbroken, |