Практическая работа №3. BiBTeX

Опубликовано пользователем Бессонов Л.В. 29.03.2011г.

Библиографическая база данных (ББД):

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

Автор, зная структуру своей базы, делает соответствующие ссылки на цитируемую литературу во вновь набираемой статье, включает дополнительные команды по работе с ББД, не набирая при этом весь длинный список литературы. Запускает программу BiBTeX, которая собирает из ББД и формирует нужный список литературы.

Для работы с личной ББД необходимо:

  1. Сформировать ББД (файл .bib) - это значит создать и заполнить файл с расширением .bib.
    Записи такого файла имеют определенную структуру. Каждая запись должна быть отнесена к определенному типу: статья в журнале, статья для конференции, книга, дипломная работа и т.п.
    Записи в базе данных для различных типов имеют различный набор полей, причем поля делятся на 3 класса: обязательное поле, необязательное поле и игнорируемое поле.
  2. Необходим стилевой файл (файл .bst), определяющий библиографический формат.
    В соответствии с библиографическим форматом будут формироваться ссылки и список литературы вашей статьи.
  3. В преамбуле статьи нужно разместить команду
    1. \bibliographystyle{выбранный стиль} %где выбранный стиль - имя используемого \verb|.bst|-файла

    Существует четыре стандартных стиля plain, unsrt, alpha, abbrv. С коллекцией AmSLATEXa распостраняются еще 2 стиля amsaipha и amsplain.

  4. В конце статьи вместо окружения thebibliography{} разместить команду \bibliography{имя ББД}(без расширения).

1. Формирование ББД (файл .bib)

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

  1. @ARTICLE{name,
  2. author = "Список авторов",
  3. title = "Название статьи",
  4. year = "год",
  5. journal = "Название журнала",
  6. }

Затем компилируется с помощью BibTeX.

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

Типы записей:

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

  1. article - Статья из журнала.
    Небходимые поля: AUTHOR, TITLE, JOURNAL, YEAR
    Дополнительные поля: VOLUME, NUMBER, PAGES, MONTH, NOTE, KEY
  2. book - Определённое издание книги.
    Небходимые поля: AUTHOR/EDITOR, TITLE, PUBLISHER, YEAR
    Дополнительные поля: VOLUME, SERIES, ADDRESS, EDITION, MONTH, NOTE, KEY, PAGES
  3. booklet - Печатная работа, которая не содержит имя издателя или организатора (например, самиздат).
    Небходимые поля: TITLE
    Дополнительные поля: AUTHOR, HOWPUBLISHED, ADDRESS, MONTH, YEAR, NOTE, KEY
  4. conference - Синоним inproceedings, оставлено для совместимости с Scribe.
    Небходимые поля: AUTHOR, TITLE, BOOKTITLE, YEAR
    Дополнительные поля: EDITOR, PAGES, ORGANIZATION, PUBLISHER, ADDRESS, MONTH, NOTE, KEY
  5. inbook - Часть книги, возможно без названия. Может быть главой (частью, параграфом), либо диапазоном страниц.
    Небходимые поля: AUTHOR/EDITOR, TITLE, CHAPTER/PAGES, PUBLISHER, YEAR
    Дополнительные поля: VOLUME, SERIES, ADDRESS, EDITION, MONTH, NOTE, KEY
  6. incollection - Часть книги, имеющая собственное название (например, статья в сборнике).
    Небходимые поля: AUTHOR, TITLE, BOOKTITLE, YEAR
    Дополнительные поля: EDITOR, PAGES, ORGANIZATION, PUBLISHER, ADDRESS, MONTH, NOTE, KEY
  7. inproceedings - Тезис (труд) конференции.
    Небходимые поля: AUTHOR, TITLE, BOOKTITLE, YEAR
    Дополнительные поля: EDITOR, SERIES, PAGES, ORGANIZATION, PUBLISHER, ADDRESS, MONTH, NOTE, KEY
  8. manual - Техническая документация.
    Небходимые поля: TITLE
    Дополнительные поля: AUTHOR, ORGANIZATION, ADDRESS, EDITION, MONTH, YEAR, NOTE, KEY
  9. mastersthesis - Магистерская диссертация.
    Небходимые поля: AUTHOR, TITLE, SCHOOL, YEAR
    Дополнительные поля: ADDRESS, MONTH, NOTE, KEY
  10. misc - Использовать, если другие типы не подходят.
    Небходимые поля: NONE
    Дополнительные поля: AUTHOR, TITLE, HOWPUBLISHED, MONTH, YEAR, NOTE, KEY
  11. phdthesis - Кандидатская диссертация.
    Небходимые поля: AUTHOR, TITLE, SCHOOL, YEAR
    Дополнительные поля: ADDRESS, MONTH, NOTE, KEY
  12. proceedings - Сборник трудов (тезисов) конференции.
    Небходимые поля: TITLE, YEAR
    Дополнительные поля: EDITOR, PUBLISHER, ORGANIZATION, ADDRESS, MONTH, NOTE, KEY
  13. techreport - Отчёт, опубликованный организацией, обычно пронумерованный внутри серии.
    Небходимые поля: AUTHOR, TITLE, INSTITUTION, YEAR
    Дополнительные поля: TYPE, NUMBER, ADDRESS, MONTH, NOTE, KEY
  14. unpublished - Документ, имеющий автора и название, но формально не опубликованный.
    Небходимые поля: AUTHOR, TITLE, NOTE
    Дополнительные поля: MONTH, YEAR, KEY
Поля записей

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

  1. address: Адрес издателя (обычно просто город, но может быть полным адресом для малоизвестных издателей)
  2. annote (в JabRef — abstract): Аннотация для библиографической записи
  3. author: Имена авторов (если больше одного, то разделяются and)
  4. booktitle: Наименование книги, содержащей данную работу
  5. chapter: Номер главы
  6. crossref: Ключ кросс-ссылки (позволяет использовать другую библио-запись в качестве названия, например, сборника трудов)
  7. edition: Издание (полная строка, например, «1-е, стереотипное»)
  8. editor: Имена редакторов (оформление аналогично авторам)
  9. eprint: A specification of an electronic publication, often a preprint or a technical report
  10. howpublished: Способ публикации, если нестандартный
  11. institution: Институт, вовлечённый в публикацию, необязательно издатель
  12. journal: Название журнала, содержащего статью
  13. key: Скрытое ключевое поле, задающее порядок сортировки (если «author» и «editor» не заданы)
  14. month: Месяц публикации (может содержать дату). Если неопубликовано — создания
  15. note: Любые заметки
  16. number: Номер журнала
  17. organization: Организатор конференции
  18. pages: Номера страниц, разделённые запятыми или двойным дефисом. Для книги — общее количество страниц.
  19. publisher: Издатель
  20. school: Институт, в котором защищалась диссертация
  21. series: Серия, в которой вышла книга
  22. title: Название работы
  23. type: Тип отчёта, например «Заметки исследователя»
  24. url: WWW-адрес
  25. volume: Том журнала или книги
  26. year: Год публикации (если неопубликовано — создания)

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

2. Формирование стилевого файла (файл .bst)

BibTeX использует bst-файлы для описания того, как bib-записи преобразуются в текст на LaTeX'e. Каждый bst-файл представляет собой программу на простом стековом языке программирования, напоминающем FORTH или PostScript. Есть программы, позволяющие генерировать .bst-файлы автоматически (например, custom-bib или Bib-it).

Обычно BibTeX формирует вывод в формате TeX или LaTeX, но существуют и стилевые файлы для генерации формата HTML.

Перед тем, как с помощью команды \bibliography подключить базу к LaTeX-исходнику, нужно выбрать стиль сортировки библиографии:

  1. \bibliographystyle{«стиль»}

В LaTeX есть четыре стандартных стиля для формирования списка литературы:

  • plain – открытый стиль. Библиографические записи помечаются порядковыми номерами и сортируются в алфавитном порядке. Чтобы правильно отсортировать библиографию на русском языке, необходимо вместо BibTeX воспользоваться командой BibTeX8, указав с помощью ключа --csfile соответствующее правило сортировки (В стандартной поставке LaTeX есть правило для сортировки для кодовой страницы cp866 cp866rus.csf. На основе этого файла можно создать правило для другой кодовой страницы.)
  • unsrt – несортирующий стиль. В отличии от plain, порядок представления списка литературы определяется порядком цитирования библиографии в тексте.
  • alpha – алфавитный стиль. Вместо нумерации библиографии используются имена меток. Литература сортируется по меткам.
  • abbrv – аббревиатурный стиль. Вместо полных имён авторов, названий месяцев и журналов печатаются сокращения. Сортировка и нумерация соответствует стилю plain.

Максим Поляков разработал стили для BibTeX, соответствующие ГОСТ 7.80-00 и GOST 7.1-84: gost780s/gost71s, аналогичные plain и gost780u/gost71u, аналогичные unsrt.

Последовательность действий при работе с личной ББД (после выполнении пунктов, указанных выше)

  • Скомпилировать статью в LATEXe - сгенерировать \cite ссылки статьи в файле .aux (один раз).
  • Скомпилировать BiBTeX, выполнив команду BiBTeX имя статьи(без расширения).
    При этом на основании анализа файла .aux СОЗДАЕТСЯ файл .bbl, содержащий ссылки, отформатированные в соответствии с библиографическим форматом, определенном в стилевом файле .bst. Предупреждения и сообщения об ошибках записываются в файл .blg.
  • Еще раз скомпилировать статью в LATEXe, при этом считывается файл .bbl.
  • Третий раз скомпилировать статью в LATEXe, при котором ссылки в тексте принимают окончательный вид.

Алфавитный указатель

Так же как и список литературы, алфавитный указатель можно составить автоматически, указав в преамбуле команду

  1. \makeindex

Cлова, которые нужно поместить в указатель, отмечаются с помощью команды \index.

Сама по себе команда \index игнорируется, но всё, что в ней отмечается вместе с информацией о положении команды, заносится в файл с расширением .idx. Имя idx-файла по умолчанию соответствует имени основного документа. Записи хранятся в нём в неотсортированном виде. С помощью программы сортировки rumakeindex получается отформатированный правильным образом указатель в файле с расширением .ind. Этот файл уже можно вставить в документ:

  1. \input{«ind-файл»}

Это же делает и команда \printindex из пакета makeidx. В дополнение к подключению индекса команда \printindex проверяет существование индексного файла и не даёт LaTeX генерировать ошибку в случае его отсутствия.

Аргумент команды \index может содержать любые символы, кроме !, “, @ и |. Их специальное значение проявляется только внутри команды. Чтобы убрать специальное значение этих символов внутри \index необходимо добавить перед ними символ (двойную кавычку).

Для формирования многоуровневых иерархических указателей используется разделитель в виде восклицательного знака !:

  1. % на страницах 110 и 111
  2. \index{Указатель!rumakeindex}

 

Команды \index с одинаковыми аргументами группируются в одну запись с полным списком страниц.

Символ вертикальной черты | используется для отделения видимого аргумента от управляющих знаков. Команда \see (перекрёстная ссылка на другую запись), определённая в пакете makeidx, должна идти в индексе вслед за этим разделителем:

  1. \index{Указатель!makeindex|see{rumakeindex}}

С помощью вертикальной черты можно также сформировать указатель на диапазон страниц:

  1. % на странице 110
  2. \index{Указатель|( }
  3. много текста
  4. % на странице 111
  5. \index{Указатель|)}

Иногда номер страницы нужно как-то выделить. Команды выделения текста также должны идти после вертикальной черты:

  1. % Выделяем страницу 110 жирным шрифтом
  2. \index{MakeIndex@\textit{MakeIndex}|textbf}

Конструкция «ключ»@«запись» используется для правильной сортировки внутри \index. По «ключу» производится сортировка, а «запись» выводится в предметном указателе.

Баннер SGU.RU