Definieren einer erweiterten Big Font-Datei

Um die Größe von zusammengesetzten Kanji-Zeichen zu verringern, können Sie eine erweiterte Big Font-Datei definieren. Erweiterte Big Fonts verwenden den Subsymbol-Code, auf den unmittelbar eine 0 folgt.

Die erste Zeile einer erweiterten Big Font-Datei ist identisch mit der einer normalen Big Font-Datei. Das Format der sich daran anschließenden Zeilen sieht folgendermaßen aus:

*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

Die folgende Liste beschreibt die Felder einer Definitionsdatei für einen Big Font:

character height

Diese Angabe muss zusammen mit der Zeichenbreite verwendet werden, um die Zahl der Einheiten anzugeben, welche die Schriftzeichen definieren.

character width

Diese Angabe muss zusammen mit der Zeichenhöhe verwendet werden, um die Zahl der Einheiten anzugeben, welche die Schriftzeichen definieren. Die Werte für character-height und character-width werden verwendet, um die Primitiven der Schrift zu skalieren. In diesem Zusammenhang sind Primitive die Punkte, Linien, Polygone oder Zeichenfolge der Schrift, die im zweidimensionalen Raum geometrisch ausgerichtet sind. Ein Kanji-Zeichen besteht aus mehreren Primitiven, die wiederholt in verschiedenen Größen und Kombinationen eingesetzt werden.

Modi

Das Byte modes muss für eine horizontal ausgerichtete Schrift den Wert 0 und für eine dual (horizontal oder vertikal) ausgerichtete Schrift den Wert 2 haben. Der Spezialbefehlscode 00E (14) wird nur berücksichtigt, wenn modes auf 2 gesetzt ist.

shape-number

Zeichencode.

defbytes

Bytegröße. Sie beträgt immer 2 Byte, die entweder aus einem Hexadezimalcode oder einer Kombination aus Dezimal- und Hexadezimalcode bestehen.

shape-name

Zeichenname.

Code

Spezieller Code für Symboldefinition. Er beträgt immer 7, sodass er die Subsymboleigenschaft verwenden kann.

primitive#

Referenz auf die Subsymbolnummer. Es sind immer 2 Bytes.

basepoint-x

X-Ursprung des Primitivs.

basepoint-y

Y-Ursprung des Primitivs.

Breite

Breitenskalierung des Primitivs.

Höhe

Höhenskalierung des Primitivs.

terminator

Datei-Ende-Indikator für die Symboldefinition. Er beträgt immer 0.

Um den Skalierfaktor zu erhalten, skaliert das Programm den Grundkörper auf eine Quadrateinheit und multipliziert ihn anschließend mit der Höhe und der Breite, um die Form des Zeichens zu erhalten. Zeichencodes (Symbolnummern) in den Symboldefinitionsdateien für Big Fonts können alle Werte bis maximal 65535 haben. Die folgende Tabelle beschreibt die Felder einer erweiterten Big Font-Datei.

Felder der erweiterten Big Font-Datei

Variable

Wert

Bytegröße

Beschreibung

shape-number

xxxx

2 Byte

Zeichencode

Code

7,0

2 Byte

Erweiterte Schriftdefinition

primitive#

xxxx

2 Byte

Bezug auf Subsymbolnummer

basepoint-x

1 Byte

X-Ursprung des Primitivs

basepoint-y

1 Byte

Y-Ursprung des Primitivs

width

1 Byte

Breitenskalierung des Primitivs

height

1 Byte

Höhenskalierung des Primitivs

terminator

0

1 Byte

Ende der Symboldefinition

Die folgende Abbildung ist ein Beispiel für eine 16x16-Punktmatrix, die Sie zur Konstruktion eines erweiterten Big Fonts, wie zum Beispiel ein Kanji-Zeichen, verwenden können. In dem Beispiel beträgt der Abstand zwischen den einzelnen Punkten eine Einheit. Die Legende verweist auf eine Quadrateinheit.

Quadratmatrix für ein Kanji-Zeichen

Die folgende Abbildung zeigt Beispiele für Kanji-Zeichen. Jedes Zeichen benötigt eine M×N-Matrix, die der weiter oben abgebildeten ähnlich ist (Matrizen müssen nicht quadratisch sein). Die Zahlen über den einzelnen Abbildungen bezeichnen die zugehörigen Symbolnummern.

Beispiele für Kanji-Zeichen

Die folgende Abbildung stellt Kanji-Primitive dar.

Beispiel für Kanji-Primitive

Anmerkung: Nicht alle Schriften werden in einer quadratischen Matrix definiert, einige werden in rechteckigen Matrizen festgelegt.

Beispiel: Symboldefinitionsdatei für einen erweiterten Big Font

*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