我正在memoir
为我的论文使用该类,我注意到它最近开始为子图提供错误的编号。我有一些旧的 PDF,当时它工作正常,我很确定我已经有一段时间没有弄乱这些数字了,所以我不确定问题是什么。我下面有一个 MWE。
\documentclass[brazilian,a4paper,12pt,oneside,openleft]{memoir}
\usepackage{graphicx} %package to manage images
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\chapter{Chapter to have proper numbering}
\begin{figure}[!hptb]
\centering
\subbottom[]{
\includegraphics[width=0.4\textwidth]{example-image-a}
\label{sf:a} %Nome da sub-Fig. para referenciá-la diretamente como 1a.
}
\hfill
\subbottom[]{
\includegraphics[width=0.4\textwidth]{example-image-b}
\label{sf:b}
}
\caption{\subcaptionref{sf:a} Subfig a \subcaptionref{sf:b} Subfig b}
\label{fig:ab}
\end{figure}
Some sample text referencing Fig.~\ref{fig:ab} which contains both Fig.~\ref{sf:a} and Fig.~\ref{sf:b}.
\end{document}
输出结果类似于问题末尾附上的图。如您所见,标题中的子图标签显示为 和 ,()
而(a)
不是(a)
和(b)
。我猜是某个计数器没有正确递增,但我不知道是哪一个。(a)
和(b)
标签在实际图中也正确显示,这更让我困惑。
最后,我注意到在这个 MWE 中,当我调用\ref{sf:a}
和 时,\ref{sf:b}
我只得到一个1
而不是1.1(a)
或1.1(b)
。这甚至更加令人困惑,因为在我的论文中,使用类似的命令我得到了 的等价物1.1(a)
,这是我想要的效果!所以它在我的论文上正常工作是件好事,但我不知道为什么它在 MWE 中不能正常工作。
提前致谢!
答案1
为了获得正确的输出,请将其放置\label
在可选参数的内部,\subbottom
如下例所示:
\documentclass[brazilian,a4paper,12pt,oneside,openleft]{memoir}
\usepackage{graphicx} %package to manage images
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\chapter{Chapter to have proper numbering}
\begin{figure}[!hptb]
\centering
\subbottom[\label{sf:a}]{
\includegraphics[width=0.4\textwidth]{example-image-a}
%Nome da sub-Fig. para referenciá-la diretamente como 1a.
}
\hfill
\subbottom[\label{sf:b}]{
\includegraphics[width=0.4\textwidth]{example-image-b}
}
\caption{\subcaptionref{sf:a} Subfig a \subcaptionref{sf:b} Subfig b}
\label{fig:ab}
\end{figure}
Some sample text referencing Fig.~\ref{fig:ab} which contains both Fig.~\ref{sf:a} and Fig.~\ref{sf:b}.
\end{document}