summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tcolorbox
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-01-10 20:44:04 +0000
committerKarl Berry <karl@freefriends.org>2024-01-10 20:44:04 +0000
commit20293d1d4fad93b4e31a66c1814c4be459b8b526 (patch)
tree5a6c4c2ee92a05360c276a27996502bdb5f62e46 /Master/texmf-dist/tex/latex/tcolorbox
parent9c5953fc6d090a5e9d1b9e7145ea2df9ced77a32 (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')
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex102
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex88
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex18
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex39
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex45
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex16
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex104
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex32
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex22
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty215
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,