summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tcolorbox
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tcolorbox')
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md58
-rw-r--r--macros/latex/contrib/tcolorbox/README.md4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex102
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex88
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex18
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex39
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex45
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbmagazine.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbminted.code.tex16
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex104
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex32
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex22
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin274323 -> 274323 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin447115 -> 447103 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin438049 -> 438130 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.bib46
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex3
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex150
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex112
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex17
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex16
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex1
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex98
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex8
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty3
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin4835606 -> 4859487 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty215
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex12
44 files changed, 873 insertions, 422 deletions
diff --git a/macros/latex/contrib/tcolorbox/CHANGES.md b/macros/latex/contrib/tcolorbox/CHANGES.md
index dc5f00c259..5aaa4f6f21 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES.md
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -22,6 +22,64 @@ and this project adheres to
+## [6.2.0]
+
+### Added
+- New convenience options for box content additions (issue #250)
+ - Option `environment upper`
+ - Option `environment upper args`
+ - Option `environment lower`
+ - Option `environment lower args`
+ - Option `environment title`
+ - Option `environment title args`
+- Library `hooks`:
+ - Option `environment upper app`
+ - Option `environment upper args app`
+ - Option `environment lower app`
+ - Option `environment lower args app`
+ - Option `environment title app`
+ - Option `environment title args app`
+ - Option `environment upper pre`
+ - Option `environment upper args pre`
+ - Option `environment lower pre`
+ - Option `environment lower args pre`
+ - Option `environment title pre`
+ - Option `environment title args pre`
+- Library `documentation`:
+ - Option `index key formatter`
+ - Option `index keys formatter`
+ - Root (`/`) of a documented key made configurable (issue #259):
+ - Option `doc key prefix`
+
+### Changed
+- Minor implementation change to `redirectlowerto` (issue #240)
+- `pgfkeys` mentioned in the documentation (issue #241)
+- Distinct `savelowerto`/`redirectlowerto` file names inside the documentation (issue #248)
+- Updated documentation and warnings for the interaction between `saveto`
+ and `savelowerto` (issue #249)
+- Improved some `\sarg` examples in the documentation (issue #256)
+- Small typos in the documentation (issue #261)
+- Recording macros rewritten in expl3 code (part of issue #255)
+- Usage of expl3 scratch variables like `\l_tmpa_tl` replaced by package variables like `\l__tcobox_tmpa_tl`
+- Library `documentation`:
+ - Expl3 arg-spec of internal macro corrected (issue #257)
+ - `\tcbmakedocSubKey` and `\tcbmakedocSubKeys` take options now (issue #259)
+- Library `external`: package loading of `pdftexcmds` and `shellesc` removed.
+ Expl3 functions are used as drop-in replacements (part of issue #255)
+- Libraries `listings`, `listingsutf8`, and `minted`:
+ package loading of `pdftexcmds` and `shellesc` removed (part of issue #255)
+- Needed LaTeX version updated to 2021-11-15
+
+### Removed
+- Loading of the `xparse` library dropped inside the `documentation` library since all
+ needed features are part of the LaTeX format now (issue #254)
+
+### Fixed
+- Several documentation typos and minor improvements (PR/issue #251 and PR/issue #252)
+- Extra top space if `parbox=false` and tcolorbox starts with a list (issue #262)
+
+
+
## [6.1.0] - 2023-09-26
### Added
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
index 8700b6c322..27f6edf11d 100644
--- a/macros/latex/contrib/tcolorbox/README.md
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -1,7 +1,7 @@
-# The LaTeX package tcolorbox - version 6.1.0 (2023/09/26)
+# The LaTeX package tcolorbox - version 6.2.0 (2024/01/10)
-> 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
> conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index cd9e6961b2..90ece8e5a5 100644
--- a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index f0463342ce..3eff9746f8 100644
--- a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index c0159db83f..0bfa994f68 100644
--- a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index 118c77fb13..0e34e15ad5 100644
--- a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index bdf0a6c9f1..b3edf95636 100644
--- a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index c1bc358d1b..195076eee1 100644
--- a/macros/latex/contrib/tcolorbox/tcblistings.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
index e95a98a8ed..48241a94d5 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index fa6f16bd1f..0c9b2b7e8c 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index 0e6efd9f71..81180a8eb8 100644
--- a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index 2115bf2f4b..cae9e8d707 100644
--- a/macros/latex/contrib/tcolorbox/tcbminted.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index b6a139fde7..49abfc651a 100644
--- a/macros/latex/contrib/tcolorbox/tcbposter.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
index 83f0ec2cb5..ce0ae43075 100644
--- a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index 07f58e0c0b..3551030092 100644
--- a/macros/latex/contrib/tcolorbox/tcbraster.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 51a7722f77..3fbad78584 100644
--- a/macros/latex/contrib/tcolorbox/tcbskins.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index 2a0e642acb..551971a0df 100644
--- a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index 7e93b7ddcd..f53eda79a5 100644
--- a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index c67a25d5c1..e177bb33d4 100644
--- a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index 22587ac90f..cf60ef0731 100644
--- a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index cd31a6eb52..e39ddaa037 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
index 9c80fc806d..ffa291103b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.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)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% 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
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
index a2ebd3ede7..809b35a2ca 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
index 35a2e1de65..1adaa24d7e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.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)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% 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
@@ -147,7 +147,7 @@ We have given Theorem \ref{theorem:summation} on page \pageref{theorem:summation
fonttitle=\bfseries, title=Box with a watermark picture]
Here, you see my nice box with a picture as a watermark.
This picture is automatically resized to fit the dimensions
- of my box. Instead of a picure, some text could be used or
+ of my box. Instead of a picture, some text could be used or
arbitrary graphical code. See the documentation for more options.
\end{tcolorbox}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index b9398ca269..eb23961967 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
index cb97de9e58..ae550c5c6d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
@@ -1,9 +1,9 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26)
+%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% 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
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib b/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
index d67c8a362a..be1c60b666 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
@@ -2,8 +2,8 @@
author = {Carsten Heinz and Brooks Moses and Jobst Hoffmann},
title = {The Listings Package},
url = {https://mirror.ctan.org/macros/latex/contrib/listings/listings.pdf},
- version = {1.8d},
- date = {2020-03-24},
+ version = {1.9},
+ date = {2023-02-27},
language = {english}
}
@@ -11,7 +11,7 @@
author = {Rainer Sch{\"o}pf and Bernd Raichle and Chris Rowley},
title = {A New Implementation of {\LaTeX}'s verbatim and verbatim* Environments},
url = {https://mirror.ctan.org/macros/latex/required/tools/verbatim.pdf},
- date = {2001-03-12},
+ date = {2023-11-06},
}
@techreport{sturm:mathe1,
@@ -72,9 +72,9 @@
@manual{tantau:beamer,
author = {Till Tantau and Joseph Wright and Vedran Mileti\'{c}},
title = {The Beamer Class},
- subtitle = {User Guide for version 3.68},
+ subtitle = {User Guide for version 3.71},
url = {https://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf},
- date = {2022-09-17},
+ date = {2024-01-06},
}
@@ -82,7 +82,7 @@
author = {David Carlisle},
title = {The file ltxdoc.dtx for use with \LaTeXe},
url = {https://mirror.ctan.org/macros/latex/base/ltxdoc.pdf},
- date = {2019-09-16}
+ date = {2023-03-28}
}
@@ -90,15 +90,15 @@
author = {David Carlisle},
title = {The tabularx package},
url = {https://mirror.ctan.org/macros/latex/required/tools/tabularx.pdf},
- date = {2020-01-15}
+ date = {2023-07-08}
}
-@manual{mittelbach:2011a,
+@manual{mittelbach:doc,
author = {Frank Mittelbach},
title = {The doc and shortvrb Packages},
url = {https://mirror.ctan.org/macros/latex/base/doc.dtx},
- date = {2011-06-30}
+ date = {2022-11-13}
}
@@ -106,18 +106,10 @@
author = {Frank Mittelbach},
title = {An environment for multicolumn output},
url = {https://mirror.ctan.org/macros/latex/required/tools/multicol.pdf},
- date = {2022-10-31},
+ date = {2023-11-21},
}
-@manual{breitenlohner:1998a,
- author = {Peter Breitenlohner},
- title = {The $\varepsilon$-\TeX\ manual},
- version = {2},
- url = {https://mirrors.ctan.org/systems/doc/etex/etex_man.pdf},
- date = {1998-02},
-}
-
@manual{oberdiek:listingsutf8,
author = {Heiko Oberdiek},
title = {The listingsutf8 package},
@@ -155,13 +147,13 @@
title = {The minted package},
subtitle = {Highlighted source code in \LaTeX},
url = {https://mirror.ctan.org/macros/latex/contrib/minted/minted.pdf},
- date = {2022-12-12},
+ date = {2023-12-18},
}
@online{pygments:web,
title = {Pygments},
subtitle = {Python syntax highlighter},
- date = {2023},
+ date = {2024},
url = {https://pygments.org/},
}
@@ -169,7 +161,7 @@
author = {The \LaTeX3 Project},
title = {The xparse Package},
url = {https://mirror.ctan.org/macros/latex/contrib/l3packages/xparse.pdf},
- date = {2023-02-02},
+ date = {2023-10-10},
}
@@ -185,7 +177,7 @@
author = {Sebastian Rahtz and Heiko Oberdiek},
title = {Hypertext marks in \LaTeX: a manual for hyperref},
url = {https://mirrors.ctan.org/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf},
- date = {2023-02-07},
+ date = {2023-11-26},
language = {english}
}
@@ -194,7 +186,7 @@
author = {Heiko Oberdiek},
title = {The bookmark package},
url = {https://mirrors.ctan.org/macros/latex/contrib/bookmark/bookmark.pdf},
- date = {2020-11-06},
+ date = {2023-12-10},
language = {english}
}
@@ -203,7 +195,7 @@
author = {Heiko Oberdiek},
title = {The zref package},
url = {https://mirrors.ctan.org/macros/latex/contrib/zref/zref.pdf},
- date = {2022-04-07},
+ date = {2023-09-14},
language = {english}
}
@@ -211,9 +203,9 @@
@manual{barros:zref-clever,
author = {Gustavo Barros},
title = {The zref-clever package},
- url = {https://mirrors.ctan.org/macros/latex/contrib/zref-clever/zref-clever.pdf},
- date = {2023-01-03},
- language = {english}
+ url = {https://mirrors.ctan.org/macros/latex/contrib/zref-clever/zref-clever-doc.pdf},
+ date = {2023-11-14},
+ language = {english}
}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
index be89357f35..a86994c7e2 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
@@ -292,7 +292,7 @@ The |break at| option can be used to insert better break points by hand.
unbroken box or the first part of a \emph{break sequence}.
\item\docValue{none}:
The break algorithm respects the target size of the given glue values
- on the page. This was the inital value before version |3.34|.
+ on the page. This was the initial value before version |3.34|.
\end{itemize}
\begin{marker}
Note that the box \emph{content} is not influenced by this option.
@@ -510,7 +510,7 @@ and \refKey{/tcb/enlarge bottom at break by}.
If a breakable box contains an \emph{upper part} and a \emph{lower part} and
the break happens at the \emph{segmentation} between both parts, then
\begin{itemize}
- \item the segmenation line (or similar) is drawn as first element of the
+ \item the segmentation line (or similar) is drawn as first element of the
partial box containing the \emph{lower part}, if \refKey{/tcb/segmentation at break}
is set to be |true|.
\item the segmenation line (or similar) is not drawn at all, if
@@ -773,7 +773,7 @@ automatically but set manually.
information and just use it as you would use |\pagebreak|.\par\smallskip
For an \emph{unbreakable box}, \refCom{tcbbreak} is identical to insert |\par|,
i.e.\ it just starts a new paragraph.\par\smallskip
- Also see \refKey{/tcb/break at} for defining height dependend breaks.
+ Also see \refKey{/tcb/break at} for defining height dependent breaks.
\begin{dispListing}
% \usepackage{lipsum,multicol} % preamble
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
index 4008a00a8f..0847f09775 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
@@ -281,7 +281,8 @@ This is a tcolorbox.
the specified \meta{content}.\\
Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
automatically.
- Also note that \refKey{/tcb/saveto} and \refKey{/tcb/savelowerto}
+ Also note that \refKey{/tcb/saveto}, \refKey{/tcb/savelowerto},
+ and \refKey{/tcb/redirectlowerto}
cannot be used with \refCom{NewTotalTColorBox} and friends.\\
The \meta{init options} allow setting up automatic numbering,
see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 9144696d2c..e20936d76b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -4,7 +4,11 @@
\section{Option Keys}\label{sec:optkeys}%
\tcbset{external/prefix=external/coreoptions_}%
For the \meta{options} in \refEnv{tcolorbox} respectively \refCom{tcbset}
-the following |pgf| keys can be applied. The key tree path |/tcb/| is not to
+the following |pgf| keys can be applied%
+\footnote{Strictly speaking, they are \texttt{pgfkeys} keys.
+ The \texttt{pgfkeys} package is auto-loaded by \texttt{pgf} and is
+ documented in \cite[Part~VII]{tantau:tikz_and_pgf}.}.
+The key tree path |/tcb/| is not to
be used inside these macros. It is easy to add your own style keys using
the syntax for |pgf| keys, see \cite{tantau:tikz_and_pgf,sturm:latex} or the examples
starting from page~\pageref{sec:latextutorial}.
@@ -272,8 +276,10 @@ This is a \textbf{tcolorbox} (but invisible).
This is the counterpart of \refKey{/tcb/savelowerto}, but it saves not
only the upper part but the whole content. If a lower part is present,
it is also saved including \refCom{tcblower}.
+ An empty \meta{file name} deactivates \refKey{/tcb/saveto}.
\begin{marker}
- This option cannot be combined with \refKey{/tcb/savelowerto}.
+ This option cannot be combined with \refKey{/tcb/savelowerto} or
+ \refKey{/tcb/redirectlowerto}.
\end{marker}
\begin{exdispExample}{saveto_1}
@@ -315,6 +321,12 @@ Now, we load the saved text:
\item\docValue{ignored}: the lower part is not used (here).
\end{itemize}
The last two values are usually applied in connection with |savelowerto|.
+
+ \begin{marker}
+ The lower part is always typeset into a box which is used or dropped
+ accordingly. The only exception is applying \refKey{/tcb/redirectlowerto}.
+ \end{marker}
+
\begin{exdispExample}{lowerbox}
\begin{tcolorbox}[lowerbox=invisible,colback=white]
This is a \textbf{tcolorbox}.
@@ -331,8 +343,14 @@ This is the lower part (but ignored).
\end{docTcbKey}
+\clearpage
\begin{docTcbKey}[][doc updated=2014-11-28]{savelowerto}{=\meta{file name}}{no default, initially empty}
Saves the content of the lower part into a file for an optional later usage.
+ An empty \meta{file name} deactivates \refKey{/tcb/savelowerto}.
+ \begin{marker}
+ This option cannot be combined with \refKey{/tcb/saveto}.
+ \end{marker}
+
\begin{exdispExample}{savelowerto}
\begin{tcolorbox}[lowerbox=invisible,savelowerto=\jobname_bspsave.tex,colback=white]
This is a \textbf{tcolorbox}.
@@ -346,18 +364,23 @@ Now, we load the saved text:\\
\end{exdispExample}
\end{docTcbKey}
+\medskip
-\clearpage
\begin{docTcbKey}[][doc new=2023-07-17]{redirectlowerto}{=\meta{file name}}{no default, initially empty}
This is a combination of \refKey{/tcb/savelowerto} and \refKey{/tcb/lowerbox}|=|\docValue{ignored}
\emph{and additionally} avoids typesetting the content of the lower part.
This can be useful, if the lower part contains counters or similar.
+ An empty \meta{file name} deactivates the saving, but the \refKey{/tcb/lowerbox}
+ setting will still be \docValue{ignored}.
+ \begin{marker}
+ This option cannot be combined with \refKey{/tcb/saveto}.
+ \end{marker}
\begin{exdispExample}{redirectlowerto}
\setcounter{enumi}{1}
Test counter: \theenumi
-\begin{tcolorbox}[redirectlowerto=\jobname_bspsave.tex,colback=white]
+\begin{tcolorbox}[redirectlowerto=\jobname_bspsave2.tex,colback=white]
This is a \textbf{tcolorbox}.
\tcblower
This is the lower part.\stepcounter{enumi}
@@ -365,7 +388,7 @@ New value of test counter: \theenumi.
\end{tcolorbox}
Now, we load the saved text:\\
-\input{\jobname_bspsave.tex}
+\input{\jobname_bspsave2.tex}
\end{exdispExample}
\end{docTcbKey}
@@ -425,7 +448,7 @@ This is the lower part.
\clearpage
\begin{docTcbKey}{savedelimiter}{=\meta{name}}{no default, initially \texttt{tcolorbox}}
Used in connection with new environment definitions which extend
- |tcolorbox| and use or allow the option |savelowerto|.
+ |tcolorbox| and use or allow the option \refKey{/tcb/savelowerto} or \refKey{/tcb/redirectlowerto}.
To catch the end of the new box environment \meta{name} has to be the name of
this environment. Additionally, the environment definition has to use
|\tcolorbox| instead of
@@ -433,7 +456,7 @@ This is the lower part.
\begin{exdispExample}{savedelimiter1}
\newenvironment{mybox}[1]{%
\tcolorbox[savedelimiter=mybox,
- savelowerto=\jobname_bspsave2.tex,lowerbox=ignored,
+ savelowerto=\jobname_bspsave3.tex,lowerbox=ignored,
colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,
title={#1}]}%
{\endtcolorbox}
@@ -446,17 +469,17 @@ Saved lower part!
Now, the saved part is used:
\begin{tcolorbox}[colback=green!5]
-\input{\jobname_bspsave2.tex}
+\input{\jobname_bspsave3.tex}
\end{tcolorbox}
\end{exdispExample}
\enlargethispage*{1cm}
-The |savedelimiter| is used implicitely with \refCom{newtcolorbox} which
+The |savedelimiter| is used implicitly with \refCom{newtcolorbox} which
allows a more convenient usage:
\begin{exdispExample}{savedelimiter2}
\newtcolorbox{mybox}[1]{%
- savelowerto=\jobname_bspsave2.tex,lowerbox=ignored,
+ savelowerto=\jobname_bspsave4.tex,lowerbox=ignored,
colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,
title={#1}}%
@@ -468,7 +491,7 @@ Saved lower part!
Now, the saved part is used:
\begin{tcolorbox}[colback=green!5]
-\input{\jobname_bspsave2.tex}
+\input{\jobname_bspsave4.tex}
\end{tcolorbox}
\end{exdispExample}
\end{docTcbKey}
@@ -2631,6 +2654,99 @@ Lower part.
\end{exdispExample*}
\end{docTcbKey}
+\clearpage
+
+\begin{docTcbKeys}[
+ doc new = 2023-10-16,
+ doc description = style,
+ ]
+ {
+ { doc name = environment upper, doc parameter={=\meta{name}} },
+ { doc name = environment upper args, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before upper*}
+ to |\begin|\marg{name} and \refKey{/tcb/after upper*}
+ to |\end|\marg{name}, i.e. the upper part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+\begin{exdispExample}{environment_upper_1}
+\begin{tcolorbox}[colback=yellow!30, colframe=yellow!80!black,
+ environment upper=itemize
+]
+ \item one
+ \item two
+\end{tcolorbox}
+\end{exdispExample}
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\begin{exdispExample}{environment_upper_2}
+\begin{tcolorbox}[center upper,
+ colback=yellow!30, colframe=yellow!80!black,
+ environment upper args={tabular}{{cc}}
+]
+ one & two \\
+ three & four\\
+\end{tcolorbox}
+\end{exdispExample}
+\begin{exdispExample}{environment_upper_3}
+\begin{tcolorbox}[colback=yellow!30, colframe=yellow!80!black,
+ environment upper args = {list}{{\bfseries Fact:}
+ {\setlength\itemsep{0pt}\setlength\parsep{0pt}}},
+]
+ \item Blue is red
+ \item Red is green
+\end{tcolorbox}
+\end{exdispExample}
+\end{docTcbKeys}
+
+
+\begin{marker}
+\refKey{/tcb/environment upper} and friends (following) cannot be used to
+wrap another |tcolorbox|-based environment, i.e. never use
+|/tcb/environment upper=tcolorbox| or
+|/tcb/environment upper=etc-derived-from-tcolorbox|.
+\end{marker}
+
+
+\clearpage
+
+\begin{docTcbKeys}[
+ doc new = 2023-10-16,
+ doc description = style,
+ ]
+ {
+ { doc name = environment lower, doc parameter={=\meta{name}} },
+ { doc name = environment lower args, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before lower*}
+ to |\begin|\marg{name} and \refKey{/tcb/after lower*}
+ to |\end|\marg{name}, i.e. the lower part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+
+ See \refKey{/tcb/environment upper} for analog examples.
+\end{docTcbKeys}
+
+
+\begin{docTcbKeys}[
+ doc new = 2023-10-16,
+ doc description = style,
+ ]
+ {
+ { doc name = environment title, doc parameter={=\meta{name}} },
+ { doc name = environment title args, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before title*}
+ to |\begin|\marg{name} and \refKey{/tcb/after title*}
+ to |\end|\marg{name}, i.e. the title text is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+
+ See \refKey{/tcb/environment upper} for analog examples.
+\end{docTcbKeys}
+
+
\clearpage
\subsection{Overlays}\label{subsec:overlays}
@@ -3848,7 +3964,7 @@ in the following order. Following options overwrite preceding options.
\item For layer 2 and above (nested boxes), a \refKey{/tcb/reset} followed by
\refKey{/tcb/every box} option list is applied.
Every resettable options given by a preceding \refCom{tcbset}
- and by the sourrounding box(es) are reset.
+ and by the surrounding box(es) are reset.
\end{itemize}
\item The \meta{options} given to the |tcolorbox| are applied.
Or, if the box was generated by \refCom{newtcolorbox} or friends,
@@ -4013,7 +4129,7 @@ This is a tcolorbox.
\clearpage
\subsection{Text Characteristics}
-\begin{docTcbKey}[][doc updated=2015-10-14]{parbox}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
+\begin{docTcbKey}[][doc updated=2024-01-10]{parbox}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
The text inside a |tcolorbox| is formatted using a \LaTeX\ |minipage|
if the box is unbreakable. If breakable, the box tries a mimicry of
a |minipage|. In a |minipage| or |parbox|, paragraphs are formatted slightly different
@@ -4072,7 +4188,7 @@ targeting different box types and they do not blend very well.
\subsection{Files}
\begin{docTcbKey}{tempfile}{=\meta{file name}}{no default, initially \cs{jobname.tcbtemp}}
Sets \meta{file name} as name for the temporary file which is used inside
- \refEnv{tcbwritetemp} and \refCom{tcbusetemp} implicitely.
+ \refEnv{tcbwritetemp} and \refCom{tcbusetemp} implicitly.
\end{docTcbKey}
\clearpage
@@ -4430,7 +4546,7 @@ of a page.
\refKey{/tcb/toggle enlargement}, and
\refKey{/tcb/if odd page}
automatically set |check odd page|, but for
-\refCom{tcbifoddpage} this option has to be set explicitely.
+\refCom{tcbifoddpage} this option has to be set explicitly.
\end{docTcbKey}
\enlargethispage*{1cm}
@@ -4451,7 +4567,7 @@ If a box is \refKey{/tcb/breakable}, using \refKey{/tcb/if odd page}
only acts upon the \emph{first} box. If the setting should be
repeated for every partial box of the break sequence, the option should be
packed into \refKey{/tcb/extras}. In this case, \refKey{/tcb/check odd page}
-has to be set explicitely! Also see \refKey{/tcb/if odd page*}.
+has to be set explicitly! Also see \refKey{/tcb/if odd page*}.
\end{marker}
\end{docTcbKey}
@@ -4638,7 +4754,7 @@ Sets (nearly) all |tcolorbox| settings (including loaded libraries) back to thei
\emph{plus} any settings given by \refCom{tcbsetforeverylayer}.
\refKey{/tcb/savedelimiter}, \refKey{/tcb/capture}, and
\refKey{/tcb/shield externalize} keep their values.
-Also, all raster values (see \Vref{sec:raster}) are not resetted.
+Also, all raster values (see \Vref{sec:raster}) are not reset.
This option is useful for boxes in boxes where the inner box should not inherit
the settings of the outer box.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index ff9a02f154..9934cd5c86 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -18,7 +18,6 @@ This also loads
the library \mylib{skins}, see \Vref{sec:skins},
the library \mylib{raster}, see \Vref{sec:raster},
the library \mylib{listings}, see \Vref{sec:listings},
-the library \mylib{xparse}, see \Vref{sec:xparse},
and a bunch of packages, namely
|makeidx|, |marginnote|, |refcount|, and |hyperref|.
The packages |pifont| and |marvosym| should be installed for some symbols, but
@@ -73,10 +72,9 @@ For |minted| \cite{poore:minted} support, load:
\end{docCommand}
\end{dispExample}
\begin{dispExample}
-\begin{docCommand}[color definition=blue]{foomakedocSubKey*}%
- {\marg{name}\marg{key path}}
- Creates a new environment \meta{name} based on \refEnv{docKey} for the
- documentation of keys with the given \meta{key path}.
+\begin{docCommand}[doc no index,color definition=blue]{section}%
+ {\sarg\marg{title}}
+ Starts a section. The star variant is unnumbered.
\end{docCommand}
\end{dispExample}
\end{docEnvironment}
@@ -98,14 +96,12 @@ For |minted| \cite{poore:minted} support, load:
\begin{dispExample}
\begin{docCommands}[
doc no index, % no index entries for this example
- doc name = newtheorem,
- doc parameter = \marg{envname},
+ doc name = newtheorem
]
{
- { },
+ { doc parameter = \sarg\marg{envname} },
{ doc parameter = \marg{envname}\oarg{numbered within} },
- { doc parameter = \oarg{numbered like}\marg{envname} },
- { doc name = newtheorem* },
+ { doc parameter = \oarg{numbered like}\marg{envname} }
}
example
\end{docCommands}
@@ -352,7 +348,7 @@ The macro \docAuxCommand{fooaux} holds some interesting data.
}
Documents an auxiliary or minor \LaTeX\ environment with given \meta{name}.
The given \meta{options} are set with \refCom{tcbset}.
- This macro is automatically indexed indexed for \refCom{docAuxEnvironment}
+ This macro is automatically indexed for \refCom{docAuxEnvironment}
and has no index entry for \refCom{docAuxEnvironment*}.
\begin{dispExample}
The environment \docAuxEnvironment{fooauxenv} holds some interesting data.
@@ -452,7 +448,7 @@ This is a \cs{foocommand}.
\end{docCommand}
\begin{docCommand}{meta}{\marg{text}}
- Macro from |doc| \cite{mittelbach:2011a} to typeset a meta \meta{text}.
+ Macro from |doc| \cite{mittelbach:doc} to typeset a meta \meta{text}.
The library overwrites the original macro.
\begin{dispExample}
This is a \meta{text}.
@@ -564,10 +560,11 @@ heading line. Optionally, such a box can be split in an upper and a lower part.
\end{docEnvironment}
\clearpage
-\begin{docCommand}[doc updated=2020-04-22]{tcbmakedocSubKey}{\marg{name}\marg{key path}}
+\begin{docCommand}[doc updated=2023-12-01]{tcbmakedocSubKey}{\oarg{options}\marg{name}\marg{key path}}
Creates a new environment \meta{name} based on \refEnv{docKey} for the
documentation of keys with the given \meta{key path} as root.
The new environment \meta{name} takes the same para\-meters as \refEnv{docKey} itself.
+ The given \meta{options} are prepended to options of the \meta{name} environment.
A second starred environment \meta{name} is also created, which is identical
to \meta{name} but without index entry.
\begin{dispExample}
@@ -584,10 +581,12 @@ Some key (not indexed).
\end{docCommand}
-\begin{docCommand}[doc new=2020-04-22]{tcbmakedocSubKeys}{\marg{name}\marg{key path}}
+\begin{docCommand}[doc new and updated={2020-04-22}{2023-12-01}]{tcbmakedocSubKeys}{\oarg{options}\marg{name}\marg{key path}}
Creates a new environment \meta{name} based on \refEnv{docKeys} for the
documentation of keys with the given \meta{key path} as root.
The new environment \meta{name} takes the same para\-meters as \refEnv{docKeys} itself.
+ The given \meta{options} are prepended to options of the \meta{name} environment
+ (see \refKey{/tcb/index key formatter} for an example).
\begin{dispExample}
\tcbmakedocSubKeys{docFooKeys}{foo}
@@ -826,6 +825,85 @@ with another note.
\clearpage
+\begin{docTcbKeys}[
+ doc new = {2023-12-01},
+ doc name = doc key prefix,
+ doc parameter = {=\meta{key prefix}},
+ doc description = {no default, initially |/|},
+ ]{}
+ Sets the \meta{key prefix} (root path) of the key to document.
+ This prefix is prepended to \refKey{/tcb/doc keypath}, if
+ \refKey{/tcb/doc keypath} is not empty.
+ The default |/| setting is intended for |pgfkeys|.
+ For |l3keys|, setting \refKey{/tcb/doc key prefix} to be empty is more
+ appropriate, since their path starts with a module name without |/|.
+\begin{dispExample}
+\begin{docKeys}[
+ doc no index, % no index entries for this example
+ doc key prefix = ,
+ doc keypath = tcobox,% module name
+ doc name = my_l3_key,
+ doc parameter = {=\meta{some value}},
+ doc description = example,
+ ] {}
+ Documentation of a key using |l3keys|.
+\end{docKeys}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+
+\begin{docTcbKeys}[
+ doc new = {2023-12-01},
+ doc parameter = \colOpt{=\meta{macro}},
+ doc description = {no default, initially empty},
+ ]{
+ {
+ doc name = index key formatter,
+ },
+ {
+ doc name = index keys formatter,
+ }
+ }
+Sets \meta{macro} as formatter for the text given by
+\refKey{/tcb/doclang/key} or
+\refKey{/tcb/doclang/keys} inside the index.
+The \meta{macro} has to take one mandatory
+argument (the language text).
+The intended purpose is to differentiate between different sorts of
+keys, if necessary, e.g.\ between |pgfkeys| and |l3keys|.
+If these options are used without value, the formatters are reset to
+their standard behavior.
+
+\begin{dispExample}
+% See index of this documentation to recognize the effect
+\newcommand{\myFormatPgfkeysIndex}[1]{#1 (\textsf{pgfkeys})}
+\newcommand{\myFormatExplkeysIndex}[1]{#1 (\textsf{l3keys})}
+
+\tcbmakedocSubKey[
+ index key formatter=\myFormatPgfkeysIndex,
+ index keys formatter=\myFormatPgfkeysIndex
+ ]{docFooPgfkey}{foopgf}
+\tcbmakedocSubKey[
+ doc key prefix=,
+ index key formatter=\myFormatExplkeysIndex,
+ index keys formatter=\myFormatExplkeysIndex
+ ]{docFooExplkey}{fooexpl}
+
+\begin{docFooPgfkey}{foo pgf}{=\meta{name}}{no default, initially empty}
+ content
+\end{docFooPgfkey}
+
+\begin{docFooExplkey}{foo expl}{=\meta{name}}{no default, initially empty}
+ content
+\end{docFooExplkey}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+
+\clearpage
+
\begin{docTcbKey}{doc description}{=\meta{description}}{no default, initially empty}
Sets a (short!) additional \meta{description} for
\refEnv{docCommand}, \refEnv{docEnvironment}, or \refEnv{docPathOperation}.
@@ -871,7 +949,7 @@ hand side if too long. Linebreaks can be used inside the \meta{text}.
\begin{docTcbKey}[][doc new={2020-04-23}]{doc sort index}{=\meta{text}}{no default, initially unset}
If used inside the option list of \refEnv{docCommand}, \refEnv{docEnvironment},
\refEnv{docKey}, etc, then \meta{text} is used
- for as sort key for the index instead of the name of the definition.
+ as sort key for the index instead of the name of the definition.
\begin{dispListing}
\begin{docCommands}[
doc name = l_tcobox_example_tl,
@@ -907,7 +985,7 @@ which is commented by a note inside the margin.
\end{docTcbKey}
\begin{docTcbKey}[][doc new=2014-09-19]{doc new}{=\meta{date}}{style, no default}
- Adds a a marginnote with a \enquote{New: \meta{date}} message at the beginning of
+ Adds a marginnote with a \enquote{New: \meta{date}} message at the beginning of
the upper box part. The intended use is inside the option list of
\refEnv{docCommand}, \refEnv{docEnvironment}, etc.
\makeatletter\renewcommand*{\tcbdocnew}[1]{\kvtcb@text@new: #1}\makeatother%
@@ -1096,7 +1174,7 @@ The is an example text.
\tcbset{doc head key={boxsep=4pt,arc=4pt,boxrule=0.6pt,
frame style=fill,interior style=fill,colframe=green!50!black}}
-\begin{docKey}{/foo/myKey}{}{no value}
+\begin{docKey}[foo]{myKey}{}{no value}
This is the documentation of \refKey{/foo/myKey}.
\end{docKey}
\end{dispExample}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
index d1de4f3a15..b7a10c2331 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
@@ -368,7 +368,7 @@ Note that this option is ignored for \refKey{/tcb/externalize listing}.
initially |true|}
If set to |true|, the |\begin| and |\end| code of \refKey{/tcb/external/environment}
is appended with a percent sign. For verbatim environments, this option
-typically has to be se to |false|.
+typically has to be set to |false|.
\end{extTcbKey}
@@ -391,9 +391,7 @@ Note that this option is ignored for \refKey{/tcb/externalize listing}.
\begin{extTcbKey}[][doc new=2015-03-11]{compiler}{=\meta{text}}{no default,
initially \texttt{pdflatex}}
- Sets the name of the compiler for the snippets. Note that this compiler
- has to support the |\pdfmdfivesum| primitive e.g. using the
- |pdftexcmds| package. This should work for |xelatex| and |lualatex|.
+ Sets the name of the compiler for the snippets.
\end{extTcbKey}
\begin{extTcbKey}[][doc new=2015-03-11]{runs}{=\meta{number}}{no default,
@@ -605,14 +603,17 @@ This is my \LaTeX\ box.
not created.}\\
Depending on operating system and compiler, an |external| subdirectory is
automatically created or not. If not, create such a directory manually
- or add the following to your document\footnote{The |shellesc| package
- is loaded automatically by the library.}:
+ or add the following to your document:
\begin{dispListing}
-\ShellEscape{mkdir external}
+\ExplSyntaxOn
+\sys_shell_now:n { mkdir~external }
+\ExplSyntaxOff
\end{dispListing}
or
\begin{dispListing}
-\ShellEscape{mkdir -p external}
+\ExplSyntaxOn
+\sys_shell_now:n { mkdir~-p~external }
+\ExplSyntaxOff
\end{dispListing}
If the combination of \refKey{/tcb/external/prefix} and chosen snippet
name points to another subdirectory than |external|, this has to be
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
index d0761ca03d..14f9e7b577 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
@@ -392,7 +392,7 @@ The \refCom{tcboxfit} macro uses this algorithm by default.
\begin{tcolorbox}[fit basedim=7pt,
fontupper=\normalsize,
fit fontsize macros]
-The relative relative font size macros
+The relative font size macros
are also usable without the
\textit{fit} algorithm.\par
{\Huge Adapted Huge} ---
@@ -530,7 +530,7 @@ are adapted. In the following, adapting the font size means adapting
\begin{marker}
The used font has to be freely scalable for this method!
Other content than text is not scaled down.
- The aspect ratio is fully garanteed.
+ The aspect ratio is fully guaranteed.
\end{marker}
\item\docValue{fontsize*}:\tcbdocmarginnote{\tcbdocnew{2014-10-29}}
First, the \docValue{fontsize} algorithm is applied. If the font was scaled down
@@ -538,7 +538,7 @@ are adapted. In the following, adapting the font size means adapting
\begin{marker}
The used font has to be freely scalable for this method!
Other content than text may be slightly rescaled.
- The aspect ratio cannot be fully garanteed.
+ The aspect ratio cannot be fully guaranteed.
\end{marker}
\item\docValue{areasize}:
The algorithm calculates the area size for the text without scaling the font.
@@ -546,14 +546,14 @@ are adapted. In the following, adapting the font size means adapting
steps. Finally, it is scaled down with a standard |\resizebox| macro.
\begin{marker}
The used font has not to be scalable. Every box content is scaled down.
- The aspect ratio cannot be fully garanteed.
+ The aspect ratio cannot be fully guaranteed.
\end{marker}
\item\docValue{areasize*}:\tcbdocmarginnote{\tcbdocnew{2014-10-29}}
The \docValue{areasize} algorithm is applied, but if the content was scaled
down and the resulting height is too small, the box is squeezed to fit the area.
\begin{marker}
The used font has not to be scalable. Every box content is scaled down.
- The aspect ratio cannot be fully garanteed.
+ The aspect ratio cannot be fully guaranteed.
\end{marker}
\item\docValue{hybrid}:
First, this algorithm estimates the needed font size in one or two steps.
@@ -561,7 +561,7 @@ are adapted. In the following, adapting the font size means adapting
\begin{marker}
The used font has to be freely scalable for this method!
Other content than text may be slightly rescaled.
- The aspect ratio cannot be fully garanteed.
+ The aspect ratio cannot be fully guaranteed.
\end{marker}
\item\docValue{hybrid*}:\tcbdocmarginnote{\tcbdocnew{2014-10-29}}
First, this algorithm estimates the needed font size in one or two steps.
@@ -569,7 +569,7 @@ are adapted. In the following, adapting the font size means adapting
\begin{marker}
The used font has to be freely scalable for this method!
Other content than text may be slightly rescaled.
- The aspect ratio cannot be fully garanteed.
+ The aspect ratio cannot be fully guaranteed.
\end{marker}
\item\docValue{squeeze}:
The text box is brutally scaled down to fit.
@@ -659,7 +659,7 @@ if necessary.
switched off (including the ones for the finally used box).
\item\docValue{on}: All warnings for all auxiliary boxes are displayed.
\item\docValue{final}: Only warnings for the finally used box are displayed.
- Note that an additional box has to be contructed for theses messages.
+ Note that an additional box has to be constructed for these messages.
\end{itemize}
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
index e99c8271b7..fe441d4821 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
@@ -104,6 +104,7 @@ The auxiliary macro \docAuxCommand{imagepage} may be used inside
\begin{docTcbKey}[][doc new and updated={2014-11-14}{2018-03-18}]{graphics options}{=\meta{options}}{no default, initially empty}
Used for \refCom{tcbincludegraphics} and \refCom{tcbincludepdf} to
specify |\includegraphics| \meta{options}.
+Note that \meta{options} will be fully expanded.
\begin{dispExample}
% \tcbuselibrary{raster}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
index 5d8c115be9..8d5971c387 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
@@ -132,6 +132,104 @@ from page \pageref{subsec:contentadditions}.
Prepends the given \meta{code} to \refKey{/tcb/after lower} or \refKey{/tcb/after lower*} \emph{after} the content of the lower part.
\end{docTcbKey}
+\clearpage
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment title app, doc parameter={=\meta{name}} },
+ { doc name = environment title args app, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before title app}
+ to |\begin|\marg{name} and \refKey{/tcb/after title pre}
+ to |\end|\marg{name}, i.e. the title text is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment title pre, doc parameter={=\meta{name}} },
+ { doc name = environment title args pre, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before title pre}
+ to |\begin|\marg{name} and \refKey{/tcb/after title app}
+ to |\end|\marg{name}, i.e. the title text is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment upper app, doc parameter={=\meta{name}} },
+ { doc name = environment upper args app, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before upper app}
+ to |\begin|\marg{name} and \refKey{/tcb/after upper pre}
+ to |\end|\marg{name}, i.e. the upper part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment upper pre, doc parameter={=\meta{name}} },
+ { doc name = environment upper args pre, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before upper pre}
+ to |\begin|\marg{name} and \refKey{/tcb/after upper app}
+ to |\end|\marg{name}, i.e. the upper part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment lower app, doc parameter={=\meta{name}} },
+ { doc name = environment lower args app, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before lower app}
+ to |\begin|\marg{name} and \refKey{/tcb/after lower pre}
+ to |\end|\marg{name}, i.e. the lower part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
+\begin{docTcbKeys}[
+ doc new = 2023-11-13,
+ doc description = style,
+ ]
+ {
+ { doc name = environment lower pre, doc parameter={=\meta{name}} },
+ { doc name = environment lower args pre, doc parameter={=\marg{name}\marg{code}} }
+ }
+ This shortcut style sets \refKey{/tcb/before lower pre}
+ to |\begin|\marg{name} and \refKey{/tcb/after lower app}
+ to |\end|\marg{name}, i.e. the lower part is enclosed by the environment \meta{name}.
+ The second variant also places \meta{code} after |\begin|\marg{name}.
+ Note that you may need \emph{additional} brackets around \meta{code}, if
+ \meta{code} contains some para\-meter(s) for the environment \meta{name}.
+\end{docTcbKeys}
+
\clearpage
\subsection{Embedding into the Surroundings}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
index 2fb03f3893..47102b826f 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
@@ -174,7 +174,7 @@ to reset the box array counter.\enlargethispage*{2cm}
If the first box part should fill the rest of the available space of
the current page, you can use |\pagegoal-\pagetotal| minus some distance for
the first element of \refKey{/tcb/break at}. You may want to have some
-additional distance to the preceeding text.
+additional distance to the preceding text.
\begin{dispListing}
% \usepackage{lipsum}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
index 85436abcd7..085d789a36 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
@@ -16,7 +16,7 @@ similar looking results and may be more appropriate
depending on the actual project.
\begin{itemize}
\item The \mylib{raster} library has a flow oriented concept, just like a
- convential text flow. The text flow (box flow) is a merely endless ribbon
+ conventional text flow. The text flow (box flow) is a merely endless ribbon
which gets broken into lines (and paragraphs) and the lines are broken
into pages. \mylib{raster} shapes the boxes to convenient sizes to fill
lines and pages in a pleasant way.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
index a2eb8ac395..59d89a7a11 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
@@ -7,12 +7,6 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{raster}
\end{dispListing}
-%This also loads the package |xparse| \cite{latexproject:xparse}.
-
-%The purpose of this library is to give comfortable access to the
-%powerful document command production with |xparse| for |tcolorbox|.
-%See the |xparse| package documentation \cite{latexproject:xparse}
-%for details about the argument \meta{specification} used in this section.
\subsection{Concept of Rasters}\label{subsec:raster_overview}
@@ -855,7 +849,7 @@ space has to be distributed accordingly.
\item For fixed height boxes/rasters using \refKey{/tcb/raster height},
the height of boxes is available by \refCom{tcbtextheight}. This can be
used to size deeper layered boxes/rasters.
-\item For boxes/rasters layed out using \refKey{/tcb/raster equal height},
+\item For boxes/rasters laid out using \refKey{/tcb/raster equal height},
space can be distributed by \refKey{/tcb/space to}.
It can take several compilations until all spaces are distributed correctly.
\end{itemize}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 5aaf1b54a7..3eabd88b1e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -12,7 +12,7 @@
\RequirePackage[english]{babel}
\RequirePackage{lmodern,parskip,array,ifthen,calc}
\RequirePackage{amsmath,amssymb}
-\RequirePackage[svgnames,table,hyperref]{xcolor}
+\RequirePackage[svgnames,table]{xcolor}
\RequirePackage{tikz}
\usetikzlibrary{shadings,shadows}
@@ -205,6 +205,7 @@
meta,marg,
oarg,
refCom,refEnv,refKey,
+ sarg,
tcbmakedocSubKey,tcbdocmarginnote,tcbdocnew,tcbdocupdated,
% skins
tcbincludegraphics,tcbincludepdf,pdfpages,imagepage,imagepath,imagename,
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
index 0292ceb48a..e92d81a644 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
@@ -2087,13 +2087,13 @@ This is a tcolorbox.
from the frame outline. A positive \meta{offset} value shrinks the shadow
and a negative \meta{offset} value enlarges the shadow.
The shadow is filled along a \tikzname\ path with the given \tikzname\ \meta{options}.\\
- The shadows adapt to the rounded corners of the |tcolorbox|. An shrinked shadow
+ The shadows adapt to the rounded corners of the |tcolorbox|. A shrinked shadow
will switch to sharp corners if necessary, an enlarged shadow may become
more rounded depending on several factors. But \refKey{/tcb/sharp corners}
have sharp shadows.
\begin{marker}
Shadows are not considered for the bounding box computation by default.
- Large shadows may be overlaped by the following content. But, the
+ Large shadows may be overlapped by the following content. But, the
bounding box can be adapted if necessary.
\end{marker}
@@ -2955,7 +2955,7 @@ The resulting skins are called \emph{jigsaw} skins. For \refSkin{standard},
\clearpage
\subsection{Draft Mode}\label{subsec:draftmode}
-To reduce the compiliation time while drafting a document, the \emph{draft mode}
+To reduce the compilation time while drafting a document, the \emph{draft mode}
can be applied. Basically, it changes all skins to \refSkin{spartan} and
sets the \refKey{/tcb/fit algorithm} to |squeeze|. Especially,
when fuzzy shadows are used, the speedup will be considerable high.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
index 5e21a0b92f..4884e85f57 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
@@ -838,7 +838,7 @@ New colored mathematical environments are easily created using
\bigskip
\begin{marker}
All described options like \refKey{/tcb/ams gather upper}, \refKey{/tcb/ams gather lower},
- \refKey{/tcb/ams gather} are (partially) setting (overwritting) the
+ \refKey{/tcb/ams gather} are (partially) setting (overwriting) the
keys \refKey{/tcb/before upper}, \refKey{/tcb/after upper},
\refKey{/tcb/before lower}, \refKey{/tcb/after lower}.\par
Therefore, e.\,g.\ |\tcbset{ams gather,before upper={\text{Pythagoras:}}}|
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index f9e23664ce..a7499395e4 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index 812b9dcc90..be2dc7e19b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/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,
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index be4bd0afc7..b7c1742391 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.tex
@@ -1,9 +1,9 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.1.0 (2023/09/26)
+%% The LaTeX package tcolorbox - version 6.2.0 (2024/01/10)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
-%% 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
@@ -51,8 +51,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{6.1.0}%
-\def\datum{2023/09/26}%
+\def\version{6.2.0}%
+\def\datum{2024/01/10}%
\makeindex
\hypersetup{
@@ -65,12 +65,10 @@
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
-\nocite{breitenlohner:1998a}
-
%\geometry{showframe}
%\tcbset{draftmode}
\tcbset{/tcb/external/-}% for final run
-%\includeonly{tcolorbox.doc.coreoptions}
+%\includeonly{tcolorbox.doc.initoptions,tcolorbox.doc.index}
%\hypersetup{colorlinks=false}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%