Jak používám TeX?

Na přednášce dne 6. 12. 2003 v Brně se pokusím (pokusil jsem se) ukázat, jakým způsobem používám TeX ve své soukromé praxi. To mě vedlo k vytvoření této stránky, kde jsou odkazy na TeXová makra, která budou (byla) na přednášce předváděna.

Ve většině případů není možné zde vystavit vlastní data, na kterých jsou makra použita. Se skutečnými daty předvedu (předvedl jsem) tato makra jen na přednášce.


1. Tisk písemek pro algebru a matematiku

Makro umožňuje zadávat písemky ve tvaru:

\ZA  zadání
\VYS řešení

\ZA  zadání dalšího příkladu
\VYS řešení dalšího příkladu

atd.

Souborů s různými tématy písemek máme více. V hlavním souboru pak můžeme vytisknout celou databázi písemek. V této databázi jsou příklady každého tématu číslovány od jedničky. Tisk této databáze použijeme k vybírání příkladů na konkrétní termín.

Výběr příkladů pro daný termín zkoušky provedeme makrem \p, za kterým následuje téma/číslo příkladu, téma/číslo příkladu atd. (tolikrát, kolik máme pro tento termín příkladů.

Makro vytiskne jednu stránku příkladů včetně řešení (pro opravujícího) a druhou stránku bez řešení (pro studenty). Formát stránky pro studenty může být dvojí: zadání je psáno velkým fontem, aby je bylo možno promítnout na zpětném projektoru, nebo malým fontem čtyřikrát ve formátu A6 na stránce A4. V tomto případě examinátor tuto stránku nakopíruje na kopírce v požadovaném počtu, rozkrájí řezačkou každou kopii na čtyři kousky a tyto kousky rozdá studentům.

Makro používají kolegové na naší katedře už mnoho let.


2. Verbatim tisk

Po mnoho let na naší katedře používám TeX jako konvertor textových souborů do PostScriptu, aby bylo možno kontrolovaně tisknout textové soubory na Postscriptových tiskárnách. Skript spouštějící TeX je zařazen do tiskového daemona jako filtr. Přitom spouští TeX jen tehdy, když tisková úloha není sama PostScriptem.

Skript se snaží sám poznat, v jakém kódování češtiny textový soubor je, a podle toho vnutí TeXu odpovídající TCX tabulku.

Zajímavou vlastností makra je interpretace znaku TAB (ASCII 9) tak, že se tisk posune na nejbližší "tabulátor", tj. celistvý násobek osmi znaků od začátku řádku.


3. Makro pro layout požadovaný Verlag Dashofer

Tento nakladatel dostane občas od některého autora rukopis v TeXu (povětšinou LaTeXu) a chce jej dostat do layoutu, který vychází z toho, že dělají průběžně doplňovatelné publikace v kroužkové vazbě. Další texty kapitol a další kapitoly mohou vznikat později a čtenář si je může jako samostatné listy do stávající kroužkové vazby vložit.

Zadáním bylo, aby nově vložené kapitoly (dělané třeba v TeXu) nevypadaly jinak než staré, které už měli udělané v Quarku či něčem takovém. Musejí tedy mít na mikrometr stejné čáry, fonty atd. Na základě podrobného popisu zrcadla sazby jsem tedy naprogramoval výstupní rutinu -- o nic více ani moc nešlo. Vzhled ani koncept layoutu se mi příliš nelíbí, ale zakázka je zakázka, tj. kecat jim do toho nebudu.

Dalším úkolem samozřejmě bylo začlenit do těchto maker LaTeXový zdroják od autorů. Ale to nebyl žádný problém, protože autoři používají konečně mnoho LaTeXových obratů, jejichž naprogramování v plainu je otázka čtvrt hodinky.

Použité fonty jsou z rodin Times/Helvetica. Pro osvit jsem ale samozřejmě zařazoval originální Adobe fonty a nespoléhal na to, co tam osvitka zařadí sama.

Makro počítá s tím, že autor bude v psaní rukopisu pokračovat. Autor může makro použít přímo na svém kompu na jakékoli TeXové distribuci. Metodou analogie naváže na způsob značkování (okraje, kapitoly atd.) a může rovnou u sebe vidět, jak se jeho text (aspoň zhruba) bude lámat do stránek, které požaduje Verlag.

Zjistil jsem, že jeden autor dělal svůj rukopis v emTeXu, kde se nedá předpokládat možnost pohodlného použití Times/Helvetica fontů. Takže jsem pro něj připravil přepínač \finalfonts{false}, který přepíná na fonty z Computer Modern a obchází použití OFS (nepředpokládám, že by autor měl OFS nainstalováno).


4. Inzertní příloha časopisu Dotek

Práci na této zakázce jsem podědil od pana Brabce, který to měl udělané ve svém uplainu. Několik měsíců jsem to používal, ale deptalo mě, že do toho nemohu dělat hlubší zásahy, protože jsem nikde nenašel dobrou dokumentaci k tomu uplainu. Rozhodl jsem se proto nakonec to celé přepsat do csplainu.

Makro má následující vlastnosti:


5. Čtení databázových údajů

Pro čtení údajů z mysql databáze a tisk adresních štítků nebo vizitek účastníků konference jsem si udělal toto makro. Makro čte výstupy z databáze mysql a nasune data do maker podle názvů sloupečků. Uživatel pak tato makra může použít v tisku tam, kde potřebuje.


6. Testy Kalibro

Firma Kalibro dělá každoročně testy žáků a tiskne jednak testy, jednak výsledky a konimentáře k těm výsledkům. Od autorů -- učitelů přebírají jednotlivé testové otázky a zpracovávají ve svém systému. Dosud to dělali ve WodPerfectu a rozhodli se přejít na moderní technologii. Chtěli by mít otázky uložené v XML s případným výstupem pomocí TeXu na papír nebo do PDF.

Upozornil jsem zákazníka, že návrh XML struktury pro jejich testy a implementaci této struktury v počítači by měl dělat někdo jiný, že mohu nabídnout za sebe jen část týkající se TeXu. Konzultoval jsem věc s Jiřím Koskem a dospěli jsme k závěru, že v nouzi (kdy se nedaří najít člověka, který by se zabýval tím XML) se dají udělat TeXová makra čtoucí data s rozumně strukturovaného souboru. Později by se udělala XML implementace s možností výstupu (mimo jiné) do mnou navržené textové struktury pro TeX. Pánové z Kalibra chtěli opustit ten WP docela rychle, chtěli tisknout z TeXu a byli ochotni se pustit do XML projektů později.

Na konci makra je popis navržené struktury z uživatelského hlediska, protože předpokládám, že to budou používat lidé bez hlubších znalostí TeXu. Projek zatím není ukončen.

Makra umožní tisk testů bez vyznačených výsledků (pro žáky) nebo s vyznačenými výsledky a komentáři k těmto výsledkům.


7. Slovíčka

Makro umožní načíst anglická slovíčka s výslovností [zapsanou docela přirozeně do hranatých závorek] a s českým významem. TeX slovíčka rozmístí na papír do třech sloupců po devíti. Lícová strana papíru A4 obsahuje anglické tvary a rubová české ekvivalenty. Uživatel tyto papíry může rozstříhat na "kartičky" a učit se slovíčka pomocí těchto kartiček převracením na anglickou či českou stranu kartičky. To dělají někteří lidé v metru.