如何仅针对某些条目类型(例如 inproceedings)抑制某些 .bib 字段(例如年份)

如何仅针对某些条目类型(例如 inproceedings)抑制某些 .bib 字段(例如年份)

如何才能抑制 类型的条目在参考书目中显示年份@inproceedings?在我的特定情况下,年份隐含在书名中(例如 FOCS '09),因此当我需要节省空间时,年份是多余的。我发现http://www.latex-community.org/forum/viewtopic.php?f=50&t=11447“第二种解决方案”看起来很有希望,但我不确定如何将其翻译为仅隐藏一种条目的年份。我猜\ifentrytype可能会有帮助。我正在使用biblatex+ biber

答案1

\documentclass{article}

\usepackage{biblatex}

\AtEveryBibitem{%
  \ifentrytype{inproceedings}{%
    \clearfield{year}%
  }{%
  }%
}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@inproceedings{B09,
  author = {Buthor, B.},
  editor = {Cuthor, C.},
  year = {2009},
  title = {Bravo},
  booktitle = {FOCS'09},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}

答案2

或者,您可以在数据到达 biblatex 之前执行此操作。假设 biber 0.9.8+;将其放入您的 biber:conf 中:

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

相关内容