Cleveref отображает ?? 3.2.2 вместо правильного имени ссылки

Cleveref отображает ?? 3.2.2 вместо правильного имени ссылки

Я пытаюсь использовать cleverref для своих ссылок, но пока это не работает для меня. В настоящее время моя настройка выглядит так:

\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}

введите описание изображения здесь

Связанный контент