将类似图形的标题放在可破坏的 tcolorbox 上

将类似图形的标题放在可破坏的 tcolorbox 上

在我的文档中,我有tcolorbox一些包含大定义的 es,这些定义从半页到两页不等。为了在正文中引用这些框,我希望像引用图片一样引用它们。对于较小的框,我可以将它们嵌入到figure这样的环境中:

\begin{figure}
\begin{tcolorbox}
\lipsum[1-3] % This normally contains some mathematical specifications.
\end{tcolorbox} 
\caption{small definition.}
\end{figure}

然而,对于较大的,我需要有一个易碎 tcolorbox,但这在环境中无法正常工作figure。让我展示一下我尝试过的方法:

\documentclass{article}

\usepackage[many]{tcolorbox}    
\usepackage{lipsum}

\begin{document}

\lipsum[1-3] % Start the document with some text.

\begin{figure}
\begin{tcolorbox}[breakable]
\lipsum[1-8] % This normally contains some mathematical specifications.
\end{tcolorbox} 
\caption{big definition.}
\end{figure}

\end{document}

参见下图来观察奇怪的结果。

我的问题:是否可以在 breakable 下方或上方添加标题tcolorbox,风格与figure环境中的相同?自定义环境/标题编号也可以。最好,适合一页的框应该是浮动的。对于跨多页的框,我认为浮动不再合适,因此这并不那么重要。

注意:我知道tcolorboxes 的标题通常使用选项来模拟。但是,我希望有一个与/ /...title相同样式的标题,即位于框的上方或下方。figuretable

奇怪的结果

答案1

软件包caption中有一个宏\captionof,可用于此类情况,为非浮动元素提供类似浮动的标题。但是,它应该放在一个框内,例如minipage

它使用与其他字幕完全相同的样式,并且还会接管浮点数的编号。因此,您可以随意混合使用实浮点字幕和非浮点字幕。

因此,您可以执行以下操作:

\documentclass{article}

\usepackage[many]{tcolorbox} 
\usepackage{caption}

\usepackage{lipsum}

\begin{document}

\lipsum[1-3] % Start the document with some text.

%\begin{figure}
\begin{tcolorbox}[breakable]
\lipsum[1-8] % This normally contains some mathematical specifications.
\end{tcolorbox} 
%\end{figure}
%
\noindent\begin{minipage}{\textwidth}
\captionof{figure}{big definition.}
\end{minipage}

\end{document}

输出的最后一部分将类似于:

在此处输入图片描述

我认为,这个宏是非常不言自明的:第一个参数采用这个非浮点标题应该模仿的浮点类型,第二个参数采用标题。

相关内容