\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\makebox

\hrulefill

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

\hrulefill

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

\hrulefill

\vspace上記のコード スニペットは、非垂直モードのスキップに対応するために によって実行されるバックグラウンドの作業を強調表示しています。

一方、\parbox(そしてminipage、例えば)水平方向を組み込むオプションを提供するそして垂直方向のコンテンツ。したがって、ボックスに配置する場合は\captionof、 のようにコンテンツを管理できるボックスに配置します\parbox

関連情報