LINUX.ORG.RU

LaTeX русские переносы и кодировка


0

0

Привет всем. Ситуация такая: Linux Slackware 8.0.0 (Etta)

В заколовке tex файла пишу: \usepackage[koi8-r]{inputenc} \usepackage[russian]{babel}

дальше в tex файле идет русский текст(koi8-r).

запускаю latex ./1.tex

latex говорит дескать все нормально переносы для русского загрузил (после того нашел как я нашел файл ruhyphen.tex, поправил language.dat и запустил texconfig init), а потом говорит - переполнение буфера - и при этом выводит строку, в которой случилось переполнение, в каком-то перекодированном виде. (поэтому видимо и не переносит слова) В результирующем файлы весь русский текст - нормальный.

Я так понимаю что национальные буквы должны быть в кодировке OT1.(?) Где можно хотя бы про это прочесть? Я излазил весь русский интернет - почти ничего нет.

Вопрос: Что и где надо поправить чтобы все было нормально?


Даже с нормальными переносами иногда случается переполнение. В таком случае надо или для этого абзаца (или части его) \sloppy поставить, или ручками неестественные переносы прописать. Кодировка, в которой TeX выдаёт свои сообщения, близка к cp1251, так что можно прогонять вывод через фильтр, к примеру:

latex тратата.tex | recode -wk

Ну и ещё, он всегда номер строки пишет, и этого более чем достаточно.

Кстати про переносы: а ты точно в language.dat разкомментировал строчку с russian?

Antichrist
()

В language.dat - совершенно точно поставил:

russian ruhyphen.tex =russian

А после \sloppy - он просто не делает очень длинных строк а выравнивает все пробелами(что в общем хорошо - спасибо), но для полноты счастья хотелось бы еще и переносы

Кстати в ruhyphen.tex какие строки надо раскоментировать? У меня раскоментированы

\ifx\Encoding\undefined \def\Encoding{t2a} \def\Encoding{ucy} \def\Encoding{lcy} \def\Encoding{ot2} \def\Encoding{koi} \fi

\ifx\Pattern\undefined \def\Pattern{al} \def\Pattern{as} \def\Pattern{ct} \def\Pattern{dv} \def\Pattern{mg} \def\Pattern{vl} \def\Pattern{zn} \fi

Для файла ./tex/generic/hyphen/ruhyphen.tex А сейчас обнаружил еще файл ./tex/generic/ruhyphen/ruhyphen.tex Какой из них используется - я не понял.

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

Дык блин, должны быть переносы. Ничего не понимаю...

А форматы после редакции language.dat перегенерялись? texconfig это автоматически делает, если дистрибутив teTeX...

Antichrist
()

Какие форматы? Какие файлы? у меня tetex 1.0.7

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

А разве это нормально что при обработке файла latex выдает строки с ошибками в кодировке windows-1251 в то время как исходный файл koi8?

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

Ты как language.dat правил? Ручками, или из texconfig? Если ручками, то надо форматы перегенерять. Или войти в texconfig, что-нить подправить, и оно их само перегенеряет.

Ну а выдаёт tex ошибки в своей внутренней кодировке, которая, так уж получилось, во многом совпадает с cp1251. И это нормально. Он сначала всё перекодирует в одну, внутреннюю кодировку, вместо того, чтоб иметь гемор с кучей разных.

Antichrist
()

Да, можно ещё так:

fmtutil --all

Из под root-а, естессно.

Antichrist
()

Разобрался. Ух. Классно. Оказалось намного легче чем руссифицировать Slackware.

Все дело было в том что в ruhyphen.tex нужно было расскоментировать только кодировку {t2a} и паттерн {al}. Все остальное должно быть закоментировано. а после этого texconfig init - и все работает.

Ух. Все.

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