\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. \vskips внутри \makeboxвызывает проблему:

\hrulefill

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

\hrulefill

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

\hrulefill

Приведенный выше фрагмент кода демонстрирует фоновую работу, выполняемую \vspaceдля обеспечения пропуска невертикального режима.

С другой стороны, \parboxminipage, скажем) предоставляют возможность включить горизонтальныеиВертикальный контент. Так что, если вы хотите разместить его \captionofв коробке, поместите его в коробку, которая может управлять его контентом, например \parbox.

Связанный контент