使用 biblatex nature.bbx 类抑制 *一些* URL

使用 biblatex nature.bbx 类抑制 *一些* URL

我正在使用 Nature biblatex 样式和 bibtex 来排版参考书目,并希望禁止 URL 出现在“论文”条目类型(如书籍、期刊文章和论文集)中。如果我使用 url=none,则 URL 在所有地方都会被禁止,包括在线资源。我需要避免这种情况。有办法吗?

更新 我使用 Mendeley 来管理参考书目。以下是 bib 文件中的两个 @book 示例:

@book{SnyderLove1983,
  address = {London},
  author = {Snyder, Allan and Love, John},
  publisher = {Chapman \& Hall},
  title = {{Optical waveguide theory}},
  url = {http://books.google.com/books?id=gIQB\_hzB0SMC},
  year = {1983}
}

@book{Agrawal01,
  author = {Agrawal, Govind P.},
  edition = {3rd},
  pages = {467},
  publisher = {Academic Press},
  series = {Optics and Photonics},
  title = {{Nonlinear Fiber Optics}},
  url = {http://www.elsevierdirect.com/product.jsp?isbn=9780120451432},
  year = {2001}
}

这是@inproceedings:

@inproceedings{Liao2011,
  author = {Liao, Changrui and Wang, Dongming and He, Xiaoying and Yang, Minwei},
  booktitle = {Proceedings of SPIE},
  doi = {10.1117/12.885826},
  number = {13},
  pages = {77534I--77534I--4},
  title = {{Twisted optical microfiber for refractive index sensing}},
  url = {http://link.aip.org/link/?PSISDG/7753/77534I/1 http://link.aip.org/link/PSISDG/v7753/i1/p77534I/s1\&Agg=doi},
  volume = {23},
  year = {2011}
}

在 @inproceedings 记录中,Mendeley 在 bib 文件中连接了两个 URL。显然,这是一个错误。

答案1

这在样式中很难处理,因为它取决于人们如何在数据库中存储数据。(不同的用户对于哪些类型应该包含 URL 和不应该包含 URL 有不同的看法。)但是,在文档中,使用biblatex访问数据模型的能力应该很容易处理。例如,类似

\AtEveryBibitem{%
  \ifentrytype{book}
    {\clearfield{url}}
    {}%
}

将清除所有书籍的 URL 字段。使用布尔表达式,可以将其扩展为多种条目类型

\AtEveryBibitem{%
  \ifboolexpr
    {
      test { \ifentrytype{book} }
      or
      test { \ifentrytype{inbook} }
      or
      test { \ifentrytype{inproceedings} }
    }
    {\clearfield{url}}
    {}%
}

相关内容