![Windows 上の biber 2.15 で大きな bib ファイルがある場合のバグ](https://rvso.com/image/420770/Windows%20%E4%B8%8A%E3%81%AE%20biber%202.15%20%E3%81%A7%E5%A4%A7%E3%81%8D%E3%81%AA%20bib%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E3%81%82%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%90%E3%82%B0.png)
MikTeX ディストリビューションを更新し、現在biber
2.15 をbiblatex
3.15a で実行しています。そして突然、問題が発生しました。1888 エントリの bib ファイルがあり、これを使用しようとすると、以前のバージョンでは問題なく動作していたのに、破損するようです。問題が または にあるかどうbiblatex
かはわかりませんが、以下を試してください。biber
biblatex
私はオリジナルのbibファイルから2つのbibファイルを作成しました。ここそしてここ次の 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 ファイルを 1 つに結合してコンパイルしようとすると、引用が解決されません。データベースを 2 つに分割すると正常に機能するため、新しいまたはbiber
bibbiblatex
ファイルのファイル サイズ/エントリ数の制限以外に、この動作の理由はわかりません。実際に引用されているエントリの数 ( の場合bibtex
) ではなく、データベース内のエントリの数が多すぎることに注意してください。それとも、何か見落としているのでしょうか。ご助力いただければ幸いです。
編集1:
これが -file です.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です。このファイルは問題なく動作しますが、次のようなモックエントリを1つ追加すると、
@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 でエクスポートされた 16 進ダンプと同じファイルです。
答え1
Ulrike Fischer による新しい試験によれば、これは新しいバージョンの biber のバグであり、特定の bib ファイル サイズで機能しなくなることがほぼ確実です。
https://github.com/plk/biber/issues/332
編集:
今のところ、2つの修正方法が考えられます
- ファイルを複数のファイルに分割し
bib
、それぞれのサイズを 1MB 未満にします。 - biberの現在の開発バージョン2.16を使用してください。ソースフォージ、バグが修正されました。
編集2:
biber 2.16 は 2021 年 4 月にリリースされました。現在、最大 100 MB の bib ファイルがサポートされています。システムでこの問題が発生する場合は、biber 2.16 以降を使用してください。
答え2
コメントはまだ書けないので、回答としては、これはOS固有の問題のようです。Linuxで問題なくテストしました。githubの問題追跡システムで報告されたごく最近の問題があります(https://github.com/plk/biber/issues/332) はあなたの問題に似ており、EOL マーカーに関連している可能性があります。問題追跡ツールの解決策が機能するかどうかを確認してください。特に、そこのユーザーは、LF のみの EOL マーカーに変換すると問題が解決したと報告しています。
答え3
私はついていきますこれ基本的に、EOL が CRLF ではなく LF であることを確認し、ファイルが UTF-8 としてエンコードされていることを確認して問題を解決しました。
答え4
Windows 10 の TexLive2019 および TexStudio 3.0.1 で完全に動作する、4500 を超えるエントリを含む bib ファイルがあります。別の Windows 10 コンピューターに移動したときに、TexLive2020 と TexStudio 3.0.1 をダウンロードしました。ドキュメントをコンパイルしようとすると、すぐにこのエラーが発生しました。Google ドライブからダウンロードしたため、両方のマシンで同じ bib ファイルが実行されています。したがって、これはファイル エンコーディングの問題ではなく、明らかにバグのようです。
編集: Notepad++ と JABREF を使用してファイルを 3 つの .bib ファイルに分割し、TexStudio で各部分に \addbibresource{} を使用しました。(ファイル間にスペースやカンマがない単一の add コマンドで 3 つのファイル名を認識できませんでした。) これで正常に動作します。