В выводимом листинге могут быть как шрифты так и алиасы, последние имеют короткое название.
7.3 Использование Font сервера.
Фонт сервер позволяет иметь одну единственную точку с которой все Х сервера будут загружать шрифты, что существенно облегчит конфигурирование систем с большим количеством Х серверов. Кроме того как было сказано выше, если Х сервер хочет работать с векторными шрифтами – он должен это делать исключительно через фонт сервер.
Запуск фонт сервера (если он не был запущен предварительно) осуществляется командой:
/usr/X11/bin/fs –daemon –port <TCP_port>
Для того чтобы фонт сервер запускался во время старта, нужно разрешить его автостарт выполнив:
/etc/set_parms font_c-s
Конфигурационный файл фонт сервера находится в каталоге /etc/X11/fs/config . По сигналу SIGUSR1 он перечитывает свою конфигурацию.
7.4 Описание шрифтов. XLFD формат.
Стандарт Х11 предусматривает язык описания шрифтов XLFD (XLogicalFontdescription). Согласно ему имя шрифта состоит из 15 позиций разделенных минусами:
FontNameRegistry-Foundry-FamilyName-Weightname-Slant-SetwidthName-AddStyle-Name-PixelSize-PointSize-ResolutionX-ResolutionY-Spacing-AverageWidth-CharSetRegistry-CharSetCoding
Каким именно будет результирующее имя в XLFD формате зависит от типа фонт-запроса к Х серверу. Возможные типы запросов:
ReferenceXLFD Этот запрос идет при выполнениии команды xlsfonts и имя
берется из файла fonts.dir . Векторные шрифты при этом имеют PixelSize и PointSize нулевыми.
RequestXLFD В результате этого запроса будет получено XLFD имя
запрашиваемого шрифта или его алиас из файла font.alias. При этом поля содержащие * (обозначающие любое значение) будут заменены на ?
resolvedXLFD Это уже точное имя шрифта которое выддается сервером в ответ на запрос. Все поля являются заполненными, но результат может и не совпадать с исходным запросом.
7.5 XLFD синтаксис
FontNameRegistry авторитетный источник который зарегистрировал шрифт. Обычно пустое поле -
Foundry имя “оцифровщика” шрифта
FamilyName трейд-марка или коммерческое имя шрифта
WeightName[ext] относительный вес шрифта (жирность). Для векторных шрифтов может обозначать темность или светлось (параметр ext)
Slant[ext] напрвление шрифта (roman, italic, oblique, …) для векторных шрифтов параметр задает наклов в угловых единицах.
SetwithName ширина юнита (сжатый или растянутый)
AddStyleName[ext] название для уникальной идентификации шрифта (serife, cursive, …) В векторных шрифтах определят степень поворота или зеркальность шрифта.
PixelSize[ext] высота шрифта в пикселях. Для векторных шрифтов параметр указывает дополнительную растяжку по горизонтали.
PointSize[ext] размер кубика в поинтах.
ResolutionX Разрешение (горизонтальное и вертикальное) шрифта в
ResolutionY пикселях на инч. Если не указано сервер выбирает сам в зависимости от разрешения дистплея.
Spacing расстояние между юнитами в шрифте. (М – фиксированное,
Р – пропорциональное)
AverageWidthCредняя ширина шрифта
CharacterSetRegistry имя закрепленное X консорциумом за CharacterSetEncoding
CharacterSetEncoding определяет кодировку
Файл font.dir
Этот файл находится в каталогах файлов фонтов, он создается либо при инсталяции системы либо после выполнения команды mkfontdirдля растровых илиstmkdirs для векторных шрифтов. Он содержит в первой строчке количество шрифтов в директории а в последующих XLFD названия шрифтов.
7.6 Файл font.alias
Этот файл так же как и font.dir содержится в каталогах шрифтов и служит для лиасинга
длинных имен шрифтов в короткие которые затем легче использовать. После правки этого файла обязательно нужно выполнять команду
xsetfprehash
а также рестартовывать по сигналу SIGUSR1 фонт сервер.
7.7 Администрирование растровых шрифтов.
Для добавления растрового шрифта в систему нужно выполнить следующие действия:
· Если шрифт не в .pcf формате сконвеертировать его с помощью программы bdftopcf
· Скомпрессировать шрифт утилитой compress
· Скопировать в нужную директорию
· Запустить mkfontdir для модификации fonts.dir файла.
· Если директория со шрифтами используется только Х сервером то выполнить xsetfprehash , если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.
Для удаления растрового шрифта из системы Х11 необходимо:
· Удалить фонт файл.
· Запустить mkfontdir для модификации fonts.dir файла.
· Если директория со шрифтами используется только Х сервером то выполнить xsetfprehash , если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.
Для создания fonts.dir файла достаточно запустить mkfontdirуказав ей в качестве аргумента директорию со шрифтами.
7.8 Компилирование .BDF шрифтов в .PCF шрифты.
Растровые шрифты в системе Х11 могут быть представлены в нескольких формах:
· .pcf Переносимый бинарный формат описания шрифта
· .pcf.Z компрессированный .pcf
· .bdf текстовый формат
· .bdf.Z компрессированный .bdf
· .bcf компрессированный .bdf
· .snf не переносимый бинарный формат шрифта (использовался до X11R5)
· .snf.Z компрессированный .snf (использовался до X11R5)
· .scf компрессированный .snf (использовался до X11R5)
·
Предпочтительным форматом для Х сервера является компрессированый .pcf.
Для конвертации .bdf в .pcf с одновременной компрессией можно воспользоваться командой:
bdftopcf font_file.bdf | compress > font_file.pcf.Z