我正在使用 \subcaption 包;我希望我的子图用字母标记,例如 (a),当使用 \ref 引用子图时,我希望得到类似图 1(a) 的结果。默认情况下,子图确实用 (a) 标记,但 \ref 生成例如 1a。按照 Axel Sommerfeldt 的手册,我尝试包括以下行
\renewcommand\thesubfigure{(\alph{subfigure})}
这样,\ref 将返回我想要的输出,例如 1(a),但子图现在用双括号标记,例如 ((a))。这是一个重现双括号的最小工作示例:
\documentclass[twocolumn,pra,amsmath,amssymb,floatfix,superscriptaddress,nofootinbib,showpacs]{revtex4-1}
\usepackage{amsmath,amssymb,graphicx,epsfig}
\usepackage[font=footnotesize]{subcaption}
\renewcommand\thesubfigure{(\alph{subfigure})}
\begin{document}
Here's a block of code
\begin{figure}
\centering
\begin{subfigure}[b]{0.41\linewidth}
\caption{}
\label{fig:subfigure}
\end{subfigure}
\caption{Figure caption}
\label{fig:fullFigure}
\end{figure}
I want to reference Fig.~\ref{fig:fullFigure} and in particular Fig.~\ref{fig:subfigure}.
\end{document}
答案1
答案2
你只需要使用 \cref
或\Cref
从cleveref
包中,根据你是否想要一个资本F。注意必须加载此包后 hyperref
。
另请注意,您不必在重新定义子图标签时使用括号:subcaption
包已经添加了它们(除非您想要双括号……)。
您无需加载epsfig
:它是旧文档兼容模式的包装器。在内部,它graphics
负责完成工作。
\documentclass[twocolumn,pra,amsmath,amssymb,floatfix,superscriptaddress,nofootinbib,showpacs]{revtex4-1}
\usepackage{amsmath, amssymb, graphicx}
\usepackage[font=footnotesize]{subcaption}
\renewcommand\thesubfigure{\alph{subfigure}}
\usepackage{cleveref}
\begin{document}
Here's a block of code
\begin{figure}
\centering
\begin{subfigure}[b]{0.41\linewidth}
\caption{}
\label{fig:subfigure}
\end{subfigure}
\caption{Figure caption}
\label{fig:fullFigure}
\end{figure}
I want to reference \Cref{fig:fullFigure} and in particular \cref{fig:subfigure}.
\end{document}