faqs.org.ru

 Главная > Операционные системы > Семейство UNIX >

Установка русских шрифтов в UNIX

* From : Marat Khakimov, 2:5020/1101.19 (23 Dec 98)
* Subj : Русские Type1 шрифты: HOWTO

Некоторое время назад я озадачился проблемой получения нормально масштабируемых
русских шрифтов для *nix. При этом проблема сохранения копирайта меня пока не
напрягает. Собственно, получилось :)
Что я делал:

1.
   a)
   Скачал пакет русских шрифтов для ghostscript под названием
   gs-type1_koi8_fonts.tgz ("здоровые") - не помню откуда :) Вроде бы "это"
   есть на ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/Type1.koi8-r.tgz
   (не проверял).

   b)
   Список шрифтов такой (каждый шрифт содержит pfm и pfb файлы):
   timesi8    couri8    cokoi8n   ariali8
   timesbi8   courbi8   cokoi8i   arialbi8
   timesbd8   courbd8   cokoi8bi  arialbd8
   times8     cour8     cokoi8b   arial8

   c)
   Их вообще-то можно и не ставить. Однако они необходимы для правильной
   конвертации {пункт 3}.

2. Установка шрифтов Type1 под Х-ами:

   a)
   Все нижеследующее нужно делать "рутом":
   mkdir /usr/X11R6/lib/X11/fonts/cyrillic/Type1/koi8
   cd /usr/X11R6/lib/X11/fonts/cyrillic/Type1/koi8
   tar xvfz ~/temp/gs-type1_koi8_fonts.tgz

   b)
   "Прописывать" шрифты Type1 мне пришлось руками, так как мой mkfontdir
   (RH 5.0) этого делать не захотел.
   Название шрифта:
-fndry-fmly-wght-slant-sWdth-adstyl-pxlsz-ptSz-resx-resy-sp-avgWdth-rgstry-encdng

   fndry - Foundry - производитель шрифта (paragraph, adobe, monotype);
   fmly - Family - название шрифтового семейства (Arial, Impress, Bodoni)
   wght - Weight - "насыщенность" ? (black, bold, demibold, medium, regular,
        light);
   slant - Slant - "наклон" (r - regular, i - italic);
   sWdth - ? - "разреженность" ? (normal, semicondensed, condensed);
   adstyl - ? - наличие "засечек" ? (sans - без "засечек" ?)
   pxlsz - размер в пикселах;
   ptSz - размер в американских типографских пунктах ?;
   resx - "растянутость" шрифта по горизонтали;
   resy - "растянутость" шрифта по вертикали;
   sp - spacing ? - ? (c, m, p);
   avgWdth - ?;
   rgstry - registry - ? (koi8, iso8859);
   encdng - encoding - кодировка (1, 5, r).

   с)
   "Пропишем" шрифты в fonts.dir:
   --- start fonts.dir ---
   16
   arial8.pfb -monotype-arial-medium-r-normal--0-0-0-0-p-0-koi8-r
   arialbd8.pfb -monotype-arial-bold-r-normal--0-0-0-0-p-0-koi8-r
   arialbi8.pfb -monotype-arial-bold-i-normal--0-0-0-0-p-0-koi8-r
   ariali8.pfb -monotype-arial-medium-i-normal--0-0-0-0-p-0-koi8-r
   cokoi8b.pfb -ares-erkurier-bold-r-normal--0-0-0-0-p-0-koi8-r
   cokoi8bi.pfb -ares-erkurier-bold-i-normal--0-0-0-0-p-0-koi8-r
   cokoi8i.pfb -ares-erkurier-medium-i-normal--0-0-0-0-p-0-koi8-r
   cokoi8n.pfb -ares-erkurier-medium-r-normal--0-0-0-0-p-0-koi8-r
   cour8.pfb -ares-courier-medium-r-normal--0-0-0-0-p-0-koi8-r
   courbd8.pfb -ares-courier-bold-r-normal--0-0-0-0-p-0-koi8-r
   courbi8.pfb -ares-courier-bold-i-normal--0-0-0-0-p-0-koi8-r
   couri8.pfb -ares-courier-medium-i-normal--0-0-0-0-p-0-koi8-r
   times8.pfb -ares-times-medium-r-normal--0-0-0-0-p-0-koi8-r
   timesbd8.pfb -ares-times-bold-r-normal--0-0-0-0-p-0-koi8-r
   timesbi8.pfb -ares-times-bold-i-normal--0-0-0-0-p-0-koi8-r
   timesi8.pfb -ares-times-medium-i-normal--0-0-0-0-p-0-koi8-r
   --- end fonts.dir ---
   В первой строчке общее количество шрифтов в директории.

   d)
   cp fonts.dir fonts.scale
   На часто используемые шрифты можно создать алиасы в файле fonts.alias:
   --- start fonts.alias ---
   pengvin -ares-pengvin-bold-r-normal--0-0-0-0-p-0-win1251-r
   --- end fonts.alias ---

   e)
   xset +fp `pwd`
   xlsfonts | grep koi
   Если установленные шрифты видны, то xfontsel должен нормально показать
   русские буквы.

   f)
   Какие же они страшные!

   g)
   Имеется несколько мнений о том, где именно нужно прописывать инициализацию
   шрифтов при старте Х. Одни предпочитают /etc/X11/XF86Config (это во
   фрюниксах), другие .xinitrc или .xsession. Кто-то запускает фонт-сервер.

3. Как преобразовать другие шрифты формата TrueType или Type1 в
   кодировке win1251 к идеологически правильному виду (Type1 koi8-r):

   Я позаимствовал у знакомого диск "лучшие программы для windows" :) от
   classic-fond. Оттуда взял Font Monger for Windows 1.0.7 и "100 русских
   postscript шрифтов" ("больные"), примерно треть из которых вообще не
   имела ни одного русского символа. Требуется произвести предварительную
   чистку.

   Почему нельзя сразу сбросить "больных" в шрифтовую директорию *nix,
   сделать для них fonts.dir fonts.scale и насладиться win1251? Не
   знаю :). Я пробовал так делать, но при таком подходе русские символы не
   отображаются в xfontsel, а xfd пишет, что они имеют размер 0 - это
   не хорошо.

   Чтобы вылечить "больных", нужно одновременно открыть в Font Monger
   два окна: одно с каким-нибудь "здоровым" шрифтом из поставки
   gs-type1_koi8_fonts.tgz {пункт 1} (к примеру, arial8.pfb), а другое с
   "больным" (bub.pfb или какой-нибудь TrueType).

   Отдельные символы и группы символов из "больного" с помощью copy/paste
   друг за другом переносим в "здоровый" - на правильные позиции (если,
   конечно, хотим получить именно koi8, а не win1251 :). Сохраняем "здоровый"
   шрифт под другим названием и подключаем его под *nix.

   Voila!

   В рисовальных программах, поддерживающих сглаживание граней, такие
   конвертированные шрифты смотрятся очень даже ничего.

   К сожалению, мне некуда закинуть получившиеся *pfb :(

P.S. 2 All: А есть ли в X поддержка шрифтов PostScript Multiple-Master?

P.P.S. 2 Moderator: Прошу прощения, что получилось _так_ много :)

:), Marat.

Вернуться в раздел "Семейство UNIX" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь

© faqs.org.ru