我正在使用一个.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},
}
比伯不会对该评论本身提出抱怨。
请注意,名字首字母的结尾通常以点结尾比只给出字母更好。
答案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