Usando hyperref
y beamer
juntos, me encuentro con el siguiente problema. El comando \autoref
que se supone debe agregar el nombre del elemento al que se hace referencia no funciona.
Aquí hay un ejemplo mínimo que demuestra el problema.
\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}
Lo que produce el siguiente resultado
Observe que el nombre "Unidad" no aparece en la referencia generada.
Respuesta1
Si miramos el .aux
archivo generado por su código, encontramos
\newlabel{first}{{1}{1}{My first section}{Doc-Start}{}}
Quitar el naturalnames
no solucionará el problema.
Por otra parte, el documento
\documentclass{article}
\usepackage{hyperref}
\renewcommand{\sectionautorefname}{Unit}
\begin{document}
\section{First}\label{first}
\autoref{first}
\end{document}
Producirá
\newlabel{first}{{1}{1}{First}{section.1}{}}
en el .aux
archivo y luego imprima “Unidad 1”.
Usar cleveref
parece mucho más fácil:
\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}