Problemas de referencia de figuras usando hyperref

Problemas de referencia de figuras usando hyperref

Mi problema parece simple aunque todavía no pude encontrar ninguna solución. Estoy escribiendo mi tesis en LaTeX, pero soy totalmente nuevo en este tipo de lenguaje.

Estoy tratando de hacer referencia a una figura como:

(see Figure~\ref{fig:transistor1})

mientras que la cifra se define justo después de la referencia como:

\begin{figure}[htb]
\centering
\includegraphics[width=0.4\linewidth]{./_pic/transistor1}
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

Durante la compilación me sale el error "El párrafo finalizó antes de que se completara \Hy@setref@link", y por supuesto en el pdf compilado no hay ningún número después de la palabra Figura, además también falta el símbolo ).

Intenté cambiar el orden de la figura y su referencia, dejando las marcas () pero nada ayudó.

Estoy esperando su ayuda chicos, y gracias de antemano :)

Actualizar: MWE:

\documentclass[a4paper,12pt,twoside,openright]{report}

\usepackage[pdfusetitle, colorlinks, filecolor={[rgb]{0,0,1}},urlcolor={[rgb]{0,0,1}}, citecolor={[rgb]{0,0,0.4}}, linkcolor={[rgb]{0,0,0.4}}, bookmarks]{hyperref}

\begin{document}
\chapter{MEMS technology}

\ref{fig:transistor1}

\begin{figure}[htb]
\centering
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

\end{document}

Ahora bien, si compila esto sin el paquete hyperref, que con él, puede obtener el mismo error. Si compila nuevamente, el error desaparece en el MWE (sin embargo, en todo el documento el error permanece).

Actualización n.º 2: Ahora que he logrado encontrar el MWE adecuado, el problema ocurre cuando se usa el comando \selectlanguage:

\documentclass[a4paper,12pt,twoside,openright]{report}
\usepackage[british,german,hungarian]{babel}
\usepackage[pdfusetitle, colorlinks, filecolor={[rgb]{0,0,1}},urlcolor={[rgb]{0,0,1}}, citecolor={[rgb]{0,0,0.4}}, linkcolor={[rgb]{0,0,0.4}}, bookmarks]{hyperref}

\begin{document}
\selectlanguage{british}
\chapter{MEMS technology}

\ref{fig:transistor1}

\begin{figure}[htb]
\centering
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

\end{document}

Gracias de antemano Adán

Respuesta1

Paquete hyperrefcon paquete namerefcambia el formato de datos internos de los \labeldatos, porque necesitan datos adicionales. Por lo tanto, se pueden generar errores si los datos del .auxarchivo se escriben mediante combinaciones de paquetes diferentes, especialmente con o sin hyperref/ nameref.

Soluciones alternativas:

  • En este caso, se puede ignorar el error, .auxse escribe un nuevo archivo y la siguiente ejecución de LaTeX debería estar bien.

  • O elimine los archivos auxiliares, si se agregan o eliminan hyperref/ (o algunos otros paquetes).nameref

Respuesta2

Encontré la respuesta: si usa "húngaro" como último idioma en las opciones del paquete babel, se produce el error. Si utiliza otras permutaciones, el código se compilará sin ningún problema...

información relacionada