texlive[63694] Master/texmf-dist: tcolorbox (22jun22)

commits+karl at tug.org commits+karl at tug.org
Wed Jun 22 22:56:47 CEST 2022


Revision: 63694
          http://tug.org/svn/texlive?view=revision&revision=63694
Author:   karl
Date:     2022-06-22 22:56:47 +0200 (Wed, 22 Jun 2022)
Log Message:
-----------
tcolorbox (22jun22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tcolorbox/CHANGES.md
    trunk/Master/texmf-dist/doc/latex/tcolorbox/README.md
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.pdf
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.pdf
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.hooks.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.sidebyside.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skincatalog.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.technical.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.xparse.tex
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf
    trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex
    trunk/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/CHANGES.md	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/CHANGES.md	2022-06-22 20:56:47 UTC (rev 63694)
@@ -22,6 +22,59 @@
 
 
 
+## [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 @@
 
 
 
-
 ## [5.0.1] - 2021-12-20
 
 ### Fixed
@@ -44,6 +96,7 @@
     This also affected boxes with sidebyside content
 
 
+
 ## [5.0.0] - 2021-12-16
 
 ### Added

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/README.md	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/README.md	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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>

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example-poster.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-tutorial-poster.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 @@
 \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 @@
 
 
 \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 \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}.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -2786,9 +2786,10 @@
 \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,7 +2805,33 @@
 \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}
 Typically, but not necessarily, a |tcolorbox| is put inside a separate paragraph
@@ -3778,6 +3805,7 @@
 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 @@
 \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 @@
   \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 @@
   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,8 +4548,187 @@
 \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}
   Annihilates the current |tcolorbox| as far as possible.
   Basically, this comments out the whole |tcolorbox| by using a key.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -1378,6 +1378,7 @@
 \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 @@
 \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 @@
   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 @@
   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 @@
 
 
 
-
-
-
-\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.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -36,14 +36,60 @@
 \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}.
   Basically, |\newtcboxfit| operates like |\newcommand|.
@@ -96,53 +142,97 @@
 
 \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}
+\mybox[colback=yellow]{5cm}%
+  {\lipsum[2]}
+
+\mybox[colback=yellow]{5cm}[4cm]{\lipsum[2]}
 \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}
 
+\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}
 
 The font size for the content of a box with fixed width and fixed height
@@ -493,7 +583,7 @@
 \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 @@
 
 \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}

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.hooks.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.hooks.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.hooks.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -133,6 +133,7 @@
 \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,7 +169,25 @@
 \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}
 The following option keys extend the options given in Subsection \ref{subsec:overlays}

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 @@
 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 @@
   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 @@
 \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 @@
 
 
 \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 @@
 \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 @@
 
 
 \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 @@
 
 
 \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 @@
 
 \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 @@
 
 
 \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,7 +424,47 @@
   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 @@
 \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 @@
 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 @@
 
 \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 @@
 
 
 \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 @@
 \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 @@
 \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 @@
 
 
 \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 @@
 
 
 \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 @@
 \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 @@
 
 
 \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 @@
 \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 @@
 \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}

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty	2022-06-22 20:56:47 UTC (rev 63694)
@@ -3,6 +3,10 @@
 \renewcommand*\l at subsection{\@dottedtocline{2}{1.5em}{2.7em}}
 \renewcommand*\l at subsubsection{\@dottedtocline{3}{4.2em}{3.2em}}
 
+% prevent hypdoc from loading (sets hyperindex=false)
+\@namedef{ver at hypdoc.sty}{9999/12/31}
+\@namedef{opt at hypdoc.sty}{hypdoc}
+
 \RequirePackage[T1]{fontenc}
 \RequirePackage[utf8]{inputenc}
 \RequirePackage[english]{babel}

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.sidebyside.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.sidebyside.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.sidebyside.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -245,14 +245,9 @@
 
 
 \clearpage
-\subsection{Advanced Settings from the \mylib{xparse} Library}\label{subsec:sidebyside_xparse}
+\subsection{Advanced Settings}\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}
 
-
 \begin{docCommand}[doc new=2015-11-20]{tcbsidebyside}{\oarg{options}\marg{left-handed content}\marg{right-handed content}}
 Creates a colored box using more or less arbitrary \meta{options} for a \refEnv{tcolorbox}.
 The \refKey{/tcb/sidebyside} option is set to |true| and the

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skincatalog.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skincatalog.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skincatalog.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -633,7 +633,7 @@
 \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 @@
 
 \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}.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.technical.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.technical.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.technical.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -748,7 +748,7 @@
 
 
 \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.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.xparse.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.xparse.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.xparse.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -7,635 +7,14 @@
 \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.

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{pdfcol}
 \pdfcolInitStack{tcb at breakable}
@@ -95,7 +95,6 @@
   \@setminipage\tcb at hyph@fix%
   \let\tcb at drawcolorbox\tcb at drawcolorbox@standalone%
   \let\FN at pp@footnote\@empty% disable perpage mode of 'footmisc' package
-  \ignorespaces%
 }
 
 \def\endtcb at vbox{%

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at 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 at 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 at doc@toindex
 \newif\iftcb at doc@colorize
 \newif\iftcb at doc@annotate
 
@@ -102,6 +107,7 @@
   environment content/.store in=\kvtcb at text@envcontent,
   environment/.store in=\kvtcb at text@env,
   environments/.store in=\kvtcb at text@envs,
+  commands/.store in=\kvtcb at text@coms,
   index/.store in=\kvtcb at text@index,
   key/.store in=\kvtcb at text@key,
   keys/.store in=\kvtcb at 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 at doc@description,%
-  doc into index/.is if=tcb at 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 at doc@colorize\textcolor{#2}{\tcb at cs{#1}}\else\tcb at cs{#1}\fi%
 }
 
-\newrobustcmd{\tcbIndexPrintComC}[1]{\tcb at Index@Print at ComC{#1}{\kvtcb at col@command}}
+\NewDocumentCommand{\tcbIndexPrintComC}{m}{\tcb at Index@Print at ComC{#1}{\kvtcb at col@command}}
 
-\newrobustcmd{\tcbIndexPrintEnvCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@environment}{\kvtcb at text@env}}
-\newrobustcmd{\tcbIndexPrintEnvC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@environment}}
+\NewDocumentCommand{\tcbIndexPrintEnvCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@environment}{\kvtcb at text@env}}
+\NewDocumentCommand{\tcbIndexPrintEnvC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@environment}}
 
-\newrobustcmd{\tcbIndexPrintKeyCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@key}{\kvtcb at text@key}}
-\newrobustcmd{\tcbIndexPrintKeyC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@key}{\kvtcb at text@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@key}}
 
-\newrobustcmd{\tcbIndexPrintPathCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@path}{\kvtcb at text@path}}
-\newrobustcmd{\tcbIndexPrintPathC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@path}}
+\NewDocumentCommand{\tcbIndexPrintPathCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@path}{\kvtcb at text@path}}
+\NewDocumentCommand{\tcbIndexPrintPathC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@path}}
 
-\newrobustcmd{\tcbIndexPrintValCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@value}{\kvtcb at text@value}}
-\newrobustcmd{\tcbIndexPrintValC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@value}}
+\NewDocumentCommand{\tcbIndexPrintValCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@value}{\kvtcb at text@value}}
+\NewDocumentCommand{\tcbIndexPrintValC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@value}}
 
-\newrobustcmd{\tcbIndexPrintColCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@color}{\kvtcb at text@color}}
-\newrobustcmd{\tcbIndexPrintColC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@color}}
+\NewDocumentCommand{\tcbIndexPrintColCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@color}{\kvtcb at text@color}}
+\NewDocumentCommand{\tcbIndexPrintColC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@color}}
 
-\newrobustcmd{\tcbIndexPrintCountCA}[1]{\tcb at Index@Print at CA{#1}{\kvtcb at col@counter}{\kvtcb at text@counter}}
-\newrobustcmd{\tcbIndexPrintCountC}[1]{\tcb at Index@Print at C{#1}{\kvtcb at col@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountCA}{m}{\tcb at Index@Print at CA{#1}{\kvtcb at col@counter}{\kvtcb at text@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountC}{m}{\tcb at Index@Print at C{#1}{\kvtcb at col@counter}}
 
-\newrobustcmd{\tcbIndexPrintLenCA}[1]{\tcb at Index@Print at ComCA{#1}{\kvtcb at col@length}{\kvtcb at text@length}}
-\newrobustcmd{\tcbIndexPrintLenC}[1]{\tcb at Index@Print at ComC{#1}{\kvtcb at col@length}}
+\NewDocumentCommand{\tcbIndexPrintLenCA}{m}{\tcb at Index@Print at ComCA{#1}{\kvtcb at col@length}{\kvtcb at text@length}}
+\NewDocumentCommand{\tcbIndexPrintLenC}{m}{\tcb at Index@Print at ComC{#1}{\kvtcb at col@length}}
 
 
 \newenvironment{tcb at 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 at doc@toindex
-      \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintComC{\kvtcb at doc@index}}
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintComC{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_commands_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@coms\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintComC{\kvtcb at doc@index}}
+          }
+      }
   }
 
 \cs_new:Npn \__tcobox_doc_head_command:
@@ -457,7 +491,7 @@
 \NewDocumentEnvironment{docCommand*}{}
   {
     \group_begin:
-    \tcb at 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 at doc@toindex
-      \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvCA{\kvtcb at doc@index}}
-      \kvtcb at index@command{\kvtcb at text@envs\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvC{\kvtcb at doc@index}}
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvCA{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_environments_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@envs\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvC{\kvtcb at doc@index}}
+          }
+      }
   }
 
 \cs_new:Npn \__tcobox_doc_head_environment:
@@ -517,7 +555,7 @@
 \NewDocumentEnvironment{docEnvironment*}{}
   {
     \group_begin:
-    \tcb at 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 at doc@toindex
-      \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyCA{\kvtcb at doc@index}}
-      \tl_if_empty:NTF \kvtcb at doc@keypath
-        {
-          \kvtcb at index@command{\kvtcb at text@keys\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyC{\kvtcb at doc@index}}
-        }
-        {
-          \kvtcb at index@command{\kvtcb at text@keys\idx at level\kvtcb at doc@keypath\idx at actual\tcbIndexPrintKeyC{/\kvtcb at doc@keypath/}
-            \idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyC{\kvtcb at doc@index}}
-        }
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyCA{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_keys_bool
+          {
+            \tl_if_empty:NTF \kvtcb at doc@keypath
+              {
+                \kvtcb at index@command{\kvtcb at text@keys\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyC{\kvtcb at doc@index}}
+              }
+              {
+                \kvtcb at index@command{\kvtcb at text@keys\idx at level\kvtcb at doc@keypath\idx at actual\tcbIndexPrintKeyC{/\kvtcb at doc@keypath/}
+                  \idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintKeyC{\kvtcb at doc@index}}
+              }
+          }
+      }
   }
 
 \cs_new:Npn \__tcobox_doc_head_key:
@@ -603,7 +645,7 @@
 \NewDocumentEnvironment{docKey*}{}
   {
     \group_begin:
-    \tcb at doc@toindexfalse
+    \bool_set_false:N \l__tcobox_doc_toindex_bool
     \begin{docKey}
   }
   {
@@ -633,7 +675,7 @@
     \NewDocumentEnvironment{#1*}{}
       {
         \group_begin:
-        \tcb at 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 at doc@toindex
-      \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintPathCA{\kvtcb at doc@index}}
-      \kvtcb at index@command{\kvtcb at text@paths\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintPathC{\kvtcb at doc@index}}
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintPathCA{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_paths_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@paths\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintPathC{\kvtcb at doc@index}}
+          }
+      }
   }
 
 \cs_new:Npn \__tcobox_doc_head_path:
@@ -710,7 +756,7 @@
 \NewDocumentEnvironment{docPathOperation*}{}
   {
     \group_begin:
-    \tcb at doc@toindexfalse
+    \bool_set_false:N \l__tcobox_doc_toindex_bool
     \begin{docPathOperation}
   }
   {
@@ -756,7 +802,10 @@
     \IfBooleanF{#1}
       {
         \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintValCA{\kvtcb at doc@index}}
-        \kvtcb at index@command{\kvtcb at text@values\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintValC{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_values_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@values\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintValC{\kvtcb at doc@index}}
+          }
       }
     \group_end:
   }
@@ -770,7 +819,10 @@
     \IfBooleanF{#1}
       {
         \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintColCA{\kvtcb at doc@index}}
-        \kvtcb at index@command{\kvtcb at text@colors\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintColC{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_colors_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@colors\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintColC{\kvtcb at doc@index}}
+          }
       }
     \group_end:
   }
@@ -784,7 +836,10 @@
     \IfBooleanF{#1}
       {
         \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintCountCA{\kvtcb at doc@index}}
-        \kvtcb at index@command{\kvtcb at text@counters\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintCountC{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_counters_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@counters\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintCountC{\kvtcb at doc@index}}
+          }
       }
     \group_end:
   }
@@ -798,7 +853,10 @@
     \IfBooleanF{#1}
       {
         \kvtcb at index@command{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintLenCA{\kvtcb at doc@index}}
-        \kvtcb at index@command{\kvtcb at text@lengths\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintLenC{\kvtcb at doc@index}}
+        \bool_if:NT \l__tcobox_doc_gather_lengths_bool
+          {
+            \kvtcb at index@command{\kvtcb at text@lengths\idx at level\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintLenC{\kvtcb at doc@index}}
+          }
       }
     \group_end:
   }
@@ -887,17 +945,19 @@
 
 \ExplSyntaxOn
 \def\tcb at doc@index at doc{
-  \def \__tcobox_index_command:
+  \cs_set_nopar:Npn \__tcobox_index_command:
   {
-    \iftcb at doc@toindex
-      \SpecialMainIndex{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintComC{\kvtcb at doc@index}}
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \SpecialMainIndex{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintComC{\kvtcb at doc@index}}
+      }
   }
-  \def \__tcobox_index_environment:
+  \cs_set_nopar:Npn \__tcobox_index_environment:
   {
-    \iftcb at doc@toindex
-      \SpecialMainEnvIndex{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvC{\kvtcb at doc@index}}
-    \fi
+    \bool_if:NT \l__tcobox_doc_toindex_bool
+      {
+        \SpecialMainEnvIndex{\kvtcb at doc@sortindex\idx at actual\tcbIndexPrintEnvC{\kvtcb at doc@index}}
+      }
   }
   \tcbset{index~german~settings}
   \EnableCrossrefs
@@ -908,6 +968,28 @@
 \def\tcb at doc@index at 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 at documentation/.style={%
   },
   initialize at reset=reset at 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,

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{pro at cessing}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \newdimen\tcbfitdim
 \newdimen\tcb at lowerfitdim
@@ -371,28 +371,101 @@
   \tcb at ox{capture=fitbox,#1}{#2}%
 }
 
-\long\def\tcb at newtcboxfit#1#2{\expandafter\tcb at newcommand\csname#1\endcsname{\tcboxfit[#2,options at for=#1]}}
 
-\long\def\tcb at newtcboxfit@#1[#2]#3{\expandafter\tcb at newcommand\csname#1\endcsname[#2]{\tcboxfit[#3,options at for=#1]}}
+\ExplSyntaxOn
 
-\long\def\tcb at newtcboxfit@@#1[#2][#3]#4{\expandafter\tcb at newcommand\csname#1\endcsname[#2][#3]{\tcboxfit[#4,options at for=#1]}}
 
-\long\def\tcb at new@tcboxfit@#1[#2]{%
-  \@ifnextchar[{\tcb at newtcboxfit@@{#1}[#2]}{\tcb at 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 at for=#3] }
+      }
+      {
+        \tl_if_novalue:nTF { #5 }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ]{ \tcboxfit[#6,options at for=#3] }
+        }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcboxfit[#6,options at 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 at new@tcboxfit#1{%
-  \@ifnextchar[{\tcb at new@tcboxfit@{#1}}{\tcb at newtcboxfit{#1}}}
 
-\def\newtcboxfit{%
-  \let\tcb at newcommand\newcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcboxfit%
-  \tcb at 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 at 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
+  }
 
-\def\renewtcboxfit{%
-  \let\tcb at newcommand\renewcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcboxfit%
-  \tcb at process@newcommand}
 
+\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 at 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
+
+
 \tcbset{%
   reset at fitting/.style={%
     fit algorithm=fontsize,%

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbset{%
   before upper app/.code={\appto\kvtcb at before@upper{#1}},%
@@ -40,6 +40,11 @@
   after app/.code={\appto\kvtcb at afterbox{#1}},%
   after pre/.code={\preto\kvtcb at afterbox{#1}},%
   %
+  before float app/.code={\appto\kvtcb at beforefloat{#1}},%
+  before float pre/.code={\preto\kvtcb at beforefloat{#1}},%
+  after float app/.code={\appto\kvtcb at afterfloat{#1}},%
+  after float pre/.code={\preto\kvtcb at afterfloat{#1}},%
+  %
   overlay unbroken app/.code={\appto\tcb at overlay@unbroken{#1}},%
   overlay unbroken pre/.code={\preto\tcb at overlay@unbroken{#1}},%
   overlay first app/.code={\appto\tcb at overlay@first{#1}},%

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{listings}[2007/02/22]
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{pro at cessing}
 
@@ -276,50 +276,123 @@
   \begingroup\tcbverbatimwrite{\kvtcb at listingfile}%
 }{\endtcbverbatimwrite\endgroup}
 
-\long\def\tcb at newtcblisting#1#2{\tcb at newenvironment{#1}{\tcblisting{#2,options at for=#1}}{\endtcblisting}}
 
-\long\def\tcb at newtcblisting@#1[#2]#3{\tcb at newenvironment{#1}[#2]{\tcblisting{#3,options at for=#1}}{\endtcblisting}}
+\ExplSyntaxOn
 
-\long\def\tcb at newtcblisting@@#1[#2][#3]#4{\tcb at newenvironment{#1}[#2][#3]{\tcblisting{#4,options at for=#1}}{\endtcblisting}}
 
-\long\def\tcb at new@tcblisting@#1[#2]{%
-  \@ifnextchar[{\tcb at newtcblisting@@{#1}[#2]}{\tcb at newtcblisting@{#1}[#2]}}
+\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 at for=#3} }{ \endtcblisting }
+      }
+      {
+        \tl_if_novalue:nTF { #5 }
+        {
+          #1 { #3 }[ #4 ]{ \tcblisting{#6,options at for=#3} }{ \endtcblisting }
+        }
+        {
+          #1 { #3 }[ #4 ][ #5 ]{ \tcblisting{#6,options at for=#3} }{ \endtcblisting }
+        }
+      }
+  }
+\NewDocumentCommand \newtcblisting { }
+  {
+    \__tcobox_new_tcblisting:w \newenvironment
+  }
+\NewDocumentCommand \renewtcblisting { }
+  {
+    \__tcobox_new_tcblisting:w \renewenvironment
+  }
 
-\def\tcb at new@tcblisting#1{%
-  \@ifnextchar[{\tcb at new@tcblisting@{#1}}{\tcb at newtcblisting{#1}}}
 
-\def\newtcblisting{%
-  \let\tcb at newenvironment\newenvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcblisting%
-  \tcb at process@newenvironment}
+\NewDocumentCommand \__tcobox_new_TCBListing:w { m +o m +m +m }
+  {
+    \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+    #1 { #3 }{ #4 }{ \tcblisting{#5,options at 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
+  }
 
-\def\renewtcblisting{%
-  \let\tcb at newenvironment\renewenvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcblisting%
-  \tcb at process@newenvironment}
 
-\long\def\tcb at newtcbinputlisting#1#2{\expandafter\tcb at newcommand\csname#1\endcsname{\tcbinputlisting{#2,options at for=#1}}}
+\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 at for=#3} }
+      }
+      {
+        \tl_if_novalue:nTF { #5 }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbinputlisting{#6,options at for=#3} }
+        }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbinputlisting{#6,options at 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
+  }
 
-\long\def\tcb at newtcbinputlisting@#1[#2]#3{\expandafter\tcb at newcommand\csname#1\endcsname[#2]{\tcbinputlisting{#3,options at for=#1}}}
 
-\long\def\tcb at newtcbinputlisting@@#1[#2][#3]#4{\expandafter\tcb at newcommand\csname#1\endcsname[#2][#3]{\tcbinputlisting{#4,options at for=#1}}}
+\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 at 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
+  }
 
-\long\def\tcb at new@tcbinputlisting@#1[#2]{%
-  \@ifnextchar[{\tcb at newtcbinputlisting@@{#1}[#2]}{\tcb at newtcbinputlisting@{#1}[#2]}}
 
-\def\tcb at new@tcbinputlisting#1{%
-  \@ifnextchar[{\tcb at new@tcbinputlisting@{#1}}{\tcb at newtcbinputlisting{#1}}}
+\ExplSyntaxOff
 
-\def\newtcbinputlisting{%
-  \let\tcb at newcommand\newcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcbinputlisting%
-  \tcb at process@newcommand}
 
-\def\renewtcbinputlisting{%
-  \let\tcb at newcommand\renewcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcbinputlisting%
-  \tcb at process@newcommand}
-
 \tcbset{%
   reset at listingscore/.style={%
     listing file=\jobname.listing,

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{listings}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbmagazine.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{breakable}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{minted}[2021/12/24]
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbposter.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{breakable,magazine,skins,fitting}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{pdftexcmds}
 \RequirePackage{shellesc}

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \newcounter{tcbrastercolumn}
 \newcounter{tcbrasterrow}

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{tikz}[2010/10/13]
 
@@ -217,12 +217,12 @@
 }
 
 \def\tcb at drawspec@LR#1{%
-  \tcb at pathbase{#1,segmentation at style}{interior.south west}{[yshift=0.1mm]segmentation.east}%
+  \tcb at pathbase{#1,segmentation at style}{interior.south west}{[yshift=\tcboverlaplower]segmentation.east}%
     {\tcb at arc@ins at SW}{\tcb at arc@zpt}{\tcb at arc@zpt}{\tcb at arc@ins at SE}%
 }
 
 \def\tcb at drawspec@LS#1{%
-  \tcb at pathbase{#1,segmentation at style}{interior.west|-frame.south}{[yshift=0.1mm]segmentation.east}%
+  \tcb at pathbase{#1,segmentation at style}{interior.west|-frame.south}{[yshift=\tcboverlaplower]segmentation.east}%
     {\tcb at arc@zpt}{\tcb at arc@zpt}{\tcb at arc@zpt}{\tcb at arc@zpt}%
 }
 
@@ -409,6 +409,7 @@
     \fi}},%
   colbacklower/.colorlet=tcbcolbacklower,%
   opacitybacklower/.store in=\kvtcb at opacitybacklower,
+  overlaplower/.dimstore in=\tcboverlaplower,
   clear at spec/.code={\tcb at spec{}},%
   tikz/.code={\appto\tcb at tikz@option at hook{,#1}},%
   tikz reset/.code={\let\tcb at tikz@option at hook\@empty},%
@@ -2001,7 +2002,7 @@
 \tcbset{%
   reset at skins/.style={%
     frame style=,interior style=,segmentation style=, at 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 at spec,%
     watermark opacity=1.00,watermark color=tcbcolback!85!tcbcolframe,%

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{skins}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \RequirePackage{amsmath}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbvignette.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at version{5.1.0}
 
 \tcbuselibrary{skins}
 

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at set@library at version{5.0.2}
+\tcb at set@library at 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 at New@TColorBox#1#2#3{%
-  \tcb at newenvironment{#1}{#2}{\tcolorbox[#3,options at for=#1]}{\endtcolorbox}}
-
-\def\DeclareTColorBox{%
-  \let\tcb at newenvironment\DeclareDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TColorBox%
-  \tcb at process@newenvironment}
-
-\def\NewTColorBox{%
-  \let\tcb at newenvironment\NewDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TColorBox%
-  \tcb at process@newenvironment}
-
-\def\RenewTColorBox{%
-  \let\tcb at newenvironment\RenewDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TColorBox%
-  \tcb at process@newenvironment}
-
-\def\ProvideTColorBox{%
-  \let\tcb at newenvironment\ProvideDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TColorBox%
-  \tcb at process@newenvironment}
-
-%-- tcolorbox (total) --
-\long\def\tcb at New@TotalTColorBox#1#2#3#4{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\begin{tcolorbox}[#3,options at for=#1]#4\end{tcolorbox}}}
-
-\def\DeclareTotalTColorBox{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTColorBox%
-  \tcb at process@newcommand}
-
-\def\NewTotalTColorBox{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTColorBox%
-  \tcb at process@newcommand}
-
-\def\RenewTotalTColorBox{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTColorBox%
-  \tcb at process@newcommand}
-
-\def\ProvideTotalTColorBox{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTColorBox%
-  \tcb at process@newcommand}
-
-%-- tcbox --
-\long\def\tcb at New@TCBox#1#2#3{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\tcbox[#3,options at for=#1]}}
-
-\def\DeclareTCBox{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBox%
-  \tcb at process@newcommand}
-
-\def\NewTCBox{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBox%
-  \tcb at process@newcommand}
-
-\def\RenewTCBox{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBox%
-  \tcb at process@newcommand}
-
-\def\ProvideTCBox{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBox%
-  \tcb at process@newcommand}
-
-%-- tcbox (total) --
-\long\def\tcb at New@TotalTCBox#1#2#3#4{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\tcbox[#3,options at for=#1]{#4}}}
-
-\def\DeclareTotalTCBox{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBox%
-  \tcb at process@newcommand}
-
-\def\NewTotalTCBox{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBox%
-  \tcb at process@newcommand}
-
-\def\RenewTotalTCBox{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBox%
-  \tcb at process@newcommand}
-
-\def\ProvideTotalTCBox{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBox%
-  \tcb at process@newcommand}
-
-\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
-
-%-- tcboxfit --
-\long\def\tcb at New@TCBoxFit#1#2#3{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options at for=#1]}}
-
-\def\DeclareTCBoxFit{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBoxFit%
-  \tcb at process@newcommand}
-
-\def\NewTCBoxFit{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBoxFit%
-  \tcb at process@newcommand}
-
-\def\RenewTCBoxFit{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBoxFit%
-  \tcb at process@newcommand}
-
-\def\ProvideTCBoxFit{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBoxFit%
-  \tcb at process@newcommand}
-
-\long\def\tcb at New@TotalTCBoxFit#1#2#3#4{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options at for=#1]{#4}}}
-
-\def\DeclareTotalTCBoxFit{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBoxFit%
-  \tcb at process@newcommand}
-
-\def\NewTotalTCBoxFit{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBoxFit%
-  \tcb at process@newcommand}
-
-\def\RenewTotalTCBoxFit{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBoxFit%
-  \tcb at process@newcommand}
-
-\def\ProvideTotalTCBoxFit{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TotalTCBoxFit%
-  \tcb at process@newcommand}
-
-
-%-- tcblisting --
-\long\def\tcb at New@TCBListing#1#2#3{%
-  \tcb at newenvironment{#1}{#2}{\tcblisting{#3,options at for=#1}}{\endtcblisting}}
-
-\def\DeclareTCBListing{%
-  \let\tcb at newenvironment\DeclareDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBListing%
-  \tcb at process@newenvironment}
-
-\def\NewTCBListing{%
-  \let\tcb at newenvironment\NewDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBListing%
-  \tcb at process@newenvironment}
-
-\def\RenewTCBListing{%
-  \let\tcb at newenvironment\RenewDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBListing%
-  \tcb at process@newenvironment}
-
-\def\ProvideTCBListing{%
-  \let\tcb at newenvironment\ProvideDocumentEnvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBListing%
-  \tcb at process@newenvironment}
-
-%-- tcbinputlisting --
-\long\def\tcb at New@TCBInputListing#1#2#3{%
-  \expandafter\tcb at newcommand\csname#1\endcsname{#2}{\tcbinputlisting{#3,options at for=#1}}%
-}
-
-\def\DeclareTCBInputListing{%
-  \let\tcb at newcommand\DeclareDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBInputListing%
-  \tcb at process@newcommand}
-
-\def\NewTCBInputListing{%
-  \let\tcb at newcommand\NewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBInputListing%
-  \tcb at process@newcommand}
-
-\def\RenewTCBInputListing{%
-  \let\tcb at newcommand\RenewDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBInputListing%
-  \tcb at process@newcommand}
-
-\def\ProvideTCBInputListing{%
-  \let\tcb at newcommand\ProvideDocumentCommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at New@TCBInputListing%
-  \tcb at process@newcommand}
-
-
-%-- sidebyside --
-
-\def\tcb at sbs@content at none{\tcb at sbs@text at left\tcblower\tcb at sbs@text at right}
-\def\tcb at sbs@content at left{\box\tcb at upperbox\tcblower\tcb at sbs@text at right}
-\def\tcb at sbs@content at right{\tcb at sbs@text at left\tcblower\box\tcb at lowerbox}
-\def\tcb at sbs@content at both{\box\tcb at upperbox\tcblower\box\tcb at lowerbox}
-
-\def\tcb at sbs@save at upper{%
-  \sbox{\tcb at upperbox}{\color{tcbcolupper}\kvtcb at fontupper\kvtcb at halignupper\tcb at insert@before at upper\tcb at sbs@text at left\tcb at insert@after at upper}%
-}
-\def\tcb at sbs@save at lower{%
-  \sbox{\tcb at lowerbox}{\color{tcbcollower}\kvtcb at fontlower\kvtcb at halignlower\tcb at insert@before at lower\tcb at sbs@text at right\tcb at insert@after at lower}%
-}
-
-\tcbset{%
-  sidebyside adapt/.is choice,
-  sidebyside adapt/none/.style={%
-    sidebyside at adapt@process/.style={%
-      code={\let\tcb at sbs@content\tcb at sbs@content at none},
-    }%
-  },
-  sidebyside adapt/left/.style={%
-    sidebyside at adapt@process/.style={%
-      code={\tcb at sbs@save at upper\let\tcb at sbs@content\tcb at sbs@content at left},
-      lefthand width=\wd\tcb at upperbox,
-    }%
-  },
-  sidebyside adapt/right/.style={%
-    sidebyside at adapt@process/.style={%
-      code={\tcb at sbs@save at lower\let\tcb at sbs@content\tcb at sbs@content at right},
-      righthand width=\wd\tcb at lowerbox,
-    }%
-  },
-  sidebyside adapt/both/.style={%
-    sidebyside at adapt@process/.style={%
-      code={\tcb at sbs@save at upper\tcb at sbs@save at lower\let\tcb at sbs@content\tcb at sbs@content at both},
-      text width=\wd\tcb at upperbox+\kvtcb at sbs@gap+\wd\tcb at lowerbox,
-      lefthand width=\wd\tcb at upperbox,
-    }%
-  },
-  %
-  sidebyside switch/.is choice,
-  sidebyside switch/true/.style={%
-    sidebyside at switch/.code={%
-      \tcb at swap{\tcb at sbs@text at left}{\tcb at sbs@text at right}
-    }%
-  },
-  sidebyside switch/false/.style={%
-    sidebyside at switch/.style=%
-  },
-  sidebyside switch/.default=true
-}
-
-
-\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
-  code={\long\def\tcb at sbs@text at left{#2}\long\def\tcb at sbs@text at right{#3}},%
-  #1,%
-  sidebyside,%
-  sidebyside at switch,sidebyside at adapt@process%
-}{\tcb at sbs@content}
-
-
-\tcbset{%
-  reset at xparse/.style={%
-    sidebyside adapt=none,sidebyside switch=false,%
-  },
-  initialize at reset=reset at xparse,
-}

Modified: trunk/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty	2022-06-22 20:53:07 UTC (rev 63693)
+++ trunk/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty	2022-06-22 20:56:47 UTC (rev 63694)
@@ -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 at version{5.0.2}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{tcolorbox}[2022/06/22 version 5.1.0 text color boxes]
+\def\tcb at 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 at beforebox@nobreak,
+  before float/.store in=\kvtcb at beforefloat,
+  after float/.store in=\kvtcb at afterfloat,
   lowerbox/.is choice,
   lowerbox/visible/.code={\tcb at lowerignoredfalse\tcb at lowervisibletrue},
   lowerbox/invisible/.code={\tcb at lowerignoredfalse\tcb at lowervisiblefalse},
@@ -591,7 +593,14 @@
   skin first is subskin of/.style 2 args={skin at local@first/.style={skin@#1,#2},skin first=local at first},%
   skin middle is subskin of/.style 2 args={skin at local@middle/.style={skin@#1,#2},skin middle=local at middle},%
   skin last is subskin of/.style 2 args={skin at local@last/.style={skin@#1,#2},skin last=local at last},%
-  parbox/.store in=\kvtcb at parbox,
+  parbox/.is choice,
+  parbox/true/.code={%
+    \def\kvtcb at parbox{true}%
+    },
+  parbox/false/.code={%
+    \def\kvtcb at parbox{false}%
+    \appto\tcb at lateoptions@hook{\csname tcb at parbox@\kvtcb at parbox @indent\endcsname}%
+    },
   parbox/.default=true,%
   hyphenationfix/.is choice,%
   hyphenationfix/.default=true,%
@@ -717,6 +726,41 @@
   sidebyside align/center seam/.code={\def\kvtcb at sbs@align{center}\let\tcb at box@align\tcb at box@align at center},%
   sidebyside align/bottom seam/.code={\def\kvtcb at sbs@align{bottom}\let\tcb at box@align\tcb at box@align at bottom},%
   sidebyside gap/.dimstore in=\kvtcb at sbs@gap,%
+  sidebyside adapt/.is choice,
+  sidebyside adapt/none/.style={%
+    sidebyside at adapt@process/.style={%
+      code={\let\tcb at sbs@content\tcb at sbs@content at none},
+    }%
+  },
+  sidebyside adapt/left/.style={%
+    sidebyside at adapt@process/.style={%
+      code={\tcb at sbs@save at upper\let\tcb at sbs@content\tcb at sbs@content at left},
+      lefthand width=\wd\tcb at upperbox,
+    }%
+  },
+  sidebyside adapt/right/.style={%
+    sidebyside at adapt@process/.style={%
+      code={\tcb at sbs@save at lower\let\tcb at sbs@content\tcb at sbs@content at right},
+      righthand width=\wd\tcb at lowerbox,
+    }%
+  },
+  sidebyside adapt/both/.style={%
+    sidebyside at adapt@process/.style={%
+      code={\tcb at sbs@save at upper\tcb at sbs@save at lower\let\tcb at sbs@content\tcb at sbs@content at both},
+      text width=\wd\tcb at upperbox+\kvtcb at sbs@gap+\wd\tcb at lowerbox,
+      lefthand width=\wd\tcb at upperbox,
+    }%
+  },
+  sidebyside switch/.is choice,
+  sidebyside switch/true/.style={%
+    sidebyside at switch/.code={%
+      \tcb at swap{\tcb at sbs@text at left}{\tcb at sbs@text at right}
+    }%
+  },
+  sidebyside switch/false/.style={%
+    sidebyside at switch/.style=%
+  },
+  sidebyside switch/.default=true,
   lefthand width/.code={\def\kvtcb at sbs@ratio{#1}\let\tcb at sbs@quota=\tcb at sbs@quota at leftwidth},
   righthand width/.code={\def\kvtcb at sbs@ratio{#1}\let\tcb at sbs@quota=\tcb at sbs@quota at rightwidth},
   lefthand ratio/.code={\def\kvtcb at sbs@ratio{#1}\let\tcb at sbs@quota=\tcb at sbs@quota at leftratio},
@@ -824,9 +868,31 @@
   verbatim ignore percent/true/.code={\def\tcb at verbatim@change at percent{\catcode`\^^e=9}},
   verbatim ignore percent/false/.code={\let\tcb at verbatim@change at 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 at environment/.is if=tcb at 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 at beforebox{}
 \def\kvtcb at afterbox{}
 
@@ -838,10 +904,16 @@
   \fi%
 }
 
+\def\tcb at parbox@true at indent{}%
+\def\tcb at parbox@false at indent{%
+  \preto\kvtcb at before@title{\noindent}%
+  \preto\kvtcb at before@upper{\noindent}%
+  \preto\kvtcb at before@lower{\noindent}%
+}%
+
 \let\tcb at parboxrestore=\@parboxrestore
 
 \def\tcb at parbox@false at settings{%
-  \noindent%
   \linewidth\hsize%
   \@totalleftmargin\z@%
   \leftskip\z at skip%
@@ -926,7 +998,7 @@
   \ifx\kvtcb at title\@empty\tcb at hasTitlefalse\tcb at specialtitle@hook\else%
     \tcb at hasTitletrue%
     \tcbdimto\tcb at w@title{\kvtcb at width-(\kvtcb at left@rule+\kvtcb at right@rule+(\kvtcb at boxsep)*2+\kvtcb at lefttitle+\kvtcb at righttitle)}%
-    \begin{tcb at savebox}{\tcb at titlebox}{\tcb at w@title}\color{tcbcoltitle}\kvtcb at fonttitle\kvtcb at haligntitle\kvtcb at before@title\kvtcb at title\kvtcb at after@title\end{tcb at savebox}%
+    \begin{tcb at savebox}{\tcb at titlebox}{\tcb at w@title}\tcb at lua@color{tcbcoltitle}\kvtcb at fonttitle\kvtcb at haligntitle\kvtcb at before@title\kvtcb at title\kvtcb at after@title\end{tcb at savebox}%
   \fi%
 }
 
@@ -983,6 +1055,18 @@
   \fi%
 }
 
+\def\tcb at sbs@content at none{\tcb at sbs@text at left\tcblower\tcb at sbs@text at right}
+\def\tcb at sbs@content at left{\box\tcb at upperbox\tcblower\tcb at sbs@text at right}
+\def\tcb at sbs@content at right{\tcb at sbs@text at left\tcblower\box\tcb at lowerbox}
+\def\tcb at sbs@content at both{\box\tcb at upperbox\tcblower\box\tcb at lowerbox}
+
+\def\tcb at sbs@save at upper{%
+  \sbox{\tcb at upperbox}{\color{tcbcolupper}\kvtcb at fontupper\kvtcb at halignupper\tcb at insert@before at upper\tcb at sbs@text at left\tcb at insert@after at upper}%
+}
+\def\tcb at sbs@save at lower{%
+  \sbox{\tcb at lowerbox}{\color{tcbcollower}\kvtcb at fontlower\kvtcb at halignlower\tcb at insert@before at lower\tcb at sbs@text at right\tcb at insert@after at lower}%
+}
+
 \def\tcb at set@color#1{%
   \edef\current at color{\@nameuse{\string\color@#1}}%
   \colorlet{.}{#1}%
@@ -1829,8 +1913,8 @@
   \ifx\kvtcb at float\@empty%
     \tcb at set@normal at unbroken@beforeafter%
   \else%
-    \edef\tcb at before@unbroken{\noexpand\tcb at float@env at begin{tcbfloat}[\kvtcb at float]\noexpand\kvtcb at everyfloat}%
-    \let\tcb at after@unbroken=\tcb at float@env at end%
+    \edef\tcb at before@unbroken{\noexpand\tcb at float@env at begin{tcbfloat}[\kvtcb at float]\noexpand\kvtcb at beforefloat\noexpand\kvtcb at everyfloat}%
+    \def\tcb at after@unbroken{\kvtcb at afterfloat\tcb at float@env at end}%
   \fi%
   \setcounter{tcbbreakpart}{1}%
   % computation of total height
@@ -2048,45 +2132,199 @@
   \kvtcb at init@hook%
 }%
 
-\long\def\tcb at process@newtcolorbox#1#2{%
-  \edef\tcb at new@boxname{#1}%
-  \def\tcb at new@colopt{}%
-  \long\def\temp at a{#2}%
-  \ifx\temp at a\@empty\relax%
-  \else%
-    \tcb at proc@options at init{#2}{#1}%
-  \fi%
-  \preto\tcb at new@colopt{savedelimiter=#1}%
-  \cslet{tcb at opt@#1}{\tcb at new@colopt}%
-  \tcb at process@newtcolorbox at continue{#1}%
-}
 
-\newcommand\tcb at process@newenvironment[2][]{%
-  \tcb at process@newtcolorbox{#2}{#1}%
-}
+\ExplSyntaxOn
 
-\long\def\tcb at newtcolorbox#1#2{\tcb at newenvironment{#1}{\tcolorbox[#2,options at for=#1]}{\endtcolorbox}}
+\cs_new:Npn \__tcobox_process_newtcolorbox:nn #1#2
+  {
+    \edef\tcb at new@boxname{#2}
+    \def\tcb at new@colopt{}
+    \tl_if_novalue:nF { #1 }
+      {
+        \tcb at proc@options at init{#1}{#2}
+      }
+    \preto\tcb at new@colopt{savedelimiter=#2}
+    \exp_args:Nc \cs_set_eq:NN { tcb at opt@#2 } \tcb at new@colopt
+  }
 
-\long\def\tcb at newtcolorbox@#1[#2]#3{\tcb at newenvironment{#1}[#2]{\tcolorbox[#3,options at for=#1]}{\endtcolorbox}}
 
-\long\def\tcb at newtcolorbox@@#1[#2][#3]#4{\tcb at newenvironment{#1}[#2][#3]{\tcolorbox[#4,options at 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 at new@tcolorbox@#1[#2]{%
-  \@ifnextchar[{\tcb at newtcolorbox@@{#1}[#2]}{\tcb at newtcolorbox@{#1}[#2]}}
 
-\def\tcb at new@tcolorbox#1{%
-  \@ifnextchar[{\tcb at new@tcolorbox@{#1}}{\tcb at newtcolorbox{#1}}}
+\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 at for=#3] }{ \endtcolorbox }
+      }
+      {
+        \tl_if_novalue:nTF { #5 }
+        {
+          #1 { #3 }[ #4 ]{ \tcolorbox[#6,options at for=#3] }{ \endtcolorbox }
+        }
+        {
+          #1 { #3 }[ #4 ][ #5 ]{ \tcolorbox[#6,options at for=#3] }{ \endtcolorbox }
+        }
+      }
+  }
+\NewDocumentCommand \newtcolorbox { }
+  {
+    \__tcobox_new_tcolorbox:w \newenvironment
+  }
+\NewDocumentCommand \renewtcolorbox { }
+  {
+    \__tcobox_new_tcolorbox:w \renewenvironment
+  }
 
-\def\newtcolorbox{%
-  \let\tcb at newenvironment\newenvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcolorbox%
-  \tcb at process@newenvironment}
 
-\def\renewtcolorbox{%
-  \let\tcb at newenvironment\renewenvironment%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcolorbox%
-  \tcb at process@newenvironment}
+\NewDocumentCommand \__tcobox_new_TColorBox:w { m +o m +m +m }
+  {
+    \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+    #1 { #3 }{ #4 }{ \tcolorbox[#5,options at 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 at 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 at for=#3] }
+      }
+      {
+        \tl_if_novalue:nTF { #5 }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbox[#6,options at for=#3] }
+        }
+        {
+          \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbox[#6,options at 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 at 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 at 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
+
+
 \newcommand{\tcolorboxenvironment}[2]{%
   \AddToHook{env/#1/before}{%
     \begin{tcolorbox}[savedelimiter={#1},#2,wrap at environment,%
@@ -2097,48 +2335,16 @@
   }%
 }
 
-% auxiliary code to remove a leading backspace
-\newcommand{\tcb at remove@bs}[1]{%
-  \ifcat\relax\noexpand#1%
-    \expandafter\tcb at remove@bs at aux@i%
-  \fi
-  #1}
-\newcommand*{\tcb at remove@bs at aux@i}{%
-  \romannumeral%
-    \if\string\ \tcb at remove@bs at aux@ii\fi%
-    \expandafter\tcb at remove@bs at aux@iii\string}
-\newcommand{\tcb at remove@bs at aux@ii}{}
-\long\def\tcb at remove@bs at aux@ii#1\tcb at remove@bs at aux@iii{%
-  -\number\fi\expandafter\z@}
-\newcommand{\tcb at remove@bs at aux@iii}[1]{\z@}
+\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
 
-\newcommand\tcb at process@newcommand[2][]{%
-  \begingroup\edef\x{\endgroup\noexpand\tcb at process@newtcolorbox{\tcb at remove@bs{#2}}}\x{#1}%
-}
+\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
+  code={\long\def\tcb at sbs@text at left{#2}\long\def\tcb at sbs@text at right{#3}},%
+  #1,%
+  sidebyside,%
+  sidebyside at switch,sidebyside at adapt@process%
+}{\tcb at sbs@content}
 
-\long\def\tcb at newtcbox#1#2{\expandafter\tcb at newcommand\csname#1\endcsname{\tcbox[#2,options at for=#1]}}
 
-\long\def\tcb at newtcbox@#1[#2]#3{\expandafter\tcb at newcommand\csname#1\endcsname[#2]{\tcbox[#3,options at for=#1]}}
-
-\long\def\tcb at newtcbox@@#1[#2][#3]#4{\expandafter\tcb at newcommand\csname#1\endcsname[#2][#3]{\tcbox[#4,options at for=#1]}}
-
-\long\def\tcb at new@tcbox@#1[#2]{%
-  \@ifnextchar[{\tcb at newtcbox@@{#1}[#2]}{\tcb at newtcbox@{#1}[#2]}}
-
-\def\tcb at new@tcbox#1{%
-  \@ifnextchar[{\tcb at new@tcbox@{#1}}{\tcb at newtcbox{#1}}}
-
-\def\newtcbox{%
-  \let\tcb at newcommand\newcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcbox%
-  \tcb at process@newcommand}
-
-\def\renewtcbox{%
-  \let\tcb at newcommand\renewcommand%
-  \let\tcb at process@newtcolorbox at continue\tcb at new@tcbox%
-  \tcb at process@newcommand}
-
-
 \def\tcb at addcontentsline#1#2{%
   \ifx\kvtcb at listentry\@empty%
     \ifx\kvtcb at title\@empty%
@@ -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, at opacitybacktitle=1.0,



More information about the tex-live-commits mailing list.