Információk az alakleírásokról

Betűtípus- és alakfájlokat (SHX) alakdefiníciós fájlokból (SHP) lehet lefordítani. Alakdefiníciós fájlokat olyan szövegszerkesztő segítségével hozhat létre és módosíthat, amely képes a szöveget ASCII formátumban menteni.

Az alakleírások szintaxisa megegyezik, akár alakról, akár karakterről van szó, és független az alakleírás végső felhasználásától (betűtípus vagy alak). Ha az alakdefiníciós fájlt betűtípusfájlként használja, a fájlban levő első bejegyzés a magát a betűtípust, nem pedig a fájlban levő egyik alakot írja le. Ha az első bejegyzés is alakot ír le, a fájlt a program alakfájlként kezeli.

Az alakdefiníciós fájl minden egyes sora legfeljebb 128 karaktert tartalmazhat. Hosszabb sorokat a program nem képes lefordítani. Mivel a program figyelmen kívül hagyja az üres sorokat és a pontosvesszőtől jobbra álló szöveget, megjegyzéseket illeszthet az alakdefiníciós fájlokba.

Minden alakdefinícióhoz tartozik egy, az alábbihoz hasonló formátumú fejléc, amelyet egy vagy több sorban követnek az egymástól vesszővel elválasztott meghatározó bájtok, a sort pedig egy 0 zárja.

*shapenumber,defbytes,shapenamespecbyte1,specbyte2,specbyte3,...,0

Az alakot leíró mezők tehát a következők:

alakszám

Olyan szám, amely minden fájlban egyedi, értéke pedig 1 és 258 (Unicode betűtípusok esetében 32768) közötti lehet, és egy csillag (*) előzi meg. A nem Unicode betűtípusfájlok a 256, 257 és 258 alakszámokat használják a Degree_Sign (fokjel), a Plus_Or_Minus_Sign (plusz-mínusz jel), illetve a Diameter_Symbol (átmérő jel) szimbolikus azonosítókhoz. Unicode betűtípusok esetében ezek a jelek az U+00B0, U+00B1, illetve U+2205 alakszámoknál jelennek meg, és a „Latin Extended-A” készletbe tartoznak.

A szöveg-betűtípusok (fájlok, amelyek minden egyes karakter alakdefinícióját tartalmazzák) adott számokat igényelnek a karakterek ASCII kódjai alapján; a többi alakhoz bármilyen szám hozzárendelhető.

defbájtok

Az alak leírásához szükséges adatbájtok, ( adatbájt ) száma, a záró nullát is beleértve. A felső határ alakonként 2000 bájt.

alaknév

Az alak neve. Az alaknév nagybetűvel írandó, egyébként a program nem veszi figyelembe. Kisbetűs neveket a program figyelmen kívül hagyja; ezek általában betűtípusalakok definícióinak megjelölésére használatosak.

adatbájt

Alakmeghatározó bájt. Minden alakmeghatározó bájt egy kódot tartalmaz, amely vagy egy vektor hosszát és irányát tartalmazza, vagy valamilyen speciális kódot tartalmaz. Az alakdefiníciós fájlban egy adatbájtot decimális vagy hexadecimális értékként adhat meg. Ha az adatbájt első karaktere 0 (nulla), a program a két következő karaktert hexadecimális értékként értelmezi.