如何隐藏子标题但保留子参考标签?

如何隐藏子标题但保留子参考标签?

在此示例中,我想删除命令显示的文本\subcaption{\label{left} Left half}(以及\subcaption{\label{right} Right half})。但是我仍然需要标签leftright文本。

原因在于我有一个复杂的子图数组,我将其创建为单个图像文件,并且图像本身包含标签“a”、“b”等。

\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}

\begin{minipage}{0.25\textwidth}
\subcaption{\label{left} Left half}
\end{minipage}
\begin{minipage}{0.25\textwidth}
\subcaption{\label{right} Right half}
\end{minipage}

\caption{\label{figure} Overall caption}
\end{figure}

Figure~\ref{figure} has \ref{left} on the left, and \ref{right} on the right,
also known as \subref{left} and \subref{right}.

\end{document}

答案1

我建议您 (a) 使用subfigure环境而不是minipage环境,(b) 为环境分配零宽度subfigure,以及 — 最重要的是 — (c) 使用\refstepcounter指令而不是caption指令来增加指定的计数器subfigure而不生成任何文本。\label当然,指令应该保留在原处。

这样做会打印出复合图下方的整体标题并生成以下句子:

图 1 左侧为 1a,右侧为 1b,也称为 a 和 b。

如果您想知道这里发生了什么:LaTeX 的\caption指令不仅将其参数排版为标题文本(duh),它还调用\refstepcounter指令来增加与当前浮点数关联的计数器(称为)。指令需要找到并锁定的subfigure就是这个计数器。\label

还值得一提的是,该包实际上提供了一个专门针对您的用例调用的subcaption宏,\phantomsubcaption,不想生成与子标题相关的文本,同时保留创建对子浮点的交叉引用的能力。 (本质上)为您\phantomsubcaption执行指令。如果您愿意,可以使用代替。事实上,如果您想使用,实际上并不需要设置零宽度子图环境;只需将和语句括在 TeX 组中,如下所示:\refstepcounter{subfigure}\phantomsubcaption\refstepcounter{subfigure}\phantomsubcaption\phantomsubcaption\label

    {\phantomsubcaption\label{left} \phantomsubcaption\label{right}}

完整的 MWE:

\documentclass{article}
\usepackage{graphicx,subcaption}

\begin{document}

\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}%
% We now insert 2 zero-width 'subfigure' environments 
% to the **right** of the graph. By encasing the
% '\refstepcounter{...}\label{...}' statements inside
% 'subfigure' environments, the subsequent '\subref' 
% instructions will generate the expected output.
\begin{subfigure}{0\textwidth}
\refstepcounter{subfigure}\label{left}
\end{subfigure}%
\begin{subfigure}{0\textwidth}
\refstepcounter{subfigure}\label{right}
\end{subfigure}

\caption{Overall caption}\label{figure} 
\end{figure}

Figure~\ref{figure} has \ref{left} on the left and \ref{right} on the right,
also known as \subref{left} and \subref{right}.

\end{document}

答案2

这就是目的\phantomsubcaption所在。请注意,幻影子标题必须位于它们自己的组中,因此它们周围有一对括号。

\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}

{\phantomsubcaption\label{left}
\phantomsubcaption\label{right}}

\caption{\label{figure} Overall caption}
\end{figure}

Figure~\ref{figure} has \ref{left} on the left, and \ref{right} on the right,
also known as \subref{left} and \subref{right}.

\end{document}

在此处输入图片描述

相关内容