Tvary a písma tvarů, 8. díl – písmo UNICODE a indexy
Popis písem UNICODE Standardní písma AutoCADu odpovídají mapování znaků na hostitelském operačním systému. Znaky jsou v databázi uloženy přímo, tak jak je program získá z klávesnice. Takové kódy se ro…
Popis písem UNICODE
Standardní písma AutoCADu odpovídají mapování znaků na hostitelském operačním systému. Znaky jsou v databázi uloženy přímo, tak jak je program získá z klávesnice. Takové kódy se rovněž použijí pro generování písem. Tento přístup je problematický pro národní znaky (8bitové), kde existuje více způsobů kódování.
Vzhledem k této nepříjemné vlastnosti různých operačních systémů bylo nutné mít jednotlivé sady písem pro každou kódovou stránku, kterou AutoCAD používá. Tato písma byla v podstatě stejná, pouze některé znaky byly na jiných místech. Pokud se kódování písma neshodovalo s použitou kódovou stránkou výkresu, zobrazovaly se špatné znaky.
S písmy Unicode se texty převádí do kódování Unicode dříve, než jsou vykresleny, proto odpadá nutnost dodávat jednotlivá písma pro různé jazyky a platformy. Jedno písmo Unicode font dokáže vzhledem ke svému znakovému rozsahu pokrýt většinu jazyků a všechny platformy. Tato funkce je pro uživatele transparentní, protože výkresy jsou v případě potřeby (díky různým kódovým stránkám) převedeny na kódovou stránku systému AutoCADu v době načítání. Výkresy jsou vždy uloženy v kódové stránce systému AutoCADu.
Poznámka: Unicode nenabízí odpovídající podporu pro všechny asijské jazyky, proto jsou písma Big Font stále používána v některých nebo ve všech asijských verzích.
Definiční soubory tvarů Unicode se téměř shodují ve formátu a syntaxi s definicí souborů běžných tvarů AutoCADu. Hlavní rozdíl je v syntaxi záhlaví písma:
*UNIFONT,6,název-písma
nad,pod,režimy,kódování,typ,0
Parametry název-písma, nad, pod a režimy odpovídají definici normálních písem. Zbývající dva parametry jsou definovány následovně:
kódování
Kódování písma. Jedna z následujících hodnot.
0 Unicode
1 Zabalený multibajt 1
2 Soubor tvaru
typ
Informace o vložení písma. Určuje, zda je písmo pod licencí. Takové písmo nesmí být upravováno ani distribuováno. Bitově kódované hodnoty je možné přidat:
0 Písmo lze vložit
1 Písmo nelze vložit
2 Vložení je pouze pro čtení
Dalším důležitým a někdy matoucím rozdílem je použití kódu 7 (odkaz na podtvar). Pokud definice tvaru obsahuje odkaz na podtvar (kód 7), data, následující za tímto kódem, jsou interpretována jako dvoubajtová. To ovlivňuje celkový počet datových bajtů (defbajty) v záhlaví definice tvaru. Například následující řádky můžete najít v souboru romans.shp:
*00080,4,keuroRef
7,020AC,0
Druhé pole v záhlaví reprezentuje celkový počet bajtů v popisu tvaru. Pokud nepracujete s písmem UNICODE, můžete tíhnout k použití 3 bajtů místo 4, to však může způsobit chybu při kompilaci souboru SHP. Je to tak, i když číslo odkazovaného tvaru není v rozsahu dvou bajtů (pod 255); kompilátor vždy používá pro tuto hodnotu dva bajty, proto s tím musíte počítat v záhlaví.
Jediný rozdíl mezi definicemi tvaru Unicode a běžnými definicemi tvaru jsou čísla tvaru. Poslední rozdíl v definicích tvarů Unifont a běžným písmem je ten, že pro Unifont se doporučuje používat šestnáckový zápis. Není to požadavkem, ale zjednodušuje to vyhledávání znaků zapisovaných formou U+ hodnota.
Horní a dolní indexy v souborech SHX
Písma AutoCADu SHX mají omezené možnosti horního a dolního indexu. Je však relativně snadné úpravou definičních souborů tvarů zlepšit možnosti horního a dolního indexu.
Tvorba horních a dolních indexů vyžaduje dva kroky. Nejprve „imaginární pero“, které vytváří text, vektor za vektorem, musí být posunuto na obrazovce nahoru nebo dolů. Potom je třeba zmenšit „měřítko“ písma. Navíc se musí pero pomocí opačného postupu vrátit k normálnímu písmu. Písmo musí rozpoznat čtyři nové klíče: dva pro horní index a dva pro dolní index. Chcete-li se vyhnout úpravě existujících definic písem, můžete k nim přistupovat pomocí numerické části klávesnice.