使用 hyperref 和 natbib 进行手动引用链接

使用 hyperref 和 natbib 进行手动引用链接

当人们想要手动超链接到\label目标时,可以使用\hyperref[label]{text}

但是,如果我们想创建一个指向参考书目中某个项目的链接,并使用用户定义的文本和相同的颜色,\cite

我宁愿不必到处使用\citealias(这可能是正确答案,但我们在这个项目中有点晚了)

有任何想法吗?

答案1

hyperref的锚点名为keycite.key它是一个锚点,而不是标签,因此您必须使用\hyperlink而不是\hyperref,但这不会使用正确的链接边框颜色等。在下面,我改为提供\hyperlinkcite,您只需为其提供 citekeylink textas 参数:

\documentclass{article}

\usepackage{natbib}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@Book{test1,
  author    = {Goossens, Michel and Mittelbach,
               Frank and Samarin, Alexander},
  title     = {The LaTeX Companion},
  publisher = {Addison-Wesley},
  location  = {Reading, Mass.},
  year      = {1994},
}
\end{filecontents}
\bibliographystyle{plainnat}

\makeatletter
\newcommand*{\hyperlinkcite}[1]{\hyper@link{cite}{cite.#1}}%\hyperlinkcite takes 2 arguments: #1<- cite-key, #2<- link-text
\makeatother


\begin{document}
\citep{test1}, \hyperlinkcite{test1}{test!}

\bibliography{\jobname}
\end{document}

(示例bib文件从其他地方借用!)

确保引用实际上\cite在某处得到正确引用(或\nocite引用等),否则它可能不会出现在参考书目中。

相关内容