以下代码会产生错误输出。当我将 cleveref 放在第一位时,它根本不会拾取引用。当我将 autonum 放在第一位时,会发生非常奇怪的事情。请参见下面的图片。
我找到了这个参考:在此处输入链接描述这似乎相关,但我有 autonum 版本 3.8,因此那里提到的问题应该得到修复。您觉得如何?
PS:要查看该行为,请确保在更改 autonum 和 cleveref 的顺序后清除 aux 文件。
\documentclass{amsart}
\usepackage{autonum}
\usepackage{cleveref}
\listfiles
\begin{document}
\begin{multline} \label{eq:longeq}
z=a+b+c+d+e+f+g\\
+ h+i+j+k+\ell+m+n+o+p+q+r+s+t+u+v+w+x+y.
\end{multline}
Equation \cref{eq:longeq}.
\begin{multline}
z=a+b+c+d+e+f+g\\
+ h+i+j+k+\ell+m+n+o+p+q+r+s+t+u+v+w+x+y.\label{eq:longeq2}
\end{multline}
Equation \cref{eq:longeq2}.
\begin{gather} \label{eq:shorteq}
x=y
\end{gather}
Equation \cref{eq:shorteq}
\end{document}
答案1
如果您阅读文档,这些软件包是兼容的。更具体地说,amsmath
必须在 之前加载cleveref
, 必须在 之前加载autonum
。例如:
\documentclass{article}
\usepackage{amsmath,cleveref,autonum}
\begin{document}
\begin{multline}\label{eq:a}
z=a+b+c+d+e+f+g\\
+ h+i+j+k+\ell+m+n+o+p+q+r+s+t+u+v+w+x+y.
\end{multline}
\begin{multline}\label{eq:b}
z=a+b+c+d+e+f+g\\
+ h+i+j+k+\ell+m+n+o+p+q+r+s+t+u+v+w+x+y.
\end{multline}
\begin{gather}\label{eq:c}
x=y
\end{gather}
\begin{gather}\label{eq:d}
x=y
\end{gather}
We reference the first \verb|multline| environment, but not the second, and the second \verb|gather| environment, but not the first.
Hence. only \cref{eq:a} and \cref{eq:d} will be numbered, even though all equations are labelled.
\end{document}
但是,这里与类不兼容amsart
。虽然包与标准类兼容,但切换到以下情况时效果并不好amsart
: