在这个时代,如果我拿到一篇论文的电子版并偶然发现一个参考文献,我宁愿直接访问该参考文献的网页,而不是先被重定向到 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}