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
设置 的输出\subref
。subrefformat
设置 的输出\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}