Использование Font сервера

 

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

 

Запуск фонт сервера (если он не был запущен предварительно) осуществляется командой:

 

/usr/X11/bin/fs –daemon –port < TCP_port >

 

Для того чтобы фонт сервер запускался во время старта, нужно разрешить его автостарт выполнив:

 

            /etc/set_parms font_c-s

 

Конфигурационный файл фонт сервера находится в каталоге /etc/X11/fs/config. По сигналу SIGUSR1 он перечитывает свою конфигурацию.

 

Описание шрифтов. XLFD формат.

 

Стандарт Х11 предусматривает язык описания шрифтов XLFD (X Logical Font description). Согласно ему имя шрифта состоит из 15 позиций разделенных минусами:

 

FontNameRegistry-Foundry-FamilyName-Weightname-Slant-SetwidthName-AddStyle-Name-PixelSize-PointSize-ResolutionX-ResolutionY-Spacing-AverageWidth-CharSetRegistry-CharSetCoding

 

Каким именно будет результирующее имя в XLFD формате зависит от типа фонт-запроса к Х серверу. Возможные типы запросов:

 

           Reference XLFD            Этот запрос идет при выполнениии команды xlsfonts и имя

берется из файла fonts.dir. Векторные шрифты при этом имеют PixelSize и PointSize нулевыми.

 

           Request XLFD               В результате этого запроса будет получено XLFD имя

запрашиваемого шрифта или его алиас из файла font.alias. При этом поля содержащие * (обозначающие любое значение) будут заменены на?

 

resolved XLFD                Это уже точное имя шрифта которое выддается сервером в ответ на запрос. Все поля являются заполненными, но результат может и не совпадать с исходным запросом.

 

XLFD синтаксис

FontNameRegistry      авторитетный источник который зарегистрировал шрифт. Обычно пустое поле J

 

Foundry                           имя “оцифровщика” шрифта

 

FamilyName                   трейд-марка или коммерческое имя шрифта

 

WeightName[ext]         относительный вес шрифта (жирность). Для векторных шрифтов может обозначать темность или светлось (параметр ext)

Slant[ext]                        напрвление шрифта (roman, italic, oblique, …) для векторных шрифтов параметр задает наклов в угловых единицах.

SetwithName                 ширина юнита (сжатый или растянутый)

 

AddStyleName[ext]     название для уникальной идентификации шрифта (serife, cursive, …) В векторных шрифтах определят степень поворота или зеркальность шрифта.

 

PixelSize[ext]                высота шрифта в пикселях. Для векторных шрифтов параметр указывает дополнительную растяжку по горизонтали.

 

PointSize[ext]                размер кубика в поинтах.

 

ResolutionX                   Разрешение (горизонтальное и вертикальное) шрифта в

ResolutionY                   пикселях на инч. Если не указано сервер выбирает сам в зависимости от разрешения дистплея.

                                               

Spacing                         расстояние между юнитами в шрифте. (М – фиксированное,

Р – пропорциональное)

 

AverageWidth               Cредняя ширина шрифта

 

CharacterSetRegistry имя закрепленное X консорциумом за CharacterSetEncoding

 

CharacterSetEncoding определяет кодировку

 

 

Файл font.dir

Этот файл находится в каталогах файлов фонтов, он создается либо при инсталяции системы либо после выполнения команды mkfontdir для растровых или stmkdirs  для векторных шрифтов. Он содержит в первой строчке количество шрифтов в директории а в последующих XLFD названия шрифтов.

 

Файл font.alias

 

Этот файл так же как и font.dir содержится в каталогах шрифтов и служит для лиасинга

длинных имен шрифтов в короткие которые затем легче использовать. После правки этого файла обязательно нужно выполнять команду

 

       xset fp rehash

 

а также рестартовывать по сигналу SIGUSR1 фонт сервер.

 

Администрирование растровых шрифтов.

Для добавления растрового шрифта в систему нужно выполнить следующие действия:

 

· Если шрифт не в.pcf формате сконвеертировать его с помощью программы bdftopcf

· Скомпрессировать шрифт утилитой compress

· Скопировать в нужную директорию

· Запустить mkfontdir для модификации fonts.dir файла.

· Если директория со шрифтами используется только Х сервером то выполнить xset fp rehash, если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.

 

Для удаления растрового шрифта из системы Х11 необходимо:

 

· Удалить фонт файл.

· Запустить mkfontdir для модификации fonts.dir файла.

· Если директория со шрифтами используется только Х сервером то выполнить xset fp rehash, если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.

 

Для создания fonts.dir файла достаточно запустить mkfontdir указав ей в качестве аргумента директорию со шрифтами.

 

Компилирование.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

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: