Academic Writing

BibTeX и BibLaTeX: объяснение

BibTeX и BibLaTeX хранят ссылки в похожем файле, но обрабатывают и форматируют эти данные совершенно по-разному. Вот различие в backend, которое действительно их разделяет, почему BibLaTeX лучше работает с неанглоязычными и необычными источниками, и какова реальная цена перехода.

5 min
Table comparing BibTeX vs BibLaTeX by formatting logic, backend processor and Unicode support

Аспирант открывает старый шаблон диссертации своего научного руководителя в LaTeX, чтобы начать писать собственную диссертацию, но обнаруживает файл References.bib, лежащий рядом с командой bibliographystyle, которая указывает на apalike. Он не имеет ни малейшего представления о том, какова система цитирования в любом из них. В папке нет ничего, что прямо на это указывало бы, а кроме того, автор шаблона теперь находится на расстоянии трёх постдоков и одного континента.

Вопрос BibTeX vs BibLaTeX и есть настоящая проблема, скрытая под этой путаницей. Оба они хранят данные о цитировании в похожем файле, но обрабатывают, форматируют и выводят эти данные с помощью совершенно разной механики. Понимание того, какой из них уже использует документ и что именно изменится при переходе, это разница между днём, потерянным в замешательстве, и днём, проведённым за написанием текста.

Корректное цитирование источника, это лишь половина вопроса о стиле оформления ссылок, и та половина, которую охватывает собственное руководство TextPulse по стилям оформления ссылок, гораздо шире любой отдельной системы верстки. Этот материал остаётся узко сосредоточенным на специфичном для LaTeX ответвлении этого вопроса: BibTeX или BibLaTeX, и на том, что именно их разделяет.

BibTeX vs BibLaTeX: Где на самом деле происходит разделение

BibTeX, это более старая из двух систем, и она выполняет две задачи одновременно. Она читает данные, находящиеся в файле .bib, и форматирует эти данные в готовый список литературы, руководствуясь отдельным файлом стиля, файлом .bst, который определяет, как должна выглядеть каждая запись. Язык .bst невелик и создан специально для этой единственной задачи, и в этом же заключается его предел, расширение его для охвата типа источника, который его первоначальный автор никогда не планировал, это отдельный специализированный навык.

BibLaTeX разделяет эти две задачи. Форматирование происходит внутри самого LaTeX, под управлением обычных макросов LaTeX в собственном преамбуле документа, а не отдельным стилевым файлом. Обработка данных, чтение, сортировка и подготовка записей файла .bib для вывода, выполняется специальной backend-программой под названием Biber, которую BibLaTeX автоматически вызывает во время компиляции. BibTeX обрабатывает и форматирует за один шаг, BibLaTeX разделяет эти две задачи между макросами LaTeX и Biber. Именно это архитектурное разделение и является настоящим ответом на вопрос о том, что их различает.

BibTeXBibLaTeX
Логика форматированияОтдельный стилевой файл .bstМакросы LaTeX внутри документа
Backend-процессорСам BibTeX, за один шагBiber, запускаемый автоматически во время компиляции
Поддержка UnicodeНативно отсутствуетПолная
Многоязычные библиографииТребуется дополнительный пакетВстроено, следует языковой настройке документа
Типичный вызов в преамбулеbibliographystyle плюс bibliographyusepackage biblatex плюс addbibresource

Почему BibLaTeX лучше обрабатывает неанглоязычные и необычные источники

Разрыв в поддержке Unicode сам по себе объясняет большую часть проблемы с неанглоязычными источниками. У BibTeX нет нативной поддержки Unicode, поэтому имя автора или заголовок, содержащие символ вне базового латинского набора, сначала требуют обходного решения. Backend Biber в BibLaTeX поддерживает полный Unicode, поэтому символы с диакритикой, нелатинские письменности и любые другие элементы исходного языка источника напрямую попадают в файл .bib и корректно форматируются на выходе.

Обработка языка выходит за рамки отдельных символов. BibLaTeX автоматически подстраивает связующие термины, такие как edition или editor, в соответствии с тем языком, который задан для документа через babel или polyglossia, и он унаследовал функциональность, которая раньше находилась в нескольких отдельных дополнительных пакетах для многоязычных или многотомных библиографий. Классические стили BibTeX обычно пишутся для одного языка, почти всегда английского, поэтому документ, ссылающийся на французские или немецкие источники, по традиции нуждался в дополнительном пакете только для этого.

Вторая часть утверждения следует из того же архитектурного разделения. Поскольку BibLaTeX хранит правила форматирования в макросах LaTeX, а не в небольшом специализированном языке стилей, он по умолчанию способен поддерживать более широкий набор типов записей. Сюда входят такие источники, как онлайн-ресурсы, наборы данных и многотомные работы, которые исходный замысел BibTeX никогда не предусматривал. Исследователь, цитирующий набор данных, препринт или отчёт, доступный только онлайн, обычно обнаружит, что для него уже предусмотрен тип записи BibLaTeX, тогда как в рабочем процессе BibTeX приходится приспосабливать существующий тип, обычно универсальный miscellaneous, под нужный формат.

Очеловечить свою работу

Преобразуйте текст, созданный с помощью AI, и сделайте его более естественным, не затрагивая важные слова или цитаты.

Начать бесплатно

Как определить, какой из них уже использует ваш документ

Преамбула решает это за секунды. Документ, который загружает biblatex и содержит строку addbibresource, указывающую на файл .bib, использует BibLaTeX. Документ, который вместо этого вызывает bibliographystyle, а затем bibliography ближе к концу файла, и при этом нигде в преамбуле не упоминает biblatex, использует классический BibTeX.

  • Проверьте преамбулу на слово biblatex. Если оно встречается в строке подключения пакета, документ работает на BibLaTeX.
  • Ищите addbibresource. Эта команда существует только в BibLaTeX, классический BibTeX использует вместо неё bibliography.
  • Проверьте, какую программу вызывает сборка. Документу BibLaTeX для выполнения в последовательности компиляции нужен Biber, а не BibTeX.
  • Проверьте команды цитирования в тексте. parencite и textcite есть только в BibLaTeX, тогда как cite работает в обоих случаях, поэтому проверка преамбулы идёт первой.

Что на самом деле стоит переход с BibTeX на BibLaTeX

Сам файл .bib почти без изменений переживает переход, поскольку обе системы читают один и тот же базовый формат записей. Большинство полей переносится напрямую, а BibLaTeX принимает исходные имена полей BibTeX как псевдонимы, хотя также предлагает более точные альтернативы, например одно поле даты вместо отдельных полей года и месяца.

После того как система цитирования в документе подтверждена, создавать любые новые записи в правильном виде проще с помощью dedicated bibtex generator, чем вводить сырые поля по памяти, особенно для типа источника, который встречается только один раз во всём документе.

Реальные затраты приходятся на преамбулу и цепочку сборки, а не на данные. bibliographystyle и bibliography нужно заменить на biblatex и addbibresource, любые команды цитирования, заимствованные из natbib, нужно сверить с собственными эквивалентами BibLaTeX, а компилятору или редактору нужно указать запускать Biber, а не BibTeX, в ходе сборки. Именно этот последний шаг и подводит людей, редактор, всё ещё настроенный на старую последовательность сборки, выдаёт документ вообще без библиографии, и без ошибки, указывающей на реальную причину.

Ничто из этого не сложно, когда причина найдена, и в этом как раз и состоит проблема. Каждый элемент представляет собой небольшое, хорошо документированное изменение, но шаблон, унаследованный без объяснения, обычно тихо ломается на первом же из них, на этапе сборки, ещё до того, как автор увидит, сработали бы сами цитаты или нет.

Стоит ли переходить или оставить рабочий шаблон без изменений?

Если вы уже создаёте документ, который работает с классическим BibTeX, то есть новые функции не нужны, он ссылается только на англоязычные источники и никогда не требует типа источника, отличного от статей, книг и материалов конференций, то нет особых причин переходить в середине проекта. Рабочий шаблон диссертации за два месяца до срока сдачи, не то место, где стоит принимать на себя описанные выше издержки миграции.

Документ, который цитирует источники на более чем одном языке, использует наборы данных, веб-сайты или другие нестандартные типы источников, либо унаследован именно потому, что его исходный автор уже построил его вокруг BibLaTeX, представляет собой иной случай. Здесь вопрос не в том, следует ли переключаться, а в том, работал ли документ вообще когда-либо на классическом BibTeX, и именно для этого предназначена проверка преамбулы выше.

Переформатирование списка литературы для другого журнала имеет собственную страницу, как и различие между аннотированной библиографией и обзором литературы.

Однако не каждая проблема с цитированием является проблемой LaTeX. Генератор цитат, который извлекает ссылку напрямую из записи издателя решает ту же основную задачу для любого, кто работает в Word, а не в LaTeX, без файла .bst или запуска Biber.

XLinkedInFacebook

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

Различие между BibTeX и BibLaTeX сводится к тому, где происходит работа по форматированию. BibTeX сам читает и форматирует данные ссылок, руководствуясь отдельным файлом стиля .bst. BibLaTeX разделяет эту задачу: backend-программа под названием Biber обрабатывает данные, а форматирование контролируется обычными макросами LaTeX в документе. Именно это разделение позволяет BibLaTeX легче работать с Unicode, несколькими языками и необычными типами источников.

Sara

Content planner and copywriter at TextPulse. Sara runs the blog day to day, from planning and drafting through to publishing. She writes the practical guides: clear explanations of academic writing problems, aimed at the person who actually has to hand something in.