tcolorbox 的多个可选参数

tcolorbox 的多个可选参数

我想制作tcolorbox可以接受两个可选参数的框,但我不知道从哪里开始。这是我当前的 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\def \ifempty#1{\def\temp{#1} \ifx\temp\empty }

\newtcolorbox[auto counter,number within=chapter]{definition}[1][]{title={ Définition \thetcbcounter \ifempty{#1} \else --- #1 \fi}}

\begin{document}

\begin{definition}[Matrices]
\lipsum[1]
\end{definition}

\end{document}

这样,每个盒子都有一个计数器,具体取决于我们所在的章节。如果我想给盒子起一个特定的名称,可以添加一个可选参数。我想添加第二个可选参数,为盒子添加一个标签(以便能够引用它)。我可以label=向颜色框添加一个键,但我不确定如何添加第二个可选参数来填充该键。

我如何向 tcolorbox 添加第二个参数以将其添加label=#2到参数列表中tcolorbox

答案1

无需重新发明轮子。tcolorbox提供\newtcbtheorem仅使用两个可以留空的强制参数来定义定理、定义……环境。参数是“标题”和“标签”(或标签后缀)。

这里有两个例子。更多信息请参阅tcolorbox文档第 17 节。

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

%\def \ifempty#1{\def\temp{#1} \ifx\temp\empty }
%
%\newtcolorbox[auto counter,number within=chapter]{definition}[1][]{title={ Définition \thetcbcounter \ifempty{#1} \else --- #1 \fi}}

\newtcbtheorem[auto counter,number within=chapter]{definition}{Définition}{}{def}

\begin{document}
\chapter{First}

\begin{definition}{Matrices}{a}
\lipsum[2]
\end{definition}

As can be seen in Definition~\ref{def:a} \dots

\begin{definition}{}{b}
\lipsum[2]
\end{definition}

As can be seen in Definition~\ref{def:b} \dots

\end{document}

在此处输入图片描述

相关内容