Hlavní navigace

TeX pro každého - grafické nadstavy, rentabilita nasazení TeXu, barvy v TeXu

Stanislav Brabec 18. 11. 2002

TeX je sice kvalitní typografický nástroj, ale to neznamená, že je dobrý pro každý typ sazby. Dnes si povíme, na co je vhodné vzít TeX a na co raději jiné nástroje. Na několika příkladech se pokusíme ukázat, kdy je takové nasazení ekonomické. Povíme si o textových procesorech, ve kterých můžeme pořídit vstupní text. A aby ani pokročilí TeXisté nepřišli zkrátka, skončíme u úskalí barevné sazby v TeXu.

Každého, kdo zvažuje, zda pro nějakou sazbu je vhodný TEX, či jiný nástroj, zajímá, zda má cenu investovat úsilí do TEXu a jeho maker, nebo je vhodné sáhnout po grafickém nástroji.

Tento ostrý výběr není dán až tak TEXem samotným, jako spíš skutečností, že k TEXu neexistuje plnohodnotná grafická nadstavba. Citelně chybí grafický program, který by používal základní logiku TEXu (tj. boxy a výplňky) a dokázal by vytvořit layout stránky.

Textové procesory

Dobrou alternativou pro pořízení dat zejména pro začátečníky mohou být speciální (TEXtové :-) ) procesory, jejichž funkce je pevně provázána s TEXem. Mezi takové editory patří LyX a TEXmacs. Nezobrazují sice přesně to, co ve výsledku vygeneruje TEX, ale vytvořený text má stejnou logiku. Umožňují tedy snadnější pořízení vstupního textu (zvlášť pro LaTEX).

Import textu z běžných textových procesorů je jednou z cest, jak do TEXu dostat podklad pro sazbu. Některé editory (jako například Abiword a KWord) mají přímou podporu exportu do LaTEXu, pro jiné existují konvertory (např. wvLatex pro MS-Word – viz tento článek a wp2latex pro Word Perfect). Je to však spíš východisko z nouze – převedený text bývá plný zbytečných formátovacích příkazů a značek.

Grafika a rentabilita její sazby

Protože TEX není grafický editor, je příprava graficky orientovaných podkladů (obrázková sazba a jednostránkové kompozice jakéhokoliv druhu – letáčky, plakáty, vizitky) poměrně pracná. Zejména v případě obrázků s popisky na určitých místech nebo s obtékanými obrysy je sazba v TEXu značně nepraktická. Metodou pokus a omyl (nebo s pravítkem v ruce) opakovaně měníme numerické hodnoty jednotlivých výplňků, kompilujeme, a pak pozorujeme, zda je již dokument dostatečně úhledný. Grafická sazba je tedy v TEXu realizovatelná, ale je dost pracná, takže se na ni většinou nevyplatí TEX nasazovat.

Je třeba se rozmyslet, kdy nám stojí za to překonat tyto problémy, a kdy je vhodné použít jinou technologii (vektorový editor nebo DTP program). V moderní mluvě se tomu říká celkové náklady na použití.

Uvedu několik příkladů:

Chceme-li připravit jednu vizitku, příprava maker (seskupení na stránce a nastavení ořezových značek) a následné odladění polohy písma na vizitce nám může zabrat 20 minut, zatímco ve specializovaném programu pro návrh vizitek lze téhož výsledku dosáhnout během čtvrtinového času.

Zcela jiná situace nastane, dostaneme-li za úkol připravit 200 jednotných firemních vizitek, přičemž jména a funkce jednotlivých osob obdržíme v databázi. Při nasazení TEXu k nákladům připočteme pouhých deset minut k převedení dat z databáze do formátu vhodného pro TEX:

\def\jmeno   {Jan}
\def\prijmeni{Novák}
\def\oddeleni{oddělení odbytu}
\def\funkce  {vedoucí}
\generujvizitku
\def\jmeno   {Hana}
\def\prijmeni{Novotná}
\def\oddeleni{}
\def\funkce  {účetní}
\generujvizitku

Naproti tomu u GUI programu se stěží dostaneme pod dvě hodiny otrockého opakování příkazů „Kopírovat“, „Vložit“, nemluvě o riziku chyby, a tedy i nutnosti korektury. Pro 200 vizitek tedy TEX jednoznačně poráží GUI nástroje.

Dalším přikladem může být pořádání pravidelných akcí. Většinou potřebujete informační leták, informaci na webu, pozvánku, vstupenku a plakát, často v několika velikostech. Leták obsahuje totéž co web a jedná se o nadmnožinu informací z plakátu, vstupenka též zčásti jiné informace; navíc bude zřejmě orientovaná naležato, na rozdíl od letáku. Pokud takové materiály připravujete pouze jednou, nemá smysl o TEXu uvažovat – každý z materiálů zabere v TEXu minimálně dvojnásobně času než v grafickém programu.

Jiná situace nastane, pokud se taková akce opakuje často. Údaje uložené v databázi mohou zpracovávat dva skripty (např. v PHP) – jeden pro webovou prezentaci, druhý pro TEX. V případě XML data zpracuje třeba XSLT procesor a ConTEXt. Pak už záleží pouze na tom, jak jsme v TEXu zruční a jaké šablony pro prezentace vyrobíme.

Základní princip takové automatizece je stejný. Do souboru akce.tex zapíšeme:

\def\akce{Přednáška o zvířátkách}
\def\kde{kulturní dům}
\def\kdy{24. 11. 2002}
\def\cas{15:00}
\def\vstupne{30 Kč}
\def\foto{pejsci.jpg}
\generuj

Příkaz tex ‚&mujformat \input pozvanka \input akce‘ nám vygeneruje pozvánku, zatímco tex ‚&mujformat \input letak \input akce‘ vygeneruje leták.

Sazbu šablon v obou případech připravujeme v podstatě stejně jako obyčejnou sazbu, pouze namísto pevně určených textů použijeme makra. Musíme si však ohlídat různé poměry stran u obrázků a délky u textů. Je pouze na naší fantazii, jak to vyřešíme. Sazbu můžeme větvit podle toho, zda je fotografie na výšku, nebo na šířku, můžeme počítat optimální velikost písma pro jednotlivé nápisy. Pomocí výplňků (glue) vyplníme zbylý prostor.

TEX a barvy pro tisk

Připravovat s TEXem barevnou sazbu je možné a výsledky se prakticky v ničem neliší od výsledků profesionálních DTP programů.

Pokud se jedná o barevnou sazbu pro prezentaci na obrazovce nebo pro vytištění na stolní tiskárně, je barevná sazba prakticky stejně jednoduchá jako černobílá. Pouze je třeba dodržet pravidlo, že pro obrazovkovou prezentaci používáme RGB barvy a pro tištěnou prezentaci CMYK barvy. Jak PostScript, tak PDF sice umožňují kolorimetrickou specifikaci barev, ovšem běžná TEXová makra to zatím neumí.

Situace je komplikovanější, pokud chceme připravovat sazbu pro tisk. Již v makrech musíme pamatovat na přípravu souborů na osvit. Na filmu pro barevný tisk musí být mimo formát umístěny soutiskové značky, vhodné jsou i barevné značky a ořezové značky. Největší komplikace však pramení z barevné separace.

Nejjednodušší metodou je vytvoření kompozitního PostScriptu. Při ní se z jedné stránky sazby vytvoří jedna stránka postscriptového souboru. Pokud je osvitová jednotka vybavena moderním RIPem (nutno ověřit), dokáže takový soubor separovat na osvitu. U kompozitního PostScriptu nám odpadají starosti se separací, nastavením úhlů a frekvencí rastrů. Pokud vkládáme obrázky, vkládáme je jako EPS soubory v prostoru CMYK, v TEXu barvy definujeme též v prostoru CMYK (např. pomocí pstricks). Separací na osvitu se zbavujeme některých možností vylepšení barevného tisku – kompozitní PostScript neumožňuje přesah (aby se na hraně dvou sousedících barev tiskové plochy mírně překrývaly a při nepřesnosti soutisku nevznikla rušivá bílá mezera) apřetisk umožňuje jen u 100% černé (tedy aby se v místě, kde byla použita např. sytá šedá barva, neprovedlo vybrání v ostatních plátech), a to jen tehdy, pokud se to v RIPu nastaví. Tyto funkce budou zřejmě až součástí PostScriptu Level 4.

Pokud bude osvit prováděn na starší osvitové jednotce nebo potřebujeme využít speciální funkce, musíme vytvořit separovaný PostScript, kdy z každé stránky vytváříme několik barevných plátů. V TEXu je to skutečný oříšek. Znamená to vytvořit speciální konstrukce nebo modifikovat výstupní rutinu tak, aby vytvářela pro každou stránku sazby více výstupních plátů s různými separacemi. U každé barvy musí být správně nastaven úhel rastru. Celou situaci komplikují vložené obrázky. Zatímco černobílé obrázky se použijí pouze v černém plátu (a v ostatních se vytvoří bílý obdélník), barevné musí být separované již při vkládání do TEXu (tzv. formát DCS, skládající se z pěti souborů – čtyři barevné pláty plus kompozitní náhled). Naše nadstavba pak musí zajistit, aby do každého z těchto plátů byla vložena správná komponenta obrazu. Zároveň nám musí umožnit i přiměřený kompozitní náhled pro sazbu.

Celá situace hraničí s masochismem, pokud taková sazba navíc obsahuje i přímé barvy. Tehdy totiž nelze použít ani těch pár existujících maker, která pro barevnou separaci existují. Je třeba napsat vlastní (tmavá písmena v jedné barvě mohou být v jiné barvě světlá nebo neviditelná v závislosti na požadovaném přetisku). Přitom stačí drobná nepřesnost a filmy se mohou zahodit–

Kapitolu o barvách uzavřeme tím, že barevná sazba je v TEXu možná. Existuje dokonce i hotová podpora pro takovou sazbu (například podpora prostoru CMYK v balíčku pstricks, podpora separací v balíčcích aurora nebo cmyk-hax). Pokročilé funkce pro ofsetový tisk jsou však již poměrně tvrdým oříškem a k provedení takové sazby budeme potřebovat již poměrně dobré znalosti PostScriptu a výborné znalosti TEXu.

Našli jste v článku chybu?

25. 11. 2002 12:12

Stanislav Brabec (neregistrovaný)

Dávám to sem i ke starému příspěvku:

\def\loop#1\repeat{\def\body{#1}\iterate}

\def\iterate{\body \let\next\iterate

\else\let\next\relax\fi \next}

Příklad použití:

\newcount\cnt

\loop\ifnum\cnt<10 a\advance\cnt by1\fi

(vypíše deset a)

Tedy if se nachází mimo makro. TeX skutečně nemá konstrukci na cykly. Toto makro funguje tak, že:

- nadefinuje tělo cyklu jako makro \body

- pokud není splněna podmínka opuštění cyklu, expanduje se \next v makru \iterate opět na \…



















22. 11. 2002 20:24

Vojtech Hala (neregistrovaný)

Psal jsem komentar i ke druhemu dilu, ale tam to uz asi mesic nikdo necte, tak to jeste zkusim tady:

Ja jsem sice v zivote v TeXu neprogramoval, ale ten priklad s definici makra \loop se mi nejak nelibi. Nejvic asi proto, ze tam je \else a \fi, ale neni tam \if, takze to v me hlave neproslo syntaktickou analyzou. ;-) Krome toho jsem nepochopil, co dela \repeat, kdyz je nad tim napsano, ze TeX nema zadnou konstrukci na cykly. Za vysvetleni dekuji.

PS. Serial je jinak sqelej, diky za nej! :…



DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU