(已解决,新)使用 subfig 和 autoref 时的括号

(已解决,新)使用 subfig 和 autoref 时的括号

MWE 第一。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[subrefformat=simple,labelformat=simple]{subfig}

%\newcommand{\subfigureautorefname}{\figureautorefname}
%\renewcommand\thesubfigure{(\alph{subfigure})}

\begin{document}
\begin{figure}
\subfloat[]{\label{a}\qquad}
\caption{}
\end{figure}
\begin{tabular}{|c|c|}
\hline
&Result\\\hline
ref&\ref{a}\\\hline
subref&\subref{a}\\\hline
autoref&\autoref{a}\\\hline
subref*&\subref*{a}\\\hline
\end{tabular}
\end{document}

我使用包subfig来创建子图,并且想\subref在标题和\autoref上下文中同时使用它们。

我想要的输出\subref和分别\autoref(a)Figure 1(a),但我无法同时实现它们。我尝试了不同的选项,subfig解决方案这里(这个问题标题的由来)。我也尝试创建一个新命令,但失败了,因为我对宏或类似的东西了解甚少。

编辑:感谢@Mico 使用包的解决方案subcaption!我宁愿坚持使用,subfig因为编辑文档中的所有浮点数太累了。

所以我没有subfig仔细查看手册。排版子浮动标签有 3 个选项。labelformat设置每个子浮动下显示的标签。listofformat设置 的输出\subrefsubrefformat设置 的输出\subref*

在我的例子中,我只需要添加listofformat=subsimple来去掉 中多余的一对括号\subref,然后我就可以使用\renewcommand\thesubfigure{(\alph{subfigure})}将括号添加到 中\autoref。完整解决方案如下。我没有注意到,listofformat因为与 相比,它的名字似乎什么都做不了subrefformat

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[listofformat=subsimple,labelformat=simple]{subfig}

\newcommand{\subfigureautorefname}{\figureautorefname}
\renewcommand\thesubfigure{(\alph{subfigure})}

\begin{document}
\begin{figure}
\subfloat[]{\label{a}\qquad}
\caption{}
\end{figure}
\begin{tabular}{|c|c|}
\hline
&Result\\\hline
subref&\subref{a}\\\hline
autoref&\autoref{a}\\\hline
\end{tabular}
\end{document}

答案1

这是一个subcaption基于的解决方案,它可以与\autoref\cref(由cleveref包提供)一起使用。

在此处输入图片描述

\documentclass{article}
\usepackage[demo]{graphicx} % remove 'demo' option in real document
\usepackage[utf8]{inputenc}

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

\usepackage[colorlinks]{hyperref}
\usepackage[nameinlink]{cleveref}

\begin{document}

\begin{figure}
\centering
\subcaptionbox{First subfigure\label{a}}{\includegraphics[width=0.25\textwidth]{figa}}%
\qquad
\subcaptionbox{Second subfigure\label{b}}{\includegraphics[width=0.25\textwidth]{figa}}
\caption{A figure with two subfigures}
\end{figure}

\begin{tabular}{ll}
\textbackslash ref    &\ref{a}    \\
\textbackslash subref &\subref{a} \\
\textbackslash subref*&\subref*{a}\\
\textbackslash autoref&\autoref{a}\\
\textbackslash Cref   &\Cref{a}
\end{tabular}
\end{document}

相关内容