Sobre como definir um arquivo de fonte grande estendida

Para reduzir o tamanho de caracteres Kanji compostos, você precisa definir um arquivo Big Font estendido. As fontes grandes estendidas utilizam códigos de subforma, seguidos imediatamente por um 0.

A primeira linha de um arquivo Big Font estendido é a mesma que em um arquivo Big Font normal. Esse é o formato para as linhas restantes do arquivo:

*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

A seguinte lista descreve os campos de um arquivo de definição Big Font:

altura do caractere

Utilizado com a largura do caractere para indicar o número de unidades que definem os caracteres da fonte.

largura do caractere

Utilizado com a altura do caractere para indicar o número de unidades que definem os caracteres da fonte. Os valores de character-height e character-width são usados para escalar as primitivas da fonte. Neste contexto, as primitivas são pontos, linhas, polígonos ou sequências de caractere de uma fonte orientada geometricamente em um espaço 2D. Um caractere Kanji consiste de várias primitivas usadas repetidamente em escalas e combinações diferentes.

modos

O byte modes deve ser 0 para uma fonte orientada horizontalmente e 2 para uma fonte com dupla orientação (horizontal ou vertical). O código especial de comando 00E (14) é seguido só quando modes é definido para 2.

número de forma

Código de caractere.

defbytes

Tamanho de byte. É sempre 2 bytes, consistindo em códigos hexadecimais ou uma combinação de decimal e hexadecimais.

nome da forma

Nome do caractere.

código

Código especial de descrição da forma. É sempre 7 para que o recurso de subforma possa ser usado.

primitiva#

Referência ao número da subforma. É sempre 2 bytes.

ponto base-x

X origem da primitiva.

ponto base-y

Y origem da primitiva.

largura

Escala da largura da primitiva.

altura

Escala da altura da primitiva.

terminador

Indicador de final de arquivo para a definição de forma. Sempre é 0.

Para chegar ao fator de escala, o programa diminui o primitivo para uma unidade quadrada e, em seguida, o multiplica pela altura e largura para obter a forma do caractere. Os códigos do caractere (números de forma) no arquivo de definição de forma Big Font podem ter valores de até 65535. A tabela a seguir descreve os campos de um arquivo Big Font estendido.

Campos de um arquivo Big Font estendido

Variável

Valor

Tamanho de byte

Descrição

shape-number

xxxx

2 bytes

Código de caractere

code

7,0

2 bytes

Definição de fonte estendida

primitive#

xxxx

2 bytes

Consulte número de subforma

basepoint-x

1 byte

Origem X de primitiva

basepoint-y

1 byte

Origem Y de primitiva

width

1 byte

Escala de largura da primitiva

height

1 byte

Escala de altura da primitiva

terminator

0

1 byte

Fim da definição de forma

A figura a seguir é um exemplo de uma matriz de ponto 16 x 16 que pode ser usada para projetar um Big Font estendido, como um caractere Kanji. No exemplo, a distância entre cada ponto é uma unidade. O balão de explicação indica uma unidade quadrada.

Uma matriz quadrada para um caractere Kanji

A figura a seguir mostra exemplos de caracteres Kanji. Cada caractere ocupa uma matriz M x N, (matrizes não devem ser quadradas) semelhante àquela mostrada na figura anterior. Os números acima de cada figura são os números de forma associados.

Exemplos de caracteres Kanji

A figura a seguir mostra primitivas Kanji.

Exemplos de primitivas Kanji

Nota: Nem todas as fontes são definidas em uma matriz quadrada; algumas são definidas em matrizes retangulares.

Exemplo: arquivo de definição de forma para um Big Font estendido

*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