LINUX.ORG.RU

[TeX] Bibtex + unicode != love ?

 


0

1

С русскими символами в исходном .bib она в .bbl конвертит без проблем, но при окончательной компиляции ругается:

Package utf8x Error: MalformedUTF-8sequenc

В заголовке .tex стоят

\usepackage{ucs}
\usepackage[russian]{babel}
\usepackage[utf8x]{inputenc}

В .bib есть запись про язык

@book{elesin89,
	title = {Влияние излучения на физические свойства упорядоченных сверхпроводников},
	publisher = {Энергоатомиздат},
	author = {Александров А.С. and Архипов В.Е. and Гошицкий Б.Н. and Елесин В.Ф.},
	year = {1989},
	Language  = {russian}
}

Гугление не обнадежило:

http://superuser.com/questions/60432/unicode-characters-in-bibtex

Говорят что у bibtex плохо c юникодом. Это верно на сегодняшний день? Кто как выкручивался, поделитесь, пожалуйста, опытом.


>> BibTeX doesn't understand Unicode. Perhaps use amsrefs or look at biblatex + biber.

Yeah but that sucks if its true! I mean, that limits Bibtex users to the western literature only! It just cant be!

Удваиваю. Неужели тут все на самописных подпорках из biblatex-ов, biber-ов и т.д??

mclaudt
() автор топика

Пользуйтесь однобайтными кодировками. mkindex вроде бы тоже с юникодом не работает.

Eddy_Em ☆☆☆☆☆
()

А-А-А!

нет и если в случае makeindex есть замена, хоть и сыроватая в смысле стилей xindy, то что делать с bibtex и listings я не знаю.

что делать с bibtex и listings я не знаю

Evgueni

Evgueni

Раз так, то думаю, уж нам тут ловить нечего.

mclaudt
() автор топика
Ответ на: комментарий от Eddy_Em

А если мне менять кодировку с уникода (он везде), то достаточно iconv-ом переконвертировать .tex и .bib, изменив у первого \usepackage[utf8x]{inputenc} на \usepackage[koi8r]{inputenc}, или придется и консоль переводить на кои?

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

>>кодировку меняли в tools->encoding->cyrillic->koi8-r?

И так, и через settings>configure_kile>editor>open/save. Последнее насколько я понял это лишь настройка по умолчанию (при открытии) первого.

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

Ага, вышло. Поменял в YaST>System>Language все на русский и снял галку Unocode. Перегрузил иксы.

Теперь kile пишет в файлы на koi8-r.

Кстати, консоль осталась юникодной. echo $LANG дает en_US.UTF-8

Чудеса, ну и да ладно.

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

Все-таки есть в эйфории после героического решения проблем на пустом месте, столь характерных для работы под *nix-ами, что-то наркотическое.

mclaudt
() автор топика

.bib

% Encoding: UTF8 

.tex

\usepackage[utf8]{inputenc} 
\usepackage[russian]{babel}
\begin{document}
...
\bibliography{bibtex}
\bibliographystyle{gost71s}

и все работает без проблем в миктехе (вантуз) и техлайв (убунта 10.04)

suxov ★★
()
Ответ на: комментарий от suxov

Весь секрет в utf8 вместо utf8x. Последний гадит довольно часто, например, с русскими буквами в свойствах PDF-документа. Однако utf8 не приемлет очень многие юникодовские символы вроде длинных тире и неразрывных пробелов, поэтому копипастить, скажем, из ворда, становится несколько геморно.

anonymous
()
Ответ на: комментарий от suxov

>>и все работает без проблем

Это конечно, хорошо, и спасибо за советы, однако замечу, что при текущем раскладе предсказуемость хорошей работы равна нулю.

Ибо нет никаких общих принципов, на которые можно было бы положиться. Только чтение всей документации и всех исходников.

Например, у меня отвалились кириллические символы в формулах.

[code]Command \CYRK invalid in math mode on input line [/code]

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

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

и все работает без проблем

Это конечно, хорошо, и спасибо за советы, однако замечу, что при текущем раскладе предсказуемость хорошей работы равна нулю.

Ибо нет никаких общих принципов, на которые можно было бы положиться. Только чтение всей документации и всех исходников.

Например, у меня отвалились кириллические символы в формулах.

Command \CYRK invalid in math mode on input line 

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

mclaudt
() автор топика

Стиль-то какой?

Помниться в гостовском надо было f. заменить на ff. в одном месте ;-)

anonymous
()
Ответ на: комментарий от thunar
\bibliographystyle{gost71s}

выше писал =) сейчас точно не помню какие, но там два значения надо поменять и все становится отлично. В гугле решения на каждом углу.

suxov ★★
()

у меня получилось так

в документе: \usepackage[utf8x]{inputenc}

Библиографию генерю

\bibliographystyle{gost705mod}

(то же что и гост705, но отключил сокращение списка авторов (et al.)

главное, записи в библиографии (кодировка utf8) русских книг/статей выглядят так:

@BOOK{LanQM,

author = {{\relax Ландау Л.Д.} and {\relax Лифшиц Е.М.}},

title = {Квантовая механика (нерелятивистская теория)},

publisher = {Наука},

address = {М.},

year = {1989},

language = {russian}

}

знаю что криво, но у меня работает (техлайв, опенсюзе 11.2).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.