diff options
author | Karl Berry <karl@freefriends.org> | 2024-01-10 20:44:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-01-10 20:44:04 +0000 |
commit | 20293d1d4fad93b4e31a66c1814c4be459b8b526 (patch) | |
tree | 5a6c4c2ee92a05360c276a27996502bdb5f62e46 /Master/texmf-dist/tex/latex/tcolorbox | |
parent | 9c5953fc6d090a5e9d1b9e7145ea2df9ced77a32 (diff) |
tcolorbox (10jan24)
git-svn-id: svn://tug.org/texlive/trunk@69370 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tcolorbox')
19 files changed, 424 insertions, 311 deletions
diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index cd9e6961b27..90ece8e5a5a 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \RequirePackage{pdfcol} \pdfcolInitStack{tcb@breakable} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index f0463342ced..3eff9746f86 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,9 +17,9 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} -\tcbuselibrary{listings,skins,xparse,external,raster} +\tcbuselibrary{listings,skins,external,raster} \ifdefined\printindex\else% \RequirePackage{makeidx}[2000/03/29]% @@ -198,6 +198,11 @@ keywords bold/.default=true,% keywords bold/true/.code={\let\tcb@doc@bfseries\bfseries}, keywords bold/false/.code={\let\tcb@doc@bfseries\mdseries}, + doc key prefix/.store in=\kvtcb@doc@keyprefix, + index key formatter/.code={\let\kvtcb@doc@format@key=#1}, + index keys formatter/.code={\let\kvtcb@doc@format@keys=#1}, + index key formatter/.default=\@firstofone, + index keys formatter/.default=\@firstofone, } @@ -289,7 +294,7 @@ \NewDocumentCommand{\tcbIndexPrintEnvCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@environment}{\kvtcb@text@env}} \NewDocumentCommand{\tcbIndexPrintEnvC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@environment}} -\NewDocumentCommand{\tcbIndexPrintKeyCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}} +\NewDocumentCommand{\tcbIndexPrintKeyCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}} \NewDocumentCommand{\tcbIndexPrintKeyC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@key}} \NewDocumentCommand{\tcbIndexPrintPathCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@path}{\kvtcb@text@path}} @@ -333,7 +338,7 @@ \ExplSyntaxOn -\cs_new_nopar:Npn \__tcobox_new_bool_key:nn #1 #2 +\cs_new_nopar:Npn \__tcobox_new_bool_key:Nn #1 #2 { \bool_new:N #1 \tcbset @@ -345,15 +350,15 @@ } } -\__tcobox_new_bool_key:nn \l__tcobox_doc_toindex_bool { doc~into~index } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_colors_bool { index~gather~colors } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_commands_bool { index~gather~commands } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_counters_bool { index~gather~counters } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_environments_bool { index~gather~environments } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_keys_bool { index~gather~keys } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_lengths_bool { index~gather~lengths } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_paths_bool { index~gather~paths } -\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_values_bool { index~gather~values } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_toindex_bool { doc~into~index } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_colors_bool { index~gather~colors } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_commands_bool { index~gather~commands } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_counters_bool { index~gather~counters } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_environments_bool { index~gather~environments } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_keys_bool { index~gather~keys } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_lengths_bool { index~gather~lengths } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_paths_bool { index~gather~paths } +\__tcobox_new_bool_key:Nn \l__tcobox_doc_gather_values_bool { index~gather~values } \cs_new_nopar:Npn \__tcobox_sanitize_tl:n #1 @@ -397,7 +402,7 @@ % main documentation environments \seq_new:N \g__tcobox_label_seq - +\seq_new:N \l__tcobox_tmpa_seq \cs_new:Npn \__tcobox_doc_entry_begin:nnn #1#2#3 { @@ -406,12 +411,12 @@ \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} - \seq_if_empty:NT \l_tmpa_seq + \seq_set_from_clist:Nn \l__tcobox_tmpa_seq {#2} + \seq_if_empty:NT \l__tcobox_tmpa_seq { - \seq_put_left:Nn \l_tmpa_seq {} + \seq_put_left:Nn \l__tcobox_tmpa_seq {} } - \seq_map_inline:Nn \l_tmpa_seq + \seq_map_inline:Nn \l__tcobox_tmpa_seq { \group_begin: \tcbset{##1} @@ -460,11 +465,11 @@ { \__tcobox_print_command: \__tcobox_index_command: - \seq_if_in:NVF \g__tcobox_label_seq \kvtcb@doc@label + \seq_if_in:NoF \g__tcobox_label_seq { \kvtcb@doc@label } { \protected@edef\@currentlabel{\noexpand\tcb@cs{\kvtcb@doc@name}} \label{com:\kvtcb@doc@label} - \seq_gput_left:NV \g__tcobox_label_seq \kvtcb@doc@label + \seq_gput_right:No \g__tcobox_label_seq { \kvtcb@doc@label } } {\ttfamily\kvtcb@doc@parameter} \tcb@doc@do@description @@ -522,11 +527,11 @@ { \strut\cs{begin}\brackets{\__tcobox_print_environment:} \__tcobox_index_environment: - \seq_if_in:NVF \g__tcobox_label_seq \kvtcb@doc@label + \seq_if_in:NoF \g__tcobox_label_seq { \kvtcb@doc@label } { \protected@edef\@currentlabel{\kvtcb@doc@name} \label{env:\kvtcb@doc@label} - \seq_gput_left:NV \g__tcobox_label_seq \kvtcb@doc@label + \seq_gput_right:No \g__tcobox_label_seq { \kvtcb@doc@label } } {\ttfamily\kvtcb@doc@parameter}\par \strut{\ttfamily\nobreakspace\nobreakspace}\meta{\kvtcb@text@envcontent}\par @@ -570,7 +575,7 @@ \textcolor{\kvtcb@col@key}{\tcb@doc@bfseries\ttfamily \tl_if_empty:NF \kvtcb@doc@keypath { - /\__tcobox_sanitize_tl:V\kvtcb@doc@keypath/ + \kvtcb@doc@keyprefix\__tcobox_sanitize_tl:V\kvtcb@doc@keypath/ } \__tcobox_sanitize_tl:V\kvtcb@doc@name} } @@ -579,15 +584,15 @@ { \bool_if:NT \l__tcobox_doc_toindex_bool { - \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}} + \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}{\kvtcb@doc@format@key\kvtcb@text@key}} \bool_if:NT \l__tcobox_doc_gather_keys_bool { \tl_if_empty:NTF \kvtcb@doc@keypath { - \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}} + \kvtcb@index@command{\kvtcb@doc@format@keys\kvtcb@text@keys\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}} } { - \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{/\kvtcb@doc@keypath/} + \kvtcb@index@command{\kvtcb@doc@format@keys\kvtcb@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@keyprefix\kvtcb@doc@keypath/} \idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}} } } @@ -600,20 +605,20 @@ \__tcobox_index_key: \tl_if_empty:NTF \kvtcb@doc@keypath { - \seq_if_in:NVF \g__tcobox_label_seq \kvtcb@doc@label + \seq_if_in:NoF \g__tcobox_label_seq { \kvtcb@doc@label } { \protected@edef\@currentlabel{\kvtcb@doc@name} \label{key:\kvtcb@doc@label} - \seq_gput_left:NV \g__tcobox_label_seq \kvtcb@doc@label + \seq_gput_right:No \g__tcobox_label_seq { \kvtcb@doc@label } } } { - \tl_set:Nx \l_tmpa_tl {/\kvtcb@doc@keypath/\kvtcb@doc@label} - \seq_if_in:NVF \g__tcobox_label_seq \l_tmpa_tl + \tl_set:Ne \l__tcobox_tmpa_tl {\kvtcb@doc@keyprefix\kvtcb@doc@keypath/\kvtcb@doc@label} + \seq_if_in:NoF \g__tcobox_label_seq { \l__tcobox_tmpa_tl } { - \protected@edef\@currentlabel{/\kvtcb@doc@keypath/\kvtcb@doc@name} - \label{key:/\kvtcb@doc@keypath/\kvtcb@doc@label} - \seq_gput_left:NV \g__tcobox_label_seq \l_tmpa_tl + \protected@edef\@currentlabel{\kvtcb@doc@keyprefix\kvtcb@doc@keypath/\kvtcb@doc@name} + \label{key:\kvtcb@doc@keyprefix\kvtcb@doc@keypath/\kvtcb@doc@label} + \seq_gput_right:No \g__tcobox_label_seq { \l__tcobox_tmpa_tl } } } {\ttfamily\kvtcb@doc@parameter} @@ -655,17 +660,18 @@ } -\NewDocumentCommand \tcbmakedocSubKey { m m } +\NewDocumentCommand \tcbmakedocSubKey { +O{} m m } { - \NewDocumentEnvironment{#1}{ O{} +O{} m m +m } + \NewDocumentEnvironment{#2}{ O{} +O{} m m +m } { \__tcobox_doc_entry_begin:nnn { - doc@sub@keypath=#2, + doc@sub@keypath=#3, doc~keypath=##1, doc~name={##3}, doc~parameter={##4}, doc~description={##5}, + #1, ##2 } {}{key} @@ -673,27 +679,28 @@ { \__tcobox_doc_entry_end:n { key } } - \NewDocumentEnvironment{#1*}{} + \NewDocumentEnvironment{#2*}{} { \group_begin: \bool_set_false:N \l__tcobox_doc_toindex_bool - \begin{#1} + \begin{#2} } { - \end{#1} + \end{#2} \group_end: } } -\NewDocumentCommand \tcbmakedocSubKeys { m m } +\NewDocumentCommand \tcbmakedocSubKeys { +O{} m m } { - \NewDocumentEnvironment{#1}{ +O{} +m } + \NewDocumentEnvironment{#2}{ +O{} +m } { \__tcobox_doc_entry_begin:nnn { - doc@sub@keypath=#2, + doc@sub@keypath=#3, doc~keypath=, + #1, ##1 } {##2}{key} @@ -725,11 +732,11 @@ { \colFade{\tcb@cs{path~...}}~\__tcobox_print_path: \__tcobox_index_path: - \seq_if_in:NVF \g__tcobox_label_seq \kvtcb@doc@label + \seq_if_in:NoF \g__tcobox_label_seq { \kvtcb@doc@label } { \protected@edef\@currentlabel{\kvtcb@doc@name} \label{path:\kvtcb@doc@label} - \seq_gput_left:NV \g__tcobox_label_seq \kvtcb@doc@label + \seq_gput_right:No \g__tcobox_label_seq { \kvtcb@doc@label } } {\ttfamily\kvtcb@doc@parameter{}~\colFade{...;}} \tcb@doc@do@description @@ -1017,6 +1024,9 @@ index annotate=true, english language, keywords bold, + doc key prefix={/}, + index key formatter, + index keys formatter, } % deprecated diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex index c0159db83fa..0bfa994f68e 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbexternal.code.tex: Code for externalization %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,17 +17,10 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \tcbuselibrary{pro@cessing} -{ -\catcode`\"=12 -\xdef\tcbexternal@normal@dq{"} -\catcode`\"=13 -\gdef\tcbexternal@activate@normal@dq{\let"=\tcbexternal@normal@dq} -} - \long\def\tcbifexternal#1#2{% \ifdefined\TCBEXTERNALINPUT% #1% @@ -65,31 +58,44 @@ \edef\tcbexternal@job@pdf{\expandonce{\tcbexternal@job@name.pdf}}% } -\def\tcbexternal@corecompile{% - \begingroup% - \ifnum\the\catcode`\"=13 \tcbexternal@activate@normal@dq\fi% - \message{=== Compile external '\tcbexternal@job@name': }% - \tcb@allocate@tcb@out% - \immediate\openout\tcb@out="\tcbexternal@run@tex" - \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALINPUT{"\tcbexternal@job@source"}}% - \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALSAFETY{\tcbexternal@safety}}% - \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALPREAMBLE{\expandonce{\tcbexternal@preamble}}}% - \ifdefempty{\tcbexternal@preclass}{}{\immediate\write\tcb@out{\expandonce{\tcbexternal@preclass}}}% - \immediate\write\tcb@out{\string\input{"\jobname.tex"}}% - \immediate\closeout\tcb@out% - \foreach \n in {1,...,\tcbexternal@runs} - {% - \ShellEscape{% - \tcbexternal@compiler\space - -shell-escape - -halt-on-error - -interaction=batchmode - -jobname="\tcbexternal@job@name" - "\tcbexternal@run@tex" - }% - }% - \endgroup% -} +\ExplSyntaxOn +\cs_new_protected:Npn \tcbexternal@corecompile + { + \group_begin: + \char_set_catcode_other:n { `\" } + \iow_term:e { ===~Compile~external~'\tcbexternal@job@name':~ } + \iow_open:Nn \g__tcobox_out_iow { \tcbexternal@run@tex } + \iow_now:Ne \g__tcobox_out_iow + { + \token_to_str:N \gdef \token_to_str:N \TCBEXTERNALINPUT + { "\tcbexternal@job@source" } \iow_newline: + \token_to_str:N \gdef \token_to_str:N \TCBEXTERNALSAFETY + { \tcbexternal@safety } \iow_newline: + \token_to_str:N \gdef \token_to_str:N \TCBEXTERNALPREAMBLE + { \exp_not:o \tcbexternal@preamble } + } + \tl_if_empty:NF \tcbexternal@preclass + { + \iow_now:NV \g__tcobox_out_iow \tcbexternal@preclass + } + \iow_now:Ne \g__tcobox_out_iow + { \token_to_str:N \input {"\jobname.tex"} } + \iow_close:N \g__tcobox_out_iow + \int_step_inline:nn { \tcbexternal@runs } + { + \sys_shell_now:e + { + \tcbexternal@compiler \c_space_tl + -shell-escape~ + -halt-on-error~ + -interaction=batchmode~ + -jobname="\tcbexternal@job@name"~ + "\tcbexternal@run@tex" + } + } + \group_end: + } +\ExplSyntaxOff \def\tcbexternal@compile#1{% \tcbiffileprocess{#1}% @@ -239,22 +245,22 @@ \let\tcbexternal@out@end=\@empty% }, minipage/.code={% - \appto\tcbexternal@out@begin{\immediate\write\tcb@out{\string\begin{minipage}{\the\dimexpr#1\relax}\string\ignorespaces\@percentchar}}% - \preto\tcbexternal@out@end{\immediate\write\tcb@out{\string\end{minipage}\@percentchar}}% + \appto\tcbexternal@out@begin{\tcb@iow@write{\string\begin{minipage}{\the\dimexpr#1\relax}\string\ignorespaces\@percentchar}}% + \preto\tcbexternal@out@end{\tcb@iow@write{\string\end{minipage}\@percentchar}}% }, minipage/.default=\linewidth, % environment with percent/.is choice, environment with percent/true/.style={% /tcb/external/environment/.code={% - \appto\tcbexternal@out@begin{\immediate\write\tcb@out{\string\begin{##1}\@percentchar}}% - \preto\tcbexternal@out@end{\immediate\write\tcb@out{\string\end{##1}\@percentchar}}% + \appto\tcbexternal@out@begin{\tcb@iow@write{\string\begin{##1}\@percentchar}}% + \preto\tcbexternal@out@end{\tcb@iow@write{\string\end{##1}\@percentchar}}% } }, environment with percent/false/.style={% /tcb/external/environment/.code={% - \appto\tcbexternal@out@begin{\immediate\write\tcb@out{\string\begin{##1}}}% - \preto\tcbexternal@out@end{\immediate\write\tcb@out{\string\end{##1}}}% + \appto\tcbexternal@out@begin{\tcb@iow@write{\string\begin{##1}}}% + \preto\tcbexternal@out@end{\tcb@iow@write{\string\end{##1}}}% } }, environment with percent/.default=true, diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex index 118c77fb13d..0e34e15ad5a 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbfitting.code.tex: Code for fit boxes %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \newdimen\tcbfitdim \newdimen\tcb@lowerfitdim @@ -394,8 +394,8 @@ } \NewDocumentCommand \__tcobox_new_tcboxfit_i:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_tcboxfit_ii:w #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_tcboxfit_ii:w #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \newtcboxfit { } { @@ -416,8 +416,8 @@ } \NewDocumentCommand \__tcobox_new_TCBoxFit:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TCBoxFit:Nnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TCBoxFit:Nnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTCBoxFit { } { @@ -448,8 +448,8 @@ } \NewDocumentCommand \__tcobox_new_TotalTCBoxFit:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TotalTCBoxFit:Nnnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TotalTCBoxFit:Nnnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTotalTCBoxFit { } { diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index bdf0a6c9f18..b3edf95636c 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \tcbset{% before upper app/.code={\appto\kvtcb@before@upper{#1}},% @@ -136,3 +136,36 @@ listing options pre/.code={\preto\kvtcb@listingoptions{#1,}}, } +\ExplSyntaxOn +\tcbset { + __environment-app / .style~n~args = { 3 } + { + before~#1~app = { \begin{#2} #3 }, + after~#1~pre = { \end{#2} } + }, + environment~upper~app / .value~required, + environment~lower~app / .value~required, + environment~title~app / .value~required, + environment~upper~app / .style = { __environment-app = {upper}{#1}{ } }, + environment~lower~app / .style = { __environment-app = {lower}{#1}{ } }, + environment~title~app / .style = { __environment-app = {title}{#1}{ } }, + environment~upper~args~app / .style~n~args = { 2 }{ __environment-app = {upper}{#1}{#2} }, + environment~lower~args~app / .style~n~args = { 2 }{ __environment-app = {lower}{#1}{#2} }, + environment~title~args~app / .style~n~args = { 2 }{ __environment-app = {title}{#1}{#2} }, + __environment-pre / .style~n~args = { 3 } + { + before~#1~pre = { \begin{#2} #3 }, + after~#1~app = { \end{#2} } + }, + environment~upper~pre / .value~required, + environment~lower~pre / .value~required, + environment~title~pre / .value~required, + environment~upper~pre / .style = { __environment-pre = {upper}{#1}{ } }, + environment~lower~pre / .style = { __environment-pre = {lower}{#1}{ } }, + environment~title~pre / .style = { __environment-pre = {title}{#1}{ } }, + environment~upper~args~pre / .style~n~args = { 2 }{ __environment-pre = {upper}{#1}{#2} }, + environment~lower~args~pre / .style~n~args = { 2 }{ __environment-pre = {lower}{#1}{#2} }, + environment~title~args~pre / .style~n~args = { 2 }{ __environment-pre = {title}{#1}{#2} }, +} +\ExplSyntaxOff + diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex index c1bc358d1b3..195076eee16 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 e95a98a8ed8..48241a94d57 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \tcbuselibrary{pro@cessing} @@ -164,16 +164,30 @@ \begin{tcolorbox}[capture=\tcb@listing@capture,savedelimiter=tcolorbox]\tcb@listing@process\end{tcolorbox}% } -\long\def\tcb@run@system@command#1{% - \ifcase\pdf@shellescape\relax - \tcb@error{You must invoke LaTeX with the -shell-escape flag}{Pass the -shell-escape flag to LaTeX.}% - \or\or - \tcb@warning{System call with restricted shell escape may fail}% - \fi% - \ShellEscape{#1}% - \relax% +\ExplSyntaxOn +\cs_new_protected:Npn \__tcbox_run_system_command:n #1 + { + \sys_if_shell:TF + { + \sys_if_shell_restricted:T + { + \tcb@warning{System~call~with~restricted~shell~escape~may~fail} + } + } + { + \tcb@error{You~must~invoke~LaTeX~with~the~-shell-escape~flag} + {Pass~the~-shell-escape~flag~to~LaTeX.} + } + \sys_shell_now:e {#1} + } + +\tcbset +{ + run~system~command/.style={process~code={\__tcbox_run_system_command:n{#1}}}, } +\ExplSyntaxOff + \tcbset{% listing file/.store in=\kvtcb@listingfile,% @@ -219,7 +233,6 @@ process code/.code={\appto\tcb@listing@process@hook{#1}},% no process/.code={\def\tcb@listing@process@hook{}},% compilable listing/.style={listing file={\jobname-listing-\thetcblistingcount.tex}}, - run system command/.style={process code={\tcb@run@system@command{#1}}},% run@system@command/.style 2 args={run system command={#1\space#2\space\filename@area\filename@base}},% run pdflatex/.style={run@system@command={pdflatex}{#1}},% run xelatex/.style={run@system@command={xelatex}{#1}},% @@ -355,8 +368,8 @@ } \NewDocumentCommand \__tcobox_new_tcbinputlisting_i:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_tcbinputlisting_ii:w #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_tcbinputlisting_ii:w #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \newtcbinputlisting { } { @@ -377,8 +390,8 @@ } \NewDocumentCommand \__tcobox_new_TCBInputListing:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TCBInputListing:Nnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TCBInputListing:Nnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTCBInputListing { } { diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index fa6f16bd1fc..0c9b2b7e8c2 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 0e6efd9f713..81180a8eb89 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbmagazine.code.tex: Code for box sets and magazine styles %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 2115bf2f4bc..cae9e8d7070 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbminted.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \RequirePackage{minted}[2021/12/24] @@ -35,21 +35,21 @@ { \usemintedstyle { #4 } } - \tl_set:Nn \l_tmpa_tl { \inputminted[#1 } + \tl_set:Nn \l__tcobox_tmpa_tl { \inputminted[#1 } \cs_if_exist:NT \tcb@listing@capture { \str_if_eq:VnT \tcb@listing@capture { hbox } { - \tl_put_right:Nn \l_tmpa_tl { ,envname=BVerbatim } + \tl_put_right:Nn \l__tcobox_tmpa_tl { ,envname=BVerbatim } } } - \tl_put_right:Nn \l_tmpa_tl { ] } + \tl_put_right:Nn \l__tcobox_tmpa_tl { ] } \file_if_exist:nTF { \minted@outputdir #3 } { - \l_tmpa_tl { #2 }{ \minted@outputdir #3 } + \l__tcobox_tmpa_tl { #2 }{ \minted@outputdir #3 } } { - \l_tmpa_tl { #2 }{ #3 } + \l__tcobox_tmpa_tl { #2 }{ #3 } } } diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex index b6a139fde7d..49abfc651a3 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbposter.code.tex: Code for posters %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 83f0ec2cb55..ce0ae430757 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbprocessing.code.tex: Code for conditional processing %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,64 +17,54 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} -\RequirePackage{pdftexcmds} -\RequirePackage{shellesc} +\ExplSyntaxOn -\ifdefined\pdf@filemdfivesum\else% XeLaTeX presumed ... - \def\pdf@filemdfivesum#1{\mdfivesum file {#1}}% -\fi -\ifdefined\pdf@filemoddate\else% very poor XeLaTeX bypassing - \def\pdf@filemoddate#1{}% -\fi +\bool_new:N \l__tcobox_proc_hash_equal_bool -\def\tcbproc@readmdfive#1#2{% - \edef\tcbprocmdfivesum{\pdf@filemdfivesum{#1}}% - \IfFileExists{#2}{\input{#2}}{\def\tcbproclastmdfivesum{}}% -} +\cs_new_protected:Npn \__tcobox_proc_compute_hash:nn #1#2 + { + \tl_set:Ne \l__tcobox_tmpa_tl { \file_mdfive_hash:n { #1 } } + \file_get:nnN { #2 } { } \l__tcobox_tmpb_tl + \str_if_eq:eeTF { \l__tcobox_tmpa_tl } { \tl_trim_spaces:o { \l__tcobox_tmpb_tl } } + { + \bool_set_true:N \l__tcobox_proc_hash_equal_bool + } + { + \bool_set_false:N \l__tcobox_proc_hash_equal_bool + \iow_open:Nn \g__tcobox_out_iow { #2 } + \iow_now:NV \g__tcobox_out_iow \l__tcobox_tmpa_tl + \iow_close:N \g__tcobox_out_iow + } + } -\def\tcbproc@writemdfive#1{% - \tcb@allocate@tcb@out% - \immediate\openout\tcb@out=#1% - \immediate\write\tcb@out{\string\def\string\tcbproclastmdfivesum{\tcbprocmdfivesum}\@percentchar}% - \immediate\closeout\tcb@out% -} +\prg_new_protected_conditional:Npnn \__tcobox_if_file_process:nnnn #1#2#3#4 { TF } + { + \__tcobox_proc_compute_hash:nn {#2} {#3} + \int_case:nn {#1} + { + {0} { \prg_return_true: } + {1} + { + \bool_if:NTF \l__tcobox_proc_hash_equal_bool + { + \file_if_exist:nTF {#4} + { + \file_compare_timestamp:nNnTF {#4} < {#3} + { \prg_return_true: } + { \prg_return_false: } + } + { \prg_return_true: } + } + { + \prg_return_true: + } + } + {2} { \prg_return_false: } + } + } -\newrobustcmd{\iftcb@process@on}[3]{% - \tcbproc@readmdfive{#1}{#2}% - \ifdefstrequal{\tcbproclastmdfivesum}{\tcbprocmdfivesum}{}{\tcbproc@writemdfive{#2}}% - \expandafter\@firstoftwo% -} +\cs_gset_eq:NN \tcbiffileprocess \__tcobox_if_file_process:nnnnTF -\newrobustcmd{\iftcb@process@conditional}[3]{% - \tcbproc@readmdfive{#1}{#2}% - \ifdefstrequal{\tcbproclastmdfivesum}{\tcbprocmdfivesum}{% - \IfFileExists{#3}{% - \ifnum\pdf@strcmp{\pdf@filemoddate{#2}}{\pdf@filemoddate{#3}}>0\relax% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% - }{\expandafter\@firstoftwo}% - }{% - \tcbproc@writemdfive{#2}% - \expandafter\@firstoftwo% - }% -} - -\newrobustcmd{\iftcb@process@off}[3]{% - \tcbproc@readmdfive{#1}{#2}% - \ifdefstrequal{\tcbproclastmdfivesum}{\tcbprocmdfivesum}{}{\tcbproc@writemdfive{#2}}% - \expandafter\@secondoftwo% -}% - -\newrobustcmd{\tcbiffileprocess}[1]{% - \ifcase\numexpr#1\relax% - \expandafter\iftcb@process@on% - \or% - \expandafter\iftcb@process@conditional% - \else% - \expandafter\iftcb@process@off% - \fi% -} +\ExplSyntaxOff diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex index 07f58e0c0bd..35510300920 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \newcounter{tcbrastercolumn} \newcounter{tcbrasterrow} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 51a7722f779..3fbad785842 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \RequirePackage{tikz}[2010/10/13] \RequirePackage{tikzfill.image} @@ -1720,7 +1720,7 @@ \cs_new:Npn \__tcobox_include_graphics:nn #1#2 { - \includegraphics [#1] {#2} + \includegraphics [{#1}] {#2} } \cs_generate_variant:Nn \__tcobox_include_graphics:nn {en} @@ -1730,27 +1730,27 @@ \int_compare:nNnT \kvtcb@graphics@orientation > {-1} { - \hbox_set:Nn \l_tmpa_box + \hbox_set:Nn \l__tcobox_tmpa_box { \__tcobox_include_graphics:en { \l__tcobox_graphics_options_tl }{ \imagepath } } \if_case:w \kvtcb@graphics@orientation - \dim_compare:nNnT {\box_wd:N\l_tmpa_box} < {\box_ht_plus_dp:N \l_tmpa_box} + \dim_compare:nNnT {\box_wd:N\l__tcobox_tmpa_box} < {\box_ht_plus_dp:N \l__tcobox_tmpa_box} { \tl_put_right:Nn \l__tcobox_graphics_options_tl {,angle=90} } \or: - \dim_compare:nNnT {\box_wd:N\l_tmpa_box} < {\box_ht_plus_dp:N \l_tmpa_box} + \dim_compare:nNnT {\box_wd:N\l__tcobox_tmpa_box} < {\box_ht_plus_dp:N \l__tcobox_tmpa_box} { \tl_put_right:Nn \l__tcobox_graphics_options_tl {,angle=-90} } \or: - \dim_compare:nNnT {\box_wd:N\l_tmpa_box} > {\box_ht_plus_dp:N \l_tmpa_box} + \dim_compare:nNnT {\box_wd:N\l__tcobox_tmpa_box} > {\box_ht_plus_dp:N \l__tcobox_tmpa_box} { \tl_put_right:Nn \l__tcobox_graphics_options_tl {,angle=90} } \or: - \dim_compare:nNnT {\box_wd:N\l_tmpa_box} > {\box_ht_plus_dp:N \l_tmpa_box} + \dim_compare:nNnT {\box_wd:N\l__tcobox_tmpa_box} > {\box_ht_plus_dp:N \l__tcobox_tmpa_box} { \tl_put_right:Nn \l__tcobox_graphics_options_tl {,angle=-90} } @@ -1769,14 +1769,14 @@ { \begin{tcolorbox} \__tcobox_include_graphics:en { \l__tcobox_graphics_options_tl,width=\linewidth,height=\tcbtextheight,keepaspectratio }{ \imagepath } - \end{tcolorbox} + \end{tcolorbox} } { \tl_if_empty:NTF \tcb@height@adjust { \begin{tcolorbox} \__tcobox_include_graphics:en { \l__tcobox_graphics_options_tl,width=\linewidth }{ \imagepath } - \end{tcolorbox}% + \end{tcolorbox} }{% height fill \begin{tcolorbox}[ underlay= @@ -1796,15 +1796,15 @@ \cs_new:Npn \__tcobox_include_graphics_preparefile:n #1 { - \file_parse_full_name:nNNN {#1} \l_tmpa_tl \imagename \l_tmpb_tl - \tl_put_right:NV \imagename \l_tmpb_tl + \file_parse_full_name:nNNN {#1} \l__tcobox_tmpa_tl \imagename \l__tcobox_tmpb_tl + \tl_put_right:NV \imagename \l__tcobox_tmpb_tl \tl_set_eq:NN \imagepath \imagename - \tl_if_empty:NF \l_tmpa_tl + \tl_if_empty:NF \l__tcobox_tmpa_tl { \tl_put_left:Nn \imagepath {/} - \tl_if_eq:NnF \l_tmpa_tl {/} + \tl_if_eq:NnF \l__tcobox_tmpa_tl {/} { - \tl_put_left:NV \imagepath \l_tmpa_tl + \tl_put_left:NV \imagepath \l__tcobox_tmpa_tl } } \tl_if_empty:NF \kvtcb@graphics@directory diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex index 2a0e642acbf..551971a0df2 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 7e93b7ddcd6..f53eda79a52 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.0} \RequirePackage{amsmath} @@ -107,7 +107,7 @@ } { % box display name and number - \hbox_set:Nn \l_tmpa_box + \hbox_set:Nn \l__tcobox_tmpa_box { \__tcobox_theo_format:nn{#1}{#2} \bool_if:NF \l__tcobox_theo_headempty_bool @@ -119,25 +119,25 @@ % 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 + \hangindent \box_wd:N \l__tcobox_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 + \dim_set:Nn \l__tcobox_tmpa_dim { \l__tcobox_theo_hanging_indent_tl } + \if_dim:w \l__tcobox_tmpa_dim = \c_zero_dim \else: - \if_dim:w \l_tmpa_dim > \c_zero_dim - \hangindent \l_tmpa_dim + \if_dim:w \l__tcobox_tmpa_dim > \c_zero_dim + \hangindent \l__tcobox_tmpa_dim \hangafter = 1 \else: - \hangindent -\l_tmpa_dim + \hangindent -\l__tcobox_tmpa_dim \hangafter = -1 \fi: \fi: } % insert box with name and number \mode_leave_vertical: - \box_use_drop:N \l_tmpa_box + \box_use_drop:N \l__tcobox_tmpa_box % insert formated title \group_begin: \__tcobox_theo_format_description:n{#3} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex index c67a25d5c14..e177bb33d49 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbvignette.code.tex: Code for ornamental frames %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 22587ac90f2..cf60ef07315 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcbxparse.code.tex: Code for xparse features %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -18,6 +18,6 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{6.1.0} +\tcb@set@library@version{6.2.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 812b9dcc90e..be2dc7e19be 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty @@ -1,8 +1,8 @@ -%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26) +%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- -%% Copyright (c) 2006-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> %% ------------------------------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the @@ -17,9 +17,9 @@ %% %% This work consists of all files listed in README %% -\NeedsTeXFormat{LaTeX2e}[2020/10/01] -\ProvidesPackage{tcolorbox}[2023/09/26 version 6.1.0 text color boxes] -\def\tcb@version{6.1.0} +\NeedsTeXFormat{LaTeX2e}[2021-11-15] +\ProvidesPackage{tcolorbox}[2024/01/10 version 6.2.0 text color boxes] +\def\tcb@version{6.2.0} \RequirePackage{pgf}[2008/01/15] \RequirePackage{verbatim}[2003/08/22] @@ -55,6 +55,19 @@ \newcounter{tcblayer} \newcounter{tcolorbox@number} +\ExplSyntaxOn +\bool_new:N \l__tcobox_prevent_init_overwrite_bool +\box_new:N \l__tcobox_tmpa_box +\dim_new:N \l__tcobox_tmpa_dim +\fp_new:N \l__tcobox_tmpa_fp +\iow_new:N \g__tcobox_out_iow +\iow_new:N \g__tcobox_record_iow +\str_new:N \l__tcobox_record_file_str +\tl_new:N \l__tcobox_kv_labeltype_tl +\tl_new:N \l__tcobox_tmpa_tl +\tl_new:N \l__tcobox_tmpb_tl +\ExplSyntaxOff + \def\tcb@info#1{\PackageInfo{tcolorbox}{#1}} \def\tcb@warning#1{\PackageWarning{tcolorbox}{#1}} \def\tcb@error#1#2{\PackageError{tcolorbox}{#1}{#2}} @@ -287,7 +300,7 @@ fontlower/.store in=\kvtcb@fontlower, tempfile/.store in=\kvtcb@tempfile, savelowerto/.code={\tcb@redirectlowertofalse\def\kvtcb@savelowerto{#1}}, - redirectlowerto/.code={\tcb@lowerignoredtrue\tcb@lowervisiblefalse\tcb@redirectlowertotrue\def\kvtcb@savelowerto{#1}}, + redirectlowerto/.code={\pgfkeysalso{lowerbox=ignored}\tcb@redirectlowertotrue\def\kvtcb@savelowerto{#1}}, saveto/.store in=\kvtcb@saveupperto, savedelimiter/.estore in=\kvtcb@savedelimiter, floatplacement/.store in=\kvtcb@floatplacement, @@ -888,9 +901,33 @@ wrap@environment/.is if=tcb@wrap@environment, } + +\def\kvtcb@beforebox{} +\def\kvtcb@afterbox{} + + \ExplSyntaxOn -\tl_new:N \l__tcobox_kv_labeltype_tl +\tcbset +{ + __environment / .style~n~args = { 3 } + { + before~#1* = { \begin{#2} #3 }, + after~#1* = { \end{#2} } + }, + environment~upper / .value~required, + environment~lower / .value~required, + environment~title / .value~required, + environment~upper / .style = { __environment = {upper}{#1}{ } }, + environment~lower / .style = { __environment = {lower}{#1}{ } }, + environment~title / .style = { __environment = {title}{#1}{ } }, + environment~upper~args / .value~required, + environment~lower~args / .value~required, + environment~title~args / .value~required, + environment~upper~args / .style~n~args = { 2 }{ __environment = {upper}{#1}{#2} }, + environment~lower~args / .style~n~args = { 2 }{ __environment = {lower}{#1}{#2} }, + environment~title~args / .style~n~args = { 2 }{ __environment = {title}{#1}{#2} }, +} \cs_new:Npn \__tcobox_label_label:n #1 @@ -965,26 +1002,39 @@ IfBooleanT/.code~n~args={2}{\IfBooleanT{#1}{\pgfkeysalso{#2}}}, IfBooleanF/.code~n~args={2}{\IfBooleanF{#1}{\pgfkeysalso{#2}}}, } -\ExplSyntaxOff - -\def\kvtcb@beforebox{} -\def\kvtcb@afterbox{} \IfFormatAtLeastTF{2023-06-01} { - \def\tcb@set@parbox@indent@{% - \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 } } { % 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@{ + \vspace{-\parskip} + \noindent + \let\tcb@set@parbox@indent\@empty } } +\cs_new_protected:Npn \__tcobox_set_parbox_indent:n #1 + { + \bool_lazy_and:nnT + % if not inside a nested tcolorbox + { \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 } + { + \OmitIndent + } + } + +\ExplSyntaxOff + \def\tcb@parbox@true@indent{}% \def\tcb@parbox@false@indent{% \preto\kvtcb@before@title{\tcb@set@parbox@indent}% @@ -1183,8 +1233,19 @@ \expandafter\let\csname end\kvtcb@savedelimiter\expandafter\endcsname\csname tcb@endupperverbatimanddraw\endcsname% \ifx\kvtcb@savelowerto\@empty% \else% - \tcb@warning{'saveto' and 'savelowerto' cannot be combined. I deactivate 'savelowerto'}% - \tcbset{savelowerto=}% + \iftcb@redirectlowerto% + \tcb@warning{% + 'saveto' and 'redirectlowerto' cannot be combined.\MessageBreak + I deactivate 'redirectlowerto' but retain its\MessageBreak + 'lowerbox' setting}% + \tcb@redirectlowertofalse% + \tcbset{savelowerto=}% + \else% + \tcb@warning{% + 'saveto' and 'savelowerto' cannot be combined.\MessageBreak + I deactivate 'savelowerto'}% + \tcbset{savelowerto=}% + \fi% \fi% \fi% \tcb@startbox% @@ -1462,19 +1523,19 @@ \ExplSyntaxOn \def\tcb@ch@fixed@spacesave { - \fp_set:Nn \l_tmpa_fp { \tcb@space+\tcbheightspace } - \fp_compare:nTF { \l_tmpa_fp < 0 } + \fp_set:Nn \l__tcobox_tmpa_fp { \tcb@space+\tcbheightspace } + \fp_compare:nTF { \l__tcobox_tmpa_fp < 0 } { - \fp_zero_new:N \l_tmpa_fp + \fp_zero:N \l__tcobox_tmpa_fp } { - \fp_compare:nT { \l_tmpa_fp > \tcb@height } + \fp_compare:nT { \l__tcobox_tmpa_fp > \tcb@height } { - \fp_set:Nn \l_tmpa_fp { \tcb@height } + \fp_set:Nn \l__tcobox_tmpa_fp { \tcb@height } } } - \tcbdimto\tcb@space { \fp_to_dim:n { trunc(\l_tmpa_fp,2) } } - \use:x { \exp_not:N\tcb@savespace{\thetcolorboxnumber}{\tcb@space} } + \tcbdimto\tcb@space { \fp_to_dim:n { trunc(\l__tcobox_tmpa_fp,2) } } + \use:e { \exp_not:N\tcb@savespace{\thetcolorboxnumber}{\tcb@space} } \tcbdimto\tcb@height@upper{\ht\tcb@upperbox+\dp\tcb@upperbox+\tcbheightspace} \let\tcbheightspace\tcb@zpt \iftcb@lowerspace @@ -2236,8 +2297,6 @@ \ExplSyntaxOn -\bool_new:N \l__tcobox_prevent_init_overwrite_bool - \cs_new:Npn \__tcobox_process_newtcolorbox:nn #1#2 { \bool_lazy_and:nnF @@ -2257,7 +2316,7 @@ { \tl_set:Nn #1 { #2 } \tl_trim_spaces:N #1 - \tl_set:Nx #1 { \exp_last_unbraced:NV \cs_to_str:N #1 } + \tl_set:Ne #1 { \exp_last_unbraced:NV \cs_to_str:N #1 } } @@ -2324,8 +2383,8 @@ } \NewDocumentCommand \__tcobox_new_TotalTColorBox:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TotalTColorBox:Nnnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TotalTColorBox:Nnnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTotalTColorBox { } { @@ -2368,8 +2427,8 @@ } \NewDocumentCommand \__tcobox_new_tcbox_i:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_tcbox_ii:w #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_tcbox_ii:w #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \newtcbox { } { @@ -2390,8 +2449,8 @@ } \NewDocumentCommand \__tcobox_new_TCBox:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TCBox:Nnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TCBox:Nnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTCBox { } { @@ -2422,8 +2481,8 @@ } \NewDocumentCommand \__tcobox_new_TotalTCBox:w { m +O{} m } { - \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 } - \exp_args:NNnV \__tcobox_new_TotalTCBox:Nnnnnn #1 {#2} \l_tmpa_tl + \__tcobox_set_backslash_removed:Nn \l__tcobox_tmpa_tl { #3 } + \exp_args:NNnV \__tcobox_new_TotalTCBox:Nnnnnn #1 {#2} \l__tcobox_tmpa_tl } \NewDocumentCommand \DeclareTotalTCBox { } { @@ -2494,9 +2553,8 @@ \ifnum\c@tocdepth<1\relax \tcb@warning{'tocdepth'~value~lower~than~1~for~'tcblistof'} \fi - \tl_set:Nx \l_tmpa_tl {\tl_trim_spaces:n{#1}} - \tl_set:Nx \l_tmpb_tl {\str_range:Nnn \l_tmpa_tl {2}{8}} - \str_if_eq:VnT \l_tmpb_tl { chapter } + \tl_set:Ne \l__tcobox_tmpa_tl {\tl_trim_spaces:n{#1}} + \str_if_eq:eeT { \str_range:Nnn \l__tcobox_tmpa_tl {2}{8} } { chapter } { \if@twocolumn \@restonecoltrue\onecolumn @@ -2504,8 +2562,7 @@ \@restonecolfalse \fi } - \tl_set:Nx \l_tmpa_tl {\str_item:Nn \l_tmpa_tl {-1}} - \str_if_eq:VnTF \l_tmpa_tl { * } + \str_if_eq:eeTF { \str_item:Nn \l__tcobox_tmpa_tl {-1} } { * } { #1{#4} \IfNoValueTF{#3} @@ -2535,10 +2592,11 @@ % verbatim output as in 'verbatim' -\def\tcb@allocate@tcb@out{% - \newwrite\tcb@out% - \xdef\tcb@allocate@tcb@out{}% -} +\ExplSyntaxOn +\cs_new_protected:Npn \tcb@iow@open { \iow_open:Nn \g__tcobox_out_iow } +\cs_new_protected:Npn \tcb@iow@write { \iow_now:Ne \g__tcobox_out_iow } +\cs_new_protected:Npn \tcb@iow@close { \iow_close:N \g__tcobox_out_iow } +\ExplSyntaxOff \let\tcb@verbatim@begin@hook\@empty \let\tcb@verbatim@end@hook\@empty @@ -2548,20 +2606,17 @@ \def\tcbverbatimwrite#1{% \@bsphack \tcb@set@verbatim@finish% - \tcb@allocate@tcb@out% - \immediate\openout\tcb@out #1 + \tcb@iow@open{#1}% \tcb@verbatim@begin@hook% \let\do\@makeother\dospecials \tcb@verbatim@change@percent\catcode`\^^M\active \catcode`\^^I=12 - \def\verbatim@processline{% - \immediate\write\tcb@out - {\the\verbatim@line}}% + \def\verbatim@processline{\tcb@iow@write{\the\verbatim@line}}% \verbatim@start}%' \def\endtcbverbatimwrite{% \tcb@verbatim@end@hook% - \immediate\closeout\tcb@out + \tcb@iow@close \@esphack% } @@ -2570,12 +2625,12 @@ \cs_new_nopar:Npn \__tcobox_verbatim_finish: { - \tl_set_rescan:Nnx \l_tmpa_tl + \tl_set_rescan:Nne \l__tcobox_tmpa_tl { \char_set_catcode_space:n { 9 } \char_set_catcode_space:n { 32 } } { \the\verbatim@line } - \tl_if_blank:VF \l_tmpa_tl + \tl_if_blank:VF \l__tcobox_tmpa_tl { \verbatim@processline } @@ -2646,36 +2701,42 @@ % recording -\def\tcb@allocate@tcb@record@out{% - \newwrite\tcb@record@out% - \xdef\tcb@allocate@tcb@record@out{}% -} - +\ExplSyntaxOn -\def\tcb@null#1{} -\newcommand{\tcb@record}[1]{\immediate\write\tcb@record@out{#1}} +\cs_new_protected:Npn \__tcobox_record:n #1 + { + \iow_now:Ne \g__tcobox_record_iow { #1 } + } -\newcommand{\tcbstartrecording}[1][\jobname.records]{% - \let\tcbrecord\tcb@record% - \edef\tcb@record@file{#1}% - \tcb@allocate@tcb@record@out% - \immediate\openout\tcb@record@out\tcb@record@file% -} +\NewDocumentCommand \tcbstartrecording { O{\jobname.records} } + { + \cs_set_eq:NN \tcbrecord \__tcobox_record:n + \str_set:Ne \l__tcobox_record_file_str { #1 } + \iow_open:Nn \g__tcobox_record_iow { \l__tcobox_record_file_str } + } -\newcommand{\tcbstoprecording}{% - \immediate\closeout\tcb@record@out% - \let\tcbrecord\tcb@null% -} +\NewDocumentCommand \tcbstoprecording { } + { + \iow_close:N \g__tcobox_record_iow + \cs_set_eq:NN \tcbrecord \use_none:n + } -\tcbset{% +\tcbset{ record/.style={phantom={\tcbrecord{#1}}}, - no recording/.code={\let\tcbrecord\tcb@null}, - no recording + no~recording/.code={ \cs_set_eq:NN \tcbrecord \use_none:n }, + no~recording } -\newcommand{\tcbinputrecords}[1][\tcb@record@file]{% - \IfFileExists{#1}{\input{#1}}{\tcb@error{record file `#1' not found}{The record file `#1' was not found}}% -} +\NewDocumentCommand \tcbinputrecords { O{\l__tcobox_record_file_str} } + { + \file_if_exist_input:nF {#1} + { + \tcb@error{record~file~`#1'~not~found} + {The~record~file~`#1'~was~not~found} + } + } + +\ExplSyntaxOff \tcb@new@skin{standard}{frame engine=standard,interior titled engine=standard, interior engine=standard,segmentation engine=standard,title engine=standard, |