使用 \cref 和 package{amsmath} 时方程引用未定义

使用 \cref 和 package{amsmath} 时方程引用未定义

当我尝试\cref{..}使用 amsmath 包引用方程式时,引用会像??输出的 pdf 中那样出现。例如

\documentclass[]{article}
\usepackage{graphicx}
\usepackage{cleveref} %for cref
\usepackage{amsmath} %for sub equation numbers and words within equations (\text)

\begin{document}


\section{Introduction}

    \begin{equation}\label{eq:solve}
    x^2 - 5 x + 6 = 0 
    \end{equation}


    Ref: \ref{eq:solve}

    CRef: \cref{eq:solve}

\end{document}

我得到输出:

在此处输入图片描述

然而,如果\usepackage{amsmath}注释掉它就\cref可以正常工作。

在此处输入图片描述

是否可以成功结合使用两者?

答案1

我尝试寻找有同样问题的其他问题,但一无所获。所以这里有一个答案:cleveref最后加载。

来自文档:

cleveref包以通常的方式加载,通过将行

\usepackage{cleveref}

在文档的序言中。但是,在cleveref与其他修改 LaTeX 引用系统的软件包一起使用时必须小心(参见第 11 节)。基本上,必须加载 cleveref最后的

问题是,amsmath为了应对,修改了引用系统\tag。因此,cleveref必须挂接到重新定义的宏,而不是原始宏。通过加载amsmath后,cleveref您不会让包有机会知道amsmath是否也请求了。

相关内容