![使用 hyperref 和 natbib 进行手动引用链接](https://linux22.com/image/259954/%E4%BD%BF%E7%94%A8%20hyperref%20%E5%92%8C%20natbib%20%E8%BF%9B%E8%A1%8C%E6%89%8B%E5%8A%A8%E5%BC%95%E7%94%A8%E9%93%BE%E6%8E%A5.png)
当人们想要手动超链接到\label
目标时,可以使用\hyperref[label]{text}
。
但是,如果我们想创建一个指向参考书目中某个项目的链接,并使用用户定义的文本和相同的颜色,\cite
我宁愿不必到处使用\citealias
(这可能是正确答案,但我们在这个项目中有点晚了)
有任何想法吗?
答案1
hyperref
的锚点名为key
。cite.key
它是一个锚点,而不是标签,因此您必须使用\hyperlink
而不是\hyperref
,但这不会使用正确的链接边框颜色等。在下面,我改为提供\hyperlinkcite
,您只需为其提供 citekey
和link text
as 参数:
\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
引用等),否则它可能不会出现在参考书目中。