Opisy symboli

Pliki symboli i czcionek (SHX) są kompilowane z plików definicji symboli (SHP). Pliki definicji symboli można tworzyć lub modyfikować za pomocą edytora tekstu lub procesora tekstu zapisującego plik w tekstowym formacie ASCII.

Składnia opisu symbolu jest taka sama dla każdego symbolu (lub znaku), niezależnie od sposobu jego ostatecznego wykorzystania (symbol lub czcionka). Jeżeli plik definicji symboli jest wykorzystywany jako plik czcionek, pierwsza pozycja w tym pliku opisuje czcionkę, a nie symbol. Jeżeli początkowa pozycja opisuje symbol, plik jest wykorzystywany jako plik symboli.

Żaden wiersz w pliku definicji nie może zawierać więcej niż 128 znaków. Dłuższe wiersze nie mogą być skompilowane. Ponieważ program ignoruje puste wiersze i tekst znajdujący się z prawej strony średnika, do pliku definicji symboli można dodawać komentarze.

Każda definicja symbolu ma wiersz nagłówka o postaci przedstawionej poniżej, po którym następuje jeden lub więcej wierszy zawierających oddzielone przecinkami bajty definicji, kończących się liczbą 0.

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

Poniżej zamieszczono opis poszczególnych pól definicji symbolu:

numersymbolu

Liczba, niepowtarzalna w danym pliku, z przedziału od 1 do 258 (dla czcionek Unicode do 32768), poprzedzona znakiem gwiazdki (*). Czcionki spoza zestawu Unicode wykorzystują numery 256, 257 i 258 jako identyfikatory symboli: znaku stopnia (°), znaku plus/minus (±) oraz znaku średnicy (o). W przypadku czcionek Unicode znaki te pojawiają się dla numerów symboli U+00B0, U+00B1 i U+2205 i stanowią część podzbioru “Latin Extended-A”.

Czcionki tekstowe (pliki zawierające definicje symboli dla każdego znaku) wymagają określonych liczb odpowiadających wartościom kodów ASCII dla każdego znaku; pozostałym symbolom mogą być przypisane dowolne liczby.

defbajty

Liczba bajtów ( bajtsymb ) wymaganych do zdefiniowania symbolu, łącznie z kończącym definicję zerem. Jest ona ograniczona do 2000 bajtów na jeden symbol.

nazwasymbolu

Nazwa symbolu. W nazwach symboli mogą występować jedynie wielkie litery. Nazwy zawierające małe litery są ignorowane i zwykle używane są jako etykiety (komentarze) definicji symboli.

bajtsymb

Bajt określający symbol. Każdy taki bajt jest kodem definiującym długość i zwrot wektora lub też jest kodem specjalnym. Bajt określający symbol może być wyrażony w wartościach dziesiętnych lub szesnastkowych (heksadecymalnych). Jeśli pierwszym znakiem bajtu określającego jest 0 (zero), wówczas następne dwa znaki stanowią liczbę szesnastkową.