.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 轉換器中,這樣https://w3c.github.io/xml-entities/unicode-names.html 你會找到你有一個看不見的

U+feff ZERO WIDTH NO-BREAK SPACE

在行中評論。由於該不可見字元不會透過註解字元對 Biber 隱藏,因此它會產生此無害的警告。 (與 BibTeX 一樣,Biber 會忽略條目外部的文本。但與 BibTeX 不同的是,Biber 會警告可能存在的垃圾字符,除非條目外部的文本以 標記為註釋%。BibTeX 不識別%為註釋字符。請參閱biblatex 檔案中的程式碼註釋,BibTeX 文件中是否禁止評論?,註解掉 bib 檔案中的文字部分.)

您始終可以選擇忽略 Biber 的“垃圾字元”警告,它們只是表明某些內容可能你的 中存在錯誤.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},
}

Biber 不會抱怨評論本身。

請注意,通常最好以點結尾名字首字母,而不是只給出字母。

答案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

相關內容