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:
Używana wraz z szerokością znaku do określania liczby jednostek, które definiują znaki czcionek.
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.
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.
Kod znaku.
Rozmiar definicji w bajtach. Są to zawsze 2 bajty zawierające kody szesnastkowe albo kombinację kodu dziesiątkowego i szesnastkowego.
Nazwa znaku.
Kod specjalny opisu symbolu. Jest to zawsze kod 7, używany do wywoływania symbolu podrzędnego.
Odwołanie do numeru podsymbolu. Są to zawsze 2 bajty.
X początek prymitywu.
Y początek prymitywu.
Skala szerokości prymitywu.
Skala wysokości prymitywu.
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
*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