Wie lässt man Hyperref mit Bibitem-Schlüsseln funktionieren, die einen Doppelpunkt enthalten und die französische Option von Babel verwenden?

Wie lässt man Hyperref mit Bibitem-Schlüsseln funktionieren, die einen Doppelpunkt enthalten und die französische Option von Babel verwenden?

Wie in ... gesehendieser Thread, der \citeBefehl 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 hyperrefund er kann auf verschiedene Weise behoben werden, z. B.:

  • jeweils umschließend \citedurch ein \selectlanguage{english}...\selectlanguage{french}
  • unter Verwendung des citePakets (vgl.diese Antwort)
  • usw.

Die Verwendung des citePakets 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-frenchin 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.

verwandte Informationen