пятница, 18 сентября 2009 г.

utf8gost или как подружить русскую библиографию в BibTeX с ГОСТом и юникодом

Недавно при прочтении моего сообщения про бибтех в емаксе у комментатора появился вопрос можно ли оформить по ГОСТу библиографию с помощью BibTeX. Значит это кому-нибудь нужно… Я пользовался для этого бибтеховским стилем gost. По сути, в бибтеховском файле надо было просто прописать в добавление ко всему что было поле language = "russian", например вот так:

@Book{Aleksandrov_Perovskites04,
  author =       {Александров, К. С. and Безносиков, Б. В.},
  title =        {Перовскиты. Настоящее и будущее. (Многообразие
                  прафаз, фазовые превращения, возможности синтеза
                  новых соединений)},
  address =      {Новосибирск},
  publisher =    {Издательство СО РАН},
  year =         2004,
  pages =        231,
  language =     "russian"
}
а в латеховском исходнике указать:
\bibliographystyle{gost71u}               % выбор стиля оформления библиографии
\bibliography{../../bibliography/biblio}  % относительный путь до бибтеховской базы (без расширения bib)
В данном случае используем стиль gost71u. U означает аналог unsrt - ссылки будут нумероваться в порядке упоминания в тексте. Для стиля gost71s ссылки будут нумероваться по алфавиту.

В пакете gost есть ещё стили gost780u и gost780s. Они соответствуют ГОСТу 7.80-00 от 2000 года, в то время как gost71 - ГОСТу 7.1-84 от 1984 года. Хотя чисто визуально «стандартным» везде в моём кругу считают стиль, как оказалось, 84 года. Вообще с нашими ГОСТами сам чёрт ногу сломит. Недавно вот наши чиновники придумали в очередной раз новый стандарт. В любом случае нам за этими глупыми обновлениями не угнаться, поэтому пока пользуемся тем что есть.

А как же юникод?

Всё бы ничего, но стиль корректно функционирует только для однобайтовых кодировок, то есть никак не для юникода. Как-то видел сообщение на ЛОРе, что нашёлся умелец, который как-то стиль пропатчил, но с некоторыми ограничениями в функциональности. Там же на ЛОРе обнаружил сообщение, о том, что теперь есть те гостовские стили, адаптированные под юникод! Архив со стилем можно скачать тут. В архиве помимо необходимых для функционирования стиля файлов есть pdf-файлы с примерами того, как это будет выглядеть на печати.

Установка стиля

Перейдите в директорию, где лежат бибтеховские стили (в моём случае, на Debian Lenny это /usr/share/texmf-texlive/bibtex/bst):

$ cd /usr/share/texmf-texlive/bibtex/bst
Распакуйте архив:
$ sudo unzip /path/to/utf8gost.zip

После этого от нормального рута, а не через sudo скомандуйте:

# texhash

Запускаем

Теперь можно копировать базу, на всякий случай, и конвертировать её в юникод, если до этого было что-то другое. И наконец, исправляем в латеховском исходнике используемый стиль на один из utf8gost7*. Например, на ГОСТ 84 года в порядке упоминания в тексте:

\bibliographystyle{utf8gost71u}

По мере короткого использования никаких багов не заметил. Ждём новый стиль под «самый новый ГОСТ». Только боюсь, он уже будет неактуален, потому что появится «вообще самый-самый новый»… :)

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

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

  1. Только осваиваю LaTeX, разбираюсь с библиографией,упоминание про texhash - очень нужное! Даже мысли не было об этом...

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