我希望在我的 Tufte 风格文档中有反向引用。
我首先创建了一个最小的工作示例,该示例使用文章文档类创建反向引用,基于这个答案其工作符合预期。
然后,我尝试进行最小程度的调整,使其也能与 Tufte 文档类配合使用。但这没有奏效。我发现在运行时pdflatex
,我收到了一条警告:
Package hyperref Warning: Option `backref' has already been used,
(hyperref) setting the option has no effect on input line 3.
我假设它hyperref
是由 Tufte 样式加载的,并设置了backref
选项,从而阻止我更改它。
我该怎么做才能使反向引用与 Tufte 文档类一起工作?
下面是我使用文章类成功创建反向引用的示例:
\documentclass{article}
\usepackage[backref=page]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\BR@backref}{\newblock}{\newblock[page~}{}{}
\patchcmd{\BR@backref}{\par}{]\par}{}{}
\makeatother
\title{My Title}
\author{My Name}
\begin{document}
\maketitle
I cite a book~\cite{key}.
I cite that book again~\cite{key}.
\bibliographystyle{plainnat}
\bibliography{biblio.bib}
\end{document}
它产生包含反向引用的输出[page 1]
:
以下是我尝试将其转换为与 Tufte 兼容的内容:
\documentclass[symmetric,justified]{tufte-book}
\hypersetup{backref=page}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\BR@backref}{\newblock}{\newblock[page~}{}{}
\patchcmd{\BR@backref}{\par}{]\par}{}{}
\makeatother
\title{My Title}
\author{My Name}
\begin{document}
\maketitle
I cite a book~\cite{key}.
I cite that book again~\cite{key}.
\bibliographystyle{plainnat}
\bibliography{biblio.bib}
\end{document}
这将生成一个包含三页的文档,正确使用 Tufte 边距引用,但缺少向后的页面引用,这是有道理的,因为警告说我无法重置该backref
选项。
以下是我的参考书目文件,以防相关:
@book{key,
author={Some Author},
title={Title},
publisher={Publisher},
year={2001}
}
我正在使用pdflatex
并bibtex
从命令行来构建我的文档。