为什么 \cref 命令无法区分两个子图?

为什么 \cref 命令无法区分两个子图?

在此处输入图片描述

我的问题是cref命令没有根据环境分配的数字引用图形subfigures。这是源代码:

\documentclass{report}


\usepackage{subfloat}
\usepackage{caption}
\usepackage{cleveref}

\begin{document}


\begin{subfigures}

    % Subfigure 1
    \begin{figure}

        \centering
        \fbox{\Huge Figure 1}

        \label{fig1}
        \caption{Caption 1}

    \end{figure}


    % Subfigure 2
    \begin{figure}

        \centering
        \fbox{\Huge Figure 2}

        \label{fig2}
        \caption{Caption 2}

    \end{figure}


\end{subfigures}


\centering Reference to Figure 1a typesets as \textbf{\cref{fig1}} 

\centering Reference to Figure 1b typesets as \textbf{\cref{fig2}}

\centering The referencing output should be something like this: \textbf{fig. 1a} and \textbf{fig. 1b}

\end{document}

答案1

来自以下文档cleveref

Cleveref 不知道 subfloat 包,因此您必须恢复使用 \ref 来交叉引用子图。(可能会在未来版本中修复。)

自 2013 年以来没有更新,但您可以自己做(请注意,您可以将定义放在文件中cleveref.cfg):

\documentclass{report}
\usepackage{subfloat}
\usepackage{caption}
\usepackage{cleveref}
  \Crefname{subfigures}{figure}{figures}%
  \Crefname{subfigures}{Figure}{Figures}%


\begin{document}

\begin{subfigures}
    % Subfigure 1
    \begin{figure}
        \centering
        \fbox{\Huge Figure 1}
        \caption{Caption 1}\label{fig1}
    \end{figure}
    % Subfigure 2
    \begin{figure}
        \centering
        \fbox{\Huge Figure 2}
        \caption{Caption 2}\label{fig2}
    \end{figure}
\end{subfigures}
\centering Reference to Figure 1a typesets as \textbf{\cref{fig1}}
\centering Reference to Figure 1b typesets as \textbf{\cref{fig2}}.
\centering The referencing output should be something like this: \textbf{\ref{fig1}} and \textbf{\ref{fig2}}

\end{document} 

在此处输入图片描述

编辑

根据该软件包的作者的说法,上面的引用要么是指(!)引用(!!——不太聪明)仅引用子浮点组件(ab,要么是该软件包先前版本的遗留物。

相关内容