Como visto emeste tópico, o \cite
comando apresenta erros quando o idioma selecionado é o francês e uma chave bibitem contém um :
, que é um caractere ativo no babel francês. Na verdade, os hiperlinks em questão sempre se referem à página 1 em vez da âncora do item bibliográfico.
Aparentemente, este é um bug hyperref
e pode ser resolvido de várias maneiras, por exemplo:
- envolvendo cada um
\cite
por um\selectlanguage{english}
...\selectlanguage{french}
- usando o
cite
pacote (cf.esta resposta) - etc.
Usar o cite
pacote parece a solução mais simples e elegante até agora para mim. Mas e se eunão podeusar este pacote e ainda quiser uma solução elegante, o que você acha que seria?
Responder1
Isso realmente deveria ser resolvido por hyperref
, mas aqui está um hack que parece funcionar (para os dois pontos); entretanto, a melhor coisa, quando babel-french
envolvido, é não usar dois pontos nos rótulos.
\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}
O link na página 1 apontará para o item bibliográfico.