Beamer 中缺少帶有 \autoref 的自然名稱。投影機錯誤?

Beamer 中缺少帶有 \autoref 的自然名稱。投影機錯誤?

一起使用hyperrefbeamer時,我遇到以下問題。應該添加引用項目的名稱的命令\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}

在此輸入影像描述

相關內容