BibTeX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Логотип программы BibTeX

BibTeX— программное обеспечение для создания форматированных списков библиографии. BibTeX используется совместно сLaTeX'ом и входит во все известные дистрибутивыTeXиLaTeX.

BibTeX был созданОреном ПаташникомиЛесли Лэмпортомв1985 году.BibTeX позволяет работать со списками источников, отделяя библиографическую информацию от её представления. Принцип отделения содержимого от его представления использован как в самом LaTeX’е, так и вXHTML,CSSи др.

Использование

[править|править код]

При подготовке документа вLaTeXсистема BibTeX предоставляет по сравнению со стандартным LaTeX-окружениемthebibliographyследующие преимущества:

  • список литературы генерируется автоматически по всем ссылкам\cite,упомянутым в тексте;
  • можно использовать единую библиографическую базу (bib-файл) во всех своих текстах, во всех работах отдела, и т. д.;
  • легко обмениваться библиографическими базами с коллегами;
  • нет необходимости помнить правила оформления библиографии, так как BibTeX делает эту работу автоматически с помощью стилевых bst-файлов.

Для вызова 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, которая тоже выполняет все необходимые вызовы автоматически.

Библиографические базы: bib-файлы

[править|править код]

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

Bib-файлы можно использовать для хранения библиографических баз данных. Многие программы, работающие с библиографиями, (такие, какJabRef) и онлайн-сервисы цитирования (ADS[1],CiteULike) могут экспортировать ссылки в bib-формат.

Каждая запись выглядит следующим образом:

@ARTICLE{tag,
author={Список авторов},
title={Название статьи},
year={год},
journal={Название журнала}
}

ЗдесьARTICLE— тип записи («статья»), tag — метка-идентификатор записи (которая позволяет ссылаться в тексте с помощью\cite{tag}), дальше список полей со значениями.

Типы записей

[править|править код]

Каждая запись должна быть определённого типа, описывающего тип публикации. Следующие типы являются стандартными и обрабатываются почти всеми стилями BibTeX (названия расположены по алфавиту и содержат списки полей, возможные поля см.ниже):

article
Статья из журнала.
Необходимые поля:author, title, journal, year
Дополнительные поля:volume, number, pages, month, note, key
book
Определённое издание книги.
Необходимые поля:author/editor, title, publisher, year
Дополнительные поля:volume, series, address, edition, month, note, key, pages
booklet
Печатная работа, которая не содержит имя издателя или организатора (например,самиздат).
Необходимые поля:title
Дополнительные поля:author, howpublished, address, month, year, note, key
conference
Синонимinproceedings,оставлено для совместимости сScribe.
Необходимые поля:author, title, booktitle, year
Дополнительные поля:editor, pages, organization, publisher, address, month, note, key
inbook
Часть книги, возможно без названия. Может быть главой (частью, параграфом), либо диапазоном страниц.
Необходимые поля:author/editor, title, chapter/pages, publisher, year
Дополнительные поля:volume, series, address, edition, month, note, key
incollection
Часть книги, имеющая собственное название (например, статья в сборнике).
Необходимые поля:author, title, booktitle, year
Дополнительные поля:editor, pages, organization, publisher, address, month, note, key
inproceedings
Тезис (труд) конференции.
Необходимые поля:author, title, booktitle, year
Дополнительные поля:editor, series, pages, organization, publisher, address, month, note, key
manual
Техническая документация.
Необходимые поля:title
Дополнительные поля:author, organization, address, edition, month, year, note, key
mastersthesis
Магистерскаядиссертация.
Необходимые поля:author, title, school, year
Дополнительные поля:address, month, note, key
misc
Использовать, если другие типы не подходят.
Необходимые поля:none
Дополнительные поля:author, title, howpublished, month, year, note, key
phdthesis
Кандидатскаядиссертация.
Необходимые поля:author, title, school, year
Дополнительные поля:address, month, note, key
proceedings
Сборник трудов (тезисов) конференции.
Необходимые поля:title, year
Дополнительные поля:editor, publisher, organization, address, month, note, key
techreport
Отчёт, опубликованный организацией, обычно пронумерованный внутри серии.
Необходимые поля:author, title, institution, year
Дополнительные поля:type, number, address, month, note, key
unpublished
Документ, имеющий автора и название, но формально не опубликованный (рукопись).
Необходимые поля:author, title, note
Дополнительные поля:month, year, key

Каждая запись содержит некоторый список стандартных полей (можно вводить любые другие поля, которые просто игнорируются стандартными программами):

  • addendum:то же, чтоnote,но добавляется в самом конце библиографической записи.
  • address:Адрес издателя (обычно просто город, но может быть полным адресом для малоизвестных издателей)
  • annoteJabRefabstract): Аннотация для библиографической записи.
  • 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:Год публикации (если не опубликовано — создания)

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

Стили оформления библиографии: bst-файлы

[править|править код]

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(Ubuntu10.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. В окончательном виде ссылка может выглядеть, например, так:

Корн Г. А., Корн Т. М.Справочник по математике для научных работников и инженеров.—М.Наука», 1974.

В зависимости от стилевого файла, 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 этого примера может выглядеть примерно так:

Автор, Первый and Автор, Второй (October 2006), Название доклада, in: Proceedings of the Xth Conference on XYZ, pp 330—331.
  1. LyX wiki | BibTeX / Tips.Дата обращения: 23 апреля 2012.Архивировано7 мая 2012 года.
  2. アーカイブされたコピー.Дата обращения: 24 мая 2011.Архивировано27 сентября 2011 года.
  3. TeX Frequently Asked Questions — question label «biblatex».Дата обращения: 23 апреля 2012.Архивировано17 мая 2012 года.
  4. CTAN web interface: package crosstex.Дата обращения: 23 апреля 2012.Архивировано18 ноября 2011 года.
  5. CrossTeX.Дата обращения: 23 апреля 2012.Архивировано9 марта 2012 года.
  6. CTAN web interface: package biber.Дата обращения: 23 апреля 2012.Архивировано18 апреля 2012 года.
  7. Biber: BibTeX replacement for biblatex.Дата обращения: 23 апреля 2012.Архивировано10 февраля 2013 года.
  8. CTAN web interface: package biblatex.Дата обращения: 23 апреля 2012.Архивировано18 апреля 2012 года.
  9. CTAN web interface: package bibtex.Дата обращения: 23 апреля 2012.Архивировано16 апреля 2012 года.