hyperref
Wenn ich und zusammen verwende beamer
, stoße ich auf das folgende Problem. Der Befehl \autoref
, der den Namen des referenzierten Elements hinzufügen soll, funktioniert nicht.
Hier ist ein Minimalbeispiel, das das Problem veranschaulicht
\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}
Das Ergebnis ist folgendes
Beachten Sie, dass der Name „Unit“ in der generierten Referenz nicht erscheint.
Antwort1
Wenn wir uns die von Ihrem Code generierte Datei ansehen .aux
, finden wir
\newlabel{first}{{1}{1}{My first section}{Doc-Start}{}}
Durch das Entfernen naturalnames
wird das Problem nicht behoben.
Andererseits das Dokument
\documentclass{article}
\usepackage{hyperref}
\renewcommand{\sectionautorefname}{Unit}
\begin{document}
\section{First}\label{first}
\autoref{first}
\end{document}
wird herstellen
\newlabel{first}{{1}{1}{First}{section.1}{}}
in die .aux
Datei und drucken Sie dann „Einheit 1“ aus.
Die Verwendung cleveref
scheint viel einfacher:
\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}