Como se vio eneste hilo, el \cite
comando falla cuando el idioma seleccionado es francés y una clave bibitem contiene :
un carácter activo en babel francés. De hecho, los hipervínculos en cuestión siempre hacen referencia a la página 1 en lugar del ancla al elemento de bibliografía.
Aparentemente, esto es un error hyperref
y se puede resolver de varias maneras, por ejemplo:
- encerrando cada uno
\cite
por un\selectlanguage{english}
...\selectlanguage{french}
- utilizando el
cite
paquete (cf.esta respuesta) - etc.
Utilizando elcite
paquete me parece la solución más simple y elegante hasta ahora. Pero ¿y si yono puedoUsa este paquete y aún quieres una solución elegante, ¿cuál crees que sería?
Respuesta1
Esto realmente debería resolverse con hyperref
, pero aquí hay un truco que parece funcionar (para los dos puntos); sin embargo, lo mejor, cuando babel-french
se trata, es no utilizar dos puntos en las etiquetas.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{etoolbox}
\usepackage{hyperref}
\makeatletter
% patch \hyper@link@ so \FDP@colonspace becomes innocuous
\patchcmd{\hyper@link@}{\begingroup}{\begingroup\def\FDP@colonspace{}}{}{}
\makeatother
\begin{document}
\cite{a:b}
\newpage
\begin{thebibliography}{1}
\bibitem{a:b} X
\end{thebibliography}
\end{document}
El enlace en la página 1 apuntará al elemento de bibliografía.