我是否忽略了某些显而易见的东西,或者\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
。