在我的文档中,我有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
环境中的相同?自定义环境/标题编号也可以。最好,适合一页的框应该是浮动的。对于跨多页的框,我认为浮动不再合适,因此这并不那么重要。
注意:我知道tcolorbox
es 的标题通常使用选项来模拟。但是,我希望有一个与/ /...title
相同样式的标题,即位于框的上方或下方。figure
table
答案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}
输出的最后一部分将类似于:
我认为,这个宏是非常不言自明的:第一个参数采用这个非浮点标题应该模仿的浮点类型,第二个参数采用标题。