Metrika písma TeX - TeX font metric

Metrika písma TeX
Přípona názvu souboru
.tfm
Typ internetového médiaapplication / x-tex-tfm (neoficiální)
VyvinulDonald E. Knuth
Typ formátupísmo metrický

Metrika písma TeX (TFM) je písmo formát souboru používá TeX sazba Systém. Jedná se o metrický formát písma, nikoli o formát obrysového písma TrueType, protože poskytuje pouze informace potřebné k sazbě písma, jako je šířka, výška a hloubka každého znaku. Aktuální glyfy jsou uloženy jinde. Toto není jedinečné pro TeX; Adobe AFM soubory a Windows ' PFM (NTF na moderních Windows PostScript ovladače) používají stejnou techniku.

Soubory TFM obsahují všechny informace, které TeX potřebuje k vytvoření svého zařízení nezávislého (DVI ) výstup. Skutečné glyfy jsou poté vloženy eventuálním výstupním ovladačem DVI nebo prohlížečem, například pomocí TrueType písma nebo písma v bitmapě Formát PK odvozeno od a METAFONT zdroj. Formát je navržen tak, aby byl extrémně kompaktní: v originále Počítač moderní distribuce je soubor TFM každého písma menší než 2 kB.[1]

Specifikace

Kanonická specifikace formátu TFM je zakotvena v zdrojový kód programu TFtoPL.[2]

Soubor TFM je rozdělen na řadu čtyřbajtů slova, která může obsahovat datová pole různých délek. Veškerá datová pole, která jsou delší než jeden bajt, jsou uchovávána velký endian objednat. (Bude vygenerován přesně stejný soubor bez ohledu na architekturu počítače, který jej generuje.)


Záhlaví souboru se šesti slovy (24 bajtů) obsahuje dvanáct 16bitových celých čísel bez znaménka, která popisují délku souboru, rozsah kódů znaků obsažených v písmu a velikost každé z tabulek. Jeden soubor TFM popisuje od 0 do 256 znaků včetně.


Tělo souboru TFM se skládá z řady deseti tabulek, z nichž každá je výjimkou první rozložené jako pole polí s pevnou délkou. 32bitový podpis číslo pevného bodu s 12 bity nalevo od desetinné čárky, označované jako a fix_word, se hojně používá. První stůl, záhlaví, obsahuje kontrolní součet určený k zabránění dokumentu zkompilovaného do DVI s jednou sadou písem z tisku s jinou sadou, stejně jako ASCII popisy schématu kódování znaků (např. ASCII nebo TeXový text) a rodina písem. Obsahuje také velikost písma; všechny následující fix_word hodnoty jsou pro to interpretovány jako multiplikační faktory.

Struktura souboru souboru TFM

Další tabulka, char_info, se skládá z jednoho slova na znak a obsahuje indexy do tabulek oprav šířky, výšky, hloubky a kurzívy. Toto zařízení šetří místo, protože například hodnoty šířky jsou často duplikovány. Protože jsou hodnoty výšky a hloubky duplikovány častěji, aby se všechny tyto hodnoty vešly do jednoho slova, jsou indexy omezeny na čtyři bity. Z tohoto důvodu je v daném souboru TFM omezeno šestnáct různých výšek znaků a šestnáct různých hloubek znaků. Existuje také limit šedesáti čtyř různých korekcí kurzívy. Existuje také jeden další index, který může směřovat do lig_kern tabulka nebo informace o rozšiřitelných znacích, v závislosti na dvoubitových štítek hodnota. Rozšiřitelné znaky používají řadu opakovaných znaků k vytvoření jediného velkého libovolné velikosti, obvykle velkých oddělovačů, jako jsou závorky nebo závorky.

Poté postupujte podle čtyř tabulek šířka, výška, hloubka a kurzíva, které obsahují hodnoty (v fix_word formát), na který odkazují indexy v char_info.

Ligatury a vyrovnání párů jsou reprezentovány pomocí jednoduchého programovacího jazyka sestávajícího z čtyřbajtových operací s pevnou délkou v lig_kern stůl; využívá hodnoty vyrovnání párů (zadáno jako fix_words) v kern následující tabulka.

Rozšiřitelné znaky jsou uvedeny v souboru exten tabulka, pomocí řady čtyřbajtových slov specifikujících horní, střední, dolní a opakované části rozšiřitelného znaku. Například znak vlevo dole by byl získán nastavením (horní, střední, bot, rep) na kódy znaků pro (/, <, \, |). Kódy prvních tří znaků lze nastavit na nulu. Například pokud střední byly v předchozím příkladu nastaveny na 0, výsledek by se změnil z rovnátka nakresleného vlevo na závorku nakreslenou vpravo.

/     /|     ||     |<     ||     ||     |\     \

Písmo by k tomu samozřejmě používalo speciálně navržené znaky, místo aby znovu používalo stávající, ale princip je stejný.

Finálový stůl, param, obsahuje řadu konkrétně definovaných fix_word hodnoty, včetně písma výška x a množství šikmé kurzívy (k určení, jak daleko posunout akcenty). Některá schémata kódování, jako např TeX matematické symboly a TeX matematické rozšíření definujte další parametry, které se objeví po nich.

Seznamy nemovitostí

Tady je čitelné člověkem odpovídá volanému formátu TFM PL, pro seznam nemovitostí. Mezi souborem TFM a souborem PL existuje přesná korespondence: jeden lze volně převést na druhý a zpět bez ztráty informací pomocí tftopl a pltotf programy. Formát PL, optimalizovaný pro použitelnost místo prostoru, nevyužívá stejné odkazy jako formát TFM. Například mnoho znaků v písmu může používat stejnou šířku znaků, která by byla ve formátu TFM reprezentována pouze jednou, a na tuto hodnotu by odkazoval každý znak, protože index by byl výrazně menší než číselná hodnota s úplnou přesností . Ve formátu PL je však plná hodnota zapsána pokaždé, když se objeví.

Jedná se například o kód pro velké písmeno Y v Počítač moderní římský, deset bodů:

(CHARACTER CY (CHARWD R 0,750002) (CHARHT R 0,683332) (CHARIC R 0,025) (COMMENT (KRN C e R -0,083334) (KRN C o R -0,083334) (KRN C r R -0,083334) (KRN C r R -0,083334) (KRN C a R - 0,083334) (KRN CAR -0,083334) (KRN C u R -0,083334)))

Zde zobrazené hodnoty vyrovnání párů jsou zkopírovány z jiné části souboru PL, aby se usnadnilo čtení, což je samo o sobě nadbytečné. Všimněte si, jak jsou vypsány celé číselné hodnoty konstant vyrovnání párů pokaždé, když se objeví, místo aby byly uloženy jednou a odkazovány mnohem menším indexem.

Poznámky

  1. ^ „CTAN: / tex-archive / fonts / cm / tfm /“. Komplexní archivační síť TeX. 1996-07-08. Citováno 2006-07-30.
  2. ^ Knuth, Donald E. (Únor 2008). „TFtoPL“ (WEB zdrojový kód; extrahujte úplnou dokumentaci pomocí VAZBA ). Verze 3.2. Citováno 2010-10-31. Citovat deník vyžaduje | deník = (Pomoc)

Reference

externí odkazy