Вход/Регистрация
Сетевые средства Linux
вернуться

Смит Родерик В.

Шрифт:
Включение шрифтов в каталог

Настройка сервера шрифтов предполагает создание файлов описания каталогов. Файл описания каталогов имеет имя

fonts.dir
, а его содержимое представляется в следующем формате:

число

имя_файла_шрифта1 XLFD1

имя_файла_шрифта2 XLFD1

...

Первая строка содержит число, которое указывает, сколько шрифтов описано в данном файле. Каждая последующая строка описывает один шрифт. Все строки, кроме первой, начинаются с имени шрифта (например,

goodfont.ttf
или
t1f32.pfb
). Файл шрифта с указанным именем должен присутствовать в каталоге.

Каждый шрифт Туре 1 реализуется в виде нескольких файлов. Файл PFB (Printer Font Binary — двоичный шрифт печати) содержит основную информацию о шрифте; имя этого файла обычно указывается в

fonts.dir
. Вместо PFB-файла вы можете задать в составе
fonts.dir
файл PFA (Printer Font ASCII — ASCII шрифт печати), в котором находятся те же данные, представленные в другом формате. Прочие файлы, определяющие шрифт, имеют расширения
pfm
,
.afb
и
.afm
. Эти файлы необходимы для того, чтобы сервер шрифтов мог предоставлять клиентам шрифты Туре 1.

Остальная часть строки представляет собой логический дескриптор шрифта (XLFD — X Logical Font Descriptor). Ниже приведен пример подобного дескриптора.

– bitstream-charter-medium-r-normal--0-0-0-0-p-0-iso8859-1

Логический дескриптор шрифта состоит из нескольких полей, разделенных дефисами (

–
). В полях дескриптора содержатся информация об изготовителе шрифта (
bitstream
); название семейства шрифтов (
charter
); "вес" шрифта (
medium
); сведения о том, представлены ли символы шрифта курсивом (
r
); ширина символов (
normal
); дополнительное имя стиля (в данном примере не используется); обобщенные данные о размере (строка, состоящая из нулевых значений, означает, что шрифт допускает масштабирование); сведения о том, является ли шрифт моноширинным или пропорциональным (
p
); средняя ширина (0 для масштабируемого шрифта) и кодировка (
iso8859-1
).

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

fonts.dir
предусмотрены специальные утилиты.

На заметку

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

fonts.dir
создаются XLFD. Многие текстовые процессоры и подобные им программы могут имитировать курсив и полужирный текст, но гораздо лучшие результаты получаются при использовании специальных шрифтов, в особенности это относится к символам, представленным курсивом.

Утилита, позволяющая создавать файл

fonts.dir
на основании файлов шрифтов Туре 1, содержащихся в каталоге, называется
type1inst
. Эта утилита поставляется в составе многих дистрибутивных пакетов Linux, но по умолчанию она не инсталлируется. После установки данной программы надо сделать текущим каталог со шрифтами Туре 1 и ввести следующую команду:

# type1inst

Программа

type1inst
просматривает файлы шрифтов, извлекает имена шрифтов и другую XLFD-информацию и на основании полученных данных создает файл
fonts.dir
. Данная программа также оповещает пользователя о ходе обработки шрифтов, например, она может сообщить, что на данный момент создана 21 запись в файле
fonts.dir
, одна из них описывает шрифт, изготовителя которого не удалось определить. Файл
fonts.dir
, созданный программой
type1inst
, можно отредактировать вручную и удалить несоответствия, например, выявить файлы шрифтов, принадлежащие одному семейству, но созданные различными производителями. X-программы используют информацию, содержащуюся в файле
fonts.dir
, и игнорируют данные в составе шрифтов. Поэтому изменение некоторых деталей файлов шрифтов не влияет на работу этих программ. Несоответствия, о которых шла речь выше, могут привести к возникновению проблем, в частности, если информация о производителе не совпадает, то, запросив шрифт, клиент может получить ту или иную его разновидность.

Программа аналогичного назначения создана и для работы с шрифтами TrueType. Эта программа называется

ttmkfdir
и входит в состав библиотеки FreeType, используемой
xfsft
и XFree86 4.0. Программа
ttmkfdir
работает подобно программе
type1inst
, но позволяет задавать имя выходного файла посредством опции
– о
. Данная программа не включает в выходной файл сведения о шрифтах, в которых отсутствуют некоторые символы. Для того чтобы сведения об этих шрифтах были включены в выходной файл, необходимо задать опцию
– с
. Чтобы учесть изменения, внесенные в каталог со шрифтами, надо задать следующую команду:

# ttmkfdir -с -о fonts.dir

Если вы обнаружите, что при работе с некоторыми шрифтами возникают проблемы, вызовите эту же команду, но без опции

– с
. Список шрифтов станет короче, но оставшиеся в нем шрифты скорее всего будут работоспособны.

Внимание

Как было сказано выше, программы

type1inst
и
ttmkfdir
создают новый файл
fonts.dir
взамен существующего. Если вы добавляете шрифты в каталог, желательно создать резервную копию файла
fonts.dir
. Как вы уже знаете, автоматически созданный файл
fonts.dir
можно редактировать вручную. Копия файла поможет вам вспомнить, какие изменения уже были внесены в него.

После изменения файла

fonts.dir
необходимо остановить и снова запустить сервер шрифтов. Кроме того, надо либо перезапустить X-серверы, использующие сервер шрифтов, либо указать им на то, что список доступных шрифтов должен быть обновлен. Сделать это можно с помощью следующей команды:

# xset fp rehash

Если вы не сделаете этого, новые шрифты будут не доступны X-серверам. Если вы удалили шрифты и не оповестили об этом X-сервер, то при попытке получить отсутствующий шрифт, работа X-сервера будет приостановлена.

  • Читать дальше
  • 1
  • ...
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: