圣尼古拉斯空降礼物分发:Biblatex/Biber 在使用 id 时可以遵守 mincrossrefs 吗?为什么无效的条目会拒绝删除?

圣尼古拉斯空降礼物分发:Biblatex/Biber 在使用 id 时可以遵守 mincrossrefs 吗?为什么无效的条目会拒绝删除?

考虑以下 MWE:

\begin{filecontents}{\jobname.bib}
@incollection{incoll,
  author    =   {Claus, Santa},
  title     =   {The Aerodynamics of Modern the Modern Sleigh},
  pages     =   {34--98},
  crossref  =   {coll}}
@collection{collect,
  ids       =   {coll},
  title     =   {Airborne Gift Distribution: Technical Considerations},
  editor    =   {Nicholas, Saint},
  year      =   2013,
  publisher =   {Rudolph Press},
  address   =   {Greenland}}
\end{filecontents}
\documentclass{article}
\usepackage[mincrossrefs=6]{biblatex}
\bibliography{\jobname}
\begin{document}

\Textcite{incoll}.

\printbibliography

\end{document}

我本以为这会生成一个只有一条条目的参考书目。但是,我得到了两条。

一个条目太多

这是处理 时的另一个错误吗ids?还是这是预料之中的?我如何才能停止它,而不必遍历所有文件以删除其他条目中.bib的 的使用?idscrossref

此外,为什么编辑文件以删除中.bib的使用,将其替换为,不足以在另一个编译周期后解决问题?要解决这个问题,我必须删除/文件并强制重写它们。即使我删除了 中对 或的所有引用,情况也是如此。例如,即使我将文件更改为collincollcollect.bcf.bblcollcollectincoll.bib

@article{incoll,
  author    =   {Claus, Santa},
  title     =   {The Aerodynamics of Modern the Modern Sleigh},
  pages     =   {34--98},
  year      =   2013,
  volume    =   99,
  journal   =   {Airborne Gift Distribution: Technical Considerations}}
@collection{collect,
  ids       =   {coll},
  title     =   {Airborne Gift Distribution: Technical Considerations},
  editor    =   {Nicholas, Saint},
  year      =   2013,
  publisher =   {Rudolph Press},
  address   =   {Greenland}}
\end{filecontents}

并重新运行该序列pdflatex -> biber -> pdflatex几次,我的参考书目将collect永远包含该条目。只有手动删除bbl/bcf并重新运行该序列才能摆脱这个问题。

我对这种行为感到困惑:难道不是.bcf在新运行的 时重写的吗pdflatex?难道不是.bbl在新运行的 时重写的biber吗?如果没有错误阻止文件被重写,为什么需要手动删除它们以删除无效的条目?还有其他我应该知道可能发生这种情况的情况吗?

答案1

这是一个错误,已在 Biber 2.8 DEV 版本中修复。

相关内容