是否可以在 biblatex 中抑制 bibtex .bbl 中的特定字段?

是否可以在 biblatex 中抑制 bibtex .bbl 中的特定字段?

我正在使用biblatex,但还不是很熟悉。

我不知道如何隐藏bibtex文件中自动生成的某些字段.bbl。例如,对于我的所有条目,我都有一个类别,用于记录该作品所用的语言。这仅适用于我自己的数据库,我不希望这些信息列在/Language末尾的参考文献中。但它还是会被列出。我的字段也是如此。有没有办法隐藏特定字段,使其不显示在“参考文献列表”中?articlebooknotes

我会写出自己的风格,但我对编程/TeX 的了解还远远不够。我注意到有一个针对 ISBN 号的解决方案(一个选项isbn=false),这正是我需要的,但适用于不同的领域。

答案1

该命令\clearlist可用于抑制类别。您可以在文档中阅读更多详细信息

texdoc biblatex

在下面的 MWE 中我用来filecontents*创建参考书目,但如果您已经有文件,.bib那么您可以删除这些行。

% this part creates mybib.bib
% delete these lines if you already have a .bib file
\begin{filecontents*}{mybib.bib}
@BOOK{Ab_Steg,
 author = "M. Abramowitz and I. A. Stegun",
 title = {Handbook of mathematical functions},
 publisher = "Dover publications",
 year = "1965",
 language="English" }
\end{filecontents*}
% end delete

\documentclass{article}
\usepackage{biblatex}

\bibliography{mybib}
\AtEveryBibitem{\clearlist{language}} % clears language
\AtEveryBibitem{\clearfield{note}}    % clears notes

\begin{document}

hello world \cite{Ab_Steg}

\printbibliography

\end{document}

编译顺序是

pdflatex myfile.tex
biber myfile.bcf
pdflatex myfile.tex
pdflatex myfile.tex

(如果您不想,则不必使用扩展。)

答案2

如果您使用的是 Biber 而不是 BibTeX,您可以在 BibLaTeX 看到任何字段之前抑制/映射它们。请参阅 Biber PDF 手册第 3.1.1 节。例如,在您的例子中,您可以将以下内容放入 biber.conf(版本 0.9.8+):

<config>
  <sourcemap>
    <maps datatype="bibtex" map_overwrite="1">
      <map>
        <map_step map_field_set="LANGUAGE" map_null="1"/>
        <map_step map_field_set="NOTES" map_null="1"/>
      </map>
    </maps>
  </sourcemap>
</config>

您也可以只针对特定条目类型执行此操作。请参阅 Biber 手册。还有一个文档级宏接口,请参阅 biblatex 2.0+ 手册。在您的序言中,您可以执行以下操作,这相当于上面的操作:

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite]{
    \map{
      \step[fieldset=language, null]
      \step[fieldset=notes, null]
    }
  }
}

相关内容