Wie in ... gesehendieser Thread, der \cite
Befehl weist Fehler auf, wenn die ausgewählte Sprache Französisch ist und ein Bibitem-Schlüssel ein enthält :
, das in Babel-Französisch ein aktives Zeichen ist. Tatsächlich verweisen betroffene Hyperlinks immer auf Seite 1 statt auf den Anker zum Bibliographieeintrag.
Offensichtlich handelt es sich hierbei um einen Fehler hyperref
und er kann auf verschiedene Weise behoben werden, z. B.:
- jeweils umschließend
\cite
durch ein\selectlanguage{english}
...\selectlanguage{french}
- unter Verwendung des
cite
Pakets (vgl.diese Antwort) - usw.
Die Verwendung des cite
Pakets scheint mir bisher der einfachste und eleganteste Workaround zu sein. Aber was, wenn ichkann nichtSie verwenden dieses Paket und möchten dennoch eine elegante Lösung? Was wäre Ihre Meinung nach die beste Lösung?
Antwort1
Dies sollte wirklich durch gelöst werden hyperref
, aber hier ist ein Hack, der (für den Doppelpunkt) zu funktionieren scheint. Wenn jedoch einer beteiligt ist, ist es am besten, babel-french
in Beschriftungen keine Doppelpunkte zu verwenden.
\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}
Der Link auf Seite 1 verweist auf das Bibliographieelement.