Metafont

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Metafont je popisný jazyk sloužící k definování vektorových fontů. Je to také název programu, který interpretuje metafontovský kód a generuje soubory obsahující bitmapy znaků fontu, které mohou být potom vloženy např. do PostScriptového souboru. Metafont vyvinul Donald Knuth jako doplněk sázecího systému TeX.

Jednou z charakteristik Metafontu je, že všechny tvary glyfů jsou definovány geometrickými rovnicemi. Zejména lze definovat určitý bod jako průsečík úsečky a Bézierovy křivky.

Způsob práce[editovat | editovat zdroj]

Na rozdíl od běžnějších formátů obrysových fontů (jako jsou například TrueType nebo PostScript Type 1) je font v Metafontu tvořen primárně tahy „perem“ o konečné šířce a vyplňováním oblastí. Místo toho, aby přímo popisoval obrys glyfu, metafontový program tedy popisuje trasu pera. Některá jednodušší metafontovská písma, jako například kaligrafická matematická písma z rodiny Computer Modern, tvoří glyf několika tahy poměrně širokého pera. Složitější písma, jako je například antikva v Computer Modern, kreslí tenkým perem obrys, který je pak vyplněn; výsledek se podobá obrysovému fontu, ale má „měkké“ rohy, které odrážejí tvar použitého pera.

Protože tvary písma jsou definovány rovnicemi (a ne přímo zapsanými čísly), je možné pracovat s parametry, jako je poměr stran, sklon písma, šířku tahu, velikosti patek a podobně, jako se vstupními hodnotami v definici glyfu (která pak určuje ne jeden font, ale meta-font). Změnou hodnoty jednoho z těchto parametrů na jednom místě v metafontovském programu lze zajistit konzistentní změnu v celém fontu. Na antikvě fontu Computer Modern lze ukázat mnoho využití této variability; typická instalace TeXu obsahuje několik verzí písma ve velikosti od 5 do 17 pt, jejichž šířky tahů se mění nelineárně a v menších velikostech je v zájmu čitelnosti volen jiný poměr stran. Kromě toho jsou v Computer Modern písmo psacího stroje a bezpatková písma definovány s použitím metafontového programu pro antikvu, jen s pozměněnými parametry.

Křivky jsou v Metafontu jsou definovány jako kubické spliny, ne kvadratické; výhodou je větší univerzálnost, cenou za to je složitější aritmetika.[1]

V Metafontu lze vytvářet různé grafické výstupy, ne jen glyfy. Nicméně pro matematické ilustrace jsou spíše preferovány programy MetaPost a Asymptote. Metafont je nejčastěji volán na pozadí, bez přímého požadavku od uživatele. DVI soubory mohou obsahovat pouze odkazy na písma, ne přímo rastrové nebo vektorové glyfy, jako umožňují další formáty, jako je PostScript. V důsledku toho musí být glyfy přístupné vždy, když je třeba DVI soubor zobrazit, vytisknout nebo převést do jiného formátu. Většina TeXových distribucí je nakonfigurována tak, že všechna písma, které nejsou právě k dispozici v požadovaném tiskovém rozlišení, jsou generována voláním Metafontu. Fonty jsou pak uloženy pro pozdější použití.

Metafont může být také spuštěn interaktivně a má příkazy pro zobrazení výsledných bitmap na obrazovce. Knuth prohlásil, že používá Metafont pro řešení složitých rovnic jako určitý typ stolní kalkulačky, i když pro vytváření matematických ilustrací teď využívá MetaPost.

Konverze do formátu PostScript Type 1[editovat | editovat zdroj]

Existuje několik nástrojů pro konverzi metafontových programů na fonty ve formátu PostScript Type 1. Většina z nich využívá schopnost programu MetaPost převést podmnožinu jazyka Metafont do obrysů v jazyce Encapsulated PostScript, které lze následně převést na font typu PostScript Type 1. Generování vektorových obrysů tahů pera přímo v Metafontu je netriviální, protože jeho výstupem jsou vyrastrované bitmapy, ne vektorové obrysy.

Obvyklým přístupem ke generování písem Type 1 s tahy pera je vygenerovat rastrový obrázek o vysokém rozlišení a pak použít autotracer, který implementují balíčky jako mftrace[2] a TeXtrace[3].

Použití[editovat | editovat zdroj]

I když někteří známí návrháři písma, jako například Hermann Zapf, spolupracovali s Knuthem na vytváření nových fontů pomocí Metafontu, systém se mezi profesionálními typografy příliš neujal. Knuth to připisuje tomu, že „je těžké žádat po umělcích, aby ovládli matematiku natolik, aby dokázali napsat font se 60 parametry.“[4]

Metafont umožňuje zpracovat písma neobvyklými způsoby; v roce 1982 Knuth ukázal, jak to lze využít k morfingu písma, kdy patkový font plynule přechází do bezpatkového.[5]

Historie[editovat | editovat zdroj]

Donald Knuth začal pracovat na softwaru pro tvorbu písma v roce 1977 a první verzi Metafontu vytvořil v roce 1979. S vědomím nedostatků v původní verzi Metafontu Knuth v roce 1984 napsal zcela nový Metafont a tento upravený systém se používá dodnes. Metafont má systém verzí podobný TeXu, kde s každou revizí jeho číslo asymptoticky blíží e.[6]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Metafont na anglické Wikipedii.

  1. Knuth, Donald (January 25, 2000).  "Interview: Donald E. Knuth".“...the mathematics is really simple for a quadratic. The corresponding thing for a cubic is six times as complicated...” 
  2. mftrace – a small Python program that lets you trace a TeX bitmap font into a PFA or PFB font (A PostScript Type1 Scalable Font) or TTF (TrueType) font
  3. TeXtrace – a collection of scripts for UNIX that convert any TeX font into a Type1 .pfb outline font immediately suitable for use with dvips, pdftex, acroread (and any many other programs)
  4. CSTUG, Charles University, Prague, March 1996, Questions and Answers with Prof. Donald E. Knuth, reproduced in TUGboat 17 (4) (1996), 355–67. Citation is from page 361. Available online at http://www.tug.org/TUGboat/Articles/tb17-4/tb53knuc.pdf
  5.  "The Concept of a Meta-Font"(1982). Visible Language 16 (1): 3–27. 
  6. KNUTH. Computers and Typesetting [online]. . Dostupné online. (anglicky)