Для представления шрифтов используются различные форматы. В ранних версиях 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 |
и т.д. | … | … |
Замкнутый контур заполняется цветом. Основное преимущество контурных шрифтов состоит в том, что символ легко масштабировать для отображения на устройстве с любой разрешающей способностью. Для масштабирования символа достаточно перевести описание из исходной системы координат в систему координат, соответствующую конкретному устройству отображения. Чтобы описание было максимально точным, разрешающая способность в исходной системе координат принимается очень высокой. Описание большинства символов не исчерпывается прямыми линиями. Как правило, контур символа строится из набора кривых. Часто в описание символа включают закодированные специальным образом