Estou faltando algo óbvio ou \captionof
nã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
\makebox
fornece uma caixa horizontal para conteúdo e, portanto, tem dificuldade em lidar com conteúdo vertical. Em particular, \captionof
eventualmente chama \@makecaption
para definir a legenda real. Isso começa e termina com saltos verticais inseridos via \vskip \abovecaptionskip
e \vskip \belowcaptionskip
. \vskip
s dentro de a \makebox
causa 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 \vspace
para 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 \captionof
em uma caixa, coloque-o em uma caixa que possa gerenciar seu conteúdo, como um arquivo \parbox
.