_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _
From : Marat Khakimov 2:5020/1101.19 23 Dec 98 17:43:38
Subj : Русские Type1 шрифты: HOWTO
________________________________________________________________________________
Hекоторое время назад я озадачился проблемой получения нормально масштабируемых
русских шрифтов для *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) этого делать не захотел.
Hазвание шрифта:
-fndry-fmly-wght-slant-sWdth-adstyl-pxlsz-ptSz-resx-resy-sp-avgWdth-rgstry-encd
ng
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
Hа часто используемые шрифты можно создать алиасы в файле 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? Hе
знаю :). Я пробовал так делать, но при таком подходе русские символы не
отображаются в 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: Прошу прощения, что получилось _так_ много :)