
So wie ich es verstehe, muss ich, wenn ich sowohl das doi-Paket als auch die Einstellung pagebackref=true für hyperref verwenden möchte, zuerst hyperref laden (da es sonst von doi geladen wird und pagebackref=true anschließend nicht von \hypersetup festgelegt werden kann), und zwar etwa so:
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
Wenn ich dies jedoch mache, kann das doi-Paket einige Zeichen nicht mehr maskieren, beispielsweise den doppelten Unterstrich in „COLI_a_00057“ im folgenden Minimalbeispiel:
\documentclass{article}
% Remove the {hyperref} line below to get this to compile
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
\begin{document}
\cite{fort:cl11}
\begin{thebibliography}{1}
\bibitem[{Fort et~al.(2011)Fort, Adda, and Cohen}]{fort:cl11}
Fort, Karën; Gilles Adda; and K.~Bretonnel Cohen (2011).
\newblock {Amazon Mechanical Turk}: Gold mine or coal mine?
\newblock \emph{Computational Linguistics}, 37(2):413--420.
\newblock \doi{10.1162/COLI_a_00057}.
\end{thebibliography}
\end{document}
Wenn ich diese Zeile einfüge \usepackage[pagebackref=true]{hyperref}
Ich erhalte eine Fehlerausgabe wie diese (mit einem funktionierenden Backlink zu Seite 1):
! Missing $ inserted.
<inserted text>
$
l.15
?
! Double subscript.
<argument> \Hy@safe@activesfalse 10.1162/COLI_a_
00057
l.15
?
! Missing $ inserted.
<inserted text>
$
l.15
Wenn ich es entferne, erhalte ich einen funktionierenden Bibliografieeintrag mit DOI-Link zu 10.1162/COLI_a_00057, aber (offensichtlich) keinen Backlink.
Kann ich mit pagebacklinks=true sowohl doi als auch hyperref verwenden?
Antwort1
Das backref
für diese Option verwendete Paket pagebackref
ändert Catcodes innerhalb der Bibliographie, um das Ende von Bibliographieeinträgen zu finden. Dies unterbricht alles, was auf bestimmte Catcodes angewiesen ist, wie URLs, wörtlicher Text und DOIs. Wie im backref
Handbuch erklärt, können die Catcode-Änderungen mit aufgehoben werden \backrefparscanfalse
, aber dann liegt es in Ihrer Verantwortung, anzugeben, backref
wo Ihre Bibliographieeinträge enden, und die Seitenliste kann geschrieben werden. Folgendes funktioniert ohne Änderung des DOI:
\documentclass{article}
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
\begin{document}
\cite{fort:cl11}
\begin{thebibliography}{1}
\backrefparscanfalse
\bibitem[{Fort et~al.(2011)Fort, Adda, and Cohen}]{fort:cl11}
Fort, Karën; Gilles Adda; and K.~Bretonnel Cohen (2011).
\newblock {Amazon Mechanical Turk}: Gold mine or coal mine?
\newblock \emph{Computational Linguistics}, 37(2):413--420.
\newblock \doi{10.1162/COLI_a_00057}.
\backrefprint\backrefparscantrue
\end{thebibliography}
\end{document}
Für den wahrscheinlichen Fall, dass Sie Ihre Umgebung nicht wirklich thebibliography
von Hand einrichten, sondern mit Hilfe von BibTeX und einem Bibliographiestil, lesen Sie bittediese AntwortSo ändern Sie den Bibliografiestil, um den Befehl \backrefparscanfalse
„und“ automatisch \backrefprint\backrefparscantrue
vor und nach Bibliografieeinträgen einzufügen.