\captionof 在一个框中

\captionof 在一个框中

我是否忽略了某些显而易见的东西,或者\captionof不应该在 中工作\makebox?我已经尝试过\protect\MakeRobustCommand等。

\documentclass{article}
\usepackage{capt-of}
\begin{document}
    \makebox{\captionof{figure}{X}}
\end{document}

我收到此错误:

! Missing \endgroup inserted.
<inserted text> 
                \endgroup 
l.4     \makebox{\captionof{figure}{X}}

答案1

\makebox为内容提供了水平框,因此很难处理垂直内容。特别是,\captionof最终调用\@makecaption设置实际标题。这以通过\vskip \abovecaptionskip和插入的垂直跳过开始和结束\vskip \belowcaptionskip\vskip在 a 内\makebox导致问题:

\hrulefill

\mbox{\vspace{10pt}}% Acceptable...

\hrulefill

\mbox{\vskip 10pt}% Problematic...

\hrulefill

上述代码片段突出显示了为了\vspace适应非垂直模式跳过而执行的后台工作。

另一方面,\parbox(和minipage,比如说)提供纳入水平垂直内容。因此,如果您想将其放置\captionof在一个框中,请将其放置在一个可以管理其内容的框中,例如\parbox

相关内容