Перейти к содержимому

Очистка и проверка BibTeX

Вставьте .bib-файл или загрузите его и получите обратно проверенным и аккуратным: отсутствующие обязательные поля, повторяющиеся ключи, повторяющиеся DOI и неопределённые макросы отмечаются с номерами строк; диапазоны страниц, месяцы, скобки и порядок полей приводятся к единому виду; каждое изменение перечисляется, чтобы вы видели, что именно сделано. Бесплатно, без регистрации; файл никогда не покидает ваш браузер.

Параметры очистки

Вставьте .bib-файл или загрузите его. Он обрабатывается в вашем браузере — ничего не загружается на сервер.

Как пользоваться очисткой BibTeX

  1. 1. Вставьте или загрузите .bib-файл. Считыватель обрабатывает весь файл так, как его читает сам BibTeX: макросы @string, соединения #, @preamble, @comment, вложенные фигурные скобки и заметки между записями.
  2. 2. Выберите очистку. Все параметры включены по умолчанию, кроме защиты заглавных букв и сортировки; отключите то, что хотите оставить как есть. Результат обновляется при изменении параметров.
  3. 3. Прочитайте проблемы. Ошибки и предупреждения перечислены с их строкой и ключом цитирования — от отсутствующего названия журнала до ключа, использованного дважды.
  4. 4. Проверьте изменения и скачайте файл. Каждое изменение записано по записи и полю, со значением до и после; результат скачивается как cleaned.bib.

Что проверяет валидатор

Классический BibTeX определяет четырнадцать типов записей и поля, которые требует каждый из них. Валидатор применяет эту таблицу из книги Орена Паташника BibTeXing — документации, которая поставляется вместе с BibTeX, — и принимает имена biblatex для тех же данных, поэтому journaltitle, date и institution диссертации считаются своими классическими эквивалентами.

Тип записиОбязательные поля
@articleauthor, title, journal, year
@bookauthor или editor, title, publisher, year
@inbookauthor или editor, title, chapter или pages, publisher, year
@incollectionauthor, title, booktitle, publisher, year
@inproceedingsauthor, title, booktitle, year
@phdthesis, @mastersthesisauthor, title, school, year
@techreportauthor, title, institution, year
@miscнет

@booklet и @manual требуют только title, @proceedings — title и year, а @unpublished — author, title и note; @conference — другое имя для @inproceedings.

Валидатор также отмечает ключ, использованный дважды (BibTeX сохраняет только первую запись), ключи, отличающиеся только регистром, ключи с пробелом или другим символом, который BibTeX не может прочитать в ключе, один и тот же DOI в двух записях, одинаковые заголовок и год в двух записях, поле, указанное дважды, макрос, который используется, но никогда не определён через @string, и год, который не является четырёхзначным числом. Запись, которую считыватель не может закончить — например, из-за пропущенной запятой или несбалансированной скобки, — отмечается с номером строки и сохраняется в точности как написана, поэтому очистка никогда не удаляет текст.

Что меняет очистка

  • Типы записей и имена полей в нижнем регистре: @ARTICLE становится @article, Author — author.
  • Пробелы: переносы строк и серии пробелов внутри значения сжимаются до одного пробела.
  • Ограничители: значения в кавычках переходят в фигурные скобки, которые переживают случайную кавычку в заголовке.
  • Диапазоны страниц с двойным дефисом, который LaTeX печатает как среднее тире: 16569-16572 становится 16569--16572.
  • Месяцы как макросы BibTeX, jan — dec, записанные без скобок, чтобы любой стиль мог их напечатать или сократить.
  • Пустые поля, такие как note = {}, удаляются.
  • DOI теряют префикс https://doi.org/; стили, печатающие DOI, добавляют свой.
  • Заглавные буквы в заголовках (необязательно): фигурные скобки вокруг аббревиатур и слов со смешанным регистром — {DNA}, {mRNA}, {iPhone} — или вокруг каждого слова с заглавной буквы, кроме первого, чтобы стили с заголовками в регистре предложения не могли перевести их в строчные.
  • Порядок полей: author, title, journal или booktitle, volume, number, pages, year, month, publisher, затем идентификаторы; или по алфавиту; или как было.
  • Сортировка (необязательно): по ключу, первому автору или году. Определения @string остаются вверху, потому что макрос должен быть определён до того, как его использует запись.

Одна запись до и после

Исходная

@ARTICLE{hirsch2005,
  Author = {Hirsch, J. E.},
  title = "An index to quantify an individual's scientific research output",
  journal = {Proceedings of the National Academy of Sciences},
  year = 2005, month = {November},
  pages = {16569-16572},
  note = {}
}

После очистки

@article{hirsch2005,
  author  = {Hirsch, J. E.},
  title   = {An index to quantify an individual's scientific research output},
  journal = {Proceedings of the National Academy of Sciences},
  pages   = {16569--16572},
  year    = 2005,
  month   = nov
}

Журнал изменений для этой записи содержит семь строк: тип приведён к нижнему регистру, Author переименован в author, заголовок заключён в фигурные скобки, November превращён в макрос nov, диапазон страниц получил двойной дефис, пустое note удалено, а поля расставлены по порядку. Год остаётся голым числом, которое BibTeX принимает.

BibTeX или biblatex?

Один и тот же .bib-файл может питать две системы. Классический BibTeX со стилями вроде plain или собственным .bst-файлом журнала знает четырнадцать стандартных типов и молча игнорирует поля, которых не распознаёт. biblatex, обрабатываемый biber, добавляет типы вроде @online, @report и @thesis, поля вроде journaltitle, date, location, urldate и eprint, и читает акцентированные буквы напрямую, а не через команды акцентов LaTeX. Валидатор предупреждает, когда запись использует тип, существующий только в biblatex — классический стиль переходит к @misc с предупреждением, — но никогда не сообщает имя поля biblatex как отсутствующее обязательное поле.

Часто задаваемые вопросы

Как проверить BibTeX-файл на ошибки?
Вставьте его в поле выше или загрузите .bib-файл. Валидатор перечисляет каждую проблему с номером строки и ключом цитирования: записи, которые нельзя прочитать, отсутствующие обязательные поля, повторяющиеся ключи, повторяющиеся DOI или заголовки, неопределённые макросы и годы, которые не являются четырёхзначными. Сначала исправьте ошибки — именно они заставляют BibTeX выдавать предупреждение или отбрасывать ссылку.
Что означает «I'm skipping whatever remains of this entry»?
Это BibTeX сдаётся на записи, которую не может разобрать, — обычно из-за пропущенной запятой между двумя полями, несбалансированной скобки или кавычки внутри значения в кавычках. Очиститель сообщает такие записи как ошибки разбора с номерами строк и сохраняет их в выводе в точности как написано, чтобы вы могли исправить их на месте.
Нужно ли писать диапазоны страниц с -- в BibTeX?
Да. BibTeX передаёт поле pages в LaTeX, где -- печатает среднее тире, правильный знак для диапазона. Многие стандартные стили сами превращают одиночный дефис в --, но не все, поэтому безопаснее писать -- прямо в файле — и очиститель делает это за вас.
Почему BibTeX переводит мой заголовок в строчные буквы и как этого избежать?
Многие стили печатают заголовки статей в предложенческом регистре и переводят в строчные каждую букву, не защищённую фигурными скобками, так что DNA становится dna. Заключение слова в скобки — {DNA} — защищает его. Опция заглавных букв в очистителе добавляет такие скобки к аббревиатурам и словам со смешанным регистром или ко всем заглавным словам, кроме первого, если в ваших заголовках много собственных имён.
Являются ли повторяющиеся ключи цитирования проблемой?
Да. BibTeX использует первую запись с ключом и игнорирует остальные, поэтому цитата может молча указывать на не ту работу. Ключи, различающиеся только регистром, тоже отмечаются: BibTeX выдаёт на них предупреждение, а biber считает их двумя разными ключами, поэтому одна и та же цитата может вести себя по-разному в каждом из них.
Загружается ли мой .bib-файл куда-нибудь?
Нет. Файл читается и очищается полностью в вашем браузере; ничего не отправляется на сервер, а очищенная копия создаётся на вашем устройстве при скачивании.

Похожие инструменты

Ещё в разделе «Инструменты для цитирования и списков литературы»