Главная > Програмное обеспечение > Редакторы/Офисы >
TeX FAQ или Как пропустить Кнута через TeX [6/6]

5. Русификация

Русификация, используемая при оцифровке "Искусства программирования", может быть имитирована самым простым способом:

  1. Берется обычный формат plain.tex и в нем все стандартные шрифты заменяются на другие, аналогичные по начертанию, но с русскими символами. Т.е. для шрифта cmr10 нужно подыскать некий романский шрифт размером 10pt, в котором будут русские литеры. (Ясно, что лучше всего такой, верхняя половина кодовой таблицы которого точно совпадает по начертанию со шрифтом cmr10, чтобы английские тексты воспроизводились правильно.) Какие именно --- что найдете. Были использованы русские шрифты N.Glonti, имеющиеся в поставке Slackware 2.0.1. Модифицированный формат сохраняется под другим именем, скажем, rplain.tex.
  2. Генерируется форматный файл:
    tex -i "rplain \input rus \input ruhyph \dump \end"
    
  3. Далее он используется:
    tex '&rplain' ...
    

Первый из дополнительных файлов, rus.tex, содержит нечто вроде

\catcode`\^^80=11 \lccode`\^^80="A0 % А
\catcode`\^^81=11 \lccode`\^^81="A1 % Б
...
\catcode`\^^9f=11 \lccode`\^^9f="EF % Я
\catcode`\^^a0=11 \lccode`\^^a0="A0 \uccode`\^^a0="80 % а
\catcode`\^^a1=11 \lccode`\^^a1="A1 \uccode`\^^a1="81 % б
...
\catcode`\^^ef=11 \lccode`\^^ef="EF \uccode`\^^ef="9F % я
т.е., просто указывает TeX'у, что есть русские буквы с такими кодами (catcode), и для каждой задается соответствующая строчная (lccode) либо прописная (uccode) буква. Обязательным является задание catcode, прочее можно опустить, но при этом командные слова \uppercase и \lowercase работать не будут, а также возникнут проблемы с переносами. Набор текста ведется без какого-либо переключения языков, русские буквы допустимо использовать в именах командных слов. Эта русификация пользуется кодировкой 866, как в использованных шрифтах, вы можете сделать, как вам нужно.

Второй файл, ruhyph.tex, был взят из поставки Русский Linux "Красная Шапочка", 5.0. В нем заданы таблицы переноса для русских слов. К сожалению, многие слова не переносятся. Для облегчения поисков приведем размер и дату файла: 32345 байт, датирован 16-м ноября 1997.

Такой метод русификации сравнительно прост как в исполнении, так и в пользовании. Единственный его недостаток, который пока что известен --- его не получится "просто так" приспособить к другим языкам, пользующимся кириллицей, например, украинскому: придется вводить механизм явного переключения языков, т.е. имитировать более развитые пакеты. Но такой цели не ставилось --- требовался простой способ набирать смешанные русско-английские тексты. IMHO, для этого он годится.

Следует также отметить, что буквам присваивается "естественная" лексическая категория "11" (буква), а не "13" (активный символ), что положительно влияет на быстродействие, а также позволяет определять русские имена командных слов, чего не умеют некоторые другие локализации.

Литература

  1. The Hacker's Dictionary, rev. 2.9.11 ed. by Eric Raymond.
  2. Д. Кнут. "Все про TeX."

Любая конструктивная критика будет с благодарностью рассмотрена.

© 1999 Сергей Короп, <svk@lib.ru>

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

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


Страница 1 2 3 4 5 6 <<< Предыдущая


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2002 Olexandr Slobodyan.
Сайт создан в системе uCoz