
Pelo que entendi, se eu quiser usar o pacote doi e a configuração pagebackref=true para hyperref, preciso carregar o hyperref primeiro (caso contrário, doi irá carregá-lo e pagebackref=true não poderá ser definido posteriormente por \hypersetup) , algo assim:
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
Porém, quando faço isso, o pacote doi não consegue mais escapar de alguns caracteres, por exemplo, o sublinhado duplo em "COLI_a_00057" no exemplo mínimo a seguir:
\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}
Se eu incluir esta linha \usepackage[pagebackref=true]{hyperref}
Recebo uma saída de erro como esta (com um backlink funcional para a 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
Se eu removê-lo, recebo uma entrada bibliográfica funcional com link DOI para 10.1162/COLI_a_00057, mas (obviamente) nenhum backlink.
Posso usar doi e hyperref com pagebacklinks=true ?
Responder1
O backref
pacote usado para a pagebackref
opção altera os códigos de gato na bibliografia para encontrar o final das entradas da bibliografia. Isso quebra todas as coisas que dependem de determinados catcodes, como URLs, texto literal e DOIs. Conforme explicado no backref
manual, as alterações do catcode podem ser suspensas com \backrefparscanfalse
, mas é sua responsabilidade informar backref
onde terminam as entradas da bibliografia e a lista de páginas pode ser escrita. O seguinte funciona sem alterar o 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}
No caso provável de você não configurar seu thebibliography
ambiente manualmente, mas com a ajuda do BibTeX e algum estilo de bibliografia, consulteesta respostacomo alterar o estilo da bibliografia para inserir automaticamente o comando \backrefparscanfalse
e \backrefprint\backrefparscantrue
antes e depois dos itens da bibliografia.