Очистка и проверка BibTeX
Вставьте .bib-файл или загрузите его и получите обратно проверенным и аккуратным: отсутствующие обязательные поля, повторяющиеся ключи, повторяющиеся DOI и неопределённые макросы отмечаются с номерами строк; диапазоны страниц, месяцы, скобки и порядок полей приводятся к единому виду; каждое изменение перечисляется, чтобы вы видели, что именно сделано. Бесплатно, без регистрации; файл никогда не покидает ваш браузер.
Параметры очистки
Вставьте .bib-файл или загрузите его. Он обрабатывается в вашем браузере — ничего не загружается на сервер.
Как пользоваться очисткой BibTeX
- 1. Вставьте или загрузите .bib-файл. Считыватель обрабатывает весь файл так, как его читает сам BibTeX: макросы
@string, соединения#,@preamble,@comment, вложенные фигурные скобки и заметки между записями. - 2. Выберите очистку. Все параметры включены по умолчанию, кроме защиты заглавных букв и сортировки; отключите то, что хотите оставить как есть. Результат обновляется при изменении параметров.
- 3. Прочитайте проблемы. Ошибки и предупреждения перечислены с их строкой и ключом цитирования — от отсутствующего названия журнала до ключа, использованного дважды.
- 4. Проверьте изменения и скачайте файл. Каждое изменение записано по записи и полю, со значением до и после; результат скачивается как
cleaned.bib.
Что проверяет валидатор
Классический BibTeX определяет четырнадцать типов записей и поля, которые требует каждый из них. Валидатор применяет эту таблицу из книги Орена Паташника BibTeXing — документации, которая поставляется вместе с BibTeX, — и принимает имена biblatex для тех же данных, поэтому journaltitle, date и institution диссертации считаются своими классическими эквивалентами.
| Тип записи | Обязательные поля |
|---|---|
@article | author, title, journal, year |
@book | author или editor, title, publisher, year |
@inbook | author или editor, title, chapter или pages, publisher, year |
@incollection | author, title, booktitle, publisher, year |
@inproceedings | author, title, booktitle, year |
@phdthesis, @mastersthesis | author, title, school, year |
@techreport | author, 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-файл куда-нибудь?
- Нет. Файл читается и очищается полностью в вашем браузере; ничего не отправляется на сервер, а очищенная копия создаётся на вашем устройстве при скачивании.