使用 varioref 和 cleveref 时 hyperref 的影响

使用 varioref 和 cleveref 时 hyperref 的影响

我想我可能在 或 中发现了一个错误hyperrefcleverefvarioref无法进一步确定细节。如果不加载hyperref以下示例中的内容,则结果很好。

\documentclass[ngerman]{scrartcl}

\usepackage{babel}
%\usepackage{hyperref}
\usepackage{varioref}
\usepackage{cleveref}

\begin{document}

\section{Erster Abschnitt}\label{sec}

\begin{figure}
\rule{\textwidth}{1cm}
\caption{bild}\label{bild}
\end{figure}

Siehe \vref{sec}, siehe \vref{bild}

\end{document} 

没有 hyperref 也能取得很好的效果

如果我加载hyperref对无法扩展的部分的引用,我会收到以下错误:

! Argument of \@fourthoffive has an extra }.
<inserted text> 
                \par 
l.19 Siehe \vref{sec}
                     , siehe \vref{bild}
? 

hyperref 的结果不好

知道这个错误可能是由哪个包引起的吗?

答案1

先加载varioref,然后hyperref,然后cleveref。请参阅cleveref手册的第 14.1 节。

\documentclass[ngerman]{scrartcl}

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

\begin{document}

\section{Erster Abschnitt}\label{sec}

\begin{figure}
\rule{\textwidth}{1cm}
\caption{bild}\label{bild}
\end{figure}

Siehe \vref{sec}, siehe \vref{bild}

\end{document}

在此处输入图片描述

相关内容