
我正在使用一個.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