Файлы fonts.dir, fonts.alias и fonts.scale
Если вы последуете приведенному Выше совету и выполните команду
xlsfonts > fontlist
а после этого пересчитаете число файлов в каталогах, перечисленных в FontPath, то скорее всего обнаружите, что в fontlist перечислено гораздо больше шрифтов, чем имеется файлов со шрифтами. Чтобы понять, почему это так, надо разобраться с файлами fonts.dir, fonts.alias и fonts.scale. Если вы заглянете в любой каталог со шрифтами, то найдете там по крайней мере файл fonts.dir, а может быть и два других: fonts.alias и fonts.scale. Для чего же они нужны?
Структура файла fonts.dir очень проста и из нее становится ясно, зачем этот файл нужен. Каждая строка файла fonts.dir (кроме первой) содержит имя одного из файлов со шрифтом, содержащегося в том каталоге, где расположен данный файл fonts.dir, вслед за которым (после пробела или символа табуляции) указывается имя содержащегося в этом файле шрифта. Пример:
koi12x24.pcf.gz -cronyx-fixed-medium-r-normal--24-170-100-100-c-120-koi8-u
Первая строка файла fonts.dir содержит число шрифтов, перечисленных в этом файле (и, соответственно, имеющихся в данном каталоге со шрифтами). Файл fonts.dir совершенно необходим для того, чтобы X-сервер мог работать со шрифтами. По-видимому (я могу судить об этом только на основании проведенных экспериментов, поскольку в литературе такого описания не встречал), при запуске X-сервера или фонт-сервера на основе файлов fonts.dir из каталогов шрифтов в оперативной памяти создается таблица доступных для системы шрифтов.
Файл fonts.scale, по-видимому, задает список масштабируемых шрифтов и необходим некоторым приложениям для корректной работы с такими шрифтами. В большинстве случаев это либо точная копия файла fonts.dir, либо просто ссылка на fonts.dir. Естественно, что в каталогах с растровыми шрифтами мы такого файла не найдем.
Файл fonts.alias - это еще один конфигурационный файл, оказывающий влияние на работу со шрифтами. Уже по названию ("alias" - прозвище, кличка) можно догадаться о его назначении. Строки этого файла имеют следующий вид:
синоним XLFD_имя_реального_шрифта
При этом каждая строка должна оканчиваться только символом конца строки и владельцем файла должен быть суперпользователь. Вот для примера первые строки из файла /usr/X11R6/lib/X11/fonts/misc/fonts.alias в системе Redhat :
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
Слово fixed здесь является синонимом или ссылкой ('alias'). Каждый раз, когда запрашивается шрифт fixed, будет фактически происходить обращение к шрифту, указанному во второй колонке. Шрифт кажется маловат? Просто поменяйте имя, на которое дана ссылка этим определением. Тот же самый принцип применим ко всем шрифтам, включая True Type. Более того, если у вас не установлены шрифты True Type, вы можете использовать этот же трюк для того, чтобы использовать какой-то из шрифтов Type 1 вместо запрашиваемых приложением шрифтов True Type.
Маленькое ПРЕДОСТЕРЕЖЕНИЕ для тех, кто имеет привычку "сильно быстро делать": некоторые синонимы должны быть известны системе в любой момент времени! В первую очередь это относится к синонимам "cursor", "fixed" и "variable" в каталогах /misc. Если таких строк в misc/fonts.alias нет, или они указывают на несуществующий шрифт, то графическая оболочка просто откажется запускаться. |
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 должны, соответственно, присутствовать строки (в файле они должны быть записаны без переносов, просто в книге строка целиком не умещается в рамках страницы):
-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--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 |
Обратите внимание на различие в размерах шрифта в правой и левой колонках. Например, в первой строке слева указан размер в 6 точек, а справа - 9 точек. С помощью этого приема удается преодолеть "склонность" Netscape к использованию слишком маленьких шрифтов. Просто подберите справа цифры в соответствии с Вашими вкусами.
Создавать файлы fonts.dir, fonts.scale и fonts.alias вручную - занятие не из простых. Поэтому разработаны специальные программы, которые запускаются в каталоге со шрифтами и создают эти файлы. Файл fonts.dir в каталоге с растровыми шрифтами можно создать с помощью команды mkfontdir. Для создания файлов fonts.dir и fonts.scale в каталогах со шрифтами Type1 надо воспользоваться утилитой type1inst (ftp://ftp.metalab.unc.edu/pub/Linux/X11/xutils/). Это скрипт на языке perl, который автоматически создает файлы fonts.dir и fonts.scale, необходимые для того, чтобы система X-Window могла использовать шрифты. Рекомендации по установке и настройке этого скрипта вы найдете в файле README, который поставляется вместе с пакетом.
Для шрифтов True Type необходима своя утилита ttmkfdir, которую можно найти на многих сайтах с программным обеспечением для Linux. В Redhat эта утилита включена в состав rpm-пакета Freetype.
На странице "Some Linux for Beginners" (http://home.c2i.net/dark/linux.html) вы можете найти скрипт на языке python, с помощью которого можно создать файл fonts.alias.