使用 subcaption 包在子图中进行双括号

使用 subcaption 包在子图中进行双括号

我正在使用 \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

默认情况下,子标题会加载parens标签格式。因此,子标题中有双括号。您可以添加labelformat=simple以指定simple标签格式并获得所需的输出。在您的案例中:

\usepackage[font=footnotesize,labelformat=simple]{subcaption}
\renewcommand\thesubfigure{(\alph{subfigure})}

在此处输入图片描述

答案2

你只需要使用 \cref\Crefcleveref包中,根据你是否想要一个资本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}

在此处输入图片描述

相关内容