為什麼 \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} 

在此輸入影像描述

編輯:

根據包作者的說法,上面的引用要么引用(!)引用(!! - 不聰明)只是 subfloat 組件(ab),要么是包的先前版本的遺留物。

相關內容