.bib ファイル内のジャンク文字

.bib ファイル内のジャンク文字

参照をリストするためにファイルを使用しています.bib。TeXstudio で Biber を実行すると、参照は正しくコンパイルされますが、次の警告が表示されます。

WARN - BibTeX subsystem: C:\Users\[user]\AppData\Local\Temp\biber_tmp_WQTH\thesis_references.bib_15484.utf8, line 4, warning: 3 characters of junk seen at toplevel

ファイルを調べて.bib問題のある文字を探しましたが、エラーの原因になりそうなものは見つかりませんでした。また、エラーが含まれている可能性のある先頭の参照を置き換えようとしましたが、効果はありませんでした。警告に記載されているファイルは、コンパイル後に再び消える何らかの一時ファイルのようです (?)。

私の .bib ファイルは次のようになります。

% Encoding: UTF-8


@article{aguzzi2013microglia,
    title={Microglia: scapegoat, saboteur, or something else?},
    author={Aguzzi, Adriano and Barres, Ben A and Bennett, Mariko L},
    journal={Science},
    volume={339},
    number={6116},
    pages={156--161},
    year={2013},
    publisher={American Association for the Advancement of Science}
}
etc.

何か見逃しているのでしょうか?

答え1

コードをコピーしてUnicodeコンバータに貼り付けると、ユニコード名 見つけるだろう目に見えない

U+feff ZERO WIDTH NO-BREAK SPACE

ラインでコメント。この不可視文字はコメント文字で Biber から隠されていないため、この無害な警告が表示されます。(BibTeX と同様に、Biber はエントリ外のテキストを無視します。ただし、BibTeX とは異なり、Biber はエントリ外のテキストが でコメントとしてマークされていない限り、ジャンク文字の可能性について警告します。BibTeX はコメント文字として%認識しません。%biblatex ファイル内のコードコメントBibTeX ファイルではコメントは推奨されませんか?bibファイル内のテキストの一部をコメントアウトする

ビーバーの「ジャンクキャラクター」警告を無視することもできます。それは単に何かがかもしれない中括弧やコンマが抜けていたり、誤っていたりするなど、に間違いがある可能性があります.bib。しかし、それが必ずしも悪いことを意味するわけではありません。通常、何かが本当に間違っている場合は、ハード エラーが発生します。

コツは見えない文字を削除する

% Encoding: UTF-8

@article{aguzzi2013microglia,
  title   = {Microglia: scapegoat, saboteur, or something else?},
  author  = {Aguzzi, Adriano and Barres, Ben A. and Bennett, Mariko L.},
  journal = {Science},
  volume  = {339},
  number  = {6116},
  pages   = {156--161},
  year    = {2013},
}

ビーバー氏はコメントそのものについては文句を言うつもりはない。

通常、名前の頭文字は、文字だけを記すのではなく、ドットで終わらせる方がよいことに注意してください。

答え2

私も同様の問題を抱えていましたが、Unicode コンバーターを使用しても解決策を見つけることができませんでした。

トリックは、「@article」の直前の隠しシンボルを削除することでした。

答え3

以下は、非 ASCII 文字を含む行を印刷するスクリプトです。行は UTF-8 を使用してデコードできることを前提としています。

import sys

with open(sys.argv[1], 'rb') as f:
    data = f.readlines()

for n, line in enumerate(data):
    try:
        line.decode('ascii')
    except UnicodeDecodeError as e:
        line = line.decode('utf-8')
        print(f'{n}: {line}')
        print(f'  ^-- {e}')

使用法:python3 nonascii.py filename.bib

関連情報