Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bibtex не умеет unicode. Что делать?

74 views
Skip to first unread message

basilio

unread,
Nov 19, 2011, 11:40:01 AM11/19/11
to
Постепенно перевожу свое писательство на Latex. Решил перетащить все
свои ссылки на литературу в один файл. Всегда думал, что bibtex
специально под это заточен. Но, оказалось, что он не умеет unicode.
Причем - в простых библиографиях в стиле plain все вроде-бы и ничего. А
вот прикрутить ГОСТовский стиль - постоянно глюки какие-то вылазят.
Вроде нашелся файл utf8gost****, но он, вроде и хороший в остальном
пакет, имена авторов не сокращает до инициалов, т.е. тоже глюк.
В связи с этим вопрос - есть ли альтернатива перекодировке файлов в
CP1251 (кои8/ср866 не предлагать)?

Спасибо заранее.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/ja8lmq$dbk$1...@dough.gmane.org

Иван Лох

unread,
Nov 19, 2011, 2:10:01 PM11/19/11
to
On Sat, Nov 19, 2011 at 06:32:25PM +0200, basilio wrote:
> Постепенно перевожу свое писательство на Latex. Решил перетащить все
> свои ссылки на литературу в один файл. Всегда думал, что bibtex
> специально под это заточен. Но, оказалось, что он не умеет unicode.

Это не так.

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

Очевидно, просто стиль кривой.

> Вроде нашелся файл utf8gost****, но он, вроде и хороший в остальном
> пакет, имена авторов не сокращает до инициалов, т.е. тоже глюк.

Так исправьте. Вам кто-нибудь мешает это сделать? Это займет 5 минут.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/2011111919...@nano.ioffe.rssi.ru

Maxim Nikulin

unread,
Nov 20, 2011, 12:10:01 AM11/20/11
to
On 20.11.2011 02:09, Иван Лох wrote:
> On Sat, Nov 19, 2011 at 06:32:25PM +0200, basilio wrote:
>> Постепенно перевожу свое писательство на Latex. Решил перетащить все
>> свои ссылки на литературу в один файл. Всегда думал, что bibtex
>> специально под это заточен. Но, оказалось, что он не умеет unicode.
>
> Это не так.

Вы в этом уверены?

Есть просто bibtex, который вообще не особо дружит с русскими буквами.
Есть bibtex8, который умеет работать с восьмибитными кодировками.
Вроде недавно появился bibtexu (TeX Live 2011?), который должен уметь
работать с unicode, но в debian, он пока не наблюдается.

Еще есть biblatex/biber, но про стили ГОСТ для него я не слышал.

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

Стиль нормальный, только он предназначен для восьмибитных кодировок и
bibtex8.

>> Вроде нашелся файл utf8gost****, но он, вроде и хороший в остальном
>> пакет, имена авторов не сокращает до инициалов, т.е. тоже глюк.
>
> Так исправьте. Вам кто-нибудь мешает это сделать? Это займет 5 минут.

Уже были товарищи, которые пытались "исправление за 5 минут" пропихнуть
в дистрибутив. Сводилось оно как раз к исправлению формата авторов,
чтобы стиль не пытался сокращать полные имена до инициалов.

По задумке авторов BiBTeX должен уметь сортировать записи по алфавиту и
уметь преобразовывать имена и фамилии в нужный формат. Как этого
добиться в программе, которая ничего не знает про unicode?

Лично мне пока проще держать .tex и .bib файлы в cp1251.

--
Максим Никулин


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/4EC885DB...@gmail.com

basilio

unread,
Nov 20, 2011, 4:40:01 AM11/20/11
to
20.11.2011 06:45, Maxim Nikulin пишет:
> Лично мне пока проще держать .tex и .bib файлы в cp1251.

Всем спасибо, нашел решение без перекодировки: пакет pybtex, есть в
репозиториях, может встраиваться взамен bybtex (т.е. полностью
сохраняется воркфло), может работать отдельно(т.е. полностью сохраняется
целостность системы). Понимает unicode и стили bybtex, в т.ч. gost*
(т.е. необходимость в utf8gost* и bibtex8 отпадает). Глюков пока не
замечено, может позже, в процессе работы. На оф. сайте написали, что
глюки возможны. Тогда все-таки полностью перекодируюсь в ср1251, ибо
пока преимуществ юникода не вижу - прогресс должен экономить время,
упрощать процедуры и облегчать жизнь, а не наоборот.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/jaahkg$de$1...@dough.gmane.org

Иван Лох

unread,
Nov 20, 2011, 6:40:01 AM11/20/11
to
On Sun, Nov 20, 2011 at 11:45:15AM +0700, Maxim Nikulin wrote:
> On 20.11.2011 02:09, Иван Лох wrote:
> >On Sat, Nov 19, 2011 at 06:32:25PM +0200, basilio wrote:
>
> Есть просто bibtex, который вообще не особо дружит с русскими буквами.

BibTeX 0.99c (TeX Live 2009/Debian)

> Есть bibtex8, который умеет работать с восьмибитными кодировками.
Он просто работать не будет
> Вроде недавно появился bibtexu (TeX Live 2011?), который должен
> уметь работать с unicode, но в debian, он пока не наблюдается.
Это для излишеств
> Еще есть biblatex/biber, но про стили ГОСТ для него я не слышал.
Совсем другое
> >>Причем - в простых библиографиях в стиле plain все вроде-бы и ничего. А
> >>вот прикрутить ГОСТовский стиль - постоянно глюки какие-то вылазят.
>
> По задумке авторов BiBTeX должен уметь сортировать записи по
> алфавиту и уметь преобразовывать имена и фамилии в нужный формат.
> Как этого добиться в программе, которая ничего не знает про unicode?

rubibtex


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/20111120113...@nano.ioffe.rssi.ru

basilio

unread,
Nov 20, 2011, 7:30:02 AM11/20/11
to
20.11.2011 13:38, Иван Лох пишет:

>> Как этого добиться в программе, которая ничего не знает про unicode?
>
> rubibtex
>
>
man пишет, что он рассчитывает на KOI-8. И на юникодном файле с ошибками
вываливается. Так что pybtex пока остается приемлемым вариантом решения
проблемы с юникодом, благо в репах он есть. Или перекодироваться в
что-либо более практичное.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/jaarnd$p4q$1...@dough.gmane.org

Maxim Nikulin

unread,
Nov 20, 2011, 9:00:02 AM11/20/11
to
On 20.11.2011 18:38, Иван Лох wrote:
> On Sun, Nov 20, 2011 at 11:45:15AM +0700, Maxim Nikulin wrote:
>> On 20.11.2011 02:09, Иван Лох wrote:
>>> On Sat, Nov 19, 2011 at 06:32:25PM +0200, basilio wrote:
>>
>> Есть просто bibtex, который вообще не особо дружит с русскими буквами.
>
> BibTeX 0.99c (TeX Live 2009/Debian)

Он самый, и именно он не дружит.

Для UTF-8 можете убедиться с

\bibliographystyle{gost71s}

и такой записью

@Book {knuth:ru,
author = "Дональд Е. Кнут",
title = "Все про \TeX",
publisher = "RD\TeX",
address = "Протвино",
year = 1993
}

Для восьмибитных кодировок он откажется сортировать и преобразовывать
регистр названий.

>> Есть bibtex8, который умеет работать с восьмибитными кодировками.
> Он просто работать не будет

У меня работает. Строго говоря, у меня есть и патченый, но пример
проверял на дистрибутивном bibtex8.

>> Вроде недавно появился bibtexu (TeX Live 2011?), который должен
>> уметь работать с unicode, но в debian, он пока не наблюдается.
> Это для излишеств

Отсутствие необходимости вручную форматировать авторов и заголовки Вы
относите к излишествам?

>> Еще есть biblatex/biber, но про стили ГОСТ для него я не слышал.
> Совсем другое

Цель та же - создание и форматирование списка литературы. Исходный
формат тот же - .bib. Подход другой. Судя по comp.text.tex, куча народу
от него в восторге. У bst файлов оригинального BiBTeX далеко не самый
простой язык.

>>>> Причем - в простых библиографиях в стиле plain все вроде-бы и ничего. А
>>>> вот прикрутить ГОСТовский стиль - постоянно глюки какие-то вылазят.
>>
>> По задумке авторов BiBTeX должен уметь сортировать записи по
>> алфавиту и уметь преобразовывать имена и фамилии в нужный формат.
>> Как этого добиться в программе, которая ничего не знает про unicode?
>
> rubibtex

Всегда думал, что rubibtex для тех, кто хочет русские буквы в ключах
бибилографии. Разве он делает что-то еще?

Если преобразование регистра в названиях в обычном bibtex тихо
отваливаются (что происходит с сортировкой не помню), то полные имена он
урезает до одного(!) байта. Поскольку в UTF-8 русская буква длиннее,
latex потом ругается на результат bibtex.

Вообще, по сети давно гуляют стили, которые "работают" с обычным bibtex.
Но они умеют только дергать записи из общей базы. Переставлять инициалы
до/после фамилий предоставляется пользователям.

Вот pybtex - интересная находка. Надо будет проверить ее на чем нибудь
большом. Пока заметил только, что bibtex8 русские записи поставил до
английских, а pybtex - после. В общем, спасибо baisilio, что поделился.

А в jabref нет граблей с unicode? Он, конечно, на java, но вдруг...

--
Максим Никулин



--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/jab0s1$o8c$1...@dough.gmane.org

Maxim Nikulin

unread,
Nov 20, 2011, 9:20:01 AM11/20/11
to
On 20.11.2011 18:38, Иван Лох wrote:
> On Sun, Nov 20, 2011 at 11:45:15AM +0700, Maxim Nikulin wrote:
>> On 20.11.2011 02:09, Иван Лох wrote:
>>> On Sat, Nov 19, 2011 at 06:32:25PM +0200, basilio wrote:
>>
>> Есть просто bibtex, который вообще не особо дружит с русскими буквами.
>
> BibTeX 0.99c (TeX Live 2009/Debian)

Он самый, и именно он не дружит.

Для UTF-8 можете убедиться с

\bibliographystyle{gost71s}

и такой записью

@Book {knuth:ru,
author = "Дональд Е. Кнут",
title = "Все про \TeX",
publisher = "RD\TeX",
address = "Протвино",
year = 1993
}

Для восьмибитных кодировок он откажется сортировать и преобразовывать
регистр названий.

>> Есть bibtex8, который умеет работать с восьмибитными кодировками.
> Он просто работать не будет

У меня работает. Строго говоря, у меня есть и патченый, но пример
проверял на дистрибутивном bibtex8.

>> Вроде недавно появился bibtexu (TeX Live 2011?), который должен
>> уметь работать с unicode, но в debian, он пока не наблюдается.
> Это для излишеств

Отсутствие необходимости вручную форматировать авторов и заголовки Вы
относите к излишествам?

>> Еще есть biblatex/biber, но про стили ГОСТ для него я не слышал.
> Совсем другое

Цель та же - создание и форматирование списка литературы. Исходный
формат тот же - .bib. Подход другой. Судя по comp.text.tex, куча народу
от него в восторге. У bst файлов оригинального BiBTeX далеко не самый
простой язык.

>>>> Причем - в простых библиографиях в стиле plain все вроде-бы и ничего. А
>>>> вот прикрутить ГОСТовский стиль - постоянно глюки какие-то вылазят.
>>
>> По задумке авторов BiBTeX должен уметь сортировать записи по
>> алфавиту и уметь преобразовывать имена и фамилии в нужный формат.
>> Как этого добиться в программе, которая ничего не знает про unicode?
>
> rubibtex

Всегда думал, что rubibtex для тех, кто хочет русские буквы в ключах
бибилографии (которые latex пишет в .aux файл в специфическом виде).
Разве он делает что-то еще?

Если преобразование регистра в названиях в обычном bibtex тихо
отваливаются (что происходит с сортировкой не помню), то полные имена он
урезает до одного(!) байта. Поскольку в UTF-8 русская буква длиннее,
latex потом ругается на результат bibtex.

Вообще, по сети давно гуляют стили, которые "работают" с обычным bibtex.
Но они умеют только дергать записи из общей базы. Переставлять инициалы
до/после фамилий предоставляется пользователям.

Вот pybtex - интересная находка. Надо будет проверить ее на чем нибудь
большом. Пока заметил только, что bibtex8 русские записи поставил до
английских, а pybtex - после. В общем, спасибо baisilio, что поделился.

А в jabref нет граблей с unicode? Он, конечно, на java, но вдруг...

--
Максим Никулин


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/4EC9078A...@gmail.com

Иван Лох

unread,
Nov 20, 2011, 2:20:02 PM11/20/11
to
On Sun, Nov 20, 2011 at 08:55:13PM +0700, Maxim Nikulin wrote:
>
> А в jabref нет граблей с unicode? Он, конечно, на java, но вдруг...

Если явно выставить кодировку базы, то нет.


--
Иван Лох


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/20111120191...@nano.ioffe.rssi.ru

basilio

unread,
Nov 20, 2011, 2:50:02 PM11/20/11
to

> Вот pybtex - интересная находка. Надо будет проверить ее на чем нибудь
> большом. Пока заметил только, что bibtex8 русские записи поставил до
> английских, а pybtex - после. В общем, спасибо baisilio, что поделился.
>
> А в jabref нет граблей с unicode? Он, конечно, на java, но вдруг...
>
Базу источников веду как раз в jabref и в юникоде. О jabref-е пока могу
отозваться только хорошо. Хотя, если бы нашел что-нибудь аналогичного
функционала не на java, обязательно бы попробовал. База пока небольшая -
100 с небольшим единиц, пока справляется вполне шустро, без глюков и
подвисаний.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/jablho$r6f$1...@dough.gmane.org
0 new messages