克萊夫雷夫顯示?? 3.2.2 代替正確的引用名稱

克萊夫雷夫顯示?? 3.2.2 代替正確的引用名稱

我正在嘗試使用 smartref 作為我的參考,但到目前為止它對我不起作用。目前我的設定如下:

\documentclass[a4paper]{article}

% PACKAGES
\usepackage[english,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[ngerman]{varioref}
\usepackage[ngerman]{cleveref}

\begin{document}

\section{Test}\label{test}

This is some text containing a self-reference \cref{test}.

\end{document}

這導致:

This is some text containing a self-reference ??.

乳膠告訴我:

LaTeX Warning: Reference `test' on page 1 undefined on input line 14.

當我第二次運行它時(僅使用pdflatex test.tex):

LaTeX Warning: \Cref reference format for label type `' undefined on input line 14.

ngerman我已經嘗試通過放入來設定全域語言\documentclass[a4paper,ngerman] ..,也嘗試過german,甚至english沒有效果。

有誰知道我做錯了什麼?

答案1

您需要更改套件載入順序。varioref應該在引用相關包之前加載hyperref並且cleveref必須是最後一個:

\documentclass[a4paper]{article}

% PACKAGES
\usepackage[english,ngerman]{babel}
\usepackage[utf8]{inputenc}

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

\begin{document}

\section{Test}\label{test}

This is some text containing a self-reference \cref{test}.

\end{document}

在此輸入影像描述

相關內容