Zdeněk Wagner: Sazba publikace s plovoucím textem CSTUG

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ích balíčcích, které jsou obsaženy v distribucích MiKTeX i TeX Live.

Jako bonus bude ukázáno využití analogických maker při sazbě zrcadlového překladu.


CSTUG
Poslední změna: 30. 10. 2013. Připomínky na: www-admin@cstug.cz. (c) 1996-2013 CSTUG