制作的可破坏框tcolorbox
可以很好地处理在框之前已定义但尚未排版的图形。以下是一个例子:
这三个玩偶在黄盒开始前就已经发行了,出现在易碎盒的第一页或者之后的页面上都没有问题。
我的问题是,我希望一些图形稍后出现在多页可拆分框中,因此我想将它们发布到框中的某个位置。这不起作用 - 任何在框内定义图形的尝试都会tcolorbox
出现此错误:
不处于外部模式。
我尝试通过将图形包装到 中来解决这个问题\afterpage
,以确保它在tcolorbox
上下文之外进行处理,但这根本没有帮助。
有没有什么办法可以在可破坏物打开时插入图形tcolorbox
,以便它们在框中可控的稍后点进行排版?
举一个简单的例子:问题是如何让这样的事情发挥作用:
\documentclass{article}
\usepackage{lipsum}
\usepackage[breakable]{tcolorbox}
\begin{document}
\begin{figure}
\centering\Huge
This is a figure.
\caption{A figure that will work}
\end{figure}
\begin{tcolorbox}[breakable]
\lipsum[1-20]
\begin{figure}
\centering\Huge
This is a figure.
\caption{A figure that will not work}
\end{figure}
\lipsum[21-30]
\end{tcolorbox}
\end{document}
答案1
作为解决方法,您可以使用shipout
钩子在下一页的顶部插入一些材料,并模拟图形环境(该caption
包提供了\captionof
在浮动之外显示标题的命令)。
\documentclass{article}
\usepackage{lipsum}
\usepackage[breakable]{tcolorbox}
\usepackage{caption} % for \captionof command
\begin{document}
\begin{figure}
\centering\Huge
This is a figure.
\caption{A figure that will work}
\end{figure}
\begin{tcolorbox}[breakable]
\lipsum[1-20]
\AddToHookNext{shipout}{
\begin{minipage}{1.0\linewidth}
\centering\Huge
This is a figure.
\captionof{figure}{A figure that will not work}
\end{minipage}
\bigskip
}
\lipsum[21-30]
\end{tcolorbox}
\end{document}
但它并不是您所要求的真正的浮点数。