Beamer の \autoref で自然な名前が見つかりません。Beamer のバグでしょうか?

Beamer の \autoref で自然な名前が見つかりません。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}

ここに画像の説明を入力してください

関連情報