我正在并排布置一些 tikzpictures(用 制作pgfplots
,但我认为这无关紧要)。我正在尝试使用该subfig
包来引用单个子图。一切正常,但我想pgfplots
布局标题来描述每个子图,所以我需要:
- 禁止
subfig
包打印标题(请注意,即使没有明确的\caption
命令,我也会得到一个空的标题,但无论如何都会打印计数器) - 在 tikz 代码中排版当前子图编号(具体在
axis
环境的 title 属性中,但位置可以是任意的) - 仍然能够从外部引用单个子图(即我应该把命令放在哪里
\label
?)
这是我现在拥有的代码的草图。
\begin{figure}
\begin{center}
\makebox[\textwidth][c]{
\subfloat[]{
\begin{tikzpicture}
\node (0,0) {How do I typeset (and advance) the subfigure counter here?};
\end{tikzpicture}
}
\quad
\subfloat[]{
\begin{tikzpicture}
\node (0,0) {How do I typeset (and advance) the subfigure counter here?};
\end{tikzpicture}
\caption{How to avoid this to print the counter even when I don't invoke this command?}
}
}
\end{center}
\end{figure}
我怎样才能施展这个技巧?
答案1
评论已经描述了如何使用来做到这一点,这里是使用包中的\captionof
不同方法。例如,如果您生成了图形中包含子图标签的图形,则很有用,但在这种情况下也可以使用它。\phantomsubcaption
subcaption
\phantomsubcaption
\documentclass{article}
\usepackage{pgfplots,subcaption}
\newcommand\MakeLabel[1]{\phantomsubcaption\label{#1}\subref{#1})}
\begin{document}
In figure~\ref{fig:1} there is subfigure \ref{suba} and \ref{subb}.
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[width=4cm,title={\MakeLabel{suba} Subfigure a.}]
\addplot {rnd};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[width=4cm,title={\MakeLabel{subb} Subfigure b.}]
\addplot {rnd};
\end{axis}
\end{tikzpicture}
\caption{Caption for entire figure.}
\label{fig:1}
\end{figure}
\end{document}