Ice Bear SoftSazba obrazové publikace s plovoucím textem

Abstrakt přednášky přednesené na konferenci TeXperience 2012. Můžete si též stáhnout slajdy ve formátu PDF a nástroje použité pro sazbu.

Algoritmy TeXu jsou určeny pro zpracování textu, ale nezabývají se prací s externími obrázky. Tato činnost je ponechána výstupním ovladačům. Ovladače se přizpůsobily vývoji polygrafie, takže zejména s využitím balíčku graphicx lze vkládat obrázky v běžných formátech pohodlným způsobem nezávislým na použitém ovladači. Formát LaTeX je primárně určen pro sazbu textů, v nichž se občas vyskytuje tabulka či obrázek. Mechanismus plovoucích objektů zajistí, že si tabulky a obrázky automaticky najdou vhodné místo v textu. Jiná situace však nastane v případě, kdy těžištěm publikace jsou právě obrázky, jejichž umístění na stránkách je pevně dáno, a text je má obeplout. Navíc má text uprostřed odstavce přetéci na další stránku, kde bude sázen do sloupce jiné šířky. V tomto okamžiku již nelze použít existující postupy, ale je nutno napsat vlastní makra. Základním prvkem zdrojového kódu pak budou příkazy definující umístění obrázků a vymezení textových oblastí. Makra, která byla pro tento účel vytvořena, provádějí nejen vlastní sazbu textu včetně umístění obrázků, ale navíc lze zapnout i režim umožňující vizuální kontrolu oblastí pro text i obrázky, a to ještě dříve, než je text zapsán.

Při sazbě knihy v TeXu potřebujeme nejen makra, která vytvoří požadovanou grafickou podobu, ale i nástroj, kterým co nejpohodlněji vytvoříme zdrojový text. TeX očekává na vstupu běžný textový soubor s makry, takže lze použít libovolný textový editor, který nemá vlastní formát souborů a nevkládá své formátovací značky. Při zamyšlení nad tím, jak by mohla vypadat makra pro definici poloh obrázků a vymezení textových oblastí, si však uvědomíme, že při psaní takového kódu se snadno dopustíme chyb, které se nemusí vždy snadno hledat. Hodil by se tedy nástroj, který by dokázal kontrolovat, nejlépe okamžitě, syntaktickou správnost zdrojového textu. Takový externí kontrolní plug-in pro textový editor se však nesnadno programuje, neboť je známo, že only TeX can read TeX.

Řešení této situace však není složité, když se spojí několik technologií. Popis stránek je zapsán v XML. Pro tento účel je vytvořeno schéma Relax NG a zdrojový text je vytvářen ve validujícím editoru. Text je pak transformován pomocí XSLT. V tom spočívá jedna z hlavních výhod. Na rozdíl od přímého zápisu v TeXu, kdy překlep v názvu makra zjistíme až při překladu, validující editor indikuje chybu ihned, a navíc podle kontextu nabízí názvy elementů a názvy i hodnoty atributů. TeXová makra tedy nejsou zapisována autorem textu, ale bezchybně generována transformací.

Pro následné zpracování transformovaného souboru je použit XeLaTeX. Proto v českém textu mohou být pro ilustraci vloženy krátké ukázky v hindštině a urdštině. Editor XML <oXygen/> navíc bere v úvahu hodnotu atributů langxml:lang a přepíná automaticky jazyk pro kontrolu pravopisu. Práce s vícejazyčnými dokumenty je tím výrazně snazší. Autor se tedy díky spojení vhodných technologií může plně soustředit výhradně na tvorbu obsahu.

Vytvořený systém rovněž pomocí XSLT zjišťuje, které fotografie z rozsáhlé kolekce jsou v knize skutečně použity, a pouze tyto obrázky konvertuje do barevného prostoru CMYK pro tisk. Soubory potřebné pro sazbu takové knihy mají méně než 600 řádků specifikace Relax NG, méně než 700 řádků XSLT a méně než 100 řádků TeXových maker, zbytek je ve standardním balíčcích, které jsou obsaženy v distribucích MiKTeX i TeX Live.

Poznámka: Popisovaná makra byla vyvinuta pro sazbu knihy भारत के रंगبھارت کے رنگ — Barvy Indie.

Jsem donucen k tomu, abych svou programátorskou prací sponzoroval hudebníky a jiné autorské svazy. Ukládám totiž své programy, vstupní data i výsledky výpočtů na CD a DVD.