суббота, 2 мая 2009 г.

База библиографических ссылок BibTeX в Emacs

Что такое BibTeX и какая от него польза можно прочитать здесь. Забегая вперед, скажу, что вещь это весьма полезная, научившись пользоваться которой, вам будет намного проще управляться с бибилиографическими ссылками в LaTeX, не мучаясь с переформатированием под каждый отдельный случай (например, считается, судя по всему, хорошим тоном для каждого журнала придумать своё и только своё правило для оформления этих ссылок. Справиться с этим варварством как раз поможет BibTeX).

Для редактирования базы данных BibTeX в линукс существует несколько программ, например, kbib, kbibtex, XfBib, jabref. Как следует из названия, первые две предназначены для работы в KDE, в то время, как последняя основана на Java. Я не имею ничего против этого языка программирования :), но лично мне не нравятся тормозящие программы, имеющие своеобразный интерфейс (возможно я не осили, но побороть ужасно размытые шрифты я не смог, а потом уже и не хотелось). Перечисленные программы обладают весьма серьезным функционалом, за исключением простенькой XfBib. Однако мне весь этот функционал не нужен, так же, как и KDE с Java. Можно, конечно, править библиографию руками, что весьма напряжно, но В Емаксе есть для этого специальный режим bibtex-mode.

Режим подхватится автоматически при редактировании файла с расширением bib, но если этого не произошло можно включить режим вручную:

M-x bibtex-mode

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

Комбинации клавиш

Создание окружения

Статья в журнале (A rticle):

C-c C-e C-a

Статья в сборнике тезисов (in P roceedings):

C-c C-e C-p

Заказная статья в сборнике (in C ollection):

C-c C-e C-c

Глава или страницы в книге (chapter in B ook):

C-c C-e C-b

Сборник трудов конференции вообще, а не отдельная статья (p roceedings):

C-c C-e p

Книга целиком (B ook):

C-c C-e b

Технический отчёт (T echnical report):

C-c C-e C-t

Если интересует что-то ещё, то сочетание можно посмотреть в меню «Entry-types», а если показ меню отключён, как у меня, то его можно посмотреть одновременно нажав Ctrl и правую кнопку мыши.

Заполнение полей

Для каждого типа окружения имеется обязательный набор полей. Также есть необязательные поля, которые начинаются с «OPT» (например, OPTmonth) или с ALT (например, ALTEditor).

Необязательное поле можно сделать активным комбинацией:

C-c C-o

Чтобы не мучаться с позиционированием курсора между фигурными стрелками, для перехода от одного поля к следующему лучше использовать bibtex-next-field

C-j

Выравниваются поля стандартно:

M-q

А для выравнивания всех полей в окружении служит bibtex-fill-entry

C-c C-q

Создать свое собственное поле (например, language) можно посредством bibtex-make-field

C-c C-f

Пример использования

@Article{sunarso08:_mixed_ionic_elect_conduc_miec,
  author =       {J. Sunarso and S. Baumann and J. M. Serra and
                  W. A. Meulenberg and S. Liu and Y. S. Lin and
                  J. C. Diniz da Costa},
  title =        {Mixed ionic-electronic conducting {(MIEC)}
                  ceramic-based membranes for oxygen separation},
  journal =      {Journal of Membrane Science},
  year =         2008,
  volume =       320,
  pages =        {13-41}
}

Закончив заполнение полей полезно всё выровнять с скомандовать bibtex-clean-entry.

C-c C-c
Как бы странно это ни звучало, но эта команда проверяет синтаксическую корректность окружения и предлагает дать название записи. Надо сказать, что некириллические названия задаёт сама вполне адекватно.

При создании документа с использованием AUCTeX и RefTeX можно сослаться на запись комбинацией C-c C-[. Будет предожено ввести регулярное выражение записи. Для простоты можно ввести кусок названия. Затем в вывалившемся списке отметить нужный вариант. Но об этом подробнее я расскажу в отдельном сообщении.

Преимущества и недостатки

К плюсам этого способа работы с библиографией можно отнести интеграцию с правкой текста в LaTeX, отсутствие необходимости привыкать к другой программе, поскольку всё можно сделать не выходя из емакса. Также, поскольку емакс работает с системой контроля версий, можно заслать обновленный вариант сразу же

C-x v v
после ввода комментария
C-c C-c

Из минусов могу отметить отсутсвие поиска в интернете, что, если не ошибаюсь как-то было реализовано в kbibtex. Хотя, лично для меня, это совсем не минус.

Копируете статью - поставьте ссылку на оригинал!

2 комментария:

  1. а русские стили "по госту" для bibtexa?

    ОтветитьУдалить
  2. Я использовал для своего диплома бибтеховский стиль gost71u. Там нужно для русских источников ещё прописывать в полях language="russian".

    Никаких нареканий по поводу оформления не было. Но поскольку ГОСТы меняются с бухты-барахты, вполне вероятно, что могут возникнуть проблемы, а не хотелось бы.

    ОтветитьУдалить