将引文链接重定向至 DOI 而不是引文页面

将引文链接重定向至 DOI 而不是引文页面

在这个时代,如果我拿到一篇论文的电子版并偶然发现一个参考文献,我宁愿直接访问该参考文献的网页,而不是先被重定向到 PDF 参考页面,然后单击 DOI 链接(如果有的话)。

因此,我想知道如何制作biblatex/hyperref链接到 DOI \cite{}(如果可用),而不是通过将读者发送到 PDF 中的另一个位置来扰乱读者的阅读。

目前,我正在使用该序言:

\documentclass{scrartcl}
\usepackage[
    bibencoding=utf8,
    backend=biber,
    firstinits=true,
    style=numeric-comp,
    sorting=none,
    natbib=true,
    url=false,
    doi=true,
]{biblatex}
\usepackage[
    colorlinks=false,
    hidelinks=true,
    unicode
]{hyperref}
\addbibresource{bib.bib}
\begin{document}
    Blah\cite{foo}
    \printbibliography
\end{document}

bib.bib

@article{Foo,
    author = {Foo and Bar},
    title = {Foobar},
    journal = {{Foo society}},
    volume = {42},
    number = {42},
    pages = {42},
    year = {2017},
    doi = {10.1021/foo.bar},
}

答案1

\DeclareFieldFormat{bibhyperref}{%
  \iffieldundef{doi}
    {\bibhyperref{#1}}
    {\href{https://doi.org/\thefield{doi}}{#1}}}

如果有的话,会将您发送到 DOI。如果没有 DOI,则会转到最后的参考书目/参考资料。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[
    backend=biber,
    firstinits=true,
    style=numeric-comp,
    sorting=none,
]{biblatex}
\usepackage{hyperref}                   
 \addbibresource{biblatex-examples.bib}     

\DeclareFieldFormat{bibhyperref}{%
  \iffieldundef{doi}
    {\bibhyperref{#1}}
    {\href{https://doi.org/\thefield{doi}}{#1}}}

\begin{document}
  \cite{sigfridsson}

  \printbibliography
\end{document}          

相关内容