Písma ze Střešovic v TeXu - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Sazba

Písma ze Střešovic v TeXu

23. října 2001, 00.00 | Nabízíme netradiční pohled na písma Střešovické písmolijny Františka Štorma očima jednoho z předních českých TeX guru.

Nejprve bych chtěl poznamenat, že TeX (čteme tech) je starý ale stále velmi dobrý a v mnoha vlastnostech nepřekonaný systém na vytváření elektronické sazby, který pracuje naprosto stejně na nejrůznějších platformách a je navíc zadarmo. Tento článek ale nebude čtenáře sajtu grafika.cz zatěžovat zbytečnými TeXnickými detaily a nebude ani úvodem do světa tohoto jistě zajímavého systému. To si nechám možná na příště.

Chci zde nabídnout jen nezávazné a jednoduché čtení o tom, jak je možno fonty ze Střešovické písmolijny (které mnozí čtenáři jistě dobře znají) použít v nějakém pro mnohé asi velmi vzdáleném typografickém systému. V očích mnoha čtenářů mohu asi působit jako exot, který používá na přípravu sazby výhradně TeX a nikdy za celou dobu svého počítačového života nebyl nucen pracovat ve Windows ani MAC. Přitom v posledních deseti letech si vystačil převážně s různými UNIXovými systémy. Na druhé straně tento exot napsal dvě uznávané knihy a mnoho odborných článků o typografii a TeXu a je autorem volně šířeného software pro podporu TeXu a na úpravy fontů.

Motivace

Už delší dobu mě mrzelo, že se TeX používá skoro výhradně jen s Computer Modern fonty. To jsou fonty vycházející ze statické antikvy Modern Monotype 8a, kterou autor TeXu převedl z ryteckých předloh do formátu, který je typický jen pro TeX a je nezávislý na operačním systému. Rodina Computer Modern obsahuje 75 řezů a je standardně dodávána s každou instalací TeXu. TeX samotný je ale navržen tak, že dokáže pracovat s libovolnými fonty v libovolném (třeba dnes ještě neznámém) formátu. Samozřejmě, pro každý nový formát fontů je potřeba mít v TeXu doprovodný software, který umožní takové fonty použít. Je všeobecně známo, že formát PostScript Type1 takovou softwarovou podporu v TeXu má. Je tam už od počátků existence PostScriptu.

Tak proč se v TeXu používá tak často (a mnohdy nevhodně) jen Computer Modern? Není to tím, že pouze Computer Modern je standardní součástí každé instalace TeXu? Nebo tím, že běžně používaná makra v TeXu jsou implicitně nastavena na Computer Modern? Nebo dokonce tím, že instalace nových fontů je poněkud náročnější a mnohdy vyžaduje větší zkušenosti s počítačovými formáty fontů? Nebo snad tím, že vytvoření dokumentu v jiném než standardním fontu ohrožuje jeho přenositelnost? Nebo možná tím, že TeX je zadarmo a jeho uživatelé očekávají stejnou vlastnost i od fontů? Nebo konečně tím, že alternativa k rozsáhlé skupině matematických fontů v Computer Modern se pro jiné rodiny fontů hledá jen obtížně?

Myslím si, že výše uvedené důvody se sčítají. Je pravda, že dnes už mnozí TeXisté sáhnou aspoň někdy po písmu z nabídky standardních 35 PostScriptových fontů od Adobe, které jsou přítomny v každém PostScriptovém RIPu. Podporu pro tyto fonty včetně počeštění (virtuální skripty TeXu) jsem před asi osmi lety udělal a zařadil do CSTeXu. Protože dnes k těm standardním fontům od Adobe existují volně dostupné alternativy implementované například ve volně šířeném PostScriptovém RIPu Ghostscript, mohou si uživatelé TeXu udělat kdykoli náhled dokumentu sázeného těmito fonty a nemusejí fonty od Adobe kupovat ani tvořit dokument ,,naslepo`` a čekat, až výsledek projde PostScriptovým RIPem tiskárny nebo osvitové jednotky.

Počeštění pro 35 Adobe fontů jsem kdysi dělal s vědomím limitů, které vycházely z technické podstaty těchto fontů. Protože fonty nebude mít běžný uživatel v počítači, ale budou jen v RIPu tiskárny nebo osvitové jednotky, nebylo možné k nim přidávat další znaky nebo je nějak modifikovat. Bylo možné využít pouze znaky, které v těchto fontech byly obsaženy a skládat je do znaků kompozitních. Tak například pro akcent u písmen ď a ť jsem použil apostrof, ačkoli tam většinou vypadá dost humpolácky. Nebo akcenty nad verzálkami musely být stejné, jako akcenty pro mínusky. Ty verzálkové ale mnohdy příliš vyčnívaly z řádku. Pokoušel jsem se na ně aplikovat (v rámci virtuálních skriptů v TeXu a prostřednictvím standardních PostScriptových operátorů) geometrické deformace, což sice částečně pomohlo, ale výsledek měl některé další nedostatky, kvůli kterým jsem tento trik nakonec do oficiální distribuce TeXu nezařadil.

Tušíte asi, že jsem v souvislosti s těmito problémy zajásal, když jsem se dozvěděl o existenci Střešovické písmolijny a prohlédnul její nabídku. Ty fonty mají naprosto perfektní akcenty a půjdou v TeXu použít bez dodatečného počešťování, protože samozřejmě české jsou. Fonty ze Střešovic mají všechny náležitosti, které pro kvalitní sazbu s radostí využijeme, a přitom v mnoha jiných fontech tyto věci chybí. Mám na mysli třeba bohatý repertoár ligatur nebo variantní písmeno ,,v`` v některých kurzívách. Navíc texty, kterými byly ukázky fontů na WWW stránkách proloženy, mně osobně přímo mluvily z duše.

První návštěva Střešovické písmolijny

Tak se stalo, jsem se asi před dvěma lety seznámil s majitelem Střešovické písmolijny a tvůrcem všech fontů v jediné osobě: panem Františkem Štormem. Mluvili jsme o tom, jak by mohla vypadat spolupráce písmolijny s Československým sdružením uživatelů TeXu a zmínil jsem možnost vytvoření podpory pro jeho fonty v TeXu. On namítal, že z hlediska množství zákazníků jsou pro něj TeXisté jen minoritou. S tím se dá, bohužel, jen souhlasit. Je proto pro něj zatím ekonomicky nevýhodné pronikat do problematiky TeXu a nabízet zákazníkům i tuto podporu. Věnoval mi na zkoušku jednu čtyř-řezovou rodinu, abych ji zkusil dostat do TeXu.

Neodpustím si uvést jednu perličku, která při předávání těchto čtyř fontů nastala. Pan Štorm se mě zeptal, zda to chci pro PC nebo MAC. Zalapal jsem po dechu, protože Linux běží na PC i na MAC, ale tušil jsem, že takto otázka nebyla myšlena. Viděl jsem, že on pracuje s počítačem i operačním systémem od MACů a věděl jsem, že potřebuji ke svému štěstí PFB a AFM soubory. Nic víc. Vyšel jsem z domněnky, že tyto soubory mají v obou systémech stejný formát a prohlásil jsem: ,,Bude lepší, když mi to dáte v nativním formátu, ve kterém pracujete, aby nedocházelo ke zbytečným ztrátám informace konverzemi.`` Cítíte asi, jaká jsem při té řeči měl ramena. Dostal jsem variantu MAC a dobře mi tak. Hned druhý den jsem běžel pokorně za panem Štormem s disketou znova, protože jsem celý večer strávil zbytečným objevováním naprosto nepochopitelných odlišností formátu PFB pro MAC a zbytek světa.

Ačkoli jsem pak po týdnu přišel už s lepšími výsledky včetně tištěné ukázky článku vysázeného v TeXu těmi zapůjčenými fonty, k další dohodě v té době nedošlo. Asi jsem měl tehdy příliš mnoho připomínek k těm fontům. Například, že znak se jménem copyright by měl vytisknout ,,copyright`` a nikoli ,,Š``. Přitom znak Scaron ve fontu vůbec nebyl k nalezení. Podobně pod znakem sterling jsem očekával symbol britské měny a nikoli ligaturu ,,fi`` a tak bych mohl pokračovat. Udělal jsem si tehdy pro ty fonty takový speciální ENC soubor, který zmíněný problém zmatení názvů obcházel, ale doporučil jsem autorovi, že by bylo lepší mít to správně rovnou v těch fontech. Pan Štorm asi tušil, že TeXisté budou mít takové záhadné připomínky (vždyť ty fonty jsou kódovány pro Windows, tak kde je problém?) tak dlouho, dokud on nenechá v těch fontech hodně další práce. A to se mu pro malou TeXovou obec nevyplatilo.

Pak jsme se asi dva roky neviděli. Až v květnu letošního roku (2001) se na diskusní skupině objevil tápající dotaz, jak zařadit do TeXu fonty, které si někdo koupil ve Střešovické písmolijně. Ačkoli jsem už zapomněl, kdo otázku položil, myslím si, že mu nyní vděčíme za to, že ucelená podoba TeXové podpory pro fonty ze Střešovic existuje. Kdyby se totiž autor dotazu s technickými problémy porval sám a na nic se neptal, tak by vše zůstalo ve stavu před dvěma lety. Se Štormovými fonty by se rvali další a další TeXisté vždy znovu, a přitom každý by to udělal trochu jinak a neexistoval by jednotný standard na podporu těchto fontů. Ten tápající dotaz ale rozpoutal novou diskusi o potřebě jednotného přístupu k začlenění fontů ze Střešovické písmolijny do TeXu.

Druhá návštěva Střešovické písmolijny

Při další komunikaci s panem Štormem jsem už přesně věděl, jak mám odpovědět na otázku ,,MAC nebo PC`` a dostal jsem další vzorek čtyř fontů k testům. Byl jsem mile překvapen, že fonty už nyní obsahují znaky se správnými názvy a těch znaků bylo dokonce kolem 370. Ukázalo se, že Střešovická písmolijna za ty dva roky udělala na fontech velký kus práce. I pan Štorm byl mile překvapen, když dostal ode mne vzorek dokumentu s těmito fonty ve formátu PDF zpracovaný pdfTeXem. Došlo ke vzájemné shodě, že bude pro TeXisty výhodnější, když bude pro ně podpora jednotně připravena. A tak jsem si v červnu roku 2001 odnášel ze Střešovic CDčko (ve verzi PC:-) včetně krabice s písmovým katalogem. Příslib byl, že přes prázdniny udělám pro TeXisty podporu ke všem těmto fontům a zveřejním ji na Webu.

Dobře se slibuje a hůř se dělá. Narazil jsem během práce na několik technických problémů. Navíc jsem se rozhodl udělat pro TeX makro, které by mi umožnilo udržet přehled a pořádek nad tak velkým množstvím fontů. Přitom poptávka LaTeXistů je dost silná, tak jsem se přemohl a pokusil se toto makro udělat nejen pro můj oblíbený plainTeX, ale i pro LaTeX. Konečně manželka měla poměrně dost řečí, že děti chtějí jíst a že nás moje koníčky (tj. TeX) a můj učitelský plat příliš neuživí. Byl jsem nakonec rád, že se mi termín dokončení s odřenýma ušima podařilo splnit.

TeXovou podporu pro písma ze Střešovic najdete od září 2001 na stránkách sdružení CSTUG, konkrétně zde. Je tam balíček obsahující metriky a FD soubory pro všechny fonty. Dále na WWW stránce najdete klikací katalog (9,5 MB) s ukázkami všech fontů zpracovaný pdfTeXem. Konečně tam je k mání balíček se ,,zdrojovými texty``, přesně řečeno s nástroji, pomocí kterých jsem ty metriky generoval. Ctím zásadu TeXu (nověji též GNU GPL a podobných licencí), že výsledek práce se sluší zveřejnit včetně zdrojových textů. Metriky jsou přitom už výsledkem nějakého procesu, na který bylo potřeba použít určité nástroje. Tyto nástroje si samozřejmě nechci nechat pro sebe.

Vlastnosti TeXové podpory

Pohled do AFM souborů Štormových fontů mě mírně řečeno vylekal. Zjistil jsem totiž, že jsou v nich závažné chyby a musel jsem najít softwarové řešení, které tyto chyby odstraňuje. Podrobněji tuto epizodu popisuji ve svém článku pro TeXový Zpravodaj. Článek vyjde v prosinci 2001.

Štormovy fonty jsou kromě verze MAC a PC (použita byla verze PC) děleny ještě na verze ,,západní`` a verze ,,CE``. To je z hlediska TeXu naprosto zbytečné členění, protože oba fonty (západní i CE) dají v TeXu naprosto stejný výsledek. Tyto dvě verze se totiž liší jen jinak deklarovaným implicitním Encoding vektorem. TeXový software tento Encoding vektor okázale ignoruje a vytváří si vlastní. Důležité tedy jsou jen názvy znaků ve fontech a kódování implicitního Encoding vektoru je pro TeX naprosto nezajímavé. Toto zbytečné zdvojení verzí fontů je asi dobré hlavně pro aplikace, které jsou závislé na implicitním Encoding vektoru. Takovou aplikací je i samotný ATM, takže se nedivím, že verzi CE potřebuje ke svému štěstí většina Windowsoidních i MACoidních aplikací. Já jsem pro potřeby TeXu raději sáhl k vezi západní, aby v názvech fontů zbytečně nestrašila navíc zkratka CE.

Jak jsem již naznačil, Štormovy Type1 fonty obsahují kolem 370 zaků. Mohl jsem na ty fonty použít verzi TeXu zvanou Omega, která interně pracuje s dvoubytovou adresací znaků pro fonty, ale tato verze není zas tak moc rozšířena. Rozhodl jsem se raději použít klasický TeX a pokrýt každý font dvěmi 256 znakovými metrikami: základní a rozšiřující. Protože kerny a ligační tabulky jsou implementovány v TeXu izolovaně do jednotlivých metrik, rozhodl jsem se do základní metriky nacpat co nejvíc znaků, které mohou podléhat ligačním procedurám a vyrovnávání pomocí kernů. V rozšiřující metrice jsem nechal znaky, u kterých mi nebude líto, že nebudou mít správné kerny společně se znaky ze základní metriky. Příkladem takových znaků jsou třeba zlomkové slitky. Samozřejmě, kdyby mi bylo líto ztráty kernů se znaky v rozšiřující metrice, použil bych OmegaTeX a rozkládání znaků do dvou metrik bych nemusel řešit.

Ve Štormových fontech je bohatá nadílka ligatur od zcela běžných (fi a fl) přes pokročilé (ffi, ffl) až po speciální (st, ct, ft, longst). Ani pro základní ligatury ale nebyl v AFM souboru uveden údaj pro vytvoření ligační tabulky. Jak už jsem zmínil výše, ty AFM soubory obsahovaly plno chyb, takže mě chybějící údaje o ligaturách ani moc nepřekvapily. Navíc to při generování TeXových metrik nevadí, protože se dá do konfiguračního souboru pro program afm2tfm (na generování TeXových metrik) zapsat informace o ligaturách explicitně a program pak údaje pro ligační tabulky vytvoří právě tehdy, pokud ve fontu odpovídající ligatury existují. Speciální ligatury (st, ct) jsem implicitně nechal neaktivní, protože v běžném textu působí poněkud starodávně.

V některých kurzívách je přítomno variantní ,,v`` s poněkud rozmáchlejším náběhem. To se používá na začátku slova. Využil jsem schopnost TeXu deklarovat ligatury s levým hraničním znakem slova, takže se toto variantní písmeno ,,v`` objeví na začátku slova vždy automaticky bez zásahu uživatele.

Dále jsem připravil makra, pomocí nichž se práce s dvojicí metrik (základní a rozšiřující) uživatelsky jeví jako práce s jediným fontem. Uživatel se nemusí starat, ve které metrice požadovaný znak je. Napíše pouze třeba \euro nebo \onehlaf a starost, pod jakým kódem a v jaké metrice se to má hledat přenechá makru.

Také se mi jevily trochu nadbytečné verze fontů zvané OSF, které se od výchozích lišily jen jinak kreslenými číslicemi. Principiálně by tyto variantní číslice mohly být společně se základními číslicemi v jediném Type1 fontu. Zřejmě je ale zvykem ve Widowsoidních systémech to do stejného Type1 fontu nedávat. Možná je to také komerčně výhodnější, když se po změně deseti znaků může výsledná práce prodávat jako dva různé fonty. Pokud si TeXista koupí obě verze fontu, pak na úrovni TeXových maker se mu to jeví jako jediný font, který obsahuje číslice na řádku a skákavé dohromady. Spojil jsem totiž verze OSF se základními tak, že jsem případnou OSF verzi nasměroval do rozšiřující metriky. Uživatel po zvolení fontu píše číslice ,,normálně`` a pokud uvede přepínač \vardigits, tak mu TeX sáhne do rozšiřující metriky a vyloví číslice z fontu OSF.

Chvíli jsem se potýkal také se skutečností, že v balíku fontů jsou některé řezy zdvojeny. Například JannonAntiqua-Bold je to samé jako JannonMedium-Bold. Musel jsem postupně vypátrat všechny takové duplicity, pro které by bylo zbytečné zakládat v TeXu dvakrát zcela stejnou metriku. Řešil jsem také otázku, co se stane, když si TeXista koupí třeba jen rodinu JannonMedium. Metrika tučné varianty písma Jannon musí tedy odkazovat buď na JannonAntiqua-Bold nebo na JannonMedium-Bold podle toho, co si uživatel zakoupil. Bylo potřeba uživateli při takových situacích dát návod, jak přesměrovat metriku na takový font, který si skutečně koupil.

Podpora obsahuje z pohledu TeXu při použití mého TeXového makra 287 fontů členěných do 86 rodin. Některé tyto fonty ovšem slučují dva různé fonty (OSF a základní). Takže z pohledu písmolijny je podporováno 321 různých fontů. Podpora zahrnuje metriky stejných fontů pro rozličná TeXová kódování, takže nesmí překvapit, že v balíčku lze nalézt celkem 857 metrik a 260 FD souborů. Mapovací soubor pro program dvips s názvem storm.map obsahuje 1124 řádků, protože umožňuje odstraněním některých komentářů řešit problém nejednoznačnosti názvů některých fontů.

Tématické zařazení:

 » Rubriky  » Go verze  

 » Rubriky  » Sazba  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: