![Ошибка с biber 2.15 под Windows с большими bib-файлами](https://rvso.com/image/420770/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20%D1%81%20biber%202.15%20%D0%BF%D0%BE%D0%B4%20Windows%20%D1%81%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%BC%D0%B8%20bib-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8.png)
Я только что обновил свой дистрибутив MikTeX и теперь использую biber
2.15 с biblatex
3.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
РЕДАКТИРОВАТЬ:
На данный момент есть два возможных решения
- Разделите ваш
bib
файл на несколько файлов, каждый размером <1 МБ - Используйте текущую версию разработки 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 без пробелов и запятых между файлами.) Теперь он работает так, как и должен.