Ошибка с biber 2.15 под Windows с большими bib-файлами

Ошибка с biber 2.15 под Windows с большими bib-файлами

Я только что обновил свой дистрибутив MikTeX и теперь использую biber2.15 с biblatex3.15a. И вдруг у меня возникли проблемы. У меня есть bib-файл с 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имеющегося ограничения на размер файла/количество записей в bib-файле. Не количество фактически цитируемых записей, заметьте (как это было в 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

Согласно новым испытаниям Ульрики Фишер, теперь можно с уверенностью сказать, что это ошибка в новой версии biber, которая дает сбой при достижении определенного размера bib-файла:

https://github.com/plk/biber/issues/332

РЕДАКТИРОВАТЬ:

На данный момент есть два возможных решения

  1. Разделите ваш bibфайл на несколько файлов, каждый размером <1 МБ
  2. Используйте текущую версию разработки biber 2.16, доступную наsourceforge, где ошибка была исправлена.

ПРАВКА 2:

biber 2.16 был выпущен в апреле 2021 года. Теперь должны поддерживаться bib-файлы размером до 100 МБ. Если вы столкнулись с этой проблемой в своей системе, убедитесь, что используете biber 2.16 или выше.

решение2

Я не могу писать комментарии (пока), поэтому в качестве ответа: это похоже на проблему, специфичную для ОС. Я тестировал на Linux без проблем. В github issue tracker (https://github.com/plk/biber/issues/332) похожа на вашу проблему и может быть связана с маркерами EOL. Не могли бы вы проверить, работает ли у вас решение в системе отслеживания проблем? В частности, пользователь там сообщил, что преобразование в маркеры EOL только LF решило проблему.

решение3

Я последовал заэтотпо сути, чтобы убедиться, что мой EOL был LF, а не CRLF, и это решило мои проблемы, а также убедилось, что мой файл закодирован как UTF-8.

решение4

У меня есть файл bib с более чем 4500 записей, который отлично работает с TexLive2019 и TexStudio 3.0.1 под Windows 10. Когда я перешел на другой компьютер с Windows 10, я загрузил TexLive2020 и TexStudio 3.0.1. Я сразу же получил эту ошибку при попытке скомпилировать свой документ. Это один и тот же файл bib, работающий на обеих машинах, потому что я скачал его с Google Диска. Так что это определенно похоже на ошибку, а не на проблему с кодировкой файла.

EDIT: Я использовал Notepad++ и JABREF, чтобы разделить файл на три файла .bib, а затем использовал \addbibresource{} для каждой части в TexStudio. (Мне не удалось заставить его распознать три имени файлов в одной команде add без пробелов и запятых между файлами.) Теперь он работает так, как и должен.

Связанный контент