V souvislosti s instalací nového centrálního počítače Masarykovy univerzity (viz článek v tomto čísle Zpravodaje) bychom rádi v sérii článků seznámili univerzitní uživatele s nejdůležitějšími programovými systémy na tomto počítači instalovanými. Smyslem seriálu je poskytnout co nejpřehlednější informace o tom, jak lze jednotlivé systémy použít, jaké hodnoty parametrů jsou v lokální instalaci předdefinovány, jaká omezení či naopak rozšíření oproti "standardním" (tj. v nezávislé literatuře popsaným) verzím jsou implementována, jaká je kompatibilita s verzemi pro jiné operační systémy a počítače, zkrátka poskytnout co nejúplnější informaci nutnou k praktickému použití systému na počítači dior.ics.muni.cz. Články budou sloužit jako doplnění obecných příruček (knih) a v žádném případě je nebudou nahrazovat.
Sázecí systém TeX a jeho nadstavba LaTeX patří mezi programy, které jsou na univerzitě široce používány. TeX je počítačový program určený k neinteraktivnímu sázení textů s profesionální kvalitou tisku. Sazba systémem TeX připomíná klasický překlad programů: zdrojový text dokumentu, který je proložen příkazy k sazbě, je zpracován programem TeX do "strojově" nezávislé podoby (tj. do podoby nezávislé na konkrétním výstupním zařízení). V této fázi jsou detekovány všechny syntaktické chyby. Strojově nezávislá (dvii, tj. device independent) forma je pak přeložena dalším programem do podoby pro konkrétní výstupní zařízení (obrazovka - program xdvi, PostScriptová tiskárna - program dvips, ...). V závislosti na skutečném tvaru výstupního dokumentu (analogie běhu programu) je pak opraven zdrojový dokument a celý proces se opakuje. Na závěr je pak strojově nezávislá forma zpracována pro kvalitní výstup (např. sázecí stroj) - přitom systém poskytuje záruku, že výsledek bude vypadat (až na vlastní kvalitu tisku) stejně jako poslední "draft" kopie.
Přestože existuje celá řada uživatelů, kteří vystačí se samotným TeXem, pro většinu běžných prací je TeX zbytečně "primitivní" a je vhodnější využít některé z jeho nadstaveb. TeX sám poskytuje makrojazyk, umožňuje tedy psát další rozšíření bez modifikace původního programu. Jednou z nejznámějších nadstaveb základního programu TeX je systém LaTeX, ve kterém je řada často se opakujících skupin příkazů (např. tisk nadpisu kapitoly, podkapitoly, oddílu; tvorba obsahu; tisk tabulek a další) již předprogramována. Tím je složitost (a ovšem i krása) základního systému TeX "schována" před koncovým uživatelem, který dostává k dispozici jakousi "kuchařku" s předdefinovanými příkazy. amsTeX je název dalšího široce používaného rozšíření systému TeX.
Z výše uvedeného je zřejmé, že systém TeX je tvořen celou rodinou základních i pomocných programů, adresářů a souborů, které musí být všechny na počítači k dispozici, má-li být celý systém TeX použitelný. Rovněž je zřejmé, že existuje téměř nepřeberné množství alternativních nastavení základních parametrů, kterými se konkrétní instalace systému TeX mohou lišit a jejichž neopatrné použití může vést k rozdílným výsledkům (rozdílnému tvaru vysázeného dokumentu) na různých počítačích (obdobně jako když v programu zanedbáme vliv zaokrouhlovací chyby a dostaneme numericky odlišné výsledky na různých počítačích).
V dalším se budeme věnovat konkrétní (lokální) instalaci systému TeX. Vzhledem k rozsáhlosti celého systému (a množství různých nastavení) se omezíme pouze na zcela základní informace, související pouze se systémem LaTeX2e, nejnovější implementací systému LaTeX. Předpokládáme, že v nejbližší době vyjde na MU "Lokální příručka uživatele systému TeX", která bude obsahovat více a podrobněji rozebraných informací (včetně úvodu do vlastního systému LaTeX2e).
Systém TeX je instalován na počítači dior v modulu tex a uživatel si jej zpřístupní příkazem
module add tex |
Tím jsou zpřístupněny všechny programy systému TeX, především vlastní TeX, program metafont a "překladače" (drivery) pro konkrétní výstupní zařízení (včetně obrazovky), a další podpůrné a pomocné programy.
Mezi základní instalované programy patří:
Podrobnější informace o všech zmíněných a řadě dalších programů, tvořících systém TeX, lze po připojení modulu tex získat v manuálových stránkách (např. příkazem man tex).
Původní program TeX pracoval pouze s ASCII (resp. EBCDIC) abecedou, tj. s písmeny bez jakýchkoliv diakritických znamének. Písmena s diakritikou byla brána jako výjimka a bylo nutno je ve zdrojovém textu skládat z vlastního písmene a znaménka. Tento postup je však přirozeně nevhodný při práci v jazycích, kde písmena s diakritikou tvoří podstatnou část abecedy.
Autoři programu TeX a jednotlivých nadstaveb se doposud neshodli na jednotném přístupu k národním jazykům. V systému LaTeX2e je k dispozici styl inputenc, používaný následujícím způsobem:
\usepackage[kódování]{inputenc} |
kde kódování může být např. latin1 (kódování ISO LATIN1), latin2 (kódování ISO-LATIN2) či ascii (standardní ASCII tabulka). Použijeme-li tento styl, je zdrojový text překládán podle příslušného kódování, ovšem na úrovni příkazů programu TeX3. Důsledkem tohoto procesu je, že všechny výstupní soubory (např. aux, toc), včetně výstupu na obrazovku, jsou již ve vnitřním kódování TeXu. To je zcela korektní pro vlastní program, ale poněkud nečitelné pro uživatele (např. slovo "překladače" se ve výstupu objeví jako "p^^f8eklada^^e8e". Základní nastavení v programu latex je T1, v programu cslatex IL2. Pro lepší přenositelnost programů mezi různými instalacemi TeXu však doporučujeme používat styl inputenc vždy.
Výhodou tohoto postupu je to, že informace o vnitřním kódování vstupního souboru je součástí zdrojového textu. Konkrétně to znamená, že tento text lze přeložit korektně (snad až na konkrétně použité fonty) na jakékoliv instalaci TeXu (resp. LaTeX2e).
Styl inputenc je však součástí pouze systému LaTeX2e a není v jiných nadstavbách TeXu (a ani v samotném TeXu) k dispozici. V programu TeX je proto k dispozici jiná varianta úpravy pro konkrétní národní prostředí - proměnná TEXCHARTRANSLATE. Tato proměnná (jedná se o proměnnou uživatelského shellu) definuje konverzní tabulku na úrovni samotného programu TeX, oproti stylu inputenc tedy šetří jednu úroveň překladu. Překlad na úrovni programu TeX je obousměrný, tj. všechny výše zmíněné soubory zůstávají v původně zvoleném kódování a jsou tedy pro uživatele zcela čitelné.
Základní nevýhodou použití proměnné TEXCHARTRANSLATE je však oddělení informace o kódování od vstupního souboru. Tento způsob konverze současně představuje zásah do vlastního programu TeX, který - přestože byl odsouhlasen autorem TeXu - není na většině instalací implementován. Vstupní texty, předpokládající konkrétní nastavení proměnné TEXCHARTRANSLATE, nemusí být jednoduše přeložitelné na instalaci TeXu mimo Masarykovu univerzitu. Styl inputenc je naproti tomu standardní součástí distribuce LaTeX2e.
Fonty tvoří další významnou složku celého systému. Práce s fonty by měla být pro běžného uživatele v podstatě transparentní, přesto však, zejména při zpracování neobvyklých textů, je vhodné znát další podrobnosti. Vlastní TeX pracuje pouze s metrikami fontů, tj. (přibližně) pouze s informací, jak jsou jednotlivá písmena velká (do jak velkých obdélníků je lze vložit) a jak se jednotlivá písmena skládají do slov (tzv. kerning). Konkrétní informace o tvaru jednotlivých písmen se používá až při generování souboru pro určité výstupní zařízení (tiskárnu). Tato informace byla v původním TeXu připravena v podobě komprimovaných bitových map pro konkrétní výstupní zařízení, velikost a rozlišení, tzv. pk souborů. Protože však není možno připravit předem všechny varianty, jsou součástí systému TeX i definice fontů v podobě, ze které je možno programem metafont generovat bitovou mapu. Tím je zajištěna široká použitelnost na mnoha výstupních zařízeních s "rozumnými" požadavky na diskový prostor. Všechny drivery pro výstupní zařízení automaticky generují fonty (správněji komprimované bitové mapy), které nejsou k dispozici. Tyto soubory jsou umisťovány do stromu s kořenem /packages/share/tex/lib/fonts/tmp a je možno je bez následků4 smazat.
Protože v PostScriptu je možno definovat znaky nezávisle na rozlišení, poskytuje funkcionalitu, původně zprostředkovanou pouze programem metafont, i samotný PostScript. Použití PostScriptových fontů v TeXu je možné (a instalace na počítači dior to umožňuje), ovšem podrobnosti již přesahují rozsah tohoto příspěvku.
Zjednodušeně řečeno je systém TeX tvořen vlastními programy, stromem stylů, stromem konfigurací a stromem fontů. Zatímco (binární) programy jsou specifické pro konkrétní operační systém (a často i jeho verzi), stromy stylů, konfigurací a fontů mohou být sdíleny i přes jednotlivé platformy5.
Strom stylů na počítači dior obsahuje všechny podporované styly, které jsou součástí systému LaTeX2e, některé další styly pro LaTeX2e a dále všechny starší styly, které byly součástí původního systému LaTeX 2.09. Jsou k dispozici všechny styly zmíněné v příručce LaTeX2e pana L. Lamporta a většina stylů zmíněných v používané příručce "LaTeX Companion" autorů M. Goossense, F. Mittelbacha a A. Samarina6. Protože dynamický vývoj systému TeX v podstatě znemožňuje zachytit skutečnou podobu v jedné příručce, je nutno hledat konkrétní informace o instalovaných stylech přímo on-line, nejlépe prostřednictvím www nápověd (adresa http://www.muni.cz/TeXhelp/TeX-homepage.html) a lokálních on-line dokumentů (např. ftp.muni.cz:/pub/tex/local/doc).
Jak bylo zmíněno výše, podstatnou součástí celého systému jsou soubory předzpracovaných maker a stylů, tzv. soubory formátů. K dispozici je celá řada formátů, pro běžné použití však vystačíme s
Soubor dvi, vygenerovaný programem TeX, musí být před tiskem zpracován vhodným programem, majícím informace o konkrétním výstupním zařízení. Vysoká kvalita sazby produkované programem TeX v podstatě vylučuje použití jiných než laserových a ink-jetových tiskáren (případně sázecích strojů) pro rutinní použití7. Většina těchto zařízení pracuje buď ve formátu HP LaserJet (PCL 5) nebo PostScript.
Program dvips je určen pro majitele (či alespoň uživatele) PostScriptových tiskáren. Instalace na počítači dior generuje automaticky PostScriptové soubory v rozlišení 300x300 dpi (dot per inch, hustota tisku), tj. v rozlišení nejjednodušších laserových tiskáren. Hustoty 600x600 dpi (kvalitní laserové tiskárny, jako je např. HP LaserJet IV) je možno dosáhnout použitím klíče -P lj4, hustoty 1200x1200 pak klíčem -P optra. Na generování pouze určitých stránek dokumentu slouží klíče -p číslo a -l číslo, kde číslo je číslo TeXem číslované stránky (včetně)8. Pokud jsou v dokumentu stránky přečíslovávány, pak je vhodné použít před číslem stránky znak rovnítko (=číslo), čímž se zadává absolutní číslo stránky (první stránka dokumentu má číslo jedna).
Pro HP tiskárny bez PostScriptu můžeme použít program dvilj.
Vzhledem k rozšířenosti systému TeX je podporována nejen instalace pod operačním systémem Solaris 2.4, ale i pod dalšími operačními systémy, konkrétně IRIX 5.3 (Silicon Graphics), Linux a BSD/OS (osobní počítače). Vzhledem k problémům s kompatibilitou (délka názvů souborů, oddělovače adresářů, ...) není přímo podporována instalace pod MS DOS (je však možno použít buď originální instalace emTeXu nebo CSTUGem šířený csTeX). Jsou tedy k dispozici binární verze všech zmíněných (a řada dalších) programů, připravených k přímému použití. Rozsáhlost systému maker (stylů) a dalších pomocných souborů vedla dále k vytvoření alternativního, tzv. malého TeXu. V malém TeXu je k dispozici jen podmnožina všech stylů, konfiguračních souborů a fontů, je ovšem uspořádána do identického stromu, který lze volně rozšiřovat o podstromy a soubory z původní (velké) instalace na počítači dior. Výběr maker a fontů malé instalace je samozřejmě značně subjektivní a autoři (především LM) budou vděční za připomínky a návrhy na její rozšíření (či redukci).
Na ftp.muni.cz jsou tedy v adresáři /pub/tex/local/mu-inst k dispozici následující zakomprimované (gzip) tar soubory:
Z důvodů kompatibility jsou všechny programy přeloženy s absolutními cestami pro přímé nasazení do systému modulů. Všechny binární programy jsou ukládány do adresářů pod kořenem /packages/run/tex, všechny sdílené moduly pak do adresářů pod kořenem /packages/share/tex9. Pokud není používán systém modulů pro nastavení cest, je třeba překopírovat (vhodně modifikovaný) obsah souboru tex-module.gz do souborů /etc/profile a/nebo /etc/login na lokálním počítači10.
Všechny cesty k fontům, stylům i konfiguračním souborům jsou zakompilovány přímo ve vlastních programech, umístíme-li proto obsah souboru tex-large.tar.gz (nebo tex-small.tar.gz) pod uvedený strom, žádná další nastavení nejsou potřeba.
Složitost systému TeX vydá na celé knihy, proto nelze vše popsat v pouze jediném článku. Přesto doufáme, že se nám podařilo poskytnout alespoň základní informaci pro praktické použití systému TeX na počítači dior (či na lokální instalaci, podle této budované). Další informace pak bude možno nalézt v již zmíněné lokální příručce, přihlášením se do diskusní skupiny mutex@muni.cz, dotazy autorovi a samozřejmě vlastním používáním systému TeX.
1 | Programy tex, latex i cslatex jsou
identické s vlastním programem virtex ("virgin TeX").
Systém TeX totiž při spuštění binárního programu otestuje jméno, pod
kterým byl spuštěn, a poté hledá soubor stejného jména
ve speciálním adresáři souborů formátů. Nalezne-li jej, načte
jej a převezme všechny v něm obsažené definice. Soubory
formátů se vytváří dalším programem systému TeX, programem
initex. Namísto volání programu latex lze
se stejným účinkem použít i příkazu virtex
'&latex'.
... zpět do textu |
2 | K dispozici je celá rodina příbuzných programů, určených pro
konkrétní výstupní zařízení (tiskárny). Jejich seznam bude
k dispozici v lokálním průvodci.
... zpět do textu |
3 | Pro hloubavé to znamená, že text je načten vlastním programem TeX
a načtené znaky jsou zpracovány určitým makrem, definovaným
ve stylu inputenc, a překódovány do vnitřní
reprezentace programu TeX.
... zpět do textu |
4 | Míněno jiných než rychlost zpracování.
... zpět do textu |
5 | Bohužel toto sdílení není absolutní a není např. jednoduše
možno sdílet soubory mezi UNIXem a MS DOSem.
... zpět do textu |
6 | Některé styly z této příručky však již byly přejmenovány či
sloučeny s dalšími.
... zpět do textu |
7 | To přirozeně neznamená, že není možno generovat soubory pro tisk
na jehličkových tiskárnách. Vysoká kvalita však vede
k pomalému tisku, což je akceptovatelné pouze pro krátké
soubory.
... zpět do textu |
8 | Jako mnemonickou pomůcku můžeme chápat -p jako
první a -l jako last.
... zpět do textu |
9 | Toto uspořádání nepodporuje současné zpřístupnění jak malého, tak
i velkého TeXu na jediném počítači bez modifikací cest.
Kromě vývoje však autoři neznají žádný důvod pro takovou duální
instalaci.
... zpět do textu |
10 | Případně do souborů .profile či .login
konkrétního uživatele.
... zpět do textu |