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

на главную

Жанры

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

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

Шрифт:

Форматы файлов шрифтов

Существуют два типа шрифтов: растровые и контурные (контурные шрифты часто называют масштабируемыми). Эти типы шрифтов имеют разные свойства и обрабатываются различными способами. Большинство серверов шрифтов, предназначенных для выполнения в системе Linux, поддерживают оба типа шрифтов. Администратор сети должен уметь различать эти типы шрифтов и оценивать преимущества и недостатки каждого из них.

Форматы растровых шрифтов

Область отображения большинства устройств, предназначенных для вывода шрифтов (в том числе дисплеев и принтеров), состоит из отдельных прямоугольных элементов, называемых пикселями. Каждый пиксель может быть окрашен в тот или иной цвет. На монохромном дисплее или на черно-белом лазерном принтере пиксель принимает одно из двух

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

В качестве примера рассмотрим рис. 15.1, на котором показано представление одного символа растрового шрифта. Даже если не принимать во внимание, какие именно пиксели закрашены черным, а какие белым цветом, данный рисунок иллюстрирует ряд характеристик растрового шрифта. Знакоместо (часть растровой сетки, предназначенная для отображения символа) имеет фиксированные размеры. В пропорциональных шрифтах, которые чаще всего используются в книгопечатании, различные символы могут иметь разную ширину. Соответственно различается ширина знакомест для разных символов одного и того же шрифта. Высота знакоместа фиксирована; фиксирована также высота большинства символов. (Существуют так называемые символы с подстрочными элементами. Подстрочный элемент располагается под нижней границей символа. Примерами подобных символов являются g, j, p, q и у. Заметьте, что на рис. 15.1 символ размещается в пределах знакоместа так, что остается место для подстрочного элемента.) Поскольку высота знакоместа фиксирована, размер шрифта на одном устройстве отображения остается постоянным. При переходе на другое устройство с другой разрешающей способностью размер символов изменится. Чтобы обеспечить отображение символов одинакового размера на различных устройствах или отображение символов разного размера на одном устройстве, необходимо иметь в наличии набор битовых карт.

Рис. 15.1. Битовая карта определяет, какие пиксели в составе знакоместа должны отображаться черным цветом, а какие — белым

Разрешающая способность дисплея обычно выражается в точках на дюйм (dpi — dots per inch), т.е. разрешение — это количество пикселей, помещающихся на отрезке в один дюйм. В большинстве устройств разрешающая способность по горизонтали и по вертикали совпадает, однако в некоторых случаях она может различаться. Мониторы компьютеров обычно имеют разрешение от 72 до 120 dpi, а разрешающая способность принтеров, как правило, лежит в пределах 144-1200 dpi. (Разрешающая способность, равная 144, характерна для матричных принтеров; кроме того, такое разрешение часто устанавливают, чтобы предельно ускорить процесс печати за счет снижения ее качества.) Разрешающая способность высокоуровневых принтеров и специализированных полиграфических устройств, как правило, намного превышает 1200 dpi. Разнообразие устройств печати и необходимость создания отдельного файла для каждого размера шрифта и для каждого значения разрешающей способности приводит к тому, что общее число файлов становится недопустимо большим.

На заметку

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

Размеры шрифтов измеряются в пунктах (эта единица измерения широко применяется в полиграфии). Для отображения текста абзаца обычно используется шрифт размером 9–14 пунктов. Выбор размера зависит от шрифта и назначения текста. Растровые шрифты чаще всего создаются в том случае, когда необходимо отображать символы фиксированных размеров на устройстве с определенной разрешающей способностью, например, если нужен текст размером 12 пунктов на устройстве с разрешением 144 dpi. Один и тот же шрифт позволяет отображать символы разного размера на устройствах с различной разрешающей способностью, однако шрифт, созданный с нуля и ориентированный на устройство с конкретным разрешением будет несколько отличаться от шрифта, перенесенного с другого устройства. При необходимости для отображения символов требуемого размера можно изменить битовые карты символов (например, уменьшить размер символов с 12 до 10 пунктов), однако в результате подобных действий отображается текст плохого качества.

Основным

преимуществом растровых шрифтов является их простота, а следовательно, и возможность быстрого вывода на устройство отображения. Для вывода символа достаточно скопировать несколько битов из памяти компьютера на дисплей. Это было чрезвычайно важно в 1980-х годах, когда объем ресурсов, доступных пользователям, был крайне мал, но в середине 1990-х к внешнему виду отображаемых данных стали предъявляться все более строгие требования и качество растровых шрифтов перестало устраивать пользователей. В настоящее время быстродействие компьютеров достаточно велико и растровые шрифты применяются все реже.

Для представления шрифтов используются различные форматы. В ранних версиях X Window применялся формат SNF (Server Normal Format — обычный формат сервера), но сейчас он встречается редко. Как правило, в X Window используются шрифты в формате PCF (Portable Compiled Font — переносимый компилируемый шрифт). Формат BDF (Bitmap Distribution Format — формат распространения битовых карт) также часто применяется в X Window, но чтобы X-программы могли работать с ним, сервер шрифтов преобразует шрифты BDF в формат PCF. В других операционных системах используются другие форматы. Чтобы работать с ними в системе Linux, надо воспользоваться одним из преобразователей шрифтов.

На заметку

XFree86 использует PCF-шрифты, сжатые посредством программы

gzip
. В большинстве дистрибутивных пакетов для экономии дискового пространства шрифты поставляются в сжатом виде. При этом имена PCF-файлов оканчиваются символами
.pcf.gz
. Чтобы использовать эти шрифты при работе X-программ, не обязательно распаковывать их.

Шрифты, применяемые в системе Linux, не ограничиваются используемыми в X Window. Некоторые программы работают с собственными наборами шрифтов. Одной из таких программ является система TeX, в которой применяется формат Packed Font (файлы шрифтов имеют расширение

.pk
). Поскольку система TeX в основном разрабатывалась для подготовки материалов к печати, а представлению текста на экране монитора уделялось не слишком большое внимание, число пикселей, составляющих знакоместа в шрифтах Packed Font, существенно превышает соответствующий показатель других форматов.

Форматы контурных шрифтов

Одна из основных проблем, возникающих при работе с растровыми шрифтами, состоит в том, что эти шрифты плохо масштабируются. Если вам необходимо отображать на одном устройстве символы разных размеров либо выводить текст одного и того же размера на устройства с различной разрешающей способностью, вам потребуется несколько файлов шрифтов. Учитывая разнообразие имеющихся в настоящее время устройств отображения и требования к масштабированию символов, предъявляемые современными программами (например, текстовыми процессорами), становится очевидно, что, для того, чтобы отобразить высококачественный текст на разнообразном оборудовании, потребуется чрезвычайно большой набор файлов шрифтов. Решить эту проблему можно, используя контурные, или масштабируемые шрифты. Вместо битовых карт в контурных шрифтах символы представляются в виде описаний кривых, с помощью которых формируются их контуры. Вернемся к рис. 15.1. Если знакоместо 8×8 пикселей увеличить до гораздо больших размеров, например 80000×80000, контуры символа могут быть описаны набором прямых так, как это показано в табл. 15.1.

Таблица 15.1. Контурное описание символа, представленного на рис. 15.1

Операция Координата x Координата у
Установка в начальную позицию 10000 10000
Прямая 10000 60000
Прямая 20000 60000
Прямая 20000 40000
и т.д.

Замкнутый контур заполняется цветом. Основное преимущество контурных шрифтов состоит в том, что символ легко масштабировать для отображения на устройстве с любой разрешающей способностью. Для масштабирования символа достаточно перевести описание из исходной системы координат в систему координат, соответствующую конкретному устройству отображения. Чтобы описание было максимально точным, разрешающая способность в исходной системе координат принимается очень высокой. Описание большинства символов не исчерпывается прямыми линиями. Как правило, контур символа строится из набора кривых. Часто в описание символа включают закодированные специальным образом рекомендации разработчика (hint). Эти рекомендации позволяют повысить качество отображения символов на устройствах с низким разрешением, например на мониторах компьютеров.

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

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

Para bellum

Ланцов Михаил Алексеевич
4. Фрунзе
Фантастика:
попаданцы
альтернативная история
6.60
рейтинг книги
Para bellum

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Сильнейший ученик. Том 2

Ткачев Андрей Юрьевич
2. Пробуждение крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сильнейший ученик. Том 2

Измена. Ребёнок от бывшего мужа

Стар Дана
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Ребёнок от бывшего мужа

Real-Rpg. Город гоблинов

Жгулёв Пётр Николаевич
1. Real-Rpg
Фантастика:
фэнтези
7.81
рейтинг книги
Real-Rpg. Город гоблинов

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Эйгор. В потёмках

Кронос Александр
1. Эйгор
Фантастика:
боевая фантастика
7.00
рейтинг книги
Эйгор. В потёмках

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Удобная жена

Волкова Виктория Борисовна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Удобная жена