使用该hypperref
包时,使用\citet{}
命令行natbib
,内部链接将发送到文档末尾的参考书目。有没有办法配置hyperref
或natbib
让浏览器直接打开参考书目的 bib 条目中包含的 url(在我的情况下称为 adsurl)?
下面是我参考书目的 bib 条目示例:
@ARTICLE{Ayres(1981),
author = {{Ayres}, T.~R. and {Marstad}, N.~C. and {Linsky}, J.~L.},
title = "{Outer atmospheres of cool stars. IX. A survey of ultraviolet emission from F-K dwarfs and giants with the IUE.}",
journal = {apj},
keywords = {Chromosphere, Cool Stars, Dwarf Stars, F Stars, G Stars, Giant Stars, K Stars, Stellar Atmospheres, Ultraviolet Astronomy, Ultraviolet Spectra, Emission Spectra, Iue, Line Spectra, Protostars, Solar Wind, Stellar Coronas, Stellar Spectra, Astronomy},
year = 1981,
month = jul,
volume = {247},
pages = {545-559},
doi = {10.1086/159065},
adsurl = {https://ui.adsabs.harvard.edu/abs/1981ApJ...247..545A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
答案1
没有直接的方法可以做到这一点natbib
(或任何基于 BibTeX 的参考书目设置),因为natbib
/BibTeX 无法访问引文中的条目 URL。
解决此问题的一种方法可能是使用 查询字段usebib
。另一种解决方案是修补使用的.bst
样式,以便以可用格式导出链接 URL。
事情biblatex
变得更容易了,因为所有输入数据都可以随时获得。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{hyperref}
\DeclareFieldFormat{bibhyperref}{\usebibmacro{citelink}{#1}}
\newbibmacro*{citelink}[1]{%
\iffieldundef{doi}
{\iffieldundef{url}
{\bibhyperref{#1}}
{\href{\thefield{urlraw}}{#1}}}
{\href{https://doi.org/\thefield{doi}}{#1}}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson,ctan,worman}
\printbibliography
\end{document}