我正在迁移到新的计算机设置,当我安装 JabRef 3.8.2 时,我发现它无法读取 JabRef 3.0 创建的 .bib 文件。3140 个条目中只有 991 个出现,并且有一条错误消息(请参阅本文结尾)。
我在文本编辑器中查看了那些可能出错的行,但确实没有发现任何缺失的逗号。但这正是您所期望的,因为我从未手动编辑过 .bib 文件,它是由 JabRef 生成的。
有办法解决这个问题吗?我正在从打字疼痛中恢复过来,所以我将首先尝试不太需要打字的方法。
错误信息如下:
1. 解析条目时发生错误:‘第 4815 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 2. 解析条目时发生错误:‘第 6304 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 3. 解析条目时发生错误:‘第 6393 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 4. 解析条目时发生错误:‘第 6904 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 5. 解析条目时发生错误:‘第 8560 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 6. 解析条目时发生错误:‘第 9697 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 7. 解析条目时发生错误:“第 13249 行或以上错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 8. 解析条目时发生错误:‘第 13646 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 9. 解析条目时发生错误:‘第 14067 行或以上错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 10. 解析条目时发生错误:‘第 15177 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 11. 解析条目时发生错误:‘第 15530 行或以上出现错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 12. 解析条目时发生错误:‘第 16010 行或以上错误:空文本标记。 这可能是由于两个字段之间缺少逗号造成的。'。跳过的条目。 13. 解析条目时出错:“第 51479 行出现错误:字符串中间出现 EOF”。跳过条目。
要求提供更多信息
这是产生错误的第一个条目:
@Book{burzio.1994, 标题 = {{P}rinciples of {E}nglish {S}tress}, 作者 = {Burzio, L.}, 出版商 = {剑桥大学出版社}, 年份 = {1994}, 地址 = {英国剑桥}, 关键词 = {音系学,重音,}, Lccn = {请求直接借阅 2008 年 5 月 8 日、2008 年 11 月 7 日。}, 所有者 = {Word}, 时间戳 = {2009.07.31} }
答案1
因为我是解决你问题的人在你上面链接的 JabRef 问题追踪器上,我将直接将我在 github 上的解答答案添加到此站点。这会使 tex.stackechange 更加独立。
我查看了您的文件,发现其中至少有一个条目有错误,我猜想其余的问题也是类似的。以下是有问题的条目:
@Article{burrows.2007,
Title = {{A}ll the way through: {T}esting for authorship in different frequency strata.\},
Author = {Burrows, John.},
Journal = {Literary and Linguistic Computing},
Volume = {22},
Year = {2007},
Number = {1},
Abstract = {Not very readable. Basic premise is that the most and least frequent
words aren't so good as a guage, but maybe the middling frequency
words will work as an indication of an author's style. I suppose
the word 'stipulate' might never appear in my academic writing, but
it would in Robert A. Heinlein's. That idea is useful, but I didn't
understand the mechanics of his specific tests for them.},
Endnotereftype = {Journal Article},
Keywords = {computational, stylometry},
Owner = {EN},
Shorttitle = {All the way through: Testing for authorship in different frequency strata.},
Timestamp = {2009.08.06}
}
问题出在以 结尾的 title 字段中\}
。反斜杠转义了花括号,导致 JabRef 在解析过程中忽略它并导致错误。如果删除反斜杠,条目将正常加载。
据我所知,JabRef 拒绝此条目是正确的。我不知道 JabRef 3.0 为什么要以这种方式序列化它,但我猜这是一个错误(不应该再发生了)。
我建议您在文本编辑器中检查文件,搜索\}
并删除反斜杠。正如您在 github 上提到的,这解决了您的问题。
答案2
答案3
请注意,当您尝试以错误的方式书写波兰语“带笔划的 L”时,也会出现类似的问题。
例如:如果您在 bibtex 文件的第 5000 行中包含作者姓名“Tałanda, A.” Ta{\{l}}anda, A.
,JabRef 将报告以下错误:
1. Error occurred when parsing entry: 'Error in line 5000: Expected = but received a'. Skipped entry.
为了避免此错误,您必须按如下方式编写“带笔划的 L”(不将“L”括在括号中):
Ta{\l}anda, A.
我把它留在这里只是为了防止其他人遇到这个问题。