当 DOI 存在时,Biblatex 书目样式不包含 URL(在 Overleaf 中使用 Zotero 书目)

当 DOI 存在时,Biblatex 书目样式不包含 URL(在 Overleaf 中使用 Zotero 书目)

我在 Overleaf 中有一个 Zotero 书目。我使用biblatex

\usepackage[backend=biber,citestyle=authoryear]{biblatex}
\addbibresource{zoteroALH.bib}

书目条目如下:

@book{de_saint-gervais_uniformization_2016,
    title = {Uniformization of {Riemann} {Surfaces}},
    isbn = {978-3-03719-145-3},
    url = {https://www.ems-ph.org/books/book.php?proj_nr=198&srch=series%7Chem},
    urldate = {2019-02-03},
    author = {de Saint-Gervais, Paul Henri},
    year = {2016},
    doi = {10.4171/145}
}

在论文下面的参考书目中,参考文献显示如下:在此处输入图片描述 有 DOI,很棒,但是也有 URL,但有 DOI 时 URL 就没有必要了。

当 DOI 存在时,如何删除 URL?

答案1

我确实认为会有重复的,但我找不到好的。(Biblatex:仅当没有 URL 时才使用 doi要求相反,并有一个 sourcemap 解决方案。bib 文件中存在冗余:如果与 doi 相同则有条件地抑制 url?要求的东西略有不同,并且不是针对特定的biblatex,但有一些biblatex答案,尽管它们都没有使用源图。仅当 doi 不存在时才打印 url非常接近,问题另外询问eprint,但这可能被忽略。)

我的首选解决方案是使用 Biber 源图来完全删除urlurldate字段(如果doi存在)。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}
\usepackage[colorlinks]{hyperref}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=doi,final]
      \step[fieldset=url,null]
      \step[fieldset=urldate,null]
    }  
  }
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{de_saint-gervais_uniformization_2016,
  title   = {Uniformization of {Riemann} {Surfaces}},
  isbn    = {978-3-03719-145-3},
  url     = {https://www.ems-ph.org/books/book.php?proj_nr=198&srch=series%7Chem},
  urldate = {2019-02-03},
  author  = {de Saint-Gervais, Paul Henri},
  year    = {2016},
  doi     = {10.4171/145}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\cite{de_saint-gervais_uniformization_2016}
\printbibliography
\end{document}

圣热尔韦,保罗·亨利(2016 年)。黎曼曲面的均匀化。国际书号:978-3-03719-145-3。 doi: 10.4171/145。

相关内容