如何在不使用 \begin{figure} 的情况下在图像下方添加标题?

如何在不使用 \begin{figure} 的情况下在图像下方添加标题?

我需要在表格中放置一张图片。我无法在表格中使用图形。即使我添加了小页面也不起作用。

但可以\includegraphics在表格中添加 OK。但现在我不能\caption再使用了。它似乎\caption{}只适用于figure

问题是,如何添加标题,但不使用图形?这是 MWE。

首先是才不是工作

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{longtable}
\begin{document}

\begin{longtable}{p{2in}}
    \begin{figure}    
       \includegraphics[width=0.3\textwidth]{example-image-a}
       \caption{my caption}
    \end{figure}
\end{longtable}
\end{document}

所以删除了图片。但喜欢使用标题,或者类似标题的东西

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{longtable}
\begin{document}

\begin{longtable}{p{2in}}
    %\begin{figure}    
       \includegraphics[width=0.3\textwidth]{example-image-a}
       \caption{my caption} %only when commenting this will it compile
    %\end{figure}
\end{longtable}
\end{document}

这个想法是得到与使用图形时获得的东西类似但不使用图形的东西,因为图形不能在表格内使用。

\caption是否存在具有相同语义但不需要figure使用的东西?

最好的方法是什么?请注意,我仅使用 lualatex 进行编译。

TL2020。

答案1

\caption在本地重新定义(在 内部\parbox)。p 列中的每个单元格都是一个单独的\parbox

\caption@caption是 caption 包使用的原始名称。它用于\csname实现 @ 符号,而 @ 符号又需要\expandafters。

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{caption}

\begin{document}

\begin{longtable}{p{2in}}
   \expandafter\let\expandafter\caption\csname caption@caption\endcsname
   \centering
   \includegraphics[width=0.3\textwidth]{example-image-a}
   \captionof{figure}{my caption}
\end{longtable}
\end{document}

这将创建一个不包含 @ 符号的新名称。

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{caption}

\let\normalcaption=\caption

\begin{document}

\begin{longtable}{p{2in}}
   \let\caption=\normalcaption
   \centering
   \includegraphics[width=0.3\textwidth]{example-image-a}
   \captionof{figure}{my caption}
\end{longtable}
\end{document}

相关内容