
我剛剛更新了我的 MikTeX 發行版,現在正在運行biber
2.15 和biblatex
3.15a。突然間,我遇到了問題。我有一個包含 1888 個條目的圍脖文件,現在嘗試使用它似乎會失敗biblatex
,儘管它在早期版本上運行良好。我不知道問題是否出在biber
或biblatex
,但請嘗試以下操作:
我從原始文件中創建了兩個可用的圍兜文件這裡和這裡。使用以下 MWE,它可以正常工作並且兩個引用都已解決:
\documentclass{article}
\usepackage[french, german, UKenglish]{babel}
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{Test.bib}
\addbibresource{Test2.bib}
\begin{document}
Let's test: \textcite{Arnold2002}, \textcite{Setty1973}
\printbibliography
\end{document}
然而,當我將兩個 bib 檔案合併為一個並嘗試使用它進行編譯時,沒有一個引用被解析。由於在將資料庫分成兩部分時它工作正常,因此除了新的biber
或biblatex
在書目文件中存在文件大小/條目數限制之外,我看不到這種行為的任何其他原因。請注意,不是實際引用的條目數量(如 中所示bibtex
),而是資料庫中條目的絕對數量。還是我忽略了什麼?任何幫助將不勝感激。
編輯1:
這是.blg
- 文件。確實,有一條錯誤訊息“[1095]”,但我無法理解它:
[0] Config.pm:312> INFO - This is Biber 2.15 (beta)
[0] Config.pm:315> INFO - Logfile is 'DatabaseTest.blg'
[311] biber-MSWIN64:330> INFO - ===
[385] Biber.pm:415> INFO - Reading 'DatabaseTest.bcf'
[882] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[998] Biber.pm:4334> INFO - Processing section 0
[1068] Biber.pm:4523> INFO - Looking for bibtex format file 'TestFull.bib' for section 0
[1095] Utils.pm:411> ERROR - Data file 'TestFull.bib' cannot be read in encoding 'utf8': Wide character at C:\Users\Manue\AppData\Local\Temp\par-4d616e7565\cache-b32225defac3568d1e921af5a7245ca571b236aa\inc\lib/Win32/Unicode/File.pm line 163.
[1095] Biber.pm:132> INFO - ERRORS: 1
編輯2:
我現在確定了極限長度。文件可用這裡包含我能處理的盡可能多的條目。它包含 1477 個條目、25026 行和 1,048,339 個位元組。這個文件可以正常工作,但是一旦我添加一個模擬條目,例如
@Article{Test3,
author = {Author, A. and Author B. and Author, C.},
date = {2020},
journaltitle = {A Journal},
title = {A nice title of a certain topic which I cannot even imagine},
issue = {3},
pages = {1--18},
volume = {12}
}
我得到與上面相同的錯誤。這似乎是正常工作的長度限制biblatex
。
編輯3:
這裡是不進行任何更改就不能直接從 JabRef(如 .bib)運行的完整檔案。和這裡與使用 Cygwin 匯出的十六進位轉儲檔案相同。
答案1
根據 Ulrike Fischer 的新試驗,現在可以相當肯定這是新版本 biber 中的一個錯誤,它會在特定的 bib 檔案大小時崩潰:
https://github.com/plk/biber/issues/332
編輯:
目前,有兩種可能的修復方法
- 將您的 -file 拆分
bib
為多個文件,每個文件的大小 <1MB - 使用 biber 目前的開發版本 2.16,可在來源鍛造,錯誤已修復。
編輯2:
biber 2.16 於 2021 年 4 月發布。如果您在系統上遇到此問題,請確保使用 biber 2.16 或更高版本。
答案2
我(還)無法寫評論,因此作為答案:這聽起來像是操作系統特定的問題。我在Linux上測試沒有問題。 github 問題追蹤器上報告了一個最近的問題(https://github.com/plk/biber/issues/332)與您的問題類似,它可能與 EOL 標記有關。您能否檢查一下問題追蹤器中的解決方案是否適合您?特別是,那裡的用戶報告說,轉換為僅 LF EOL 標記解決了該問題。
答案3
我跟著這基本上確保我的 EOL 是 LF 而不是 CRLF,這解決了我的問題並確保我的檔案編碼為 UTF-8。
答案4
我有一個包含超過 4500 個條目的 bib 文件,可以在 Windows 10 下與 TexLive2019 和 TexStudio 3.0.1 完美配合。當我嘗試編譯我的文件時,我立即收到此錯誤。這是在兩台機器上運行的相同的 bib 文件,因為我從 Google Drive 下載它。所以這肯定是一個錯誤而不是文件編碼問題。
編輯:我使用 Notepad++ 和 JABREF 將文件拆分為三個 .bib 文件,然後在 TexStudio 中對每個部分使用 \addbibresource{} 。 (我無法讓它識別單個添加命令中的三個文件名,文件之間沒有空格和逗號。)現在它按預期運行。