我是否遺漏了一些明顯的東西,或者\captionof
不應該在 a 中工作\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 內的 s\makebox
會導致問題:
\hrulefill
\mbox{\vspace{10pt}}% Acceptable...
\hrulefill
\mbox{\vskip 10pt}% Problematic...
\hrulefill
上面的程式碼片段突出顯示了為了\vspace
適應非垂直模式跳過而執行的後台跑腿工作。
另一方面,\parbox
(並且minipage
,比如說)提供了合併水平方向的選項和垂直內容。因此,如果您想放置\captionof
在一個盒子中,請將其放置在一個可以管理其內容的盒子中,例如\parbox
.