Co je soubor TTF?
Soubor s příponou .ttf představuje soubory písem založené na technologii písem specifikace TrueType. Původně byl navržen a spuštěn společností Apple Computer, Inc pro Mac OS a později byl přijat společností Microsoft pro OS Windows. Písma TrueType poskytují nejvyšší kvalitu zobrazení na obrazovkách počítačů a tiskáren bez jakékoli závislosti na rozlišení. Všechny moderní aplikace využívající fonty jsou schopny pracovat se soubory TTF. Soubory písem TTF jsou volně dostupné přes internet a lze je také převést do jiných formátů souborů písem, jako jsou OTF a WOFF.
Stručná historie
Formát písma TTF, navržený společností Apply Computer, Inc v 80. letech pro MacOS, byl zaměřen na vyřešení některých technických omezení formátu Type 1 společnosti Adobe. Apple začlenil podporu TrueType písem do Mac v roce 1991. Cílem designu za písmy TTF byla efektivita při ukládání a zpracování a rozšiřitelnost. Na základě této rozšiřitelnosti lze existující písma převést do formátu TrueType.
Microsoft poprvé použil písma TrueType ve Windows 3.1 v dubnu 1992 poté, co Apple souhlasil s licencí TrueType společnosti Microsoft. Vylepšila mechanismus rasterizace a zlepšila jeho účinnost a výkon.
Specifikace formátu souborů True Type
Soubor písem TrueType je binární soubor, který se skládá ze sekvence zřetězených tabulek. Každá tabulka je posloupnost slov a má název známý jako „Tag“. Každá značka je datového typu uint32 a skládá se ze čtyř znaků. První tabulka v souboru je adresář písem, který umožňuje přístup k dalším tabulkám v souboru písem. Data písem jsou obsažena v dalších tabulkách za tabulkou adresáře písem. Vzhledem k tomu, že každá tabulka je přístupná pomocí své značky, mohou se tabulky v souboru objevit v libovolném pořadí.
Požadované tabulky a jejich názvy značek jsou uvedeny v následující tabulce.
Značka | Tabulka |
---|---|
‘cmap’ | mapování znaků na glyfy |
‘glyf’ | glyfové údaje |
‘hlava’ | záhlaví písma |
‘hhea’ | horizontální záhlaví |
‘hmtx’ | horizontální metriky |
’loca' | index k umístění |
‘maxp’ | maximální profil |
‘jméno’ | pojmenování |
‘příspěvek’ | PostScript |
Typy dat
Písma TrueType používají standardní celé číslo a další datové typy uvedené v následující tabulce.
Typ dat | Popis |
---|---|
shortFrac | 16bitový zlomek se znaménkem |
Opraveno | 16,16bitové číslo s pevnou řádovou čárkou se znaménkem |
FWord | 16bitové celé číslo se znaménkem, které popisuje veličinu v jednotkách FJ, nejmenší měřitelnou vzdálenost v em prostoru. |
uFWord | 16bitové celé číslo bez znaménka, které popisuje veličinu v jednotkách FJ, nejmenší měřitelnou vzdálenost v em prostoru. |
F2Dot14 | 16bitové pevné číslo se znaménkem, přičemž spodních 14 bitů představuje zlomek. |
longDateTime | Dlouhý vnitřní formát data v sekundách od půlnoci 12:00, 1. ledna 1904. Je reprezentován jako 64bitové celé číslo se znaménkem. |
Adresář písem
První tabulka v písmu TrueType je adresář písem, který poskytuje přístup k informacím potřebným pro přístup k datům v jiných tabulkách. Dále se skládá z:
Offset subtable
- uchovává záznamy o tabulkách ve fontu a poskytuje informace o offsetu pro přístup ke každé tabulce v adresářiTable Directory
- Obsahuje položky pro každou tabulku ve fontu
Offsetová podtabulka
Podtabulka offsetu je uvedena níže.
Typ | Název | Popis |
---|---|---|
uint32 | typ scaleru | Značka označující škálovač OFA, který se má použít k rastrování tohoto písma; více informací naleznete v poznámce k typu scaleru níže. |
uint16 | numTables | počet stolů |
uint16 | rozsah hledání | (maximální výkon 2 <= numTables)*16 |
uint16 | entrySelector | log2(maximální výkon 2 <= numTables) |
uint16 | rangeShift | numTables*16-searchRange |
Adresář tabulky
Adresář tabulky následuje hned za offsetovou podtabulkou. Jeho struktura je uvedena v následující tabulce.
Typ | Název | Popis |
---|---|---|
uint32 | tag | 4bajtový identifikátor |
uint32 | kontrolní součet | kontrolní součet pro tuto tabulku |
uint32 | offset | posun od začátku sfnt |
uint32 | délka | délka této tabulky v bytech (skutečná délka bez vycpávky) |
Každá tabulka v souboru písem musí mít svůj vlastní záznam v adresáři tabulky. Záznamy v tabulce musí být seřazeny vzestupně podle značky.