我有几对图表。我需要在乳胶中显示这些图表。我正在使用以下方法,效果很好。
\begin{figure}
\centering
\begin{subfigure}{.5\textwidth}
\centering
\fbox{\includegraphics[width=.8\linewidth]{4-byVar1.png}}
\caption{``Here's a question?'' (by Var1)}
\label{fig:4-byVar1}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\fbox{\includegraphics[width=.8\linewidth]{4-byVar2.png}}
\caption{``Here's a question?'' (by Var2)}
\label{fig:4-byVar2}
\end{subfigure}
\caption{``Here's a question?''}
\label{fig:comboFig-4}
\end{figure}
但是,对于每一对这样的数字,都需要重复很多代码。我创建了一个
\newcommand
为我完成工作,但似乎当我尝试引用我的新命令创建的图形时,我收到错误(图未定义)。
有人能建议我如何引用由新命令创建的标签吗?
我创建的新命令如下所示
\newcommand{\graphPairs}[2]{
\begin{figure}
\centering
\begin{subfigure}{.5\textwidth}
\centering
\fbox{\includegraphics[width=.8\linewidth]{#2-byCar1.png}}
\caption{#1 (by Var 1)}
\label{fig:#2-byVar1}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\fbox{\includegraphics[width=.8\linewidth]{#2-byVar2.png}}
\caption{#1 (by Var 2)}
\label{fig:#2-byVar2}
\end{subfigure}
\caption{#1}
\label{fig:comboFig-#2}
\end{figure}
}
答案1
没关系,它\label
隐藏在 中\newcommand
。要引用,您需要依赖于 的第二个参数的标签名称\graphPairs
。第一个例子将通过以下方式生成:
\graphPairs{``Here's a question?''}{4}
标签可以引用为
\ref{fig:4-byVar1}
\ref{fig:4-byVar2}
\ref{fig:comboFig-4}
答案2
TeX 是一个宏处理器,因此它只是根据命令的定义对命令进行文本替换,然后\label
才进行考虑。所以如果你的命令被调用为
\graphPairs{cap}{myfile}
那么你的\label
三个
\label{fig:myfile-byVar1}
和
\label{fig:myfile-byVar2}
和
\label{fig:comboFig-myfile}
因此可以引用为\ref{fig:myfile-byVar1}
,,\ref{fig:myfile-byVar2}
。\ref{fig:comboFig-myfile}
与往常一样,需要运行几次才能定义引用。