Символы мусора в файле .bib

Символы мусора в файле .bib

Я использую .bibфайл для списка моих ссылок. Когда я запускаю Biber в TeXstudio, ссылки компилируются правильно, но я получаю следующее предупреждение:

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.)

Вы всегда можете проигнорировать предупреждения Бибера о «мусорном персонаже», они всего лишь признак того, что что-томощьбыть неправильным в вашем .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

Связанный контент