混合使用 hyperref 和 varioref

混合使用 hyperref 和 varioref

我喜欢它hyperref给我的结果

\ref{eq:first-equation}   % yields "equation (1)"

varioref给出如下结果

\vref{eq:first-equation}  % yields "1 on the following page"

vref但如果结果产生“下一页的公式 (1)”,以区别于表格等,我会更加高兴。

有什么办法可以实现这一点吗?

我目前的序言包括

% ...
\usepackage{varioref}
\usepackage{refstyle}
% ...
\usepackage[unicode=true]{hyperref}
% ...

如果重要的话,请按此顺序操作。


当我将其移除refstyle并换成时cleveref,我的所有\eqrefs 都会损坏。例如

\eqref{4-range-of-validity}

过去生产equation (8),但现在生产(??)

答案1

不要使用refstyle;而是按顺序加载variorefhyperrefcleveref包在前言中并\vref在正文中使用。(对于没有页面信息的交叉引用,请使用\cref而不是\ref。)

\documentclass{article}

\usepackage{varioref}
\usepackage{hyperref}
\usepackage[noabbrev]{cleveref}

\begin{document}

Some text. See \vref{eq:test}.

\clearpage

\begin{equation}\label{eq:test}
a^2 + b^2 = c^2
\end{equation}

\end{document}

在此处输入图片描述

相关内容