BibTeX — программное обеспечение для создания форматированных списков библиографии. BibTeX используется совместно с LaTeX'ом и входит во все известные дистрибутивы TeX и LaTeX.
BibTeX был создан Ореном Паташником и Лесли Лэмпортом в 1985 году. BibTeX позволяет работать со списками источников, отделяя библиографическую информацию от её представления. Принцип отделения содержимого от его представления использован как в самом LaTeX’е, так и в XHTML, CSS и др.
При подготовке документа в LaTeX система BibTeX предоставляет по сравнению со стандартным LaTeX-окружением thebibliography
следующие преимущества:
\cite
, упомянутым в тексте;Для вызова BibTeX’а достаточно заменить окружение thebibliography
командами
\bibliographystyle{stylefile} % bst-файл, задающий стиль оформления библиографии
\bibliography{bibfile} % имя bib-файла, содержащего библиографическую базу
например,
\bibliographystyle{gost780s} % ГОСТ 7.80
\bibliography{MachLearn} % MachLearn.bib
Можно использовать несколько библиографических баз одновременно (тогда их имена указываются через запятую).
Тексты, использующие BibTeX, необходимо обрабатывать 4 раза: первый проход LaTeX (создание aux-файла с запросами ссылок), затем BibTeX (создание bbl-файла с библиографией, готовой для вставки в LaTeX-файл), и ещё два прохода LaTeX (вставка библиографии и актуализация номеров ссылок).
В TeX Live и MiKTeX есть Perl-скрипт latexmk, который выполняет все необходимые вызовы автоматически. В MiKTeX также есть утилита texify, которая тоже выполняет все необходимые вызовы автоматически.
BibTeX использует bib-файлы специального текстового формата для хранения списков библиографических записей. Каждая запись описывает ровно одну публикацию — статью, книгу, диссертацию, и т. д.
Bib-файлы можно использовать для хранения библиографических баз данных. Многие программы, работающие с библиографиями, (такие, как JabRef) и онлайн-сервисы цитирования (ADS[1], CiteULike) могут экспортировать ссылки в bib-формат.
Каждая запись выглядит следующим образом:
@ARTICLE{tag,
author = {Список авторов},
title = {Название статьи},
year = {год},
journal = {Название журнала}
}
Здесь ARTICLE
— тип записи («статья»), tag — метка-идентификатор записи (которая позволяет ссылаться в тексте с помощью \cite{tag}
), дальше список полей со значениями.
Каждая запись должна быть определённого типа, описывающего тип публикации. Следующие типы являются стандартными и обрабатываются почти всеми стилями BibTeX (названия расположены по алфавиту и содержат списки полей, возможные поля см. ниже):
article
book
booklet
conference
inproceedings
, оставлено для совместимости с Scribe.inbook
incollection
inproceedings
manual
mastersthesis
misc
phdthesis
proceedings
techreport
unpublished
Каждая запись содержит некоторый список стандартных полей (можно вводить любые другие поля, которые просто игнорируются стандартными программами):
addendum
: то же, что note
, но добавляется в самом конце библиографической записи.address
: Адрес издателя (обычно просто город, но может быть полным адресом для малоизвестных издателей)annote
(в JabRef — abstract
): Аннотация для библиографической записи.author
: Имена авторов (если больше одного, то разделяются and
)booktitle
: Наименование книги, содержащей данную работу.chapter
: Номер главыcrossref
: Ключ кросс-ссылки (позволяет использовать другую библио-запись в качестве названия, например, сборника трудов)edition
: Издание (полная строка, например, «1-е, стереотипное»)editor
: Имена редакторов (оформление аналогично авторам)eprint
: Описание электронной публикации, часто препринт или технический отчетhowpublished
: Способ публикации, если нестандартныйinstitution
: Институт, вовлечённый в публикацию, необязательно издательisbn
: издания ISBN (Международный стандартный книжный номер)journal
: Название журнала, содержащего статьюkey
: Скрытое ключевое поле, задающее порядок сортировки (если «author» и «editor» не заданы)month
: Месяц публикации (может содержать дату). Если не опубликовано — созданияnote
: Любые заметкиnumber
: Номер журналаorganization
: Организатор конференцииpages
: Номера страниц, разделённые запятыми или двойным дефисом. Для книги — общее количество страницpublisher
: Издательschool
: Институт, в котором защищалась диссертацияseries
: Серия, в которой вышла книгаtitle
: Название работыtype
: Тип отчёта, например «Заметки исследователя»url
: WWW-адресvolume
: Том журнала или книгиyear
: Год публикации (если не опубликовано — создания)Дополнительно, каждая запись содержит ключевое поле, которое служит для цитирования или кросс-ссылок на эту запись. Это поле должно быть уникальным (в рамках использующей работы) и непустым. Это поле не имеет названия, не является частью других полей и идёт первым по-порядку.
BibTeX использует bst-файлы для описания того, как bib-записи преобразуются в текст на LaTeX'e. Каждый bst-файл представляет собой программу на простом стековом языке программирования, напоминающем Forth или PostScript. Есть программы, позволяющие генерировать .bst-файлы автоматически (например, custom-bib или Bib-it).
Обычно BibTeX формирует вывод в формате TeX или LaTeX, но существуют и стилевые файлы для генерации формата HTML.
Многие журналы или издательства, которые принимают публикации в формате LaTeX, снабжают также библиографическими стилями для авторов. Это удостоверяет, что стиль оформления библиографии также будет соответствовать требованиям издателя с минимальными усилиями.
Языковая поддержка в полном объёме встроена в современные версии LaTeX и BibTeX. Однако BibTeX не поддерживает[1] bib-файлы, заированные в UTF-8 и других вариантах Юниа, который является единственным кроссплатформенным методом ировки текста на языках, отличных от английского. Причина в том, что активная разработка BibTeX была прекращена в 1988 году, до появления Юниа (версия 0.99c выпущена в 1988 году, текущая версия 0.99d, содержавшая малые изменения, — в 2010 году).[2] Пользователь чистого BibTeX вынужден использовать 8-битные ировки bib-файлов (хотя tex-файлы при этом могут быть в Юние). Несмотря на это, опыт использования BibTeX в операционной системе Linux (Ubuntu 10.04) показывает корректную работу BibTeX с русскими символами в ировке UTF-8.
Заменами BibTeX являются CrossTeX и Biber.[3]
CrossTeX не доступен[4] в основных свободных дистрибутивах Tex Live и MiKTeX и пока не имеет[5] полной поддержки Юниа.
Biber доступен[6] в Tex Live и MiKTeX и имеет[7] полную поддержку UTF-8 (Юни версии 6.0). Biber может работать только в связке с BibLaTeX.[8] BibLaTeX разрабатывался как надстройка над BibTeX и может работать как с BibTeX, так и с Biber; Biber при этом заменяет BibTeX.
В настоящее время сайт CTAN призывает[9] использовать BibLaTeX+Biber (или хотя бы BibLaTeX+BibTeX) вместо чистого BibTeX.
.bib
-файл может содержать следующую запись, которая описывают математическую книгу:
@Book{Korn,
author = {Корн, Г. А. and Корн, Т. М.},
title = {Справочник по математике для научных работников и инженеров},
publisher = {«Наука»},
year = 1974,
address = Москва,
lang=ru
}
Если документ ссылается на эту книгу, библиографическая информация может быть оформлена несколькими способами в зависимости от выбранного стандарта оформления (APA, MLA, Chicago и др.). То, как LaTeX форматирует ссылку, зависит от способа вызова команды \cite
и выбранного стиля оформления LaTeX-документа. Если команда \cite{Korn}
вызывается внутри документа, то программа bibtex
включает книгу в список литературы для документа и генерирует соответствующий форматирования LaTeX. В окончательном виде ссылка может выглядеть, например, так:
В зависимости от стилевого файла, BibTeX может переставлять фамилии и имена авторов, изменять регистр названий, опускать некоторые поля из .bib
-файла, оформлять текст курсивом, добавлять знаки пунктуации и т. д. Так как один стилевой файл используется для всего списка литературы, то все библиографические ссылки оформляются единообразно с минимальным усилием авторов и редакторов.
Префиксы фамилий, такие как von, van и der обрабатываются автоматически, если они начинаются со строчной буквы, чтобы отличать их от фамилий. Фамилии из нескольких слов отделяются от имён и отчеств (или средних имён) тем, что они идут сначала, а потом, через запятую, пишутся имена и отчества. Именные суффиксы, как Ср. или Мл. или III обычно обрабатываются с помощью второй запятой-разделителя, как в примере:
@Book{hicks2001,
author = "von Hicks, III, Michael",
title = "Design of a Carbon Fiber Composite Grid Structure for the GLAST
Spacecraft Using a Novel Manufacturing Technique",
publisher = "Stanford Press",
year = 2001,
address = "Palo Alto",
edition = "1st,",
isbn = "0-69-697269-4"
}
Вместо использования запятой, чтобы отделить именной суффикс от фамилии, можно выделить всё имя фигурными скобками: {Hicks III}.
Авторы должны отделяться словом and, а не запятыми или «и»:
@Book{Torre2008,
author = "Joe Torre and Tom Verducci",
publisher = "Doubleday",
title = "The Yankee Years",
year = 2008,
isbn = "0385527403"
}
BibTeX позволяет ссылаться на другие публикации с помощью поля crossref
. В следующем примере тезис ссылается на сборник тезисов.
@INPROCEEDINGS {author:06,
title = {Название доклада},
author = {Первый Автор and Второй Автор},
crossref = {conference:06},
pages = {330—331},
}
@PROCEEDINGS {conference:06,
editor = {Первый Редактор and Второй Редактор},
title = {Proceedings of the Xth Conference on XYZ},
booktitle = {Proceedings of the Xth Conference on XYZ},
year = {2006},
month = {October},
}
При этом следует добавлять booktitle
к записи сборника, чтобы избежать предупреждения BibTeX’а «empty booktitle».
Вывод LaTeX этого примера может выглядеть примерно так:
![]() |
Имеется викиучебник по теме «en:LaTeX/Bibliography Management» |
---|
gost780s.bst
и gost780u.bst
.В статье есть список источников, но не хватает сносок. Без сносок сложно определить, из какого источника взято каждое отдельное утверждение. Вы можете улучшить статью, проставив сноски на источники, подтверждающие информацию. Сведения без сносок могут быть удалены. |