biblatex:如果可用,将整个 bib 条目超链接到 DOI、URL 或 ISBN

biblatex:如果可用,将整个 bib 条目超链接到 DOI、URL 或 ISBN

这是两个问题的结合,此外我还遇到了一个参考书目风格的问题。

我想将每个 bib 条目设置为具有以下优先级的超链接:1. DOI、2. URL、3. ISBN/ISNN。之前已展示了如何对条目标题执行此操作biblatex:使标题超链接到 DOI、URL 或 ISBN。但是,我使用的参考书目样式不显示标题 (chem-angew)。我希望整个条目成为超链接。这仅在 DOI 中实现将每个 bib 条目超链接到其 DOI 页面

我的第一个问题是,当我使用 chem-angew 样式并包含带有 DOI 的条目时,即使我在 usepackage 中包含了 DOI=false,DOI 也会显示(并且 DOI 不应该显示在 chem-angew 样式中):

\documentclass{article}
\usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
\usepackage[colorlinks]{hyperref}

\begin{filecontents}{\jobname.bib}
@article{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
doi = {doi},
url = {url},
issn = {isbn-issn},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

在此处输入图片描述

我的第二个问题是,当我添加:

\AtEveryBibitem{%
  \iffieldundef{url}
    {}
    {\href{\thefield{url}}{\usedriver{\thefield{article}}}
    \csdef{blx@bbx@\thefield{entrytype}}{}}%
}

到我的本地 biblatex.cfg 文件,bib 条目将具有 biblatex 样式,而不是像我之前的 MWE 所要求的那样具有 chem-angew 样式。

在此处输入图片描述

最后一个问题是我想添加到条目中的超链接的优先级。

答案1

这是一个尝试链接整个条目(减去标签)的解决方案。string+doiurl是简化版本的步调一致来自string+doiurlisbnbiblatex:使标题超链接到 DOI、URL 或 ISBN

\documentclass{article}
\usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
\usepackage[colorlinks]{hyperref}

\newbibmacro{string+doiurl}[1]{%
  \iffieldundef{doi}
    {\iffieldundef{url}
       {#1}
       {\href{\thefield{url}}{#1}}}
    {\href{https://doi.org/\thefield{doi}}{#1}}}

\makeatletter
\def\blx@driver#1{%
  \ifcsdef{blx@bbx@#1}
    {\usebibmacro{string+doiurl}{\csuse{blx@bbx@#1}}}
    {\ifcsdef{blx@bbx@*}
       {\blx@warning{%
          No driver for entry type '#1'.\MessageBreak
          Using fallback driver}%
        \usebibmacro{string+doiurl}{\csuse{blx@bbx@*}}}
       {\blx@error
          {No driver found}
          {I can't find a driver for the entry type
           '\abx@field@entrytype'\MessageBreak
           and there is no fallback driver either}}}}
\makeatother

\addbibresource{biblatex-examples.bib}
\nocite{sigfridsson,ctan,nussbaum}

\begin{document}
\printbibliography
\end{document}

MWE 中的参考书目截图:前两个条目分别链接到 DOI 和 URL。最后一个条目未链接,因为它缺少 <code>doi</code> 和 <code>url</code> 字段。

相关内容