Отсутствуют естественные имена с \autoref в Beamer. Ошибка в Beamer?

Отсутствуют естественные имена с \autoref в Beamer. Ошибка в Beamer?

Используя hyperrefи beamerвместе, я сталкиваюсь со следующей проблемой. Команда, \autorefкоторая должна добавлять имя ссылочного элемента, не работает.

Вот минимальный пример, демонстрирующий проблему.

\PassOptionsToPackage{naturalnames}{hyperref}
\documentclass{beamer}
\usepackage[naturalnames]{hyperref}
\hypersetup{naturalnames}
\renewcommand{\sectionname}{Unit}
\begin{document}
  \section{My first section} \label{first}
  \begin{frame}
    See \autoref{second}.
  \end{frame}
  \section{My second section} \label{second}
  \begin{frame}
    See \autoref{first}.
  \end{frame}
\end{document}

Что дает следующий вывод

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

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

Обратите внимание, что название «Unit» не отображается в сгенерированной ссылке.

решение1

Если мы посмотрим на .auxфайл, сгенерированный вашим кодом, мы найдем

\newlabel{first}{{1}{1}{My first section}{Doc-Start}{}}

Удаление naturalnamesне решит проблему.

С другой стороны, документ

\documentclass{article}
\usepackage{hyperref}
\renewcommand{\sectionautorefname}{Unit}

\begin{document}

\section{First}\label{first}

\autoref{first}

\end{document}

будет производить

\newlabel{first}{{1}{1}{First}{section.1}{}}

в .auxфайле, а затем напечатайте «Unit 1».

Использование cleverefкажется намного проще:

\documentclass{beamer}
\usepackage{cleveref}
\crefname{section}{Unit}{Units}

\begin{document}

\section{My first section}\label{first}

\begin{frame}

See \cref{first}.

\end{frame}

\end{document}

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

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