Описания шрифтов Unicode
 
 
 

Одного шрифта Unicode, вследствие гораздо большего количества символов в нем, достаточно для поддержки всех языков и платформ. Формат и синтаксис файлов описания шрифтов Unicode практически идентичны формату и синтаксису файлов описания обычных форм AutoCAD.

Основное различие заключается в синтаксисе заголовка шрифта, который выглядит так:

*UNIFONT,6,имя_шрифта
сверху,снизу,режимы,кодировка,тип,0

Параметры имя_шрифта, сверху, снизу и режимы задаются так же, как и для обычных шрифтов. Смысл двух остальных параметров описан ниже:

кодировка

Кодировка шрифта. Может иметь одно из следующих целых значений:

0 Unicode

1 Упакованный многобайтовый 1

2 Файл формы

тип

Информация о способе внедрения шрифта. Определяет, является ли шрифт лицензионным. Лицензионные шрифты нельзя ни модифицировать, ни распространять. Возможные значения:

0?Шрифт может быть внедрен

1?Шрифт не может быть внедрен

2?Внедрение осуществляется без возможности модификации

Другим важным различием является способ обработки ссылок на субформы (код 7). Если в описании шрифта присутствует такая ссылка, следующие за кодом 7 данные интерпретируются как 2-байтовое значение. Это влияет на общее количество байт данных (число_байт), записанное в заголовке описания формы. Например, в файле romans.shp можно найти такое описание формы:

*00080,4,keuroRef
7,020AC,0

Второе поле в заголовке показывает, сколько байт занимает данное описание. Тем, кто ранее не работал со шрифтами Unicode, может показаться, в этом случае длина должна равняться 3 байтам, а не 4, но если изменить таким образом значение длины, возникнет ошибка компиляции SHP-файла. Даже если номер формы, на которую выполняется ссылка, занимает всего один байт (т.е. меньше или равен 255), компилятор всегда отводит под данное поле 2 байта, так что это необходимо учесть в заголовке.

Еще одно видимое различие между шрифтами Unicode и обычными шрифтами относится к формату записи номеров форм. В описаниях форм шрифтов Unifont, поставляемых с AutoCAD, используются шестнадцатеричные, а не десятичные номера шрифтов. Хотя это и не обязательно, соблюдение данного соглашения намного упрощает ориентацию в файле (особенно при обращении к символам-формам с помощью кода \U+).