使用 biblatex 禁用 ISSN 但保留 ISBN

使用 biblatex 禁用 ISSN 但保留 ISBN

我正在写一个文档,希望ISBN在书籍中显示 s,因此我打开了该isbn选项。这样,ISSN当我引用一篇文章时,就会显示期刊的 s。有没有办法启用ISBNs 但禁用ISSNs?它们似乎由引用手册时的相同选项控制。如果有帮助的话,biblatex我也在使用样式。biblatex-chem

答案1

您可以清除该字段的内容issn这个帖子为您提供两个选择:

  1. 调用\clearfield{issn}\AtEveryBibitem也许\AtEveryCitekey)。
  2. 使用的源映射功能将字段设置issn为空。biber

这是第一种方法的示例。

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex,style=chem-rsc,isbn=true]{biblatex}

\AtEveryBibitem{\clearfield{issn}}
\AtEveryCitekey{\clearfield{issn}}

\begin{filecontents}{\jobname.bib}
@Periodical{jcg,
  title = {Computers and Graphics},
  issuetitle = {Semantic {3D} Media and Content},
  volume = {35},
  number = {4},
  year = {2011},
  issn = {0097-8493}}
@Article{sarfraz,
  author = {M. Sarfraz and M. F. A. Razzak},
  title = {Technical section: {An} algorithm for automatic capturing of the font outlines},
  journal = {Computers and Graphics},
  volume = {26},
  number = {5},
  pages = {795--804},
  year = {2002},
  issn = {0097-8493}}
@Manual{cms,
  label = {CMS},
  title = {The Chicago Manual of Style},
  subtitle = {The Essential Guide for Writers, Editors, and Publishers},
  edition = {15},
  publisher = {University of Chicago Press},
  location = {Chicago, Ill.},
  date = {2003},
  isbn = {0-226-10403-6}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\fullcite{jcg,sarfraz,cms}
\printbibliography
\end{document}

enter image description here

你可以issn更有选择地抑制该场。例如

\AtEveryBibitem{\ifentrytype{article}{\clearfield{issn}}{}}

将打印issn参考书目@periodical中的条目。

在第二种方法中,源映射可以通过两种方式完成:

  • \DeclareSourcemapbiblatex 2.0在文档序言中。此功能在/中引入biber 1.0
  • sourcemap文件中的选项。biber.conf配置文件将覆盖序言中完成的任何源映射。

为了演示,\DeclareSourcemap我们使用相同的文档,但带有序言:

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=chem-rsc,isbn=true]{biblatex}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{article}
       \step[fieldset=issn, null]
    }
  }
}

\begin{filecontents}{\jobname.bib}
...

此源映射将issn仅在@article条目中抑制。要issn在所有条目类型中省略,请删除\pertype{article}

下面的biber配置文件将执行相同的源映射:

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <sourcemap>
    <maps datatype="bibtex" map_overwrite="1">
      <map>
        <per_type>ARTICLE</per_type>
        <map_step map_field_set="ISSN" map_null="1"/>
      </map>
    </maps>
  </sourcemap>
</config>

在这里我们可以删除所有条目类型中的<per_type>ARTICLE</per_type>抑制内容issn。将此文件保存biber.conf在与文档相同的文件夹中。

在任何一种源映射方法中,假设文档保存为test.tex。在命令行中,您可以调用:

latex test
biber test
latex test

有关源映射的更多详细信息,请参阅biber手册。有关更多\DeclareSourcemap示例,请参阅biblatex手册。

相关内容