我正在遷移到新的電腦設置,當我安裝 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, 標題={E}nglish {S}tress}的{{P}原理, 作者 = {Burzio, L.}, 出版商={劍橋大學出版社}, 年份 = {1994}, 地址 = {英國劍橋}, 關鍵字 = {音系、重音、}, Lccn = {2008 年 5 月 8 日、2008 年 11 月 7 日請求直接借用。 所有者 = {單字}, 時間戳 = {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}
}
問題出在以 結尾的標題欄位\}
。反斜線轉義大括號,這會導致 JabRef 在解析過程中忽略它並導致錯誤。如果刪除反斜杠,則該條目可以正常載入。
據我所知,JabRef 拒絕該條目是正確的。為什麼 JabRef 3.0 以這種方式序列化它,我不知道,但我猜這是一個錯誤(不應該再發生了)。
我建議您在文字編輯器中檢查文件,搜尋出現的反斜線\}
並刪除反斜線。正如您在 github 上提到的,這解決了您的問題。
答案2
答案3
請注意,當您嘗試以錯誤的方式書寫波蘭語「帶筆劃的 L」時,可能會出現類似的問題。
例如:如果您包含作者姓名“Tałanda, A.”如Ta{\{l}}anda, A.
bibtex 檔案的第 5000 行所示,JabRef 將報告以下錯誤:
1. Error occurred when parsing entry: 'Error in line 5000: Expected = but received a'. Skipped entry.
為避免此錯誤,您必須以以下方式編寫「帶筆畫的 L」(「L」不用大括號括起來):
Ta{\l}anda, A.
我只是將其留在這裡,以防其他人遇到此問題。