Hyperref 带有指向 bib url 条目的内部链接

Hyperref 带有指向 bib url 条目的内部链接

使用该hypperref包时,使用\citet{}命令行natbib,内部链接将发送到文档末尾的参考书目。有没有办法配置hyperrefnatbib让浏览器直接打开参考书目的 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}

相关内容