带有 varioref 和 cleverref 的子方程

带有 varioref 和 cleverref 的子方程

有人能告诉我为什么这个例子中的引用不起作用吗?

\documentclass{article}

\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}

\usepackage{amsmath}

\begin{document}
Some group of equations:
\begin{subequations}
    \begin{align}
        f(x) &= x \label{eq1} \\
        g(x) &= x+1 \label{eq2} \\
        h(x) &= x+2 \label{eq3} \\
        k(x) &= x+3 \label{eq4}
    \end{align}
    \label{all-eq}
\end{subequations}
Reference to \eqref{eq1} works but a \vrefrange{eq1}{eq4} or 
\crefrange{eq1}{eq4} or \cref{eq1,eq2,eq3,eq4} or 
\vref{eq1,eq2,eq3,eq4} fail

\end{document}

这给了我: 输出

答案1

这是一个典型的错误:加载使用计数器和特殊引用格式的包cleveref是错误的,因为这个包在后台使用了复杂的宏,嗯,进行巧妙的引用;-)

cleveref应该是最后的要加载的包,甚至 hyperref

\documentclass{article}


\usepackage{amsmath}

\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}

\begin{document}
Some group of equations:
\begin{subequations}
    \begin{align}
        f(x) &= x \label{eq1} \\
        g(x) &= x+1 \label{eq2} \\
        h(x) &= x+2 \label{eq3} \\
        k(x) &= x+3 \label{eq4}
    \end{align}
    \label{all-eq}
\end{subequations}
Reference to \eqref{eq1} works but a \vrefrange{eq1}{eq4} or 
\crefrange{eq1}{eq4} or \cref{eq1,eq2,eq3,eq4} or 
\vref{eq1,eq2,eq3,eq4} fail

\end{document}

在此处输入图片描述

相关内容