Шрифт:
Интервал:
Закладка:
11.4.4. Фонт-серверы
Хотя вывод символов на экран с помощью X-сервера графической подсистемы XFree86 и обеспечивает вывод текста, однако, этот способ имеет два крупных недостатка. Во-первых, шрифты должны располагаться на том же компьютере, на котором запущен X-сервер. Во-вторых, не обеспечивается вывод шрифтов True Type. Для преодоления этих недостатков были разработаны специальные серверы шрифтов или фонт-серверы (надо отметить, что в версии XFree86 4.x второй недостаток уже отсутствует, так что специальный фонт-сервер уже не нужен, если речь идет только о поддержке шрифтов True Type).
В настоящее время существует три разных сервера фонтов: xfs, xfstt и xfsft.
Фонт-сервер xfsЕсли вы пользуетесь дистрибутивом, основанным на Red Hat (Mandrake и т.п.), то фонт-сервер xfs у вас, вероятно, установлен. Сообщение о запуске фонт-сервера xfs появляется на экране монитора в процессе загрузки, а, кроме того, соответствующее сообщение об успешном запуске xfs можно найти в файле /var/log/messages.
В случае применения xfs, в файле XF86Config вместо перечня каталогов со шрифтами вы увидите всего одну строку следующего вида:
FontPath "unix/:-1"
Эта строка является ссылкой на номер порта, который будет использоваться для связи с фонт-сервером.
Использование фонт-сервера не означает, что имеет место полный отказ от перечня каталогов со шрифтами. Только теперь это перечень переносится в конфигурационный файл программы xfs. По умолчанию это файл /etc/X11/fs/config. В секции "catalogue" этого файла и перечислены теперь все каталоги со шрифтами. Соответствующая секция файла /etc/X11/fs/config должна выглядеть примерно так: catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/100dpi,
/usr/X11R6/lib/X11/fonts/75dpi,
/usr/local/share/fonts/ttfonts
(обратите внимание на отсутствие запятой в последней строке).
Правда, вы можете по-прежнему включить строки с указанием путей к каталогам шрифтов в файл XF86Config (вместе со строкой "FontPath "unix/:-1"), но они будут обрабатываться не фонт-сервером, а X-сервером. xfs от Redhat способен обслуживать как шрифты Type 1, так и шрифты True Type.
Фонт-сервера xfstt и xfsftЕсли ваш дистрибутив не включает фонт-сервер xfs, вы можете воспользоваться одним из альтернативных фонт-серверов
• xfstt (http://metalab.unc.edu/pub/Linux/X11/fonts/) или
• xfsft (http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/).
xfstt - это фонт-сервер, созданный исключительно с целью обслуживания шрифтов True Type на локальной машине. Поэтому он поддерживает только шрифты True Type и не может обслуживать шрифты на нескольких машинах в сети. Учитывая это, предпочтительнее пользоваться фонт-сервером xfsft или фонт-сервером xfs от Red Hat, о котором мы уже говорили. Заметим, что фонт-сервер xfsft послужил основой для доработки xfs, и модуль работы со шрифтами в XFree86 версии 4 создан разработчиком xfsft. Наверное поэтому этот фонт-сервер перестал поддерживаться разработчиком, так что вам лучше сразу ориентироваться на xfs или переходить на XFree86 версии 4.
11.4.5. Ревизия шрифтового хозяйства
Установлен ли фонт-сервер?Давайте начнем такую ревизию с проверки того, что корректно установлен фонт-сервер xfs. Вначале запустите команду:
[root]# ps ax | grep xfs
Если xfs уже установлен в вашей системе (в противном случае установите его), вы должны увидеть строку примерно такого вида:
401? S 0:04 xfs -droppriv -daemon -port -1
По этой строке можно определить, какой порт использует эта программа. Этот же номер должен быть указан в строке вида
FontPath "unix/:port_number"
в секции "Files" в конфигурационном файле X-сервера (в xfree86 это файл /etc/X11/XF86Config). Скорее всего секция "Files" в этом случае вообще содержит только одну строку FontPath, например, такую:
FontPath "unix/:-1"
Впрочем, можно не искать файл /etc/X11/XF86Config, а выполнить команду:
[root]# xset -q,
в выводе которой вы должны увидеть такие строки:
FontPath
"unix/:-1"
Если перечень каталогов шрифтов XFree86 содержит строку типа unix:/port_number, где port_number совпадает с номером порта, используемым программой xfs (Вы получили его по команде ps), то сервер xfs у вас установлен корректно. В противном случае, вы должны добавить ссылку на него в перечень каталогов шрифтов XFree86 либо с помощью команд:
[root]# xset fp+ unix/:port_number
[root]# xset fp rehash
либо путем непосредственной корректировки файла /etc/X11/XF86Config и последующего перезапуска X Window.
Для редактирования файла /etc/X11/XF86Config вы должны иметь права суперпользователя. Если вы таких прав получить не можете, то для корректной установки фонт-сервера вы должны обратиться к администратору. Какие шрифты имеются в Вашей системе?
Давайте теперь посмотрим, какие шрифты установлены в системе. Поскольку вы уже знаете (загляните еще раз в FontPath), в каких каталогах находятся файлы шрифтов, вы можете непосредственно просмотреть эти каталоги. Но одного наличия файла со шрифтом еще недостаточно для того, чтобы шрифт был доступен для X-сервера. Для того, чтобы увидеть список шрифтов, известных X-серверу, лучше воспользоваться командой xlsfonts, которая выводит на экран перечень таких шрифтов. Если запустить ее с опцией -lll, то она дополнительно выдаст массу информации о каждом шрифте. Перенаправьте вывод в файл:
[root]# xlsfonts › fontlist
и вы получите список доступных шрифтов в файле fontlist.
Но для того, чтобы этот список прочитать, надо иметь представление о том, как именуются шрифты. Без этого прочитать полученный файл fontlist будет очень трудно.
Существует стандарт консорциума X (X Consortium) на имена шрифтов для X Window System, который называется X Logical Font Description Conventions (обычно упоминаемый как XLFD). Полное описание его дано в [П13.11]. В соответствии с этим стандартом имя шрифта состоит из 14 полей:
• foundry (fndry) - производитель шрифта (Adobe, Bitstream и т.п.);
• family (fmly) - название семейства шрифтов (например, Times);
• weight (wght) - толщина (bold, demibold, medium);
• slant (slant) - наклон (roman, italic, oblique);
• set width (sWdth) - ширина (normal, condensed, double wide);
• add style (adstyl) - стиль (serif, sans serif, decorated);
• pixel size (pxlsz) - размер символа по вертикали (в пикселах, 0 означает масштабируемый шрифт);
• point size (ptSz) - размер символа по горизонтали;
• resolutionX (resx) - разрешение по горизонтали;
• resolutionY (resy) - разрешение по вертикали;
• spacing (spc) - ширина символов (пропорциональный, моноширинный);
• avg width (avgWdth) - среднее значение ширины глифов шрифта;
• registry (rgstry) - название стандарта на кодировку символов (koi8, iso8859);
• encoding (encdng) - язык или кодовая страница (r, u).
Здесь в начале каждой строки указано наименование поля, затем (в скобках) сокращение этого наименования, используемое в программе xfontsel (о ней чуть ниже), после чего дается перевод (приблизительный) наименования поля. В скобках после русского перевода названия поля приводится по несколько примеров возможных значений этого поля, которые поясняют его назначение.
При задании конкретного шрифта поля в его имени принято разделять дефисами. Приведем пару примеров имен в стандарте XLFD:
-adobe-times-medium-r-normal-*-14-140-75-75-p-74-iso8859-1
-misc-fixed-medium-i-semicondensed-*-13-120-75-75-c-60-koi8-r
-adobe-courier-bold-o-normal-*-10-100-75-75-M-60-iso8859-1
(если какое-то поле не определено, то в соответствующей позиции ставится звездочка; таким образом можно одной строкой задать множество шрифтов).
В качестве параметра команде xlsfonts можно указать имя конкретного шрифта или семейства шрифтов (этой возможностью просто необходимо воспользоваться, если вы задали опцию -lll, иначе масса полученной информации окажется слишком велика).
Но просмотр списка шрифтов, выдаваемого командой xlsfonts, мало информативен в том смысле, что при этом вы не видите изображений символов, которые будет давать на экране данный шрифт. В этом плане гораздо удобнее воспользоваться программой xfontsel, которая работает в графическом режиме и выводит в своем окошке изображения некоторых символов данного шрифта, позволяющих представить себе, как будет выглядеть выводимый текст.
Эти две команды могут оказаться полезными, как для определения того, какие шрифты уже имеются в системе, так и для проверки того, что новые шрифты успешно установились. Я не буду здесь подробно описывать, как пользоваться этими командами. Воспользуйтесь соответствующими man-страницами или системой info.
На мой взгляд, пользователь обычно руководствуется в выборе шрифта только следующими признаками из перечисленных выше: семейство шрифтов (fmly), вариант шрифта - жирный шрифт или обычный (wght), наклон (slant), ширина шрифта (sWdth), размер шрифта в пикселах (pxlsz), стандарт (rgstry) и язык (encdng).
- Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип - Программное обеспечение
- Призрак в Сети. Мемуары величайшего хакера - Уильям Саймон - Программное обеспечение
- Photoshop CS2 и цифровая фотография (Самоучитель). Главы 10-14 - Солоницын Юрий - Программное обеспечение