summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-23 03:00:50 +0000
committerNorbert Preining <norbert@preining.info>2022-06-23 03:00:50 +0000
commit00e67dfd87c53faeafcf0c9e66c8c2c7a410fcb8 (patch)
treeef301069afe23459e4f42b83386787a5aca10e5f /macros/latex
parentd6888fdb49e3ac954c2d436951f364d3a4a4b17d (diff)
CTAN sync 202206230300
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md18
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty12
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gifbin102975 -> 230964 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdfbin611808 -> 632409 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex14
-rw-r--r--macros/latex/contrib/l3packages/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/l3packages/README.md2
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.dtx42
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.pdfbin369309 -> 412205 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfp.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfp.pdfbin332062 -> 331915 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfrac.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfrac.pdfbin484867 -> 484718 bytes
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xparse.pdfbin534285 -> 534143 bytes
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.pdfbin450124 -> 449973 bytes
-rw-r--r--macros/latex/contrib/pbalance/LICENSE2
-rw-r--r--macros/latex/contrib/pbalance/README.md2
-rw-r--r--macros/latex/contrib/pbalance/pbalance.dtx322
-rw-r--r--macros/latex/contrib/pbalance/pbalance.ins4
-rw-r--r--macros/latex/contrib/pbalance/pbalance.pdfbin242951 -> 39562 bytes
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md10
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin617944 -> 617746 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-quantity.dtx10
-rw-r--r--macros/latex/contrib/siunitx/siunitx-symbol.dtx6
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin663088 -> 665420 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md55
-rw-r--r--macros/latex/contrib/tcolorbox/README.md2
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex7
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex203
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex109
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex11
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex161
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbmagazine.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbminted.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex13
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex284
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin281298 -> 281296 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin469092 -> 469093 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin456130 -> 455911 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex251
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex233
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex71
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex182
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex19
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex223
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex7
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex45
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex639
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin7594786 -> 7669273 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty366
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex17
73 files changed, 2064 insertions, 1401 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
index 93a465be1c..01fd355c75 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
@@ -1,5 +1,5 @@
<!--
-- arguelles v1.2.1
+- Argüelles v1.2.2
- Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
- This work is released under the MIT License and is free to use, copy, modify,
- merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -7,9 +7,9 @@
# arguelles
-Arguelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
+Argüelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [makecell](https://ctan.org/pkg/makecell), [Alegreya](https://ctan.org/pkg/alegreya), [cancel](https://ctan.org/pkg/cancel), [euler](https://ctan.org/pkg/euler), and [fontawesome5](https://ctan.org/pkg/fontawesome5) to be installed on your computer. These are included in common LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
+The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [Alegreya](https://ctan.org/pkg/alegreya), [euler](https://ctan.org/pkg/euler), and [fontawesome5](https://ctan.org/pkg/fontawesome5) to be installed on your computer. These are included in common LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
## Demo
@@ -19,7 +19,7 @@ The files `demo.tex` and `demo.pdf` demonstrate the main features of the theme.
## Installation
-Arguelles is [hosted on CTAN](https://ctan.org/pkg/beamertheme-arguelles) and distributed as part of MikTex and TeXLive. It can also be installed manually by cloning this repository in your `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
+Argüelles is [hosted on CTAN](https://ctan.org/pkg/beamertheme-arguelles) and distributed as part of MikTex and TeXLive. It can also be installed manually by cloning this repository in your `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
## Customization
@@ -82,6 +82,12 @@ Both old-style and lining figures are also available in a monospaced version, wh
\RequirePackage[osf,tf]{AlegreyaSans}
```
-## Bugs
+## Known issues
-If you find any problem using this package, please [create an issue](https://github.com/piazzai/arguelles/issues).
+Argüelles is built with the intention to reserve as much space as possible for the content of your slides. When using subsections, the progress bar in the headline places dots on multiple lines, which takes space away from your content. The theme does not handle this situation well. You can force the dots to appear on the same line by loading beamer with the `compress` option, as in `demo.tex`:
+
+```tex
+\documentclass[compress]{beamer}
+```
+
+If you find any other problem using this package, please [open an issue](https://github.com/piazzai/arguelles/issues).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
index 43ba882c9f..52669afa94 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
@@ -1 +1 @@
-v1.2.1 2022-03-09
+v1.2.2 2022-06-22
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
index 98b14cb428..7cb4cd531a 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
@@ -1,4 +1,4 @@
-% arguelles v1.2.1
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
index c82ca05cec..57ea2fcd98 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
@@ -1,4 +1,4 @@
-% arguelles v1.2.1
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
index 097ecf69be..7ea5be490c 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% arguelles v1.2.1
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
index 639ea67740..8d1ce4915a 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
@@ -1,4 +1,4 @@
-% arguelles v1.2.1
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
index 9799af623d..9774b62c8c 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% arguelles v1.2.1
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -6,14 +6,12 @@
\mode<presentation>
% Requirements
-\RequirePackage{tikz}
-\RequirePackage{microtype}
-\RequirePackage{fontawesome5}
\RequirePackage[osf]{Alegreya}
\RequirePackage[osf]{AlegreyaSans}
\RequirePackage{euler}
-\RequirePackage{makecell}
-\RequirePackage{cancel}
+\RequirePackage{microtype}
+\RequirePackage{fontawesome5}
+\RequirePackage{tikz}
% Settings
\useinnertheme{Arguelles}
@@ -31,7 +29,7 @@
\definecolor{cobalt}{HTML}{0047ab}
\AtBeginEnvironment{proof}{\let\@addpunct\@gobble}
-\newcommand\email[1]{\href{mailto:#1}{\faEnvelope\hspace{.5em}\sffamily #1}}
+\newcommand\email[1]{\href{mailto:#1}{\faEnvelope\hspace{.3em}\sffamily #1}}
\newcommand\Section[1]{\section{\lowercase{#1}}}
\renewcommand{\appendixname}{}
\newcommand\ThankYou{\appendix}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
index b480114c1a..a80fc74e45 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
index bc21e23070..8e75f2e2d9 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
index ff971bd798..3c60d44700 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
@@ -1,19 +1,19 @@
-% arguelles v1.2.0
+% Argüelles v1.2.2
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
-\documentclass{beamer}
+\documentclass[compress]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Arguelles}
-\title{Arguelles}
+\title{Argüelles}
\subtitle{Simple, typographic beamer theme}
\date{}
\author{Place Holder}
-\institute{University of \TeX\par\email{username@domain.com}}
+\institute{University of \TeX \par \email{username@domain.com}}
\begin{document}
@@ -57,7 +57,7 @@
\begin{align*}
e^{i\pi}+1 & \null=\cos\pi+i\sin\pi+1 \\
& \null=-1+i\times0+1 \\
- & \null=0
+ & \null=0
\end{align*}
\end{proof}
\end{theorem}
@@ -77,12 +77,12 @@
\ttfamily\textbackslash AlegreyaSansLight & \AlegreyaSansLight Lorem ipsum dolor sit amet \\
\ttfamily\textbackslash AlegreyaSansMedium & \AlegreyaSansMedium Lorem ipsum dolor sit amet \\
\ttfamily\textbackslash AlegreyaSansExtraBold & \AlegreyaSansExtraBold Lorem ipsum dolor sit amet \\
- \ttfamily\textbackslash AlegreyaSansBlack & \AlegreyaSansBlack Lorem ipsum dolor sit amet
+ \ttfamily\textbackslash AlegreyaSansBlack & \AlegreyaSansBlack Lorem ipsum dolor sit amet
\end{tabular}
\end{table}
\vfill
\begin{alert}{Alert!}
- A plain frame does not show the progress bar but it still appears in the progress bar of other frames unless it is placed after \texttt{\textbackslash ThankYou}.
+ A \textit{plain} frame does not show the progress bar but it still appears in the progress bar of other frames unless it is placed after \texttt{\textbackslash ThankYou}.
\end{alert}
\end{frame}
diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md
index add1cb9010..c94596cd96 100644
--- a/macros/latex/contrib/l3packages/CHANGELOG.md
+++ b/macros/latex/contrib/l3packages/CHANGELOG.md
@@ -7,6 +7,14 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-06-22]
+
+### Changed
+- Revert alterations to `l3keys2e`
+
+### Deprecated
+- Package `l3keys2e`
+
## [2022-06-16]
### Changed
@@ -192,7 +200,8 @@ this project uses date-based 'snapshot' version identifiers.
- Switch to ISO date format
- Improve cross-module use of internal functions
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-06-16...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-06-22...HEAD
+[2022-06-22]: https://github.com/latex3/latex3/compare/2022-06-16...2022-06-22
[2022-06-16]: https://github.com/latex3/latex3/compare/2022-06-07...2022-06-16
[2022-06-07]: https://github.com/latex3/latex3/compare/2022-05-30...2022-06-07
[2022-05-30]: https://github.com/latex3/latex3/compare/2022-01-12...2022-05-30
diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md
index a6598c36e2..d1d8a46ad2 100644
--- a/macros/latex/contrib/l3packages/README.md
+++ b/macros/latex/contrib/l3packages/README.md
@@ -1,7 +1,7 @@
LaTeX3 High-Level Concepts
==========================
-Release 2022-06-16
+Release 2022-06-22
Overview
--------
diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx
index 052c071751..17ce052261 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.dtx
+++ b/macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -62,12 +62,27 @@
% }^^A
% }
%
-% \date{Released 2022-06-16}
+% \date{Released 2022-06-22}
%
% \maketitle
%
% \begin{documentation}
%
+% \section{Introduction}
+%
+% \begin{center}
+% \bfseries This package is obsolete with the June 2022 \LaTeX{} release.
+% \end{center}
+%
+% With new formats, \cs{ProcessKeyOptions} is available as a more powerful
+% version of \cs{ProcessKeysOptions}. In particular, it is built directly
+% into the \LaTeX{} kernel, uses `raw' options (and therefore does not
+% suffer from space stripping and expansion issues), and can avoid
+% option clash warnings. Package authors should transition their
+% code to the new approach.
+%
+% \section{Old introduction}
+%
% The key--value method for optional arguments is very popular, as it
% allows the class or package author to define a large number of
% options with a simple interface. The \pkg{expl3} bundle of \LaTeX3
@@ -139,7 +154,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2022-06-16}{}
+\ProvidesExplPackage{l3keys2e}{2022-06-22}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
@@ -230,7 +245,6 @@
% \end{macro}
%
% \begin{macro}{\@@_latexe_options_class:n}
-% \begin{macro}{\@@_latexe_options_remove:nnn, \@@_latexe_options_remove:enn}
% For classes, each option (stripped of any content after |=|)
% is checked for existence as a key. If found, the option is added to
% the combined list for processing. On the other hand, unused options
@@ -250,23 +264,15 @@
{
\clist_map_inline:cn { opt@ \@currname . \@currext }
{
- \@@_latexe_options_remove:enn
- { \@@_latexe_remove_equals:n {##1} }
- {##1} {#1}
+ \keys_if_exist:nxTF {#1} { \@@_latexe_remove_equals:n {##1} }
+ { \clist_put_right:Nn \l_@@_latexe_options_clist {##1} }
+ { \clist_put_right:Nn \@unusedoptionlist {##1} }
}
}
}
}
-\cs_new_protected:Npn \@@_latexe_options_remove:nnn #1#2#3
- {
- \keys_if_exist:nnTF {#3} {#1}
- { \clist_put_right:Nn \l_@@_latexe_options_clist {#2} }
- { \clist_put_right:Nn \@unusedoptionlist {#1} }
- }
-\cs_generate_variant:Nn \@@_latexe_options_remove:nnn { e }
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_latexe_options_package:n}
% For global options when processing a package, the tasks are slightly
@@ -278,9 +284,11 @@
{
\clist_map_inline:Nn \@classoptionslist
{
- \@@_latexe_options_remove:enn
- { \@@_latexe_remove_equals:n {##1} }
- {##1} {#1}
+ \keys_if_exist:nxT {#1} { \@@_latexe_remove_equals:n {##1} }
+ {
+ \clist_put_right:Nn \l_@@_latexe_options_clist {##1}
+ \clist_remove_all:Nn \@unusedoptionlist {##1}
+ }
}
}
% \end{macrocode}
diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf
index f52ddea71a..5ce8f8ae43 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.pdf
+++ b/macros/latex/contrib/l3packages/l3keys2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx
index eff39501de..8020d390fc 100644
--- a/macros/latex/contrib/l3packages/xfp.dtx
+++ b/macros/latex/contrib/l3packages/xfp.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-16}
+% \date{Released 2022-06-22}
%
% \maketitle
%
@@ -171,7 +171,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2022-06-16}{}
+\ProvidesExplPackage{xfp}{2022-06-22}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf
index db779fc990..541e32926b 100644
--- a/macros/latex/contrib/l3packages/xfp.pdf
+++ b/macros/latex/contrib/l3packages/xfp.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfrac.dtx b/macros/latex/contrib/l3packages/xfrac.dtx
index 67cc2e0e59..5376dd4085 100644
--- a/macros/latex/contrib/l3packages/xfrac.dtx
+++ b/macros/latex/contrib/l3packages/xfrac.dtx
@@ -65,7 +65,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-16}
+% \date{Released 2022-06-22}
%
% \maketitle
%
@@ -535,7 +535,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2022-06-16}{}
+\ProvidesExplPackage{xfrac}{2022-06-22}{}
{L3 Experimental split-level fractions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfrac.pdf b/macros/latex/contrib/l3packages/xfrac.pdf
index a2e401c94c..a576f51ba2 100644
--- a/macros/latex/contrib/l3packages/xfrac.pdf
+++ b/macros/latex/contrib/l3packages/xfrac.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx
index 8c4146c110..c70bf08cf5 100644
--- a/macros/latex/contrib/l3packages/xparse.dtx
+++ b/macros/latex/contrib/l3packages/xparse.dtx
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-16}
+% \date{Released 2022-06-22}
%
% \maketitle
%
@@ -1064,7 +1064,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2022-06-16}{}
+\ProvidesExplPackage{xparse}{2022-06-22}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf
index 404cd0a5fc..c94d4cbaea 100644
--- a/macros/latex/contrib/l3packages/xparse.pdf
+++ b/macros/latex/contrib/l3packages/xparse.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx
index 7f215e8c81..afd33bf380 100644
--- a/macros/latex/contrib/l3packages/xtemplate.dtx
+++ b/macros/latex/contrib/l3packages/xtemplate.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-16}
+% \date{Released 2022-06-22}
%
% \maketitle
%
@@ -706,7 +706,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2022-06-16}{}
+\ProvidesExplPackage{xtemplate}{2022-06-22}{}
{L3 Experimental prototype document functions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf
index 738e80d25b..2c4fff1dd3 100644
--- a/macros/latex/contrib/l3packages/xtemplate.pdf
+++ b/macros/latex/contrib/l3packages/xtemplate.pdf
Binary files differ
diff --git a/macros/latex/contrib/pbalance/LICENSE b/macros/latex/contrib/pbalance/LICENSE
index a953e0b709..8447540ad0 100644
--- a/macros/latex/contrib/pbalance/LICENSE
+++ b/macros/latex/contrib/pbalance/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2020-2021 Nelson Lago <lago@ime.usp.br>
+Copyright 2020-2022 Nelson Lago <lago@ime.usp.br>
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c of this license or (at
diff --git a/macros/latex/contrib/pbalance/README.md b/macros/latex/contrib/pbalance/README.md
index 93f1e7c969..2d1137b196 100644
--- a/macros/latex/contrib/pbalance/README.md
+++ b/macros/latex/contrib/pbalance/README.md
@@ -13,7 +13,7 @@ the columns. There are, however, three caveats:
Code etc: <https://gitlab.com/lago/pbalance>
-Copyright 2020-2021 Nelson Lago <lago@ime.usp.br>
+Copyright 2020-2022 Nelson Lago <lago@ime.usp.br>
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c of this license or (at
diff --git a/macros/latex/contrib/pbalance/pbalance.dtx b/macros/latex/contrib/pbalance/pbalance.dtx
index 9f984e0e11..b5712f00c6 100644
--- a/macros/latex/contrib/pbalance/pbalance.dtx
+++ b/macros/latex/contrib/pbalance/pbalance.dtx
@@ -1,5 +1,5 @@
% \iffalse meta-comment
-% Copyright 2020-2021 Nelson Lago <lago@ime.usp.br>
+% Copyright 2020-2022 Nelson Lago <lago@ime.usp.br>
%
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -15,7 +15,7 @@
% \iffalse
%
%<package>\NeedsTeXFormat{LaTeX2e}[2015/01/01]
-%<package>\ProvidesPackage{pbalance}[2021/05/24 v1.1.1 Poor man's balance]
+%<package>\ProvidesPackage{pbalance}[2022/06/22 v1.3.0 Poor man's balance]
%
%<*driver>
@@ -34,6 +34,8 @@
anchorcolor=black,
}
+\usepackage{microtype}
+
\usepackage[draft]{pbalance}
\usepackage{libertinus}
@@ -60,6 +62,14 @@
% \changes{v1.1.0}{2021/04/26}{Do not crash in one-column mode}
% \changes{v1.1.1}{2021/05/24}{Do not use balance package if
% there are dbltop floats}
+% \changes{v1.2.0}{2022/06/20}{Improvements to latexmk file}
+% \changes{v1.2.0}{2022/06/20}{More logging and sanity checks}
+% \changes{v1.2.0}{2022/06/20}{Add ``safe'' option}
+% \changes{v1.2.0}{2022/06/20}{Do not use \texttt{balance} pkg
+% with \texttt{lineno}}
+% \changes{v1.2.0}{2022/06/20}{Compatibility with \texttt{lineno} pkg}
+% \changes{v1.2.1}{2022/06/21}{Better error handling}
+% \changes{v1.3.0}{2022/06/22}{Compatibility with \texttt{stfloats} pkg}
%
% \GetFileInfo{pbalance.sty}
%
@@ -126,11 +136,14 @@
%
% If the last page does not have floats, footnotes, or marginpars, the
% package simply uses \verb|\balance|, from the \texttt{balance} package,
-% otherwise it uses its own algorithm. You may instead use
+% otherwise it uses its own algorithm. If that fails for some reason, you
+% may add the \verb|safe| option to the package, which makes the code
+% never use (or even load) the \texttt{balance} package. You may also use
% \verb|\shrinkLastPage{some-measurement}| to manually define how much
-% shorter the first column of the last page should be. This, however, will
-% not eliminate the need for extra passes (the package needs to find out
-% which page is the last).
+% shorter the first column of the last page should be instead of letting
+% the package determine the amount. This, however, will not eliminate the
+% need for extra passes (the package needs to find out which \mbox{page is
+% the last).}\looseness=1
%
% The package actually balances the last \emph{text} page; if the last
% page is a float page, it is ignored. It also \emph{should} work if you
@@ -157,7 +170,7 @@
% to give up on balancing (the document is still generated correctly
% in this case). To minimize the chances of this outcome, it is
% probably a good idea to make the parameters a little more liberal
-% than the default, for example:
+% than the default, for example:\looseness=-1
%
% \begin{verbatim}
%\setcounter{totalnumber}{5} % default 3
@@ -215,9 +228,6 @@
%
% \begin{itemize}
%
-% \item add options to (1) allow using the balance package on pages with
-% floats and (2) completely disable the balance package;
-%
% \item make the mechanism able to work with any page, not just the last,
% and with more than one page at once. This is useful for the last
% page of each chapter of a two-column book, for example;
@@ -256,9 +266,9 @@
% \subsection{Initialization, required packages etc.}
%
% Besides some other required packages, here we load the \texttt{balance}
-% package; if there are no floats or footnotes involved, we will simply use
-% it. We need to load it after we modify \verb|\@outputdblcol|, so we use
-% \verb|\AtEndOfPackage|.
+% package; if there are no floats or footnotes involved and if the document
+% does not load \texttt{lineno.sty}, we will simply use it. We need to load
+% it after we modify \verb|\@outputdblcol|, so we use \verb|\AtEndOfPackage|.
%
% We also define the \texttt{draft} option, which disables processing.
%
@@ -269,23 +279,43 @@
\RequirePackage{atbegshi} % Manipulate the page output routine
\RequirePackage{atveryend} % Write to the aux file after processing ends
\RequirePackage{zref-abspage} % Figure out the current page
+\RequirePackage{filehook} % Patch other packages that modify the output routine
-\AtEndOfPackage{\RequirePackage{balance}}
-
-% See https://github.com/latex3/latex2e/issues/399#issuecomment-703081793
-\gdef \@reinserts{%
- \ifvbox\@kludgeins\insert\@kludgeins
- {\unvbox\@kludgeins}\fi
- \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
-}
+\newtoggle{@PBpatchFailed}
+% These may be already defined in the .aux file from a previous run
\providetoggle{@PBstabilized}
\providetoggle{@PBimpossible}
+\newtoggle{@PBnoBalancePackage}
+\DeclareOption{safe}{\toggletrue{@PBnoBalancePackage}}
+
\newtoggle{@PBdraft}
\DeclareOption{draft}{\toggletrue{@PBdraft}}
+
\ProcessOptions\relax
+% lineno may be loaded after us, so we need to check for it later...
+\AtEndPreamble{\@ifpackageloaded{lineno}{\toggletrue{@PBnoBalancePackage}}{}}
+
+% ... But it does not harm to check here too, which may save us
+% the trouble of needlessly loading the balance package only to
+% never use it later on. If we get it wrong, that's ok.
+\@ifpackageloaded{lineno}{\toggletrue{@PBnoBalancePackage}}{}
+
+\AtEndOfPackage{
+ \ifboolexpr{togl {@PBdraft} or togl {@PBnoBalancePackage}}
+ {}
+ {\RequirePackage{balance}}
+}
+
+% See https://github.com/latex3/latex2e/issues/399#issuecomment-703081793
+\gdef \@reinserts{%
+ \ifvbox\@kludgeins\insert\@kludgeins
+ {\unvbox\@kludgeins}\fi
+ \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+}
+
% \end{macrocode}
% \subsection{The balancing front}
@@ -333,7 +363,10 @@
\newcommand\@PBStartBalancing{
\ifdefvoid{\@PBslack}
{\@PBautomaticBalance}
- {\@PBshrinkPage}
+ {
+ \PackageInfo{pbalance}{Automatic mode disabled, doing manual adjustment}
+ \@PBshrinkPage
+ }
}
\newcommand\@PBautomaticBalance{
@@ -348,10 +381,10 @@
\@PBcalculateShrinkage
\@PBshrinkPage
}
- {}
+ {\PackageInfo{pbalance}{Page "naturally" balanced, doing nothing}}
}
}
- {}
+ {\PackageInfo{pbalance}{Float-only column at last page, doing nothing}}
}
% Calculate how much we should shrink the left column of the last
@@ -370,8 +403,8 @@
% Figure out the amount of unused space on the last page (both
% cols); we will reduce the first column height by half that amount
- \dimgdef\@PBslack{2\dimexpr\@PBtmpH\relax - \@PBtmpUL - \@PBtmpUR}
- \dimgdef\@PBslack{.5\dimexpr\@PBslack\relax}
+ \dimgdef\@PBslack{\@PBtmpH *2 - \@PBtmpUL - \@PBtmpUR}
+ \dimgdef\@PBslack{\@PBslack /2}
% Actually, I lied. While half, as said above, sometimes yields
% perfectly balanced columns, that is often not the case (the page
@@ -408,7 +441,12 @@
% ``push'' them up to be aligned with the end of the left column,
% especially if there are footnotes on the left column too. We
% do this by manipulating \@textbottom in \@outputdblcol.
-\pretocmd{\@outputdblcol}{\@PBbalanceSecondColumn}{}{}
+\pretocmd{\@outputdblcol}{\@PBbalanceSecondColumn}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
\let\@PBbalanceSecondColumn\relax
@@ -466,7 +504,6 @@
\newtoggle{@PBtmpHasMarginpars}
\def\@PBcollectPageInfo{
-
\ifboolexpr
{
test {\@PBifmidfloat} or test {\@PBiftopfloat} or
@@ -481,10 +518,20 @@
{}
}
-\pretocmd{\@makecol}{\@PBcollectPageInfo}{}{}
+\pretocmd{\@makecol}{\@PBcollectPageInfo}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
% This only gets called if there is a marginpar, so that's easy
-\pretocmd{\@addmarginpar}{\global\toggletrue{@PBtmpHasMarginpars}}{}{}
+\pretocmd{\@addmarginpar}{\global\toggletrue{@PBtmpHasMarginpars}}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
% \end{macrocode}
%
@@ -524,8 +571,19 @@
}
\ExplSyntaxOff
-\pretocmd{\@addtocurcol}{\dimgdef{\@PBtmpHeightBefore}{\@textfloatsheight}}{}{}
-\apptocmd{\@addtocurcol}{\@PBcollectFloatHeights}{}{}
+\pretocmd{\@addtocurcol}{\dimgdef{\@PBtmpHeightBefore}{\@textfloatsheight}}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+
+\apptocmd{\@addtocurcol}{\@PBcollectFloatHeights}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
% \end{macrocode}
%
@@ -539,8 +597,58 @@
\newtoggle{@PBtmpHasFloatcol}
\newtoggle{@PBtmpIsFloatPage}
+% It would be nice to modify @makecol to do something like
+%
+% if@firstcolumn
+% @PBtmpUsedLeft = currentColumnHeight
+% else
+% @PBtmpUsedRight = currentColumnHeight
+%
+% Unfortunately, as stated in texdoc source2e on the section about the
+% output routine (ltoutput.dtx) around source line 273, "any conditional
+% code for the two-column case within output may not get executed with
+% the correct value of if@firstcolumn."
+%
+% Another approach, then, would be to defer the measurement of the
+% columns to @outputdblcol, where there are @leftcolumn and @outputbox.
+% This works, unless the package lineno was loaded: this package modifies
+% @makecol, preventing us from obtaining the correct height for the
+% output boxes.
+%
+% What we do, then, is (1) collect the column height in @makecol and
+% (2) decide whether the collected height corresponds to the left or
+% right column in @outputdblcol.
+\newcommand\@PBcollectColumnUsedHeight{
+ \setbox\@tempboxa=\vbox{\unvcopy\@outputbox\unskip\unskip}
+ \dimgdef\@PBtmpColumnUsedHeight{\ht\@tempboxa\relax}
+}
+
+\apptocmd{\@makecol}{\@PBcollectColumnUsedHeight}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+
+\newtoggle{@PBpatchStillActive} % Let's make sure our patched code actually runs
+
\newcommand\@PBcollectColumnInfo{
+ \global\toggletrue{@PBpatchStillActive}
+
+ \iftoggle{@PBpatchFailed}
+ {}
+ {
+ \ifdefvoid{\@PBtmpColumnUsedHeight}
+ {
+ \global\toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch disabled by another
+ package, won't balance}
+ }
+ {\@PBreallyCollectColumnInfo}
+ }
+}
+\newcommand\@PBreallyCollectColumnInfo{
\if@firstcolumn
\@PBiffloatcol
@@ -556,6 +664,7 @@
% Space used by \texttt{here} floats
\dimgdef\@PBtmpLeftFloatsHeight{\@textfloatsheight}
+ \dimgdef\@PBtmpUsedLeft{\@PBtmpColumnUsedHeight}
\else
@@ -569,26 +678,106 @@
\dimgdef\@PBtmpRightHeight{\@colroom}
\dimgdef\@PBtmpRightFloatsHeight{\@textfloatsheight}
-
- \setbox\@tempboxa=\copy\@leftcolumn
- \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\unskip\unskip}
- \dimgdef\@PBtmpUsedLeft{\ht\@tempboxa\relax}
-
- \setbox\@tempboxa=\copy\@outputbox
- \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\unskip\unskip}
- \dimgdef\@PBtmpUsedRight{\ht\@tempboxa\relax}
+ \dimgdef\@PBtmpUsedRight{\@PBtmpColumnUsedHeight}
\fi
}
-% The default LaTeX macro
-\pretocmd{\@outputdblcol}{\@PBcollectColumnInfo}{}{}
+% Now we patch the default @outputdblcol LaTeX macro...
+\pretocmd{\@outputdblcol}{\@PBcollectColumnInfo}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+
+% ... And the balance package version, but only if we actually loaded it
+\ifboolexpr{togl {@PBdraft} or togl {@PBnoBalancePackage}}
+ {}
+ {
+ \AtEndOfPackage{
+ \pretocmd{\@BAdblcol}{\@PBcollectColumnInfo}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ % Revert \balance before next page if it exists (it might be a float page)
+ \patchcmd{\@BAdblcol}{\endgroup}{\endgroup\nobalance}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ }
+ }
-% The version from the balance package
-\AtEndOfPackage{
- \pretocmd{\@BAdblcol}{\@PBcollectColumnInfo}{}{}
- % Revert \balance before next page if it exists (it might be a float page)
- \patchcmd{\@BAdblcol}{\endgroup}{\endgroup\nobalance}{}{}
-}
+% \end{macrocode}
+%
+% \subsection{Compatibility with other packages}
+%
+% We mostly modify stuff from the output routine to collect data, not to
+% change what is typeset (the only exception is @textbottom, which we
+% manipulate to align footnotes). This means that, if some other package
+% modifies the output routine as well, we will not break anything, which
+% is why this package is mostly safe to use. Unfortunately, such other
+% packages may prevent us from balancing. Here we try to play nice with
+% some of them.
+%
+% \subsubsection{stfloats}
+%
+% \begin{macrocode}
+
+% stfloats overwrites @addtocurcol; if it is already loaded, we already
+% patched the modified version, so we only need to run this if the package
+% is loaded later on. Therefore, we use AtEndOfPackageFile without *.
+\AtEndOfPackageFile{stfloats}
+ {
+
+ \pretocmd{\@addtocurcol}{\dimgdef{\@PBtmpHeightBefore}{\@textfloatsheight}}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+
+ \apptocmd{\@addtocurcol}{\@PBcollectFloatHeights}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ }
+
+% We always need to patch these, so this code should run whether the
+% package is already loaded or gets loaded later on. Therefore, we
+% use AtEndOfPackageFile with *.
+\AtEndOfPackageFile*{stfloats}
+ {
+ \pretocmd{\fn@makecol}{\@PBcollectPageInfo}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ \pretocmd{\org@makecol}{\@PBcollectPageInfo}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ \apptocmd{\fn@makecol}{\@PBcollectColumnUsedHeight}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ \apptocmd{\org@makecol}{\@PBcollectColumnUsedHeight}
+ {}
+ {
+ \toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch failed, won't balance}
+ }
+ }
% \end{macrocode}
%
@@ -600,8 +789,22 @@
%
% \begin{macrocode}
-\ExplSyntaxOn
\AtBeginShipout{
+ \iftoggle{@PBpatchFailed}
+ {}
+ {
+ \iftoggle{@PBpatchStillActive}
+ {\@PBfinalizePageData}
+ {
+ \global\toggletrue{@PBpatchFailed}
+ \PackageWarningNoLine{pbalance}{Patch disabled by another
+ package, won't balance}
+ }
+ }
+}
+
+\ExplSyntaxOn
+\newcommand\@PBfinalizePageData{
% It only makes sense to consider pages that actually have two
% columns. LaTeX3 does not do short-circuit evaluation, so we
% cannot add this test to the ifboolexpr below.
@@ -656,7 +859,7 @@
% document, there is no candidate page.
\ifcsdef{@PBlastPage}
{\@PBcopyPageData{candidate}{pg\@Roman{\@PBlastPage}}}
- {}
+ {\PackageInfo{pbalance}{No two-column pages, doing nothing}}
}
% \end{macrocode}
@@ -696,8 +899,16 @@
% so the user can start over if they want to.
\iftoggle{@PBdraft}{\togglefalse{@PBimpossible}}{}
- \ifboolexpr{togl {@PBdraft} or togl {@PBimpossible}}
- {}
+ \ifboolexpr{togl {@PBdraft} or togl {@PBimpossible} or togl {@PBpatchFailed}}
+ {
+ \iftoggle{@PBimpossible}
+ {\PackageWarningNoLine{pbalance}{Could not balance, doing nothing}}
+ {
+ \iftoggle{@PBpatchFailed}
+ {\PackageWarningNoLine{pbalance}{Patching failed, doing nothing}}
+ {\PackageInfo{pbalance}{Draft mode, doing nothing}}
+ }
+ }
{
\ifdefvoid{\@PBprevLastPage}
{\@PBsaveUnbalancedInfo\@PBnotifyRerun} % First pass
@@ -783,6 +994,8 @@
togl {@PBunbalpg\@Roman{\@PBprevLastPage}HasFootnotes}
or
togl {@PBunbalpg\@Roman{\@PBprevLastPage}HasMarginpars}
+ or
+ togl {@PBnoBalancePackage}
}
{#2}
{#1}
@@ -1027,7 +1240,10 @@
\PackageWarningNoLine{pbalance}
{Last two-column page cols not balanced. Rerun LaTeX}
}
- {}
+ {
+ \PackageWarningNoLine{pbalance}
+ {No two-column pages, doing nothing}
+ }
}
}
diff --git a/macros/latex/contrib/pbalance/pbalance.ins b/macros/latex/contrib/pbalance/pbalance.ins
index 4dbd564c67..980cf5050f 100644
--- a/macros/latex/contrib/pbalance/pbalance.ins
+++ b/macros/latex/contrib/pbalance/pbalance.ins
@@ -1,4 +1,4 @@
-%% Copyright 2020-2021 Nelson Lago <lago@ime.usp.br>
+%% Copyright 2020-2022 Nelson Lago <lago@ime.usp.br>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -16,7 +16,7 @@
\usedir{tex/latex/pbalance}
\preamble
-Copyright 2020-2021 Nelson Lago <lago@ime.usp.br>
+Copyright 2020-2022 Nelson Lago <lago@ime.usp.br>
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c of this license or (at
diff --git a/macros/latex/contrib/pbalance/pbalance.pdf b/macros/latex/contrib/pbalance/pbalance.pdf
index 43fc1c40f8..d8ddbb38f0 100644
--- a/macros/latex/contrib/pbalance/pbalance.pdf
+++ b/macros/latex/contrib/pbalance/pbalance.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 7248d9ac77..60d0b4c460 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,13 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.1.4] - 2022-06-22
+
+
+### Fixed
+- Spacing of `\arcminute` and `\arcsecond` in quantities (see issue
+ [\#6048(https://github.com/josephwright/siunitx/issues/608))
+
## [v3.1.3] - 2022-06-07
### Fixed
@@ -1786,7 +1793,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.1.3...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.1.4...HEAD
+[v3.1.4]: https://github.com/josephwright/siunitx/compare/v3.1.3...v3.1.4
[v3.1.3]: https://github.com/josephwright/siunitx/compare/v3.1.2...v3.1.3
[v3.1.2]: https://github.com/josephwright/siunitx/compare/v3.1.1...v3.1.2
[v3.1.1]: https://github.com/josephwright/siunitx/compare/v3.1.0...v3.1.1
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 08b863b8b4..533f78d1d2 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-quantity.dtx b/macros/latex/contrib/siunitx/siunitx-quantity.dtx
index 4c311d5d08..94f50a1ce7 100644
--- a/macros/latex/contrib/siunitx/siunitx-quantity.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-quantity.dtx
@@ -448,11 +448,17 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\degree}
-% The \cs{degree} unit is re-declared here: this is needed for using it
+% \begin{macro}{\arcminute, \arcsecond, \degree}
+% The angles units are re-declared here: this is needed for using it
% in quantities. This is done here as it avoids a dependency in
% \pkg{siunitx-unit} on options it does not contain.
% \begin{macrocode}
+\siunitx_declare_unit:Nxn \arcminute
+ { \@@_non_latin:n { "02B9 } }
+ { quantity-product = { } }
+\siunitx_declare_unit:Nxn \arcsecond
+ { \@@_non_latin:n { "02BA } }
+ { quantity-product = { } }
\siunitx_declare_unit:Nxn \degree
{ \@@_non_latin:n { "00B0 } }
{ quantity-product = { } }
diff --git a/macros/latex/contrib/siunitx/siunitx-symbol.dtx b/macros/latex/contrib/siunitx/siunitx-symbol.dtx
index af3c88a095..30791514b1 100644
--- a/macros/latex/contrib/siunitx/siunitx-symbol.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-symbol.dtx
@@ -165,13 +165,15 @@
{
\@@_if_replace:NnT \arcminute { "02B9 }
{
- \siunitx_declare_unit:Nn \arcminute
+ \siunitx_declare_unit:Nnn \arcminute
{ \ensuremath { { } ' } }
+ { quantity-product = { } }
}
\@@_if_replace:NnT \arcsecond { "02BA }
{
- \siunitx_declare_unit:Nn \arcsecond
+ \siunitx_declare_unit:Nnn \arcsecond
{ \ensuremath { { } '' } }
+ { quantity-product = { } }
}
% \end{macrocode}
% For |\degree|, direct input works in text mode so there is only a need to
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index d24b1ce6fa..4217ff662f 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -121,7 +121,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2022-06-07} {3.1.3}
+\ProvidesExplPackage {siunitx} {2022-06-22} {3.1.4}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index 98c7607d19..e6e98188c9 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/CHANGES.md b/macros/latex/contrib/tcolorbox/CHANGES.md
index cd0cb3a989..5dc1a6549f 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES.md
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -22,6 +22,59 @@ and this project adheres to
+## [5.1.0] - 2022-06-22
+
+### Added
+- Options wrapping `\tl_if_blank:nTF` and `\tl_if_empty:nTF` (issue #179)
+ - Option `IfBlankTF`
+ - Option `IfBlankT`
+ - Option `IfBlankF`
+ - Option `IfEmptyTF`
+ - Option `IfEmptyT`
+ - Option `IfEmptyF`
+- Options to insert code at begin and end of floats (issue #172)
+ - Option `before float`
+ - Option `after float`
+ - Option `before float app`
+ - Option `before float pre`
+ - Option `after float app`
+ - Option `after float pre`
+- Library `skins`: overlap of lower part for `bicolor`, `tile`, and `beamer`
+ made configurable (issue #166) by
+ - Option `overlaplower`
+ - `\tcboverlaplower`
+- Library `documentation`: package warning, if `imakeidx` is loaded after the
+ library is loaded (issue #173)
+- Library `documentation`: gather index LaTeX macros and configure gathering (issue #174)
+ - Option `doclang/commands`
+ - Option `index gather colors`
+ - Option `index gather commands`
+ - Option `index gather counters`
+ - Option `index gather environments`
+ - Option `index gather keys`
+ - Option `index gather lengths`
+ - Option `index gather paths`
+ - Option `index gather values`
+ - Option `index gather all`
+ - Option `index gather none`
+
+### Changed
+- Required latex2e specified `\NeedsTeXFormat{LaTeX2e}[2020/10/01]` (issue #170)
+- Documentation: comment `default setting` for `every box on higher layers` (issue #168)
+- Documentation: hyperlinking keys and commands where not already done inside
+ the listings section (part of issue #175)
+- All contents of library `xparse` are moved to the `tcolorbox` main package and
+ to libraries `listings` and `fitting` respectively. `xparse` now only loads
+ the package `xparse` (issue #180)
+- Internal implementation of all `\new*` commands, e.g. `\newtcolorbox` changed.
+ Note that a missing backlash for `tcbox`-like commands
+ e.g. `\newtcbox{mybox}` instead of `\newtcbox{\mybox}` is no longer tolerated.
+
+### Fixed
+- With `parbox=false`, `before skip` was ignored in inner box (issue #171)
+
+
+
## [5.0.2] - 2022-01-07
### Changed
@@ -35,7 +88,6 @@ and this project adheres to
-
## [5.0.1] - 2021-12-20
### Fixed
@@ -44,6 +96,7 @@ and this project adheres to
This also affected boxes with sidebyside content
+
## [5.0.0] - 2021-12-16
### Added
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
index 38f71ac584..5677aebf2e 100644
--- a/macros/latex/contrib/tcolorbox/README.md
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+# The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
> Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index 543d767c67..c5f982ebd7 100644
--- a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbbreakable.code.tex: Code for breakable colorboxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{pdfcol}
\pdfcolInitStack{tcb@breakable}
@@ -95,7 +95,6 @@
\@setminipage\tcb@hyph@fix%
\let\tcb@drawcolorbox\tcb@drawcolorbox@standalone%
\let\FN@pp@footnote\@empty% disable perpage mode of 'footmisc' package
- \ignorespaces%
}
\def\endtcb@vbox{%
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index 7a97196d34..ffa29fd17d 100644
--- a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbdocumentation.code.tex: Code for LaTeX documentations
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,11 +17,17 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{listings,skins,xparse,external,raster}
-\ifdefined\printindex\else\RequirePackage{makeidx}[2000/03/29]\fi
+\ifdefined\printindex\else%
+ \RequirePackage{makeidx}[2000/03/29]%
+ \AddToHook{begindocument/before}{%
+ \@ifpackageloaded{imakeidx}{%
+ \tcb@warning{`imakeidx' package should be loaded before `documentation' library}%
+ }{}}%
+\fi
\RequirePackage{refcount}[2011/10/16]
\RequirePackage{hyperref}[2012/02/06]
\ifdefined\marginnote\else\RequirePackage{marginnote}[2012/03/29]\fi
@@ -88,7 +94,6 @@
\colOpt{{\ttfamily[}\meta{#1}{\ttfamily]}}}
\def\brackets#1{{\ttfamily\char`\{}#1{\ttfamily\char`\}}}
-\newif\iftcb@doc@toindex
\newif\iftcb@doc@colorize
\newif\iftcb@doc@annotate
@@ -102,6 +107,7 @@
environment content/.store in=\kvtcb@text@envcontent,
environment/.store in=\kvtcb@text@env,
environments/.store in=\kvtcb@text@envs,
+ commands/.store in=\kvtcb@text@coms,
index/.store in=\kvtcb@text@index,
key/.store in=\kvtcb@text@key,
keys/.store in=\kvtcb@text@keys,
@@ -182,7 +188,6 @@
after doc body/.style={after doc body command={#1},after doc body environment={#1}
,after doc body key={#1},after doc body path={#1}},
doc description/.store in=\kvtcb@doc@description,%
- doc into index/.is if=tcb@doc@toindex,%
doc no index/.style={doc into index=false},
doc updated/.style={before upper={\tcbdocmarginnote{\tcbdocupdated{#1}}}},
doc new/.style={before upper={\tcbdocmarginnote{\tcbdocnew{#1}}}},
@@ -210,6 +215,7 @@
counter=counter,counters=Counters,
environment content=environment content,
environment=environment,environments=Environments,
+ commands=Commands,
path=path operation,paths=Path operations,
index=Index,
key=key,keys=Keys,
@@ -277,28 +283,28 @@
\iftcb@doc@colorize\textcolor{#2}{\tcb@cs{#1}}\else\tcb@cs{#1}\fi%
}
-\newrobustcmd{\tcbIndexPrintComC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@command}}
+\NewDocumentCommand{\tcbIndexPrintComC}{m}{\tcb@Index@Print@ComC{#1}{\kvtcb@col@command}}
-\newrobustcmd{\tcbIndexPrintEnvCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@environment}{\kvtcb@text@env}}
-\newrobustcmd{\tcbIndexPrintEnvC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@environment}}
+\NewDocumentCommand{\tcbIndexPrintEnvCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@environment}{\kvtcb@text@env}}
+\NewDocumentCommand{\tcbIndexPrintEnvC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@environment}}
-\newrobustcmd{\tcbIndexPrintKeyCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}}
-\newrobustcmd{\tcbIndexPrintKeyC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}}
+\NewDocumentCommand{\tcbIndexPrintKeyC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@key}}
-\newrobustcmd{\tcbIndexPrintPathCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@path}{\kvtcb@text@path}}
-\newrobustcmd{\tcbIndexPrintPathC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@path}}
+\NewDocumentCommand{\tcbIndexPrintPathCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@path}{\kvtcb@text@path}}
+\NewDocumentCommand{\tcbIndexPrintPathC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@path}}
-\newrobustcmd{\tcbIndexPrintValCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@value}{\kvtcb@text@value}}
-\newrobustcmd{\tcbIndexPrintValC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@value}}
+\NewDocumentCommand{\tcbIndexPrintValCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@value}{\kvtcb@text@value}}
+\NewDocumentCommand{\tcbIndexPrintValC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@value}}
-\newrobustcmd{\tcbIndexPrintColCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@color}{\kvtcb@text@color}}
-\newrobustcmd{\tcbIndexPrintColC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@color}}
+\NewDocumentCommand{\tcbIndexPrintColCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@color}{\kvtcb@text@color}}
+\NewDocumentCommand{\tcbIndexPrintColC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@color}}
-\newrobustcmd{\tcbIndexPrintCountCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@counter}{\kvtcb@text@counter}}
-\newrobustcmd{\tcbIndexPrintCountC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountCA}{m}{\tcb@Index@Print@CA{#1}{\kvtcb@col@counter}{\kvtcb@text@counter}}
+\NewDocumentCommand{\tcbIndexPrintCountC}{m}{\tcb@Index@Print@C{#1}{\kvtcb@col@counter}}
-\newrobustcmd{\tcbIndexPrintLenCA}[1]{\tcb@Index@Print@ComCA{#1}{\kvtcb@col@length}{\kvtcb@text@length}}
-\newrobustcmd{\tcbIndexPrintLenC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@length}}
+\NewDocumentCommand{\tcbIndexPrintLenCA}{m}{\tcb@Index@Print@ComCA{#1}{\kvtcb@col@length}{\kvtcb@text@length}}
+\NewDocumentCommand{\tcbIndexPrintLenC}{m}{\tcb@Index@Print@ComC{#1}{\kvtcb@col@length}}
\newenvironment{tcb@manual@entry}{\begin{list}{}{%
@@ -326,6 +332,29 @@
\ExplSyntaxOn
+\cs_new_nopar:Npn \__tcobox_new_bool_key:nn #1 #2
+ {
+ \bool_new:N #1
+ \tcbset
+ {
+ #2/.is~choice,
+ #2/true/.code = { \bool_set_true:N #1 },
+ #2/false/.code = { \bool_set_false:N #1 },
+ #2/.default = true,
+ }
+ }
+
+\__tcobox_new_bool_key:nn \l__tcobox_doc_toindex_bool { doc~into~index }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_colors_bool { index~gather~colors }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_commands_bool { index~gather~commands }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_counters_bool { index~gather~counters }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_environments_bool { index~gather~environments }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_keys_bool { index~gather~keys }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_lengths_bool { index~gather~lengths }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_paths_bool { index~gather~paths }
+\__tcobox_new_bool_key:nn \l__tcobox_doc_gather_values_bool { index~gather~values }
+
+
\cs_new_nopar:Npn \__tcobox_sanitize_tl:n #1
{
\group_begin:
@@ -416,9 +445,14 @@
\cs_new_nopar:Npn \__tcobox_index_command:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_commands_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@coms\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_command:
@@ -457,7 +491,7 @@
\NewDocumentEnvironment{docCommand*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docCommand}
}
{
@@ -473,10 +507,14 @@
\cs_new_nopar:Npn \__tcobox_index_environment:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@envs\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvCA{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_environments_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@envs\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_environment:
@@ -517,7 +555,7 @@
\NewDocumentEnvironment{docEnvironment*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docEnvironment}
}
{
@@ -538,17 +576,21 @@
\cs_new_nopar:Npn \__tcobox_index_key:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}}
- \tl_if_empty:NTF \kvtcb@doc@keypath
- {
- \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
- }
- {
- \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{/\kvtcb@doc@keypath/}
- \idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
- }
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyCA{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_keys_bool
+ {
+ \tl_if_empty:NTF \kvtcb@doc@keypath
+ {
+ \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
+ }
+ {
+ \kvtcb@index@command{\kvtcb@text@keys\idx@level\kvtcb@doc@keypath\idx@actual\tcbIndexPrintKeyC{/\kvtcb@doc@keypath/}
+ \idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintKeyC{\kvtcb@doc@index}}
+ }
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_key:
@@ -603,7 +645,7 @@
\NewDocumentEnvironment{docKey*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docKey}
}
{
@@ -633,7 +675,7 @@
\NewDocumentEnvironment{#1*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{#1}
}
{
@@ -668,10 +710,14 @@
\cs_new_nopar:Npn \__tcobox_index_path:
{
- \iftcb@doc@toindex
- \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@paths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathCA{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_paths_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@paths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintPathC{\kvtcb@doc@index}}
+ }
+ }
}
\cs_new:Npn \__tcobox_doc_head_path:
@@ -710,7 +756,7 @@
\NewDocumentEnvironment{docPathOperation*}{}
{
\group_begin:
- \tcb@doc@toindexfalse
+ \bool_set_false:N \l__tcobox_doc_toindex_bool
\begin{docPathOperation}
}
{
@@ -756,7 +802,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@values\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_values_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@values\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintValC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -770,7 +819,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@colors\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_colors_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@colors\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintColC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -784,7 +836,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@counters\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_counters_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@counters\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintCountC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -798,7 +853,10 @@
\IfBooleanF{#1}
{
\kvtcb@index@command{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenCA{\kvtcb@doc@index}}
- \kvtcb@index@command{\kvtcb@text@lengths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenC{\kvtcb@doc@index}}
+ \bool_if:NT \l__tcobox_doc_gather_lengths_bool
+ {
+ \kvtcb@index@command{\kvtcb@text@lengths\idx@level\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintLenC{\kvtcb@doc@index}}
+ }
}
\group_end:
}
@@ -887,17 +945,19 @@
\ExplSyntaxOn
\def\tcb@doc@index@doc{
- \def \__tcobox_index_command:
+ \cs_set_nopar:Npn \__tcobox_index_command:
{
- \iftcb@doc@toindex
- \SpecialMainIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \SpecialMainIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintComC{\kvtcb@doc@index}}
+ }
}
- \def \__tcobox_index_environment:
+ \cs_set_nopar:Npn \__tcobox_index_environment:
{
- \iftcb@doc@toindex
- \SpecialMainEnvIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
- \fi
+ \bool_if:NT \l__tcobox_doc_toindex_bool
+ {
+ \SpecialMainEnvIndex{\kvtcb@doc@sortindex\idx@actual\tcbIndexPrintEnvC{\kvtcb@doc@index}}
+ }
}
\tcbset{index~german~settings}
\EnableCrossrefs
@@ -908,6 +968,28 @@
\def\tcb@doc@index@off{}
\tcbset{%
+ index gather all/.style={%
+ index gather colors=true,
+ index gather commands=true,
+ index gather counters=true,
+ index gather environments=true,
+ index gather keys=true,
+ index gather lengths=true,
+ index gather paths=true,
+ index gather values=true},
+ index gather none/.style={%
+ index gather colors=false,
+ index gather commands=false,
+ index gather counters=false,
+ index gather environments=false,
+ index gather keys=false,
+ index gather lengths=false,
+ index gather paths=false,
+ index gather values=false},
+}
+
+
+\tcbset{%
reset@documentation/.style={%
},
initialize@reset=reset@documentation,
@@ -921,6 +1003,7 @@
after doc body=,
documentation listing style=tcbdocumentation,
doc into index=true,
+ index gather all,
doc marginnote=,
color option=Option,
color definition=Definition,
diff --git a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index cdc0c2b9e8..094a35e8cc 100644
--- a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbexternal.code.tex: Code for externalization
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index 1259be495c..0c4f6368cd 100644
--- a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbfitting.code.tex: Code for fit boxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\newdimen\tcbfitdim
\newdimen\tcb@lowerfitdim
@@ -371,27 +371,100 @@
\tcb@ox{capture=fitbox,#1}{#2}%
}
-\long\def\tcb@newtcboxfit#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcboxfit[#2,options@for=#1]}}
-\long\def\tcb@newtcboxfit@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcboxfit[#3,options@for=#1]}}
+\ExplSyntaxOn
-\long\def\tcb@newtcboxfit@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcboxfit[#4,options@for=#1]}}
-\long\def\tcb@new@tcboxfit@#1[#2]{%
- \@ifnextchar[{\tcb@newtcboxfit@@{#1}[#2]}{\tcb@newtcboxfit@{#1}[#2]}}
+\NewDocumentCommand \__tcobox_new_tcboxfit_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcboxfit[#6,options@for=#3] }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcboxfit[#6,options@for=#3] }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcboxfit[#6,options@for=#3] }
+ }
+ }
+ }
+\NewDocumentCommand \__tcobox_new_tcboxfit_i:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_tcboxfit_ii:w #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \newtcboxfit { }
+ {
+ \__tcobox_new_tcboxfit_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcboxfit { }
+ {
+ \__tcobox_new_tcboxfit_i:w \renewcommand
+ }
-\long\def\tcb@new@tcboxfit#1{%
- \@ifnextchar[{\tcb@new@tcboxfit@{#1}}{\tcb@newtcboxfit{#1}}}
-\def\newtcboxfit{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcboxfit%
- \tcb@process@newcommand}
+\cs_new:Npn \__tcobox_new_TCBoxFit:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcboxfit[#5,options@for=#3] }
+ }
+\NewDocumentCommand \__tcobox_new_TCBoxFit:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TCBoxFit:Nnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBoxFit { }
+ {
+ \__tcobox_new_TCBoxFit:w \ProvideDocumentCommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTCBoxFit:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcboxfit[#5,options@for=#3]{#6} }
+ }
+\NewDocumentCommand \__tcobox_new_TotalTCBoxFit:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TotalTCBoxFit:Nnnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTCBoxFit { }
+ {
+ \__tcobox_new_TotalTCBoxFit:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\def\renewtcboxfit{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcboxfit%
- \tcb@process@newcommand}
\tcbset{%
reset@fitting/.style={%
diff --git a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index f3197fbcf5..dd06324a65 100644
--- a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
@@ -40,6 +40,11 @@
after app/.code={\appto\kvtcb@afterbox{#1}},%
after pre/.code={\preto\kvtcb@afterbox{#1}},%
%
+ before float app/.code={\appto\kvtcb@beforefloat{#1}},%
+ before float pre/.code={\preto\kvtcb@beforefloat{#1}},%
+ after float app/.code={\appto\kvtcb@afterfloat{#1}},%
+ after float pre/.code={\preto\kvtcb@afterfloat{#1}},%
+ %
overlay unbroken app/.code={\appto\tcb@overlay@unbroken{#1}},%
overlay unbroken pre/.code={\preto\tcb@overlay@unbroken{#1}},%
overlay first app/.code={\appto\tcb@overlay@first{#1}},%
diff --git a/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index 7d74e9ad6e..e66d95a375 100644
--- a/macros/latex/contrib/tcolorbox/tcblistings.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistings.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{listings}[2007/02/22]
diff --git a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
index d461068fe2..a13d4ccbc9 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{pro@cessing}
@@ -276,49 +276,122 @@
\begingroup\tcbverbatimwrite{\kvtcb@listingfile}%
}{\endtcbverbatimwrite\endgroup}
-\long\def\tcb@newtcblisting#1#2{\tcb@newenvironment{#1}{\tcblisting{#2,options@for=#1}}{\endtcblisting}}
-\long\def\tcb@newtcblisting@#1[#2]#3{\tcb@newenvironment{#1}[#2]{\tcblisting{#3,options@for=#1}}{\endtcblisting}}
+\ExplSyntaxOn
+
+
+\NewDocumentCommand \__tcobox_new_tcblisting:w { m +o m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ #1 { #3 }{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ #1 { #3 }[ #4 ]{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ {
+ #1 { #3 }[ #4 ][ #5 ]{ \tcblisting{#6,options@for=#3} }{ \endtcblisting }
+ }
+ }
+ }
+\NewDocumentCommand \newtcblisting { }
+ {
+ \__tcobox_new_tcblisting:w \newenvironment
+ }
+\NewDocumentCommand \renewtcblisting { }
+ {
+ \__tcobox_new_tcblisting:w \renewenvironment
+ }
+
+
+\NewDocumentCommand \__tcobox_new_TCBListing:w { m +o m +m +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ #1 { #3 }{ #4 }{ \tcblisting{#5,options@for=#3} }{ \endtcblisting }
+ }
+\NewDocumentCommand \DeclareTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \DeclareDocumentEnvironment
+ }
+\NewDocumentCommand \NewTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \NewDocumentEnvironment
+ }
+\NewDocumentCommand \RenewTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \RenewDocumentEnvironment
+ }
+\NewDocumentCommand \ProvideTCBListing { }
+ {
+ \__tcobox_new_TCBListing:w \ProvideDocumentEnvironment
+ }
+
+
+\NewDocumentCommand \__tcobox_new_tcbinputlisting_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbinputlisting{#6,options@for=#3} }
+ }
+ }
+ }
+\NewDocumentCommand \__tcobox_new_tcbinputlisting_i:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_tcbinputlisting_ii:w #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \newtcbinputlisting { }
+ {
+ \__tcobox_new_tcbinputlisting_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcbinputlisting { }
+ {
+ \__tcobox_new_tcbinputlisting_i:w \renewcommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TCBInputListing:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbinputlisting{#5,options@for=#3} }
+ }
+\NewDocumentCommand \__tcobox_new_TCBInputListing:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TCBInputListing:Nnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBInputListing { }
+ {
+ \__tcobox_new_TCBInputListing:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\long\def\tcb@newtcblisting@@#1[#2][#3]#4{\tcb@newenvironment{#1}[#2][#3]{\tcblisting{#4,options@for=#1}}{\endtcblisting}}
-
-\long\def\tcb@new@tcblisting@#1[#2]{%
- \@ifnextchar[{\tcb@newtcblisting@@{#1}[#2]}{\tcb@newtcblisting@{#1}[#2]}}
-
-\def\tcb@new@tcblisting#1{%
- \@ifnextchar[{\tcb@new@tcblisting@{#1}}{\tcb@newtcblisting{#1}}}
-
-\def\newtcblisting{%
- \let\tcb@newenvironment\newenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcblisting%
- \tcb@process@newenvironment}
-
-\def\renewtcblisting{%
- \let\tcb@newenvironment\renewenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcblisting%
- \tcb@process@newenvironment}
-
-\long\def\tcb@newtcbinputlisting#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcbinputlisting{#2,options@for=#1}}}
-
-\long\def\tcb@newtcbinputlisting@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcbinputlisting{#3,options@for=#1}}}
-
-\long\def\tcb@newtcbinputlisting@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcbinputlisting{#4,options@for=#1}}}
-
-\long\def\tcb@new@tcbinputlisting@#1[#2]{%
- \@ifnextchar[{\tcb@newtcbinputlisting@@{#1}[#2]}{\tcb@newtcbinputlisting@{#1}[#2]}}
-
-\def\tcb@new@tcbinputlisting#1{%
- \@ifnextchar[{\tcb@new@tcbinputlisting@{#1}}{\tcb@newtcbinputlisting{#1}}}
-
-\def\newtcbinputlisting{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbinputlisting%
- \tcb@process@newcommand}
-
-\def\renewtcbinputlisting{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbinputlisting%
- \tcb@process@newcommand}
\tcbset{%
reset@listingscore/.style={%
diff --git a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index 0946a01a81..64ecfd73a3 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{listings}
diff --git a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index 0ba0c9f278..f719cd1990 100644
--- a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbmagazine.code.tex: Code for box sets and magazine styles
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index 802f48e902..37bcb4055f 100644
--- a/macros/latex/contrib/tcolorbox/tcbminted.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbminted.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{minted}[2021/12/24]
diff --git a/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index 7a4ec1aa60..aaa2029f63 100644
--- a/macros/latex/contrib/tcolorbox/tcbposter.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbposter.code.tex: Code for posters
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{breakable,magazine,skins,fitting}
diff --git a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
index 1575b8e990..86dd5edc9d 100644
--- a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbprocessing.code.tex: Code for conditional processing
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{pdftexcmds}
\RequirePackage{shellesc}
diff --git a/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index 78c1ba5505..b1ea20394d 100644
--- a/macros/latex/contrib/tcolorbox/tcbraster.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\newcounter{tcbrastercolumn}
\newcounter{tcbrasterrow}
diff --git a/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 3d048c71c3..666a17e349 100644
--- a/macros/latex/contrib/tcolorbox/tcbskins.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskins.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{tikz}[2010/10/13]
@@ -217,12 +217,12 @@
}
\def\tcb@drawspec@LR#1{%
- \tcb@pathbase{#1,segmentation@style}{interior.south west}{[yshift=0.1mm]segmentation.east}%
+ \tcb@pathbase{#1,segmentation@style}{interior.south west}{[yshift=\tcboverlaplower]segmentation.east}%
{\tcb@arc@ins@SW}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@ins@SE}%
}
\def\tcb@drawspec@LS#1{%
- \tcb@pathbase{#1,segmentation@style}{interior.west|-frame.south}{[yshift=0.1mm]segmentation.east}%
+ \tcb@pathbase{#1,segmentation@style}{interior.west|-frame.south}{[yshift=\tcboverlaplower]segmentation.east}%
{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}%
}
@@ -409,6 +409,7 @@
\fi}},%
colbacklower/.colorlet=tcbcolbacklower,%
opacitybacklower/.store in=\kvtcb@opacitybacklower,
+ overlaplower/.dimstore in=\tcboverlaplower,
clear@spec/.code={\tcb@spec{}},%
tikz/.code={\appto\tcb@tikz@option@hook{,#1}},%
tikz reset/.code={\let\tcb@tikz@option@hook\@empty},%
@@ -2001,7 +2002,7 @@
\tcbset{%
reset@skins/.style={%
frame style=,interior style=,segmentation style=,@title style=,%
- colbacklower=black!15!white,opacitybacklower=1.0,%
+ colbacklower=black!15!white,opacitybacklower=1.0,overlaplower=0.1mm,%
extend freelance=,extend freelancefirst=,extend freelancemiddle=,extend freelancelast=,%
clear@spec,%
watermark opacity=1.00,watermark color=tcbcolback!85!tcbcolframe,%
diff --git a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index 3fe250f208..237625e9ba 100644
--- a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index f1b4820ebc..22d65d0b65 100644
--- a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbtheorems.code.tex: Code for theorems in colorboxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{amsmath}
diff --git a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index f6da2fd7f6..5450aab75e 100644
--- a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbvignette.code.tex: Code for ornamental frames
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index f2fba3e0d8..8b98f90983 100644
--- a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcbxparse.code.tex: Code for xparse features
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -18,284 +18,6 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{5.0.2}
+\tcb@set@library@version{5.1.0}
\RequirePackage{xparse}[2013/12/31]
-
-\tcbset{%
- IfNoValueTF/.code n args={3}{\IfNoValueTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfNoValueT/.code n args={2}{\IfNoValueT{#1}{\pgfkeysalso{#2}}},
- IfNoValueF/.code n args={2}{\IfNoValueF{#1}{\pgfkeysalso{#2}}},
- IfValueTF/.code n args={3}{\IfValueTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfValueT/.code n args={2}{\IfValueT{#1}{\pgfkeysalso{#2}}},
- IfValueF/.code n args={2}{\IfValueF{#1}{\pgfkeysalso{#2}}},
- IfBooleanTF/.code n args={3}{\IfBooleanTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
- IfBooleanT/.code n args={2}{\IfBooleanT{#1}{\pgfkeysalso{#2}}},
- IfBooleanF/.code n args={2}{\IfBooleanF{#1}{\pgfkeysalso{#2}}},
- verbatim/.style={fontupper=\ttfamily,nobeforeafter,tcbox raise base,top=0pt,bottom=0pt,left=1mm,right=1mm,boxrule=0.3mm}
-}
-
-%-- tcolorbox --
-\long\def\tcb@New@TColorBox#1#2#3{%
- \tcb@newenvironment{#1}{#2}{\tcolorbox[#3,options@for=#1]}{\endtcolorbox}}
-
-\def\DeclareTColorBox{%
- \let\tcb@newenvironment\DeclareDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\NewTColorBox{%
- \let\tcb@newenvironment\NewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\RenewTColorBox{%
- \let\tcb@newenvironment\RenewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-\def\ProvideTColorBox{%
- \let\tcb@newenvironment\ProvideDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TColorBox%
- \tcb@process@newenvironment}
-
-%-- tcolorbox (total) --
-\long\def\tcb@New@TotalTColorBox#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\begin{tcolorbox}[#3,options@for=#1]#4\end{tcolorbox}}}
-
-\def\DeclareTotalTColorBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\NewTotalTColorBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\RenewTotalTColorBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTColorBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTColorBox%
- \tcb@process@newcommand}
-
-%-- tcbox --
-\long\def\tcb@New@TCBox#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbox[#3,options@for=#1]}}
-
-\def\DeclareTCBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\NewTCBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\RenewTCBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-\def\ProvideTCBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBox%
- \tcb@process@newcommand}
-
-%-- tcbox (total) --
-\long\def\tcb@New@TotalTCBox#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbox[#3,options@for=#1]{#4}}}
-
-\def\DeclareTotalTCBox{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\NewTotalTCBox{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\RenewTotalTCBox{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTCBox{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBox%
- \tcb@process@newcommand}
-
-\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
-
-%-- tcboxfit --
-\long\def\tcb@New@TCBoxFit#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options@for=#1]}}
-
-\def\DeclareTCBoxFit{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\NewTCBoxFit{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\RenewTCBoxFit{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\def\ProvideTCBoxFit{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBoxFit%
- \tcb@process@newcommand}
-
-\long\def\tcb@New@TotalTCBoxFit#1#2#3#4{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcboxfit[#3,options@for=#1]{#4}}}
-
-\def\DeclareTotalTCBoxFit{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\NewTotalTCBoxFit{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\RenewTotalTCBoxFit{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-\def\ProvideTotalTCBoxFit{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TotalTCBoxFit%
- \tcb@process@newcommand}
-
-
-%-- tcblisting --
-\long\def\tcb@New@TCBListing#1#2#3{%
- \tcb@newenvironment{#1}{#2}{\tcblisting{#3,options@for=#1}}{\endtcblisting}}
-
-\def\DeclareTCBListing{%
- \let\tcb@newenvironment\DeclareDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\NewTCBListing{%
- \let\tcb@newenvironment\NewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\RenewTCBListing{%
- \let\tcb@newenvironment\RenewDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-\def\ProvideTCBListing{%
- \let\tcb@newenvironment\ProvideDocumentEnvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBListing%
- \tcb@process@newenvironment}
-
-%-- tcbinputlisting --
-\long\def\tcb@New@TCBInputListing#1#2#3{%
- \expandafter\tcb@newcommand\csname#1\endcsname{#2}{\tcbinputlisting{#3,options@for=#1}}%
-}
-
-\def\DeclareTCBInputListing{%
- \let\tcb@newcommand\DeclareDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\NewTCBInputListing{%
- \let\tcb@newcommand\NewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\RenewTCBInputListing{%
- \let\tcb@newcommand\RenewDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-\def\ProvideTCBInputListing{%
- \let\tcb@newcommand\ProvideDocumentCommand%
- \let\tcb@process@newtcolorbox@continue\tcb@New@TCBInputListing%
- \tcb@process@newcommand}
-
-
-%-- sidebyside --
-
-\def\tcb@sbs@content@none{\tcb@sbs@text@left\tcblower\tcb@sbs@text@right}
-\def\tcb@sbs@content@left{\box\tcb@upperbox\tcblower\tcb@sbs@text@right}
-\def\tcb@sbs@content@right{\tcb@sbs@text@left\tcblower\box\tcb@lowerbox}
-\def\tcb@sbs@content@both{\box\tcb@upperbox\tcblower\box\tcb@lowerbox}
-
-\def\tcb@sbs@save@upper{%
- \sbox{\tcb@upperbox}{\color{tcbcolupper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper\tcb@sbs@text@left\tcb@insert@after@upper}%
-}
-\def\tcb@sbs@save@lower{%
- \sbox{\tcb@lowerbox}{\color{tcbcollower}\kvtcb@fontlower\kvtcb@halignlower\tcb@insert@before@lower\tcb@sbs@text@right\tcb@insert@after@lower}%
-}
-
-\tcbset{%
- sidebyside adapt/.is choice,
- sidebyside adapt/none/.style={%
- sidebyside@adapt@process/.style={%
- code={\let\tcb@sbs@content\tcb@sbs@content@none},
- }%
- },
- sidebyside adapt/left/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@upper\let\tcb@sbs@content\tcb@sbs@content@left},
- lefthand width=\wd\tcb@upperbox,
- }%
- },
- sidebyside adapt/right/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@right},
- righthand width=\wd\tcb@lowerbox,
- }%
- },
- sidebyside adapt/both/.style={%
- sidebyside@adapt@process/.style={%
- code={\tcb@sbs@save@upper\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@both},
- text width=\wd\tcb@upperbox+\kvtcb@sbs@gap+\wd\tcb@lowerbox,
- lefthand width=\wd\tcb@upperbox,
- }%
- },
- %
- sidebyside switch/.is choice,
- sidebyside switch/true/.style={%
- sidebyside@switch/.code={%
- \tcb@swap{\tcb@sbs@text@left}{\tcb@sbs@text@right}
- }%
- },
- sidebyside switch/false/.style={%
- sidebyside@switch/.style=%
- },
- sidebyside switch/.default=true
-}
-
-
-\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
- code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
- #1,%
- sidebyside,%
- sidebyside@switch,sidebyside@adapt@process%
-}{\tcb@sbs@content}
-
-
-\tcbset{%
- reset@xparse/.style={%
- sidebyside adapt=none,sidebyside switch=false,%
- },
- initialize@reset=reset@xparse,
-}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index 53ea3b5652..802b875cc4 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
index 3b2234d594..153c943e9d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
index e90054c665..bce13b3ac6 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
index aa1a23e52f..b5baddaa01 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index 89224955ff..ce07ca6efa 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
index 9653f7fcd7..412c109296 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
@@ -1,9 +1,9 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
index c396417530..71fde951c1 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
@@ -3,6 +3,7 @@
\clearpage
\section{Macros for Box Creation}%
\tcbset{external/prefix=external/coremacros_}%
+\subsection{Using \texttt{tcolorbox} and \texttt{tcbox}}\label{subsec:macros_using}
\begin{docEnvironment}{tcolorbox}{\oarg{options}}
This is the main environment to create an accentuated colored text box with
rounded corners and, optionally, two parts. The appearance of this box
@@ -146,10 +147,7 @@ Text \tcbox[tcbox raise base]{Hello World}\hfill
\end{docCommand}
\clearpage
-\begin{marker}
-See \Vref{subsec:xparse_tcolorbox} and \Vref{subsec:xparse_tcbox} for more
-elaborate methods to create new environments and commands.
-\end{marker}
+\subsection{Producing \texttt{tcolorbox} Environments and Commands}\label{subsec:macros_tcolorbox}
\begin{docCommand}{newtcolorbox}{\oarg{init options}\marg{name}\oarg{number}\oarg{default}\marg{options}}
Creates a new environment \meta{name} based on \refEnv{tcolorbox}.
@@ -211,6 +209,115 @@ numbered title and options.
\clearpage
+
+\begin{docCommand}{DeclareTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Creates a new environment \meta{name} based on \refEnv{tcolorbox}.\\
+ Basically, |\DeclareTColorBox| operates like |\DeclareDocumentEnvironment|. This means,
+ the new environment \meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcolorbox}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new environment is always created, irrespective of an already existing
+ environment with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTColorBox[use counter from=pabox]{mybox}{ O{red} m d"" !O{} }
+ {enhanced,colframe=#1!75!black,colback=#1!5!white,
+ fonttitle=\bfseries,title={\thetcbcounter~#2},
+ IfValueT={#3}{watermark text={#3}},#4}
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[blue]{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[green]{My title}"My Watermark"
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[yellow]{My title}[colbacktitle=yellow!50!white,coltitle=black]
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[purple]{My title}"All together"[coltitle=yellow]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docCommand}
+
+\clearpage
+\begin{docCommand}{NewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An error is issued if \meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An existing environment is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTColorBox}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ The environment \meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+\clearpage
+
+\begin{docCommand}{DeclareTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refEnv{tcolorbox}.
+ In contrast to \refCom{DeclareTColorBox}, also the \meta{content} of the |tcolorbox| is specified.\\
+ Basically, |\DeclareTotalTColorBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcolorbox} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+\DeclareTotalTColorBox{\diabox}{ O{} v m }
+ { bicolor,nobeforeafter,equal height group=diabox,width=5.7cm,
+ fonttitle=\bfseries\ttfamily,adjusted title={#2},center title,
+ colframe=blue!20!black,leftupper=0mm,rightupper=0mm,colback=black!75!white,#1}
+ { \tikz\path[fill zoom image={#2}] (0,0) rectangle (\linewidth,4cm);%
+ \tcblower#3}
+
+\diabox{blueshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
+\diabox{goldshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
+
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTColorBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+
+\clearpage
+\subsection{Producing \texttt{tcbox} Commands}\label{subsec:macros_tcbox}
+
\begin{docCommand}{newtcbox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
Basically, |\newtcbox| operates like |\newcommand|.
@@ -265,18 +372,150 @@ The \mybox[green]{quick} brown \mybox{fox} \mybox[blue]{jumps} over the
The \xmybox[green]{quick} brown \xmybox{fox} \xmybox[blue]{jumps} over the
\xmybox[green]{lazy} \xmybox{dog}.
\end{dispExample}
-
\end{docCommand}
-\enlargethispage*{1cm}
+\clearpage
\begin{docCommand}{renewtcbox}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Operates like \refCom{newtcbox}, but based on |\renewcommand| instead of |\newcommand|.
An existing macro is redefined.
\end{docCommand}
+
+\begin{docCommand}{DeclareTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
+ Basically, |\DeclareTCBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbox}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTCBox[use counter from=pabox]{\mybox}{ s m s }
+{ nobeforeafter,colback=red!5!white,colframe=red!75!black,
+ title={#2 (Box \thetcbcounter)},fonttitle=\bfseries,
+ IfBooleanT={#1}{enhanced,drop shadow},
+ IfBooleanT={#3}{colbacktitle=red!50!white} }
+
+\mybox{Bird}{This is my first box.}
+ \hfill
+\mybox*{Tree}{This is my second box.}
+ \par\bigskip
+\mybox{Bike}*{This is my third box.}
+ \hfill
+\mybox*{City}*{This is my fourth box.}
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+
\clearpage
+\begin{docCommand}{DeclareTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
+ In contrast to \refCom{DeclareTCBox}, also the \meta{content} of the |tcbox| is specified.\\
+ Basically, |\DeclareTotalTCBox| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbox} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+\DeclareTotalTCBox{\myverb}{ O{red} v !O{} }
+{ fontupper=\ttfamily,nobeforeafter,tcbox raise base,arc=0pt,outer arc=0pt,
+ top=0pt,bottom=0pt,left=0mm,right=0mm,
+ leftrule=0pt,rightrule=0pt,toprule=0.3mm,bottomrule=0.3mm,boxsep=0.5mm,
+ colback=#1!10!white,colframe=#1!50!black,#3}{#2}
+
+To set a word \textbf{bold} in \myverb{\LaTeX}, use
+\myverb[green]{\textbf{bold}}. Alternatively, write
+\myverb[yellow]{{\bfseries bold}}.
+In \myverb[blue]{\LaTeX}[enhanced,fuzzy halo], other font settings are
+done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
+or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
+\end{dispExample}
+
+The next example uses |\lstinline| from the |listings| package to
+typeset the verbatim content.
+
+\begin{dispExample}
+% \usepackage{listings} or \tcbuselibrary{listings}
+\DeclareTotalTCBox{\commandbox}{ s v }
+{verbatim,colupper=white,colback=black!75!white,colframe=black}
+{\IfBooleanT{#1}{\textcolor{red}{\ttfamily\bfseries > }}%
+ \lstinline[language=command.com,keywordstyle=\color{blue!35!white}\bfseries]^#2^}
+
+\commandbox*{cd "My Documents"} changes to directory \commandbox{My Documents}.
+
+\commandbox*{dir /A} lists the directory content.
+
+\commandbox*{copy example.txt d:\target} copies \commandbox{example.txt} to
+ \commandbox{d:\target}.
+\end{dispExample}
+\end{docCommand}
+
+\clearpage
+\begin{docCommand}{NewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
+\begin{docCommand}{tcboxverb}{\oarg{options}\marg{verbatim box content}}
+ Creates a colored box based on \refCom{tcbox} which is fitted to the width of the given
+ \meta{verbatim box content}.
+ The underlying \refCom{tcbox} is styled with
+ \refKey{/tcb/verbatim} plus the given \meta{options}.
+ The difference to \refCom{tcbox} is that the \meta{verbatim box content} is
+ interpreted \textit{verbatim}. Therefore, |\tcboxverb| acts similar to |\verb|.
+
+\begin{dispExample}
+\tcboxverb{\LaTeX}, \tcboxverb[colback=blue!10!white,colupper=blue]{\LaTeX},
+\tcboxverb[blank,fuzzy halo]{\LaTeX}, \tcboxverb[beamer]{\LaTeX},
+\tcboxverb[enhanced,skin=enhancedmiddle jigsaw,colframe=red]{\LaTeX}.
+\end{dispExample}
+\end{docCommand}
+
+
+
+%\clearpage
+\subsection{Redefining other Environments (Wrapping with \texttt{tcolorbox})}\label{subsec:macros_refine}
+
\begin{docCommand}[doc new=2014-10-20]{tcolorboxenvironment}{\marg{name}\marg{options}}
An existing environment \meta{name} is redefined to be boxed inside a
|tcolorbox| with the given \meta{options}.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 42679d832a..bda5bc3ac7 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -2786,9 +2786,10 @@ are drawn by the codes given with
\end{docTcbKey}
-\begin{docTcbKey}[][doc new=2014-09-19]{every float}{=\meta{code}}{no default, initially empty}
+\begin{docTcbKey}[][doc new=2014-09-19]{every float}{=\marg{code}}{no default, initially empty}
For floating objects, the \refKey{/tcb/before} and \refKey{/tcb/after}
- settings are ignored. Instead, the given \meta{code} is inserted before
+ settings are ignored. Instead, \refKey{/tcb/before float} and \refKey{/tcb/after float}
+ can be used. Further, with \refKey{/tcb/every float}, the given \meta{code} is inserted before
a floating box. If the box is \refKey{/tcb/breakable}, the given \meta{code} is
inserted before every part of the break sequence.
The most common use case is |every float=\centering|.
@@ -2804,6 +2805,32 @@ are drawn by the codes given with
\end{docTcbKey}
+\begin{docTcbKeys}[
+ doc parameter = {=\marg{code}},
+ doc description = {no default, initially empty},
+ doc new = 2022-06-21,
+ ]
+ {
+ {
+ doc name = before float,
+ },
+ {
+ doc name = after float,
+ }
+ }
+ For floating objects, the \refKey{/tcb/before} and \refKey{/tcb/after}
+ settings are ignored. Code can be inserted after the begin of the float
+ environment and before \refKey{/tcb/every float} with
+ \refKey{/tcb/before float} and between the end of the box and the end
+ of the float environment with \refKey{/tcb/after float}.
+ \begin{marker}
+ These options are not compatible with \refKey{/tcb/breakable} floating objects
+ and are ignored, if the box is set to be breakable.
+ \end{marker}
+\end{docTcbKeys}
+
+
+
\clearpage
\subsection{Embedding into the Surroundings}\label{subsec:surroundings}
@@ -3778,6 +3805,7 @@ managed layer number (4 by default).
Higher layers are layers above the highest
managed layer number (4 by default).
\begin{dispListing}
+% default setting:
\tcbset{every box on higher layers/.style={reset,every box}}
\end{dispListing}
\end{docTcbKey}
@@ -3791,14 +3819,12 @@ not forbidden.
\end{docCommand}
\begin{tcboutputlisting}
-% \usepackage{lipsum}
-% \tcbuselibrary{skins,breakable}
+% \usepackage{lipsum} \tcbuselibrary{skins,breakable}
\tcbset{colframe=red!75!black,fonttitle=\bfseries,
colback=red!5!white,
every box/.style={enhanced,watermark text=\thetcblayer,
before=\par\smallskip,after=\par\smallskip},
- every box on layer 2/.style={reset,every box,colback=yellow!10!white,
- drop fuzzy shadow}}
+ every box on layer 2/.append style={colback=yellow!10!white,drop fuzzy shadow}}
\begin{tcolorbox}[enhanced jigsaw,breakable,title=Layer 1 Box]
Here comes a footnote\footnote{Footnote from layer 1 box}.
\lipsum[2]
@@ -3953,6 +3979,7 @@ targeting different box types and they do not blend very well.
\refEnv{tcbwritetemp} and \refCom{tcbusetemp} implicitely.
\end{docTcbKey}
+\clearpage
\subsection{\texttt{\textbackslash tcbox} Specials}
The following options are applicable for \refCom{tcbox} and \refCom{tcboxmath}
only.
@@ -3981,6 +4008,21 @@ Test\dotfill
The resulting box behaves analogue to |\fbox|.
\end{docTcbKey}
+\begin{docTcbKey}{verbatim}{}{style, no value}
+ Sets options for a \textit{verbatim} style \refCom{tcbox}.
+ Since the indented boxes may contain only very few words, the
+ dimensions are made smaller and \refKey{/tcb/nobeforeafter}
+ and \refKey{/tcb/tcbox raise base} are set.
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\DeclareTotalTCBox{\myverb}{ v }{verbatim,
+ colframe=red!75!black,colupper=blue}{#1}
+
+\myverb{\textbf} is a \myverb{\LaTeX} command.
+\end{dispExample*}
+\end{docTcbKey}
+
+
+
\clearpage
\begin{docTcbKey}[][doc new=2015-03-23]{tcbox width}{=\meta{mode}}{no default, initially \texttt{auto}}
Controls how \refCom{tcbox} respects a \refKey{/tcb/width} setting.
@@ -4506,6 +4548,185 @@ This is a \textbf{tcolorbox}.
\end{exdispExample}
\end{docTcbKey}
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}, doc new = 2022-05-25 ]
+ {
+ {
+ doc name = IfBlankTF,
+ doc parameter = {=\marg{token list}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfBlankT,
+ doc parameter = {=\marg{token list}\marg{true options}},
+ },
+ {
+ doc name = IfBlankF,
+ doc parameter = {=\marg{token list}\marg{false options}},
+ }
+ }
+ Wraps the |\tl_if_blank:n(TF)| command(s) of \textsf{expl3} for option setting.
+ If the \meta{token list} consists only of blank spaces, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\newtcolorbox{mybox}[1]{ IfBlankF={#1}{title=`#1'} }
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}{ }
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+\medskip
+
+\begin{docTcbKeys}[doc description = {no default}, doc new = 2022-05-25 ]
+ {
+ {
+ doc name = IfEmptyTF,
+ doc parameter = {=\marg{token list}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfEmptyT,
+ doc parameter = {=\marg{token list}\marg{true options}},
+ },
+ {
+ doc name = IfEmptyF,
+ doc parameter = {=\marg{token list}\marg{false options}},
+ }
+ }
+ Wraps the |\tl_if_empty:n(TF)| command(s) of \textsf{expl3} for option setting.
+ If the \meta{token list} is entirely empty, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\newtcolorbox{mybox}[1]{ IfEmptyTF={#1}{colframe=red}{title=`#1'} }
+
+\begin{mybox}{My title}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}{}
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfNoValueTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfNoValueT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfNoValueF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfNoValue(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} has no value, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,
+ IfNoValueTF={#1}{colback=red!5!white}{enhanced,interior style image=#1}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[goldshade.png]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+\medskip
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfValueTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfValueT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfValueF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfValue(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} has a value, the \meta{true options} are set.
+ Otherwise, the \meta{false options} are set.
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,colback=red!5!white,
+ IfValueT={#1}{title={\flqq #1\frqq},fonttitle=\bfseries}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}[My title]
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+%\medskip
+\clearpage
+
+\begin{docTcbKeys}[doc description = {no default}]
+ {
+ {
+ doc name = IfBooleanTF,
+ doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
+ },
+ {
+ doc name = IfBooleanT,
+ doc parameter = {=\marg{argument}\marg{true options}},
+ doc new = 2020-09-16,
+ },
+ {
+ doc name = IfBooleanF,
+ doc parameter = {=\marg{argument}\marg{false options}},
+ doc new = 2020-09-16,
+ }
+ }
+ Wraps the |\IfBoolean(TF)| command(s) of |xparse| for option setting.
+ If the \meta{argument} is |\BooleanTrue|, the \meta{true options} are set.
+ If the \meta{argument} is |\BooleanFalse|, the \meta{false options} are set.
+
+\begin{dispExample}
+\DeclareTColorBox{mybox}{ s }{colframe=red!75!black,
+ IfBooleanTF={#1}{colback=yellow!50!red}{colback=red!5!white}}
+
+\begin{mybox}
+This is a tcolorbox.
+\end{mybox}
+
+\begin{mybox}*
+This is a tcolorbox.
+\end{mybox}
+\end{dispExample}
+\end{docTcbKeys}
+
+
+
\clearpage
\begin{docTcbKey}[][doc new=2016-10-21]{void}{}{no value, initially unset}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index 385c662154..909ad20a24 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -1378,6 +1378,7 @@ instead. Also see \refKey{/tcb/docexample}.
\end{docTcbKey}
\clearpage
+\enlargethispage*{1cm}
\begin{docTcbKey}{index annotate}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
If set to |true|, the index entries are annotated with short descriptions
@@ -1392,6 +1393,63 @@ instead. Also see \refKey{/tcb/docexample}.
\end{docTcbKey}
+\begin{docTcbKeys}[
+ doc new={2022-06-20},
+ doc parameter = {\colOpt{=true\textbar false}},
+ doc description = {default |true|, initially |true|}
+ ]
+ {
+ {
+ doc name = index gather colors,
+ },
+ {
+ doc name = index gather commands,
+ },
+ {
+ doc name = index gather counters,
+ },
+ {
+ doc name = index gather environments,
+ },
+ {
+ doc name = index gather keys,
+ },
+ {
+ doc name = index gather lengths,
+ },
+ {
+ doc name = index gather paths,
+ },
+ {
+ doc name = index gather values,
+ }
+ }
+ If set to |true|, an additional index grouping is created where entries
+ are gathered, e.g. \refKey{/tcb/index gather counters} creates an index
+ entry `Colors', see \refKey{/tcb/doclang/colors}, which gets all colors
+ as sub entries.
+\end{docTcbKeys}
+
+
+\begin{docTcbKeys}[
+ doc new={2022-06-20},
+ doc parameter = {},
+ ]
+ {
+ {
+ doc name = index gather all,
+ doc description = {style, initially set}
+ },
+ {
+ doc name = index gather none,
+ doc description = {style}
+ },
+ }
+ Switches all index gather options from above to |true| (all) or |false| (none).
+\end{docTcbKeys}
+
+
+
\begin{docTcbKey}{color command}{=\meta{color}}{no default, initially |Definition|}
Sets the highlight color used by macro definitions.
\end{docTcbKey}
@@ -1464,6 +1522,10 @@ The English language is predefined.
Heading text in the index for colors.
\end{langTcbKey}
+\begin{langTcbKey}[][doc new={2022-06-20}]{commands}{=\meta{text}}{no default, initially |Commands|}
+ Heading text in the index for commands.
+\end{langTcbKey}
+
\begin{langTcbKey}[][doc new={2015-01-08}]{counter}{=\meta{text}}{no default, initially |counter|}
Text used in the index for counters.
\end{langTcbKey}
@@ -1524,6 +1586,8 @@ The English language is predefined.
Announcement text for updated content.
\end{langTcbKey}
+\clearpage
+
\begin{langTcbKey}{value}{=\meta{text}}{no default, initially |value|}
Text used in the index for values.
\end{langTcbKey}
@@ -1534,13 +1598,6 @@ The English language is predefined.
-
-
-
-\clearpage
-
-
-
\subsection{Predefined Colors of the Library}\tcbdocmarginnote{\tcbdocupdated{2019-09-18}}
The following colors are predefined. They are used as default colors
in some library commands.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
index 7b3147217b..6d670c8a16 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
@@ -36,13 +36,59 @@ The library is loaded by a package option or inside the preamble by:
\end{dispExample}
\end{docCommand}
+
\clearpage
-\begin{marker}
-See \Vref{subsec:xparse_tcboxfit} for more
-elaborate methods to create new commands.
-\end{marker}
-\enlargethispage*{2cm}
+
+\begin{docCommands}[
+ doc name = tcbfitdim,
+ doc description = {read-only \LaTeX\ length},
+ doc updated = 2020-04-24,
+ ]{}
+ This is a \LaTeX\ length adapted automatically by most variants of
+ \refKey{/tcb/fit algorithm}. Therefore, it never is to be
+ changed by the user, but may be applied read-only.
+ The \refCom{tcbfitdim} corresponds to the font size and may also
+ be used to calculate box margins or other distances in dependency.
+ The initial and maximum value for \refCom{tcbfitdim} is set by
+ \refKey{/tcb/fit basedim}.
+\end{docCommands}
+
+
+\begin{docCommand}{tcbfontsize}{\marg{factor}}
+ Selects a font size inside a tcolorbox which is scaled with the given
+ \meta{factor} relative to \refCom{tcbfitdim}.
+ Also see \refKey{/tcb/fit fontsize macros}
+
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\tcbset{colback=red!5!white,size=small,
+ colframe=red!75!black}
+\begin{tcolorbox}[fit basedim=10pt]
+ {\tcbfontsize{0.25} Very tiny,}\\
+ {\tcbfontsize{0.5} Small,}\\
+ {\tcbfontsize{1} Normal,}\\
+ {\tcbfontsize{2} Large,}\\
+ {\tcbfontsize{4} Huge.}
+\end{tcolorbox}
+\end{dispExample*}
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+\tcbset{colback=red!5!white,size=small,
+ colframe=red!75!black}
+\begin{tcolorbox}[fit basedim=10pt,
+ fit to height=2cm]
+ {\tcbfontsize{0.25} Very tiny,}\\
+ {\tcbfontsize{0.5} Small,}\\
+ {\tcbfontsize{1} Normal,}\\
+ {\tcbfontsize{2} Large,}\\
+ {\tcbfontsize{4} Huge.}
+\end{tcolorbox}
+\end{dispExample*}
+\end{docCommand}
+
+
+\clearpage
+\subsection{Producing \texttt{tcboxfit} Commands}\label{subsec:fitting_new}
+
\begin{docCommand}{newtcboxfit}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
@@ -96,51 +142,95 @@ elaborate methods to create new commands.
\clearpage
-\begin{docCommands}[
- doc name = tcbfitdim,
- doc description = {read-only \LaTeX\ length},
- doc updated = 2020-04-24,
- ]{}
- This is a \LaTeX\ length adapted automatically by most variants of
- \refKey{/tcb/fit algorithm}. Therefore, it never is to be
- changed by the user, but may be applied read-only.
- The \refCom{tcbfitdim} corresponds to the font size and may also
- be used to calculate box margins or other distances in dependency.
- The initial and maximum value for \refCom{tcbfitdim} is set by
- \refKey{/tcb/fit basedim}.
-\end{docCommands}
+\begin{docCommand}{DeclareTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
+ Basically, |\DeclareTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcboxfit}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+\begin{dispExample*}{sbs,lefthand ratio=0.6}
+% \usepackage{lipsum}
-\begin{docCommand}{tcbfontsize}{\marg{factor}}
- Selects a font size inside a tcolorbox which is scaled with the given
- \meta{factor} relative to \refCom{tcbfitdim}.
- Also see \refKey{/tcb/fit fontsize macros}
+\DeclareTCBoxFit{\mybox}{ O{} m !o }
+ {colback=red!5!white,
+ colframe=red!75!black,
+ width=#2,height=#2/3*2,
+ IfValueT={#3}{height=#3},
+ #1}
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\tcbset{colback=red!5!white,size=small,
- colframe=red!75!black}
-\begin{tcolorbox}[fit basedim=10pt]
- {\tcbfontsize{0.25} Very tiny,}\\
- {\tcbfontsize{0.5} Small,}\\
- {\tcbfontsize{1} Normal,}\\
- {\tcbfontsize{2} Large,}\\
- {\tcbfontsize{4} Huge.}
-\end{tcolorbox}
-\end{dispExample*}
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\tcbset{colback=red!5!white,size=small,
- colframe=red!75!black}
-\begin{tcolorbox}[fit basedim=10pt,
- fit to height=2cm]
- {\tcbfontsize{0.25} Very tiny,}\\
- {\tcbfontsize{0.5} Small,}\\
- {\tcbfontsize{1} Normal,}\\
- {\tcbfontsize{2} Large,}\\
- {\tcbfontsize{4} Huge.}
-\end{tcolorbox}
+\mybox[colback=yellow]{5cm}%
+ {\lipsum[2]}
+
+\mybox[colback=yellow]{5cm}[4cm]{\lipsum[2]}
\end{dispExample*}
\end{docCommand}
+\begin{docCommand}{NewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+\clearpage
+
+\begin{docCommand}{DeclareTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
+ In contrast to \refCom{DeclareTCBoxFit}, also the \meta{content} of the |tcboxfit| is specified.\\
+ Basically, |\DeclareTotalTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcboxfit} which is filled with
+ the specified \meta{content}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% \usepackage{lipsum}
+
+\DeclareTotalTCBoxFit{\multibox}{ O{} m O{10} m }
+ {nobeforeafter,colback=red!5!white,colframe=red!75!black,width=#2,height=#2/3*2,
+ valign=center,#1}
+ { \foreach \n in {1,...,#3} { #4} }
+
+\multibox{5cm}{I shall not repeat.}
+\multibox[colframe=blue!75!white]{5cm}[20]{I shall not repeat.}\\
+\multibox[colback=yellow,height=5cm]{14cm}[100]{I shall not repeat.}
+\end{dispExample}
+\end{docCommand}
+
+\begin{docCommand}{NewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
+ Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
\clearpage
\subsection{Option Keys of the Library}\label{subsec:fit}
@@ -493,7 +583,7 @@ are adapted. In the following, adapting the font size means adapting
\end{docTcbKey}
\begin{dispExample}
% \usepackage{lipsum}
-\newtcboxfit{mybox}[1]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
+\newtcboxfit{\mybox}[1]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
bottom=1mm,right=1mm,boxsep=0mm,width=3.5cm,height=7cm,nobeforeafter,
before upper=\textcolor{blue}{\rule{5mm}{5mm}}\ ,
enhanced,watermark text={\tcbfitsteps},
@@ -510,7 +600,7 @@ Quality \dotfill versus \dotfill Speed
\begin{dispExample}
% \usepackage{lipsum}
-\newtcboxfit{mybox}[2]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
+\newtcboxfit{\mybox}[2]{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,
size=tight,width=7.2cm,height=5cm,nobeforeafter,
before upper=\textcolor{blue}{\rule{5mm}{5mm}}\ ,
enhanced,fonttitle=\bfseries,adjusted title={#2},fit algorithm=#1}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
index da47d26378..5d8c115be9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
@@ -133,6 +133,7 @@ from page \pageref{subsec:contentadditions}.
\end{docTcbKey}
+\clearpage
\subsection{Embedding into the Surroundings}
The following option keys extend the options given in Subsection \ref{subsec:surroundings}
from page \pageref{subsec:surroundings}.
@@ -168,6 +169,24 @@ This is a \textbf{tcolorbox}.
\end{tcolorbox}
\end{dispExample}
+\medskip
+
+\begin{docTcbKey}{before float app}{=\meta{code}}{no default}
+ Appends the given \meta{code} to \refKey{/tcb/before float} before the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{before float pre}{=\meta{code}}{no default}
+ Prepends the given \meta{code} to \refKey{/tcb/before float} before the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{after float app}{=\meta{code}}{no default}
+ Appends the given \meta{code} to \refKey{/tcb/after float} after the colored box.
+\end{docTcbKey}
+
+\begin{docTcbKey}{after float pre}{=\meta{code}}{no default}
+ Prepends the given \meta{code} to \refKey{/tcb/after float} after the colored box.
+\end{docTcbKey}
+
\clearpage
\subsection{Overlays}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
index 82b5d9f77b..4cf36cd9ef 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
@@ -8,7 +8,7 @@
\tcbset{external/prefix=external/listings_}%
\subsection{Loading the Libraries}
-In contrast to other |tcolorbox| libraries, the libraries
+In contrast to other \refEnv{tcolorbox} libraries, the libraries
\mylib{listings}, \mylib{listingsutf8}, and \mylib{minted} are concurrent in the sense that
they all do the same thing, i.\,e.\ displaying listings with or without typesetting
the listing in \LaTeX\ parallel.
@@ -77,7 +77,7 @@ This also loads the package |minted| \cite{poore:minted}.
The |minted| package uses the external tool |Pygments| \cite{pygments:web}
to apply syntax highlighting. It has to be installed and set up, before the
library can be used, see \cite{poore:minted} and \cite{pygments:web}.
-The |tcolorbox| library \mylib{minted} does not work, if the package
+The \refEnv{tcolorbox} library \mylib{minted} does not work, if the package
|minted| \cite{poore:minted} does not work.
\end{marker}
@@ -95,7 +95,7 @@ To reactivate this setting, if overwritten by other libraries, use
Controlled by the given \meta{options}, the
environment content is typeset normally and/or as a listing.
Furthermore, the \meta{options} control appearance and functions of
- the |tcolorbox|.
+ the \refEnv{tcolorbox}.
By default, the listing is interpreted as a \LaTeX\ listing.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black}
@@ -154,8 +154,8 @@ and in compiled form.
\clearpage
\begin{docEnvironment}{tcboutputlisting}{}
Saves the environment content to a file which is named by the key value of
- |listing file|. Later, this file can be loaded by
- |\tcbinputlisting| or |\tcbuselistingtext| or |\tcbuselistinglisting|.
+ \refKey{/tcb/listing file}. Later, this file can be loaded by
+ \refCom{tcbinputlisting} or \refCom{tcbuselistingtext} or \refCom{tcbuselistinglisting}.
\begin{dispListing}
\begin{tcboutputlisting}
This \textbf{text} is written to a standardized file for later usage.
@@ -165,8 +165,8 @@ This \textbf{text} is written to a standardized file for later usage.
\begin{docCommand}{tcbinputlisting}{\marg{options}}
- Creates a colored boxed based on a |tcolorbox|. The text content is read
- from a file named by the key value of |listing file|. Apart from that,
+ Creates a colored boxed based on a \refEnv{tcolorbox}. The text content is read
+ from a file named by the key value of \refKey{/tcb/listing file}. Apart from that,
the function is equal to that of \refEnv{tcblisting}.
\begin{dispExample}
\tcbinputlisting{colback=red!5!white,colframe=red!75!black,text only}
@@ -175,7 +175,7 @@ This \textbf{text} is written to a standardized file for later usage.
\end{docCommand}
\begin{docCommand}{tcbuselistingtext}{}
- Loads text from a file named by the key value of |listing file|.
+ Loads text from a file named by the key value of \refKey{/tcb/listing file}.
\begin{dispExample}
\tcbuselistingtext
\end{dispExample}
@@ -183,7 +183,7 @@ This \textbf{text} is written to a standardized file for later usage.
\begin{docCommand}{tcbuselistinglisting}{}
- Typesets text as listing from a file named by the key value of |listing file|.
+ Typesets text as listing from a file named by the key value of \refKey{/tcb/listing file}.
\begin{dispExample}
\tcbuselistinglisting
\end{dispExample}
@@ -197,12 +197,10 @@ This \textbf{text} is written to a standardized file for later usage.
\clearpage
+\subsection{Producing \texttt{tcblisting} Environments}\label{subsec:listing_newlistings}
+
\begin{marker}
-See \Vref{subsec:xparse_listing} and \Vref{subsec:xparse_inputlisting} for more
-elaborate methods to create new environments and commands.
-\end{marker}
-\begin{marker}
-If a new sort of |tcblisting| environments should be created with
+If a new sort of \refEnv{tcblisting} environments should be created with
one optional argument only, one is highly recommended to use
\refCom{DeclareTCBListing} or \refCom{NewTCBListing}
instead of \refCom{newtcblisting} to
@@ -211,10 +209,10 @@ avoid content scanning problems.
\begin{docCommand}{newtcblisting}{\oarg{init options}\marg{name}\oarg{number}\oarg{default}\marg{options}}
Creates a new environment \meta{name} based on \refEnv{tcblisting}.
- Basically, |\newtcblisting| operates like |\newenvironment|. This means,
+ Basically, \refCom{newtcblisting} operates like |\newenvironment|. This means,
the new environment \meta{name} optionally takes \meta{number} arguments, where
\meta{default} is the default value for the optional first argument.
- The \meta{options} are given to the underlying |tcblisting|.
+ The \meta{options} are given to the underlying \refEnv{tcblisting}.
Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
automatically.
The \meta{init options} allow setting up automatic numbering,
@@ -280,12 +278,119 @@ This is my \LaTeX\ box.
\clearpage
+
+\begin{docCommand}{DeclareTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Creates a new environment \meta{name} based on \refEnv{tcblisting}.\\
+ Basically, |\DeclareTCBListing| operates like |\DeclareDocumentEnvironment|. This means,
+ the new environment \meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refEnv{tcblisting}.\\
+ Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
+ automatically.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new environment is always created, irrespective of an already existing
+ environment with the same name.
+
+\begin{dispExample*}{sbs,lefthand ratio=0.5}
+\DeclareTCBListing{mybox}{ s O{} m }{%
+ colback=red!5!white,
+ colframe=red!75!black,
+ fonttitle=\bfseries,
+ IfBooleanTF={#1}
+ {listing side text}
+ {text side listing},
+ title={#3},#2}
+
+\begin{mybox}{Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\bigskip
+
+\begin{mybox}*{Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\bigskip
+
+\begin{mybox}[colback=yellow]
+ {Listing Box}
+This is my
+\LaTeX\ box.
+\end{mybox}
+\end{dispExample*}
+\end{docCommand}
+
+\begin{docCommand}{NewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An error is issued if \meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ An existing environment is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBListing}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
+ The environment \meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+\clearpage
+
+\begin{marker}
+With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
+changed the argument collection process (now part of the \LaTeX\ kernel).
+Spaces are ignored which leads to a serious change for listing environments
+ending with an optional argument like \verb+O{}+.
+The former behavior of respecting spaces can be preserved by adding a \flqq\verb+!+\frqq.
+Note that the following code uses \verb+!O{}+ now.
+\begin{itemize}
+\item For older |xparse| versions, the following code is correct when using \verb+O{}+.
+\item For |xparse| of 2018-05-12, only the first two examples of
+ the following code using \verb+O{}+ are really \flqq good\frqq\ -- all others do not work.
+\item For |xparse| of 2018-05-12 and later, the following code is correct when using \verb+!O{}+.
+\end{itemize}
+\end{marker}
+
+\begin{dispListing*}{title={Caveats of using an environment ending with an
+ optional argument},fonttitle=\bfseries}
+\DeclareTCBListing{mybox}{ !O{} }{listing only,#1}
+
+\begin{mybox}[colframe=red]
+\good
+\end{mybox}
+
+\begin{mybox}[colframe=red]\good\end{mybox}
+
+\begin{mybox}
+\good
+\end{mybox}
+
+\begin{mybox} \good\end{mybox}
+
+\begin{mybox}\bad!\end{mybox}
+
+\begin{mybox}
+[\good]
+\end{mybox}
+
+\begin{mybox} [\good]\end{mybox}
+
+\begin{mybox}[\bad!]\end{mybox}
+\end{dispListing*}
+
+
+\clearpage
+\subsection{Producing \texttt{tcbinputlisting} Commands}\label{subsec:listings_inputlisting}
+\enlargethispage*{1cm}
+
\begin{docCommand}{newtcbinputlisting}{\oarg{init options}\brackets{\texttt{\textbackslash}\rmfamily\meta{name}}\oarg{number}\oarg{default}\marg{options}}
Creates a new macro \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
- Basically, |\newtcbinputlisting| operates like |\newcommand|.
+ Basically, \refCom{newtcbinputlisting} operates like |\newcommand|.
The new macro \texttt{\textbackslash}\meta{name} optionally takes \meta{number} arguments, where
\meta{default} is the default value for the optional first argument.
- The \meta{options} are given to the underlying |tcbinputlisting|.
+ The \meta{options} are given to the underlying \refCom{tcbinputlisting}.
The \meta{init options} allow setting up automatic numbering,
see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.
@@ -319,6 +424,46 @@ This is my \LaTeX\ box.
An existing macro is redefined.
\end{docCommand}
+\clearpage
+
+\begin{docCommand}{DeclareTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
+ Basically, |\DeclareTCBInputListing| operates like |\DeclareDocumentCommand|. This means,
+ the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
+ The \meta{options} are given to the underlying \refCom{tcbinputlisting}.\\
+ The \meta{init options} allow setting up automatic numbering,
+ see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
+ The new command is always created, irrespective of an already existing
+ command with the same name.
+
+\begin{dispExample}
+% counter from previous example
+\DeclareTCBInputListing[use counter from=pabox]{\mylisting}{ O{} O{red} m }{%
+ listing file={#3},title=Listing~\thetcbcounter,
+ colback=#2!5!white,colframe=#2!50!black,colbacktitle=#2!75!black,
+ fonttitle=\bfseries,listing only,#1}
+
+\mylisting[before upper=\textit{This is the included file content:}]
+ [blue]{\jobname.tcbtemp}
+\end{dispExample}
+ \end{docCommand}
+
+\begin{docCommand}{NewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
+\end{docCommand}
+
+\begin{docCommand}{RenewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
+ An existing command is redefined.
+\end{docCommand}
+
+\begin{docCommand}{ProvideTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
+ Operates like \refCom{DeclareTCBInputListing}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
+ The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
+\end{docCommand}
+
+
\clearpage
\subsection{Option Keys of the \mylib{listings} Library}\label{sec:speclistingkeys}
@@ -341,8 +486,8 @@ and in compiled form. Additionally, we use line numbers here.
\begin{docTcbKey}{no listing options}{}{no value, initially unset}
Abbreviation for |listing options={}|.
This removes all options for the |listings| package.
- This includes the |tcblisting| standard style |tcblatex| and the encoding presets.
- Use this option, if you want to set the |listings| options outside of |tcblisting|, e.\,g.\ globally in
+ This includes the \refEnv{tcblisting} standard style |tcblatex| and the encoding presets.
+ Use this option, if you want to set the |listings| options outside of \refEnv{tcblisting}, e.\,g.\ globally in
the preamble.
\begin{dispExample}
\begin{tcblisting}{no listing options}
@@ -419,7 +564,7 @@ cd /usr/lib
See further options in \Vref{sec:commonlistingkeys}.
\begin{marker}
-For an combined example of using |\lstinline| inside a |tcolorbox|, see
+For an combined example of using |\lstinline| inside a \refEnv{tcolorbox}, see
\refCom{DeclareTotalTCBox}.
\end{marker}
@@ -693,7 +838,7 @@ This is a \LaTeX\ example.
\begin{docTcbKey}[][doc new=2014-11-14]{comment style}{=\meta{options}}{no default, initially empty}
Sets the \meta{options} for \refKey{/tcb/tcbimage comment} and \refKey{/tcb/pdf comment}.
- These are |tcolorbox| options to customize the colored box drawn around the
+ These are \refEnv{tcolorbox} options to customize the colored box drawn around the
image(s), also image options encapsulated by \refKey{/tcb/graphics options},
and \refEnv{tcbraster} options for \refKey{/tcb/pdf comment}.
\end{docTcbKey}
@@ -755,10 +900,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing outside text}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and as compiled text outside the box in the right part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -771,10 +916,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{text outside listing}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and as compiled text outside the box in the left part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -814,10 +959,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{listing outside comment}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and a given comment outside the box in the right part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -830,10 +975,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{comment outside listing}{}{no value}
-Typesets the environment content side by side as listing in a |tcolorbox|
+Typesets the environment content side by side as listing in a \refEnv{tcolorbox}
and a given comment outside the box in the left part of the page.
Nevertheless, the outside text is treated as \emph{lower} part of the
-|tcolorbox| and can be formatted with all lower part options.
+\refEnv{tcolorbox} and can be formatted with all lower part options.
The space partitioning is done with the side by side options from
\Fullref{sec:sidebyside}.
\begin{dispExample}
@@ -847,10 +992,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing above text}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and as compiled text outside and below the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and text is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing above text}
@@ -870,10 +1015,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{text above listing}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and as compiled text outside and above the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and text is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,text above listing}
@@ -893,10 +1038,10 @@ This is a \LaTeX\ example.
\begin{docTcbKey}{listing above comment}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and a given comment outside and below the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and comment is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing above comment,
@@ -917,10 +1062,10 @@ This is a \LaTeX\ example.
\clearpage
\begin{docTcbKey}{comment above listing}{}{no value}
- Typesets the environment content as listing in a |tcolorbox|
+ Typesets the environment content as listing in a \refEnv{tcolorbox}
and a given comment outside and above the box.
The outside text is treated as \emph{lower} part of the
- |tcolorbox| and can be formatted with all lower part options.
+ \refEnv{tcolorbox} and can be formatted with all lower part options.
The distance between box and comment is controlled by \refKey{/tcb/middle}.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,comment above listing,
@@ -942,7 +1087,7 @@ This is a \LaTeX\ example.
\clearpage
\subsection{Option Keys for Processing and Full Document Examples}\label{sec:proclistingkeys}
A complete \LaTeX\ document including |\documentclass|, |\begin{document}|
-and |\end{document}| cannot be processed directly by |tcolorbox|.
+and |\end{document}| cannot be processed directly by \refEnv{tcolorbox}.
It always has to be compiled separately. There are two methods supported
by the package to process and display such a full document example:
\begin{itemize}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 4c4a85dce1..6d9c15c834 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -3,6 +3,10 @@
\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.7em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.2em}{3.2em}}
+% prevent hypdoc from loading (sets hyperindex=false)
+\@namedef{ver@hypdoc.sty}{9999/12/31}
+\@namedef{opt@hypdoc.sty}{hypdoc}
+
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
index b01c299e0c..4783b10bc0 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
@@ -245,12 +245,7 @@ methods from \Fullref{subsec:sidebyside_xparse}.
\clearpage
-\subsection{Advanced Settings from the \mylib{xparse} Library}\label{subsec:sidebyside_xparse}
-
-\begin{marker}
-All following macros and options need the \mylib{xparse} library to be
-loaded, see \Fullref{sec:xparse}.
-\end{marker}
+\subsection{Advanced Settings}\label{subsec:sidebyside_xparse}
\begin{docCommand}[doc new=2015-11-20]{tcbsidebyside}{\oarg{options}\marg{left-handed content}\marg{right-handed content}}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
index 5e039aee63..ece3b4bc35 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
@@ -633,7 +633,7 @@ git commit -am 'changes to my example'
\begin{tcolorbox}[bicolor,
frame style={preaction={fill=blue!50!black},
pattern=checkerboard,pattern color=blue!50!gray},
- fonttitle=\bfseries,
+ fonttitle=\bfseries, overlaplower=0mm,
colback=blue!10, colbacklower=white, opacitybacklower=0.65,
title={Example for a semilucent lower part}]
This is the upper part.
@@ -644,6 +644,49 @@ And that is the lower part.
\clearpage
+\begin{docTcbKey}[][doc new=2022-01-11]{overlaplower}{=\meta{length}}{no default, initially \texttt{0.1mm}}
+ The backgrounds of the lower parts for the skin families \enquote{bicolor}, \enquote{tile}, and \enquote{beamer}
+ are drawn differently than the backgrounds of the upper parts. If the distance between these
+ backgrounds of upper and lower parts is |0pt|, some previewers show the
+ frame color as thin line between upper and lower part. To avoid this glitch,
+ the lower part is drawn with an overlap of \meta{length} over the upper part.\par
+ This value can be adapted for special applications. For example,
+ semilucent lower parts better use |0pt|, see \refKey{/tcb/opacitybacklower}.
+ Also see \refCom{tcboverlaplower} for using a larger value.
+\end{docTcbKey}
+
+
+\begin{docCommand}[doc new=2022-01-11]{tcboverlaplower}{}
+ Macro which contains the length value set by \refKey{/tcb/overlaplower}.
+ May be used for fine positioning at the segmentation between upper and
+ lower part and should be seen \emph{read-only}.
+
+\begin{dispExample}
+\begin{tcolorbox}[bicolor, sharp corners,
+ colframe=blue!50!black, colback=blue!10, colbacklower=red!10,
+ top=5mm, bottom=2mm, middle=3.5mm, overlaplower=1.5mm,
+ underlay={
+ \node[minimum width=1cm,minimum height=0.5cm,outer sep=auto,
+ anchor=north east,fill=white] at (interior.north east)
+ {\itshape\small upper};
+ \node[minimum width=1cm,minimum height=0.5cm,outer sep=auto,
+ anchor=north east,fill=white]
+ at ([yshift=\tcboverlaplower]segmentation.east)
+ {\itshape\small lower};
+ }
+ ]
+This is the upper part.
+\tcblower
+And that is the lower part.
+\end{tcolorbox}
+\end{dispExample}
+
+\end{docCommand}
+
+
+
+\clearpage
+
\begin{docSkin}{bicolorfirst}
This is a flavor of \refSkin{bicolor} which is used as a \emph{first} part
in a break sequence for \refSkin{bicolor}.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
index 21e8153de4..9b1155ddc5 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
@@ -748,7 +748,7 @@ considered to be \textit{read-only} and should never be redefined by the user.
\begin{docCommand}[doc new=2017-04-25]{tcbsegmentstate}{}
- This macro contains |0|, |1|, or |2|. Itis set for every unbroken box and every broken partial box
+ This macro contains |0|, |1|, or |2|. It is set for every unbroken box and every broken partial box
with the following meaning:
\begin{itemize}
\item\docValue{0}: The current (partial) box contains only an upper part.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
index 43b623d6ca..280d91bd56 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
@@ -7,635 +7,14 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{xparse}
\end{dispListing}
-This also loads the package |xparse| \cite{latexproject:xparse}.
+This loads the package |xparse| \cite{latexproject:xparse}.
-The purpose of this library is to give comfortable access to the
-powerful document command production with |xparse| for |tcolorbox|.
-See the |xparse| package documentation \cite{latexproject:xparse}
-for details about the argument \meta{specification} used in this section.
+Note that up to version 5.0.2 this library contained code which
+needed the |xparse| package. Since nowadays this package has become
+basically a part of the \LaTeX\ kernel, the code of the library was
+migrated to other parts of the |tcolorbox| package. So, the remaining
+library is nearly a stub which only loads |xparse|.
-%\subsection{Producing Document Commands With \texttt{xparse}}
-
-
-\subsection{Option Keys}\label{subsec:xparse_options}
-
-\begin{docTcbKey}{verbatim}{}{style, no value}
- Sets options for a \textit{verbatim} style \refCom{tcbox}.
- Since the indented boxes may contain only very few words, the
- dimensions are made smaller and \refKey{/tcb/nobeforeafter}
- and \refKey{/tcb/tcbox raise base} are set.
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-\DeclareTotalTCBox{\myverb}{ v }{verbatim,
- colframe=red!75!black,colupper=blue}{#1}
-
-\myverb{\textbf} is a \myverb{\LaTeX} command.
-\end{dispExample*}
-\end{docTcbKey}
-
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfNoValueTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfNoValueT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfNoValueF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfNoValue(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} has no value, the \meta{true options} are set.
- Otherwise, the \meta{false options} are set.
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,
- IfNoValueTF={#1}{colback=red!5!white}{enhanced,interior style image=#1}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[goldshade.png]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-\clearpage
-
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfValueTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfValueT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfValueF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfValue(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} has a value, the \meta{true options} are set.
- Otherwise, the \meta{false options} are set.
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ o }{colframe=red!75!black,colback=red!5!white,
- IfValueT={#1}{title={\flqq #1\frqq},fonttitle=\bfseries}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[My title]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-\medskip
-
-\begin{docTcbKeys}[doc description = {no default}]
- {
- {
- doc name = IfBooleanTF,
- doc parameter = {=\marg{argument}\marg{true options}\marg{false options}},
- },
- {
- doc name = IfBooleanT,
- doc parameter = {=\marg{argument}\marg{true options}},
- doc new = 2020-09-16,
- },
- {
- doc name = IfBooleanF,
- doc parameter = {=\marg{argument}\marg{false options}},
- doc new = 2020-09-16,
- }
- }
- Wraps the |\IfBoolean(TF)| command(s) of |xparse| for option setting.
- If the \meta{argument} is |\BooleanTrue|, the \meta{true options} are set.
- If the \meta{argument} is |\BooleanFalse|, the \meta{false options} are set.
-
-\begin{dispExample}
-\DeclareTColorBox{mybox}{ s }{colframe=red!75!black,
- IfBooleanTF={#1}{colback=yellow!50!red}{colback=red!5!white}}
-
-\begin{mybox}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}*
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docTcbKeys}
-
-
-
-\clearpage
-\subsection{Producing \texttt{tcolorbox} Environments and Commands}\label{subsec:xparse_tcolorbox}
-
-\begin{docCommand}{DeclareTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Creates a new environment \meta{name} based on \refEnv{tcolorbox}.\\
- Basically, |\DeclareTColorBox| operates like |\DeclareDocumentEnvironment|. This means,
- the new environment \meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcolorbox}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new environment is always created, irrespective of an already existing
- environment with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTColorBox[use counter from=pabox]{mybox}{ O{red} m d"" !O{} }
- {enhanced,colframe=#1!75!black,colback=#1!5!white,
- fonttitle=\bfseries,title={\thetcbcounter~#2},
- IfValueT={#3}{watermark text={#3}},#4}
-
-\begin{mybox}{My title}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[blue]{My title}
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[green]{My title}"My Watermark"
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[yellow]{My title}[colbacktitle=yellow!50!white,coltitle=black]
-This is a tcolorbox.
-\end{mybox}
-
-\begin{mybox}[purple]{My title}"All together"[coltitle=yellow]
-This is a tcolorbox.
-\end{mybox}
-\end{dispExample}
-\end{docCommand}
-
-\clearpage
-\begin{docCommand}{NewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An error is issued if \meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An existing environment is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTColorBox}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTColorBox}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- The environment \meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refEnv{tcolorbox}.
- In contrast to \refCom{DeclareTColorBox}, also the \meta{content} of the |tcolorbox| is specified.\\
- Basically, |\DeclareTotalTColorBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcolorbox} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-\DeclareTotalTColorBox{\diabox}{ O{} v m }
- { bicolor,nobeforeafter,equal height group=diabox,width=5.7cm,
- fonttitle=\bfseries\ttfamily,adjusted title={#2},center title,
- colframe=blue!20!black,leftupper=0mm,rightupper=0mm,colback=black!75!white,#1}
- { \tikz\path[fill zoom image={#2}] (0,0) rectangle (\linewidth,4cm);%
- \tcblower#3}
-
-\diabox{blueshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
-\diabox{goldshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
-
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTColorBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTColorBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-\subsection{Producing \texttt{tcbox} Commands}\label{subsec:xparse_tcbox}
-
-
-\begin{docCommand}{DeclareTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
- Basically, |\DeclareTCBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbox}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTCBox[use counter from=pabox]{\mybox}{ s m s }
-{ nobeforeafter,colback=red!5!white,colframe=red!75!black,
- title={#2 (Box \thetcbcounter)},fonttitle=\bfseries,
- IfBooleanT={#1}{enhanced,drop shadow},
- IfBooleanT={#3}{colbacktitle=red!50!white} }
-
-\mybox{Bird}{This is my first box.}
- \hfill
-\mybox*{Tree}{This is my second box.}
- \par\bigskip
-\mybox{Bike}*{This is my third box.}
- \hfill
-\mybox*{City}*{This is my fourth box.}
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbox}.
- In contrast to \refCom{DeclareTCBox}, also the \meta{content} of the |tcbox| is specified.\\
- Basically, |\DeclareTotalTCBox| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbox} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-\DeclareTotalTCBox{\myverb}{ O{red} v !O{} }
-{ fontupper=\ttfamily,nobeforeafter,tcbox raise base,arc=0pt,outer arc=0pt,
- top=0pt,bottom=0pt,left=0mm,right=0mm,
- leftrule=0pt,rightrule=0pt,toprule=0.3mm,bottomrule=0.3mm,boxsep=0.5mm,
- colback=#1!10!white,colframe=#1!50!black,#3}{#2}
-
-To set a word \textbf{bold} in \myverb{\LaTeX}, use
-\myverb[green]{\textbf{bold}}. Alternatively, write
-\myverb[yellow]{{\bfseries bold}}.
-In \myverb[blue]{\LaTeX}[enhanced,fuzzy halo], other font settings are
-done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
-or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
-\end{dispExample}
-
-The next example uses |\lstinline| from the |listings| package to
-typeset the verbatim content.
-
-\begin{dispExample}
-% \usepackage{listings} or \tcbuselibrary{listings}
-\DeclareTotalTCBox{\commandbox}{ s v }
-{verbatim,colupper=white,colback=black!75!white,colframe=black}
-{\IfBooleanT{#1}{\textcolor{red}{\ttfamily\bfseries > }}%
- \lstinline[language=command.com,keywordstyle=\color{blue!35!white}\bfseries]^#2^}
-
-\commandbox*{cd "My Documents"} changes to directory \commandbox{My Documents}.
-
-\commandbox*{dir /A} lists the directory content.
-
-\commandbox*{copy example.txt d:\target} copies \commandbox{example.txt} to
- \commandbox{d:\target}.
-\end{dispExample}
-\end{docCommand}
-
-\clearpage
-\begin{docCommand}{NewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTCBox}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBox}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\begin{docCommand}{tcboxverb}{\oarg{options}\marg{verbatim box content}}
- Creates a colored box based on \refCom{tcbox} which is fitted to the width of the given
- \meta{verbatim box content}.
- The underlying \refCom{tcbox} is styled with
- \refKey{/tcb/verbatim} plus the given \meta{options}.
- The difference to \refCom{tcbox} is that the \meta{verbatim box content} is
- interpreted \textit{verbatim}. Therefore, |\tcboxverb| acts similar to |\verb|.
-
-\begin{dispExample}
-\tcboxverb{\LaTeX}, \tcboxverb[colback=blue!10!white,colupper=blue]{\LaTeX},
-\tcboxverb[blank,fuzzy halo]{\LaTeX}, \tcboxverb[beamer]{\LaTeX},
-\tcboxverb[enhanced,skin=enhancedmiddle jigsaw,colframe=red]{\LaTeX}.
-\end{dispExample}
-\end{docCommand}
-
-
-
-
-\clearpage
-\subsection{Producing \texttt{tcblisting} Environments}\label{subsec:xparse_listing}
-\begin{marker}
-Besides \mylib{xparse}, the following commands also need the \mylib{listings} library to be included.
-\end{marker}
-
-\begin{docCommand}{DeclareTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Creates a new environment \meta{name} based on \refEnv{tcblisting}.\\
- Basically, |\DeclareTCBListing| operates like |\DeclareDocumentEnvironment|. This means,
- the new environment \meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refEnv{tcblisting}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new environment is always created, irrespective of an already existing
- environment with the same name.
-
-\begin{dispExample*}{sbs,lefthand ratio=0.5}
-\DeclareTCBListing{mybox}{ s O{} m }{%
- colback=red!5!white,
- colframe=red!75!black,
- fonttitle=\bfseries,
- IfBooleanTF={#1}
- {listing side text}
- {text side listing},
- title={#3},#2}
-
-\begin{mybox}{Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\bigskip
-
-\begin{mybox}*{Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\bigskip
-
-\begin{mybox}[colback=yellow]
- {Listing Box}
-This is my
-\LaTeX\ box.
-\end{mybox}
-\end{dispExample*}
-\end{docCommand}
-
-
-
-\begin{docCommand}{NewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\NewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An error is issued if \meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\RenewDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- An existing environment is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBListing}{\oarg{init options}\marg{name}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBListing}, but based on |\ProvideDocumentEnvironment| instead of |\DeclareDocumentEnvironment|.
- The environment \meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-\clearpage
-
-
-\begin{marker}
-With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
-changed the argument collection process.
-Now, spaces are ignored which leads to a serious change for listing environments
-ending with an optional argument like \verb+O{}+.
-The former behavior of respecting spaces can be preserved by adding a \flqq\verb+!+\frqq.
-Note that the following code uses \verb+!O{}+ now.
-\begin{itemize}
-\item For older |xparse| versions, the following code is correct when using \verb+O{}+.
-\item For |xparse| of 2018-05-12, only the first two examples of
- the following code using \verb+O{}+ are really \flqq good\frqq\ -- all others do not work.
-\item For |xparse| of 2018-05-12 and later, the following code is correct when using \verb+!O{}+.
-\end{itemize}
-\end{marker}
-
-
-
-
-
-\begin{dispListing*}{title={Caveats of using an environment ending with an
- optional argument},fonttitle=\bfseries}
-\DeclareTCBListing{mybox}{ !O{} }{listing only,#1}
-
-\begin{mybox}[colframe=red]
-\good
-\end{mybox}
-
-\begin{mybox}[colframe=red]\good\end{mybox}
-
-\begin{mybox}
-\good
-\end{mybox}
-
-\begin{mybox} \good\end{mybox}
-
-\begin{mybox}\bad!\end{mybox}
-
-\begin{mybox}
-[\good]
-\end{mybox}
-
-\begin{mybox} [\good]\end{mybox}
-
-\begin{mybox}[\bad!]\end{mybox}
-\end{dispListing*}
-
-\clearpage
-\subsection{Producing \texttt{tcbinputlisting} Commands}\label{subsec:xparse_inputlisting}
-\begin{marker}
-The following commands need the \mylib{listings} library to be included.
-\end{marker}
-
-
-\begin{docCommand}{DeclareTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcbinputlisting}.
- Basically, |\DeclareTCBInputListing| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcbinputlisting}.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% counter from previous example
-\DeclareTCBInputListing[use counter from=pabox]{\mylisting}{ O{} O{red} m }{%
- listing file={#3},title=Listing~\thetcbcounter,
- colback=#2!5!white,colframe=#2!50!black,colbacktitle=#2!75!black,
- fonttitle=\bfseries,listing only,#1}
-
-\mylisting[before upper=\textit{This is the included file content:}]
- [blue]{\jobname.tcbtemp}
-\end{dispExample}
- \end{docCommand}
-
-\begin{docCommand}{NewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBInputListing}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBInputListing}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-
-\clearpage
-\subsection{Producing \texttt{tboxfit} Commands}\label{subsec:xparse_tcboxfit}
-\begin{marker}
-The following commands need the \mylib{fitting} library to be included.
-\end{marker}
-
-\begin{docCommand}{DeclareTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
- Basically, |\DeclareTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcboxfit}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample*}{sbs,lefthand ratio=0.6}
-% \usepackage{lipsum}
-
-\DeclareTCBoxFit{\mybox}{ O{} m !o }
- {colback=red!5!white,
- colframe=red!75!black,
- width=#2,height=#2/3*2,
- IfValueT={#3}{height=#3},
- #1}
-
-\mybox[colback=yellow]{5cm}%
- {\lipsum[2]}
-
-\mybox[colback=yellow]{5cm}[4cm]{\lipsum[2]}
-\end{dispExample*}
-\end{docCommand}
-
-\begin{docCommand}{NewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}}
- Operates like \refCom{DeclareTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
-
-\clearpage
-
-\begin{docCommand}{DeclareTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Creates a new command \texttt{\textbackslash}\meta{name} based on \refCom{tcboxfit}.
- In contrast to \refCom{DeclareTCBoxFit}, also the \meta{content} of the |tcboxfit| is specified.\\
- Basically, |\DeclareTotalTCBoxFit| operates like |\DeclareDocumentCommand|. This means,
- the new command \texttt{\textbackslash}\meta{name} is constructed with the given argument \meta{specification}.
- The \meta{options} are given to the underlying \refCom{tcboxfit} which is filled with
- the specified \meta{content}.\\
- Note that \refKey{/tcb/savedelimiter} is set to the given \meta{name}
- automatically.\\
- The \meta{init options} allow setting up automatic numbering,
- see Section \ref{sec:initkeys} from page \pageref{sec:initkeys}.\\
- The new command is always created, irrespective of an already existing
- command with the same name.
-
-\begin{dispExample}
-% \usepackage{lipsum}
-
-\DeclareTotalTCBoxFit{\multibox}{ O{} m O{10} m }
- {nobeforeafter,colback=red!5!white,colframe=red!75!black,width=#2,height=#2/3*2,
- valign=center,#1}
- { \foreach \n in {1,...,#3} { #4} }
-
-\multibox{5cm}{I shall not repeat.}
-\multibox[colframe=blue!75!white]{5cm}[20]{I shall not repeat.}\\
-\multibox[colback=yellow,height=5cm]{14cm}[100]{I shall not repeat.}
-\end{dispExample}
-\end{docCommand}
-
-\begin{docCommand}{NewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\NewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An error is issued if \texttt{\textbackslash}\meta{name} has already been defined.
-\end{docCommand}
-
-\begin{docCommand}{RenewTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\RenewDocumentCommand| instead of |\DeclareDocumentCommand|.
- An existing command is redefined.
-\end{docCommand}
-
-\begin{docCommand}{ProvideTotalTCBoxFit}{\oarg{init options}\brackets{\texttt{\textbackslash}\meta{name}}\marg{specification}\marg{options}\marg{content}}
- Operates like \refCom{DeclareTotalTCBoxFit}, but based on |\ProvideDocumentCommand| instead of |\DeclareDocumentCommand|.
- The command \texttt{\textbackslash}\meta{name} is only created if it is not already defined.
-\end{docCommand}
+Instead of including the |xparse| library, it is recommended to include the
+|xparse| package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
+essentially everything needed). The library is kept for compatibility.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index 5d613e89a5..b93a509ec4 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index a836c92d46..70f5d5996d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,8 +1,8 @@
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,9 +17,9 @@
%%
%% This work consists of all files listed in README
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tcolorbox}[2022/01/07 version 5.0.2 text color boxes]
-\def\tcb@version{5.0.2}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{tcolorbox}[2022/06/22 version 5.1.0 text color boxes]
+\def\tcb@version{5.1.0}
\RequirePackage{pgf}[2008/01/15]
\RequirePackage{verbatim}[2003/08/22]
@@ -378,6 +378,8 @@
}},
beforeafter skip/.style={before skip={#1},after skip={#1}},
before nobreak/.store in=\kvtcb@beforebox@nobreak,
+ before float/.store in=\kvtcb@beforefloat,
+ after float/.store in=\kvtcb@afterfloat,
lowerbox/.is choice,
lowerbox/visible/.code={\tcb@lowerignoredfalse\tcb@lowervisibletrue},
lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse},
@@ -591,7 +593,14 @@
skin first is subskin of/.style 2 args={skin@local@first/.style={skin@#1,#2},skin first=local@first},%
skin middle is subskin of/.style 2 args={skin@local@middle/.style={skin@#1,#2},skin middle=local@middle},%
skin last is subskin of/.style 2 args={skin@local@last/.style={skin@#1,#2},skin last=local@last},%
- parbox/.store in=\kvtcb@parbox,
+ parbox/.is choice,
+ parbox/true/.code={%
+ \def\kvtcb@parbox{true}%
+ },
+ parbox/false/.code={%
+ \def\kvtcb@parbox{false}%
+ \appto\tcb@lateoptions@hook{\csname tcb@parbox@\kvtcb@parbox @indent\endcsname}%
+ },
parbox/.default=true,%
hyphenationfix/.is choice,%
hyphenationfix/.default=true,%
@@ -717,6 +726,41 @@
sidebyside align/center seam/.code={\def\kvtcb@sbs@align{center}\let\tcb@box@align\tcb@box@align@center},%
sidebyside align/bottom seam/.code={\def\kvtcb@sbs@align{bottom}\let\tcb@box@align\tcb@box@align@bottom},%
sidebyside gap/.dimstore in=\kvtcb@sbs@gap,%
+ sidebyside adapt/.is choice,
+ sidebyside adapt/none/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\let\tcb@sbs@content\tcb@sbs@content@none},
+ }%
+ },
+ sidebyside adapt/left/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@upper\let\tcb@sbs@content\tcb@sbs@content@left},
+ lefthand width=\wd\tcb@upperbox,
+ }%
+ },
+ sidebyside adapt/right/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@right},
+ righthand width=\wd\tcb@lowerbox,
+ }%
+ },
+ sidebyside adapt/both/.style={%
+ sidebyside@adapt@process/.style={%
+ code={\tcb@sbs@save@upper\tcb@sbs@save@lower\let\tcb@sbs@content\tcb@sbs@content@both},
+ text width=\wd\tcb@upperbox+\kvtcb@sbs@gap+\wd\tcb@lowerbox,
+ lefthand width=\wd\tcb@upperbox,
+ }%
+ },
+ sidebyside switch/.is choice,
+ sidebyside switch/true/.style={%
+ sidebyside@switch/.code={%
+ \tcb@swap{\tcb@sbs@text@left}{\tcb@sbs@text@right}
+ }%
+ },
+ sidebyside switch/false/.style={%
+ sidebyside@switch/.style=%
+ },
+ sidebyside switch/.default=true,
lefthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftwidth},
righthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightwidth},
lefthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftratio},
@@ -824,9 +868,31 @@
verbatim ignore percent/true/.code={\def\tcb@verbatim@change@percent{\catcode`\^^e=9}},
verbatim ignore percent/false/.code={\let\tcb@verbatim@change@percent\@empty},
verbatim ignore percent/.default=true,
+ verbatim/.style={fontupper=\ttfamily,nobeforeafter,tcbox raise base,top=0pt,bottom=0pt,left=1mm,right=1mm,boxrule=0.3mm},
wrap@environment/.is if=tcb@wrap@environment,
}
+\ExplSyntaxOn
+\tcbset
+ {
+ IfBlankTF/.code~n~args={3}{\tl_if_blank:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfBlankT/.code~n~args={2}{\tl_if_blank:nT{#1}{\pgfkeysalso{#2}}},
+ IfBlankF/.code~n~args={2}{\tl_if_blank:nF{#1}{\pgfkeysalso{#2}}},
+ IfEmptyTF/.code~n~args={3}{\tl_if_empty:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfEmptyT/.code~n~args={2}{\tl_if_empty:nT{#1}{\pgfkeysalso{#2}}},
+ IfEmptyF/.code~n~args={2}{\tl_if_empty:nF{#1}{\pgfkeysalso{#2}}},
+ IfNoValueTF/.code~n~args={3}{\tl_if_novalue:nTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfNoValueT/.code~n~args={2}{\tl_if_novalue:nT{#1}{\pgfkeysalso{#2}}},
+ IfNoValueF/.code~n~args={2}{\tl_if_novalue:nF{#1}{\pgfkeysalso{#2}}},
+ IfValueTF/.code~n~args={3}{\tl_if_novalue:nTF{#1}{\pgfkeysalso{#3}}{\pgfkeysalso{#2}}},
+ IfValueT/.code~n~args={2}{\tl_if_novalue:nF{#1}{\pgfkeysalso{#2}}},
+ IfValueF/.code~n~args={2}{\tl_if_novalue:nT{#1}{\pgfkeysalso{#2}}},
+ IfBooleanTF/.code~n~args={3}{\IfBooleanTF{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}},
+ IfBooleanT/.code~n~args={2}{\IfBooleanT{#1}{\pgfkeysalso{#2}}},
+ IfBooleanF/.code~n~args={2}{\IfBooleanF{#1}{\pgfkeysalso{#2}}},
+ }
+\ExplSyntaxOff
+
\def\kvtcb@beforebox{}
\def\kvtcb@afterbox{}
@@ -838,10 +904,16 @@
\fi%
}
+\def\tcb@parbox@true@indent{}%
+\def\tcb@parbox@false@indent{%
+ \preto\kvtcb@before@title{\noindent}%
+ \preto\kvtcb@before@upper{\noindent}%
+ \preto\kvtcb@before@lower{\noindent}%
+}%
+
\let\tcb@parboxrestore=\@parboxrestore
\def\tcb@parbox@false@settings{%
- \noindent%
\linewidth\hsize%
\@totalleftmargin\z@%
\leftskip\z@skip%
@@ -926,7 +998,7 @@
\ifx\kvtcb@title\@empty\tcb@hasTitlefalse\tcb@specialtitle@hook\else%
\tcb@hasTitletrue%
\tcbdimto\tcb@w@title{\kvtcb@width-(\kvtcb@left@rule+\kvtcb@right@rule+(\kvtcb@boxsep)*2+\kvtcb@lefttitle+\kvtcb@righttitle)}%
- \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}%
+ \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\tcb@lua@color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}%
\fi%
}
@@ -983,6 +1055,18 @@
\fi%
}
+\def\tcb@sbs@content@none{\tcb@sbs@text@left\tcblower\tcb@sbs@text@right}
+\def\tcb@sbs@content@left{\box\tcb@upperbox\tcblower\tcb@sbs@text@right}
+\def\tcb@sbs@content@right{\tcb@sbs@text@left\tcblower\box\tcb@lowerbox}
+\def\tcb@sbs@content@both{\box\tcb@upperbox\tcblower\box\tcb@lowerbox}
+
+\def\tcb@sbs@save@upper{%
+ \sbox{\tcb@upperbox}{\color{tcbcolupper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper\tcb@sbs@text@left\tcb@insert@after@upper}%
+}
+\def\tcb@sbs@save@lower{%
+ \sbox{\tcb@lowerbox}{\color{tcbcollower}\kvtcb@fontlower\kvtcb@halignlower\tcb@insert@before@lower\tcb@sbs@text@right\tcb@insert@after@lower}%
+}
+
\def\tcb@set@color#1{%
\edef\current@color{\@nameuse{\string\color@#1}}%
\colorlet{.}{#1}%
@@ -1829,8 +1913,8 @@
\ifx\kvtcb@float\@empty%
\tcb@set@normal@unbroken@beforeafter%
\else%
- \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@everyfloat}%
- \let\tcb@after@unbroken=\tcb@float@env@end%
+ \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@beforefloat\noexpand\kvtcb@everyfloat}%
+ \def\tcb@after@unbroken{\kvtcb@afterfloat\tcb@float@env@end}%
\fi%
\setcounter{tcbbreakpart}{1}%
% computation of total height
@@ -2048,44 +2132,198 @@
\kvtcb@init@hook%
}%
-\long\def\tcb@process@newtcolorbox#1#2{%
- \edef\tcb@new@boxname{#1}%
- \def\tcb@new@colopt{}%
- \long\def\temp@a{#2}%
- \ifx\temp@a\@empty\relax%
- \else%
- \tcb@proc@options@init{#2}{#1}%
- \fi%
- \preto\tcb@new@colopt{savedelimiter=#1}%
- \cslet{tcb@opt@#1}{\tcb@new@colopt}%
- \tcb@process@newtcolorbox@continue{#1}%
-}
-\newcommand\tcb@process@newenvironment[2][]{%
- \tcb@process@newtcolorbox{#2}{#1}%
-}
+\ExplSyntaxOn
+
+\cs_new:Npn \__tcobox_process_newtcolorbox:nn #1#2
+ {
+ \edef\tcb@new@boxname{#2}
+ \def\tcb@new@colopt{}
+ \tl_if_novalue:nF { #1 }
+ {
+ \tcb@proc@options@init{#1}{#2}
+ }
+ \preto\tcb@new@colopt{savedelimiter=#2}
+ \exp_args:Nc \cs_set_eq:NN { tcb@opt@#2 } \tcb@new@colopt
+ }
-\long\def\tcb@newtcolorbox#1#2{\tcb@newenvironment{#1}{\tcolorbox[#2,options@for=#1]}{\endtcolorbox}}
-\long\def\tcb@newtcolorbox@#1[#2]#3{\tcb@newenvironment{#1}[#2]{\tcolorbox[#3,options@for=#1]}{\endtcolorbox}}
+\cs_new:Npn \__tcobox_set_backslash_removed:Nn #1#2
+ {
+ \tl_set:Nn #1 { #2 }
+ \tl_trim_spaces:N #1
+ \tl_set:Nx #1 { \exp_last_unbraced:NV \cs_to_str:N #1 }
+ }
-\long\def\tcb@newtcolorbox@@#1[#2][#3]#4{\tcb@newenvironment{#1}[#2][#3]{\tcolorbox[#4,options@for=#1]}{\endtcolorbox}}
-\long\def\tcb@new@tcolorbox@#1[#2]{%
- \@ifnextchar[{\tcb@newtcolorbox@@{#1}[#2]}{\tcb@newtcolorbox@{#1}[#2]}}
+\NewDocumentCommand \__tcobox_new_tcolorbox:w { m +o m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ #1 { #3 }{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ #1 { #3 }[ #4 ]{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ {
+ #1 { #3 }[ #4 ][ #5 ]{ \tcolorbox[#6,options@for=#3] }{ \endtcolorbox }
+ }
+ }
+ }
+\NewDocumentCommand \newtcolorbox { }
+ {
+ \__tcobox_new_tcolorbox:w \newenvironment
+ }
+\NewDocumentCommand \renewtcolorbox { }
+ {
+ \__tcobox_new_tcolorbox:w \renewenvironment
+ }
-\def\tcb@new@tcolorbox#1{%
- \@ifnextchar[{\tcb@new@tcolorbox@{#1}}{\tcb@newtcolorbox{#1}}}
-\def\newtcolorbox{%
- \let\tcb@newenvironment\newenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
- \tcb@process@newenvironment}
+\NewDocumentCommand \__tcobox_new_TColorBox:w { m +o m +m +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ #1 { #3 }{ #4 }{ \tcolorbox[#5,options@for=#3] }{ \endtcolorbox }
+ }
+\NewDocumentCommand \DeclareTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \DeclareDocumentEnvironment
+ }
+\NewDocumentCommand \NewTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \NewDocumentEnvironment
+ }
+\NewDocumentCommand \RenewTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \RenewDocumentEnvironment
+ }
+\NewDocumentCommand \ProvideTColorBox { }
+ {
+ \__tcobox_new_TColorBox:w \ProvideDocumentEnvironment
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTColorBox:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \begin{tcolorbox}[#5,options@for=#3]#6\end{tcolorbox} }
+ }
+\NewDocumentCommand \__tcobox_new_TotalTColorBox:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TotalTColorBox:Nnnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \RenewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTColorBox { }
+ {
+ \__tcobox_new_TotalTColorBox:w \ProvideDocumentCommand
+ }
+
+
+\NewDocumentCommand \__tcobox_new_tcbox_ii:w { m +m m o +o +m }
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \tl_if_novalue:nTF { #4 }
+ {
+ \exp_args:Nc #1 { #3 }{ \tcbox[#6,options@for=#3] }
+ }
+ {
+ \tl_if_novalue:nTF { #5 }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ]{ \tcbox[#6,options@for=#3] }
+ }
+ {
+ \exp_args:Nc #1 { #3 }[ #4 ][ #5 ]{ \tcbox[#6,options@for=#3] }
+ }
+ }
+ }
+\NewDocumentCommand \__tcobox_new_tcbox_i:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_tcbox_ii:w #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \newtcbox { }
+ {
+ \__tcobox_new_tcbox_i:w \newcommand
+ }
+\NewDocumentCommand \renewtcbox { }
+ {
+ \__tcobox_new_tcbox_i:w \renewcommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TCBox:Nnnnn #1#2#3#4#5
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbox[#5,options@for=#3] }
+ }
+\NewDocumentCommand \__tcobox_new_TCBox:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TCBox:Nnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTCBox { }
+ {
+ \__tcobox_new_TCBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTCBox { }
+ {
+ \__tcobox_new_TCBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTCBox { }
+ {
+ \__tcobox_new_TCBox:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTCBox { }
+ {
+ \__tcobox_new_TCBox:w \ProvideDocumentCommand
+ }
+
+
+\cs_new:Npn \__tcobox_new_TotalTCBox:Nnnnnn #1#2#3#4#5#6
+ {
+ \__tcobox_process_newtcolorbox:nn { #2 }{ #3 }
+ \exp_args:Nc #1 { #3 }{ #4 }{ \tcbox[#5,options@for=#3]{#6} }
+ }
+\NewDocumentCommand \__tcobox_new_TotalTCBox:w { m +o m }
+ {
+ \__tcobox_set_backslash_removed:Nn \l_tmpa_tl { #3 }
+ \exp_args:NNnV \__tcobox_new_TotalTCBox:Nnnnnn #1 {#2} \l_tmpa_tl
+ }
+\NewDocumentCommand \DeclareTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \DeclareDocumentCommand
+ }
+\NewDocumentCommand \NewTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \NewDocumentCommand
+ }
+\NewDocumentCommand \RenewTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \RewewDocumentCommand
+ }
+\NewDocumentCommand \ProvideTotalTCBox { }
+ {
+ \__tcobox_new_TotalTCBox:w \ProvideDocumentCommand
+ }
+
+
+\ExplSyntaxOff
-\def\renewtcolorbox{%
- \let\tcb@newenvironment\renewenvironment%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
- \tcb@process@newenvironment}
\newcommand{\tcolorboxenvironment}[2]{%
\AddToHook{env/#1/before}{%
@@ -2097,46 +2335,14 @@
}%
}
-% auxiliary code to remove a leading backspace
-\newcommand{\tcb@remove@bs}[1]{%
- \ifcat\relax\noexpand#1%
- \expandafter\tcb@remove@bs@aux@i%
- \fi
- #1}
-\newcommand*{\tcb@remove@bs@aux@i}{%
- \romannumeral%
- \if\string\ \tcb@remove@bs@aux@ii\fi%
- \expandafter\tcb@remove@bs@aux@iii\string}
-\newcommand{\tcb@remove@bs@aux@ii}{}
-\long\def\tcb@remove@bs@aux@ii#1\tcb@remove@bs@aux@iii{%
- -\number\fi\expandafter\z@}
-\newcommand{\tcb@remove@bs@aux@iii}[1]{\z@}
-
-\newcommand\tcb@process@newcommand[2][]{%
- \begingroup\edef\x{\endgroup\noexpand\tcb@process@newtcolorbox{\tcb@remove@bs{#2}}}\x{#1}%
-}
-
-\long\def\tcb@newtcbox#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcbox[#2,options@for=#1]}}
-
-\long\def\tcb@newtcbox@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcbox[#3,options@for=#1]}}
-
-\long\def\tcb@newtcbox@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcbox[#4,options@for=#1]}}
-
-\long\def\tcb@new@tcbox@#1[#2]{%
- \@ifnextchar[{\tcb@newtcbox@@{#1}[#2]}{\tcb@newtcbox@{#1}[#2]}}
-
-\def\tcb@new@tcbox#1{%
- \@ifnextchar[{\tcb@new@tcbox@{#1}}{\tcb@newtcbox{#1}}}
-
-\def\newtcbox{%
- \let\tcb@newcommand\newcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
- \tcb@process@newcommand}
+\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
-\def\renewtcbox{%
- \let\tcb@newcommand\renewcommand%
- \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
- \tcb@process@newcommand}
+\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
+ code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
+ #1,%
+ sidebyside,%
+ sidebyside@switch,sidebyside@adapt@process%
+}{\tcb@sbs@content}
\def\tcb@addcontentsline#1#2{%
@@ -2346,7 +2552,9 @@
standard,parbox,hyphenationfix=false,overlay=,
halign=justify,halign lower=justify,halign title=justify,
before title=,after title=,before upper=,after upper=,before lower=,after lower=,
+ before float=,after float=,
sidebyside=false,sidebyside align=center,sidebyside gap=10mm,
+ sidebyside adapt=none,sidebyside switch=false,%
lefthand ratio=0.5,check odd page=false,nophantom,
list entry=,no label type,
opacityupper=1.0,opacitylower=1.0,opacitytitle=1.0,opacityframe=1.0,opacityback=1.0,@opacitybacktitle=1.0,
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index 2287a74e47..13d9a0bc89 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.tex
@@ -1,9 +1,9 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 5.0.2 (2022/01/07)
+%% The LaTeX package tcolorbox - version 5.1.0 (2022/06/22)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2006-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -25,9 +25,10 @@
% arara: pdflatex: { shell: yes, synctex: yes }
% arara: pdflatex: { shell: yes, synctex: yes }
%
-\PassOptionsToPackage{pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks}{hyperref}
+\PassOptionsToPackage{pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks,pdfusetitle,pdfpagelabels}{hyperref}
\documentclass[a4paper,11pt]{ltxdoc}
+
\usepackage{tcolorbox.doc.s_main}
\tcbEXTERNALIZE
\usepackage{tcolorbox.doc.s_snippet}
@@ -35,8 +36,8 @@
\tcbAUXmkdir{external}
\tcbAUXmkdir{solutions}
-\RequirePackage{csquotes}
-\RequirePackage[style=numeric-comp,sorting=nyt,
+%\usepackage{csquotes}
+\usepackage[style=numeric-comp,sorting=nyt,
maxnames=8,minnames=8,abbreviate=false,backend=biber,
bibencoding=latin1,texencoding=ascii]{biblatex}
\DeclareFieldFormat{url}{\newline\url{#1}}%
@@ -44,8 +45,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{5.0.2}%
-\def\datum{2022/01/07}%
+\def\version{5.1.0}%
+\def\datum{2022/06/22}%
\makeindex
\hypersetup{
@@ -63,7 +64,7 @@
%\geometry{showframe}
%\tcbset{draftmode}
\tcbset{/tcb/external/-}% for final run
-%\includeonly{tcolorbox.doc.listings}
+%\includeonly{tcolorbox.doc.fitting,tcolorbox.doc.index}
%\hypersetup{colorlinks=false}