Облагораживание шрифтов XFree86

Настройка X-сервера

Для того, чтобы X работал значительно лучше, надо сделать несколько простых операций.

Настраиваем параметр FontPath

Первое, что нужно посмотреть, для излечения проблем со шрифтами - это файл XF86Config. (обычное его место - /usr/X11/lib/X11/XF86Config или /etc/X11/XF86Config.) Если вы еще до сих пор не догадались, то наиболее важная часть этого файла, относящаяся к шрифтам, это секция FontPath. Пока мы не углубились в нее, нужно бросить быстрый взгляд на другие части вашей X-конфигурации. Плохие настройки монитора могут со значительно большей вероятностью вызвать сильную головную боль, чем плохие или нечитаемые шрифты. Поэтому убедитесь в том, что частота вертикальной синхронизации монитора настолько высока, насколько может позволить ваш монитор (85+ Hz это великолепно, 75 Hz - так, ничего, 60 Hz - очень болезненно.)

Используйте ваш любимый текстовый редактор, чтобы исправить файл XF86Config. Почти в самом начале файла вы увидите примерно такие строки:

FontPath        "/usr/X11R6/lib/X11/fonts/misc/"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/"

Они должны либо в точности совпадать с тем, что я здесь указал, или быть очень похожи (как для XFree86 3.x, так и для 4.x). Параметр FontPath указывает X, где найти шрифты, которые он использует для вывода текста на ваш дисплей. Порядок строк очень важен: когда Х-приложение просит Х вывести некоторый текст, то у Х-сервера обычно бывает некоторая свобода при выборе шрифта, который надо использовать. Х-сервер идет последовательно по каталогам, указанным в FontPath и использует первый попавшийся шрифт, который удовлетворяет критериям Х-клиента, и затем выводит текст на экран. Заметьте, что xfs, входящий в состав Redhat версий 6.x, использует другой способ настройки FontPath. См. раздел Разд. xfs, входящий в состав дистрибутива Redhat, в котором это описано подробнее.

Обычно, в стандартном файле конфигурации, 75dpi-шрифты идут до 100dpi-шрифтов. Если у вас хороший монитор с высоким разрешением, то это будут очень маленькие шрифты. Первая хитрость, которую вы можете испробовать - это поменять местами строки с путями к 75dpi- и 100dpi-шрифтам.

FontPath        "/usr/X11R6/lib/X11/fonts/misc/"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/"

Затем, укажите X-windows, что вы предпочитаете использование неизмененных (unscaled) bitmap-шрифтов. Если вам доводилось когда-нибудь использовать Netscape или другую программу, которая выводит заголовки с использованием больших шрифтов, то вы, наверное, заметили, что эти большие шрифты некачественны, то есть, в них просматриваются точки. Это выглядит коряво, и должно быть исправлено. Поэтому добавьте :unscaled к строчкам с misc-, 100dpi- и 75dpi-шрифтам. Вы можете использовать вместе и неизмененные и измененные шрифты, если захотите, просто поместите вначале строки FontPath с опцией "unscaled", чтобы Х-Windows знал, что вы предпочитаете использование неизмененных шрифтов, насколько это возможно.

FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath        "/usr/X11R6/lib/X11/fonts/misc"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"

После этих изменений перезагрузите Х. Ну что, рабочий стал стал лучше выглядеть?

Опции командной строки X-сервера

Следующая вещь, которую вам необходимо сделать, это настроить опции командной строки Х-сервера. Вам будет необходимо использовать опцию -dpi, которая определяет разрешение монитора в точках на дюйм. Так как в наше время многие системы используют дисплеи с высоким разрешением, то есть большие шансы, что они будут прекрасно работать с разрешением в 100 точек на дюйм (dpi).

Если вы запускаете Х с командной строки консоли, наберите $ startx -dpi 100.

Если вы используете xdm для графического входа в систему, вам, наверное, потребуется изменить ваш файл /usr/X11/lib/X11/xdm/Xservers (или, возможно, в /etc/X11/xdm/Xservers), в котором будет командная строка запуска для Х-сервера. В моем файле находится такая строчка:

 :0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6

Дополнительную информацию смотрите в руководстве по Х и Х-серверу.

Шрифты TrueType (Одна из немногих хороших вещей в Windows)

По той интересной причине, что ребята в Redmond-е значительно сильнее заботятся о внешнем виде своего программного обеспечения (чем о нормальности внутреннего содержания ;) они встроили поддержку шрифтов TrueType в Windows. Windows 9x и почти все остальные варианты Windows поставляются сейчас со шрифтами Arial, Times New Roman, и Courier New, которые являются почти полными аналогами шрифтов Helvetica, Times и Courier. Шрифты TrueType - векторные, поэтому они выглядят хорошо при больших размерах, и они прекрасно описаны, поэтому они хорошо читаются даже при очень маленьких размерах. Многие Windows-программы поставляются с дюжинами шрифтов TrueType. Не используйте пока ваш Windows CD, как горючее для микроволновой печи, сначала достаньте оттуда шрифты.

К великому сожалению, в XFree86 3.x не встроена поддержка шрифтов TrueType, поэтому вам придется самим ее добавить. Однако, эта поддержка встроена в XFree86 версий 4.x (см. раздел Разд. XFree86 версий 4.x). Это означает, что вам надо установить сервер шрифтов, поддерживающий TrueType, и, конечно, сами шрифты. Вы не найдете хороших шрифтов ни в одном дистрибутиве. Наиболее вероятная причина этого - ни один хороший качественный шрифт до сих пор не имеет подходящей для этого открытой лицензии.

Делаем шрифты TrueType доступными

Давайте начнем со шрифтов. Для этого подойдет любой шрифт TrueType, включенный в любую реализацию MS Windows. Не забудьте, что текстовые процессоры и другие программы тоже могут включать в себя свои шрифты. Шрифты MacOS для этого не подойдут. Существуют также несколько наборов "бесплатных" шрифтов, которые вы можете скачать из сети, если вы уже сожгли свой CD с Windows (см. ссылки в разделе3 Разд. Ссылки).

Для того, чтобы использовать TrueType, шрифты должны быть всегда доступны серверу шрифтов. Это означает, что они должны быть на файловой системе, которая всегда подключена. Я бы не советовал вам использовать Windows-раздел, если у вас система с двойной загрузкой. Шрифты лучше скопировать в Linux-раздел. Во-первых, станем пользователем root при помощи команды su:

 # su -
# mkdir -p /usr/local/share/fonts/ttfonts

Теперь перейдем в наш новый каталог:

  # cd  /usr/local/share/fonts/ttfonts

Затем перенесите шрифты в этот каталог, например, скопировав их из вашей Windows-системы:

 # cp /mnt/<путь_к_шрифтам>/*ttf  .

или загрузив те, которые доступны прямо в Microsoft. Эти шрифты поставляются в саморазжимающихся zip-архивах. Вы также можете установить их в linux-е (для этого возьмите те шрифты, которые предназначены для Windows 3.1):

 # ls *exe | xargs -n 1 unzip -L

Опция '-L' преобразует имена шрифтов в нижний регистр (это необходимо для того, чтобы нормально работали xfsft и xfs из Redhat). Заметьте, что текущая версия утилиты zip в Linux не работает с 32-битными архивами шрифтов для Win9x. (Также, кажется, что Microsoft на этом сайте больше не поддерживает 16-битные шрифты Arial, Courier и Times-Roman.) Вы можете скачать RPM с Веб-Шрифтами, который содержит часть TrueType шрифтов Microsoft, по этому адресу. В нем есть достаточно шрифтов для удовлетворения потребностей Netscape и других веб-обозревателей.

Затем добавьте новый каталог TrueType шрифтов к FontPath вашего X-сервера:

FontPath        "/usr/local/share/fonts/ttfonts"
FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath        "/usr/X11R6/lib/X11/fonts/misc"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"

Серверы шрифтов

Существует несколько различных версий серверов шрифтов, которые нам подойдут: xfstt, xfsft, а также подправленная Redhat версия xfs, основанная на xfsft. Несмотря на похожесть имен, это абсолютно различные программы. Скорее всего, ваш дистрибутив включает в себя один из этих пакетов, и, возможно, часть из них вы уже установили.

Раньше, серверы шрифтов использовать для передачи шрифтов по сети. В этом случае шрифты могли находиться на одной машине, и клиенты могли обращаться к ним по мере необходимости. Однако, в настоящее время разработчики встроили в них возможность вывода шрифтов (Эта возможность уже встроена в XFree86 4.x, поэтому вам не понадобится отдельный сервер шрифтов, если вам нужна лишь поддержка TrueType)

xfstt

Один из таких серверов шрифтов - xfstt. xfstt был создан специально для работы с шрифтами TrueType.

Установка

xfstt очень просто установить. Сначала, загрузите его из сети, или проверьте CD с вашим дистрибутивом. Самую свежую версию можно найти по адресу http://metalab.unc.edu/pub/Linux/X11/fonts/

После того, как вы получите архив, разархивируйте его:

 $ tar -zxvf xfstt-*tgz

Потом соберите и установите его. Прочтите файл INSTALL, в нем есть краткие инструкции, но там все достаточно просто.

Все, что вам надо сделать, это запустить команды:

 # make
# make install

Запустите xfstt, набрав

 # xfstt --sync        # обновляет базу данных шрифтов xfstt
# xfstt &             # запускает xfstt в фоновом режиме.

xfstt должен быть запущен до запуска X-сервера. После того, как это все нормально заработает, вы можете добавить эти строки в файл /etc/rc.d/rc.local, или любой другой подходящий для этого инициализационный скрип. Затем наберите:

 $ xset +fp unix/:7101     # сообщить X о xfstt.

или добавьте:

FontPath "unix/:7101"

в ваш файл XF86Config для того, чтобы сообщить X о новом шрифтовом сервисе. Запускайте команду xfstt --sync каждый раз при изменении переменной FontPath или содержимого каталога шрифтов.

Изменение размера шрифта, устанавливаемого по умолчанию

Если ваши шрифты TrueType будут слишком мелки, то вам, наверняка, помогут следующие команды.

Добавьте опцию -dpi к командной строке вашего Х-сервера (см. раздел 3, чтобы узнать как это сделать.)

Используйте ключ --res для того, чтобы указать xfstt увеличить разрешение экрана по умолчанию. Используйте следующую командную строку:

 # xfstt --res 120

xfs, входящий в состав дистрибутива Redhat

В комплект дистрибутива RedHat (начиная с версии 6.0), а также производных ему (Mandrake, и т.п.) входит специальная измененная версия пакета xfs - сервера шрифтов XFree86, а также подправленные версии X-серверов. Этот исправленный xfs включает в себя патч xfsft, который, в свою очередь, основан на библиотеке FreeType Font. Этот xfs делает практически то же самое, что и xfstt. xfs обрабатывает шрифты Truetype и Type 1, а также обычные шрифты X Window.

Если ваш дистрибутив основан на RedHat, то у вас уже должен быть установлен xfs. Если нет, то он находится в пакете XFree86-xfs*rpm. Для того, чтобы убедиться в том, что он работает в качестве стандартного сервиса, используйте ntsysv или:

 # chkconfig --add xfs

Теперь xfs будет запускаться при каждой загрузке системы.

Установка переменной FontPath для xfs

Стандартная установка xfs в RedHat работает со шрифтами через Доменные Сокеты Unix (Unix Domain Socket). Мы должны указать X-серверу, где искать xfs, а, соответственно, и шрифты. FontPath в файле /etc/X11/XF86Config должен содержать строку:

 FontPath   "unix/:-1"

Так, по крайней мере, сделано в стандартной установке. Здесь приводится ссылка на сокет, на котором находится xfs. Вы можете также включить сюда ссылки на другие каталоги, но их будет обрабатывать X-сервер, а не xfs. В стандартной установке RedHat 6.x это делается по умолчанию, но, если вы обновляете старую версию, то вам придется указать эту строку вручную!

Переменная FontPath, которую использует xfs, находится в отдельном файле /etc/X11/fs/config. В этом файле находится список каталогов со шрифтами. Он не имеет никакого отношения к FontPath в XF86Config. Вы можете либо добавить каталоги вручную, либо использовать для этого команду chkfontpath:

 # chkfontpath --add /usr/local/share/fonts/ttfonts

Переменная FontPath должна быть задана до запуска chkfontpath. Соответствующая секция файла /etc/X11/fs/config должна выглядеть примерно так:

catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/100dpi,
/usr/X11R6/lib/X11/fonts/75dpi,
/usr/local/share/fonts/ttfonts

 Подготовка шрифтов

Нам надо сделать кое-что еще перед тем, как использовать шрифты TrueType. Для использования xfs должны быть выполнены некоторые правила. Во-первых, имена файлов шрифтов должны быть написаны маленькими буквами. Во-вторых, для работы надо создать пару файлов.

Используйте команду su для того, чтобы стать пользователем root, и перейдите в каталог со шрифтами TrueType:

 # su -
# cd /usr/local/share/fonts/ttfonts

Если у вас там есть шрифты с большими буквами в именах, то вам надо использовать следующий скрипт для того, чтобы преобразовать все имена в нижний регистр:

 #!/bin/sh
#
## -------- преобразование букв имен файлов в строчные ---------

ls * | while read f
do
if [ -f $f ]; then
if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
# Внимание, файл 'This' будет перезаписан файлом 'this'!
mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
fi
fi
done

 ## eof

Обратите внимание на символы -- очень важны обратные апострофы! Уберите из имен файлов все пробелы. После этого создайте файлы fonts.dir и fonts.scale. Это можно сделать при помощи следующих команд:

 # ttmkfdir -o fonts.scale
# mkfontdir

Теперь у вас в каталоге с TrueType-шрифтами должны появиться файлы fonts.dir и fonts.scale. Команда ttmkfdir входит в состав RPM Freetype, и ее надо запускать до запуска mkfontdir. Эти команды не всегда выдают сообщения об ошибках, поэтому надо убедиться в том, что они создали не пустые файлы:

 $ ls -l fonts.*
-rw-r--r--  1 root   root    11657 Aug 17 10:31 fonts.dir
-rw-r--r--  1 root   root    11657 Aug 17 10:31 fonts.scale

Если у вас возникли проблемы, то используйте опцию -m команды ttmkfdir. В результате из файлов шрифтов будут отброшены все плохие символы. Задайте число 50 или 100 (ttmkfdir -m 50). Полученные файлы являются текстовыми, и вы можете на них взглянуть:

 $ less  fonts.dir
114
webdings.ttf  -microsoft-Webdings-medium-r-normal--0-0-0-0-p-0-microsoft-symbol
verdanaz.ttf  -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-ascii-0
verdanaz.ttf  -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-fcd8859-15
verdanaz.ttf  -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-15
verdanaz.ttf  -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-9
verdanaz.ttf  -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-1
[...]

После этого обновитье переменные FontPath вашего xfs (это может быть не обязательно в случае XFree86 4.x) и X-сервера:

 # /etc/rc.d/init.d/xfs restart
$ xset +fp /usr/local/share/fonts/ttfonts
$ xset fp rehash

Запускайте первую и последнюю команды каждый раз при добавлении или удалении шрифтов. Команда xset +fp необходима только в тех случаях, когда вы добавляете новый каталог шрифтов к существующим.

Теперь все должно работать. Проверьте доступность шрифтов командой:

 $ xlsfonts | less

или проверьте их при помощи xfontsel, или gfontsel. Если их видит xlsfonts, то они должны быть доступны X и наоборот. Если их нет, то попоробуйте перезапустить X клавишами Ctrl-Alt-BS.

xfsft

xfsft - это решение для работы с TrueType, предложенное Juliusz Chroboczek. xfsft основан на библиотеке работы со шрифтами FreeType, которая разработана Mark Leisher. Также существует патч для xfs XFree86, и связанная с ним библиотека -- xfs + ft. xfs, входящий в состав Redhat является на самом деле xfsft с небольшими изменениями. Более того, XFree86 версий 4.x включает в себя модуль работы со шрифтами freetype, который также сделан Juliusz Chroboczek.

Сборка xfsft требует наличия части исходных текстов XFree86 (кроме самих исходных текстов xfsft), так что это не очень быстрое занятие. Инструкции по сборке и настройке xfsft находятся в самом файле исходных текстов, поэтому я не буду вдаваться в подробности. Там все достаточно просто. На домашней странице xfsft также есть ссылки на уже собранные программы (см. выше).

Заметьте, что xfsft требует наличия файлов fonts.scale и fonts.dir. Файл fonts.scale можно создать вручную (уф!), или при помощи утилиты ttmkfdir. Она не входит в состав xfsft, но вы найдете ее здесь или, возможно, на других известных Linux-сайтах. Она также входит в состав RPM Freetype в RedHat.

Вам необходимо настроить файл конфигурации. Ниже приведен пример:

-----------------------------------------------------

clone-self = off
use-syslog = off

client-limit = 20

catalogue = /usr/local/share/font/ttfonts

error-file = /home/jec/fonts/xfs.errors

# в деципунктах
default-point-size = 120

# x,y
default-resolutions = 100,100,75,75

-----------------------------------------------------

 После этого вы можете запустить:

 # xfs -port 7100 -config /путь/к/вашему/файлу/конфигурации &

Затем вы можете добавить xfsft к переменной FontPath вашего X-сервера:

 $ xset +fp tcp/localhost:7100

Если все пойдет хорошо, то добавьте эту строку к переменной FontPath вашего файла XF86Config.

Файл fonts.alias

fonts.alias - это еще один конфигурационный файл, который можно использовать для изменения способа работы со шрифтами. Подобно файлам fonts.scale и fonts.dir, файл fonts.alias должен быть в том же каталоге, что и шрифты, к которым вы задаете алиасы. Этот файл не обязятелен, но он может решить некоторые проблемы. Ниже приведен пример строки из файла /usr/X11R6/lib/X11/fonts/misc/fonts.alias в системе Redhat:

 fixed    -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1

fixed - это алиас. При каждом запросе мы на самом деле получаем определение шрифта из второй колонки. Шрифт слишком мал? Мы просто изменяем определение шрифта. (Внимание: этот файл критичен для работы системы, по крайней мере в RedHat.) Этот принцип справедлив для всех шрифтов, включая и TrueType. На самом деле, если у вас нет TrueType шрифтов, вы можете использовать эту хитрость для подстановки подобного ему шрифта Type 1, или другого шрифта, алиас которого ссылается на TrueType.

Файл fonts.alias очень важен для некоторых программ, которые не совсем правильно работают с данными, которые есть в файле fonts.scale. Одной из таких программ является Netscape. Если у вас нет файла fonts.alias, то вы заметите, что Netscape показывает размеры шрифтов от 0 до 12. Это можно исправить при помощи fonts.alias. Вы также можете заметить, что, если вы зададите другой размер в опции scalable font в пункте меню Preferences, Netscape не запомнит эту настройку. Это очень неудобно! Это также исправляется при помощи алиасов. Поэтому нам очень нужен этот файл. Вот пример из файла fonts.scale:

 arial.ttf   -monotype-Arial-medium-r-normal--0-0-0-0-p-0-ascii-0
arial.ttf   -monotype-Arial-medium-r-normal--0-0-0-0-p-0-fcd8859-15
arial.ttf   -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-15
arial.ttf   -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1

Это - векторные шрифты, поэтому мы не задаем стандартные размеры шрифтов. Нам надо создать свой файл fonts.alias. Ниже приведена его часть (касающаяся Arial):

 -monotype-Arial-medium-r-normal--6-60-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--7-70-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--8-80-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--10-100-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--9-90-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--11-110-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--10-100-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--11-110-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--12-120-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--13-130-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--13-130-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--14-140-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--14-140-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--15-150-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--15-150-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--18-180-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--18-180-75-75-p-0-iso8859-1

 -monotype-Arial-medium-r-normal--24-240-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--24-240-75-75-p-0-iso8859-1

 Заметьте, что я разделил каждую строку на две для читаемости. В этом файле должны быть две колонки без символа "\", разделенные, как минимум, одним пробелом. Это достаточно для Netscape. Обратите внимание на различие поля pointsize записей первой и второй колонок первых двух строк. В первой колонке в этом поле написано "6", а во второй - "9". Таким образом, можно обойти синдром "очень мелких шрифтов" Netscape. Подправьте этот файл по вашему вкусу, разрешению экрана и т.п.

Этот файл можно создать вручную при помощи текстового редактора, или, что проще, при помощи специальных скриптов, использующих sed и awk. Прекрасное обсуждение содержимого этого файла есть здесь. Там же есть ссылка на python-скрипт, который может почти автоматически создать этот файл прямо на том сайте.

XFree86 версий 4.x

XFree86 4.0 среди большого количества новых возможностей включает в себя встроенную поддержку шрифтов TrueType. Расширенная поддержка шрифтов основана на xfsft Juliusz Chroboczek, который, в свою очередь, основан на библиотеке FreeType, написанной Mark Leisher, поэтому его настройка похожа на настройку xfsft и модифицированной Redhat версии xfs.

Переменная FontPath находится там же, в файле XF86Config. Для пользователей Redhat xfs это означает, что им надо перенести FontPath из файла /etc/X11/fs/config обратно в XF86Config. Более того, надо заметить, что для поддержки TrueType шрифтов xfs больше не нужен. Вы можете его отключить, только если вам не нужен сетевой сервер шрифтов.

 Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/share/fonts/default/Type1"
FontPath "/usr/local/share/fonts/ttfonts"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
EndSection

Доя использования TrueType, вы также должны указать загрузку модуля X-сервера в разделе "Module":

 Section "Module"
Load  "freetype"
Load  "speedo"
Load  "type1"
EndSection

Для каждого каталога со шрифтами TrueType вы должны создать файлы fonts.scale и fonts.dir (аналогично xfsft и xfs Redhat). В создании файла fonts.scale вам поможет утилита ttmkfdir. Смотрите выше раздел с описанием xfs Разд. xfs, входящий в состав дистрибутива Redhat, в котором описывается, как это сделать.

xtt - это другой доступный модуль работы с TrueType, который больше известен поддержкой идеографических (Восточных) шрифтов. Вы можете использовать и его, но не вместе с обычным.

Настройка шрифтов в отдельных программах

KDE

KDE - это одна из наилучших вещей, которые случались с Linux и X в течение долгого времени. Она представляет из себя полный пользовательский интерфейс, который очень сильно приближает Linux к цели - быть доступным для среднего непрофессионала. Более подробную информацию о KDE вы можете найти по адресу http://www.kde.org/. Тогда почему я пою этой системе дифирамбы здесь? Потому что в KDE версии 1.1 есть новая функция - совместить шрифты и цвета в ваших программах, включая и не-KDE программы, с тем стилем, который на этот момент выбран для KDE.

Использование шрифтов и цветов KDE в не-KDE приложениях

Это очень просто. Просто запустите Центр Управления KDE, перейдите к пункту Desktop, внутри него зайдите в подпункт Style. Там будет флажок с надписью "Использовать шрифты и цвета в не-KDE приложениях" ("Apply fonts and colors to non-KDE apps"). Установите его, нажмите OK, и все! В следующий раз, когда вы будете запускать многие X-приложения, они будут использовать те же цвета и шрифты, которые используют ваши KDE-приложения. Некоторым больше нравится эта опция, некоторым меньше. Если она вам не понравится, вы всегда можете ее выключить.

Netscape

Давайте согласимся с одним фактом, Netscape - это очень важная программа для Linux программа. Мы все ее используем, всем нам она очень нужна, поэтому остановимся на ней поподробнее. Стандартная установка Netscape известна своими проблемами со шрифтами - большие шрифты состоят из крупных точек, шрифты выглядят неправильно, шрифты слишком мелки для чтения. В-общем, неудобно! Может быть, именно поэтому вы читаете этот текст?

Я надеюсь, что вы уже последовали моим предыдущим советам. То, что я посоветую в этом разделе должно вам помочь. Наличие шрифтов TrueType в вашей системе уже стало необходимостью, и для работы с ними вам нужен сервер шрифтов TrueType. Многие веб-страницы используют конкретные семейства шрифтов, таких, как Arial, которые не очень типичны для пользователей Linux. Это неправильный шаг с точки зрения дизайна, но наличие в вашей системе стандартных TrueType шрифтов поможет вам обойти глупость некоторых веб- дизайнеров. НУ НЕ МОЖЕМ МЫ ОБОЙТИСЬ БЕЗ MICROSOFT!

Предположим, что в вашей системе уже работает TrueType. Зайдите в Netscape в меню Edit -> Preferences -> Fonts. Откройте список под названием Variable Width Font в правой части окна. Выберите любой подходящий вам шрифт. Включите флажок Allow Scaling. Если вам предлагаются только 0 и 12 размер шрифта, то вы можете ввести свой размер в окошке рядом с размерами, а затем нажать на кнопку OK. Проблема состоит в том, что Netscape не запомнит эти значения, и вам придется вносить их каждый раз при запуске Netscape. Это нужно только, если вы еще не настроили файл fonts.alias. Этот файл разрешит ваши проблемы. Читайте раздел Разд. Файл fonts.alias, чтобы узнать подробнее о файле fonts.alias.

Вы можете поэкспериментировать над настройками в файлах ~/.Xdefaults (или ~/.Xresources):

 Netscape*DocumentFonts.sizeIncrement: 10
Netscape*documentFonts.xResolution*iso-8859-1: 120
Netscape*documentFonts.yResolution*iso-8859-1: 120

Переменная 'sizeIncrement' контролирует размер интервала при различии заданных в странице параметров 'basefont':

 <basefont size=7>

Значение по умолчанию - '20', что достаточно много. Изменяя это число можно уберечь Netscape от слишком больших или слишком малых шрифтов. Разрешения по x и по y - очень грубый эквивалент разрешения экрана в точках на дюймах. Экспериментируйте.

Затем запустите команду:

 $ xrdb -load ~/.Xdefaults

(или .Xresources) и перезапустите Netscape. Таким образом можно изменять разные параметры Netscape. Вы можете посмотреть содержимое файла Netscape.ad, который должен входить в поставку вашего пакета Netscape.

Если при помощи этих советов вы не сможете добиться желаемого результата, и проблема "мелких шрифтов" останется, то смотрите выше раздел, касающийся файла fonts.alias. С помощью этого файла вы можете добиться значительно лучших результатов.

Настройка Mozilla должна быть практически идентична Netscape.