我使用 pgfplots 创建了一个组图。为了引用每个图,我在每个图中的节点内添加了一个子标题。
\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}
\begin{groupplot}[group style={group size=1 by 2}]
\nextgroupplot
\node [text width=1em,anchor=north west] at (rel axis cs: 0,1) {\captionof{subfigure}{\label{fig:a}}};
\addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};
\nextgroupplot
\node [text width=1em,anchor=north west] at (rel axis cs: 0,1) {\captionof{subfigure}{\label{fig:b}}};
\addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};
\end{groupplot}
\end{tikzpicture}
\caption{Figure}
\end{figure}
Figure \ref{fig:a} and \ref{fig:b}?!?
\end{document}
问题是:计数器错误。子图 1a 被引用为 0a。我的整个文档中的行为相同,例如 4b 得到 3b。
答案1
使用\subcaption{\label{fig:a}}
和\subcaption{\label{fig:b}}
设置子标题。
代码:
\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}% <- added, current version is 1.13
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}[htb]
\begin{tikzpicture}
\begin{groupplot}[group style={group size=1 by 2}]
\nextgroupplot
\node [text width=1em,anchor=north west] at (rel axis cs: 0,1)
{\subcaption{\label{fig:a}}};%<- changed
\addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};
\nextgroupplot
\node [text width=1em,anchor=north west] at (rel axis cs: 0,1)
{\subcaption{\label{fig:b}}};%<- changed
\addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};
\end{groupplot}
\end{tikzpicture}
\caption{Figure}
\end{figure}
Figure \ref{fig:a} and \ref{fig:b}?!?
\end{document}
请注意,设置一个值很有用compat
。