在以下示例中:
\documentclass{memoir}
\usepackage{cleveref}
\newsubfloat{figure}
\begin{document}
\chapter{Example}
\begin{figure}
\centering
\subtop[apple]{fig 100a\label{fig:100a}}\\
\subtop[orange]{fig 100b\label{fig:100b}}
\caption{Can you handle subfigures?}
\label{fig:100}
\end{figure}
\cref{fig:100a} and \namecref{fig:100b}.
\Cref{fig:100}
\end{document}
两者\cref{fig:100a}
并\namecref{fig:100b}
生产??
所用软件包的版本是:cleveref.sty 0.17.2 和 memoir.cls v3.6。
答案1
您应该联系 cleveref 的作者 Toby Cubitt。他对错误报告反应非常迅速,cleveref 的回忆录支持非常新,而且很少经过测试。
问题是回忆录\label
在子图中重新定义,因此 cleveref 版本未被使用......
与此同时,它并不漂亮,但至少对你的例子有用:
\documentclass{memoir}
\usepackage{cleveref}
\crefname{subfigure}{fig.}{figs.}
\Crefname{subfigure}{Figure}{Figures}
\newsubfloat{figure}
\begin{document}
\makeatletter
\let\old@sf@@memsub@label=\sf@@memsub@label
\renewcommand*{\sf@@memsub@label}[1]{%
\@bsphack%
\old@sf@@memsub@label{#1}%
\protected@write\@auxout{}%
{\string\newlabel{cref@#1}{{\cref@currentlabel}{\thepage}}}%
\@esphack}
\makeatother
\chapter{Example}
\begin{figure}
\centering
\subtop[apple]{fig 100a\label{fig:100a}}\\
\subtop[orange]{fig 100b\label{fig:100b}}
\caption{Can you handle subfigures?}
\label{fig:100}
\end{figure}
\cref{fig:100a} and \namecref{fig:100a}.
\Cref{fig:100}
\end{document}