我正在 Overleaf 上处理一份 LaTeX 文档,其中的参考书目位于 .bib 文件中。在整个文档中,我使用\cite{key}
获取参考书目的数字链接,但不想更改该行为。
我希望能够以允许我使用自定义文本字符串的方式引用特定实例中的书目条目。例如:
This will be bring me to the right bibliography entry \cite{key}
And I want this to also bring me to the right bibliography entry \hyperref[key]{Custom Text}
到目前为止,我已经尝试过\autoref
和\hyperref
,但简单地说,我不知道如何像使用章节、表格或图形那样链接到书目项目。
截至目前,我的代码如下所示:
\documentclass[10pt]{iopart}
\usepackage{hyperref}
\usepackage{cite}
\begin{document}
Text that is cited \cite{SomeKey}
\bibliographystyle{IEEEtran}
\bibliography{litreview.bib}
\end{document}
litreview.bib 有一堆格式如下的条目:
@article{SomeKey,
title={Title},
author={Author},
journal={Journal},
year={Year},
publisher={Publisher}
}
输出如下所示:
Text that is cited [1]
我希望在论文的其他地方,能够通过 \href 或 \hyperref 到 \cite 带我到的相同位置,但使用我自己的文本而不是 [1]。
有没有办法用自定义文本链接到参考书目中的特定条目?
答案1
假设您加载hyperref
(以及其他标准设置),您可以使用它将hyperref
链接目标设置为所有参考书目条目。这些目标可以通过cite.<entrykey>
访问\hyperlink[cite.<entrykey>]{<link text>}
。
为了获得与正常引用相同的链接颜色,我们必须借助内部命令并最终得到以下内容。
\documentclass{article}
\usepackage{hyperref}
\makeatletter
\newcommand*{\citelinktext}[2]{%
\hyper@@link[cite]{}{cite.#1}{#2}}
\makeatother
\begin{filecontents}{\jobname.bib}
@book{elk,
author = {Anne Elk},
title = {A Theory on Brontosauruses},
year = {1972},
publisher = {Monthy \& Co.},
location = {London},
}
\end{filecontents}
\begin{document}
Lorem \cite{elk}
\citelinktext{elk}{foo}
\bibliographystyle{IEEEtran}
\bibliography{\jobname}
\end{document}