Чтение онлайн

ЖАНРЫ

Сетевые средства Linux

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

Шрифт:

При составлении 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-сервера будет приостановлена.

Сервер шрифтов с расширенными возможностями

Возможности, предоставляемые традиционным сервером шрифтов, не соответствуют требованиям, предъявляемым современными операционными системами и выполняющимися в них приложениями. Процедура включения новых шрифтов слишком трудоемкая, а качество текста часто оставляет желать лучшего, в особенности в тех случаях, когда путь к шрифту установлен некорректно или когда используются шрифты, заданные по умолчанию. Немаловажен и тот факт, что система поддержки шрифтов в X Window не предназначена для интеграции экранных шрифтов со шрифтами для печати. Эти и другие недостатки приводят к тому, что разработка приложений, для которых требуется высококачественный пользовательский интерфейс (например, текстовых

процессоров или издательских систем), существенно затрудняется. Для разрешения этих проблем были созданы серверы шрифтов с расширенными возможностями. Многие из них встроены в другие приложения, но некоторые могут использоваться как независимые программы.

Среди серверов шрифтов с расширенными возможностями, предназначенных для использования в системе Linux, наибольшей популярностью пользуется FontTastic (

http://www.bitstream.com/categories/developer/fonttastic/
). Этот сервер распространяется на коммерческой основе, функционирует как сервер шрифтов X Window и предоставляет дополнительные возможности клиентам, ориентированным на взаимодействие с ним. FontTastic снабжает клиента дополнительной информацией, например, может при необходимости предоставить ему шрифты в контурном виде, необработанные данные шрифтов и сведения о кернинге. Эту информацию нельзя получить ни с помощью традиционного сервера шрифтов, ни в результате непосредственной обработки шрифтов X-сервером. Получив подобную информацию, приложение может осуществлять действия, которые невозможно выполнить из-за ограничений, накладываемых традиционными средствами обработки шрифтов X Window. Рассмотрим, например, работу текстового процессора. В обычных условиях пользователь указывает стандартный шрифт для документа. Когда приходит время вывести сформированный документ на печать, текстовый процессор обязан скопировать нужный шрифт на принтер либо каким-то образом сообщить принтеру о том, что тот должен использовать один из встроенных шрифтов. Если пользователь выбрал нестандартный шрифт, текстовый процессор может передать принтеру только битовые карты символов, так как именно в таком виде он сам получает эту информацию. Текстовый процессор должен каким-либо способом узнать разрешающую способность принтера, запросить символы с соответствующим разрешением у сервера шрифтов и вывести требуемые данные. При этом качество часто бывает невысоким.

Работая совместно с FontTastic, текстовый процессор может запросить у него необработанные данные шрифта и включить их в документ. Такой подход обеспечивает гораздо более высокое качество отображения и требует для этого меньших усилий. (При использовании шрифтов TrueType текстовый процессор, работающий с PostScript-принтером, может преобразовать их в формат Туре 42. Кроме того, имея необработанные данные шрифта, он может эффективно восстановить шрифт. При этом достигаются гораздо лучшие результаты по сравнению с использованием битовых карт.) Взаимодействуя с FontTastic, текстовый процессор также получает дополнительные сведения (например, размер символов, кернинг и т.д.), что также позволяет улучшить внешний вид выводимых данных.

Поскольку FontTastic распространяется на коммерческой основе, этот сервер не стал стандартным инструментом для Linux. Однако на работу с ним ориентированы по крайней мере два широко используемых приложения: Corel WordPerfect Office 2000 (которое в в настоящее время уже не поддерживается разработчиком) и VistaSource ApplixWare Office (

http://www.vistasource.com/products/axware/
). Если вы запустите любую из этих программ, произойдет автоматическая инсталляция FontTastic и данный сервер будет выполняться в течение времени работы приложения. При необходимости FontTastic можно сконфигурировать так, что программы на других компьютерах смогут работать с ним как с обычным сервером шрифтов.

Использование FontTastic — не единственный способ разрешения проблемы несоответствия между выводом на экран и на принтер. Некоторые инструменты, например TeX, ориентированы на работу с принтером, а обеспечению качества при выводе на экран уделяется гораздо меньше внимания. TeX — это язык описания страниц. В некоторых случаях пользователь даже не видит на экране, как будет выглядеть составленный им документ, а лишь вводит требуемые директивы с помощью текстового редактора. Версии WYSIWYG TeX-редакторов появились сравнительно недавно.

Для того чтобы обеспечить согласование шрифтов на экране и на принтере, некоторые программы отказываются от взаимодействия со средствами поддержки шрифтов X Window. В качестве примера такой программы можно привести WordPerfect 8. Данный продукт непосредственно работает со шрифтами. Он самостоятельно растрирует контурные шрифты, отображает их на экране, а также создает битовые карты символов для вывода на принтер.

Еще один подход заключается в том, чтобы сообщить программе расположение файлов шрифтов. Имея такую информацию, программа может передать файлы шрифтов на принтер, обеспечивая таким образом согласование вывода данных на экран и на печать. Такой подход очень прост, но отсутствие в X Window некоторых средств специальной обработки шрифтов приводит к тому, что качество отображения текста на экране становится недопустимо низким. Если же приложение не в полной мере использует информацию, содержащуюся в файлах шрифтов, страдает также качество вывода на принтер. Ни один из описанных выше подходов не ориентирован на использование сетевых средств, поэтому в данной книге они не рассматриваются. Я упоминаю их лишь как альтернативу серверу FontTastic.

Поделиться с друзьями: