.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},
}

比伯不会对该评论本身提出抱怨。

请注意,名字首字母的结尾通常以点结尾比只给出字母更好。

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

相关内容