\label{References}
\renewcommand{\bibname}{References}
\lhead{\emph{References}}
\bibliographystyle{abbrvnat}
\bibliography{Bibliography}
我想让参考文献列表中的所有 URL 都以超链接形式显示在“URL”一词下。我有 100 多个 URL,但效果不太好。我使用的是 BibTeX;到目前为止,这abbrvnat
是最适合我的样式。
我正在使用模板,hyperref 工作正常。(我可以在文档内进行超级跳转。)有什么快速解决方案吗,即不必对每个 bib 条目手动执行此操作?
答案1
以下解决方案仅对字段内容进行操作url
。其他字段中给出的 URL 不予处理。由于正在执行超链接,因此hyperref
必须加载包。
在你的 TeX 发行版中找到该文件
abbrvnat.bst
。复制此文件,并将副本命名为myabbrvnat.bst
。(不要直接从你的 TeX 发行版中编辑原始文件。)在文本编辑器中打开
myabbrvnat.bst
。(您用于 tex 文件的编辑器就可以了。)找到函数
format.url
。在我的文件副本中,该函数从第 306 行开始。在此函数中,将行替换为
{ new.block "URL \url{" url * "}" * }
和
{ new.block "\href{" url * "}{URL}" * }
将文件保存
myabbrvnat.bst
在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择后一种方法,请务必更新 TeX 发行版的文件名数据库。通过将新书目样式指定为指令的参数来开始使用新书目样式
\bibliographystyle
。请确保再运行 LaTeX、BibTeX 和 LaTeX 两次以传播所有更改。
在下面显示的屏幕截图的 pdf 文件版本中,蓝色的“URL”存根是该问题的超链接。
生成此屏幕截图的文件main.tex
和main.bib
如下:
main.tex
\documentclass{article}
\bibliographystyle{myabbrvnat}
\usepackage{natbib}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\nocite{*}
\bibliography{main}
\end{document}
main.bib
@misc{xyz,
author = "User70997",
title = "How to show {URLs} in a bibliography as (hyperlinked) stubs?",
year = 2015,
month = "January",
url = "http://tex.stackexchange.com/q/224403/5001",
}
答案2
我个人喜欢 book 类的格式样式。因此,这里有一个示例,使用 book 类的 note 参数向此引文添加超链接,只需插入 \href{...} 命令即可
主要文件
\documentclass[a4paper,11pt]{report}
\usepackage{hyperref} %Make hyperlinks available
\usepackage{cite} %BibTeX support for bibliography and citing
\begin{document}
%An example citation
How to hyperlink all Bibliography URLs? It's easy \cite{Stack}.
\bibliography{bibl}{}
\bibliographystyle{plain}
\end{document}
bibl.bib 文件
@book{Stack,
title = "How to hyperlink all Bibliography URLs?",
author = "stackexchange",
publisher = "stackexchange",
year = "2015",
note = "\href{http://tex.stackexchange.com/questions/224403/how-to-hyperlink-all-bibliography-urls}{link-text}"
}