
私の理解では、doi パッケージと hyperref の pagebackref=true 設定の両方を使用する場合は、最初に hyperref をロードする必要があります (そうしないと、doi がそれをロードし、pagebackref=true を \hypersetup でその後設定できなくなるため)。次のようになります。
\usepackage[pagebackref=true]{hyperref}
\usepackage{doi}
ただし、これを行うと、doi パッケージは一部の文字をエスケープできなくなります。たとえば、次の最小限の例の「COLI_a_00057」の二重アンダースコアなどです。
\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}
この行\usepackage[pagebackref=true]{hyperref}を含めると
次のようなエラー出力が表示されます (ページ 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
これを削除すると、10.1162/COLI_a_00057 への DOI リンクを含む実用的な参考文献エントリが得られますが、(当然ですが) バックリンクはありません。
pagebacklinks=true で doi と hyperref の両方を使用できますか?
答え1
backref
オプションに使用されるパッケージは、参考pagebackref
文献内の catcode を変更して、参考文献エントリの終わりを見つけます。これにより、URL、逐語的テキスト、DOI などの特定の catcode に依存するすべてのものが壊れます。マニュアルで説明されているように、backref
catcode の変更は で一時停止できます\backrefparscanfalse
が、その場合、参考文献エントリの終わりを知らせるのはユーザーの責任となりbackref
、ページ リストを書き込むことができます。次のコードは、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}
thebibliography
手動で環境を設定するのではなく、BibTeXと参考文献スタイルの助けを借りて設定する場合は、以下を参照してください。この答え参考文献のスタイルを変更して、参考文献項目の前後に\backrefparscanfalse
andコマンドを自動的に挿入する方法。\backrefprint\backrefparscantrue