Для уменьшения размера составных иероглифов Kanji можно создать расширенный большой шрифт. Для представления такого шрифта используется код субформы, за которым сразу следует 0.
Первая строка файла расширенного большого шрифта ничем не отличается от первой строки файла обычного большого шрифта. Последующие строки файла имеют формат:
*0,5,font-name character-height, 0, modes, character-width,0
.
.
.
*shape-number,defbytes,shape-name
.
code,0,primitive#,basepoint-x,basepoint-y,width,height,
.
.
code,0,primitive#,basepoint-x,basepoint-y,width,height,
.
terminator
Рассмотрим назначение каждого из полей:
Используется совместно с шириной и задает количество единиц в символах шрифта.
Используется совместно с высотой и задает количество единиц в символах шрифта. Высота_символа и ширина_символа определяют масштабирование шрифтовых примитивов. В данном случае примитивами являются точки, отрезки, многоугольники и цепочки символов, геометрически ориентированные в 2D-пространстве. Иероглиф состоит из нескольких примитивов, которые многократно используются в различных масштабах и комбинациях.
Байт режимы равен 0 для шрифта только с горизонтальной ориентацией и 2 — для шрифта, поддерживающего двойную ориентацию (горизонтально и вертикально). Специальный код 00E (14) может использоваться только тогда, когда байт режимы равен 2.
Код символа.
Размер в байтах. Длина значения — всегда 2 байта. Оно может включать в себя шестнадцатеричные коды или сочетание десятичного и шестнадцатеричного.
Имя символа.
Специальный код описания формы. Всегда равен 7, т. к. может описывать субформу.
Ссылка на номер субформы. Длина поля — всегда 2 байта.
Координата X начала примитива.
Координата Y начала примитива.
Масштаб ширины примитива.
Масштаб высоты примитива.
Индикатор конца файла определения формы. Всегда равен 0.
Для обеспечения соответствия масштабному коэффициенту программа масштабирует примитив до квадратной единицы, а затем умножает его по высоте и ширине до достижения формы символа. Коды символов (номера форм) в файле описания большого шрифта могут принимать значения до 65535. В следующей таблице приведено описание полей файла расширенного большого шрифта.
|
Поля файла расширенного большого шрифта |
|||
|---|---|---|---|
|
Параметр |
Значение |
Размер в байтах |
Описание |
|
номер_формы |
xxxx |
2 байта |
Код символа |
|
код |
7,0 |
2 байта |
Определение расширенного шрифта |
|
примитив# |
xxxx |
2 байта |
Ссылка на номер субформы |
|
x_базовая |
1 байт |
Координата X начала примитива |
|
|
y_базовая |
1 байт |
Координата Y начала примитива |
|
|
ширина |
1 байт |
Масштаб ширины примитива |
|
|
высота |
1 байт |
Масштаб высоты примитива |
|
|
ограничитель |
0 |
1 байт |
Конец определения формы |
На следующем чертеже представлен пример матрицы 16 x 16 точек, которую можно использовать для создания расширенного крупного шрифта (например, иероглифов). Расстояние между точками матрицы равно одной единице. Стрелка от выноски указывает на единичный квадрат.

Квадратная матрица для иероглифического символа
На следующем чертеже показаны некоторые примеры иероглифов. Каждый из них занимает матрицу M×N (не обязательно квадратную), подобную представленной выше. Цифры над иероглифом показывают номер соответствующей формы.

Примеры иероглифов
На следующем чертеже показаны примитивы, из которых составляются иероглифы.

Примеры примитивов
*BIGFONT 50,1,080,09e *0,5,Extended Font 15,0,2,15,0 *08D91,31,unspecified 2,0e,8,-7,-15, 7,0,08cfb,0,0,16,16,7,0,08bca,2,3,12,9, 2,8,18,0,2,0e,8,-11,-3,0 *08CD8,31,unspecified 2,0e,8,-7,-15, 7,0,08be0,0,0,8,16,7,0,08cc3,8,0,8,16, 2,8,18,0,2,0e,8,-11,-3,0 *08ADF,31,unspecified 2,0e,8,-7,-15, 7,0,089a4,0,0,8,16,7,0,08cb3,8,0,8,16, 2,8,18,0,2,0e,8,-11,-3,0 *08CE8,39,unspecified 2,0e,8,-7,-15, 7,0,089a4,0,1,5,14,7,0,08cc3,5,2,5,14,7,0,08c8e,9,0,7, 16,2,8,18,0,2,0e,8,-11,-3,0 *089A4,39,primitive 2,0e,8,-7,-15,2,8,1,14,1,0c0, 2,8,-11,-6,1,0a0,2,8,-12,-7,1, 0e0,2,8,-7,13,1,0dc,2,8,11,-1, 2,0e,8,-11,-3,0 *08BCA,41,primitive 2,0e,8,-7,-15,2,8,1,14,1,0c0, 2,8,-11,-6,1,0a0,2,8,-12,-8,1, 0e0,2,0e5,1,0ec,2,063,1,8, 2,-3,2,06f,2,0e,8,-11,-3,0 *08BE0,81,primitive 2,0e,8,-7,-15,2,8,3,9,1,080, 2,8,-10,-4,1,0c0,2,8,-13,-5,1, 0e0,2,8,-7,9,1,09c,2,8,-1,14, 1,8,-6,-5,2,8,8,5,1,8,6,-5, 2,8,-11,-6,1,8,1,-3,2,8,7,3, 1,8,-1,-3,2,8,-3,15,1,01a,2, 012,1,01e,2,8,10,-14,2,0e,8, -11,-3,0 *08C8E,44,primitive 2,0e,8,-7,-15,2,8,3,15,1,090,0fc,038, 2,8,-6,11,1,090,2,8,-9,-5,1, 090,2,096,1,0ac,8,-1,-3,01a,01a,2,8, 18,0,2,0e,8,-11,-3,0 *08CB3,61,primitive 2,0e,8,-7,-15,2,042,1,02b,02a,018,2, 0d0,1,012,034,2,069,1,01e,040,2,8, -8,6,1,02b,2,8,4,5,1,08c,2,8, -3,8,1,03c,2,8,-5,3,1,0e0,2,8, -12,5,1,0a0,2,8,6,-14,2,0e,8, -11,-3,0 *08CC3,34,primitive 2,0e,8,-7,-15,2,0c1,1,06c,0a8,064,0a0,2,8, -5,9,1,09c,2,8,-7,5,1,0e0,2,8, 4,-11,2,0e,8,-11,-3,0 *08CFB,22,primitive 2,0e,8,-7,-15,2,0d2,1,0cc,0c8,0c4,0c0,2,8, 5,-13,2,0e,8,-11,-3,0