引用主标题中的子图

引用主标题中的子图

我试图引用图形主标题中的子图。不幸的是,我只得到空白,甚至没有未定义的引用??。发生了什么事?

\documentclass{report}

\usepackage[superscript]{cite}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}
Some text.

\begin{figure}[!h]
    \centering
    \begin{subfigure}[b]{0.4\textwidth}
            \centering
            \includegraphics[width=\textwidth]{figure1}
    \label{fig:fig1}
    \end{subfigure}
\begin{subfigure}[b]{0.4\textwidth}
            \centering
            \includegraphics[width=\textwidth]{figure2}
    \label{fig:fig2}
    \end{subfigure}
    \caption{\protect\subref{fig:fig1} shows figure 1 and \protect\subref{fig:fig2} shows figure 2.}
\end{figure}
\end{document}

答案1

您需要\caption为每个添加一个单独的subfigure标签以显示标签(然后可以引用):

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{caption,subcaption}% http://ctan.org/pkg/{caption,subcaption}

\begin{document}
Some text.

\begin{figure}[ht]
  \centering
  \begin{subfigure}[b]{0.5\linewidth}
    \centering\includegraphics[width=100pt]{example-image-a}
    \caption{\label{fig:fig1}}
  \end{subfigure}%
  \begin{subfigure}[b]{0.5\linewidth}
    \centering\includegraphics[width=100pt]{example-image-b}
    \caption{\label{fig:fig2}}
  \end{subfigure}
  \caption{\subref{fig:fig1} shows Figure~1 and~\subref{fig:fig2} shows Figure~2.}
\end{figure}
\end{document}

答案2

摘自文档中的subcaption“引用没有子标题的子图”部分:

如果您不想为子图添加标题,因为图片本身已经包含标题,或者出于其他原因,您可以使用命令 \phantomsubcaption 代替,或者在或环境\subcaption中使用命令代替。和 没有任何参数,它们不会生成任何输出,但会为您提供一个可在之后放置的命令锚点。此外,它会增加子图或子表计数器。请注意,就像命令一样,必须在其自己的组、框或环境中应用。subfiguresubtable\phantomcaption\caption\phantomsubcaption\phantomcaption\label\subcaption\phantomsubcaption

\documentclass{report}

\usepackage[superscript]{cite}
\usepackage{mathtools}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}
Some text.

\begin{figure}[!h]
    \centering
    \begin{subfigure}[b]{0.4\textwidth}
            \centering
            \includegraphics[width=\textwidth]{figure1}
    \phantomcaption
    \label{fig:fig1}
    \end{subfigure}
    \begin{subfigure}[b]{0.4\textwidth}
            \centering
            \includegraphics[width=\textwidth]{figure2}
    \phantomcaption
    \label{fig:fig2}
    \end{subfigure}
    \caption{\subref{fig:fig1} shows figure 1 and \subref{fig:fig2} shows figure 2.}
\end{figure}
\end{document}

注意:\phantomsubcaption需要subcaption版本 1.1(2011/08/17)或更新版本。

相关内容