]> www.wagner.pp.ru Git - sites/home_page.git/blob - software/unix/consile-cyr.html
fixed broken geography/fGIS/tclext.html
[sites/home_page.git] / software / unix / consile-cyr.html
1 <HTML><HEAD>
2 <META HTTP-EQUIV="Content-Type" "text/html; charset=utf-8">
3 <TITLE>Console-Tools-Cyrillic</TITLE>
4 <META NAME="description" CONTENT="Collection of fonts and keymaps for
5 Linux console and DOSEMU">
6 </HEAD><BODY>
7 <H1>Console tools cyrillic</H1>
8
9 When I've switched (in 1999) to Debian Linux, I've noticed that console
10 tools package lacks proper cyrillic support.
11 <p>
12 So, I've started to collect fonts and keyboard layouts. There are lot of
13 people who contributed: Cyril Slobin wrote set of C preprocessor macros
14 to generate keyboard layout, wich insure that no special key would be
15 unmapped in cyrillic mode, Vadim Zhytnikoc contributed set of Unicyr
16 fonts, which can be used with any cyrillic encoding, Anton Zinoviev
17 created and maintains debian console-cyrillic package.
18 <p>
19 You can download latest version of the package from 
20 <a
21 href="http://ftp.wagner.pp.ru/pub/fonts/linux/console-tools-cyrillic-0.9.tar.gz">my ftp site</a>.
22 <p>
23 Package also includes script to convert console font into X font, which
24 can be used in Dosemu.
25
26 <h1>README от пакета</H1>
27
28 Этот пакет содержит кириллические консольные шрифты
29 и таблицы перекодировки для Linux, а также раскладки клавиатуры и прочие
30 полезные вещи.
31
32 <h2>ЭКРАННЫЕ ШРИФТЫ</h2>
33 <p>
34 Шрифты рассчитаны на использование утилиты consolechars
35 (пакет  console-tools из Debian), впрочем с последними kbd они тоже
36 будут работать.
37 </p><p>
38 Все шрифты сделаны на базе альтернативной кодировки (cp866). Почему?
39 Потому что использование любой другой кодировки русских букв в качестве
40 физической в текстовом режиме VGA приводит к тому, что горизонтальная
41 псевдографика получается с разрывами. Это аппаратное свойство VGA,
42 которое никак не лечится. Единственный выход - использовать шрифты, в
43 которых псевдографика расположена на тех же позициях, что и в cp437.
44 </p><p>
45 Поскольку шрифты этого пакета содержат в себе unicode mapping, сочетание
46 их с Application character map позволит добиться любой требуемой
47 кодировки на консоли. Например:
48 </p><pre>
49 consolechars -f 866_8x16.psf -m koi8-r.acm 
50 </pre>
51 <p>
52 В пакет входят четыре комплекта шрифтов (каталог psf):
53 </p><dl>
54 <dt>UniCyr_8x*.psf<dd>Шрифты, разработанные Вадимом Житниковым. В этих
55           шрифтах есть все буквы, которые только бывают в стандартных
56           кириллических кодировках: cp866, cp1251, iso8859-5, koi8-r,
57           koi8-u, и в дополнение к ним - все символы, включая
58           псевдографику и математические символы, которые бывают в
59           koi8-r. 
60
61 <dt>alt_8x*.psf<dd>шрифты в альтернативной кодировке (сделаны из
62                  alt-8x*  из комплекта свежей kbd)
63               Набор символов в этих шрифтах в точности совпадает
64               с набором символов в кодировке koi8-r, поэтому рекомендуется
65               использовать именно их.                
66
67 <dt>Cyr_a8x*.psf<dd> - шрифты Cyr_a8x* которые были в kbd с тех пор как я его
68               впервые увидел (ядро тогда было 1.0.9)           
69               Недостаток этих шрифтов в том, что в них отсутствует
70               буква ё (CYRILLIC YO, на случай если в ваших текущих
71                 ширифтах ее тоже нет). Таблица Cyr_a.sfm, встроенная
72                 в эти шрифты, заменяет ее на e (CYRILLIC IE),
73                 что делает тексты удобочитаемыми, но все же...
74
75 <dt>866_8x*.psf<dd> Шрифты с кодовой страницей 866 (той, что используется
76              в родной русификации MS-DOS и OS/2. В ней есть буква ё
77              но зато отсутствует ряд математических символов, 
78              которые есть в кодировке koi8-r. На эти шрифты стоит
79              обратить внимание украинцам и белорусам. Добавьте только
80               koi8-u.acm или acm для той кодировки которую вы используете.
81
82 <dt>UniCyrX<dd> - Еще одна попытка запихнуть как можно больше символов разных 
83          алфавитов в один 256-символьный шрифт.
84           Dmitry Yu. Bolkhovityanov"
85                   &lt;D.Yu.Bolkhovityanov@inp.nsk.su&gt;
86
87 <dt>alt-antiq-8x16<dd> разработанный Алексеем Макаренко
88                   (прислан Евгением Осинцевым
89                                   &lt;osgene@omskelecom.ru&gt;),
90                   имеющий ту же кодировку, что и alt*, но отличающийся
91                   по начертанию;
92 <dt>alt-sans-8x16 и alt-lenta-8x16<dd> разработанные Вадимом Житниковым
93                                   и Евгением Осинцевым;
94 <dt>alt-b-8x16 и alt-c-8x16<dd> неизвестного происхождения.
95 </dl>
96 <p>
97 Все шрифты содержат в себе таблицу отображения в unicode. В виде
98 отдельных файлов эти таблицы (alt.sfm и cp866.sfm) находятся в каталоге
99 sfm.
100 </p>
101 <p>
102 Кроме того, в каталоге acm приведены таблицы перекодировки из
103 распространенных кодировок русского, белорусского, болгарского
104 и украинского языков  в unicode,
105 использование которых совместно с приведенными шрифтами позволяет 
106 настроить вашу консоль в любую требуемую кодировку кириллицы.
107 </p>
108 <p>
109 В каталоге acm вы найдете acm файлы для наиболее распространенных
110 кодировок русского языка. А также и кодировку koi8-u
111 (к сожалению я не смог достучаться до ее официального сайта www.ua.net,
112 поэтому взял определение с первого же попавшегося сайта, посвященного
113 кирилличиским кодировкам)
114 </p>
115 <h2>РАСКЛАДКИ КЛАВИАТУРЫ</h2>
116 <p>
117 В пакет включена комплект для генерации клавиатуры, основанный на идеях, 
118 предложенных Кириллом Злобиным
119 &lt;slobin@ice.ru&gt;. Он находится в каталоге keymaps. 
120 </p><p>
121 Раскладки клавиатуры получаются с помощью обработки препроцессором C
122 (/usr/bin/cpp) файла кодировки и собственно файла раскладки. При этом
123 используется еще и общий для всех раскладок файл macros.inc
124 </p><p>
125 Использование макросов для описаний клавиш позволяет существенно полнее
126 чем в большинстве распространенных раскладок определить комбинации
127 Alt-клавиша, Ctrl-клавиша и т.д., как в русском, так и в латинском
128 режимах.
129 </p><p>
130 Командой
131 </p>
132 <pre>
133 cpp cyr-russian.cpp |loadkeys
134 </pre>
135 <p>
136 вы получите раскладку клавиатуры для кодировки koi8-r
137 Для работы с любой другой кодировкой требуется указать в командной
138 строке имя соответствующего .enc файла. Например,
139 </p><pre>
140 cat cp866.enc cyr-russian.cpp|cpp | loadkeys
141 </pre>
142 <p>
143 В этой раскладке переключателем кириллического/латинского режима по
144 умолчанию является правый Control. Правый Alt - временное (на время пока
145 удерживается клавиша) переключение.
146 </p><p>
147 На Windows клавиатурах для переключения можно также использовать как
148 переключатель клавишу системного меню. Клавиша Windows служит временным
149 переключателем.
150 </p><p>
151 Эти умолчания можно изменить определив символ ALTSWITCH или WINONLY при
152 генерации раскладки.
153 </p><pre>
154 cpp -DALTSWITCH cyr-russian.cpp |loadkeys
155 </pre>
156 <p>
157 Символ ALTSWITCH меняет местами функции правого Alt и правого Control.
158 Я предпочитаю этот вариант, так как у меня правый Alt используется также
159 и в X-ах.
160 </p><p>
161 Символ WINONLY делает правые Control и ALT эквивалентными левым Control
162 и Alt, оставляя для переключения только клавиши Windows.
163 </p><p>
164 По умолчанию клавиша BackSpace генерирует символ Delete (ASCII 127)
165 (потому что так принято в Debian Linux) 
166 </p><p>
167 Изменить это умолчание можно указав -DBACKSPACE
168 </p><p>
169 В комплект входят следующие раскладки клавиатур
170 </p>
171 <table border=1 cellspacing=0>
172 <tr><th>Имя файла</th><th>Язык</th><th>Кодировка по
173 умолчанию</th><th>Автор </th></tr>
174
175 <tr><td>cyr-russian.cpp</td><td>Русский</td><td>koi8-r</td><td>Кирил Злобин</td></tr>
176 <tr><td>cyr-russian-ms.cpp </td><td>Русский (раскладка microsoft) </td><td>koi8-r</td><td>Виктор Вагнер</td></tr>
177 <tr><td>cyr-belorussian.cpp</td><td>Белорусский</td><td>cp1251</td><td>          Александр Микаэлян</td></tr>
178 <tr><td>cyr-bulgarian-bds.cpp</td><td>Болгарский</td><td>cp1251</td><td>Антон Зиновиев</td></tr>
179 <tr><td>cyr-bulgarian-phon.cpp</td><td>Болгарский (фонетическая)</td><td>cp1251</td><td>Антон Зиновиев</td></tr>
180 <tr><td>cyr-serbian.cpp</td><td>Сербский</td><td>iso8859-5</td><td>Антон Зиновиев</td></tr>
181 <tr><td>cyr-ukrainian.cpp</td><td>Украинский</td><td>koi8-u</td><td>Виктор Вагнер</td></tr>
182 <tr><td>cyr-ukrainian1.cpp</td><td>Украинский</td><td>koi8-u</td><td>Игорь Власенко</td></tr>
183 <tr><td>cyr-ukrainian-ms.cpp</td><td>Украинский</td><td>koi8-u</td><td>Игорь Власенко</td></tr>
184 <tr><td>cyr-ukrainian-ms-like1</td><td>Украинский</td><td>koi8-u</td><td>Не помню кто</td></tr>
185 <tr><td>cyr-ukrainian-ms-like2</td><td>Украинский</td><td>koi8-u</td><td>Не помню кто</td></tr>
186 </table>
187 <p>
188 Внимание - раскладка cyr-ukrainian была в свое время сделана мной
189 "щобы було" и не тестировалась. Лучше пользуюйтесь раскладками Игоря
190 Власенко. 
191 </p><p>
192 Раскладки Игоря Власенко поддерживают дополнительные флаги
193 при препросессировании. См. комментарии в самой раскладке.
194 </p><p>
195 Указанная кодировка по умолчанию - та, которая будет использована, если
196 в командной строке CPP не указать файла .enc.
197 </p><p>
198 Поддерживаются следующие кодировки:
199 MacCyrillic bulgarian-mik cp1251 cp866 iso8859-5 koi8-r koi8-u utf-8
200 </p>
201 <h2>РУСИФИКАЦИЯ DOSEMU</h2>
202 <p>
203 В каталоге x-window находится шрифт для X-window vga.bdf, который имеет
204 кодировку cp866 и позволяет работать с русским языком в xdosemu. 
205 </p>
206 <h2>СКРИПТЫ</h2>
207 <p>
208 В каталоге scripts находятся скрипты, использованные мной
209 для создания этих шрифтов и таблиц.
210 </p><p>
211 Скрипт raw2psf берет файл шрифта в формате raw и генерирует файл в
212 формате psf.  Вторым аргументом может быть указана таблица отображения
213 шрифта в unicode. Могут быть использованы либо таблицы в формате sfm
214 (текстовая разновидность) либо определения charset которые можно скачать
215 с ftp.unicode.org или взять из дистрибутива catdoc.
216 </p><p>
217 Скрипт makeacm генерирует из таблицы в одном из вышеприведенных форматов
218 файл acm. Для этого скрипта необходим модуль Unicode::String, который
219 можно взять со CPAN.
220 </p><p>
221 Скрипт dumppsf позволяет сконвертить psf-файл в некоторое текстовое
222 представление, позволяющее посмотреть на шрифт, не загружая его. 
223 Вот когда-нибудь напишу обратный конвертер и можно будет редактировать
224 консольные шрифты в vim...
225 </p><p>
226 Скрипт displayfont, написанный Кириллом Злобиным, позволяет просмотреть
227 все символы текущего шрифта на экране. Не то чтобы я его реально
228 использовал, но раз уж автор предложил...
229 </p><p>
230 Скрипт mkvgafont это shell-овский скрипт, который делает из raw-шрифта
231 для консоли шрифт для X-Window, который можно использовать в DOSEMU
232  </p><p>
233 Документация на все перловые скрипты в формате pod встроена в сами скрипты.
234 Вы можете использовать команду perldoc script для ее просмотра или
235 pod2man script для создания полноценной man-страницы.
236 </p>
237 </BODY>
238 </HTML>