我使用 Mendeley 导出了一个巨大的 bib 文件,其中包含我笔记本电脑上的所有文章。正如预期的那样,有很多错误的引用条目,例如缺少作者姓名等。问题是这些错误的条目似乎阻止了 biber 生成参考列表。由于有成千上万个这样的错误条目,我迫切希望找到一种自动摆脱它们的方法……或者也许我的整体策略是错误的?
答案1
理想情况下,Mendeley 应该生成格式良好的.bib
文件。根据我的经验,Mendeley 偶尔会导出有问题的条目,但不应该有大量错误条目。
.bib
文件中的错误大致有两种类型
- BibTeX 语法错误和
- LaTeX 语法错误。
虽然 Biber 和 BibTeX 不会注意到 LaTeX 语法错误,但 BibTeX 语法问题当然会在.blg
文件中被标注出来。
对于 BibTeX 语法错误,Biber 应该生成一个错误,其中包含行号或指向格式错误的条目的条目键。行号并不总是完全准确,因为错误有时只有在处理完其他代码后才会显现出来,但它们应该可以让您大致了解要查找的位置。
不幸的是,Biber 无法真正跳过大多数错误。有一种方法可以尝试让 Biber 在遇到错误后运行更长时间,但这并不能保证在这里有所帮助,并且通常不建议这样做,请参阅我如何让 biblatex 跳过不正确的 BibTeX 条目,就像 bibtex 总是做的那样?。
如果问题不是文件.bib
语法不合理,而是字段包含错误的 LaTeX 代码,则错误可能只发生在 LaTeX 运行期间,此时找到有问题的条目可能有点困难。通常,生成的 LaTeX 错误消息包含一些周围文本,这可能有助于您识别问题。
当您尝试诊断 LaTeX 中的错误时,二分搜索法总是可以提供很大的帮助。
复制一份.bib
文件并删除一半(比如说后半部分)。删除临时的.aux
、、.bbl
文件.bcf
并重新编译。如果错误消失,删除后半部分并重新添加前半部分。如果错误没有消失,则什么也不做。重复此操作,直到您隔离了有问题的条目。
一些.bib
文件 linters 列在如何验证(检查) biblatex .bib 文件?。我没用过它们,也不知道它们是否能捕捉到所有可能存在问题的相关语法错误。但它们值得一试。
答案2
感谢大家的提示。我终于知道该如何处理有问题的 bib 条目了。以下是我的方法:
- 把我所有的纸质文件夹扔进 Mendeley;
- 按类型排序。删除所有非 PDF 条目;
- 按标题排序。删除所有非英语条目;
- 按作者排序。删除所有作者为空的条目;
- 导出bib文件。在Notepad++中打开;
- 运行 biber -tool -V xx.bib (适用于 Windows);
- 如果您愿意,可以通过在 Notepad++ 中执行搜索替换来逐一修复所有错误,也许还有一些警告。
欢迎评论:)