Definiowanie pliku rozszerzonych dużych czcionek

W celu zmniejszenia rozmiaru złożonych znaków Kanji można zdefiniować rozszerzony plik czcionek Big Font. Pliki takie używają kodu symbolu podrzędnego, bezpośrednio po którym występuje 0.

Pierwszy wiersz w rozszerzonym pliku czcionek Big Font jest taki sam jak w zwykłym pliku czcionek Big Font. Format następnych wierszy takiego pliku przedstawiono poniżej:

*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

Poniżej podano opisy poszczególnych pól pliku czcionek Big Font:

wysokość znaku

Używana wraz z szerokością znaku do określania liczby jednostek, które definiują znaki czcionek.

szerokość znaku

Używana wraz z wysokością znaku do określania liczby jednostek, które definiują znaki czcionek. Wartości wysokość-znaku i szerokość-znaku są wykorzystywane do skalowania prymitywów czcionek. W tym kontekście prymitywami są punkty, linie, wieloboki lub ciągi znaków czcionki geometrycznie zorientowane w przestrzeni 2D. Pojedynczy znak Kanji składa się z kilku prymitywów, używanych wielokrotnie w różnych skalach i kombinacjach.

orientacja

Bajt orientacja powinien być równy 0 dla zestawu czcionek o orientacji poziomej oraz 2 dla zestawu o orientacji podwójnej (poziomej lub pionowej). Specjalny kod polecenia 00E (14) jest uwzględniany tylko wtedy, gdy ustawienie orientacja wynosi 2.

numer-symbolu

Kod znaku.

defbajty

Rozmiar definicji w bajtach. Są to zawsze 2 bajty zawierające kody szesnastkowe albo kombinację kodu dziesiątkowego i szesnastkowego.

nazwa-symbolu

Nazwa znaku.

kod

Kod specjalny opisu symbolu. Jest to zawsze kod 7, używany do wywoływania symbolu podrzędnego.

prymityw#

Odwołanie do numeru podsymbolu. Są to zawsze 2 bajty.

punktbazowy-x

X początek prymitywu.

punktbazowy-y

Y początek prymitywu.

szerokość

Skala szerokości prymitywu.

wysokość

Skala wysokości prymitywu.

kodzakończenia

Znak końca pliku dla definicji symbolu. Jest to zawsze 0.

W celu ustalenia współczynnika skali program zmniejsza w skali prymityw do wielkości jednostkowego kwadratu, a następnie, w celu uzyskania symbolu znaku, mnoży go przez jego wysokość oraz szerokość. Kody znaków (numery symboli) w pliku definicji symboli czcionek Big Font mogą osiągać wartości do 65535. Poniższa tabela opisuje poszczególne pola rozszerzonego pliku czcionek Big Font.

Pola rozszerzonego pliku czcionek Big Font

Zmienna

Wartość

Liczba bajtów

Opis

numer-symbolu

xxxx

2 bajty

Kod znaku

kod

7,0

2 bajty

Definicja czcionki rozszerzonej

prymityw#

xxxx

2 bajty

Odwołanie do numeru symbolu podrzędnego

punktbazowy-x

1 bajt

Początek X prymitywu

punktbazowy-y

1 bajt

Początek Y prymitywu

szerokość

1 bajt

Skala szerokości prymitywu

wysokość

1 bajt

Skala wysokości prymitywu

kodzakończenia

0

1 bajt

Koniec definicji symbolu

Poniższy rysunek jest przykładem matrycy 16 x 16 punktów, której można użyć do projektowania rozszerzonej czcionki Big Font, takiej jak znaki Kanji. W przykładzie tym odstępy między punktami są równe jednej jednostce. Odpowiada to macierzy jednostkowych kwadratów.

Kwadratowa matryca dla znaków Kanji

Następny rysunek pokazuje kilka przykładów znaków Kanji. Każdy znak zajmuje matrycę M×N (matryce nie muszą być kwadratowe), podobną do matrycy przedstawionej na poprzednim rysunku. Liczby znajdujące się nad rysunkami to skojarzone kody znaków.

Przykłady znaków Kanji

Poniższy rysunek przedstawia prymitywy Kanji.

Przykłady prymitywów Kanji

Uwaga: Nie wszystkie zestawy czcionek są definiowane na bazie matrycy kwadratowej; niektóre wykorzystują matryce prostokątne.

Przykład: Plik definicji symbolu dla rozszerzonego pliku czcionki 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