引用子图

引用子图

我正在撰写论文,我有一些子图。当我排版代码时,子图被标记为 (a) 和 (b),但是当我在文本中引用子图时,我得到的是图 4.1.1 和 4.1.2,而不是 4.1(a) 和 4.1(b)。我如何更改代码以在文本中得到 4.1(a) 而不是 4.1.1?我用于这些图的代码如下所示:

\begin{figure}[!htbp]

  \begin{subfigure}{\textwidth}
  \begin{center}
    \includegraphics[width=0.8\textwidth,valign=t]{figures/chapter4/1.pdf}
    \phantomcaption
    \label{fig:1}
    \end{center}
  \end{subfigure}


  \begin{subfigure}{\textwidth}
   \begin{center}
    \includegraphics[width=0.8\textwidth, valign=t]{figures/chapter4/2.pdf}
   \phantomcaption
    \label{fig:2}
      \end{center}
  \end{subfigure}


\caption{Graphs showing..}  
\label{fig:Demand}
\end{figure}

谢谢

答案1

由于您在环境中使用的是\phantomcaption语句,而不是“真实”\caption语句,subfigure因此您需要做的就是发出指令

\renewcommand\thesubfigure{(\alph{subfigure})}

在序言中。(如果您确实使用了\caption语句,则还必须提供指令\captionsetup[subcaption]{labelformat=simple}。)

单独的评论:您还应该简化和精简环境中的代码figure,例如,通过使用单个\centering语句并设置subfigure环境以占用等于的宽度0.8\textwidth。以下显示了如何做到这一点。

在此处输入图片描述

\documentclass{book} % is this right?
\usepackage[demo]{graphicx} % remove 'demo' option in real document
\usepackage{subcaption}
%\captionsetup[subcaption]{labelformat=simple} % not needed here
\renewcommand\thesubfigure{(\alph{subfigure})}

\begin{document}
\setcounter{chapter}{4} % just for this example

\begin{figure}[!htbp]
\centering
  \begin{subfigure}{0.8\textwidth}
    \includegraphics[width=\linewidth%,valign=t
      ]{figures/chapter4/1.pdf}
    \phantomcaption
    \label{fig:1}
  \end{subfigure}

  \medskip
  \begin{subfigure}{0.8\textwidth}
    \includegraphics[width=\linewidth%, valign=t
      ]{figures/chapter4/2.pdf}
    \phantomcaption
    \label{fig:2}
  \end{subfigure}

\caption{Graphs showing \dots}  
\label{fig:Demand}
\end{figure}

Cross-references to subfigures \ref{fig:1} and \ref{fig:2}.
\end{document}

相关内容