Строго говоря, абсолютно не обязательно настраивать серверы шрифтов для использования шрифтов TrueType с X-серверами. Если вы хотите использовать статические файлы, вместо сервера шрифтов, то смотрите инструкции по настройке использования шрифтов TrueType в ghostscript.
С этого момента, я предполагаю, что у вас имеется работающий файл /etc/X11/XF86Config, загружающий шрифты из четко определенных в разделе FontPath каталогов. Мы его исправим таким образом, чтобы он использовал сервер шрифтов xfs.
Установка XFS
Если вы еще этого не сделали, установите пакет main/binary-*/x11/xfs_*.deb.
Настройка XFS
Откройте файл /etc/X11/xfs/config и измените опцию catalogue так, чтобы она соответствовала секции FontList из файла /etc/X11/XF86Config. Вам также, возможно, надо будет изменить значение опции default-resolutions.
/etc/X11/xfs/config
# paths to search for fonts catalogue = /usr/X11R6/lib/X11/fonts/100dpi/:unscaled, /usr/X11R6/lib/X11/fonts/75dpi/:unscaled, /usr/X11R6/lib/X11/fonts/misc/, /usr/X11R6/lib/X11/fonts/Speedo/, /usr/X11R6/lib/X11/fonts/Type1/, /usr/X11R6/lib/X11/fonts/100dpi/, /usr/X11R6/lib/X11/fonts/75dpi/ # x1,y1,x2,y2,... default-resolutions = 100,100,75,75 |
Перезапуск XFS
Перезапуск XFS обычным для Debian образом:
root shell
# /etc/init.d/xfs restart |
Проверка работы XFS
Перед тем, как мы начнем исправлять файл XF86Config, необходимо проверить работоспособность сервера xfs. Для этого мы выведем на экран список доступных через него шрифтов:
user shell
$ fslsfonts -server unix/:7100 -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 .... |
Исправление /etc/X11/XF86Config
Теперь мы готовы указать X-серверу использовать сервер шрифтов xfs. Оставим путь к одному каталогу со шрифтами на тот случай, если у нас возникнут проблемы с xfs. (Оставляем каталог "misc". потому что в нем содержится шрифт fixed, который используется в X по умолчанию.)
/etc/X11/XF86Config
Section "Files" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection |
Перезапуск X
Перезапустите X командой startx, в случае, если вы не любите острые ощущения. Если любите - то трижды назовите имя компании, которая вас застраховала на большую сумму, и затем, скрестив пальцы, перезапустите xdm.
Проверка работоспособности шрифтов XFS
Как только у нас загрузился сеанс работы X, мы можем проверить, видит ли наш сервер шрифты xfs, выведя список шрифтов экран командой:
user shell
$ xlsfonts -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 .... |
К этому моменту, я предполагаю, что вы имеете работающий сервер шрифтов xfs и хотите установить поддержку шрифтов TrueType при помощи xfstt.
Установка XFSTT
Установите main/binary-*/x11/xfstt_*.deb, если вы еще этого не сделали.
Установка шрифтов TrueType
Скопируйте ваши шрифты TrueType в каталог /usr/share/fonts/truetype. Эти файлы обычно имеют расширение .ttf, и на них должны быть установлены права с маской 0444.
Перезапуск сервера шрифтов XFSTT
Перезапустите сервер xfstt с опцией force-reload flag
root shell
# /etc/init.d/xfstt force-reload |
Проверка работы XFSTT
Перед тем, как мы изменим файл XF86Config необходимо проверить, работает ли вообще сервер xfstt.
Важно: Сервер xfstt в дистрибутиве Debian использует порт 7101, вместо 7100. Права на его использование установлены по умолчанию так, что этот запрос доступен только root-у.
user and root shells
$ fslsfonts -server unix/:7101 _FSTransSocketUNIXConnect: Can't connect: errno = 111 fslsfonts: unable to open server "unix/:7101" # fslsfonts -server unix/:7101 -ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1 |
Включение в /etc/X11/XF86Config использования xfstt
Теперь мы готовы к тому, чтобы указать X-серверу использовать сервер шрифтов xfstt. Мы хотим, чтобы шрифты TrueType имели наибольший приоритет.
/etc/X11/XF86Config
Section "Files" FontPath "unix/:7101" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection |
Проверка работы шрифтов сервера XFSTT
Как только у нас загрузился сеанс работы X, мы можем проверить, видит ли наш сервер шрифты TrueType, выведя их список на экран командой:
$ xlsfonts | grep ttf -ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1 .... |
С этого момента у вас появилась возможность использовать шрифты TrueType в различных приложениях, например, GIMP, Netscape или StarOffice. Так как у шрифтов TrueType ширина нефиксирована, то вам наверно не стоит использовать их в xterm - эти программы выделяют под символы фиксированное пространство, равное размеру самого большого символа.
Установить новые шрифты TrueType очень просто, если вы используете сервер шрифтов xfstt:
Скопируйте новые шрифты в каталог /usr/share/fonts/truetype/
Перезапустите xfs командой /etc/init.d/xfs restart
xfstt имеет возможность генерировать различные кодовые страницы шрифтов в том случае, если в шрифте TrueType содержатся соответствующие образы символов. Чтобы разрешить использование кодовых страниц, отличных от iso8859-1/unicode-1, вы должны вручную исправить скрипт /etc/init.d/xfstt:
/etc/init.d/xfstt
- start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --daemon + start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --encoding iso8859-1,koi8-r,windows-1252,symbol-0 \ --daemon |
В Debian 2.1 распознаются следующие кодовые таблицы:
iso8859-1 (Latin 1 - Западная Европа)
iso8859-2 (Latin 2 - Центральная и Восточная европа)
iso8859-3 (Latin 3 - Эсперанто и Мальтийский)
iso8859-4 (Latin 4 - заменена Latin 6)
iso8859-5 (Кириллица)
iso8859-6 (Арабский)
iso8859-7 (Греческий)
iso8859-8 (Иврит)
iso8859-9 (Latin 5 - Latin 1 с турецким вместо Исландского)
iso8859-10 (Latin 6 - Северные языки, заменяют Latin 4)
koi8-r (Кириллица)
windows-1250 (Центральная Европа)
windows-1251 (Кириллица)
windows-1252
windows-1253 (Греческий)
windows-1254
windows-1255
windows-1256
windows-1257
symbol-0
wingding-0
wingreek-0
cp-437 (различные кодовые страницы IBM)
cp-737
cp-850
cp-851
cp-852
cp-853
cp-855
cp-857
cp-860
cp-861
cp-862
cp-863
cp-864
cp-865
cp-866
cp-869
cp-895
atari-st
unicode-2
Первые 128 символов в страницах iso8859-x - это всегда ASCII. Страницы windows- расширяют и дополняют iso8859-1 дополнительными символами, например "умными кавычками." (Так как этих расширений нет в iso8859-1, то они обычно бывают представлены вопросительными знаками.)
Чтобы более подробно узнать о кодовых страницах символов, читайте:
Я использовал в вышеприведенных примерах гнезда Unix, но стандартные пакеты в Debian настроены так, что xfs и xfstt слушают порты 7100 и 7101, так же и по TCP/IP. Доступ к этим портам должен контролироваться полем trusted-clients в файле /etc/X11/xfs/config, но эта опция все еще не реализована в XFree86 версии 3.3.2.3a.
Это означает, что кто угодно, когда угодно, может подключиться к вашему серверу шрифтов. Так как xfs (и, скорее всего, xfstt), по-видимому, поддерживают большое количество пользователей, то против подобных систем может быть применена стандартная форма атаки "отказ в предоставлении сервиса". Использовать серверы шрифтов по телефонным линиям, наверно, достаточно безопасно (так как вы в реальном режиме времени решаете проблемы), но пользователи DSL и кабельных модемов должны использовать firewall.