Глава 5. Настройка системы

.

Содержание

Шрифты

Шрифты

.

Протокол X11 и шрифты

Протокол X11, разработанный в середине 80-х годов, определяет взаимодействие между приложением и системой отображения графики. Приложения называется клиентом X11, а система отображения— сервером X11. Таким образом, вопреки сложившимся житейским представлениям, сервер X11 работает на компьютере или X-терминале пользователя, а приложение (клиент X11) может быть запущено как локально, так и удалнно.

Протокол X11 представляет шрифт как набор матриц из нулей и единиц (растров). Каждый шрифт имеет ряд характеристик (имя, размер, кодировка и т.д.). Сервер ищет требуемый приложением растр шрифта с запрошенными свойствами сам, при помощи своего шрифтового модуля, или обращается за ним к специальному серверу шрифтов, запущенному локально или удалнно. Таким образом, протокол X11 был изначально ориентиован на работу с растровыми (bitmap) шрифтами (PCF, BDF), при этом приложение (клиент) может лишь запрашивать шрифт, но само с его растрами не работает.

С ростом возможностей печатающих устройств, они стали использовать т.н. скалируемые шрифты, задаваемые векторно, что позволило легко масштабировать их, а также осуществлять другие преобразования. Более того, при выводе на качественные устройства печати символы шрифтов отображаются не одним цветом, а оттенками цвета, что позволяет создать эффект сглаживания (антиалиасинга). UNIX™ прекрасно справлялся и справляется с красивой печатью скалируемыми шрифтами при помощи знаменитых программ nroff (groff в варианте GNU), TeX, ghostscript, но программы просмотра выходных форматов этих программ не пользуются шрифтовыми возможностями протокола X, ограниченного растром, а посылают серверу X уже сформированную картинку, что сильно замедляет работу и делает практически невозможным днамическое отображение текста в процессе набора или использование его в элементах интерфейса.

Для использования в оконной системе X скалируемых шрифтов (Type1, TTF, Speedo), необходимо преобразовывать их символы (глифы) в растры. В свободной реализации X, XFree86, это делает либо сам сервер X11, собранный с библиотекой растеризации freetype1 (сейчас это более распространенный способ), либо сервер шрифтов. При этом существенно увеличивается количество доступных шрифтов, появляется возможность использовать для отображения и печати одни и те же шрифты, но вот качество отображения оставляет желать лучшего, так как на экране символ по-прежнему остается одноцветным, без полутонов, т.е. сглаживания.

Сглаживание шрифтов

Сглаживание шрифтов в XFree86, не модифицирующее протокол X11, было реализовано около двух лет назад. Для создания картинки из глифа использовалась библиотека freetype2[7], для отрисовки е на экране с использованием, при возможности, аппаратной акслерации— расширение Render сервера X, а для управления шрифтами и взаимодейстия с расширением Render— библиотека Xft1.

Важно, что картинка сглаженного глифа создается клиентом из шрифтов на стороне клиента, а расширение Render на стороное сервера X11 отрисовывает е, согласуя с фоном. При этом расширение Render аппаратно-зависимо и, к сожалению, существует не для всех видеочипов. Тем более его нет на стандартных X-терминалах. Вот почему сглаживание шрифтов, использующее библиотеку Xft1, работает не на всех системах.

Летом 2002 года Кейт Паккард (Keith Packard), автор новой концепции рендеринга для X и библиотеки Xft1, выпустил е новую, переработанную редакцию— Xft2. Кейт выделил библиотеку управления шрифтами клиента, назвав е fontconfig, а в Xft2 добавил возможность отрисовки на сервере X11 картинок сглаженных глифов даже в том случае, если расширения Render на нем нет. При этом, конечно, трафик между клиентом и сервером заметно возрастает.

Управление шрифтами

Сервер X

Каталоги со шрифтами, управляемыми самим сервером X11, описываются в секции “Files” файла конфигурации /etc/X11/XF86Config-4 (здесь и далее приводится расположение файлов, принятое в ). В каждом таком каталоге должен быть файл fonts.dir (созданный, например, при помощи утилиты mkfontdir для каталогов с растровыми шрифтами и утилитой ttmkfdir— для каталогов с TTF) с описанием шрифтов и, возможно, файл fonts.alias с альтернативными описаниями шрифтов каталога. Для того чтобы изменения в секции “Files” (равно как и в других секциях XF86Config) вступили в силу, требуется перезапуск сервера X11. В то же время, добавить или удалить шрифты в процессе работы можно при помощи утилиты xset [+|-]fp. В умалчиваемой конфигурации XFree86 в непосредственное управление шрифтами сервером X не используется.

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

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

      FontPath "unix/:-1"
    

в секции “Files”. Каталоги со шрифтами перечисляются в /etc/X11/fs/config/. Самый удобный способ добавления/удаления каталогов шрифтов— утилита chkfontpath, которая изменяет файл настроек xfs и перезапускает сервер шрифтов.

Просмотреть шрифты, доступные системе, можно при помощи программы xfontsel.

Управление шрифтами клиента средствами fontconfig

Файл системных настроек шрифтов клиента, управлемых при помощи библиотеки fontconfig, ./etc/fonts/fonts.conf, предсталяет из себя файл в разметке XML. Его формат описан в man-странице fontconfig. Утилита fc-list позволяет увидеть список доступных шрифтов, а утилита fc-cache— пересоздать файлы описания fonts.cache-NN для каталогов со шрифтами. Утилита fontconfig позволяет управлять не только скалируемыми, но и растровыми шрифтами в кодировке iso10646-1 (Unicode).

Система управления шрифтами на основе fontconfig позволяет пользователю легко добавлять новые шрифты без перезапуска серверов. Для этого достаточно разместить их в каталоге ~/.fonts и выполнить команду

fc-cache ~/.fonts

Шрифты станут доступны всем вновь запущенным приложениям, использующим fontconfig.

Утилита fontconfig используется не только приложениями, работающими с сервером X, но и, например, библиотекой печати gnome-print2. Унификация управления шрифтами, которую предлагает fontconfig,— одна из задач, которую предстоит решить в ближайшем будущем.

Другие средства управления шрифтами

Свои средства подключения и настройки шрифтов имеют интерпретатор языка PostScript— GNU GhostScript, издательская система TeX, программы форматирования текстов groff и GNU enscript.

Расположение файла описания шрифтов GhostScriptFontmap, а также каталогов со шрфитами, определяется системной переменной GSLIB. В файл Fontmap находится в каталоге /etc/gs. Значение переменной GSLIB удобно наблюдать в выводе команды gs -help.

В пакете teTeX-2.0, входящем в Master, значительно улучшена и упрощена работа со шрифтами Type1. Именно они, а не шрифты Metafont, как ранее, являются основными в нашем пакете.

Шрифты в ALT Linux Master 2.2

Растровые шрифты

Основными растровыми шрифтами в являются шрифты misc из поставки XFree86, а также шрифты Дмитрия Болховитянова XFree86-cyrrfx-75dpi в различных кириллических кодировках и шрифты XFree86-75dpi-unicode, созданные ASP Linux путем объединения шрифтов XFree86 и шрифтов Дмитрия Болховитянова.

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

Скалируемые шрифты

Type1

Свободные шрифты Type1 в Junior 2.2 стали основными шрифтами для приложений, использущих сглаживание (антиалиасинг). Современные версии библиотеки freetype2 позволяют обеспечить их качественный рендеринг.

Большинство приложений Qt/KDE и Gtk+2/GNOME 2 используют по умолчанию шрифты пакета urw-fonts с кириллическими глифами Валентина Филиппова. Эти же шрифты используются при печати из большинства приложений.

Мы рекомендуем также установить пакеты свободных шрифтов sharatype-fonts и dmtr40in-fonts, созданных Сергеем Шарашкиным (на основе шрифтов bitstream) и Дмитрием Сорокиным (оригинальный шрифт XlinSans).

Пакет шрифтов cm-super, созданный Владимиром Воловичем на основе шрифтов Ольги Лапко, является основным для нашего пакета teTeX, но, отчасти, может быть использован для отображения и печати. Система наименования шрифтов в TeX и библиотеках, работающих со шрифтами Type1, отличается, потому большинство этих прекрасных шрифтов пока недоступны вне TeX.

Наконец, в Junior 2.2 включены декоративные шрифты проекта Vedi[8]. Они не свободные, но бесплатные для многих применений, не забудьте ознакомиться с их лицензией.

True Type

Если вы используете сглаживание, то в установке шрифтов True Type нет большой необходимости. В противном случае, можно установить пакет val-ttf, созданный Валентином Филипповым на основе urw-fonts.

Шрифты фирмы Monotype, знакомые пользователям операционных систем Windows, мы не можем включать в коробочную версию дистрибутива из-за лицензионных ограничений, однако, пакет с ними доступен на нашем FTP в каталоге updates.

Для его установки достаточно с правами root дать команду

apt-get install ms-ttf

или воспользоваться программой synaptic. Внимательно ознакомьтесь с лицензией, поставляемой в этом пакете.

Сглаживание шрифтов

По умолчанию сглаживание шрифтов включено в приложениях Qt/KDE, Gtk+2/GNOME и Mozilla. В WindowMaker, fvwm2, waimea, xjed оно также доступно, но по умолчанию выключено. В документации к соответсвующим пакетам (/usr/share/doc/<имя пакета>-<версия> вы можете прочитать о способах настройки шрифтов в этих приложениях.

Выключить сглаживание шрифтов в KDE и GNOME 2 можно через меню настроек этих систем, а также установив в “0” системные переменные QTXFT и GDKUSEXFT соответственно.

Установка шрифтов

Мы настоятельно рекомендуем всем пользователям тщательно проверять любые шрифты, не входящие в комплект Junior 2.2, перед их установкой в системные каталоги, используя пользовательскую установку при помощи xset [+|-]fp или fc-cache, как это было описано выше в этой главе.

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



[7] http://www.freetype.org

[8] http://vedi.d-s.ru



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости