Итак, начнем. Имеется два принципиально разных вида фонтов - с фиксированными размерами и масштабируемые. У фонтов с фиксированными размерами для каждого размера фонта в явном виде присутствует в файле рисунок каждой буквы. У масштабируемых фонтов имеется опсание символов и по этому описанию фонт-сервер строит символы нужной величины. Широко распространены два вида масштабируемых фонтов - для мира Юникс фонты Type 1, для Windows - True Type Fonts (фонты ttf).
В чем же проблема? Проблема в том, что можно найти не так уж много фонтов Type 1, особенно фонтов с русскими символами и в тоже время, почти на каждом компьютере есть набор хороших ttf фонтов для Windows. Но X сервер (программа в Xwindow, ответственная за вывод на экран, не умеет рисовать ttf фонты.
Есть несколько проектов, по включению сервера ttf фонтов в состав Xfree86, но они пока в сыром виде. Зато в Xwindow имеется возможность использовать дополнительную программу для вывода ttf фонтов.
Вот этим и занимается xfstt.
2. Где взять xfstt
Пакет xfstt есть в дистрибутиве Debian 2.0, но версия - 0.9.7-1. А начиная с версии
0.9.8, можно использовать юникодовые фонты, причем xfstt осуществляет маппирование
нужных символов в первые 255 коды. Поэтому лучше взять более позднюю версию, ее
можно, например скачать по фтп с сансайта:
ftp://sunsite.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.9.tgz
3. Компиляция и установка
Компилируем и устанавливаем как обычно:
tar -xvzf Xfstt-0.9.9.tgz
cd xfstt099/
make
make install
По этой команде будут выполнены следующие действия:
xfstt --sync
По этой команде xfstt узнает о фонтах, которые он будет использовать.
Глядя на эту последовательность, можно установить xfstt так, как вы считаете нужным. Я, например, устанавливаю xfstt в /usr/local/bin, xfstt.1x (ман страницу) в /usr/local/man/man1. Создаю директорий /usr/ttfonts, копирую в него файлы arial, courier и tmes и запускаю
xfstt --sync
4. Тестирование, запуск и работа
4.1. Тестирование
Чтобы протестировать работает ли вновь установленный xfstt, FAQ рекомендует
следующую последовательность действий:
xfstt & xset fp+ unix/:7100 xlsfonts xcoral -fn "TTM20_Times New Roman" xfontsel -pattern "-*-*-*-*-*-tt-*-*-*-*-*-*-*-*" xset -fp unix/:7100
Если у Вас не установлен xcoral, можете этот пункт пропустить, а просто посмотреть, в xfontsel появились ли ttf фонты. Я для проверки использую следующую команду:
xlsfonts -fn *-ttf-*
При этом показываются только ttf фонты. Посмотреть символы можно например при помощи xfontsel.
Для запуска тоже возможно несколько вариантов:
4.2. Запуск с изменением Fontpath
При этом способе вы добавляете в файл XF86Config в конце раздела путей фонтов
строку:
Fontpath "unix/:7100"
Теперь Вы должны запустить xfstt за несколько секунд до старта Xserver, например:
xfstt & ;sleep 2s;xdm
Способ хорош, есть только один недостаток, если Вы по какой-либо причине не
запустите xfstt перед запуском Xserver, то и Xserver у Вас стартовать не сможет.
4.3. Запуск из-под X
Можно запустить xfstt из-под X:
xfstt &
а затем выполнить команду:
xset fp+ unix/:7100
Недостаток в том, что при таком запуске X начинают иногда замирать на пару секунд.
4.4. Комбинированный способ
Я остановился на комбинированном способе:
Сначала запускаю
xfstt &
через две секунды Xwindows и затем из под Xwindows подключаю новые фонты командой
xset +fp unix/:7100.
Автоматизировано это следующим образом: Из скрипта xx запускается xfstt, затем Xwindows, после выхода из Xwindows xfstt выключается:
#!/bin/sh xfstt --dir /var/ttfonts --encoding koi8-r,windows-1251,iso8859-1 & echo;echo Xfstt turned on
Скрипт запускаю в фоновом режиме:
xx &
После этого, из скрипта $HOME/.xsession подключаются новые фонты командой xset +fp unix/:7100.
Вот мой $HOME/.xsession:
#!/bin/sh xset +fp unix/:7100 exec fvwm2
5. Xfstt и различные кодировки
Согласно мануалу, xfstt поддерживает различные кодировки. Нас,
естественно интересуют русские кодировки. Из русских
поддерживаются три: koi8-r, cp1251 и ISO8859-5. Для использования надо
запустить xfstt например командой:
xfstt --encoding koi8-r,windows-1251&
Но, конечно, чтобы иметь русские буквы, необходимо ttf фонты с русскими буквами. Причем xfstt понимает фонты от Windows 95. Подав вышеприведенную команду, а затем:
xlsfonts -fn *-ttf-*
Вы увидите что-нибудь вроде:
-ttf-arial-bold-i-normal-tt-0-0-0-0-p-0-koi8-r -ttf-arial-bold-i-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-arial-bold-r-normal-tt-0-0-0-0-p-0-koi8-r -ttf-arial-bold-r-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-arial-medium-i-normal-tt-0-0-0-0-p-0-koi8-r -ttf-arial-medium-i-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-arial-medium-r-normal-tt-0-0-0-0-p-0-koi8-r -ttf-arial-medium-r-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-times new roman-bold-i-normal-tt-0-0-0-0-p-0-koi8-r -ttf-times new roman-bold-i-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-times new roman-bold-r-normal-tt-0-0-0-0-p-0-koi8-r -ttf-times new roman-bold-r-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-times new roman-medium-i-normal-tt-0-0-0-0-p-0-koi8-r -ttf-times new roman-medium-i-normal-tt-0-0-0-0-p-0-windows-1251 -ttf-times new roman-medium-r-normal-tt-0-0-0-0-p-0-koi8-r -ttf-times new roman-medium-r-normal-tt-0-0-0-0-p-0-windows-1251
Теперь Вы можете пользоваться всеми этими фонтами.
6. Проблемы
Евгений Казанов
evgeny@dkd.ot.lt