\captionof em uma caixa

\captionof em uma caixa

Estou faltando algo óbvio ou \captionofnão deveria funcionar em um arquivo \makebox? Eu tentei \protect, \MakeRobustCommand, entre outros.

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

Eu recebo este erro:

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

Responder1

\makeboxfornece uma caixa horizontal para conteúdo e, portanto, tem dificuldade em lidar com conteúdo vertical. Em particular, \captionofeventualmente chama \@makecaptionpara definir a legenda real. Isso começa e termina com saltos verticais inseridos via \vskip \abovecaptionskipe \vskip \belowcaptionskip. \vskips dentro de a \makeboxcausa o problema:

\hrulefill

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

\hrulefill

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

\hrulefill

O trecho de código acima destaca o trabalho braçal em segundo plano realizado \vspacepara acomodar o salto no modo não vertical.

Por outro lado, \parbox(e minipage, digamos) oferecem a opção de incorporareconteúdo vertical. Então, se você quiser colocar \captionofem uma caixa, coloque-o em uma caixa que possa gerenciar seu conteúdo, como um arquivo \parbox.

informação relacionada