A propos de la définition d'un fichier de grandes polices étendues

Pour réduire la taille des caractères Kanji composites, vous pouvez définir un fichier de grandes polices étendues. Les grandes polices étendues utilisent le code de forme secondaire, immédiatement suivi d'un 0.

La première ligne d'un fichier de grandes polices étendues est la même que celle du fichier Grandes polices ordinaire. Le format des autres lignes du fichier est le suivant :

*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

La liste suivante décrit les champs d'un fichier de définition Grandes polices :

hauteur de caractère

Utilisé avec la largeur de caractère pour indiquer le nombre d'unités qui définissent les caractères de la police.

largeur de caractère

Utilisé avec la hauteur de caractère pour indiquer le nombre d'unités qui définissent les caractères de la police. Les valeurs hauteur-caractère et largeur-caractère permettent de mettre à l'échelle les primitives de la police. Dans ce contexte, les primitives sont les points, les lignes, les polygones ou les chaînes de caractères de la police orientée géométriquement dans un espace 2D. Un caractère Kanji comprend plusieurs primitives utilisées régulièrement dans différentes échelles et combinaisons.

mode

L'octet modes doit être égal à 0 pour une police horizontale et à 2 pour une police à double orientation (horizontale ou verticale). Le code de commande spécial 00E (14) n'est pris en compte que lorsque modes a pour valeur 2.

numéro-forme

Code de caractère.

octetsdéf

Taille en octets. Il s'agit toujours de 2 octets, composés d'un code hexadécimal ou d'une combinaison de codes décimaux et hexadécimaux.

nom-forme

Nom de caractère.

code

Code spécial de description de forme. La valeur est toujours 7 ; la fonction de forme secondaire peut ainsi être utilisée.

n°primitive

Référence au numéro de forme secondaire. La valeur est toujours 2 octets.

pointdebase-x

Origine X de la primitive.

pointdebase-y

Origine Y de la primitive.

Largeur

Echelle de la largeur de la primitive.

hauteur

Echelle de la hauteur de la primitive.

caractère de fin

Indicateur de fin de fichier de la définition de forme. Correspond toujours à 0.

Pour atteindre le facteur d'échelle, le programme réduit l'échelle de la primitive à une unité carrée, puis la multiplie par la hauteur et la largeur afin d'obtenir la forme du caractère. La valeur d'un code de caractère (numéro de forme) du fichier de définition de forme Grandes polices peut atteindre 65 535. Le tableau suivant décrit les champs du fichier de grandes polices étendues.

Champs du fichier de grandes polices étendues

Variable

Valeur

Taille en octets

Description

numéro-forme

xxxx

2 octets

Code de caractère

code

7,0

2 octets

Définition de la police étendue

n°primitive

xxxx

2 octets

Fait référence au numéro de forme secondaire.

pointdebase-x

1 octet

Origine X de la primitive

pointdebase-y

1 octet

Origine Y de la primitive

largeur

1 octet

Echelle de la largeur de la primitive

hauteur

1 octet

Echelle de la hauteur de la primitive

caractère de fin

0

1 octet

Fin de la définition de forme

La figure suivante illustre une matrice de 16 points x 16 points permettant de concevoir un caractère de grande police étendue, tel qu'un caractère Kanji. Dans cet exemple, la distance entre deux points est d'une unité. L'info-bulle indique une unité carrée.

Matrice carrée pour un caractère Kanji

La figure suivante illustre certains caractères Kanji. Chaque caractère occupe une matrice M×N (les matrices ne sont pas nécessairement carrées), similaire à celle de la figure précédente. Le nombre au-dessus de chaque figure correspond à un numéro de forme.

Exemples de caractères Kanji

La figure suivante illustre des primitives Kanji.

Exemples de primitives Kanji

Remarque : Toutes les polices ne sont pas définies dans une matrice carrée ; certaines sont configurées dans des matrices rectangulaires.

Exemple : fichier de définition de forme d'une grande police étendue

*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