The Linux Cyrillic HOWTO <author> Alexander L. Belikoff (Александр Л. Беликов,), (<tt/abel@bfr.co.il/), Bloomberg L.P.; Переводчик: Балдин Евгений Михайлович, (<tt/E.M.Baldin@inp.nsk.su/), Новосибирск, Россия <date>Версия 4.2 b2 с добавлениями, Декабрь 28, 1999 <abstract> <nidx>Кириллический текст (Смотри Кириллица)</nidx> <nidx>Кириллица!настройка Linux для поддержки кириллицы</nidx> <nidx>Русский текст (Смотри Кириллица)</nidx> В этом документе описывается, как настроить OS Linux для редактирования, просмотра и печати документов на русском языке. </abstract> <toc> <sect>Общие примечания <p> <sect1>Введение <p> <nidx>Кириллица!введение</nidx> В этом документе описываются приемы которые нужны для редактирования, просмотра, и печати документов с использованием кириллических символов (в основном это относится к русскому языку) под Linux. И хотя здесь предполагается, что вы используете Linux как операционную систему, большинство описываемой информации одинаково применимо к другим разновидностям Unix. Я попытаюсь указывать на различия. Имеется ряд популярных дистрибутивов Linux. Для описания приемов работы в качестве примера я выбрал дистрибутив RedHat Linux. Однако, вы найдете, что практически вся приведенная здесь информация подходит и для вашего "любимого" дистрибутива. Предполагается, что любая операционная система UNIX настраивается и поддерживается опытным человеком. Одного знакомства с книгой из серии "что-то там для чайников", для этого дела недостаточно. Кириллизация операционной системы модифицирует ее, следовательно требует определенных знаний о том что вы делаете. Несмотря на то, что я пробовал упростить изложение настолько, насколько это возможно, наличие некоторого опыта работы с настраиваемым программным обеспечением является преимуществом на пути "всеобщей кириллизации". Я не собираюсь описывать здесь что такое X Windows или как создаются документы в системах TeX и LaTeX, или как установить и настроить принтер в Linux. Это описано в других документах. UNIX это многопользовательская система и поэтому условия при котором вы проводите кириллизацию могут изменяться: вы можете быть системным администратором (или владельцем системы) пытающимся кириллизировать всю систему. С другой стороны, вы можете быть обычным пользователем, не имеющим привилегий системного администратора (root или superuser) и вы хотите кириллизовать систему только для себя. Большинство описываемых мной программ имеют достаточно гибкую настройку, позволяющую сделать ее и с точки зрения всей системы, и с точки зрения обычного пользователя. Я попытаюсь отметить оба случая. <bf/ВНИМАНИЕ:/ X Windows, TeX и другие компоненты Linux- сложные системы с "навороченной" настройкой. Если вы сделаете что-либо неправильно, то не только потерпите неудачу с русификацией системы, но и можете частично, если не полностью, испортить систему. Это не должно вас пугать, это просто предупреждение, которое дает вам понять всю серьезность процесса настройки такого типа. <bf/Очень/ рекомендуется сделать копии файлов конфигурации. Также неплохо бы иметь под рукой гуру (специалиста по Linux) (просто так, на всякий пожарный). <sect1>Местоположение документа и обратная связь <p> <nidx>Кириллизация!обратная связь</nidx> Этот документ можно найти на <htmlurl url="http://sunsite.unc.edu/LDP" name="sunsite.unc.edu"> или на <htmlurl url="ftp://tsx-11.mit.edu/pub/linux" name="tsx-11.mit.edu"> как часть <bf/Linux Document Project/. Также, его можно найти на различных FTP, имеющих отношение к Linux. Кроме того, это документ может быть включен в дистрибутив Linux как его часть. Если у вас имеются какие-либо предложения или исправления имеющие отношение к этому документу, то, пожалуйста незамедлительно проконтактируйте со мной по адресу <htmlurl url="mailto:abel@bfr.co.il" name="abel@bfr.co.il">. За предоставление любой новой и полезной информации относительно поддержки Кириллицы в различных Unixах буду <em/крайне признателен/. Не забудьте, ведь это поможет другим. В случае возникновения предложений по улучшению русского перевода обращайтесь непосредственно к переводчику данного документа <htmlurl url="www.inp.nsk.su/~baldin" name="Балдину Е.М."> через электронную почту по адресу <htmlurl url="mailto:E.M.Baldin@inp.nsk.su" name="E.M.Baldin@inp.nsk.su">. <sect1>Благодарность and copyrights <p> Много людей помогли мне (и не только мне) ценной информацией и предложениями. И даже большое количество людей создало программное обеспечение для public comunity. Мне очень жаль если я забыл кого - то упомянуть. Итак вот они наши герои: Edward C. Bailey за его неоценимую помощь в создании предметного указателя для этого документа, Bas V. Bakker, Алексей Богданов, Michael Van Canneyt, David Daves, Денис В. Дмитриенко, Vlad Harchev, Дмитрий Малыханов, Сергей О. Наумов, Илья К. Орехов, Winfried Truemper, Сергей Вакуленко, Александр Воробьев, Сергей Тарарышкин и другие - имя коим "легион хороших людей" из <htmlurl url="news:relcom.fido.ru.unix" name="relcom.fido.ru.unix"> и <htmlurl url="news:relcom.fido.ru.linux" name="relcom.fido.ru.linux"> Usenet групп новостей. Этот документ - Copyright (C) 1995,1997 Александра Л. Беликова. Он может использоваться и распространяться под обычными Linux HOWTO условиями, описанными ниже. Далее идет - примечание к авторским правам Linux HOWTO: <quote> <it>Если не оговорено иначе, Linux HOWTO документы защищены авторскими правами их авторов. Linux HOWTO документы могут воспроизводиться и распространяться полностью или частично, любым физическим или электронным способом, покуда это заявление авторского права сохраняется во всех копиях. Коммерческое распространение позволяется и поощряется; однако, автора следует оповещать относительно любых подобных действий.</it> </quote> <quote> <it>Все работы, использующие данный документ, включая любой Linux HOWTO, должны быть распространяться под этим же соглашением. То есть вы не можете налагать дополнительные ограничения на распространение своего продукта основанного на данном HOWTO. Исключения к этим правилам могут предоставляться только при некоторых условиях; пожалуйста войдите в контакт с Linux HOWTO координатором по адресу, данном ниже.</it> </quote> <quote> <it>Короче говоря, мы желаем поддержать распространение этой информации через настолько многие каналы распространения насколько это возможно. Однако, мы желаем сохранить авторские права на HOWTO документы, и хотелось бы что бы нас предупреждали о любых планах относительно распространения этого HOWTO.</it> </quote> Если у вас имеются вопросы, пожалуйста войдите в контакт с Tim Bynum, координатором Linux HOWTO , по <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">. Для того чтобы получить номер телефона и дополнительную информацию для контакта вы можете "напустить" на этот адрес finger. Unix торговая марка X/Open Ltd.; MS-DOS, Windows, Windows 95, and Windows NT торговые марки Microsoft Corp.; X Window System торговая марка X Consortium Inc. Другие торговые марки принадлежат соответствующим владельцам. Ниже идет оригинальный текст соглашения об авторских правах, которое следует включать во все распространяемые копии этого документа и документов, созданных на его основе. This document is Copyright (C) 1995,1997 by Alexander L. Belikoff. It may be used and distributed under the usual Linux HOWTO terms described below. The following is a Linux HOWTO copyright notice: <quote> <it>Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.</it> </quote> <quote> <it>All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.</it> </quote> <quote> <it>In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.</it> </quote> If you have questions, please contact Tim Bynum, the Linux HOWTO coordinator, at <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">. You may finger this address for phone number and additional contact information. Unix is a technology trademark of the X/Open Ltd.; MS-DOS, Windows, Windows 95, and Windows NT are trademarks of the Microsoft Corp.; The X Window System is a trademark of The X Consortium Inc. Other trademarks belong to the appropriate holders. <sect>Теоретическое обоснование <p> <sect1>Символы и кодировки <p> <nidx>Кириллица!буквы</nidx> <nidx>Кириллица!символы</nidx> <nidx>Кириллица!кодировка</nidx> <nidx>буквы!кириллица</nidx> <nidx>кодировка!кириллица</nidx> Чтобы понимать и печатать символы различных языков, система и программное обеспечение должны уметь отличить их от других символов. То есть каждый уникальный символ должен иметь уникальное представление внутри операционной системы, или внутри специфического пакета программ. Такая совокупность всех уникальных символов, которые система способна распознать, называется <bf/кодировкой/. Во время создания большинства операционных системе, никто не позаботился предусмотреть возможность представления информации в программах на других языках, отличных от английского. Поэтому, наиболее популярной кодировкой была (и фактически ей и остается) <bf/ASCII/ (Американский Стандартный Код для Информационного Обмена). <bf/Стандарт ASCII/ (или ASCII с 7ми битами) включает в себя 128 уникальных кодов. Они подразделяются на символы, которые ASCII определяет как, собственно, печатаемые символы, и на так называемые, <bf/символы управления/, которые имели специальные значения в старых протоколах связи. Каждый элемент набора идентифицирован целочисленным символьным кодом (0-127). Подмножество печатаемых символов представляют те, которые находят на клавиатуре пишущей машинки с некоторыми добавлениями. Каждый символ занимал 7 младших значимых битов байта, тогда как старший разряд использовался для целей управления (то есть, для управления передачи в старых пакетах связи). Концепция ASCII с 7ми битами была расширена до ASCII с 8 битами (или <bf/расширенного ASCII/). В этой кодировке, диапазон символов соответствует кодам от 0 до 255. Младшие биты (0-127) - чистый ASCII, в то время как старший разряд добавляет еще 127 символов. Так как эта кодировка обратно совместима с ASCII (символ все еще занимает 8 бит, и коды полностью соответствуют старому ASCII), эта кодировка стал широко использоваться. Стандарт ASCII с 8 битами не определяет содержание верхней половины таблицы кодировки. Поэтом МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ (ISO) взяла ответственность по определению семейства стандартов, известных как <bf/ISO 8859-X/ семейство. Это семейство есть совокупность 8ми битных кодировок, где младшая половина каждой кодировки (символы с кодами 0-127) соответствует ASCII, а старшая половина определяет символы для различных языков. Например, следующие кодовые страницы определены для: <itemize> <item><tt/8859-0/ - Новый европейский стандарт (так называемый <bf/Latin 0/) <item><tt/8859-1/ - Европа, Латинская Америка (также известный как <bf/Latin 1/) <item><tt/8859-2/ - Восточная Европа <item><tt/8859-5/ - Кириллица <item><tt/8859-8/ - Идиш </itemize> В Latin 1, старшая половина таблицы определяет различные символы, которые - не являются частью Английского алфавита, но присутствует в различных европейских языках (немецкие umlauts, французские диакритические знаки и т.д). Другая популярная реализация расширенного ASCII - это так называемая <bf/кодовая страница IBM/ (названная по имени компьютерной компании, которая создала эту кодировку для своих персональных компьютеров). Эта кодировка в старшей половине содержит псевдо - графические символы. Программное обеспечение, которое не делает никаких предположений о символах использующих 8-ой бит ASCII данных, называется <bf/чисто 8ми битными/. Некоторые более старые программы, разработанные для ASCII с 7 битами в памяти, а не для чистых 8ми бит могут работать неправильно с вашими расширенными ASCII данными. Большинство пакетов, однако, способны работать с расширенным ASCII по умолчанию, или для этого требуется простая переконфигурация. Подобные, простейшие программы, требующие какой-либо настройки в этом документе не рассматриваются. Вместо этого я сфокусировал свои усилия на более сложных пакетах. Для информации о том как создавать <em/свое/ чисто 8ми битное программное обеспечение смотрите раздел <ref id="locale-programming" name="Locale зависимое программирование">. Так как в большинстве систем символы описываются 8ю битами, то нет никакого способа расширить ASCII еще больше. Способ создания новых символов в ASCII - это просто создание других расширенных ASCII реализаций. С помощью этого способа кириллица и была введена в ASCII. Мы уже упомянули стандарт <bf/ISO 8859-5/ как тот, в котором определяется кодировки для кириллицы. Но поскольку (как это часто случается со стандартами), он был разработан без принятия во внимание реальных процессов проходящих в СССР (когда это еще было), то единственное, что было действительно достигнуто с введением этот стандарт, так это только увеличение беспорядка с кодировками кириллицы. В сообществе Internet очень популярна кодировка <bf/KOI8-R/ (см. ниже). Кодировка <bf/ISO 8859-5/ используется большими компаниями, создающими программное обеспечение с возможностью обработки кириллической информации. К подобным программам, как правило, относятся большие базы данных, решения основанные на базе OpenVMS и т.д. Другие стандарты для кириллицы включают, так называемую, <bf/Alt/ кодировку и кодовую страницу <bf/Microsoft CP1251/. Вышеупомянутый Alt стандарт был разработан нашей "любимой" компанией для МС-ДОС довольно давно. Тогда еще слыхом не слыхивали про сети из IBM PC и поэтому основное усилие состояло в том, чтобы сделать этот стандарт настолько насколько это возможно совместимым с IBM стандартом. Поэтому Alt кодировка - это та самая IBM кодовая страница, где все специфические европейские символы в верхней половине были заменены на кириллицу, оставляя псевдографические символы нетронутыми. Следовательно, это не портило вид программ использующих для работы текстовые окна и также обеспечило символы кириллицы в них. <bf/Alt/ стандарт все еще жив и чрезвычайно популярен в среде МС-ДОС. <bf/Microsoft CP1251/ кодовая страница - это попытка Microsoft придумать новый стандарт для кодировки кириллицы в Windows. Насколько я знаю, это не совместимо с чем либо еще (и не удивительное, три Ха-Ха) Ну и наконец: <bf/KOI-8/ стандарт. В отличии от <bf/Alt/ и <bf/CP1251/ он был разработан довольно давно для UNIX машин. Так как UNIX <bf/значит/ сеть, то основной идей при создания <bf/KOI-8/ стандарта была идея об обеспечении перемещения кириллической информации по сети. Еще раз вернемся в далекое прошлое. Обычно все работали только со стандартным (7ми битным) ASCII. 8ой бит каждого символа указывал на то, что он или управляющий символ, либо просто мусор. Обычно никто не слал данные чисто 8ми битными (каждый норовил оттяпать 8ой бит у символов). Разработчики <bf/KOI8/ применили очень продуманный подход. Они поместили кириллические символы в верхней части расширенной ASCII таблицы, таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что, если в тексте, написанном в KOI-8, мы убираем восьмой бит каждого символа, <em/то мы все еще имеем "читабельный" текст, хотя он и написан английскими символами!/ Не удивительно, что <bf/KOI8-R/ быстро стал фактически стандартом для кириллицы в Internet. <htmlurl url="http://www.nagual.pp.ru/~ache" name="Андрей А. Чернов"> проделал огромный объем работы, чтобы создать стандарт. Он - автор <htmlurl url="file://ds.internic.net/rfc/rfc1489.txt" name="RFC 1489"> (<em/"Registration of a Cyrillic Character Set"/). Существуют также и другие стандарты, которые отличны от ASCII и гораздо более хорошо адаптируемы. Наиболее известный из них это <bf/Unicode/. Однако, эти стандарты пока не прижились в Unix вообще и в Linux в частности. Я не описываю их здесь. <sect>Настройка вашего окружения <p> <nidx>Кириллица!настройка окружения</nidx> Перед тем как мы начнем настраивать различные части системы, нам надо настроить пару простых вещей. Большинство утилит, описываемых ниже, предполагают, что кириллические шрифты доступны и пользователь может вводить кириллические символы. Чтобы это действительно стало правдой, нам следует настроить окружение для того чтобы обеспечить и шрифты, и возможность ввода кириллицы. Linux поддерживает два интерфейса для отображения информации, две различные моды. Одна из них это текстовая мода, а другая графическая, предоставляемая средствами X Window. Обе эти моды требуют различной настройки, которые описывается ниже. <sect1>Настройка текстовой моды <p> <nidx>Кириллица!Настройка текстовой моды</nidx> Вообще, настройка текстовых режимов - самый простой способ показывать и вводить символы кириллицы. Однако, имеется одно значительное осложнение: текстовые шрифты и расположение символов на клавиатуре зависят от реализации драйвера терминала. Следовательно, не имеется никакого общего способа для достижения цели в различных систем. Ниже, я опишу способ как "справиться" с драйвером Linux консоли. Поэтому если вы пытаетесь русифицировать консоль в другой системе, то не ожидайте, что описанные приемы будут там работать. Взамен, проконсультируйтесь с руководством по драйверу терминала и пошлите мне любую информацию, которую вы найдете. В этом случае я смогу включить это в дальнейшие версии этого документа. <sect2>Linux консоль<label id="linux-console"> <p> <nidx>Кириллица!конфигурация консоли</nidx> Консольный драйвер Linux - довольно хорошо настраиваемый образец программного обеспечения. Он может менять как шрифты, так и раскладки клавиатуры. Чтобы сделать это, вам нужен пакет <htmlurl url="http://sunsite.unc.edu/pub/Linux/system/Keyboards/" name="kbd">. Большинство дистрибутивов Linux устанавливают kbd как обязательную часть системы. Пакет kbd содержит утилиты управления клавиатурой, кроме этого с ним поставляется широкий выбор шрифтов и раскладок. Установка кириллицы с помощью <tt/kbd/ обычно состоит из: <enum> <item>Загрузки соответствующей раскладки клавиатуры, с помощью программы <tt/loadkeys/. Redhat позволяет установить раскладку клавиатуры, которую система загружает по умолчанию во время загрузки. Это конфигурируется с помощью программы <tt>/usr/sbin/kbdconfig</tt>. Или вы просто можете запустить <tt/loadkeys/ из вашего <tt>~/.profile</tt> или сделав это руками. <item>Настройки экранного шрифта. Это делается с помощью программы <tt/setfont/. Файлы шрифтов находятся в <tt>/usr/lib/kbd/consolefonts</tt>. <bf/ВНИМАНИЕ:/ В старых версиях Linux, запуск программы <tt/setfont/ под X Windows мог завесить систему. Сейчас в этом случае печатается сообщение об ошибке. </enum> Если вы являетесь приверженцем программ, выполняемых в текстовой моде, и использующих достоинства PC псевдографики (таких как Midnight Commander), вы можете предпочесть использовать шрифты с <tt/Alt/ кодировкой и <em/консольной раскладкой/ (console character map). Это означает, что ваша консоль отображает Alt шрифты, но все кириллические символы, соответствующие <bf/KOI-8R/ кодировки соответственным образом отображаются в <tt/Alt/ и поэтому отображаются правильно. Преимущество этого метода заключается в том, что он позволяет использовать псевдографические символы <tt/Alt/ кодировки. Короче, ниже перечислены команды, которые позволяют достичь этого эффекта. <verb> loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16 mapscrn /usr/lib/kbd/consoletrans/koi2alt # ниже идет магическая последовательность echo -ne "\033(K" </verb> При русификации всех консолей при загрузке системы вместо строчки <verb> echo -ne "\033(K" </verb> следует использовать строчку <verb> for i in 1 2 3 4 5 6 7; do echo -ne "\033(K" > /dev/tty$i; done </verb> это русифицирует все терминалы На всякий случай сообщаю, что в свежих дистрибутивах (вместо kbd используется пакет consoletools) делается так: <verb> foo="/место/где/лежат/ваши/консольные/шрифты" loadkeys $foo/ru.map consolechars -v -f $foo/Cyr_a8x16 -m $foo/koi2alt </verb> После выполнения этих команд и загрузки соответствующих файлов, вы можете переключать раскладку клавиатуры для ввода кириллических символов с помощью правого Control. Магическая последовательность необходима для перекодировки вывода символов на экран если вы используете Alt шрифты. Она работает и вам не следует знать о ней что-то большее. Однако, если вам любопытно, то посмотрите в документацию к пакету kbd. В заключение, для тех эстетов, кто не желает использовать <bf/Alt/ кодировку, я предлагаю другую версию описанной выше загрузочной последовательности, использующей родные <bf/KOI8-R/ шрифты. <verb> loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/koi8-8x16 </verb> Однако, не ожидайте красивых рамок в ваших программах, использующих для работы менюшки в текстовом режиме. Теперь вы, вероятно, хотите проверить это. Сконфигурируйте соответствующим образом bash или tcsh (смотрите ниже этот шаг <em/необходим/), перегрузите его, затем нажмите правую клавишу <tt/Control/. Удостоверитесь, что вы можете печатать на русском правильно. Клавиша '<tt/q/' должна соответствовать "<tt/й/", '<tt/w/' соответствует "<tt/ц/", и т.д. Если у вас возникли непредвиденные проблемы, то лучше всего вернуться к родной (то есть US) раскладке. Для этого сделайте следующие телодвижения: <verb> loadkeys /usr/lib/kbd/keytables/defkeymap.map setfont /usr/lib/kbd/consolefonts/default8x16 </verb> <bf/ВНИМАНИЕ:/ к сожалению, консольный драйвер не способен сохранить это состояние (по крайней мере без излишних ухищрений), когда передается управление X Windows. Следовательно, после того, как вы вышли из X (или переключаетесь на консоль), то вы должны перезагрузить русский шрифт. <sect1>X Window <p> <nidx>Кириллица!X Window System</nidx> Подобно консольному режиму, X Windows также требует некоторой настройки. Настройка включает в себя настройку ввода и установку шрифтов для X Windows. Данные действия обсуждаются ниже. <sect2>Шрифты для X Windows.<label id="xfonts"> <p> <nidx>Кириллица!X Window System!шрифты</nidx> Прежде всего вы должны достать шрифты, содержащие изображения кириллических символов в соответствующих местах. В конце 1995 года X Window включила набор <bf/KOI8-R/ шрифтов разработанных <bf/KOI8-R/ fonts, created by <htmlurl url="http://www.cronyx.ru" name="Cronyx">. Эти шрифты являются также частью XFree86. Несмотря на это, некоторые дистрибутивы не включают кириллические шрифты для X Windows в стандартную поставку. Одним из подобных печальных примеров является RedHat (они обещали больше так не делать и исправить это в RedHat 5.2). Поэтому, вам следует проверить установлены ли эти шрифты в вашей системе. Спросите системного администратора, или, если <em/вы/- это он и есть, проверьте вашу систему сами, а именно: <enum> <item>Выполните '<tt/xlsfonts | grep koi8/'. Если в результате выполнения команды появится список шрифтов, то ваш X сервер уже знает об их существовании. <item>Или, наберите <verb> find / -name crox\*.pcf\* </verb> для того чтобы найти местоположение шрифтов кириллицы в системе. Вы должны будете сделать эти шрифты доступными для X сервера, как - я объясню ниже. </enum> Если вы не нашли таких шрифтов в вашей системе, то вы должны установить их сами. Кроме описанного выше существует еще один набор кириллических шрифтов Cronyx в сети (по адресу <htmlurl url="ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz" name="ftp.kiae.su">), известный, как пакет <tt/xrus/ (не путать это с программой <tt/xruskb/, ранее известной как <tt/xrus/. <tt/Xrus/ имеет меньший набор шрифтов чем в коллекции Xfree86 (38 против 68). Более современную коллекцию шрифтов для X windows можно взять у <htmlurl url="mailto:bolkhov@inp.nsk.su" name="Дмитрия Болховитянова"> по адресу <htmlurl url="http://www.inp.nsk.su/~bolkhov/files/fonts/cyr_rfx/" name="пакет CYR_RFX">. Имеется также более старое решение, например пакет <tt/vakufonts/ созданный <htmlurl url="mailto:vak@cronyx.ru" name="Сергеем Вакуленко">, который стал основой для пакета включенного в дистрибутив X Windows. Очень важно, что имена шрифтов в старой коллекции не совпадают со стандартом полностью. <tt/Vakufonts/, в общем, неплохой пакет, но иногда могут возникать различные сверхъестественные ошибки. Например, у меня были проблемы с Maple V для Linux, который падал по непонятным причинам с пакетом <tt/vakufonts/, но прекрасно работал со "стандартными" набором. Итак, давайте начнем со шрифтов: <enum> <item> Вытащите по ftp соответствующий набор шрифтов. Пакет для XFree86 можно найти на любом FTP архиве, где лежит дистрибутив X Windows, например, непосредственно на <htmlurl url="http://www.xfree86.org" name="официальном XFree86 FTP архиве">. Пользователи Redhat, у которых отсутствует этот пакет могут заглянуть на <htmlurl url="ftp://ftp.redhat.com/pub/contrib" name="ftp.redhat.com">, чтобы вытянуть пакет <tt/XFree86-cyrillic-fonts/. Установите его и сразу перейдите к разделу, где объясняется как объяснить X Windows где находятся шрифты. <item>Теперь, когда у вас есть шрифты, создайте директорию для них. Поместить новые шрифты в уже существующий каталог шрифтов, мягко говоря, не очень хорошая идея. Поместите их, например, в <tt>/usr/lib/X11/fonts/cyrillic</tt> для настройки всей системы, или просто создайте каталог у себя только для персонального пользования. <item> Если новые шрифты поставляются в формате BDF (<tt/*.bdf/ файлы), то вы должны скомпелировать их. Для каждого шрифта выполните: <verb> bdftopcf -o <font>.pcf <font>.bdf </verb> Если ваш X сервер поддерживает сжатые шрифты, то сожмите их с помощью программы <tt/compress/ (для последних версий XFree86 можно сжать шрифты с помощью программы <tt/gzip/): <verb> compress *.pcf (или gzip *.pcf) </verb> Если же вы все-таки хотите поместить новые шрифты в уже существующий каталог шрифтов, то вы должны "срастить" старый и новые файлы, с именем <tt/fonts.alias/ в том случае, естественно, если они оба существуют. <item>В каждом каталоге шрифтов для X должен быть список шрифтов, находящихся в нем. Этот список хранится в файле <tt/fonts.dir/. Вы не должны создавать этот список вручную. Вместо этого, сделайте: <verb> cd <new font directory> mkfontdir . </verb> <item>Теперь Вы должны сделать этот каталог шрифтов известным для X сервера. Здесь у вас есть ряд возможностей: <itemize> <item>Общесистемная настройка для XFree86. Если вы используете эту версию X Windows, то добавьте новый каталог к списку каталогов в файле <tt/XF86Config/. Чтобы найти его расположение, просмотрите что скажет <tt/startx/ при запуске (В Redhat этот файл обычно находится в /etc/X11). Более подробно смотрите <tt>man XF86Config</tt> (4/5). <item>Общесистемная настройка через <tt/xinit/. Добавьте новый каталог к файлу запуска <tt/xinit/. Более подробно смотрите <tt/xinit(1x)/. <item>Персональная настройка. У вас есть специальный файл для запуска X Windows - <tt>~/.xinitrc</tt> (или <tt>~/.Xclients</tt>, или <tt>~/.xsession</tt> для пользователей RedHat). Добавьте следующие команды в этот файл: </itemize> <verb> xset +fp <новый каталог шрифтов> xset fp rehash </verb> Обратите внимание, на опцию '<tt/+fp/'- это означает, что новые шрифты будут добавлены в начале списка директорий со шрифтами. То есть, если прикладная программа запрашивает, скажем, шрифт <tt/fixed/, то будет подставлен fixed font с кириллическими символами , чего мы и добивались. Хотя имеются некоторые проблемы. В дистрибутиве шрифтов кириллицы нет полужирного и курсивного <tt/fixed/ шрифта. Мой любимый шрифт - <tt/6x13/, а так, как полужирные и курсивные шрифты этого размера также отсутствуют, то я не могу использовать Emacs/XEmacs в полной мере. Надеюсь, что кто-нибудь в конечном счете создаст эти шрифты, и ситуация изменится. <item>Теперь перезапустите X Windows. Если вы все сделали правильно, то тесты, описанные в начале раздела, будут пройдены успешно. Также, поиграйтесь с <tt/xfontsel(1x)/, чтобы удостовериться что вы способны выбрать шрифты кириллицы. </enum> Чтобы заставить X клиента использовать шрифты кириллицы, вы должны установить соответствующие X ресурс. Например, я делаю кириллический шрифт заданным по умолчанию в моем <tt>~/.Xdefaults</tt>: <verb> *font: 6x13 </verb> Так как мои шрифты кириллицы первые в списке поиска шрифтов (смотри вывод программы '<tt/xset q/'), то они и подставляются если программа требует какой-либо шрифт с именем, совпадающем с каким-либо из шрифтов, лежащих в кириллической директории. Вот простые примеры. Если вы хотите научить соответствующий X клиент пользоваться кириллическим шрифтом, то вы должны узнать тип ресурса, который вам надо изменить (можно это сделать используя <tt/editres(1x)/) и определить его или в базе данных ресурсов, или в командной строке. Например можно сделать так: <verb> $ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*' </verb> ...запусти xterm с несколько уродливым шрифтом; <verb> $ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*' </verb> ...установит Cyrillic Times шрифт для кнопки <tt/Quit/ программы <tt/xfontsel/. <sect2>Использование шрифтов TrueType<label id="ttfonts"> <p> <nidx>Кириллица!X Window System!шрифты!TrueType</nidx> У технологии TrueType, взятой на вооружение операционными системами серии Windows (он же Mastdie :)), нет многих недостатков, которые присутствуют при работе со шрифтами стандартным образом у X. Кроме того существует множество кириллических TrueType шрифтов. К счастью, эти шрифты можно использовать и в X Windows. Существует TrueType сервер шрифтов <htmlurl url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/" name="XFSFT"> для X (в скором времени поддержка TrueType будет включена в дистрибутив XFree86). Коммерческие X сервера уже довольно давно включили поддержку TrueTape в свои дистрибутивы (Acelerated X). Установочная процедура довольно проста - делайте то, что сказано в документации. Следует отметить одну вещь, имеющую отношение к кириллической настройке: вам следует использовать опцию перекодировки: <verb> xfstt ... --encoding koi8-r,windows-1251,iso8859-1 </verb> После этого, новые шрифты будут доступны для X Windows - этот факт вы можете проверить, запустив <tt/xfontsel/ и поиграв с <em/ttf/ семейством шрифтов. <sect2>Ввод с клавиатуры <p> <nidx>Кириллица!X Window System!ввод</nidx> В последних выпусках X (X11R61 и выше) имеются два "стандартных" способа ввода с клавиатуры: родной способ, работающий через утилиту <tt/xmodmap/, и новый, называемый <bf/Xkb/ (X KeyBoard). Первое, что вы должны сделать, это <bf/отключить Xkb способ!/. Не давайте себя загипнотизировать его способностью устанавливать "russian keyboard". Этот способ, вроде бы, использует описание символов кириллицы определенных в <tt/keysymdef.h/. Этот файл определяет символы для многих языков. Единственная проблема состоит в том, что данное определения не позволяют, работать с расширенной ASCII кодовой страницей - очень много программ могут работать только с этой раскладкой! Я почти не знаю программ, которые разбираются с описанием символов в <tt/keysymdef.h/ отличным от стандартного 8ми битного ASCII. Однако, наша главная цель состоит в том, чтобы заставить работать поддержку KOI8-R. (Примечание переводчика: здесь автор немного погорячился - Xkb вполне рабочий способ, правда способность работать с KOI8-R он обнаружил только в последних версия XFree86. Пользователям Redhat следует взять версию XFree86-3.3.3-1 или позже.) Чтобы отключить поддержку <tt/Xkb/, в файле <tt/XF86Config/ изучите раздел <tt/Keyboard/ и закоментируйте, все строки, начинающиеся с <bf/Xkb/ (регистр не имеет значения). Взамен, добавьте следующую строку: <verb> XkbDisable </verb> Программа <tt/xmodmap/ позволяет настроить коды соответствующие различными символам и их комбинациям. Эта настройка основана на файле, содержащем таблицу перекодировки. В предыдущих версиях этого документа я очень подробно описывал настройку кириллицы основанную на <tt/xmodmap/. Это оказалось практически бесполезным. Общеизвестно, что способ перекодировка ввода, основанный на <tt/xmodmap/, является, не-портабельным, плохо настраиваемым, и не окончательным. Ваши настройки могут работать с одной версией XFree и сбоить при работе с другой. Более того, иногда результат работы одной и той же настройки сильно разнится для различных серверов из одного дистрибутива. Я настоятельно советую вам не играть с <tt/xmodmap/, по крайней мере для начала. Вы не получите ничего кроме головной боли и разочарования. Вместо этого, я рекомендую вам установить пакет <htmlurl url="ftp://ftp.relcom.ru/pub/x11/cyrillic/" name="xruskb">, который позволяет вам сконфигурировать большинство входных параметров перекодировки без необходимости сталкиваться с <tt/xmodmap/. Опять же пользователи Redhat Linux могут установить <htmlurl url="ftp://ftp.redhat.com/pub/contrib/i386/xruskb-1.5.1-1.i386.rpm" name="RPM"> пакет этого программного продукта. <sect1>Первые шаги - кириллизация shell<label id="shells"> <p> <nidx>Кириллица!shells</nidx> <sect2>bash <p> <nidx>Кириллица!shells!bash</nidx> Для того, чтобы заставить bash понять 8ми битные символы, должны быть установлены три переменные. Лучше всего это сделать из файл <tt>~/.inputrc</tt>. Должны быть сделаны следующие установки: <verb> set meta-flag on set convert-meta off set output-meta on </verb> <sect2>csh/tcsh<label id="csh"> <p> <nidx>Кириллица!shells!csh</nidx> <nidx>Кириллица!shells!tcsh</nidx> Поместите в <tt/.cshrc/ следующее: <verb> setenv LC_CTYPE iso_8859_5 stty pass8 </verb> Если у вас нет POSIX совместимого stty (только не в Linux), замените последнюю строчку следующей: <verb> stty -istrip cs8 </verb> <sect2>ksh <p> <nidx>Кириллица!shells!ksh</nidx> Что касается public domain реализации <tt/ksh/ - <tt/pdksh/ версии 5.1.3 и выше, то вы можете разрешить 8ми разрядный ввод только для <tt/vi/ в режиме ввода. Для этого используйте: <verb> set -o vi </verb> <sect2>less <p> <nidx>Кириллица!less</nidx> Установите переменную окружения <tt/LESSCHARSET/: <verb> export LESSCHARSET=koi8-r </verb> Старые версии <tt/less/ не поддерживали символы KOI8-R, но установка следующей системной переменной позволяла это обойти: <verb> export LESSCHARSET=latin1 </verb> <sect2>mc (The Midnight Commander) <p> <nidx>Кириллица!Midnight Commander</nidx> Чтобы разобрать текст кириллицы , выберите опцию <tt/full 8 bits/ в <tt>Options/Display</tt> меню. Если у вас проблемы в виде уродливых оконных рамок, то проконсультируйтесь в разделе <ref id="linux-console" name="Linux консоль">. off-topic: если вы захотите чтобы <tt/mc/ в окне <tt/Xterm/ был в цвете: установите переменную <tt/COLORTERM/: <verb> COLORTERM= ; export COLORTERM </verb> <sect2>rlogin <p> <nidx>Кириллица!rlogin</nidx> Удостоверитесь, что shell на месте адресата правильно установлена. Если ваш <tt/rlogin/ не работает как надо по умолчанию, то используйте '<tt/rlogin -8/'. <sect2>zsh <p> <nidx>Кириллица!shells!zsh</nidx> Сделайте то же самое, что делается для <tt/csh/ (<ref id="csh" name="csh">). Файл инициализации в этом случае - <tt/.zshrc/ или <tt>/etc/zshrc</tt>. <sect>Редактирование текста <p> <nidx>Кириллица!редакторы</nidx> В этом разделе я опишу настройку различных текстовых редакторов для работы с кириллическими текстами. Этот раздел на охватывает <bf/текстовые процессоры/, настройка которых описывается позже (смотри раздел <ref id="word-processors" name="Текстовые процессоры">) <sect1>Emacs и XEmacs<label id="emacs"> <p> <nidx>Кириллица!редакторы!emacs</nidx> <nidx>Кириллица!редакторы!GNU emacs</nidx> <nidx>Кириллица!редакторы!xemacs</nidx> Есть две версии редактора Emacs - <tt/GNU Emacs/ и <tt/XEmacs/. Они обеспечивают более или менее сходный набор функций и возможностей. Реализация некоторых деталей расходится довольно сильно. Настройка кириллицы требует некого низко-уровневого (в духе Emacs Лиспа) "хака" и немного отличается для этих двух реализаций. <bf/ВНИМАНИЕ:/Помимо настройки, описанной здесь, существует альтернативный путь обучения обоих версий emacs кириллице. Для этого используется <tt/MULE/ (MULtilanguage Emacs support). Этот путь несколько сложен и (на сколько я знаю) редко используется, поэтому я его здесь не описываю. Минимальная поддержка кириллицы в <tt/GNU emacs/ (вам не нужно этого делать при настройке <tt/XEmacs/) обеспечивается при выполнении следующих вызовов, добавленных в <tt/.emacs/ (при условии, что поддержка символов кириллицы установлена для консоли или для X Windows соответственно): <verb> (standard-display-european t) (let ((m (current-input-mode))) (set-input-mode (car m) (nth 1 m) 1)) </verb> Это позволит вам видеть и вводить символы, находящиеся в верхней части ASCII таблицы. Однако, этого не достаточно. Emacs обрабатывает кириллические символы как специальные, и как следствие не распознает границы русских слов и не делает различия между строчными и заглавными буквами. Чтобы обойти это, вам следует несколько модифицировать таблицы синтаксиса и регистра emacs: <verb> (require 'case-table) (let* ((ruc "\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361") (rlc "\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321") (i 0) (len (length ruc))) (while (< i len) (modify-syntax-entry (elt ruc i) "w ") (modify-syntax-entry (elt rlc i) "w ") (set-case-syntax-pair (elt ruc i) (elt rlc i) (standard-case-table)) (setq i (+ i 1)))) </verb><verb></verb> Для этого я создал файл <tt/rusup.el/, который содержит эти команды, также как и пару других удобные функции. Вы должны вызвать его в вашем <tt>~/.emacs</tt>. Ну и в заключении: пакет <url url="http://www.math.uga.edu/~valery/russian.el" name="russian.el">, созданный Валерием Алексеевым (<tt/valery@math.uga.edu/), позволяющий пользователю переключаться между кириллическим и стандартным модами ввода и преобразовывать текстовый буфер из одной русской кодировки в другую (это очень полезно, для чтения текстов импортированных из MS-DOS или Windows). <sect1>Работа с vi <p> <nidx>Кириллица!редакторы!vi</nidx> <nidx>Кириллица!редакторы!vim</nidx> Редактор <tt/vi/ (по крайней мере его клон <tt/vim/, присутствующий в большинстве дистрибутивов Linux) знает о существовании 8ми битных символов. Это дает вам возможность вводить кириллические буквы. Редактор правильно распознает границы слов. Я ничего не знаю по поводу правил преобразования из строчных в заглавные и обратно, так как я не часто работаю в <tt/vi/. <em/Если вы знаете что-либо об этом, то пожалуйста сообщите мне/ <sect1>Редактирование текста в joe <p> <nidx>Кириллица!редакторы!joe</nidx> Для того чтобы распознавать 8ми битные символы <tt/joe/ требует специальную опцию <tt/-asis/. Вы можете указать ее в командной строке или вставить в файл <tt>~/.joerc</tt> для личного пользования или в <tt>/usr/lib/joerc</tt> для настройки всей системы. Если ваша программа не воспринимает <tt/-asis/, то вам следует обновить ее версию. Однако, <tt/joe/ не распознает границы русских слов. Я предполагаю, что тоже самое происходит и с перекодировкой из верхнего регистра в нижний и обратно. <sect1>Проверка правописания на русском языке <p> <nidx>Кириллица!проверка правописания</nidx> <nidx>Кириллица!ispell</nidx> Для проверки правописания я использую программу <tt/GNU ispell/. Она имеет очень гибкие настройки и возможности для расширения. Ее можно использовать при проверки правописания текстов написанных на языках отличных от английского путем добавления новых <bf/словарей/. Константин Книжник создал <em/очень/ хороший русский словарь для <tt/ispell/. Вы можете найти его на <htmlurl url="http://www.ispras.ru/~knizhnik" name="Домашней страничке К.Книжника">. В поставку словаря включен полезный скрипт, обеспечивающий инкриментный режим проверки правописания слов для <tt/emacs/; В идеальном случае ваш <tt/ispell/ установлен правильно, и вам надо только создать словарь, используя команды, обеспечиваемые файлом <tt/Makefile/ из дистрибутива. Однако с довольно большой вероятностью у вас возникнут проблемы с <tt/ispell/, который откажется понимать 8ми битные данные. Это может произойти по той причине, что в большинстве дистрибутивов Linux <tt/ispell/ скомпилирован без поддержки 8ми битных символов. В этом случае вам не удастся избежать перекомпиляции пакета <tt/ispell/. К счастью пользователей RedHat я скомпилировал пакет <tt/ispell/ вместе с русским и немецким словарями. Как обычно, вы можете утянуть его с <htmlurl url="ftp://ftp.redhat.com/pub/contrib/i386/ispell-3.1.20-6.i386.rpm" name="RedHat FTP site">. Если вы все сделали правильно, то можете инициировать проверку правописания для русских текстов, путем вызова программы <tt/ispell/ с опцией <tt/'-d russian'/ Теперь, если вы используете <tt/Emacs/, то вероятно вы не против добавить пункт в меню для проверки с русским словарем. Я послал соответствующие изменения к человеку, поддерживающему <tt/ispell.el/, и он согласился включить его в файл при следующем официальном релизе. Кроме того, вы можете сделать это же путем добавления следующего кода в ваш <tt>~/.emacs</tt> (или в <tt>/usr/share/emacs/site-lisp/site-start.el</tt> для настройке всей системы) <verb> (setq ispell-dictionary-alist (append ispell-dictionary-alist '(("russian" "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" "[']" t ("-C" "-d" "russian") "~latin1")))) (define-key-after ispell-menu-map [ispell-select-russian] '("Select Russian (KOI-8)" . (lambda () (interactive) (ispell-change-dictionary "russian"))) 'british) </verb> К сожалению, это не работает в <tt/XEmacs/. Я попытаюсь разрешить эту проблему позже. <sect>Использования кириллицы в программах электронной почты и чтения новостей <p> <nidx>Кириллица!электронная почта</nidx> <nidx>Кириллица!новости</nidx> Настройка программ электронной почты и чтения новостей для распознавания кириллицы не очень сложна, хотя вам следует знать основные принципы работы электронной почты и новостей. Обычно программы Internet электронной почты состоят из двух частей: <bf/MUA/ (Mail User Agent - пользовательская программа электронной почты) и <bf/MTA/ (Mail Transfer Agent - программа рассылки электронной почты). MUA - это программа, которую вы используете для чтения, составления и посылки электронных сообщений. Однако, пользовательская программа электронной почты сама письма не посылает, вместо этого она вызывает программу рассылки электронной почты, которая отвечает за посылку сообщения, в соответствующем направлении, используя соответствующий протокол. Пример пользовательской программы электронной почты - <tt/Pine/, программу рассылки электронной почты - <tt/qmail/. До недавнего времени и MTA, и MUA по умолчанию не были чисто 8ми битными программами. Поэтому, когда вы посылаете сообщение, скажем из Америки в Россию, то вы никогда не будете уверены в том, что какая - нибудь промежуточная программа рассылки электронной почты не "откусит" в вашем сообщении 8ой бит у каждой буквы в вашем сообщении. Поэтому был разработан ряд протоколов, которые позволь закодировать любой тип данных с использованием только печатаемых символов из 7ми битного ASCII. Эта группа протоколов зовется <bf/MIME/ (MultimedIa Mail Encoding - мультимедийная кодировка электронных сообщений) Так как MIME обычно сконфигурирован по умолчанию довольно правильно, то мы не будем обсуждать его здесь. Мы поговорим MIME, когда будет обсуждаться совместимость между русскими кодировками (См. раздел <ref id="mime">). Мы начнем с настройки пользовательской программы электронной почты, потому что с этой программой вы работаете непосредственно. Затем мы обсудим простейшие принципы конфигурации MTA для поддержки кириллицы. <sect1>Настройка пользовательской программы электронной почты (MUA) <p> <nidx>Кириллица!настройка MUA</nidx> <sect2>Пользовательской программа электронной почты на основе Emacs <p> <nidx>Кириллица!электронная почта!Emacs</nidx> Если вы уже настроили emacs как таковой, то вам не нужно специально настраивать программу электронной почты, которая обеспечивается средствами Emacs. (Для настройки Emacs смотрите раздел <ref id="emacs" name="Emacs и XEmacs">). <sect2>elm <p> <nidx>Кириллица!электронная почта!elm</nidx> Добавьте следующую запись в ваш <tt>~/.elm/elmrc</tt>: <verb> CHARSET=koi8-r </verb> <sect2>pine <p> <nidx>Кириллица!электронная почта!pine</nidx> Добавьте следующую запись в <tt>~/.pinerc</tt> для персональной настройки или в <tt>/usr/lib/pine.conf</tt> для настройки всей системы. <verb> character-set=koi8-r </verb> Вы можете также изменить настройку вашего <tt/Pine/ для того, чтобы предотвратить посылку письма в <tt/quoted-printable/ кодировке. <verb> enable-8bit-nntp-posting enable-8bit-esmtp-negotiation </verb> Кроме того, удостоверьтесь, что вы имеете свежую версию <tt/pine/. До недавнего времени эта программа имела различные проблемы с русским кодировками. <!-- !!! others --> <sect1>Настройка вашей программы рассылки электронной почты (MTA) <p> <nidx>Кириллица!настройка MTA</nidx> В "природе" существует несколько программ рассылки электронной почты (MTA) доступных для вас. Это <tt/sendmail/, <tt/qmail/, <tt/smail/, <tt/exim/, и так далее. <sect2>sendmail <p> <nidx>Кириллица!настройка MTA!sendmail</nidx> Не так давно программа <tt/sendmail/ была гораздо более популярной чем другие программы рассылки, потому что имела долгую историю и, соответственно, имела широкое распространение. Что касается меня лично, то я ненавижу эту программу - это прекрасный пример абсолютно бездумного подхода к созданию программного обеспечения и даже "улучшения", которые делаются время от времени, показывают что данный подход не умирает. Любой системный администратор вздрагивает, когда слышит зловещее слово "<tt/sendmail.cf/" (Примечание переводчика - данное мнение было выражений личных привязанностей автора, существуют и другие мнения на этот счет. На данный момент все остальные программы рассылки, как правило, либо гораздо хуже, либо не отвечают запрашиваемым требованиям). В данный момент <tt/sendmail/ больше не откусывает 8мой бит. Однако он может <em/закодировать/ 8ми битные данные с помощью специального <bf/base64/ формата кодировки. Хотя большинство программ чтения электронных сообщений распознают и декодируют подобные сообщения обратно в 8ми битный текст, вы вероятно хотите посылать просто текст и быть уверенным, что все работает нормально. Начиная с версии 8, <tt/sendmail/ обрабатывает 8ми битные данные по умолчанию правильно. Если этого не происходит- проверьте опцию <tt/EightBitMode/ и опцию <tt/7/ в разделе mailers в вашем файле <tt>/etc/sendmail.cf</tt>. Подробнее смотрите руководство <em/"Sendmail. Operation and Installation Guide"/ . <sect2>Другие программы рассылки электронной почты <p> <nidx>Кириллица!настройка MTA!другие</nidx> Я немного знаю о других программах рассылки почты. Если вы что-то знаете, что может быть важно для настройки кириллицы, то пожалуйста сообщите мне. <sect>Путешествие по русскому WWW <p> <nidx>Кириллица!WWW browsing</nidx> В отличии от программ электронной почты и чтения новостей нет никаких стандартов для русской кодировки на WWW. Основная причина заключается в том, что всеми "любимая" компания Microsoft предоставляет программы создания Web сайтов, которые знают о существовании только одной русской кодировки <bf/cp1251/, полностью игнорируя существование других стандартов. Настройки, описанные здесь, очень примитивны. Они позволят вам видеть страницы в <bf/KOI8-R/ кодировке. Если ситуация как-то изменится, то я добавлю еще информации. <sect1>lynx <p> <nidx>Кириллица!WWW browsing!lynx</nidx> Начиная с версии 2.6, вы можете выбирать соответствующее значение для дисплея - <tt/display Character set/. (Прим. переводчика: lynx версии 2.8 позволяет смотреть страницы в любой кодировке, а не только в <bf/KOI8-R/. Кроме того, для просмотра WWW в текстовом режиме можно использовать <htmlurl url="http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/links/" name="links"> - опять наши братья чехи на высоте :)) <sect1>Netscape Navigator<label id="netscape"> <p> <nidx>Кириллица!WWW browsing!Netscape</nidx> Убедитесь, что вы используете <tt/Netscape/ версии 4.06 и выше. Начиная с этой версии <tt/Netscape/ поддерживает кириллицу гораздо лучше. <sect2>Основные настройки <p> <nidx>Кириллица!WWW browsing!настройка Netscape</nidx> Наконец то, свершилось, теперь Netscape поддерживает русские кодировки правильным образом. Вам надо только правильно настроить шрифты KOI8-R. После этого, если например требуется показать документ, который использует CP-1251, Netscape автоматически перекодирует весь документ в KOI8-R и правильно отобразит его, даже если у него нет доступа к CP-1251 шрифтам. Для того чтобы правильно настроить KOI8-R в вашем Netscape, сделаете следующее: <itemize> <item>В меню <tt>Options/General Preferences/Fonts</tt> выберите <tt/Cyrillic (KOI-8)/ кодировку. <item>Выберете подходящие шрифты для этой кодировки - например выберете <tt/Times(Cronyx)/ - как пропорциональный шрифт и <tt/Courier(Cronyx)/ - как fixed. <item>Сохраните настройки. </itemize> ВНИМАНИЕ: Все больше и больше появляется WWW страниц, оформление которых сильно зависит от определенных шрифтов. Это в основном касается страниц, созданных под и для MS Windows. Я настоятельно рекомендую установить <em/сервер TrueType шрифтов/. С помощью него некоторые странички станут выглядеть гораздо лучше. Для подробностей смотрите раздел <ref id="ttfonts" name="Использование шрифтов TrueType"> Некоторые WWW странички в интернете правильно отвечают на запрос по поводу используемой при их создании кодировки. Другие требуют, чтобы вы выбрали кодировку сами. Для того чтобы это сделать выберете правильную опцию кодировки в меню <tt>Options/Document Encoding</tt>. Netscape версии 4.08 правильно отображает элементы форм, использующих правильную кодировку (по крайней мере для большинства страниц, которые я видел). Более старые версии делают это неправильно. Однако, если вы по каким-то причинам вам надо использовать более старую версию, или правильное отображение форм по какой-либо причине не работает, то попробуйте сделать следующее: <enum> <item>Скопируйте базу данных установок Netscape (обычно <tt/Netscape.ad/) в <tt>~/Netscape</tt> <item>В файле, установите следующую опцию: <verb> *documentFonts.charset*iso8859-1: koi8-r </verb> </enum> Это вынудит все фреймы и элементы ввода использовать шрифты с кодировкой <bf/koi8-r/ вместо заданных по умолчанию, а следовательно вы должны удостовериться в том, что вы уже установили такие шрифты (см. раздел <ref id="xfonts">). Плохая новость, об использовании этого трюка заключаются в том, что если вы загружаете документ, который должен отображаться с помощью шрифтов <tt/iso-8859-1/, то вместо этого он отобразится с помощью <tt/koi8/ шрифта. Иногда такие документы выглядят хуже. Если вам нужно чего-то еще: Андрей А. Чернов - это человек который знает больше чем другие о KOI-8 в общем и в netscape в частности. Посетите его превосходную <htmlurl url="http://www.nagual.pp.ru/~ache/koi8.html" name="KOI-8 page"> страницу, и скачайте заплату для файла ресурсов Netscape, который заставляет Netscape говорить по Русски, так хорошо как это только возможно. <sect>"Русскоязычные" текстовые процессоры<label id="word-processors"> <p> <nidx>Кириллица!текстовые процессоры</nidx> <sect1>Поддержка кириллицы в TeX<label id="tex"> <p> <nidx>Кириллица!Tex</nidx> В этом разделе я опишу несколько способов набора русских текстов в TeX и LaTeX. Есть несколько путей для достижения этой цели, которые отличаются в сложности установки и удобстве использования. Например, одна из возможностей это начать работу без всякой предварительной настройки, используя <em/Washington AMSTeX Cyrillic fonts/. С другой стороны, вы можете установить пакет LaTeX, который легко настраивается на пользование кириллицей. У меня был опыт работы с двумя подобными пакетами. Один из них - пакет <tt/cmcyralt/ создан Вадимом В. Житником (<tt/vvzhy@phy.ncu.edu.tw/) и Александром Харином (<tt/harin@lourie.und.ac.za/), а другой - пакет <tt/LH/ написан группой <bf/CyrTUG/. Пакет <tt/LH/ включает в себя стили и расстановку дефисов для LaTeX2e, созданную Сергеем О. Наумовым (<tt/serge@astro.unc.edu/). Я опишу оба. Обратите внимание, что доступны две версии LaTeX, одна из них - 2.09 - старая версия , в то время как 2e - новая (выпуск pre-3.0). Если Вы используете LaTeX 2.09, то как можно быстрее переходите на 2e. Последний сохраняет совместимость со старой версией, но имеет намного больше возможностей. Кроме того, версия 3 будет скоро выпущена. Я опишу установку LaTeX 2e. Да, кстати, оба этих пакета требуют для редактирования русских текстов установку <bf/Alt/ кодировки, а не <bf/KOI8-R/! Это вызвано историческими причинами, создатели этих пакетов, использовали, их для работы с <tt/EmTeX/- MS-DOS версии TeX (они еще знали о Linux :-). Переход к <bf/KOI8-R/ требует некоторых усилий и ожидается, что будет скоро сделан. А пока, используйте какие-нибудь утилиту, для перекодировки русского текста из <bf/KOI8-R/ в <bf/Alt/. См. раздел <ref id="conversion" name="Символьная перекодировка">. <bf/Примечание переводчика:/ Перечисленные здесь пакеты являются устаревшими, так как последние версии teTeX включают в себя русификацию <bf/out of box/. Признаком русифицированности TeX'а out-of-box является наличие директории <tt>/$TEXMF/tex/latex/t2</tt>, <tt/$TEXMF/ обычно равно <tt>/usr/lib/texmf</tt>. Русификация, как нетрудно догадаться, T2. <sect2>Работа с Washington Cyrillic <p> <nidx>Кириллица!Tex!Washington Cyrillic</nidx> Этот пакет был создан для Американского Математического Общества, чтобы дать возможность создавать документы со ссылками на первоисточники на русском. Следовательно, авторы не очень "напрягались" при создании этого пакета и шрифты в результате этого выглядят довольно неуклюже. Обычно этот пакет упоминается как <tt/"по настоящему плохой пакет кириллицы для TeX"/. Однако, мы обсудим его, так как он очень прост в использовании и не требует установки - этот набор содержится в большинстве дистрибутивов TeX. Конечно, у вас не будете такой роскоши как автоматическая расстановка дефисов, но все равно ... 1. Снабдите ваш документ следующими директивами: <verb> \input cyracc.def \font\tencyr=wncyr10 \def\cyr{\tencyr\cyracc} </verb> 2. Теперь, чтобы напечатать символы кириллицы, вставьте <verb> \cyr </verb> для печати используйте соответствующий латинский символ или команду TeX. То есть, строчные буквы русского алфавита соответствуют следующим сочетаниям: <verb> a b v g d e \"e zh z i {\u i} k l m n o p r s t u f kh c ch sh shch {\cprime} y {\cdprime} \`e yu ya </verb> Чрезвычайно сложно преобразовывать ваши русские тексты в такую кодировку, но вы можете автоматизировать этот процесс. Программа translit (раздел <ref id="conversion" name="Символьная перекодировка">) поддерживает опцию вывода TeX. <sect2> Русификация teTeX <p> <nidx>Кириллица!Tex!teTeX</nidx> Если у вас старый дистрибутив teTeXа (версия ниже 1.0), то настоятельно рекомендую скачать последнюю версию этого программного продукта. Для современных версий TeX'а (teTeX, fpTeX, MikTeX, Web2c TeX) русификация уже входит в дистрибутив. Первое, что нужно сделать, это подключить русские переносы. Для этого нужно отредактировать файл <tt/language.dat/ находящийся в директории <tt>$TEXMF/tex/generic/config/language.dat</tt> (<tt/$TEXMF/ обычно равно <tt>/usr/lib/texmf</tt> или <tt>/usr/share/texmf</tt>) добавив туда строки: <verb> ruseng ruenhyph =russian =english </verb> Остальные строки нужно закомментировать, либо удалить. После чего необходимо перегенерировать форматные файлы: <verb> texconfig init </verb> Описанное выше можно проделать через стандартную конфигурационную программу <tt/texconfig/ - выбрать hyphenation -> latex и раскомментировать russian. Теперь можно работать с русским языком. Добавьте в преамбулу документа (после слов <tt/\documentclass{}/) <verb> \usepackage{mathtext} % если нужны русские буквы в формулах (не обязательно) \usepackage[T2A]{fontenc} % внутренняя T2A кодировка TeX \usepackage[koi8-r]{inputenc} % кодировка [cp866] [cp1251] \usepackage[russian]{babel} % включение переносов </verb> После этого в документе можно использовать русские буквы. <bf/P.S./ Это только один из вариантов, самый простой и универсальный решения проблемы русификации. Есть и другие варианты и методы которые на практике могут оказаться более удачными. Описание русификации teTeX взято из FAQ, поддерживаемого для эхо-конференции <bf/RU.TEX/ Алексеем Махоткиным. Что бы добавить форматы из <tt/cyrplain/ набора в <tt/texconfig/ выбрать <tt/FORMATS/ и добавить <verb> cyrtxinf tex language.dat cyrtxinf.ini </verb> для русского <tt/texinfo/. Аналогично для <tt/cyrblue/ и <tt/cyramstx/. Что бы добавить формат <tt/cyrtex/ ( русский TeX ) проще в каталоге <tt/web2c/ выполнить: <verb> initex '\input cyrtex.ini \dump' </verb> и бросить символическую ссылку с именем <tt/cyrtex/ на <tt/tex/ (например в <tt>/usr/bin</tt>) Что бы переключится на русский в этих <tt/plain/ форматах надо использовать команду <verb> \language N </verb> где N - номер, под которым числится русский язык в получившейся раскладке. <sect2> Пакет KOI-8 для teTeX (устарело) <p> <nidx>Кириллица!Tex!KOI-8</nidx> Также есть довольно новый <htmlurl url="ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/" name="пакет teTeX-rus">. Он поддерживает набор символов KOI-8 и отвечает всем основным требованиям TeX и LaTeX. Я лично его не пробовал, но я слышал что его успешно используют. <bf/ВНИМАНИЕ:/ Этот пакет требует, чтобы вы переконфигурировали и пересобрать некоторые части вашего пакета <tt/teTeX/ (например скомпилированные для дальнейшего использования LaTeX макрокоманды). <em>Если вы не знаете точно, что делаете, то вы не должны пробовать это без некой разумной доли осторожности. Вероятно лучше позаимствовать правильно пересобранные части у кого - либо из сети.</em> <sect2>Использование пакета для LaTeX cmcyralt (устарело) <p> <nidx>Кириллица!Tex!cmcyralt</nidx> Пакет cmcyralt может быть найден на любом архиве CTAN (Comprehansive TeX Archive Network)- например на <tt/ftp.dante.de/. Вы должны получить две его части: набор шрифтов из <tt>fonts/cmcyralt</tt> и набор стилей с правилами расстановки дефисов, которые находятся в директории <tt>macros/latex/contrib/others/cmcyralt</tt>. <bf/ВНИМАНИЕ:/ Удостоверитесь, что у вас установлен пакет <tt/Sauter/, так как <tt/cmcyralt/ требует наличия некоторых шрифтов из этого пакета. Этот пакет вы также можете достать из любого архива CTAN. Теперь вы должны сделать следующее: <enum> <item>Поместите новые шрифты в каталоги шрифтов TeX. На моей системе (Slackware 2.2) я создал каталог <tt/cmcyralt/ в <tt>/usr/lib/texmf/fonts/cm/</tt>. Создайте подкаталоги <tt/src/, <tt/tfm/, и <tt/vf/ в нем. Поместите там <tt/.mf/, <tt/.tfm/, и <tt/vf/ файлы соответственно. <item>Поместите файлы драйвера шрифтов (<tt/*.fd/) из набора стилей в соответствующее место (в моем случае это было в <tt>/usr/lib/texmf/tex/latex/fd</tt>). <item>Поместите файлы стиля (<tt/*.sty/) в соответствующий каталог стилей LaTeX (в моем случае это было в <tt>/usr/lib/texmf/tex/latex/sty)</tt>). </enum> Теперь надо настроить переносы. Она потребует, пересобрать основные файлы LaTeX. <enum> <item>Файл <tt/hyphen.cfg/ содержит директивы для и английской и русской расстановки переносов. Извлеките директивы для русских переносов, и поместите их в файл конфигурации расстановки переносов LaTeX - <tt/lthyphen.ltx/. В моем случае, этот файл был в директории <tt>/usr/lib/texmf/tex/latex/latex-base</tt>. <item>Поместите <tt/rhyphen.tex/ в тот же самый каталог. Это необходимо для создания основного файла. Позже, вы можете удалить его. <item>Выполните команду "make" в этом каталоге. Не забудьте сделать линк от <tt/Makefile/ к <tt/Makefile.unx/. Во время компиляции следите за выводом. Должно быть сообщение: <verb> Loading hyphenation patterns for Russian. </verb> Если все прошло O'K, то вы получите в этом каталоге новый <tt/latex.fmt/. Поместите его туда, где был предыдущий (вероятно в <tt>/usr/lib/texmf/ini/</tt>). <bf/Не забудьте сохранить предыдущую версию файла (так, на всякий пожарный)!/. </enum> Это все. Установка закончена. Попробуйте пройтись по примерам, найденным в архиве стилей. Если вы в состоянии создавать PostScript файлы без каких-либо проблем, то все - OK. Теперь, чтобы использовать кириллицу в LaTeX, снабдите ваш документ следующей директивой: <verb> \usepackage{cmcyralt} </verb> Для подробностей, смотрите <tt/README/ файл в архиве стилей <tt/cmcyralt/. <bf/Обратите внимание:/ если у вас есть проблемы с примерами, и если вы все сделали правильно, то вероятно ваш пакет TeX не был правильно установлен. Например, во время моей первой попытки, каждая попытка создать <tt/.pk/ файлы для русских шрифтов терпела неудачу (стадия <tt/MakeTeXPK/). Пристрастное расследование выявило некий неявный конфликт между <it/localfont/ и <it/ljfour/ <tt/METAFONT/ настройками. Прежде это работало, но терпело крах после установки cmcyralt. Войдите в контакт вашим местным TeX гуру. TeX очень (иногда слишком) сложен, чтобы переконфигурировать его без отсутствия навыков. <sect2>Использование пакета CyrTUG <p> <nidx>Кириллица!Tex!CyrTUG</nidx> Вы можете найти пакет CyrTUG в архиве <htmlurl url="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software" name="SunSite">. Возьмите файлы <tt/CyrTUGfonts.tar.gz/, <tt/CyrTUGmacro.tar.gz/, и <tt/hyphen.tar.Z/. Процесс установки не слишком отличается от предыдущего. <sect2> Использование с TeX'ом кириллических шрифтов в формате PostScript Type1 <p> <nidx>Кириллица!Tex!Type1</nidx> Возьмите на <htmlurl url="ftp://ftp.vsu.ru/pub/tex/" name="ftp://ftp.vsu.ru/pub/tex/"> пакет PsCyr. Список свободно доступных кириллических шрифтов можно найти по адресу <htmlurl url="http://xtalk.price.ru/tex/" name="ftp://xtalk.price.ru/tex/">. Крупнейшим коммерческим производителем кириллических шрифтов является фирма ParaType, <htmlurl url="http://www.paratype.ru" name="http://www.paratype.ru">. <bf/Внимание:/ При использовании Type1 шрифтов в тексте, насыщенном математическими символами, восприятие текста умеренно ухудшится (если не принимать дополнительных усилий по согласованию шрифтов). Математические CM-шрифты не будут сочетаться с текстовыми шрифтами. <!-- <sect1>The ApplixWare suite <p> <nidx>Cyrillic!word processing!applixware</nidx> As far as I know, <tt/ApplixWare/ allows --> <sect1>StarOffice <p> <nidx>Кириллица!текстовые процессоры!StarOffice</nidx> Юрий Коваленко (<htmlurl url="http://www.inp.nsk.su/~kovalenko">) собрал всю информацию по русификации StarOffice. Она находится по адресу <htmlurl url="ftp://sky.inp.nsk.su/archives_src/linux/StarOffice/russification.txt">. У меня не было возможности попробовать это и я ничего не могу сказать о точности этой информации. Другие источники информации по этому вопросу предоставлены Евгением Демидовым (<htmlurl url="mailto:jack@gpi.ru">) - расположен по адресу <htmlurl url="ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/README"> и Леоном Кантером - по адресу <htmlurl url="http://isd.anet.donetsk.ua/~leon/StarOffice/">. Ну и наконец, Star Division Corp. планирует организовать поддержку кириллицы в грядущей версии StarOffice 5.0 (я слышал, что и в этой версии есть проблемы с кириллицей). <!-- !!! Applixware --> <sect>Вывод на печать и PostScript <p> <nidx>Кириллица!печать</nidx> <nidx>Кириллица|Postscript</nidx> Напечатать что-либо - это всегда проблема. Имеется набор различных принтеров от различных производителей с различными особенностями. Даже для вывода на печати обычного ASCII текста нет никаких общих решений (это применимо не только к UNIX, но также и к другим операционным системам. Принтеры имеют различные управляющие языки, и очень часто они имеют сильно различные подходы к поддержке иностранных языков. Хорошая новость - это то, что сейчас в качестве управляющего языка, как стандарт de facto для описания работы печати используется язык <bf/PostScript/, разработанный <htmlurl url="http://www.adobe.com" name="Adobe Corporation">. Много принтеров имеют встроенный <bf/PostScript интерпретатор/, то есть вам надо просто послать на принтер Postscript данные. Для тех у кого этого нет, существует <bf/программные PostScript интерпретаторы/, который берет данные Postscript преобразовывает в специфический для данного принтера управляющий код. Один из них мы сейчас обсудим (вероятно самый лучший из лучших). Это GNU GhostScript (gs для краткости). Другая проблема - это широкий спектр требований предъявляемый к печати. Например, иногда вы хотите просто напечатать часть вашей C программы, содержащей в качестве комментария текст на русском, так что вы не нуждаетесь в "навороченной" процедуре печати- вам нужен простой ASCII вывод с одним шрифтом. Совсем другой дело, когда вы создаете открытку для вашей подруги. В этом случае вы, вероятно, будете нуждаться в печати документа с различными шрифтами и т.д. И это уже определенно требует больших усилий по установке поддержки кириллицы. Чтобы выполнить вышеупомянутую задачу по выводу С программы, вы должны заставить ваш принтер понять только <em/один/ шрифт кириллицы и (возможно) устанавливать некоторую программу- фильтр, чтобы выводить данные в соответствующем формате. Чтобы совладать со второй задачей, вы должны обучить ваш принтер различным шрифтам и иметь специальное программное обеспечение. Бывают задачи, требующие для выполнения нечто среднее, тогда вам нужна программы, которая знает, как организовать и шрифты, и соответствующий вывод в принтер, так что вы можете, скажем, получить на выходе качественно отпечатанный текст, без сложных систем подготовки текстов. <sect1> Преобразование текста в PostScript <p> <nidx>Кириллица!Postscript!преобразование из текстового формата</nidx> Иногда у вас есть простой ASCII KOI-8 текст, и вы хотите его только напечатать. Один из самых простых способов это сделать это воспользоваться услугами программ преобразующих текст в PostScript. Есть ряд программ, делающих такое преобразование. Я лично предпочитаю <htmlurl url="http://www-inf.enst.fr/~demaille/a2ps.html" name="a2ps">. Первоначально разработанная как простой text-to-PostScript преобразователь, эта программа сейчас стала "матерым", легко настраиваемым программным продуктом с большим количеством опций и настроек. Она позволяет управлять форматами, размещениями страниц, выделением и т.д. Другая утилита, делающая примерно то же самое (теперь доступная как часть проекта <bf/GNU/) - <htmlurl url="ftp://prep.ai.mit.edu/pub/gnu" name="enscript">. <sect2>A2ps конвертер <p> <nidx>Кириллица!Postscript!a2ps</nidx> Преобразователь текста в PostScript был и остается одним из наиболее универсальных средств печати. Автор, как оказалось, очень открыт для предложений, и как следствие, <tt/a2ps/ версия 4.9.8 поддерживает кириллицу прямо в программе. Все, в чем вы теперь нуждаетесь - это PostScript принтер. Команда, которую я использую для этого: <verb> a2ps -X koi8r --print-anyway <файл> </verb> <sect2> GNU enscript <p> <nidx>Кириллица!Postscript!GNU enscript</nidx> Программа GNU <tt/enscript/ также, как и a2ps, была разработана для преобразования текста в PostScript, и она также поддерживает не ascii кодировки. Программа не имеет русских PostScript шрифтов в своем составе, но их очень просто доустановить. Как это сделать описано ниже (спасибо Michael Van Canneyt): <enum> <item>Установите последний <tt/enscript/. Теперь, самая последняя версия это 1.5. вы можете найти ее на <htmlurl url="ftp://prep.ai.mit.edu/pub/gnu" name="GNU FTP архиве">, или взять пакет RPM с <htmlurl url="ftp://ftp.redhat.com/pub/contrib/i386/" name="Redhat">. <item>Если вы - счастливый пользователь RedHat Linux, загрузите и установите <url url="ftp://ftp.redhat.com/pub/contrib/i386/enscript-fonts-koi8-1.0-1.i386.rpm" name="шрифт Cyrillic Textbook">. <item>Если вы не используете RPMки, вытяните файл <tt/textbook.tar.gz/ из архива на <url url="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/" name="sunsite.unc.edu"> (здесь лежит программное обеспечение для русификации). Разархивируйте этот файл в каталог, где размещены шрифты для <tt/enscript/ (обычно <tt>/usr/share/enscript</tt>). Теперь перейдите туда, и выполните следующую команду: <verb> mkafmmap *.afm </verb> <item>Установка завершена. Попробуйте напечатать текст в KOI8-R следующей командой: <verb> enscript --font=Textbook8 --encoding=koi8 some.file </verb> </enum> Если вам требуется действительно быстрый и простой способ, и качества вывода для вас не критично, и все что вам нужно - это только русский текст на бумаге, попробуйте пакет <htmlurl url="http://www.siber.com/sib/russify/converters/" name="rtxt2ps">. Это очень простой без украшательств конвертер текста в PostScript. Качество вывода не очень хорошее (или, честно говоря <em/плохое/) но это - работает. <sect1>Преобразование текста в TeX <p> <nidx>Кириллица!Postscript!преобразование текста в TeX</nidx> Если все, в чем вы нуждаетесь- это печатать ASCII текста без дополнительной обработки, то вы можете использовать некоторые программки, которые могут преобразовать ваш текст кириллицы в готовый TeX файл. Одна из самых лучших программ для таких целей - это <tt/translit/ (Смотрите раздел <ref id="conversion" name="Символьная перекодировка">). В этом случае вы даже не должны беспокоиться относительно установки шрифтов кириллицы для TeX, так как <tt/translit/ использует пакет кириллицы <tt/Washington Cyrillic/, который включен в большинство дистрибутивов TeX (или - я не прав?). <sect1>Кириллица в PostScript<label id="postscript"> <p> <nidx>Кириллица!Postscript</nidx> Эксперты говорят, что PostScript это просто. Я не могу судить - у меня было слишком много вещей, которые надо изучить, чтобы выкроить время для изучения PostScript. Но я все равно попробую использовать мои небольшие знания об этом вопросе. <bf/Я буду очень благодарен за любую информацию об этом вопросе от вас друзья, которые знают больше меня/ (вас приблизительно 99 % от Земной популяции). Чтобы печатать русский текст с использованием PostScript, вы должны удостовериться относительно следующих вещей: <itemize> <item>шрифт кириллицы <em/загружен/ или включен в документ. <item>текст кириллицы включен в документ. <item>текст кириллицы использует соответствующие символьные коды, которые соответствуют требованиям шрифта. <item>чтобы печатать текст кириллицы <em/выбран/ соответствующий шрифт. </itemize> Не имеется никакого достаточно общего решения, чтобы рекомендоваться его как окончательное. Я попробую осветить различные способы для решения различных проблем, связанных с этим вопросом. Один способ это побороть проблемы установки кириллицы вообще, состоит в том, чтобы использовать <htmlurl url="http://www.cs.wisc.edu/~ghost/index.html" name="Ghostscript">. <tt/Ghostscript/ (или просто <tt/gs/ от newspeak) абсолютно free (ну, не совсем) интерпретатор PostScript. У него есть много преимуществ; среди них: <itemize> <item>Способность работать на многих платформах (различные Unix, Окошки и т.д) <item>Поддержка для огромного количества не-PostScript принтеров <item>Высокая степень настраиваемости </itemize> В нашем специфическом случае является важным то, - что однажды установив и настроив <tt/Ghostscript/, мы можем все печатать через него, таким образом нам не надо дополнительно настраивать другие PostScript устройства (например <bf/HP LaserJet IV/). <sect1>Добавление шрифтов кириллицы к Ghostscript <p> <nidx>Кириллица!Postscript!кириллические шрифты</nidx> Это важно, так как вы, вероятно, не захотите взваливать ответственность за включение шрифтов кириллицы в PostScript на другие программы. Взамен, вы добавляете их только к gs и заставляете программы выводить русский текст совместимый с этими шрифтами. Чтобы добавлять новый шрифт (в формате <tt/pfa/ или <tt/pfb/) в <tt/gs/, вы должны: <enum> <item>Поместить этот шрифт в каталог шрифтов tt/gs/ (то есть. в <tt>/usr/lib/ghostscript/fonts</tt>). <item>Добавить соответствующие имена и aliases для шрифта в файле <tt/Fontmap/ в каталоге <tt/gs/. </enum> Недавно появился приличный набор шрифтов кириллицы для <tt/GhostScript/. Его можно найти на <htmlurl url="ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts" name="ftp.kapella.gpi.ru">. Этот набор даже имеет необходимую часть для добавления к файлу <tt/Fontmap/. Вы должны утянуть содержание каталога <tt>/pub/cyrillic/psfonts</tt>. В файле README описываются все необходимые подробности. <sect1>Инкапсуляция Type1 шрифтов в Encapsulated PostScript <p> <nidx>Кириллица!Encapsulated Postscript!кириллические шрифты</nidx> <nidx>Кириллица!TeX!Encapsulated PostScript</nidx> Рисунки в формате PostScript часто требуется включать в текст, подготовленным таким средством форматирования как TeX. Компания Adobe разработала формат файла <tt/Инкапсулированный/ PostScript (EPS или EPSF), который создается в соответствии с <tt/соглашениями по структурированию документов в формате PostScript/ (PostScript Document Structuring Conventions). Большинство современных графических приложений порождает файл в общепринятом формате EPS, который без труда может быть использован LaTeXом. Существует одно но: как правило при создании EPS файла шрифты, которыми делаются надписи (шрифты, конечно же - PostScript Type1), в него не включаются и при печати заменяются первыми попавшимися. Если у вас есть картинка в EPS, использующая шрифт AAA, и файл AAA.PFA с этим PostScript шрифтом. То, чтобы инкапсулировать этот шрифт в эту картинку надо с помощью любого текстового редактора вставить файл AAA.PFA целиком непосредственно перед строчкой %%EndProlog в файл EPS. Если у вас есть только PFB шрифты, то их следует его преобразовать в PFA. Для этого следует воспользоваться утилитой pfb2pfa (см. <htmlurl url="ftp://ctan.tug.org/tex-archive/" name="CTAN">) или t1ascii (см. <tt/t1utils/). <sect1>Использование старого матричного принтера для печати кириллического текста <p> <nidx>Кириллица!printing!матричные принтеры</nidx> Если у вас есть старый, добрый матричный принтер, и вы нуждаетесь в простом выводе текста на KOI-8, то попробуйте следующее: <enum> <item>Найти соответствующий KOI-8 шрифт для вашего принтера. Проверьте ftp архивы MS DOS - в Internete (например посмотрите на <url url="ftp://ftp.simtel.net" name="архив SimTel">). <item>Прочитайте руководство и найдите в нем как загрузить такой шрифт в ваш принтер. Напишите простенькую программу, делающую это. <item>Запускайте эту программку из соответствующего <tt/rc/ файла при загрузке. </enum> Таким образом, наличие символов Cyrillic в верхней части набора символов принтера позволит вам печатать тексты по-русски без дополнительных ухищрений. Альтернативно к <bf/KOI8-R/ шрифтам вы можете попробовать использовать <bf/Alt/ шрифты. Для этого имеются две причины: <itemize> <item>Вероятно найти <bf/Alt/ шрифты намного проще, так как те были очень широко распространены во времена M$-ДОС. <item>Наличие соответствующего <bf/Alt/ шрифта позволит вам печатать также и псевдо - графические символы. </itemize> Однако, в этом случае, вы должны будете преобразовать ваши тексты из <bf/KOI8-R/ в <bf/Alt/ перед посылкой их на принтер. Это не проблема, так как имеется множество программ, делающих это (для примера смотрите раздел <ref id="conversion" name="Символьная перекодировка">), так что вам нужно только вызвать такую программку из файла <tt>/etc/printcap</tt> в "<tt/if/ поле". Например, с программой <tt/translit/ можно сделать следующее: <verb> if=/usr/bin/translit -t koi8-alt.rus </verb> Для подробностей смотрите <tt/printcap(5)/. <sect>Локализация и Интернационализация<label id="l-n-i"> <p> <nidx>Кириллица!локализация</nidx> <nidx>Кириллица!интернационализация</nidx> Пока, я описывал, как заставить различные программы понять кириллицу. Обычно, каждая программа требовала, чтобы это был ее собственный метод, как правило, чрезвычайно отличный от других. Кроме того, у некоторых программ была незавершенная поддержка языков отличных от английского. Не говоря уж об их неспособности взаимодействовать, используя родной язык пользователя вместо английского. Проблемы, перечисленные выше сильно подавляют, так как программное обеспечение редко создается только для местного рынка. Переработка существенных частей программного обеспечения каждый раз при входе на новый международному рынок, очень неэффективна; и интернациональная поддержка, осуществляемая собственными средствами программы уникальным и присущим только ей способом, в терминах долгосрочного планирования так же не блестящая идея. Следовательно, возникает потребность в стандартизации. И стандарт есть. Все связанное с вышеперечисленными проблемами разделено в соответствии c двумя базисными концепциями: <bf/localization/ и <bf/internationalization/. Под локализацией мы имеем в виду создание программ, способных обрабатывать различные языковые соглашения для различных стран. Позвольте привести пример. Формат даты выданный в Соединенных Штатах - имеет вид ММ/ДД/ГГ. Однако в России, наиболее популярный формат - ДД.ММ.ГГ. Другие проблемы включают в себя представление времени, форматы числа и представления валюты. Кроме этого, один из наиболее важных аспектов локализации - это определение соответствующих классов символов, то есть определение: какие символы в наборе символов являются "кирпичиками" языка (буквами) и как они упорядочиваются. С другой стороны, локализация не работает со шрифтами. Интернационализация (или <bf/i18n/ для краткости), как предполагается, решает проблемы, связанные со способностью программы, взаимодействуют с пользователем на его родном языке. Обе эти концепции должны быть стандартизованы, давая программистам непротиворечивый путь создания программ, работающих в национальной среде. Хотя стандартизация еще в процессе, но много ее частей уже фактически являются стандартом; так что они могут использоваться без особых проблемы. Я опишу общую схема создания программ использующих описанные выше возможности стандартным способом. Так как это заслуживает отдельного документа, я буду давать только очень общее описание и указатели на более полные источники. <sect1>Locale<label id="locale"> <p> <nidx>Кириллица!locale</nidx> Одно из основных понятий локализации - <bf/locale/. Под locale подразумевается набор соглашений, специфических для отдельно взятого языка в отдельно взятой стране. В общем случае говорить, что locale определяется только страной неправильно. Например, в Канаде могут быть определены два locale- язык Канада / Английский и язык Канада / Французский. Более того, язык Канада / Английский - не является эквивалентом языку Великобритания / Английский или Американский / Английский, точно так же Канада / Французский язык - не эквивалент языку Франция / Французский или языку Швейцария / Французский. <sect2>Locale с точки зрения пользователя<label id="locale-use"> <p> <nidx>Кириллица!locale!использование</nidx> Каждая locale - это специальная база данных, определяющая по крайней мере следующие правила и соглашения: <enum> <item>Классификация символов и преобразований <item>Представление валюты <item>Представление чисел (то есть. Десятичные символы) <item>Формат даты / времени </enum> В RedHat Linux (как вероятно и во многих других дистрибутивах Linux), имеются фактически две <it/базы/ данных locale: одна для библиотеки C (<tt/libc/), а другая для <it/X/ библиотек. В идеальном случае должна иметься только одна база данных locale для всего. Чтобы изменить значение locale по умолчанию, обычно достаточно установить системную переменную <tt/LANG/. Например, как это делается в <tt/sh/: <verb> LANG=ru_SU export LANG </verb> Вы можете проверить действие этой команды сразу же, если запустите команду <tt/date/. Результатом должен быть вывод дня, недели и месяца на русском языке. RedHat 5.x определяет KOI8-R locale как <tt/ru_SU/, по этой причине я и использую его. Более очевидное название <tt/ru_RU/ используется для locale основанного на <tt/iso-8859-5/ кодировки. Иногда, вы можете захотеть изменить только один аспект locale без изменения других. Например, вы можете захотеть (Бог знает почему) пользоваться с <tt/ru_SU/ locale, но печатаемые числа должны будут соответствовать стандарту POSIX один. В подобных случаях, имеется набор системных переменных, которые Вы можете задать чтобы сконфигурировать соответствующие части locale. Например в нашем случае это бы выглядело так: <verb> LANG=ru_SU LC_NUMERIC=POSIX export LANG LC_NUMERIC </verb> Подробнее , см. <tt/locale(7)/. Теперь давайте держаться поближе к специфике Linux. К сожалению, в Linux <tt/libc/ версии 5.3.12, входящей в дистрибутив RedHat 4.1 отсутствует русская locale. В данном случае ее надо скачать из Interneta (я, однако, не знаю точного адреса). Чтобы проверить, для каких языков у вас есть locale, выполните '<tt/locale -a/'. Это выведет список всех locale из баз данных доступных libc. Что касается библиотек <tt/X/, то они имеют свою собственную базу данных locale. В версии которую я использую (<tt/XFree86 3.3/), уже имеется российская база данных locale. Я не уверен есть ли она в предыдущей версии. В любом случае, вы можете проверить это, изучив директорию <tt>/usr/lib/X11/locale/</tt> (в большинстве систем). В моем случае, уже есть подкаталоги, именованные <tt/koi8-r/ и даже <tt/iso8859-5/.. <sect2>Locale зависимое программирование<label id="locale-programming"> <p> <nidx>Кириллица!locale!программирование</nidx> С locale программа не должна знать о различных символьных преобразованиях и правилах сравнения, описанных выше. Вместо этого, они используют специальный API, который действует по правилам, определенным locale. Кроме того, нет необходимости для программы, пользоваться только одной locale для соблюдения всех правил- возможно пользоваться другими правилами, описанных в других locale (хотя такой метод не очень хорош). Из man <tt/setlocale(3)/: <quote> Программа может быть сделана переносимой для всех locale, вызывая <tt/setlocale(LC_ALL, "" )/ после инициализации программы, используя значения, возвращенные из <tt/localeconv()/ запрос для locale - зависимой информации и используя <tt/strcoll()/ или <tt/strxfrm()/ для сравнения строк. </quote> Довольно легко определить четыре уровня программной локализации: <enum> <item><bf/Чисто 8ми битное/ программное обеспечение. То есть программа вызывает <tt/setlocale()/. Она не делает каких-либо предположений относительно 8-ого бита каждого символа, использует пользовательские функции из <tt/ctype.h/ и ограничения из <tt/limits.h/, и заботится относительно <tt>signed/unsigned</tt> результата. Очень важно, чтобы программа <bf/не/ делала каких-либо предположений относительно характера набора символов и их упорядочения. То есть следует воздержаться от следующих конструкций при программировании: <verb> if (c >= 'A' && c <= 'Z') { ... </verb><verb></verb> Взамен во всех таких случаях должны использоваться, макрокоманды из locale зависимого файла заголовка <tt/ctype.h/. <item>Форматы, методы сортировки, размеры листа бумаги. Программа использует <tt/strcoll()/ и <tt/strxfrm()/ вместо <tt/strcmp()/ для строк, использует <tt/time()/, <tt/localtime()/, и <tt/strftime()/ для работы со временем, и в заключение, использует <tt/localeconv()/ для правильного представления чисел и валюты. <item>Видимый текст складывается в каталоги сообщений/. Программа должна локализовать весь видимый текст в специальных <bf/каталогах сообщений/. Они содержат соответствия строк на английском и их переводы на другие языки. Выбор сообщений соответствующих языку окружения выполнен так, что полностью прозрачен и для программы и для пользователя. Чтобы использовать эти средства, программа должна вызвать <tt/gettext()/ (Sun/POSIX стандарт), или <tt/catgets()/ (X/Open стандарт). Подробнее см. раздел <ref id="i18n">. <item>EUC/Unicode поддержка. На этом уровне, программа не использует тип <tt/char/. Взамен это она использует <tt/wchar_t/, который определяет объекты, достаточно большие, чтобы содержать символы Unicode. ANSI C определяет этот тип данных и соответствующий API. </enum> Для выяснения подробностей, смотрите например (<ref id="Voropay1">) или (<ref id="SingleUnix">). <sect1>интернационализация<label id="i18n"> <p> <nidx>Кириллица!интернационализация</nidx> В то время как локализация описывает, как адаптировать программу к иностранному окружению, <bf/интернационализация/ (или <bf/i18n/ для краткости) детализирует способы общения программы с не-англоговорящим пользователем. Прежде, это делалось с помощью создания абстракций сообщений, для вывода их из кода программы. Теперь, такой механизм (более или менее) стандартизирован. И, конечно, есть его free реализации! Проект GNU наконец стал на путь создания интернационализированных прикладных программ. Ulrich Drepper (<tt/drepper@ipd.info.uni-karlsruhe.de/) разработал пакет <tt/gettext/. Этот пакет лежит во всех GNU архивах, например в <htmlurl url="ftp://prep.ai.mit.edu/pub/gnu/" name="prep.ai.mit.edu">. Он позволяет вам разрабатывать программы в направлении, двигаясь в котором вы можете легко заставить их поддерживать большее количество языков. Я и не предполагаю описывать методы программирования, еще и потому, что <tt/gettext/ пакет поставляется с превосходным руководством. Просьба о сотрудничестве: Если вы хотите изучить <tt/gettext/ пакет и сделать свой вклад в проект GNU или просто сделать вклад без всякого изучения, то вы можете сделать это! GNU становится международным, так что все утилиты делаются locale зависимыми. Проблема состоит в том, чтобы переводить сообщения от Английского языка на Русского (и другие языки, конечно если захотите). В общем, что следует сделать: вы должны получить специальный <tt/.po/ файл, состоящий из Английских сообщений для неких утилит, и связать каждое сообщение с его эквивалентом на русском. В конечном счете, это заставит говорить систему Русский, если пользователь захочет этого! Для для подробностей войдите в контакт с Ulrich Drepper (<htmlurl url="mailto:drepper@ipd.info.uni-karlsruhe.de" name="drepper@ipd.info.uni-karlsruhe.de">). <sect>Совместимость <p> <nidx>Кириллица!совместимость</nidx> Следовать стандарту это еще не все. В реальной жизни надо обеспечить еще и обратную совместимость. В нашем случае, это означает, что наши настройки не должны препятствовать созданию данных, с помощью других кодировок, отличных от стандартной. Это могут быть данные в <bf/Alt (cp866)/ или в <bf/cp1251/. Также должна быть возможность запускать русскоязычные программы из MS-DOS. В большинстве случаев (кроме HTTP), достаточно обеспечить конвертацию данных в <bf/KOI8-R/. Если мы говорим о данных с простой структурной организацией, то это просто - смотрите раздел <ref id="conversion" name="Символьная перекодировка">. Другое дело это данные с определенной структурой. В этом случае действия не так тривиальны. Я попробую описать стандартные подходы для решения этой проблемы. <sect1>MIME-based data compatibility<label id="mime"> <sect1>Совместимость данных в MIME формате<label id="mime"> <p> <nidx>Кириллица!совместимость!MIME формат</nidx> <bf/MIME/ формат - стандартное архитектурно независимое представление данных. Первоначально это представление данных было разработано для письменных сообщений, а сейчас его используют и в других местах. Стандарт MIME определяет формат, который открыт для расширений и позволяет поддержку и работу со специфическими данными. Например, если я послал письмо, содержащее <bf/MIME объект/ <tt>video/mpeg</tt> типа (MPEG файлы), моя программа приема электронных сообщений автоматически декодирует его и запустит MPEG проигрыватель. Большинство UNIX программ, предлагающих MIME сервис, для этих целей используют пакет <tt/metamail/, который содержит набор утилит и файлов данных для работы с объектами MIME. Несколько файлов конфигурации (<tt>/etc/mailcap</tt> - для системной настройки и <tt>~/.mailcap</tt> - для пользовательской настройки) определяют директивы для работы с объектами MIME различных типов. Поэтому, если вы получили поток MIME данных, содержащий текст в одной из устаревших кодировок, вы можете определить соответствующие MIME-директивы для конвертации такого текста в KOI8. Ниже перечислены MIME-законы, которые описывают правила работы с обычными текстами и текстами в richtext формате, использующих не особенно нужные (устаревшие) кодировки, описанные выше. Вы можете вставить эти директивы в один из файлов конфигурации MIME. Обратите внимание: Эти директивы используют пакет <tt/translit/, для того, чтобы производить само преобразование. Для более полной информации об этой программе и для информации по перекодировки смотрите раздел <ref id="conversion" name="Символьная перекодировка">. <verb> text/plain; translit -t cp1251-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = cp1251; copiousoutput text/richtext; translit -t cp1251-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = cp1251; copiousoutput text/plain; translit -t alt-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = cp866; copiousoutput text/richtext; translit -t alt-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = cp866; copiousoutput text/plain; translit -t alt-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = alt; copiousoutput text/richtext; translit -t alt-koi8.rus < %s; test=test \ "`echo %{charset} | tr '[A-Z]' '[a-z]'`" = alt; copiousoutput </verb> Достаточно, это работает только в случае обычного текст. Бинарные файлы данных должны сами отрабатывать данные в различных кодировках (По крайней мере, это должны делать программы, создавшие их). Поэтому если вы послали файл Microsoft Word в кодировке <bf/cp1251/, то с этим должна разобраться программа, в которой вы читаете этот текст (Например M$ Word или Applix Words). К несчастью действительная ситуация далека от идеала. Много программных продуктов имеют собственные идеи по поводу того, как использовать MIME. До недавнего времени Microsoft Mail использовал испорченный механизм работы с MIME. Хотя и Netscape Navigator/Communicator клиент отправки/приема сообщений известен тем, что шлет текст письма в <bf/cp1251/, а его заголовок в <em/charset=koi8-r/ кодировки и наоборот. <sect1>Символьная перекодировка<label id="conversion"> <p> <nidx>Cyrillic!compatibility!character conversion</nidx> В Internet можно найти множество программ, перекодирующих кириллические тексты. Каждая из них имеет свою изюминку и отличается степенью поддержки кириллицы. С моей точки зрения утилиты должны быть стандартными. В нашем, частном, случае такой "стандартной" утилитой является <tt/GNU recode/. К несчастью версия, которая "обитает" на официальном GNU сайте (3.4) пока не поддерживает кириллицу (только <bf/ISO-8859-5/). Я сделал набор таблиц перекодировки для <bf/KOI8-R/, <bf/Alt/, и <bf/cp1251/ и послал их <tt/recode/ - координатору. Он обещал обеспечить поддержку кириллицы в следующем релизе программы. Как только это случится, то я перепишу этот параграф, для того чтобы рекомендовать <tt/GNU recode/, как стандартную утилиту перекодировки для кириллицы. Тем временем, я пока рекомендую пакет <htmlurl url="ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z" name="translit">. Он поддерживает много популярных кодировок и даже способен создавать TeX файлы (см. раздел <ref id="tex">) на русском языке. Кроме того, для пользователей RedHat существует RPMка - <htmlurl url="ftp://ftp.redhat.com/pub/contrib/i386/translit-1.03-1.i386.rpm" name="RPM package">. Для других программ преобразования - загляните на страничку <htmlurl url="http://www.siber.com/sib/russify/" name="SovInformBureau"> или на <htmlurl url="ftp://ftp.funet.fi/pub/culture/russian/comp/converters/" name="ftp.funet.fi">. Вы даже можете использовать специальную моду для <tt/emacs/ (Смотрите раздел <ref id="emacs" name="Emacs и XEmacs">). <sect1>Кириллические имена файлов в файловой системе M$ Windows<label id="win_fs"> <p> <nidx>Кириллицы!Файловая система M$ Windows</nidx> Windows имеет возможность давать имена файлов в кодировке Unicode, поэтому пользователи могут давать осмысленные имена своим файлам. Linux, однако не дает полной поддержки для Unicode, поэтому если вы монтируете диск Windows <em/VFAT/, то вы увидите что подобные имена состоят из вопросительных знаков и прочего мусора. Здесь указан путь как получить правильное преобразование: <enum> <item>Убедитесь, что ваше ядро скомпилирована с поддержкой codepage (в частности с поддержкой кодовых страниц 866 и KOI8-R) <item>Добавьте следующие опции при выполнении mount команды <tt/mount/: <verb> codepage=866,iocharset=koi8-r </verb> </enum> Для подробностей смотрите <tt>Documentation/filesystems/vfat.txt</tt> в исходниках ядра Linux. <sect1>Поддержка кириллицы в DOS эмуляторе<label id="dosemu"> <p> <nidx>Кириллица!DOS эмулятор</nidx> Это, видимо, единственный программный продукт, которые требует присутствия <tt/Alt/ кодировки. Основанием является то, что <tt/Alt/- это родная кириллическая кодовая страница DOS. Большинство программ, работающих в DOS с кириллицей ориентированы на <tt/Alt/. Для консольной версии (<tt/dos/) вы должны загрузить только клавиатуру и экранный драйвер. Большинство драйверов DOS будет прекрасно работать. Я лично использую <tt/rk/ драйвер А. Страхова, который работает и для консоли, и X версии <tt/dosemu/. Другая альтернатива это <tt/r/ драйвер Вадима Курлянда. Он прекрасно настраивается и поддерживает много кодировок в том числе, <tt/Alt/ и <tt/KOI8/. Однако он не будет работать для X Windows (по крайней мере версия 1.14, которую я использую, (Примечание переводчика: сейчас есть версия 2.0 этого драйвера и его развитие прекращено). Оба русификатора можно найти на большинстве Российских Internet архивах, например на <url url="ftp://ftp.kiae.su/pub/cyrillic/msdos" name="ftp архиве Курчатовского Института Ядерной Физики">. Для Xовых версии <tt/dosemu/ вы должны установить соответствующий X шрифт. Алексей Богданов прислал мне такой шрифт по электронной почте. Это - родной шрифт <tt/vga/ из дистрибутива <tt/dosemu/, измененный для <tt/Alt/ кодировки. К сожалению я не знаю, кто автор этого шрифта и где его официальная страничка. Я помещу этот шрифт в мой каталог на <htmlurl url="!!!" name="авторской страничке"> Для установки шрифтов для <tt/dosemu/ вы должны To setup the font for <tt/dosemu/ you should <itemize> <item>Сделайте этот шрифт доступным X. серверу, как это сделать описано в <ref id="xfonts" name="Настройка шрифтов X Windows">. <item>Прикрутитe этот шрифт к <tt/dosemu/. Если шрифт только заменяет первоначальный шрифт <tt/vga/, то он будет опознан по умолчанию. Иначе, вы должны описать его в <tt>/etc/dosemu.conf</tt>:: <verb> # Font to use (without filename extensions). For example: X { updatefreq 8 title "MS DOS" icon_name "xdos" font "vga-alt"} </verb> </itemize> И в заключение, вы должны загрузить драйвер клавиатуры. Обратите внимание, вам не нужны экранные драйверы в X окне. Не все драйверы будут работать, но по крайней мере два из них будут: <tt/rk/ А. Страхова, и <tt/cyrkeyb/ Pete Kvitek. <sect>Библиография<label id="bibliography"> <p> <nidx>Кириллица!библиография</nidx> <enum> <item>Андрей Чернов. <url url="http://www.nagual.pp.ru/~ache/koi8.html" name="KOI-8">. KOI-8 информация и настройка.<label id="Chernov1"> <item>Ulrich Drepper. <url url="http://i44www.info.uni-karlsruhe.de/~drepper/conf96/paper.html" name="Интернационализация в проекте GNU">. Полное описание подхода GNU к делу i18n. <item>Michael Karl Gschwind. <url url="http://www.vlsivie.tuwien.ac.at/mike/i18n.html" name="Интернационализация">. Различные ссылки по теме i18n. <item>Сергей Наумов. <url url="http://sunsite.oit.unc.edu/sergei/Software/Software.html" name="Информация о кириллическом программном обеспечении">. Информация р настройке кириллицы.<label id="Naumov1"> <item>The Open Group <url url="http://www.UNIX-systems.org/online.html" name="Single UNIX specification">.<label id="SingleUnix"> <item>RFC 1489 <url url="file://ds.internic.net/rfc/rfc1489.txt" name="RFC 1489"> <item>Alec Voropay. <url url="http://www.sensi.org/~alec/locale" name="Интернационализация. Что это?">. Использование locale на русском.<label id="Voropay1"> </enum> <sect>Полезные ссылки<label id="resources"> <p> <nidx>Кириллица!ссылки</nidx> <url url="http://!!!" name="Авторская домашняя страничка"><label id="homepage"> <url url="http://www-inf.enst.fr/~demaille/a2ps.html" name="Страничка a2ps"><label id="a2ps"> <url url="http://www.linux.org" name="Общая информация по Linux"> <url url="ftp://ftp.ccl.net/pub/central\_eastern\_europe/russian" name="Collection of Cyrillic resources"> Если у вас проблемы с обратными слэшами - просто, удалите их. <url url="ftp://ftp.kiae.su/pub/cyrillic/" name="Cyrillic resources at KIAE"> <url url="ftp://ftp.relcom.ru/pub/cyrillic/" name="Cyrillic resources at RELCOM"> <url url="ftp://ftp.funet.fi/pub/culture/russian/comp/" name="Cyrillic resources at FUNET"> <url url="http://www.cronyx.ru" name="Cronyx"> - создатели кириллических шрифтов для X Window. <url url="ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts" name="Русские шрифты для Ghostscript и StarOffice"> <url url="ftp://ftp.kiae.su/pub/cyrillic/x11/fonts/xrus-2.1.1-src.tgz" name="Русские шрифты для X"> <url url="http://www.kiarchive.ru/pub/cyrillic/x11/fonts/winfonts4X.tar.gz" name="Русские X шрифты в cp1251 (Windows) кодировке"> <url url="http://www.cs.wisc.edu/~ghost/index.html" name="Ghostscript"> <url url="ftp://ftp.gnu.org/pub/gnu" name="GNU enscript"> <url url="ftp://ftp.redhat.com/pub/contrib" name="RedHat user-contributed packages"><label id="rh-contrib"> <htmlurl url="news:relcom.fido.ru.linux" name="relcom.fido.ru.linux"> newsgoup. <htmlurl url="news:relcom.fido.ru.unix" name="relcom.fido.ru.unix"> newsgoup. <url url="http://www.ispras.ru/~knizhnik" name="Русский словарь для GNU ispell"> <url url="http://www.siber.com/sib/russify/" name="SovInformBureau"> <url url="ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/" name="teTeX пакет русификации"> <url url="ftp://sunsite.unc.edu/pub/Linux/system/keyboards/" name="Пакет kbd для Linux"> <url url="http://www.math.uga.edu/~valery/russian.el" name="Пакет russian.el для emacs"> <url url="ftp://192.148.249.121/pub/central\_eastern\_europe/russian/translit/translit.tar.Z" name="Пакет translit"> Если у вас проблемы с обратными слэшами - просто, удалите их. <url url="ftp://ftp.relcom.ru/pub/x11/cyrillic/" name="Пакет xruskb"> <url url="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software" name="Полезные кириллические пакеты"> <url url="http://www.xfree86.org" name="XFree86 FTP site"> </article> <!-- Local Variables: compile-command: "sgmlcheck Cyrillic-HOWTO.sgml" End: --> <!-- end of $Source: /home/abel/cvs/doc/Cyrillic-HOWTO/Cyrillic-HOWTO.sgml,v $ -->