考虑以下 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
的 的使用?ids
crossref
此外,为什么编辑文件以删除中.bib
的使用,将其替换为,不足以在另一个编译周期后解决问题?要解决这个问题,我必须删除/文件并强制重写它们。即使我删除了 中对 或的所有引用,情况也是如此。例如,即使我将文件更改为coll
incoll
collect
.bcf
.bbl
coll
collect
incoll
.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 版本中修复。