\captionof 在一個盒子裡

\captionof 在一個盒子裡

我是否遺漏了一些明顯的東西,或者\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\vskipa 內的 s\makebox會導致問題:

\hrulefill

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

\hrulefill

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

\hrulefill

上面的程式碼片段突出顯示了為了\vspace適應非垂直模式跳過而執行的後台跑腿工作。

另一方面,\parbox(並且minipage,比如說)提供了合併水平方向的選項垂直內容。因此,如果您想放置\captionof在一個盒子中,請將其放置在一個可以管理其內容的盒子中,例如\parbox.

相關內容