summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tcolorbox
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-23 03:00:50 +0000
committerNorbert Preining <norbert@preining.info>2022-06-23 03:00:50 +0000
commit00e67dfd87c53faeafcf0c9e66c8c2c7a410fcb8 (patch)
treeef301069afe23459e4f42b83386787a5aca10e5f /macros/latex/contrib/tcolorbox
parentd6888fdb49e3ac954c2d436951f364d3a4a4b17d (diff)
CTAN sync 202206230300
Diffstat (limited to 'macros/latex/contrib/tcolorbox')
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md55
-rw-r--r--macros/latex/contrib/tcolorbox/README.md2
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex7
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex203
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex109
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex11
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex161
-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.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex13
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex284
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin281298 -> 281296 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin469092 -> 469093 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin456130 -> 455911 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex251
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex233
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex71
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex182
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex19
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex223
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex7
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex45
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex639
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin7594786 -> 7669273 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty366
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex17
40 files changed, 1696 insertions, 1286 deletions
diff --git a/macros/latex/contrib/tcolorbox/CHANGES.md b/macros/latex/contrib/tcolorbox/CHANGES.md
index cd0cb3a989..5dc1a6549f 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES.md
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -22,6 +22,59 @@ and this project adheres to
+## [5.1.0] - 2022-06-22
+
+### Added
+- Options wrapping `\tl_if_blank:nTF` and `\tl_if_empty:nTF` (issue #179)
+ - Option `IfBlankTF`
+ - Option `IfBlankT`
+ - Option `IfBlankF`
+ - Option `IfEmptyTF`
+ - Option `IfEmptyT`
+ - Option `IfEmptyF`
+- Options to insert code at begin and end of floats (issue #172)
+ - Option `before float`
+ - Option `after float`
+ - Option `before float app`
+ - Option `before float pre`
+ - Option `after float app`
+ - Option `after float pre`
+- Library `skins`: overlap of lower part for `bicolor`, `tile`, and `beamer`
+ made configurable (issue #166) by
+ - Option `overlaplower`
+ - `\tcboverlaplower`
+- Library `documentation`: package warning, if `imakeidx` is loaded after the
+ library is loaded (issue #173)
+- Library `documentation`: gather index LaTeX macros and configure gathering (issue #174)
+ - Option `doclang/commands`
+ - Option `index gather colors`
+ - Option `index gather commands`
+ - Option `index gather counters`
+ - Option `index gather environments`
+ - Option `index gather keys`
+ - Option `index gather lengths`
+ - Option `index gather paths`
+ - Option `index gather values`
+ - Option `index gather all`
+ - Option `index gather none`
+
+### Changed
+- Required latex2e specified `\NeedsTeXFormat{LaTeX2e}[2020/10/01]` (issue #170)
+- Documentation: comment `default setting` for `every box on higher layers` (issue #168)
+- Documentation: hyperlinking keys and commands where not already done inside
+ the listings section (part of issue #175)
+- All contents of library `xparse` are moved to the `tcolorbox` main package and
+ to libraries `listings` and `fitting` respectively. `xparse` now only loads
+ the package `xparse` (issue #180)
+- Internal implementation of all `\new*` commands, e.g. `\newtcolorbox` changed.
+ Note that a missing backlash for `tcbox`-like commands
+ e.g. `\newtcbox{mybox}` instead of `\newtcbox{\mybox}` is no longer tolerated.
+
+### Fixed
+- With `parbox=false`, `before skip` was ignored in inner box (issue #171)
+
+
+
## [5.0.2] - 2022-01-07
### Changed
@@ -35,7 +88,6 @@ and this project adheres to
-
## [5.0.1] - 2021-12-20
### Fixed
@@ -44,6 +96,7 @@ and this project adheres to
This also affected boxes with sidebyside content
+
## [5.0.0] - 2021-12-16
### Added
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
index 38f71ac584..5677aebf2e 100644
--- a/macros/latex/contrib/tcolorbox/README.md
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+# The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
> Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index 543d767c67..c5f982ebd7 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbbreakable.code.tex: Code for breakable colorboxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{pdfcol}
\pdfcolInitStack{tcb@breakable}
@@ -95,7 +95,6 @@
\@setminipage\tcb@hyph@fix%
\let\tcb@drawcolorbox\tcb@drawcolorbox@standalone%
\let\FN@pp@footnote\@empty% disable perpage mode of 'footmisc' package
- \ignorespaces%
}
\def\endtcb@vbox{%
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index 7a97196d34..ffa29fd17d 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbdocumentation.code.tex: Code for LaTeX documentations
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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,11 +17,17 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{listings,skins,xparse,external,raster}
-\ifdefined\printindex\else\RequirePackage{makeidx}[2000/03/29]\fi
+\ifdefined\printindex\else%
+ \RequirePackage{makeidx}[2000/03/29]%
+ \AddToHook{begindocument/before}{%
+ \@ifpackageloaded{imakeidx}{%
+ \tcb@warning{`imakeidx' package should be loaded before `documentation' library}%
+ }{}}%
+\fi
\RequirePackage{refcount}[2011/10/16]
\RequirePackage{hyperref}[2012/02/06]
\ifdefined\marginnote\else\RequirePackage{marginnote}[2012/03/29]\fi
@@ -88,7 +94,6 @@
\colOpt{{\ttfamily[}\meta{#1}{\ttfamily]}}}
\def\brackets#1{{\ttfamily\char`\{}#1{\ttfamily\char`\}}}
-\newif\iftcb@doc@toindex
\newif\iftcb@doc@colorize
\newif\iftcb@doc@annotate
@@ -102,6 +107,7 @@
environment content/.store in=\kvtcb@text@envcontent,
environment/.store in=\kvtcb@text@env,
environments/.store in=\kvtcb@text@envs,
+ commands/.store in=\kvtcb@text@coms,
index/.store in=\kvtcb@text@index,
key/.store in=\kvtcb@text@key,
keys/.store in=\kvtcb@text@keys,
@@ -182,7 +188,6 @@
after doc body/.style={after doc body command={#1},after doc body environment={#1}
,after doc body key={#1},after doc body path={#1}},
doc description/.store in=\kvtcb@doc@description,%
- doc into index/.is if=tcb@doc@toindex,%
doc no index/.style={doc into index=false},
doc updated/.style={before upper={\tcbdocmarginnote{\tcbdocupdated{#1}}}},
doc new/.style={before upper={\tcbdocmarginnote{\tcbdocnew{#1}}}},
@@ -210,6 +215,7 @@
counter=counter,counters=Counters,
environment content=environment content,
environment=environment,environments=Environments,
+ commands=Commands,
path=path operation,paths=Path operations,
index=Index,
key=key,keys=Keys,
@@ -277,28 +283,28 @@
\iftcb@doc@colorize\textcolor{#2}{\tcb@cs{#1}}\else\tcb@cs{#1}\fi%
}
-\newrobustcmd{\tcbIndexPrintComC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@command}}
+\NewDocumentCommand{\tcbIndexPrintComC}{m}{\tcb@Index@Print@ComC{#1}{\kvtcb@col@command}}
-\newrobustcmd{\tcbIndexPrintEnvCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@environment}{\kvtcb@text@env}}
-\newrobustcmd{\tcbIndexPrintEnvC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@environment}}
+\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}}
-\newrobustcmd{\tcbIndexPrintKeyCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}}
-\newrobustcmd{\tcbIndexPrintKeyC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@key}}
-\newrobustcmd{\tcbIndexPrintPathCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@path}{\kvtcb@text@path}}
-\newrobustcmd{\tcbIndexPrintPathC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@path}}
+\NewDocumentCommand{\tcbIndexPrintPathCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@path}{\kvtcb@text@path}}
+\NewDocumentCommand{\tcbIndexPrintPathC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@path}}
-\newrobustcmd{\tcbIndexPrintValCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@value}{\kvtcb@text@value}}
-\newrobustcmd{\tcbIndexPrintValC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@value}}
+\NewDocumentCommand{\tcbIndexPrintValCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@value}{\kvtcb@text@value}}
+\NewDocumentCommand{\tcbIndexPrintValC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@value}}
-\newrobustcmd{\tcbIndexPrintColCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@color}{\kvtcb@text@color}}
-\newrobustcmd{\tcbIndexPrintColC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@color}}
+\NewDocumentCommand{\tcbIndexPrintColCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@color}{\kvtcb@text@color}}
+\NewDocumentCommand{\tcbIndexPrintColC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@color}}
-\newrobustcmd{\tcbIndexPrintCountCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@counter}{\kvtcb@text@counter}}
-\newrobustcmd{\tcbIndexPrintCountC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@counter}{\kvtcb@text@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@counter}}
-\newrobustcmd{\tcbIndexPrintLenCA}[1]{\tcb@Index@Print@ComCA{#1}{\kvtcb@col@length}{\kvtcb@text@length}}
-\newrobustcmd{\tcbIndexPrintLenC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@length}}
+\NewDocumentCommand{\tcbIndexPrintLenCA}{m}{\tcb@Index@Print@ComCA{#1}{\kvtcb@col@length}{\kvtcb@text@length}}
+\NewDocumentCommand{\tcbIndexPrintLenC}{m}{\tcb@Index@Print@ComC{#1}{\kvtcb@col@length}}
\newenvironment{tcb@manual@entry}{\begin{list}{}{%
@@ -326,6 +332,29 @@
\ExplSyntaxOn
+\cs_new_nopar:Npn \__tcobox_new_bool_key:nn #1 #2
+ {
+ \bool_new:N #1
+ \tcbset
+ {
+ #2/.is~choice,
+ #2/true/.code = { \bool_set_true:N #1 },
+ #2/false/.code = { \bool_set_false:N #1 },
+ #2/.default = true,
+ }
+ }
+
+\__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
{
\group_begin:
@@ -416,9 +445,14 @@
\cs_new_nopar:Npn \__tcobox_index_command:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_commands_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@coms\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_command:
@@ -457,7 +491,7 @@
\NewDocumentEnvironment{docCommand*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docCommand}
}
{
@@ -473,10 +507,14 @@
\cs_new_nopar:Npn \__tcobox_index_environment:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@envs\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvCA{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_environments_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@envs\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_environment:
@@ -517,7 +555,7 @@
\NewDocumentEnvironment{docEnvironment*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docEnvironment}
}
{
@@ -538,17 +576,21 @@
\cs_new_nopar:Npn \__tcobox_index_key:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}}
- \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@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{/\kvtcb@doc@keypath/}
- \idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
- }
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}}
+ \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@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{/\kvtcb@doc@keypath/}
+ \idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
+ }
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_key:
@@ -603,7 +645,7 @@
\NewDocumentEnvironment{docKey*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docKey}
}
{
@@ -633,7 +675,7 @@
\NewDocumentEnvironment{#1*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{#1}
}
{
@@ -668,10 +710,14 @@
\cs_new_nopar:Npn \__tcobox_index_path:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@paths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathCA{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_paths_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@paths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_path:
@@ -710,7 +756,7 @@
\NewDocumentEnvironment{docPathOperation*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docPathOperation}
}
{
@@ -756,7 +802,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@values\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_values_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@values\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -770,7 +819,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@colors\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_colors_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@colors\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -784,7 +836,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@counters\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_counters_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@counters\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -798,7 +853,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@lengths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_lengths_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@lengths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -887,17 +945,19 @@
\ExplSyntaxOn
\def\tcb@doc@index@doc{
- \def \__tcobox_index_command:
+ \cs_set_nopar:Npn \__tcobox_index_command:
{
- \iftcb@doc@toindex
- \SpecialMainIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \SpecialMainIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ }
}
- \def \__tcobox_index_environment:
+ \cs_set_nopar:Npn \__tcobox_index_environment:
{
- \iftcb@doc@toindex
- \SpecialMainEnvIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \SpecialMainEnvIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
+ }
}
\tcbset{index~german~settings}
\EnableCrossrefs
@@ -908,6 +968,28 @@
\def\tcb@doc@index@off{}
\tcbset{%
+ index gather all/.style={%
+ index gather colors=true,
+ index gather commands=true,
+ index gather counters=true,
+ index gather environments=true,
+ index gather keys=true,
+ index gather lengths=true,
+ index gather paths=true,
+ index gather values=true},
+ index gather none/.style={%
+ index gather colors=false,
+ index gather commands=false,
+ index gather counters=false,
+ index gather environments=false,
+ index gather keys=false,
+ index gather lengths=false,
+ index gather paths=false,
+ index gather values=false},
+}
+
+
+\tcbset{%
reset@documentation/.style={%
},
initialize@reset=reset@documentation,
@@ -921,6 +1003,7 @@
after doc body=,
documentation listing style=tcbdocumentation,
doc into index=true,
+ index gather all,
doc marginnote=,
color option=Option,
color definition=Definition,
diff --git a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index cdc0c2b9e8..094a35e8cc 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbexternal.code.tex: Code for externalization
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index 1259be495c..0c4f6368cd 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbfitting.code.tex: Code for fit boxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\newdimen\tcbfitdim
\newdimen\tcb@lowerfitdim
@@ -371,27 +371,100 @@
\tcb@ox{capture=fitbox,#1}{#2}%
}
-\long\def\tcb@newtcboxfit#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcboxfit[#2,options@for=#1]}}
-\long\def\tcb@newtcboxfit@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcboxfit[#3,options@for=#1]}}
+\ExplSyntaxOn
-\long\def\tcb@newtcboxfit@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcboxfit[#4,options@for=#1]}}
-\long\def\tcb@new@tcboxfit@#1[#2]{%
- \@ifnextchar[{\tcb@newtcboxfit@@{#1}[#2]}{\tcb@newtcboxfit@{#1}[#2]}}
+\NewDocumentCommand \__tcobox_new_tcboxfit_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcboxfit[#6,options@for=#3] }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcboxfit[#6,options@for=#3] }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcboxfit[#6,options@for=#3] }
+ }
+ }
+ }
+\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
+ }
+\NewDocumentCommand \newtcboxfit { }
+ {
+ \__tcobox_new_tcboxfit_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcboxfit { }
+ {
+ \__tcobox_new_tcboxfit_i:w \renewcommand
+ }
-\long\def\tcb@new@tcboxfit#1{%
- \@ifnextchar[{\tcb@new@tcboxfit@{#1}}{\tcb@newtcboxfit{#1}}}
-\def\newtcboxfit{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcboxfit%
- \tcb@process@newcommand}
+\cs_new:Npn \__tcobox_new_TCBoxFit:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcboxfit[#5,options@for=#3] }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \ProvideDocumentCommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTCBoxFit:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcboxfit[#5,options@for=#3]{#6} }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\def\renewtcboxfit{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcboxfit%
- \tcb@process@newcommand}
\tcbset{%
reset@fitting/.style={%
diff --git a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index f3197fbcf5..dd06324a65 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
@@ -40,6 +40,11 @@
after app/.code={\appto\kvtcb@afterbox{#1}},%
after pre/.code={\preto\kvtcb@afterbox{#1}},%
%
+ before float app/.code={\appto\kvtcb@beforefloat{#1}},%
+ before float pre/.code={\preto\kvtcb@beforefloat{#1}},%
+ after float app/.code={\appto\kvtcb@afterfloat{#1}},%
+ after float pre/.code={\preto\kvtcb@afterfloat{#1}},%
+ %
overlay unbroken app/.code={\appto\tcb@overlay@unbroken{#1}},%
overlay unbroken pre/.code={\preto\tcb@overlay@unbroken{#1}},%
overlay first app/.code={\appto\tcb@overlay@first{#1}},%
diff --git a/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index 7d74e9ad6e..e66d95a375 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistings.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.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 d461068fe2..a13d4ccbc9 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{pro@cessing}
@@ -276,49 +276,122 @@
\begingroup\tcbverbatimwrite{\kvtcb@listingfile}%
}{\endtcbverbatimwrite\endgroup}
-\long\def\tcb@newtcblisting#1#2{\tcb@newenvironment{#1}{\tcblisting{#2,options@for=#1}}{\endtcblisting}}
-\long\def\tcb@newtcblisting@#1[#2]#3{\tcb@newenvironment{#1}[#2]{\tcblisting{#3,options@for=#1}}{\endtcblisting}}
+\ExplSyntaxOn
+
+
+\NewDocumentCommand \__tcobox_new_tcblisting:w { m +o m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ #1 { #3 }{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ #1 { #3 }[ #4 ]{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ {
+ #1 { #3 }[ #4 ][ #5 ]{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ }
+ }
+\NewDocumentCommand \newtcblisting { }
+ {
+ \__tcobox_new_tcblisting:w \newenvironment
+ }
+\NewDocumentCommand \renewtcblisting { }
+ {
+ \__tcobox_new_tcblisting:w \renewenvironment
+ }
+
+
+\NewDocumentCommand \__tcobox_new_TCBListing:w { m +o m +m +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ #1 { #3 }{ #4 }{ \tcblisting{#5,options@for=#3} }{ \endtcblisting }
+ }
+\NewDocumentCommand \DeclareTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \DeclareDocumentEnvironment
+ }
+\NewDocumentCommand \NewTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \NewDocumentEnvironment
+ }
+\NewDocumentCommand \RenewTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \RenewDocumentEnvironment
+ }
+\NewDocumentCommand \ProvideTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \ProvideDocumentEnvironment
+ }
+
+
+\NewDocumentCommand \__tcobox_new_tcbinputlisting_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ }
+ }
+\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
+ }
+\NewDocumentCommand \newtcbinputlisting { }
+ {
+ \__tcobox_new_tcbinputlisting_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcbinputlisting { }
+ {
+ \__tcobox_new_tcbinputlisting_i:w \renewcommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TCBInputListing:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbinputlisting{#5,options@for=#3} }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\long\def\tcb@newtcblisting@@#1[#2][#3]#4{\tcb@newenvironment{#1}[#2][#3]{\tcblisting{#4,options@for=#1}}{\endtcblisting}}
-
-\long\def\tcb@new@tcblisting@#1[#2]{%
- \@ifnextchar[{\tcb@newtcblisting@@{#1}[#2]}{\tcb@newtcblisting@{#1}[#2]}}
-
-\def\tcb@new@tcblisting#1{%
- \@ifnextchar[{\tcb@new@tcblisting@{#1}}{\tcb@newtcblisting{#1}}}
-
-\def\newtcblisting{%
- \let\tcb@newenvironment\newenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcblisting%
- \tcb@process@newenvironment}
-
-\def\renewtcblisting{%
- \let\tcb@newenvironment\renewenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcblisting%
- \tcb@process@newenvironment}
-
-\long\def\tcb@newtcbinputlisting#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcbinputlisting{#2,options@for=#1}}}
-
-\long\def\tcb@newtcbinputlisting@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcbinputlisting{#3,options@for=#1}}}
-
-\long\def\tcb@newtcbinputlisting@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcbinputlisting{#4,options@for=#1}}}
-
-\long\def\tcb@new@tcbinputlisting@#1[#2]{%
- \@ifnextchar[{\tcb@newtcbinputlisting@@{#1}[#2]}{\tcb@newtcbinputlisting@{#1}[#2]}}
-
-\def\tcb@new@tcbinputlisting#1{%
- \@ifnextchar[{\tcb@new@tcbinputlisting@{#1}}{\tcb@newtcbinputlisting{#1}}}
-
-\def\newtcbinputlisting{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbinputlisting%
- \tcb@process@newcommand}
-
-\def\renewtcbinputlisting{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbinputlisting%
- \tcb@process@newcommand}
\tcbset{%
reset@listingscore/.style={%
diff --git a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index 0946a01a81..64ecfd73a3 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{listings}
diff --git a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index 0ba0c9f278..f719cd1990 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbmagazine.code.tex: Code for box sets and magazine styles
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index 802f48e902..37bcb4055f 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbminted.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{minted}[2021/12/24]
diff --git a/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index 7a4ec1aa60..aaa2029f63 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbposter.code.tex: Code for posters
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.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 1575b8e990..86dd5edc9d 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbprocessing.code.tex: Code for conditional processing
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{pdftexcmds}
\RequirePackage{shellesc}
diff --git a/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index 78c1ba5505..b1ea20394d 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\newcounter{tcbrastercolumn}
\newcounter{tcbrasterrow}
diff --git a/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 3d048c71c3..666a17e349 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskins.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{tikz}[2010/10/13]
@@ -217,12 +217,12 @@
}
\def\tcb@drawspec@LR#1{%
- \tcb@pathbase{#1,segmentation@style}{interior.south west}{[yshift=0.1mm]segmentation.east}%
+ \tcb@pathbase{#1,segmentation@style}{interior.south west}{[yshift=\tcboverlaplower]segmentation.east}%
{\tcb@arc@ins@SW}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@ins@SE}%
}
\def\tcb@drawspec@LS#1{%
- \tcb@pathbase{#1,segmentation@style}{interior.west|-frame.south}{[yshift=0.1mm]segmentation.east}%
+ \tcb@pathbase{#1,segmentation@style}{interior.west|-frame.south}{[yshift=\tcboverlaplower]segmentation.east}%
{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}%
}
@@ -409,6 +409,7 @@
\fi}},%
colbacklower/.colorlet=tcbcolbacklower,%
opacitybacklower/.store in=\kvtcb@opacitybacklower,
+ overlaplower/.dimstore in=\tcboverlaplower,
clear@spec/.code={\tcb@spec{}},%
tikz/.code={\appto\tcb@tikz@option@hook{,#1}},%
tikz reset/.code={\let\tcb@tikz@option@hook\@empty},%
@@ -2001,7 +2002,7 @@
\tcbset{%
reset@skins/.style={%
frame style=,interior style=,segmentation style=,@title style=,%
- colbacklower=black!15!white,opacitybacklower=1.0,%
+ colbacklower=black!15!white,opacitybacklower=1.0,overlaplower=0.1mm,%
extend freelance=,extend freelancefirst=,extend freelancemiddle=,extend freelancelast=,%
clear@spec,%
watermark opacity=1.00,watermark color=tcbcolback!85!tcbcolframe,%
diff --git a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index 3fe250f208..237625e9ba 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index f1b4820ebc..22d65d0b65 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbtheorems.code.tex: Code for theorems in colorboxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{amsmath}
diff --git a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index f6da2fd7f6..5450aab75e 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbvignette.code.tex: Code for ornamental frames
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index f2fba3e0d8..8b98f90983 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbxparse.code.tex: Code for xparse features
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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,284 +18,6 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{xparse}[2013/12/31]
-
-\tcbset{%
- IfNoValueTF/.code n args={3}{\IfNoValueTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfNoValueT/.code n args={2}{\IfNoValueT{#1}{\pgfkeysalso{#2}}},
- IfNoValueF/.code n args={2}{\IfNoValueF{#1}{\pgfkeysalso{#2}}},
- IfValueTF/.code n args={3}{\IfValueTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfValueT/.code n args={2}{\IfValueT{#1}{\pgfkeysalso{#2}}},
- IfValueF/.code n args={2}{\IfValueF{#1}{\pgfkeysalso{#2}}},
- IfBooleanTF/.code n args={3}{\IfBooleanTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfBooleanT/.code n args={2}{\IfBooleanT{#1}{\pgfkeysalso{#2}}},
- IfBooleanF/.code n args={2}{\IfBooleanF{#1}{\pgfkeysalso{#2}}},
- verbatim/.style={fontupper=\ttfamily,nobeforeafter,tcbox raise base,top=0pt,bottom=0pt,left=1mm,right=1mm,boxrule=0.3mm}
-}
-
-%-- tcolorbox --
-\long\def\tcb@New@TColorBox#1#2#3{%
- \tcb@newenvironment{#1}{#2}{\tcolorbox[#3,options@for=#1]}{\endtcolorbox}}
-
-\def\DeclareTColorBox{%
- \let\tcb@newenvironment\DeclareDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\NewTColorBox{%
- \let\tcb@newenvironment\NewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\RenewTColorBox{%
- \let\tcb@newenvironment\RenewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\ProvideTColorBox{%
- \let\tcb@newenvironment\ProvideDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-%-- tcolorbox (total) --
-\long\def\tcb@New@TotalTColorBox#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\begin{tcolorbox}[#3,options@for=#1]#4\end{tcolorbox}}}
-
-\def\DeclareTotalTColorBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\NewTotalTColorBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\RenewTotalTColorBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTColorBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-%-- tcbox --
-\long\def\tcb@New@TCBox#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbox[#3,options@for=#1]}}
-
-\def\DeclareTCBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\NewTCBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\RenewTCBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\ProvideTCBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-%-- tcbox (total) --
-\long\def\tcb@New@TotalTCBox#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbox[#3,options@for=#1]{#4}}}
-
-\def\DeclareTotalTCBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\NewTotalTCBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\RenewTotalTCBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTCBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
-
-%-- tcboxfit --
-\long\def\tcb@New@TCBoxFit#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options@for=#1]}}
-
-\def\DeclareTCBoxFit{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\NewTCBoxFit{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\RenewTCBoxFit{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\ProvideTCBoxFit{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\long\def\tcb@New@TotalTCBoxFit#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options@for=#1]{#4}}}
-
-\def\DeclareTotalTCBoxFit{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\NewTotalTCBoxFit{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\RenewTotalTCBoxFit{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTCBoxFit{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-
-%-- tcblisting --
-\long\def\tcb@New@TCBListing#1#2#3{%
- \tcb@newenvironment{#1}{#2}{\tcblisting{#3,options@for=#1}}{\endtcblisting}}
-
-\def\DeclareTCBListing{%
- \let\tcb@newenvironment\DeclareDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\NewTCBListing{%
- \let\tcb@newenvironment\NewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\RenewTCBListing{%
- \let\tcb@newenvironment\RenewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\ProvideTCBListing{%
- \let\tcb@newenvironment\ProvideDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-%-- tcbinputlisting --
-\long\def\tcb@New@TCBInputListing#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbinputlisting{#3,options@for=#1}}%
-}
-
-\def\DeclareTCBInputListing{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\NewTCBInputListing{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\RenewTCBInputListing{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\ProvideTCBInputListing{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-
-%-- sidebyside --
-
-\def\tcb@sbs@content@none{\tcb@sbs@text@left\tcblower\tcb@sbs@text@right}
-\def\tcb@sbs@content@left{\box\tcb@upperbox\tcblower\tcb@sbs@text@right}
-\def\tcb@sbs@content@right{\tcb@sbs@text@left\tcblower\box\tcb@lowerbox}
-\def\tcb@sbs@content@both{\box\tcb@upperbox\tcblower\box\tcb@lowerbox}
-
-\def\tcb@sbs@save@upper{%
- \sbox{\tcb@upperbox}{\color{tcbcolupper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper\tcb@sbs@text@left\tcb@insert@after@upper}%
-}
-\def\tcb@sbs@save@lower{%
- \sbox{\tcb@lowerbox}{\color{tcbcollower}\kvtcb@fontlower\kvtcb@halignlower\tcb@insert@before@lower\tcb@sbs@text@right\tcb@insert@after@lower}%
-}
-
-\tcbset{%
- sidebyside adapt/.is choice,
- sidebyside adapt/none/.style={%
- sidebyside@adapt@process/.style={%
- code={\let\tcb@sbs@content\tcb@sbs@content@none},
- }%
- },
- sidebyside adapt/left/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@upper\let\tcb@sbs@content\tcb@sbs@content@left},
- lefthand width=\wd\tcb@upperbox,
- }%
- },
- sidebyside adapt/right/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@right},
- righthand width=\wd\tcb@lowerbox,
- }%
- },
- sidebyside adapt/both/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@upper\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@both},
- text width=\wd\tcb@upperbox+\kvtcb@sbs@gap+\wd\tcb@lowerbox,
- lefthand width=\wd\tcb@upperbox,
- }%
- },
- %
- sidebyside switch/.is choice,
- sidebyside switch/true/.style={%
- sidebyside@switch/.code={%
- \tcb@swap{\tcb@sbs@text@left}{\tcb@sbs@text@right}
- }%
- },
- sidebyside switch/false/.style={%
- sidebyside@switch/.style=%
- },
- sidebyside switch/.default=true
-}
-
-
-\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
- code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
- #1,%
- sidebyside,%
- sidebyside@switch,sidebyside@adapt@process%
-}{\tcb@sbs@content}
-
-
-\tcbset{%
- reset@xparse/.style={%
- sidebyside adapt=none,sidebyside switch=false,%
- },
- initialize@reset=reset@xparse,
-}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index 53ea3b5652..802b875cc4 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 3b2234d594..153c943e9d 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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 e90054c665..bce13b3ac6 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 aa1a23e52f..b5baddaa01 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index 89224955ff..ce07ca6efa 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 9653f7fcd7..412c109296 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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.coremacros.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
index c396417530..71fde951c1 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
@@ -3,6 +3,7 @@
\clearpage
\section{Macros for Box Creation}%
\tcbset{external/prefix=external/coremacros_}%
+\subsection{Using \texttt{tcolorbox} and \texttt{tcbox}}\label{subsec:macros_using}
\begin{docEnvironment}{tcolorbox}{\oarg{options}}
This is the main environment to create an accentuated colored text box with
rounded corners and, optionally, two parts. The appearance of this box
@@ -146,10 +147,7 @@ Text \tcbox[tcbox raise base]{Hello World}\hfill
\end{docCommand}
\clearpage
-\begin{marker}
-See \Vref{subsec:xparse_tcolorbox} and \Vref{subsec:xparse_tcbox} for more
-elaborate methods to create new environments and commands.
-\end{marker}
+\subsection{Producing \texttt{tcolorbox} Environments and Commands}\label{subsec:macros_tcolorbox}
\begin{docCommand}{newtcolorbox}{\oarg{init options}\marg{name}\oarg{number}\oarg{default}\marg{options}}
Creates a new environment \meta{name} based on \refEnv{tcolorbox}.
@@ -211,6 +209,115 @@ numbered title and options.
\clearpage
+
+\begin{docCommand}{DeclareTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Creates a new environment \meta{name} based on \refEnv{tcolorbox}.\\
+ Basically, |\DeclareTColorBox| operates like |\DeclareDocumentEnvironment|. This means,
+ the new environment \meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcolorbox}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new environment is always created, irrespective of an already existing
+ environment with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTColorBox[use counter from=pabox]{mybox}{ O{red} m d"" !O{} }
+ {enhanced,colframe=#1!75!black,colback=#1!5!white,
+ fonttitle=\bfseries,title={\thetcbcounter~#2},
+ IfValueT={#3}{watermark text={#3}},#4}
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[blue]{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[green]{My title}"My Watermark"
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[yellow]{My title}[colbacktitle=yellow!50!white,coltitle=black]
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[purple]{My title}"All together"[coltitle=yellow]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docCommand}
+
+\clearpage
+\begin{docCommand}{NewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An error is issued if \meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An existing environment is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ The environment \meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+\clearpage
+
+\begin{docCommand}{DeclareTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refEnv{tcolorbox}.
+ In contrast to \refCom{DeclareTColorBox}, also the \meta{content} of the |tcolorbox| is specified.\\
+ Basically, |\DeclareTotalTColorBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcolorbox} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+\DeclareTotalTColorBox{\diabox}{ O{} v m }
+ { bicolor,nobeforeafter,equal height group=diabox,width=5.7cm,
+ fonttitle=\bfseries\ttfamily,adjusted title={#2},center title,
+ colframe=blue!20!black,leftupper=0mm,rightupper=0mm,colback=black!75!white,#1}
+ { \tikz\path[fill zoom image={#2}] (0,0) rectangle (\linewidth,4cm);%
+ \tcblower#3}
+
+\diabox{blueshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
+\diabox{goldshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
+
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+
+\clearpage
+\subsection{Producing \texttt{tcbox} Commands}\label{subsec:macros_tcbox}
+
\begin{docCommand}{newtcbox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
Basically, |\newtcbox| operates like |\newcommand|.
@@ -265,18 +372,150 @@ The \mybox[green]{quick} brown \mybox{fox} \mybox[blue]{jumps} over the
The \xmybox[green]{quick} brown \xmybox{fox} \xmybox[blue]{jumps} over the
\xmybox[green]{lazy} \xmybox{dog}.
\end{dispExample}
-
\end{docCommand}
-\enlargethispage*{1cm}
+\clearpage
\begin{docCommand}{renewtcbox}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Operates like \refCom{newtcbox}, but based on |\renewcommand| instead of |\newcommand|.
An existing macro is redefined.
\end{docCommand}
+
+\begin{docCommand}{DeclareTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
+ Basically, |\DeclareTCBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbox}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTCBox[use counter from=pabox]{\mybox}{ s m s }
+{ nobeforeafter,colback=red!5!white,colframe=red!75!black,
+ title={#2 (Box \thetcbcounter)},fonttitle=\bfseries,
+ IfBooleanT={#1}{enhanced,drop shadow},
+ IfBooleanT={#3}{colbacktitle=red!50!white} }
+
+\mybox{Bird}{This is my first box.}
+ \hfill
+\mybox*{Tree}{This is my second box.}
+ \par\bigskip
+\mybox{Bike}*{This is my third box.}
+ \hfill
+\mybox*{City}*{This is my fourth box.}
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+
\clearpage
+\begin{docCommand}{DeclareTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
+ In contrast to \refCom{DeclareTCBox}, also the \meta{content} of the |tcbox| is specified.\\
+ Basically, |\DeclareTotalTCBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbox} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+\DeclareTotalTCBox{\myverb}{ O{red} v !O{} }
+{ fontupper=\ttfamily,nobeforeafter,tcbox raise base,arc=0pt,outer arc=0pt,
+ top=0pt,bottom=0pt,left=0mm,right=0mm,
+ leftrule=0pt,rightrule=0pt,toprule=0.3mm,bottomrule=0.3mm,boxsep=0.5mm,
+ colback=#1!10!white,colframe=#1!50!black,#3}{#2}
+
+To set a word \textbf{bold} in \myverb{\LaTeX}, use
+\myverb[green]{\textbf{bold}}. Alternatively, write
+\myverb[yellow]{{\bfseries bold}}.
+In \myverb[blue]{\LaTeX}[enhanced,fuzzy halo], other font settings are
+done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
+or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
+\end{dispExample}
+
+The next example uses |\lstinline| from the |listings| package to
+typeset the verbatim content.
+
+\begin{dispExample}
+% \usepackage{listings} or \tcbuselibrary{listings}
+\DeclareTotalTCBox{\commandbox}{ s v }
+{verbatim,colupper=white,colback=black!75!white,colframe=black}
+{\IfBooleanT{#1}{\textcolor{red}{\ttfamily\bfseries > }}%
+ \lstinline[language=command.com,keywordstyle=\color{blue!35!white}\bfseries]^#2^}
+
+\commandbox*{cd "My Documents"} changes to directory \commandbox{My Documents}.
+
+\commandbox*{dir /A} lists the directory content.
+
+\commandbox*{copy example.txt d:\target} copies \commandbox{example.txt} to
+ \commandbox{d:\target}.
+\end{dispExample}
+\end{docCommand}
+
+\clearpage
+\begin{docCommand}{NewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+\begin{docCommand}{tcboxverb}{\oarg{options}\marg{verbatim box content}}
+ Creates a colored box based on \refCom{tcbox} which is fitted to the width of the given
+ \meta{verbatim box content}.
+ The underlying \refCom{tcbox} is styled with
+ \refKey{/tcb/verbatim} plus the given \meta{options}.
+ The difference to \refCom{tcbox} is that the \meta{verbatim box content} is
+ interpreted \textit{verbatim}. Therefore, |\tcboxverb| acts similar to |\verb|.
+
+\begin{dispExample}
+\tcboxverb{\LaTeX}, \tcboxverb[colback=blue!10!white,colupper=blue]{\LaTeX},
+\tcboxverb[blank,fuzzy halo]{\LaTeX}, \tcboxverb[beamer]{\LaTeX},
+\tcboxverb[enhanced,skin=enhancedmiddle jigsaw,colframe=red]{\LaTeX}.
+\end{dispExample}
+\end{docCommand}
+
+
+
+%\clearpage
+\subsection{Redefining other Environments (Wrapping with \texttt{tcolorbox})}\label{subsec:macros_refine}
+
\begin{docCommand}[doc new=2014-10-20]{tcolorboxenvironment}{\marg{name}\marg{options}}
An existing environment \meta{name} is redefined to be boxed inside a
|tcolorbox| with the given \meta{options}.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 42679d832a..bda5bc3ac7 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -2786,9 +2786,10 @@ are drawn by the codes given with
\end{docTcbKey}
-\begin{docTcbKey}[][doc new=2014-09-19]{every float}{=\meta{code}}{no default, initially empty}
+\begin{docTcbKey}[][doc new=2014-09-19]{every float}{=\marg{code}}{no default, initially empty}
For floating objects, the \refKey{/tcb/before} and \refKey{/tcb/after}
- settings are ignored. Instead, the given \meta{code} is inserted before
+ settings are ignored. Instead, \refKey{/tcb/before float} and \refKey{/tcb/after float}
+ can be used. Further, with \refKey{/tcb/every float}, the given \meta{code} is inserted before
a floating box. If the box is \refKey{/tcb/breakable}, the given \meta{code} is
inserted before every part of the break sequence.
The most common use case is |every float=\centering|.
@@ -2804,6 +2805,32 @@ are drawn by the codes given with
\end{docTcbKey}
+\begin{docTcbKeys}[
+ doc parameter = {=\marg{code}},
+ doc description = {no default, initially empty},
+ doc new = 2022-06-21,
+ ]
+ {
+ {
+ doc name = before float,
+ },
+ {
+ doc name = after float,
+ }
+ }
+ For floating objects, the \refKey{/tcb/before} and \refKey{/tcb/after}
+ settings are ignored. Code can be inserted after the begin of the float
+ environment and before \refKey{/tcb/every float} with
+ \refKey{/tcb/before float} and between the end of the box and the end
+ of the float environment with \refKey{/tcb/after float}.
+ \begin{marker}
+ These options are not compatible with \refKey{/tcb/breakable} floating objects
+ and are ignored, if the box is set to be breakable.
+ \end{marker}
+\end{docTcbKeys}
+
+
+
\clearpage
\subsection{Embedding into the Surroundings}\label{subsec:surroundings}
@@ -3778,6 +3805,7 @@ managed layer number (4 by default).
Higher layers are layers above the highest
managed layer number (4 by default).
\begin{dispListing}
+% default setting:
\tcbset{every box on higher layers/.style={reset,every box}}
\end{dispListing}
\end{docTcbKey}
@@ -3791,14 +3819,12 @@ not forbidden.
\end{docCommand}
\begin{tcboutputlisting}
-% \usepackage{lipsum}
-% \tcbuselibrary{skins,breakable}
+% \usepackage{lipsum} \tcbuselibrary{skins,breakable}
\tcbset{colframe=red!75!black,fonttitle=\bfseries,
colback=red!5!white,
every box/.style={enhanced,watermark text=\thetcblayer,
before=\par\smallskip,after=\par\smallskip},
- every box on layer 2/.style={reset,every box,colback=yellow!10!white,
- drop fuzzy shadow}}
+ every box on layer 2/.append style={colback=yellow!10!white,drop fuzzy shadow}}
\begin{tcolorbox}[enhanced jigsaw,breakable,title=Layer 1 Box]
Here comes a footnote\footnote{Footnote from layer 1 box}.
\lipsum[2]
@@ -3953,6 +3979,7 @@ targeting different box types and they do not blend very well.
\refEnv{tcbwritetemp} and \refCom{tcbusetemp} implicitely.
\end{docTcbKey}
+\clearpage
\subsection{\texttt{\textbackslash tcbox} Specials}
The following options are applicable for \refCom{tcbox} and \refCom{tcboxmath}
only.
@@ -3981,6 +4008,21 @@ Test\dotfill
The resulting box behaves analogue to |\fbox|.
\end{docTcbKey}
+\begin{docTcbKey}{verbatim}{}{style, no value}
+ Sets options for a \textit{verbatim} style \refCom{tcbox}.
+ Since the indented boxes may contain only very few words, the
+ dimensions are made smaller and \refKey{/tcb/nobeforeafter}
+ and \refKey{/tcb/tcbox raise base} are set.
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\DeclareTotalTCBox{\myverb}{ v }{verbatim,
+ colframe=red!75!black,colupper=blue}{#1}
+
+\myverb{\textbf} is a \myverb{\LaTeX} command.
+\end{dispExample*}
+\end{docTcbKey}
+
+
+
\clearpage
\begin{docTcbKey}[][doc new=2015-03-23]{tcbox width}{=\meta{mode}}{no default, initially \texttt{auto}}
Controls how \refCom{tcbox} respects a \refKey{/tcb/width} setting.
@@ -4506,6 +4548,185 @@ This is a \textbf{tcolorbox}.
\end{exdispExample}
\end{docTcbKey}
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}, doc new = 2022-05-25 ]
+ {
+ {
+ doc name = IfBlankTF,
+ doc parameter = {=\marg{token list}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfBlankT,
+ doc parameter = {=\marg{token list}\marg{true options}},
+ },
+ {
+ doc name = IfBlankF,
+ doc parameter = {=\marg{token list}\marg{false options}},
+ }
+ }
+ Wraps the |\tl_if_blank:n(TF)| command(s) of \textsf{expl3} for option setting.
+ If the \meta{token list} consists only of blank spaces, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\newtcolorbox{mybox}[1]{ IfBlankF={#1}{title=`#1'} }
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}{ }
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+\medskip
+
+\begin{docTcbKeys}[doc description = {no default}, doc new = 2022-05-25 ]
+ {
+ {
+ doc name = IfEmptyTF,
+ doc parameter = {=\marg{token list}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfEmptyT,
+ doc parameter = {=\marg{token list}\marg{true options}},
+ },
+ {
+ doc name = IfEmptyF,
+ doc parameter = {=\marg{token list}\marg{false options}},
+ }
+ }
+ Wraps the |\tl_if_empty:n(TF)| command(s) of \textsf{expl3} for option setting.
+ If the \meta{token list} is entirely empty, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\newtcolorbox{mybox}[1]{ IfEmptyTF={#1}{colframe=red}{title=`#1'} }
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}{}
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfNoValueTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfNoValueT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfNoValueF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfNoValue(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} has no value, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,
+ IfNoValueTF={#1}{colback=red!5!white}{enhanced,interior style image=#1}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[goldshade.png]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+\medskip
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfValueTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfValueT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfValueF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfValue(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} has a value, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,colback=red!5!white,
+ IfValueT={#1}{title={\flqq #1\frqq},fonttitle=\bfseries}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[My title]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+%\medskip
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfBooleanTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfBooleanT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfBooleanF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfBoolean(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} is |\BooleanTrue|, the \meta{true options} are set.
+ If the \meta{argument} is |\BooleanFalse|, the \meta{false options} are set.
+
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ s }{colframe=red!75!black,
+ IfBooleanTF={#1}{colback=yellow!50!red}{colback=red!5!white}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}*
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+
\clearpage
\begin{docTcbKey}[][doc new=2016-10-21]{void}{}{no value, initially unset}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index 385c662154..909ad20a24 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -1378,6 +1378,7 @@ instead. Also see \refKey{/tcb/docexample}.
\end{docTcbKey}
\clearpage
+\enlargethispage*{1cm}
\begin{docTcbKey}{index annotate}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
If set to |true|, the index entries are annotated with short descriptions
@@ -1392,6 +1393,63 @@ instead. Also see \refKey{/tcb/docexample}.
\end{docTcbKey}
+\begin{docTcbKeys}[
+ doc new={2022-06-20},
+ doc parameter = {\colOpt{=true\textbar false}},
+ doc description = {default |true|, initially |true|}
+ ]
+ {
+ {
+ doc name = index gather colors,
+ },
+ {
+ doc name = index gather commands,
+ },
+ {
+ doc name = index gather counters,
+ },
+ {
+ doc name = index gather environments,
+ },
+ {
+ doc name = index gather keys,
+ },
+ {
+ doc name = index gather lengths,
+ },
+ {
+ doc name = index gather paths,
+ },
+ {
+ doc name = index gather values,
+ }
+ }
+ If set to |true|, an additional index grouping is created where entries
+ are gathered, e.g. \refKey{/tcb/index gather counters} creates an index
+ entry `Colors', see \refKey{/tcb/doclang/colors}, which gets all colors
+ as sub entries.
+\end{docTcbKeys}
+
+
+\begin{docTcbKeys}[
+ doc new={2022-06-20},
+ doc parameter = {},
+ ]
+ {
+ {
+ doc name = index gather all,
+ doc description = {style, initially set}
+ },
+ {
+ doc name = index gather none,
+ doc description = {style}
+ },
+ }
+ Switches all index gather options from above to |true| (all) or |false| (none).
+\end{docTcbKeys}
+
+
+
\begin{docTcbKey}{color command}{=\meta{color}}{no default, initially |Definition|}
Sets the highlight color used by macro definitions.
\end{docTcbKey}
@@ -1464,6 +1522,10 @@ The English language is predefined.
Heading text in the index for colors.
\end{langTcbKey}
+\begin{langTcbKey}[][doc new={2022-06-20}]{commands}{=\meta{text}}{no default, initially |Commands|}
+ Heading text in the index for commands.
+\end{langTcbKey}
+
\begin{langTcbKey}[][doc new={2015-01-08}]{counter}{=\meta{text}}{no default, initially |counter|}
Text used in the index for counters.
\end{langTcbKey}
@@ -1524,6 +1586,8 @@ The English language is predefined.
Announcement text for updated content.
\end{langTcbKey}
+\clearpage
+
\begin{langTcbKey}{value}{=\meta{text}}{no default, initially |value|}
Text used in the index for values.
\end{langTcbKey}
@@ -1534,13 +1598,6 @@ The English language is predefined.
-
-
-
-\clearpage
-
-
-
\subsection{Predefined Colors of the Library}\tcbdocmarginnote{\tcbdocupdated{2019-09-18}}
The following colors are predefined. They are used as default colors
in some library commands.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
index 7b3147217b..6d670c8a16 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
@@ -36,13 +36,59 @@ The library is loaded by a package option or inside the preamble by:
\end{dispExample}
\end{docCommand}
+
\clearpage
-\begin{marker}
-See \Vref{subsec:xparse_tcboxfit} for more
-elaborate methods to create new commands.
-\end{marker}
-\enlargethispage*{2cm}
+
+\begin{docCommands}[
+ doc name = tcbfitdim,
+ doc description = {read-only \LaTeX\ length},
+ doc updated = 2020-04-24,
+ ]{}
+ This is a \LaTeX\ length adapted automatically by most variants of
+ \refKey{/tcb/fit algorithm}. Therefore, it never is to be
+ changed by the user, but may be applied read-only.
+ The \refCom{tcbfitdim} corresponds to the font size and may also
+ be used to calculate box margins or other distances in dependency.
+ The initial and maximum value for \refCom{tcbfitdim} is set by
+ \refKey{/tcb/fit basedim}.
+\end{docCommands}
+
+
+\begin{docCommand}{tcbfontsize}{\marg{factor}}
+ Selects a font size inside a tcolorbox which is scaled with the given
+ \meta{factor} relative to \refCom{tcbfitdim}.
+ Also see \refKey{/tcb/fit fontsize macros}
+
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\tcbset{colback=red!5!white,size=small,
+ colframe=red!75!black}
+\begin{tcolorbox}[fit basedim=10pt]
+ {\tcbfontsize{0.25} Very tiny,}\\
+ {\tcbfontsize{0.5} Small,}\\
+ {\tcbfontsize{1} Normal,}\\
+ {\tcbfontsize{2} Large,}\\
+ {\tcbfontsize{4} Huge.}
+\end{tcolorbox}
+\end{dispExample*}
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\tcbset{colback=red!5!white,size=small,
+ colframe=red!75!black}
+\begin{tcolorbox}[fit basedim=10pt,
+ fit to height=2cm]
+ {\tcbfontsize{0.25} Very tiny,}\\
+ {\tcbfontsize{0.5} Small,}\\
+ {\tcbfontsize{1} Normal,}\\
+ {\tcbfontsize{2} Large,}\\
+ {\tcbfontsize{4} Huge.}
+\end{tcolorbox}
+\end{dispExample*}
+\end{docCommand}
+
+
+\clearpage
+\subsection{Producing \texttt{tcboxfit} Commands}\label{subsec:fitting_new}
+
\begin{docCommand}{newtcboxfit}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
@@ -96,51 +142,95 @@ elaborate methods to create new commands.
\clearpage
-\begin{docCommands}[
- doc name = tcbfitdim,
- doc description = {read-only \LaTeX\ length},
- doc updated = 2020-04-24,
- ]{}
- This is a \LaTeX\ length adapted automatically by most variants of
- \refKey{/tcb/fit algorithm}. Therefore, it never is to be
- changed by the user, but may be applied read-only.
- The \refCom{tcbfitdim} corresponds to the font size and may also
- be used to calculate box margins or other distances in dependency.
- The initial and maximum value for \refCom{tcbfitdim} is set by
- \refKey{/tcb/fit basedim}.
-\end{docCommands}
+\begin{docCommand}{DeclareTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
+ Basically, |\DeclareTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcboxfit}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+% \usepackage{lipsum}
-\begin{docCommand}{tcbfontsize}{\marg{factor}}
- Selects a font size inside a tcolorbox which is scaled with the given
- \meta{factor} relative to \refCom{tcbfitdim}.
- Also see \refKey{/tcb/fit fontsize macros}
+\DeclareTCBoxFit{\mybox}{ O{} m !o }
+ {colback=red!5!white,
+ colframe=red!75!black,
+ width=#2,height=#2/3*2,
+ IfValueT={#3}{height=#3},
+ #1}
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\tcbset{colback=red!5!white,size=small,
- colframe=red!75!black}
-\begin{tcolorbox}[fit basedim=10pt]
- {\tcbfontsize{0.25} Very tiny,}\\
- {\tcbfontsize{0.5} Small,}\\
- {\tcbfontsize{1} Normal,}\\
- {\tcbfontsize{2} Large,}\\
- {\tcbfontsize{4} Huge.}
-\end{tcolorbox}
-\end{dispExample*}
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\tcbset{colback=red!5!white,size=small,
- colframe=red!75!black}
-\begin{tcolorbox}[fit basedim=10pt,
- fit to height=2cm]
- {\tcbfontsize{0.25} Very tiny,}\\
- {\tcbfontsize{0.5} Small,}\\
- {\tcbfontsize{1} Normal,}\\
- {\tcbfontsize{2} Large,}\\
- {\tcbfontsize{4} Huge.}
-\end{tcolorbox}
+\mybox[colback=yellow]{5cm}%
+ {\lipsum[2]}
+
+\mybox[colback=yellow]{5cm}[4cm]{\lipsum[2]}
\end{dispExample*}
\end{docCommand}
+\begin{docCommand}{NewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+\clearpage
+
+\begin{docCommand}{DeclareTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
+ In contrast to \refCom{DeclareTCBoxFit}, also the \meta{content} of the |tcboxfit| is specified.\\
+ Basically, |\DeclareTotalTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcboxfit} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% \usepackage{lipsum}
+
+\DeclareTotalTCBoxFit{\multibox}{ O{} m O{10} m }
+ {nobeforeafter,colback=red!5!white,colframe=red!75!black,width=#2,height=#2/3*2,
+ valign=center,#1}
+ { \foreach \n in {1,...,#3} { #4} }
+
+\multibox{5cm}{I shall not repeat.}
+\multibox[colframe=blue!75!white]{5cm}[20]{I shall not repeat.}\\
+\multibox[colback=yellow,height=5cm]{14cm}[100]{I shall not repeat.}
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
\clearpage
\subsection{Option Keys of the Library}\label{subsec:fit}
@@ -493,7 +583,7 @@ are adapted. In the following, adapting the font size means adapting
\end{docTcbKey}
\begin{dispExample}
% \usepackage{lipsum}
-\newtcboxfit{mybox}[1]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
+\newtcboxfit{\mybox}[1]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
bottom=1mm,right=1mm,boxsep=0mm,width=3.5cm,height=7cm,nobeforeafter,
before upper=\textcolor{blue}{\rule{5mm}{5mm}}\ ,
enhanced,watermark text={\tcbfitsteps},
@@ -510,7 +600,7 @@ Quality \dotfill versus \dotfill Speed
\begin{dispExample}
% \usepackage{lipsum}
-\newtcboxfit{mybox}[2]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
+\newtcboxfit{\mybox}[2]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
size=tight,width=7.2cm,height=5cm,nobeforeafter,
before upper=\textcolor{blue}{\rule{5mm}{5mm}}\ ,
enhanced,fonttitle=\bfseries,adjusted title={#2},fit algorithm=#1}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
index da47d26378..5d8c115be9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
@@ -133,6 +133,7 @@ from page \pageref{subsec:contentadditions}.
\end{docTcbKey}
+\clearpage
\subsection{Embedding into the Surroundings}
The following option keys extend the options given in Subsection \ref{subsec:surroundings}
from page \pageref{subsec:surroundings}.
@@ -168,6 +169,24 @@ This is a \textbf{tcolorbox}.
\end{tcolorbox}
\end{dispExample}
+\medskip
+
+\begin{docTcbKey}{before float app}{=\meta{code}}{no default}
+ Appends the given \meta{code} to \refKey{/tcb/before float} before the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{before float pre}{=\meta{code}}{no default}
+ Prepends the given \meta{code} to \refKey{/tcb/before float} before the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{after float app}{=\meta{code}}{no default}
+ Appends the given \meta{code} to \refKey{/tcb/after float} after the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{after float pre}{=\meta{code}}{no default}
+ Prepends the given \meta{code} to \refKey{/tcb/after float} after the colored box.
+\end{docTcbKey}
+
\clearpage
\subsection{Overlays}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
index 82b5d9f77b..4cf36cd9ef 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
@@ -8,7 +8,7 @@
\tcbset{external/prefix=external/listings_}%
\subsection{Loading the Libraries}
-In contrast to other |tcolorbox| libraries, the libraries
+In contrast to other \refEnv{tcolorbox} libraries, the libraries
\mylib{listings}, \mylib{listingsutf8}, and \mylib{minted} are concurrent in the sense that
they all do the same thing, i.\,e.\ displaying listings with or without typesetting
the listing in \LaTeX\ parallel.
@@ -77,7 +77,7 @@ This also loads the package |minted| \cite{poore:minted}.
The |minted| package uses the external tool |Pygments| \cite{pygments:web}
to apply syntax highlighting. It has to be installed and set up, before the
library can be used, see \cite{poore:minted} and \cite{pygments:web}.
-The |tcolorbox| library \mylib{minted} does not work, if the package
+The \refEnv{tcolorbox} library \mylib{minted} does not work, if the package
|minted| \cite{poore:minted} does not work.
\end{marker}
@@ -95,7 +95,7 @@ To reactivate this setting, if overwritten by other libraries, use
Controlled by the given \meta{options}, the
environment content is typeset normally and/or as a listing.
Furthermore, the \meta{options} control appearance and functions of
- the |tcolorbox|.
+ the \refEnv{tcolorbox}.
By default, the listing is interpreted as a \LaTeX\ listing.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black}
@@ -154,8 +154,8 @@ and in compiled form.
\clearpage
\begin{docEnvironment}{tcboutputlisting}{}
Saves the environment content to a file which is named by the key value of
- |listing file|. Later, this file can be loaded by
- |\tcbinputlisting| or |\tcbuselistingtext| or |\tcbuselistinglisting|.
+ \refKey{/tcb/listing file}. Later, this file can be loaded by
+ \refCom{tcbinputlisting} or \refCom{tcbuselistingtext} or \refCom{tcbuselistinglisting}.
\begin{dispListing}
\begin{tcboutputlisting}
This \textbf{text} is written to a standardized file for later usage.
@@ -165,8 +165,8 @@ This \textbf{text} is written to a standardized file for later usage.
\begin{docCommand}{tcbinputlisting}{\marg{options}}
- Creates a colored boxed based on a |tcolorbox|. The text content is read
- from a file named by the key value of |listing file|. Apart from that,
+ Creates a colored boxed based on a \refEnv{tcolorbox}. The text content is read
+ from a file named by the key value of \refKey{/tcb/listing file}. Apart from that,
the function is equal to that of \refEnv{tcblisting}.
\begin{dispExample}
\tcbinputlisting{colback=red!5!white,colframe=red!75!black,text only}
@@ -175,7 +175,7 @@ This \textbf{text} is written to a standardized file for later usage.
\end{docCommand}
\begin{docCommand}{tcbuselistingtext}{}
- Loads text from a file named by the key value of |listing file|.
+ Loads text from a file named by the key value of \refKey{/tcb/listing file}.
\begin{dispExample}
\tcbuselistingtext
\end{dispExample}
@@ -183,7 +183,7 @@ This \textbf{text} is written to a standardized file for later usage.
\begin{docCommand}{tcbuselistinglisting}{}
- Typesets text as listing from a file named by the key value of |listing file|.
+ Typesets text as listing from a file named by the key value of \refKey{/tcb/listing file}.
\begin{dispExample}
\tcbuselistinglisting
\end{dispExample}
@@ -197,12 +197,10 @@ This \textbf{text} is written to a standardized file for later usage.
\clearpage
+\subsection{Producing \texttt{tcblisting} Environments}\label{subsec:listing_newlistings}
+
\begin{marker}
-See \Vref{subsec:xparse_listing} and \Vref{subsec:xparse_inputlisting} for more
-elaborate methods to create new environments and commands.
-\end{marker}
-\begin{marker}
-If a new sort of |tcblisting| environments should be created with
+If a new sort of \refEnv{tcblisting} environments should be created with
one optional argument only, one is highly recommended to use
\refCom{DeclareTCBListing} or \refCom{NewTCBListing}
instead of \refCom{newtcblisting} to
@@ -211,10 +209,10 @@ avoid content scanning problems.
\begin{docCommand}{newtcblisting}{\oarg{init options}\marg{name}\oarg{number}\oarg{default}\marg{options}}
Creates a new environment \meta{name} based on \refEnv{tcblisting}.
- Basically, |\newtcblisting| operates like |\newenvironment|. This means,
+ Basically, \refCom{newtcblisting} operates like |\newenvironment|. This means,
the new environment \meta{name} optionally takes \meta{number} arguments, where
\meta{default} is the default value for the optional first argument.
- The \meta{options} are given to the underlying |tcblisting|.
+ The \meta{options} are given to the underlying \refEnv{tcblisting}.
Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
automatically.
The \meta{init options} allow setting up automatic numbering,
@@ -280,12 +278,119 @@ This is my \LaTeX\ box.
\clearpage
+
+\begin{docCommand}{DeclareTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Creates a new environment \meta{name} based on \refEnv{tcblisting}.\\
+ Basically, |\DeclareTCBListing| operates like |\DeclareDocumentEnvironment|. This means,
+ the new environment \meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcblisting}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new environment is always created, irrespective of an already existing
+ environment with the same name.
+
+\begin{dispExample*}{sbs,lefthand ratio=0.5}
+\DeclareTCBListing{mybox}{ s O{} m }{%
+ colback=red!5!white,
+ colframe=red!75!black,
+ fonttitle=\bfseries,
+ IfBooleanTF={#1}
+ {listing side text}
+ {text side listing},
+ title={#3},#2}
+
+\begin{mybox}{Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\bigskip
+
+\begin{mybox}*{Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\bigskip
+
+\begin{mybox}[colback=yellow]
+ {Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\end{dispExample*}
+\end{docCommand}
+
+\begin{docCommand}{NewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An error is issued if \meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An existing environment is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ The environment \meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+\clearpage
+
+\begin{marker}
+With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
+changed the argument collection process (now part of the \LaTeX\ kernel).
+Spaces are ignored which leads to a serious change for listing environments
+ending with an optional argument like \verb+O{}+.
+The former behavior of respecting spaces can be preserved by adding a \flqq\verb+!+\frqq.
+Note that the following code uses \verb+!O{}+ now.
+\begin{itemize}
+\item For older |xparse| versions, the following code is correct when using \verb+O{}+.
+\item For |xparse| of 2018-05-12, only the first two examples of
+ the following code using \verb+O{}+ are really \flqq good\frqq\ -- all others do not work.
+\item For |xparse| of 2018-05-12 and later, the following code is correct when using \verb+!O{}+.
+\end{itemize}
+\end{marker}
+
+\begin{dispListing*}{title={Caveats of using an environment ending with an
+ optional argument},fonttitle=\bfseries}
+\DeclareTCBListing{mybox}{ !O{} }{listing only,#1}
+
+\begin{mybox}[colframe=red]
+\good
+\end{mybox}
+
+\begin{mybox}[colframe=red]\good\end{mybox}
+
+\begin{mybox}
+\good
+\end{mybox}
+
+\begin{mybox} \good\end{mybox}
+
+\begin{mybox}\bad!\end{mybox}
+
+\begin{mybox}
+[\good]
+\end{mybox}
+
+\begin{mybox} [\good]\end{mybox}
+
+\begin{mybox}[\bad!]\end{mybox}
+\end{dispListing*}
+
+
+\clearpage
+\subsection{Producing \texttt{tcbinputlisting} Commands}\label{subsec:listings_inputlisting}
+\enlargethispage*{1cm}
+
\begin{docCommand}{newtcbinputlisting}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
- Basically, |\newtcbinputlisting| operates like |\newcommand|.
+ Basically, \refCom{newtcbinputlisting} operates like |\newcommand|.
The new macro \texttt{\textbackslash}\meta{name} optionally takes \meta{number} arguments, where
\meta{default} is the default value for the optional first argument.
- The \meta{options} are given to the underlying |tcbinputlisting|.
+ The \meta{options} are given to the underlying \refCom{tcbinputlisting}.
The \meta{init options} allow setting up automatic numbering,
see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.
@@ -319,6 +424,46 @@ This is my \LaTeX\ box.
An existing macro is redefined.
\end{docCommand}
+\clearpage
+
+\begin{docCommand}{DeclareTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
+ Basically, |\DeclareTCBInputListing| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbinputlisting}.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTCBInputListing[use counter from=pabox]{\mylisting}{ O{} O{red} m }{%
+ listing file={#3},title=Listing~\thetcbcounter,
+ colback=#2!5!white,colframe=#2!50!black,colbacktitle=#2!75!black,
+ fonttitle=\bfseries,listing only,#1}
+
+\mylisting[before upper=\textit{This is the included file content:}]
+ [blue]{\jobname.tcbtemp}
+\end{dispExample}
+ \end{docCommand}
+
+\begin{docCommand}{NewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
\clearpage
\subsection{Option Keys of the \mylib{listings} Library}\label{sec:speclistingkeys}
@@ -341,8 +486,8 @@ and in compiled form. Additionally, we use line numbers here.
\begin{docTcbKey}{no listing options}{}{no value, initially unset}
Abbreviation for |listing options={}|.
This removes all options for the |listings| package.
- This includes the |tcblisting| standard style |tcblatex| and the encoding presets.
- Use this option, if you want to set the |listings| options outside of |tcblisting|, e.\,g.\ globally in
+ This includes the \refEnv{tcblisting} standard style |tcblatex| and the encoding presets.
+ Use this option, if you want to set the |listings| options outside of \refEnv{tcblisting}, e.\,g.\ globally in
the preamble.
\begin{dispExample}
\begin{tcblisting}{no listing options}
@@ -419,7 +564,7 @@ cd /usr/lib
See further options in \Vref{sec:commonlistingkeys}.
\begin{marker}
-For an combined example of using |\lstinline| inside a |tcolorbox|, see
+For an combined example of using |\lstinline| inside a \refEnv{tcolorbox}, see
\refCom{DeclareTotalTCBox}.
\end{marker}
@@ -693,7 +838,7 @@ This is a \LaTeX\ example.
\begin{docTcbKey}[][doc new=2014-11-14]{comment style}{=\meta{options}}{no default, initially empty}
Sets the \meta{options} for \refKey{/tcb/tcbimage comment} and \refKey{/tcb/pdf comment}.
- These are |tcolorbox| options to customize the colored box drawn around the
+ These are \refEnv{tcolorbox} options to customize the colored box drawn around the
image(s), also image options encapsulated by \refKey{/tcb/graphics options},
and \refEnv{tcbraster} options for \refKey{/tcb/pdf comment}.
\end{docTcbKey}
@@ -755,10 +900,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing outside text}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and as compiled text outside the box in the right part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -771,10 +916,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{text outside listing}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and as compiled text outside the box in the left part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -814,10 +959,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{listing outside comment}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and a given comment outside the box in the right part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -830,10 +975,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{comment outside listing}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and a given comment outside the box in the left part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -847,10 +992,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing above text}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and as compiled text outside and below the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and text is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing above text}
@@ -870,10 +1015,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{text above listing}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and as compiled text outside and above the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and text is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,text above listing}
@@ -893,10 +1038,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing above comment}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and a given comment outside and below the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and comment is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing above comment,
@@ -917,10 +1062,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{comment above listing}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and a given comment outside and above the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and comment is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,comment above listing,
@@ -942,7 +1087,7 @@ This is a \LaTeX\ example.
\clearpage
\subsection{Option Keys for Processing and Full Document Examples}\label{sec:proclistingkeys}
A complete \LaTeX\ document including |\documentclass|, |\begin{document}|
-and |\end{document}| cannot be processed directly by |tcolorbox|.
+and |\end{document}| cannot be processed directly by \refEnv{tcolorbox}.
It always has to be compiled separately. There are two methods supported
by the package to process and display such a full document example:
\begin{itemize}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 4c4a85dce1..6d9c15c834 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -3,6 +3,10 @@
\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.7em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.2em}{3.2em}}
+% prevent hypdoc from loading (sets hyperindex=false)
+\@namedef{ver@hypdoc.sty}{9999/12/31}
+\@namedef{opt@hypdoc.sty}{hypdoc}
+
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
index b01c299e0c..4783b10bc0 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
@@ -245,12 +245,7 @@ methods from \Fullref{subsec:sidebyside_xparse}.
\clearpage
-\subsection{Advanced Settings from the \mylib{xparse} Library}\label{subsec:sidebyside_xparse}
-
-\begin{marker}
-All following macros and options need the \mylib{xparse} library to be
-loaded, see \Fullref{sec:xparse}.
-\end{marker}
+\subsection{Advanced Settings}\label{subsec:sidebyside_xparse}
\begin{docCommand}[doc new=2015-11-20]{tcbsidebyside}{\oarg{options}\marg{left-handed content}\marg{right-handed content}}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
index 5e039aee63..ece3b4bc35 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
@@ -633,7 +633,7 @@ git commit -am 'changes to my example'
\begin{tcolorbox}[bicolor,
frame style={preaction={fill=blue!50!black},
pattern=checkerboard,pattern color=blue!50!gray},
- fonttitle=\bfseries,
+ fonttitle=\bfseries, overlaplower=0mm,
colback=blue!10, colbacklower=white, opacitybacklower=0.65,
title={Example for a semilucent lower part}]
This is the upper part.
@@ -644,6 +644,49 @@ And that is the lower part.
\clearpage
+\begin{docTcbKey}[][doc new=2022-01-11]{overlaplower}{=\meta{length}}{no default, initially \texttt{0.1mm}}
+ The backgrounds of the lower parts for the skin families \enquote{bicolor}, \enquote{tile}, and \enquote{beamer}
+ are drawn differently than the backgrounds of the upper parts. If the distance between these
+ backgrounds of upper and lower parts is |0pt|, some previewers show the
+ frame color as thin line between upper and lower part. To avoid this glitch,
+ the lower part is drawn with an overlap of \meta{length} over the upper part.\par
+ This value can be adapted for special applications. For example,
+ semilucent lower parts better use |0pt|, see \refKey{/tcb/opacitybacklower}.
+ Also see \refCom{tcboverlaplower} for using a larger value.
+\end{docTcbKey}
+
+
+\begin{docCommand}[doc new=2022-01-11]{tcboverlaplower}{}
+ Macro which contains the length value set by \refKey{/tcb/overlaplower}.
+ May be used for fine positioning at the segmentation between upper and
+ lower part and should be seen \emph{read-only}.
+
+\begin{dispExample}
+\begin{tcolorbox}[bicolor, sharp corners,
+ colframe=blue!50!black, colback=blue!10, colbacklower=red!10,
+ top=5mm, bottom=2mm, middle=3.5mm, overlaplower=1.5mm,
+ underlay={
+ \node[minimum width=1cm,minimum height=0.5cm,outer sep=auto,
+ anchor=north east,fill=white] at (interior.north east)
+ {\itshape\small upper};
+ \node[minimum width=1cm,minimum height=0.5cm,outer sep=auto,
+ anchor=north east,fill=white]
+ at ([yshift=\tcboverlaplower]segmentation.east)
+ {\itshape\small lower};
+ }
+ ]
+This is the upper part.
+\tcblower
+And that is the lower part.
+\end{tcolorbox}
+\end{dispExample}
+
+\end{docCommand}
+
+
+
+\clearpage
+
\begin{docSkin}{bicolorfirst}
This is a flavor of \refSkin{bicolor} which is used as a \emph{first} part
in a break sequence for \refSkin{bicolor}.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
index 21e8153de4..9b1155ddc5 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
@@ -748,7 +748,7 @@ considered to be \textit{read-only} and should never be redefined by the user.
\begin{docCommand}[doc new=2017-04-25]{tcbsegmentstate}{}
- This macro contains |0|, |1|, or |2|. Itis set for every unbroken box and every broken partial box
+ This macro contains |0|, |1|, or |2|. It is set for every unbroken box and every broken partial box
with the following meaning:
\begin{itemize}
\item\docValue{0}: The current (partial) box contains only an upper part.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
index 43b623d6ca..280d91bd56 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
@@ -7,635 +7,14 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{xparse}
\end{dispListing}
-This also loads the package |xparse| \cite{latexproject:xparse}.
+This 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.
+Note that up to version 5.0.2 this library contained code which
+needed the |xparse| package. Since nowadays this package has become
+basically a part of the \LaTeX\ kernel, the code of the library was
+migrated to other parts of the |tcolorbox| package. So, the remaining
+library is nearly a stub which only loads |xparse|.
-%\subsection{Producing Document Commands With \texttt{xparse}}
-
-
-\subsection{Option Keys}\label{subsec:xparse_options}
-
-\begin{docTcbKey}{verbatim}{}{style, no value}
- Sets options for a \textit{verbatim} style \refCom{tcbox}.
- Since the indented boxes may contain only very few words, the
- dimensions are made smaller and \refKey{/tcb/nobeforeafter}
- and \refKey{/tcb/tcbox raise base} are set.
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\DeclareTotalTCBox{\myverb}{ v }{verbatim,
- colframe=red!75!black,colupper=blue}{#1}
-
-\myverb{\textbf} is a \myverb{\LaTeX} command.
-\end{dispExample*}
-\end{docTcbKey}
-
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfNoValueTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfNoValueT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfNoValueF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfNoValue(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} has no value, the \meta{true options} are set.
- Otherwise, the \meta{false options} are set.
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,
- IfNoValueTF={#1}{colback=red!5!white}{enhanced,interior style image=#1}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[goldshade.png]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-\clearpage
-
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfValueTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfValueT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfValueF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfValue(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} has a value, the \meta{true options} are set.
- Otherwise, the \meta{false options} are set.
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,colback=red!5!white,
- IfValueT={#1}{title={\flqq #1\frqq},fonttitle=\bfseries}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[My title]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-\medskip
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfBooleanTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfBooleanT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfBooleanF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfBoolean(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} is |\BooleanTrue|, the \meta{true options} are set.
- If the \meta{argument} is |\BooleanFalse|, the \meta{false options} are set.
-
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ s }{colframe=red!75!black,
- IfBooleanTF={#1}{colback=yellow!50!red}{colback=red!5!white}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}*
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-
-
-\clearpage
-\subsection{Producing \texttt{tcolorbox} Environments and Commands}\label{subsec:xparse_tcolorbox}
-
-\begin{docCommand}{DeclareTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Creates a new environment \meta{name} based on \refEnv{tcolorbox}.\\
- Basically, |\DeclareTColorBox| operates like |\DeclareDocumentEnvironment|. This means,
- the new environment \meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcolorbox}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new environment is always created, irrespective of an already existing
- environment with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTColorBox[use counter from=pabox]{mybox}{ O{red} m d"" !O{} }
- {enhanced,colframe=#1!75!black,colback=#1!5!white,
- fonttitle=\bfseries,title={\thetcbcounter~#2},
- IfValueT={#3}{watermark text={#3}},#4}
-
-\begin{mybox}{My title}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[blue]{My title}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[green]{My title}"My Watermark"
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[yellow]{My title}[colbacktitle=yellow!50!white,coltitle=black]
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[purple]{My title}"All together"[coltitle=yellow]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docCommand}
-
-\clearpage
-\begin{docCommand}{NewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An error is issued if \meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An existing environment is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- The environment \meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refEnv{tcolorbox}.
- In contrast to \refCom{DeclareTColorBox}, also the \meta{content} of the |tcolorbox| is specified.\\
- Basically, |\DeclareTotalTColorBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcolorbox} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-\DeclareTotalTColorBox{\diabox}{ O{} v m }
- { bicolor,nobeforeafter,equal height group=diabox,width=5.7cm,
- fonttitle=\bfseries\ttfamily,adjusted title={#2},center title,
- colframe=blue!20!black,leftupper=0mm,rightupper=0mm,colback=black!75!white,#1}
- { \tikz\path[fill zoom image={#2}] (0,0) rectangle (\linewidth,4cm);%
- \tcblower#3}
-
-\diabox{blueshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
-\diabox{goldshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
-
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-\subsection{Producing \texttt{tcbox} Commands}\label{subsec:xparse_tcbox}
-
-
-\begin{docCommand}{DeclareTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
- Basically, |\DeclareTCBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbox}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTCBox[use counter from=pabox]{\mybox}{ s m s }
-{ nobeforeafter,colback=red!5!white,colframe=red!75!black,
- title={#2 (Box \thetcbcounter)},fonttitle=\bfseries,
- IfBooleanT={#1}{enhanced,drop shadow},
- IfBooleanT={#3}{colbacktitle=red!50!white} }
-
-\mybox{Bird}{This is my first box.}
- \hfill
-\mybox*{Tree}{This is my second box.}
- \par\bigskip
-\mybox{Bike}*{This is my third box.}
- \hfill
-\mybox*{City}*{This is my fourth box.}
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
- In contrast to \refCom{DeclareTCBox}, also the \meta{content} of the |tcbox| is specified.\\
- Basically, |\DeclareTotalTCBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbox} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-\DeclareTotalTCBox{\myverb}{ O{red} v !O{} }
-{ fontupper=\ttfamily,nobeforeafter,tcbox raise base,arc=0pt,outer arc=0pt,
- top=0pt,bottom=0pt,left=0mm,right=0mm,
- leftrule=0pt,rightrule=0pt,toprule=0.3mm,bottomrule=0.3mm,boxsep=0.5mm,
- colback=#1!10!white,colframe=#1!50!black,#3}{#2}
-
-To set a word \textbf{bold} in \myverb{\LaTeX}, use
-\myverb[green]{\textbf{bold}}. Alternatively, write
-\myverb[yellow]{{\bfseries bold}}.
-In \myverb[blue]{\LaTeX}[enhanced,fuzzy halo], other font settings are
-done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
-or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
-\end{dispExample}
-
-The next example uses |\lstinline| from the |listings| package to
-typeset the verbatim content.
-
-\begin{dispExample}
-% \usepackage{listings} or \tcbuselibrary{listings}
-\DeclareTotalTCBox{\commandbox}{ s v }
-{verbatim,colupper=white,colback=black!75!white,colframe=black}
-{\IfBooleanT{#1}{\textcolor{red}{\ttfamily\bfseries > }}%
- \lstinline[language=command.com,keywordstyle=\color{blue!35!white}\bfseries]^#2^}
-
-\commandbox*{cd "My Documents"} changes to directory \commandbox{My Documents}.
-
-\commandbox*{dir /A} lists the directory content.
-
-\commandbox*{copy example.txt d:\target} copies \commandbox{example.txt} to
- \commandbox{d:\target}.
-\end{dispExample}
-\end{docCommand}
-
-\clearpage
-\begin{docCommand}{NewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\begin{docCommand}{tcboxverb}{\oarg{options}\marg{verbatim box content}}
- Creates a colored box based on \refCom{tcbox} which is fitted to the width of the given
- \meta{verbatim box content}.
- The underlying \refCom{tcbox} is styled with
- \refKey{/tcb/verbatim} plus the given \meta{options}.
- The difference to \refCom{tcbox} is that the \meta{verbatim box content} is
- interpreted \textit{verbatim}. Therefore, |\tcboxverb| acts similar to |\verb|.
-
-\begin{dispExample}
-\tcboxverb{\LaTeX}, \tcboxverb[colback=blue!10!white,colupper=blue]{\LaTeX},
-\tcboxverb[blank,fuzzy halo]{\LaTeX}, \tcboxverb[beamer]{\LaTeX},
-\tcboxverb[enhanced,skin=enhancedmiddle jigsaw,colframe=red]{\LaTeX}.
-\end{dispExample}
-\end{docCommand}
-
-
-
-
-\clearpage
-\subsection{Producing \texttt{tcblisting} Environments}\label{subsec:xparse_listing}
-\begin{marker}
-Besides \mylib{xparse}, the following commands also need the \mylib{listings} library to be included.
-\end{marker}
-
-\begin{docCommand}{DeclareTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Creates a new environment \meta{name} based on \refEnv{tcblisting}.\\
- Basically, |\DeclareTCBListing| operates like |\DeclareDocumentEnvironment|. This means,
- the new environment \meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcblisting}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new environment is always created, irrespective of an already existing
- environment with the same name.
-
-\begin{dispExample*}{sbs,lefthand ratio=0.5}
-\DeclareTCBListing{mybox}{ s O{} m }{%
- colback=red!5!white,
- colframe=red!75!black,
- fonttitle=\bfseries,
- IfBooleanTF={#1}
- {listing side text}
- {text side listing},
- title={#3},#2}
-
-\begin{mybox}{Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\bigskip
-
-\begin{mybox}*{Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\bigskip
-
-\begin{mybox}[colback=yellow]
- {Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\end{dispExample*}
-\end{docCommand}
-
-
-
-\begin{docCommand}{NewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An error is issued if \meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An existing environment is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- The environment \meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-\clearpage
-
-
-\begin{marker}
-With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
-changed the argument collection process.
-Now, spaces are ignored which leads to a serious change for listing environments
-ending with an optional argument like \verb+O{}+.
-The former behavior of respecting spaces can be preserved by adding a \flqq\verb+!+\frqq.
-Note that the following code uses \verb+!O{}+ now.
-\begin{itemize}
-\item For older |xparse| versions, the following code is correct when using \verb+O{}+.
-\item For |xparse| of 2018-05-12, only the first two examples of
- the following code using \verb+O{}+ are really \flqq good\frqq\ -- all others do not work.
-\item For |xparse| of 2018-05-12 and later, the following code is correct when using \verb+!O{}+.
-\end{itemize}
-\end{marker}
-
-
-
-
-
-\begin{dispListing*}{title={Caveats of using an environment ending with an
- optional argument},fonttitle=\bfseries}
-\DeclareTCBListing{mybox}{ !O{} }{listing only,#1}
-
-\begin{mybox}[colframe=red]
-\good
-\end{mybox}
-
-\begin{mybox}[colframe=red]\good\end{mybox}
-
-\begin{mybox}
-\good
-\end{mybox}
-
-\begin{mybox} \good\end{mybox}
-
-\begin{mybox}\bad!\end{mybox}
-
-\begin{mybox}
-[\good]
-\end{mybox}
-
-\begin{mybox} [\good]\end{mybox}
-
-\begin{mybox}[\bad!]\end{mybox}
-\end{dispListing*}
-
-\clearpage
-\subsection{Producing \texttt{tcbinputlisting} Commands}\label{subsec:xparse_inputlisting}
-\begin{marker}
-The following commands need the \mylib{listings} library to be included.
-\end{marker}
-
-
-\begin{docCommand}{DeclareTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
- Basically, |\DeclareTCBInputListing| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbinputlisting}.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTCBInputListing[use counter from=pabox]{\mylisting}{ O{} O{red} m }{%
- listing file={#3},title=Listing~\thetcbcounter,
- colback=#2!5!white,colframe=#2!50!black,colbacktitle=#2!75!black,
- fonttitle=\bfseries,listing only,#1}
-
-\mylisting[before upper=\textit{This is the included file content:}]
- [blue]{\jobname.tcbtemp}
-\end{dispExample}
- \end{docCommand}
-
-\begin{docCommand}{NewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-\subsection{Producing \texttt{tboxfit} Commands}\label{subsec:xparse_tcboxfit}
-\begin{marker}
-The following commands need the \mylib{fitting} library to be included.
-\end{marker}
-
-\begin{docCommand}{DeclareTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
- Basically, |\DeclareTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcboxfit}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-% \usepackage{lipsum}
-
-\DeclareTCBoxFit{\mybox}{ O{} m !o }
- {colback=red!5!white,
- colframe=red!75!black,
- width=#2,height=#2/3*2,
- IfValueT={#3}{height=#3},
- #1}
-
-\mybox[colback=yellow]{5cm}%
- {\lipsum[2]}
-
-\mybox[colback=yellow]{5cm}[4cm]{\lipsum[2]}
-\end{dispExample*}
-\end{docCommand}
-
-\begin{docCommand}{NewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
- In contrast to \refCom{DeclareTCBoxFit}, also the \meta{content} of the |tcboxfit| is specified.\\
- Basically, |\DeclareTotalTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcboxfit} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% \usepackage{lipsum}
-
-\DeclareTotalTCBoxFit{\multibox}{ O{} m O{10} m }
- {nobeforeafter,colback=red!5!white,colframe=red!75!black,width=#2,height=#2/3*2,
- valign=center,#1}
- { \foreach \n in {1,...,#3} { #4} }
-
-\multibox{5cm}{I shall not repeat.}
-\multibox[colframe=blue!75!white]{5cm}[20]{I shall not repeat.}\\
-\multibox[colback=yellow,height=5cm]{14cm}[100]{I shall not repeat.}
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
+Instead of including the |xparse| library, it is recommended to include the
+|xparse| package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
+essentially everything needed). The library is kept for compatibility.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index 5d613e89a5..b93a509ec4 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 a836c92d46..70f5d5996d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 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}
-\ProvidesPackage{tcolorbox}[2022/01/07 version 5.0.2 text color boxes]
-\def\tcb@version{5.0.2}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{tcolorbox}[2022/06/22 version 5.1.0 text color boxes]
+\def\tcb@version{5.1.0}
\RequirePackage{pgf}[2008/01/15]
\RequirePackage{verbatim}[2003/08/22]
@@ -378,6 +378,8 @@
}},
beforeafter skip/.style={before skip={#1},after skip={#1}},
before nobreak/.store in=\kvtcb@beforebox@nobreak,
+ before float/.store in=\kvtcb@beforefloat,
+ after float/.store in=\kvtcb@afterfloat,
lowerbox/.is choice,
lowerbox/visible/.code={\tcb@lowerignoredfalse\tcb@lowervisibletrue},
lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse},
@@ -591,7 +593,14 @@
skin first is subskin of/.style 2 args={skin@local@first/.style={skin@#1,#2},skin first=local@first},%
skin middle is subskin of/.style 2 args={skin@local@middle/.style={skin@#1,#2},skin middle=local@middle},%
skin last is subskin of/.style 2 args={skin@local@last/.style={skin@#1,#2},skin last=local@last},%
- parbox/.store in=\kvtcb@parbox,
+ parbox/.is choice,
+ parbox/true/.code={%
+ \def\kvtcb@parbox{true}%
+ },
+ parbox/false/.code={%
+ \def\kvtcb@parbox{false}%
+ \appto\tcb@lateoptions@hook{\csname tcb@parbox@\kvtcb@parbox @indent\endcsname}%
+ },
parbox/.default=true,%
hyphenationfix/.is choice,%
hyphenationfix/.default=true,%
@@ -717,6 +726,41 @@
sidebyside align/center seam/.code={\def\kvtcb@sbs@align{center}\let\tcb@box@align\tcb@box@align@center},%
sidebyside align/bottom seam/.code={\def\kvtcb@sbs@align{bottom}\let\tcb@box@align\tcb@box@align@bottom},%
sidebyside gap/.dimstore in=\kvtcb@sbs@gap,%
+ sidebyside adapt/.is choice,
+ sidebyside adapt/none/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\let\tcb@sbs@content\tcb@sbs@content@none},
+ }%
+ },
+ sidebyside adapt/left/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@upper\let\tcb@sbs@content\tcb@sbs@content@left},
+ lefthand width=\wd\tcb@upperbox,
+ }%
+ },
+ sidebyside adapt/right/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@right},
+ righthand width=\wd\tcb@lowerbox,
+ }%
+ },
+ sidebyside adapt/both/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@upper\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@both},
+ text width=\wd\tcb@upperbox+\kvtcb@sbs@gap+\wd\tcb@lowerbox,
+ lefthand width=\wd\tcb@upperbox,
+ }%
+ },
+ sidebyside switch/.is choice,
+ sidebyside switch/true/.style={%
+ sidebyside@switch/.code={%
+ \tcb@swap{\tcb@sbs@text@left}{\tcb@sbs@text@right}
+ }%
+ },
+ sidebyside switch/false/.style={%
+ sidebyside@switch/.style=%
+ },
+ sidebyside switch/.default=true,
lefthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftwidth},
righthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightwidth},
lefthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftratio},
@@ -824,9 +868,31 @@
verbatim ignore percent/true/.code={\def\tcb@verbatim@change@percent{\catcode`\^^e=9}},
verbatim ignore percent/false/.code={\let\tcb@verbatim@change@percent\@empty},
verbatim ignore percent/.default=true,
+ verbatim/.style={fontupper=\ttfamily,nobeforeafter,tcbox raise base,top=0pt,bottom=0pt,left=1mm,right=1mm,boxrule=0.3mm},
wrap@environment/.is if=tcb@wrap@environment,
}
+\ExplSyntaxOn
+\tcbset
+ {
+ IfBlankTF/.code~n~args={3}{\tl_if_blank:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfBlankT/.code~n~args={2}{\tl_if_blank:nT{#1}{\pgfkeysalso{#2}}},
+ IfBlankF/.code~n~args={2}{\tl_if_blank:nF{#1}{\pgfkeysalso{#2}}},
+ IfEmptyTF/.code~n~args={3}{\tl_if_empty:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfEmptyT/.code~n~args={2}{\tl_if_empty:nT{#1}{\pgfkeysalso{#2}}},
+ IfEmptyF/.code~n~args={2}{\tl_if_empty:nF{#1}{\pgfkeysalso{#2}}},
+ IfNoValueTF/.code~n~args={3}{\tl_if_novalue:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfNoValueT/.code~n~args={2}{\tl_if_novalue:nT{#1}{\pgfkeysalso{#2}}},
+ IfNoValueF/.code~n~args={2}{\tl_if_novalue:nF{#1}{\pgfkeysalso{#2}}},
+ IfValueTF/.code~n~args={3}{\tl_if_novalue:nTF{#1}{\pgfkeysalso{#3}}{\pgfkeysalso{#2}}},
+ IfValueT/.code~n~args={2}{\tl_if_novalue:nF{#1}{\pgfkeysalso{#2}}},
+ IfValueF/.code~n~args={2}{\tl_if_novalue:nT{#1}{\pgfkeysalso{#2}}},
+ IfBooleanTF/.code~n~args={3}{\IfBooleanTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ 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{}
@@ -838,10 +904,16 @@
\fi%
}
+\def\tcb@parbox@true@indent{}%
+\def\tcb@parbox@false@indent{%
+ \preto\kvtcb@before@title{\noindent}%
+ \preto\kvtcb@before@upper{\noindent}%
+ \preto\kvtcb@before@lower{\noindent}%
+}%
+
\let\tcb@parboxrestore=\@parboxrestore
\def\tcb@parbox@false@settings{%
- \noindent%
\linewidth\hsize%
\@totalleftmargin\z@%
\leftskip\z@skip%
@@ -926,7 +998,7 @@
\ifx\kvtcb@title\@empty\tcb@hasTitlefalse\tcb@specialtitle@hook\else%
\tcb@hasTitletrue%
\tcbdimto\tcb@w@title{\kvtcb@width-(\kvtcb@left@rule+\kvtcb@right@rule+(\kvtcb@boxsep)*2+\kvtcb@lefttitle+\kvtcb@righttitle)}%
- \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}%
+ \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\tcb@lua@color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}%
\fi%
}
@@ -983,6 +1055,18 @@
\fi%
}
+\def\tcb@sbs@content@none{\tcb@sbs@text@left\tcblower\tcb@sbs@text@right}
+\def\tcb@sbs@content@left{\box\tcb@upperbox\tcblower\tcb@sbs@text@right}
+\def\tcb@sbs@content@right{\tcb@sbs@text@left\tcblower\box\tcb@lowerbox}
+\def\tcb@sbs@content@both{\box\tcb@upperbox\tcblower\box\tcb@lowerbox}
+
+\def\tcb@sbs@save@upper{%
+ \sbox{\tcb@upperbox}{\color{tcbcolupper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper\tcb@sbs@text@left\tcb@insert@after@upper}%
+}
+\def\tcb@sbs@save@lower{%
+ \sbox{\tcb@lowerbox}{\color{tcbcollower}\kvtcb@fontlower\kvtcb@halignlower\tcb@insert@before@lower\tcb@sbs@text@right\tcb@insert@after@lower}%
+}
+
\def\tcb@set@color#1{%
\edef\current@color{\@nameuse{\string\color@#1}}%
\colorlet{.}{#1}%
@@ -1829,8 +1913,8 @@
\ifx\kvtcb@float\@empty%
\tcb@set@normal@unbroken@beforeafter%
\else%
- \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@everyfloat}%
- \let\tcb@after@unbroken=\tcb@float@env@end%
+ \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@beforefloat\noexpand\kvtcb@everyfloat}%
+ \def\tcb@after@unbroken{\kvtcb@afterfloat\tcb@float@env@end}%
\fi%
\setcounter{tcbbreakpart}{1}%
% computation of total height
@@ -2048,44 +2132,198 @@
\kvtcb@init@hook%
}%
-\long\def\tcb@process@newtcolorbox#1#2{%
- \edef\tcb@new@boxname{#1}%
- \def\tcb@new@colopt{}%
- \long\def\temp@a{#2}%
- \ifx\temp@a\@empty\relax%
- \else%
- \tcb@proc@options@init{#2}{#1}%
- \fi%
- \preto\tcb@new@colopt{savedelimiter=#1}%
- \cslet{tcb@opt@#1}{\tcb@new@colopt}%
- \tcb@process@newtcolorbox@continue{#1}%
-}
-\newcommand\tcb@process@newenvironment[2][]{%
- \tcb@process@newtcolorbox{#2}{#1}%
-}
+\ExplSyntaxOn
+
+\cs_new:Npn \__tcobox_process_newtcolorbox:nn #1#2
+ {
+ \edef\tcb@new@boxname{#2}
+ \def\tcb@new@colopt{}
+ \tl_if_novalue:nF { #1 }
+ {
+ \tcb@proc@options@init{#1}{#2}
+ }
+ \preto\tcb@new@colopt{savedelimiter=#2}
+ \exp_args:Nc \cs_set_eq:NN { tcb@opt@#2 } \tcb@new@colopt
+ }
-\long\def\tcb@newtcolorbox#1#2{\tcb@newenvironment{#1}{\tcolorbox[#2,options@for=#1]}{\endtcolorbox}}
-\long\def\tcb@newtcolorbox@#1[#2]#3{\tcb@newenvironment{#1}[#2]{\tcolorbox[#3,options@for=#1]}{\endtcolorbox}}
+\cs_new:Npn \__tcobox_set_backslash_removed:Nn #1#2
+ {
+ \tl_set:Nn #1 { #2 }
+ \tl_trim_spaces:N #1
+ \tl_set:Nx #1 { \exp_last_unbraced:NV \cs_to_str:N #1 }
+ }
-\long\def\tcb@newtcolorbox@@#1[#2][#3]#4{\tcb@newenvironment{#1}[#2][#3]{\tcolorbox[#4,options@for=#1]}{\endtcolorbox}}
-\long\def\tcb@new@tcolorbox@#1[#2]{%
- \@ifnextchar[{\tcb@newtcolorbox@@{#1}[#2]}{\tcb@newtcolorbox@{#1}[#2]}}
+\NewDocumentCommand \__tcobox_new_tcolorbox:w { m +o m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ #1 { #3 }{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ #1 { #3 }[ #4 ]{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ {
+ #1 { #3 }[ #4 ][ #5 ]{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ }
+ }
+\NewDocumentCommand \newtcolorbox { }
+ {
+ \__tcobox_new_tcolorbox:w \newenvironment
+ }
+\NewDocumentCommand \renewtcolorbox { }
+ {
+ \__tcobox_new_tcolorbox:w \renewenvironment
+ }
-\def\tcb@new@tcolorbox#1{%
- \@ifnextchar[{\tcb@new@tcolorbox@{#1}}{\tcb@newtcolorbox{#1}}}
-\def\newtcolorbox{%
- \let\tcb@newenvironment\newenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
- \tcb@process@newenvironment}
+\NewDocumentCommand \__tcobox_new_TColorBox:w { m +o m +m +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ #1 { #3 }{ #4 }{ \tcolorbox[#5,options@for=#3] }{ \endtcolorbox }
+ }
+\NewDocumentCommand \DeclareTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \DeclareDocumentEnvironment
+ }
+\NewDocumentCommand \NewTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \NewDocumentEnvironment
+ }
+\NewDocumentCommand \RenewTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \RenewDocumentEnvironment
+ }
+\NewDocumentCommand \ProvideTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \ProvideDocumentEnvironment
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTColorBox:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \begin{tcolorbox}[#5,options@for=#3]#6\end{tcolorbox} }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \RenewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \ProvideDocumentCommand
+ }
+
+
+\NewDocumentCommand \__tcobox_new_tcbox_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcbox[#6,options@for=#3] }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbox[#6,options@for=#3] }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbox[#6,options@for=#3] }
+ }
+ }
+ }
+\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
+ }
+\NewDocumentCommand \newtcbox { }
+ {
+ \__tcobox_new_tcbox_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcbox { }
+ {
+ \__tcobox_new_tcbox_i:w \renewcommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TCBox:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbox[#5,options@for=#3] }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTCBox { }
+ {
+ \__tcobox_new_TCBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBox { }
+ {
+ \__tcobox_new_TCBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBox { }
+ {
+ \__tcobox_new_TCBox:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBox { }
+ {
+ \__tcobox_new_TCBox:w \ProvideDocumentCommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTCBox:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbox[#5,options@for=#3]{#6} }
+ }
+\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
+ }
+\NewDocumentCommand \DeclareTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\def\renewtcolorbox{%
- \let\tcb@newenvironment\renewenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
- \tcb@process@newenvironment}
\newcommand{\tcolorboxenvironment}[2]{%
\AddToHook{env/#1/before}{%
@@ -2097,46 +2335,14 @@
}%
}
-% auxiliary code to remove a leading backspace
-\newcommand{\tcb@remove@bs}[1]{%
- \ifcat\relax\noexpand#1%
- \expandafter\tcb@remove@bs@aux@i%
- \fi
- #1}
-\newcommand*{\tcb@remove@bs@aux@i}{%
- \romannumeral%
- \if\string\ \tcb@remove@bs@aux@ii\fi%
- \expandafter\tcb@remove@bs@aux@iii\string}
-\newcommand{\tcb@remove@bs@aux@ii}{}
-\long\def\tcb@remove@bs@aux@ii#1\tcb@remove@bs@aux@iii{%
- -\number\fi\expandafter\z@}
-\newcommand{\tcb@remove@bs@aux@iii}[1]{\z@}
-
-\newcommand\tcb@process@newcommand[2][]{%
- \begingroup\edef\x{\endgroup\noexpand\tcb@process@newtcolorbox{\tcb@remove@bs{#2}}}\x{#1}%
-}
-
-\long\def\tcb@newtcbox#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcbox[#2,options@for=#1]}}
-
-\long\def\tcb@newtcbox@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcbox[#3,options@for=#1]}}
-
-\long\def\tcb@newtcbox@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcbox[#4,options@for=#1]}}
-
-\long\def\tcb@new@tcbox@#1[#2]{%
- \@ifnextchar[{\tcb@newtcbox@@{#1}[#2]}{\tcb@newtcbox@{#1}[#2]}}
-
-\def\tcb@new@tcbox#1{%
- \@ifnextchar[{\tcb@new@tcbox@{#1}}{\tcb@newtcbox{#1}}}
-
-\def\newtcbox{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
- \tcb@process@newcommand}
+\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
-\def\renewtcbox{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
- \tcb@process@newcommand}
+\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
+ code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
+ #1,%
+ sidebyside,%
+ sidebyside@switch,sidebyside@adapt@process%
+}{\tcb@sbs@content}
\def\tcb@addcontentsline#1#2{%
@@ -2346,7 +2552,9 @@
standard,parbox,hyphenationfix=false,overlay=,
halign=justify,halign lower=justify,halign title=justify,
before title=,after title=,before upper=,after upper=,before lower=,after lower=,
+ before float=,after float=,
sidebyside=false,sidebyside align=center,sidebyside gap=10mm,
+ sidebyside adapt=none,sidebyside switch=false,%
lefthand ratio=0.5,check odd page=false,nophantom,
list entry=,no label type,
opacityupper=1.0,opacitylower=1.0,opacitytitle=1.0,opacityframe=1.0,opacityback=1.0,@opacitybacktitle=1.0,
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index 2287a74e47..13d9a0bc89 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 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -25,9 +25,10 @@
% arara: pdflatex: { shell: yes, synctex: yes }
% arara: pdflatex: { shell: yes, synctex: yes }
%
-\PassOptionsToPackage{pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks}{hyperref}
+\PassOptionsToPackage{pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks,pdfusetitle,pdfpagelabels}{hyperref}
\documentclass[a4paper,11pt]{ltxdoc}
+
\usepackage{tcolorbox.doc.s_main}
\tcbEXTERNALIZE
\usepackage{tcolorbox.doc.s_snippet}
@@ -35,8 +36,8 @@
\tcbAUXmkdir{external}
\tcbAUXmkdir{solutions}
-\RequirePackage{csquotes}
-\RequirePackage[style=numeric-comp,sorting=nyt,
+%\usepackage{csquotes}
+\usepackage[style=numeric-comp,sorting=nyt,
maxnames=8,minnames=8,abbreviate=false,backend=biber,
bibencoding=latin1,texencoding=ascii]{biblatex}
\DeclareFieldFormat{url}{\newline\url{#1}}%
@@ -44,8 +45,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{5.0.2}%
-\def\datum{2022/01/07}%
+\def\version{5.1.0}%
+\def\datum{2022/06/22}%
\makeindex
\hypersetup{
@@ -63,7 +64,7 @@
%\geometry{showframe}
%\tcbset{draftmode}
\tcbset{/tcb/external/-}% for final run
-%\includeonly{tcolorbox.doc.listings}
+%\includeonly{tcolorbox.doc.fitting,tcolorbox.doc.index}
%\hypersetup{colorlinks=false}