
¿Me estoy perdiendo algo obvio o se \captionof
supone que no funciona en un \makebox
? He probado \protect
, \MakeRobustCommand
, entre otros.
\documentclass{article}
\usepackage{capt-of}
\begin{document}
\makebox{\captionof{figure}{X}}
\end{document}
Recibo este error:
! Missing \endgroup inserted.
<inserted text>
\endgroup
l.4 \makebox{\captionof{figure}{X}}
Respuesta1
\makebox
Proporciona un cuadro horizontal para el contenido y, por lo tanto, tiene dificultades para afrontar el contenido vertical. En particular, \captionof
eventualmente llama \@makecaption
para establecer el título real. Esto comienza y termina con saltos verticales insertados mediante \vskip \abovecaptionskip
y \vskip \belowcaptionskip
. \vskip
s dentro de a \makebox
causa el problema:
\hrulefill
\mbox{\vspace{10pt}}% Acceptable...
\hrulefill
\mbox{\vskip 10pt}% Problematic...
\hrulefill
El fragmento de código anterior resalta el trabajo preliminar en segundo plano realizado \vspace
para dar cabida al salto del modo no vertical.
Por otro lado, \parbox
(y minipage
, digamos) brindan la opción de incorporar horizontalesycontenido vertical. Entonces, si desea colocarlo \captionof
en un cuadro, colóquelo en un cuadro que pueda administrar su contenido, como un archivo \parbox
.