
Según tengo entendido, si quiero usar tanto el paquete doi como la configuración pagebackref=true para hyperref, primero necesito cargar hyperref (ya que, de lo contrario, doi lo cargará y pagebackref=true no puede configurarse posteriormente mediante \hypersetup) , algo como esto:
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
Sin embargo, cuando hago esto, el paquete doi ya no puede escapar de algunos caracteres, por ejemplo, el doble guión bajo en "COLI_a_00057" en el ejemplo mínimo que sigue:
\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}
Si incluyo esta línea \usepackage[pagebackref=true]{hyperref}
Recibo un resultado de error como este (con un vínculo de retroceso funcional a la página 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
Si lo elimino, obtengo una entrada de bibliografía funcional con un enlace DOI a 10.1162/COLI_a_00057 pero (obviamente) sin vínculo de retroceso.
¿Puedo usar doi e hyperref con pagebacklinks=true?
Respuesta1
El backref
paquete que se utiliza para la pagebackref
opción cambia los códigos cat dentro de la bibliografía para encontrar el final de las entradas de la bibliografía. Esto rompe todo lo que depende de ciertos catcodes como URL, texto textual y DOI. Como se explica en el backref
manual, los cambios de catcode se pueden suspender con \backrefparscanfalse
, pero luego es su responsabilidad indicar backref
dónde terminan las entradas de su bibliografía y se puede escribir la lista de páginas. Lo siguiente funciona sin alterar el 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}
En el caso probable de que no configure su thebibliography
entorno a mano, sino con la ayuda de BibTeX y algo de estilo bibliográfico, consulteesta respuestacómo cambiar el estilo de la bibliografía para insertar automáticamente el comando \backrefparscanfalse
y \backrefprint\backrefparscantrue
antes y después de los elementos de la bibliografía.