Библиография: BibTeX и BibLaTeX
Урок про автоматическую библиографию — ещё одну причину, по которой учёные выбирают LaTeX.
BibTeX/BibLaTeX — система библиографии: вы храните источники в файле
.bib, ссылаетесь на них командой\cite, а список литературы и стиль цитирования формируются автоматически.
В научной работе список литературы — это десятки источников и строгие требования к оформлению. Вручную это кошмар. LaTeX строит библиографию из базы данных источников по выбранному стилю одним нажатием.
Файл источников .bib
Источники описывают записями в отдельном файле references.bib. Каждая запись — это тип и поля:
@article{einstein1905,
author = {Einstein, Albert},
title = {Zur Elektrodynamik bewegter K\"orper},
journal = {Annalen der Physik},
year = {1905},
volume = {17},
pages = {891--921}
}
@book{knuth1984,
author = {Knuth, Donald E.},
title = {The TeXbook},
publisher = {Addison-Wesley},
year = {1984}
}Ключ записи (einstein1905, knuth1984) — это идентификатор, по которому вы будете ссылаться. Один .bib можно переиспользовать во всех своих работах.
Цитирование в тексте
Команда \cite{ключ} вставляет ссылку, а две команды в конце документа печатают сам список:
Как показал Эйнштейн~\cite{einstein1905}, ...
Подробнее о \TeX{} см.~\cite{knuth1984}.
...
\bibliographystyle{plain} % стиль оформления
\bibliography{references} % подключить .bib (без расширения)В тексте появятся ссылки вроде «[1]», «[2]», а в конце — пронумерованный список литературы. Что важно: в список попадут только процитированные источники, и они отсортируются и оформятся по выбранному стилю.
Стили цитирования
| Стиль | Вид ссылки |
plain | числовые [1], сортировка по алфавиту авторов |
unsrt | числовые, в порядке цитирования |
alpha | буквенно-числовые [Ein05] |
BibLaTeX + authoryear | (Эйнштейн, 1905) |
Сменить стиль всего списка — это поменять одно слово. Современная замена классическому BibTeX — BibLaTeX с движком biber: он гибче, лучше работает с юникодом и кириллицей и поддерживает ГОСТ-стили цитирования, что важно для российских работ.
Как работает под капотом
Процесс многошаговый: LaTeX при первом проходе собирает все \cite и пишет их ключи в файл .aux. Затем запускается BibTeX (или biber): он читает .aux, находит нужные записи в .bib, форматирует их по выбранному стилю и пишет готовый список в файл .bbl. Следующие проходы LaTeX вставляют .bbl в документ и подставляют номера ссылок. Отсюда классическая последовательность сборки latex → bibtex → latex → latex — её автоматизирует latexmk.
Типы записей и обязательные поля
В .bib каждая запись начинается с символа собаки и типа: @article, @book, @inproceedings (статья в сборнике конференции), @incollection (глава в коллективной монографии), @phdthesis (диссертация), @techreport, @misc (для всего, что не подошло, — например, ссылок на сайты). У каждого типа есть набор обязательных полей: для @article это author, title, journal и year, а volume и pages необязательны; для @book обязателен издатель publisher. Если пропустить обязательное поле, BibTeX выдаст предупреждение, а если перепутать тип — запись оформится не по тем правилам, что нужны для этого вида источника. Поэтому держать .bib в порядке так же важно, как и сам текст: это переиспользуемая база на годы вперёд.
natbib, nocite и форматы ссылок
Пакет natbib расширяет цитирование и поддерживает два больших семейства стилей: числовое (ссылки вида [1], [2]) и автор-год (вида «Эйнштейн, 1905»). Для второго семейства он даёт две ключевые команды: \citep{ключ} ставит ссылку в круглых скобках внутри предложения, а \citet{ключ} делает автора частью текста — «как показал Эйнштейн (1905)». Команда \nocite{ключ} добавляет источник в список литературы, не печатая ссылку в тексте, — это удобно, когда работу нужно упомянуть в библиографии, но цитировать в предложении незачем. А \nocite{*} с особой звёздочкой втягивает в список все записи из подключённого .bib сразу — так делают, когда нужно показать полный аннотированный перечень литературы независимо от того, что процитировано.
Совет по практике
Не набирайте записи .bib руками — это утомительно и легко ошибиться в полях. Почти каждая электронная библиотека (Google Scholar, arXiv, издательские сайты, DOI-сервисы) умеет экспортировать готовую BibTeX-запись по кнопке: вы копируете её в свой файл и при необходимости правите ключ на удобный вам. Менеджеры литературы вроде Zotero или JabRef хранят всю базу и выгружают единый .bib для проекта. Так вы получаете аккуратные поля без опечаток, а главное преимущество системы остаётся при вас: один раз собранную базу вы переиспользуете во всех будущих статьях, диссертации и отчётах, меняя лишь стиль оформления под требования конкретного издания.
Частые ошибки
- Собрать один раз и удивиться, что список пуст — нужна цепочка latex/bibtex/latex/latex.
- Опечатка в ключе
\cite— предупреждение «Citation undefined» и[?]. - Кириллица в BibTeX без поддержки — берите BibLaTeX+biber для русских источников.
Итоги
- Источники — в
.bib; ссылка в тексте —\cite{ключ}. - Список и стиль формируются автоматически; сменить стиль — одно слово.
- Для русского и ГОСТ берут BibLaTeX с biber.