
В ответ наbibtex против biber и biblatex против natbibбыли объяснены преимущества и недостатки Biber против BibTeX (и против natbib
biblatex). Однако один момент был упущен: вопрос совместимости библиографий между BibTeX и biblatex
.
После использования BibTeX некоторое время вы получаете коллекцию библиографий в стиле BibTeX. Кроме того, многие журналы предоставляют записи BibTeX для цитирования на своей домашней странице. Многие программы управления библиографией либо поддерживают экспорт BibTeX, либо даже напрямую управляют файлами BibTeX. Кроме того, продвинутые редакторы, такие как Emacs, имеют специальную поддержку для библиографий BibTeX.
Короче говоря, есть огромная инфраструктура для создания и управления библиографиями BibTeX и большой запас существующих. Более того, как было отмечено в другом вопросе, вы не можете использовать Biber вместе с natbib
, который используется довольно многими журналами.
Поэтому возникает следующий вопрос: совместим ли формат библиографии Biber с форматом библиографии BibTeX? Или, если нет, то есть ли, по крайней мере, инструмент автоматического преобразования?
Обратите внимание, что оба направления интересны: если Biber не может использовать существующие библиографии BibTeX, это означает, что вам придется преобразовать все существующие библиографии BibTeX, а также сделать это для записей BibTeX из журналов (если они также не предлагают Biber, но часто это просто BibTeX и EndNote) и библиографий, экспортированных из программ управления библиографией. С другой стороны, если файлы Biber не могут быть использованы для BibTeX и не существует преобразования, это означает, что любая библиография Biber бесполезна для журналов, использующих natbib
, и любые программы, напрямую интерпретирующие файлы библиографии BibTeX, больше не могут использоваться (включая поддержку редактора).
Кроме того, в случае, если Biber может читать файлы BibTeX, но не наоборот: имеет ли Biber все еще преимущества перед BibTeX, если файлы ограничены файлами, совместимыми с BibTeX?
решение1
Для разбора файлов формата BibTeX Biber использует библиотеку C под названием "btparse", которая, по всем намерениям и целям, на 99,9% совместима с BibTeX. Таким образом, у вас редко будут проблемы с использованием Biber в качестве замены BibTeX. Как уже упоминалось, проблема скорее в немного иной модели данных, которая biblatex
была сравнена с моделью данных в BibTeX.
Итак, ваш вопрос на самом деле касается разницы в моделях данных между обычным BibTeX и BibLaTeX, независимо от того, используете ли вы Biber в качестве biblatex
бэкенда. Имейте в виду, что в будущем, около BibLaTeX 2.x, BibTeX больше не будет поддерживаться как biblatex
бэкенд, поскольку у него слишком много ограничений. Конечно, файлы данных формата BibTeX всегда будут поддерживаться.
Более важный вопрос, как вы упомянули, заключается в том, какие преимущества Biber может иметь, даже если вы не используете какие-либо biblatex
особенности модели данных. Вот некоторые преимущества Biber в этом отношении (вы можете получить представление, выполнив поиск по строке «Biber only» в руководстве biblatex
), опуская функции, требующие изменения источника данных:
- Поддержка источников данных, отличных от
.bib
(в настоящее время RIS, Zotero RDF/XML, Endnote XML) - Поддержка удаленных источников данных (
.bib
файлы доступны по ftp или http) - Поддержка других форматов вывода (в версии 0.9.8 будет поддерживаться вывод GraphViz .dot для визуализации данных и преобразования в планируемый формат biblateXML)
- Полная поддержка Unicode 6.0 (включая имена файлов и ключи цитирования)
- Механизм сортировки, который, как я думаю, так же хорош или даже лучше, чем любой коммерческий продукт — полный Unicode, многополевый, регистр и направление по полям, поддержка CLDR и полная настройка пользователем. BibTeX в этом отношении и близко не стоит.
- Автоматическое разрешение неоднозначности имен и списков имен. Я думаю, что это довольно впечатляющая функция. Смотрите раздел 4.11.4 руководства
biblatex
для очень хорошего объяснения этого с примерами. - Полностью настраиваемые правила наследования перекрестных ссылок. BibTeX имеет только очень простое статическое правило.
- Автоматическое кодирование и декодирование, включая макросы UTF-8 <-> LaTeX
- Очень гибкая опция файла конфигурации "sourcemap", которая может использоваться для изменения данных
.bib
, считываемых Biber, без изменения самого источника данных. Вы
можете использовать это для выполнения всевозможных действий, таких как удаление определенных полей, добавление полей, условное удаление/добавление полей, изменение полей с использованием полных регулярных выражений Perl 5.14 (см.Бибер руководствораздел 3.1.2).
Эта последняя функция особенно интересна для вас, поскольку вы можете потенциально отображать ваши чистые .bib
файлы BibTeX в biblatex
модель на лету, пока Biber читает их, но без изменения файлов. Это также очень полезно для удаления полей, abstract
которые часто вызывают проблемы из-за зарезервированных символов LaTeX.
В Biber реализованы и другие функции, доступные в BibLaTeX 2.x:
- Настраиваемые этикетки
- Несколько библиографий в одной секции с собственной сортировкой/фильтрацией
- «Связанные» записи — общее решение проблемы всех этих требований «перепечатано как», «переведено как» и т.п.
Я забыл упомянуть, что Biber автоматически применяет поля BibLaTeX и сопоставления entrytype (адрес -> местоположение и т. д.), упомянутые в документации. Он делает это, реализуя некоторые сопоставления источника на уровне драйвера (см. \DeclareSourcemap
и его варианты в документации biblatex).
решение2
Принцип таков: чем больше вы используете biblatex
сильные стороны /Biber, тем сложнее становится вернуться к традиционному рабочему процессу BibTeX.
Если вы работаете со своей базой данных BibTeX и хотите использовать ее с biblatex
/Biber, вам нужно будет настроить всего несколько областей: в главе 2.3 руководства biblatex
перечислены следующие пункты:
- Тип записи @inbook. Подробности см. в §§ 2.1.1 и 2.3.1.
- Поля учреждение, организация и издатель, а также псевдонимы адрес и школа. Подробности см. в §§ 2.2.2, 2.2.5, 2.3.4.
- Обработка определенных типов заголовков. Подробности см. в § 2.3.5.
- Полевая серия. Подробности см. в §§ 2.2.2 и 2.3.7.
- Поля год и месяц. Подробности см. в §§ 2.2.2, 2.3.8, 2.3.9.
- Полевое издание. Подробности см. в § 2.2.2.
- Поле key. Подробности см. в § 2.3.2.
Не все изменения, вероятно, вас коснутся, и не все действительно приведут к несовместимости.
Чем больше вы погружаетесь biblatex
и чем больше вы используете его уникальные типы, поля и функции, тем сложнее становится вернуться назад, конечно. Весь вопрос преобразования между ними на самом деле становится спорным, поскольку это не вопрос различных форматов, а просто предложение biblatex
многих вещей, для которых BibTeX не имеет эквивалента.
Только один пример, который был важен для меня: в традиционном BibTeX нет bookauthor
поля, которое является своего рода препятствием в определенных областях гуманитарных наук. Тот факт, что biblatex
есть это поле, был одной из главных причин, по которой я изначально перешел на biblatex
. Теперь, поскольку BibTeX не знает об этом поле, нет разумного способа иметь полезное преобразование между ними. То же самое верно и для многих других полей. Так что переход к biblatex
— это своего рода улица с односторонним движением после того, как вы пересекли определенную точку.
решение3
Поскольку вы спрашиваете о Biber против BibTeX (то есть,бинарные драйверыдля обработки .bcf
соответствующего .aux
файла, созданного LaTeX в отношении цитат), я предполагаю, что вы используете biblatex
пакет библиографии, поскольку Biber не поддерживает никакой другой пакет библиографии (старый стиль BibTeX, natbib
).
Что касается библиографических баз данных: насколько мне известно, Биберпо большей частисовместим с BibTeX. Однако он более требователен к наличию правильно сформированных записей, поэтому велика вероятность, что что-то «не работает» из коробки. Если вы не хотите все это немедленно исправить, использование biblatex
вместе с bibtex8 -W
обычно является хорошим обходным путем. Вам не нужно немедленно переходить на Biber только из-за использования biblatex
.
Более серьезная проблема заключается в том, что старый стиль BibTeX и biblatex
не на сто процентов совместимы с записями базы данных. На самом деле, biblatex
очищает от многих особенностей старого формата базы данных BibTeX:
Например, в старом стиле BibTeX есть два поля для указания адреса: address
для адреса издателя, который используется во всех типах записей, но @inproceedings
. Для @inproceedings
записей вместо этого нужно указать location
место проведения; address
издателя указывать нельзя (BibTeX предупреждает об этом и игнорирует его).
С biblatex
, оба являются синонимами «где это было опубликовано», что имеет больше смысла, так как вы никогда не используете оба в одной записи – теоретически. Однако многие @inproceedings
записи, которые можно найти в Интернете (ACM, IEEE, ...), содержатоба, хотя технически это не правильно. Когда вы импортируете эти записи в свои личные .bib
файлы и используете их с biblatex
, address
(издателя) иногда перезаписывает location
место проведения, что приводит к неверной информации.
решение4
Проблема, с которой я столкнулся, заключается в том, что комментарии такого вида
@COMMENT text
работают в файлах .bib для BibTex, но не для Biber.
Подробнее об этом можно прочитать здесь: комментарии к коду в файле biblatex