Unicode-Schriftbeschreibungen

Eine einzelne Unicode-Schrift kann wegen ihres großen Zeichensatzes alle Sprachen und Plattformen unterstützen. Unicode-Symboldefinitionsdateien sind mit dem Format und der Syntax normaler Symboldefinitionsdateien weitestgehend identisch.

Der Hauptunterschied liegt in der Syntax der Schrift-Kopfzeile, wie der folgende Code zeigt:

*UNIFONT,6,font-name
above,below,modes,encoding,type,0 

Die Parameter font-name , above , below und modes entsprechen denen in regulären Schriften. Die beiden verbleibenden Parameter sind wie folgt definiert:

encoding

Schriftcodierung. Verwendet einen der folgenden Ganzzahlwerte:

0 Unicode

1 Packed Multibyte 1

2 Symboldatei

type

Informationen zur Schrifteinbettung. Legt fest, ob die Schrift lizenziert ist. Lizenzierte Schriften dürfen nicht modifiziert oder ausgetauscht werden. Bitcodierte Werte können hinzugefügt werden.

0 Schrift kann eingebettet werden

1 Schrift kann nicht eingebettet werden

2 Einbettung ist schreibgeschützt

Einen weiteren Unterschied stellt die Handhabung der Code 7-Subsymbolreferenz dar. Enthält eine Symbolbeschreibung eine Code 7-Subsymbolreferenz, dann werden die Daten, die auf den Code 7 folgen, als 2-Byte-Werte interpretiert. Das hat Auswirkungen auf die Gesamtzahl der Datenbytes ( defbytes ) in der Kopfzeile der Symbolbeschreibung. Die folgende Symbolbeschreibung findet man beispielsweise in der Datei romans.shp:

*00080,4,keuroRef
7,020AC,0

Im zweiten Feld der Kopfzeile erscheint die Gesamtzahl der Bytes in der Symbolbeschreibung. Wenn Sie keine Erfahrung mit Unicode-Schriftbeschreibungen haben, ziehen Sie es vermutlich vor, mit drei Byte anstelle von vier zu arbeiten. Dies würde jedoch zu einem Fehler bei der Kompilierung der SHP-Datei führen. Dies gilt, obwohl die angegebene Symbolnummer nicht im zwei-Byte-Bereich (unter 255) liegt. In der Kopfzeile muss dies beachtet werden, da der Kompilierer für diesen Wert immer zwei-Bytes verwendet.

Der einzige andere Unterschied zwischen Unicode- und regulären Symboldefinitionen sind die Symbolnummern. In den vom Programm bereitgestellten Unicode-Symboldefinitionen werden keine Dezimalwerte, sondern Hexadezimalwerte für die Symbolnummern verwendet. Dies ist zwar nicht unbedingt erforderlich, erleichtert es jedoch, auf die Symbolnummern mit den \U+-Steuerzeichenwerten zu verweisen.