Základy počítačové sazby v systémech TßX a MßX Roman Plch katedra matematiky PřF MU 8. prosince 2005 Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze * 1980, založena organizace sdružující uživatele TjnXu, TUG (TeX Users Group) Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze * 1980, založena organizace sdružující uživatele TjnXu, TUG (TeX Users Group) * 1990, vzniká CSTUG Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze * 1980, založena organizace sdružující uživatele TjnXu, TUG (TeX Users Group) * 1990, vzniká CSTUG * 1992, zmrazení dalšího vývoje Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze * 1980, založena organizace sdružující uživatele TjnXu, TUG (TeX Users Group) * 1990, vzniká CSTUG * 1992, zmrazení dalšího vývoje * Dnes už Knuth TgX dále nevyvíjí, ale pouze opravuje chyby, o kterých se dozví (a kterých je dnes však už velice málo). Aktuální verze je 3,14159. Vznik a historie TeXu * 1977, ,,Mathematics books and journals do not look as beautifull as they used to", Donald Ervin Knuth, profesor Standforské univerzity. * 1978, první verze * 1980, založena organizace sdružující uživatele TjnXu, TUG (TeX Users Group) * 1990, vzniká CSTUG * 1992, zmrazení dalšího vývoje * Dnes už Knuth TgX dále nevyvíjí, ale pouze opravuje chyby, o kterých se dozví (a kterých je dnes však už velice málo). Aktuální verze je 3,14159. Co je TEX? * sázecí autorský systém ˇFirst Prev Next Last Go Back Full Screen Close Quit Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) * dávkový: ze vstupu $ c=\ s q r t {a " 2 +b " 2 } $ dostaneme c = v'a1 + b2 Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) * dávkový: ze vstupu $ c=\ s q r t {a " 2 +b " 2 } $ dostaneme c = v'a1 + b2 * portabilní (od Atari či dvoudisketového PC XT po Cray) Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) * dávkový: ze vstupu $ c=\ s q r t {a " 2 +b " 2 } $ dostaneme c = v'a1 + b2 * portabilní (od Atari či dvoudisketového PC XT po Cray) * stabilní ($256 za nalezení chyby) Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) * dávkový: ze vstupu $ c=\ s q r t {a " 2 +b " 2 } $ dostaneme c = v'a1 + b2 * portabilní (od Atari či dvoudisketového PC XT po Cray) * stabilní ($256 za nalezení chyby) * dobře dokumentovaný (vyšel knižně) Co je TEX? * sázecí autorský systém * programovatelný, t.j. s vlastním makrojazykem (byl v něm například pro zábavu implementován interpret jazyka BASIC) * dávkový: ze vstupu $ c=\ s q r t {a " 2 +b " 2 } $ dostaneme c = v'a1 + b2 * portabilní (od Atari či dvoudisketového PC XT po Cray) * stabilní ($256 za nalezení chyby) * dobře dokumentovaný (vyšel knižně) * volně šiřitelný * s výstupem na zařízení nezávislým Co TfejX není * editor * program na grafiku (na to slouží komplementární program METAFONT přibližně stejné velikosti) * WYSIWYG (nadstavby jako LyX existují) * rychle naučitelný Algoritmy * Řádkový zlom - TgX načte do paměti celý obsah odstavce jako jednu linku a několikrát se ho pokusí nalámat. Bere přitom v potaz mnoho proměnných a typografickch pravidel. Matematicky řečeno hledá hledá minimum jakési ,,cenové" funkce. Algoritmy * Řádkový zlom - TgX načte do paměti celý obsah odstavce jako jednu linku a několikrát se ho pokusí nalámat. Bere přitom v potaz mnoho proměnných a typografickch pravidel. Matematicky řečeno hledá hledá minimum jakési ,,cenové" funkce. * Dělení slov - TjnX může současně pracovat s maximálně 256 jazyky. Má uloženy tabulky se vzory dělení slov. Algoritmus pro dělení slov navrhl Frank M. Liang. Algoritmy * Řádkový zlom - TgX načte do paměti celý obsah odstavce jako jednu linku a několikrát se ho pokusí nalámat. Bere přitom v potaz mnoho proměnných a typografickch pravidel. Matematicky řečeno hledá hledá minimum jakési ,,cenové" funkce. * Dělení slov - TjnX může současně pracovat s maximálně 256 jazyky. Má uloženy tabulky se vzory dělení slov. Algoritmus pro dělení slov navrhl Frank M. Liang. * Stránkový zlom - vzhledem k exponenciální složitosti algoritmu optimalizujícího vzhled celého dokumentu TgX optimalizuje vzhled jediné strany. Nastavením parametrů lze určit vhodnost zlomu v tom kterém místě. Algoritmy * Řádkový zlom - TgX načte do paměti celý obsah odstavce jako jednu linku a několikrát se ho pokusí nalámat. Bere přitom v potaz mnoho proměnných a typografickch pravidel. Matematicky řečeno hledá hledá minimum jakési ,,cenové" funkce. * Dělení slov - TjnX může současně pracovat s maximálně 256 jazyky. Má uloženy tabulky se vzory dělení slov. Algoritmus pro dělení slov navrhl Frank M. Liang. * Stránkový zlom - vzhledem k exponenciální složitosti algoritmu optimalizujícího vzhled celého dokumentu TgX optimalizuje vzhled jediné strany. Nastavením parametrů lze určit vhodnost zlomu v tom kterém místě. * Matematická sazba - Knuth věnoval sazbě matematiky mimořádnou pozornost. Propracovanost matematické sazby nemá obdoby v žádném jiném (ani komerčním) systému. Algoritmy * Řádkový zlom - TgX načte do paměti celý obsah odstavce jako jednu linku a několikrát se ho pokusí nalámat. Bere přitom v potaz mnoho proměnných a typografickch pravidel. Matematicky řečeno hledá hledá minimum jakési ,,cenové" funkce. * Dělení slov - TjnX může současně pracovat s maximálně 256 jazyky. Má uloženy tabulky se vzory dělení slov. Algoritmus pro dělení slov navrhl Frank M. Liang. * Stránkový zlom - vzhledem k exponenciální složitosti algoritmu optimalizujícího vzhled celého dokumentu TgX optimalizuje vzhled jediné strany. Nastavením parametrů lze určit vhodnost zlomu v tom kterém místě. * Matematická sazba - Knuth věnoval sazbě matematiky mimořádnou pozornost. Propracovanost matematické sazby nemá obdoby v žádném jiném (ani komerčním) systému. T]HXjako takový obsahuje zhruba 300 základních značkovacích příkazů. Pomocí makrojazyka, který je součástí TgXu, můžeme vytvářet nové sázecí příkazy. Takto vznikla také spousta více či méně známých formátů TßXu: * plainTjnX Tento formát naprogramoval sám autor TgXu Donald Knuth. PlainTjnX rozšiřuje počet příkazů, které může uživatel použít, na devět set. Vyžaduje schopnost programátorského myšlení, protože většinu maker si musí uživatel vytvořit a odladit sám. T]HXjako takový obsahuje zhruba 300 základních značkovacích příkazů. Pomocí makrojazyka, který je součástí TgXu, můžeme vytvářet nové sázecí příkazy. Takto vznikla také spousta více či méně známých formátů TßXu: * plainTjnX Tento formát naprogramoval sám autor TgXu Donald Knuth. PlainTjnX rozšiřuje počet příkazů, které může uživatel použít, na devět set. Vyžaduje schopnost programátorského myšlení, protože většinu maker si musí uživatel vytvořit a odladit sám. * L*TEX Je ndstavbou TgXu vytvořenou panem Leslie Lamportem. Byl vytvořen zejména proto, aby zjednodušil sazbu dokumentů v TgXu a zpřístupnil tak jinak poněkod složitý jazyk běžnému uživateli. T]HXjako takový obsahuje zhruba 300 základních značkovacích příkazů. Pomocí makrojazyka, který je součástí TgXu, můžeme vytvářet nové sázecí příkazy. Takto vznikla také spousta více či méně známých formátů TßXu: * plainTjnX Tento formát naprogramoval sám autor TgXu Donald Knuth. PlainTjnX rozšiřuje počet příkazů, které může uživatel použít, na devět set. Vyžaduje schopnost programátorského myšlení, protože většinu maker si musí uživatel vytvořit a odladit sám. * L*TEX Je ndstavbou TgXu vytvořenou panem Leslie Lamportem. Byl vytvořen zejména proto, aby zjednodušil sazbu dokumentů v TgXu a zpřístupnil tak jinak poněkod složitý jazyk běžnému uživateli. * AA^-T EX Formát napsaný původně pro Americkou Matematickou společnost. Tvorba dokumentu metriky fontů ,tfm formát .fínt styly .sty zdrojový text t T J 6 X uživatel .log .dvi Bitové mapy fontö pro jednotlivé ovladače -pk, . f l i obrazovka (monitor) tiskárna jma tiskárna ˇFirst Prev Next Last Go Back Full Screen Close Quit ˇ Editorem vytváříme zdrojový dokument . t ex. (PSPAD: http : / /www. pspad. com/). * Zdrojový dokument zpracujeme T^Xem - přitom se načítá soubor zvaný formát (. f mt) - předzpracovaná sbírka TjnXových maker k rychlému natažení. Další nezbytností jsou písma. Samotný TgX se však nestará o to, jak takové písmeno vypadá. Proto TjnX nenačítá samotná písmena, ale pouze informaci o šířkách a výškách písmen, ligaturách, sklonu a dalších hodnotách. Tato souhrnná informace o písmu se nazývá metrika. V případě TgXu má příponu . tfm. * Po skončení práce TgXu získáme (kromě pomocných souborů) soubor DVI (DeVice Independent). Je to soubor, který popisuje, kam se TjnX rozhodl umístit texty. Kromě toho může obsahovat speciální značky pro výstupní zařízení, jejichž pomocí se do TgXu implementují barvy, podpora obrázků a další. Tento soubor si již můžeme prohlédnout DVI prohlížečem. * Často jej však použijeme pro převod do jiného výstupního formátu - PostScript (pomocí programu dvips). ˇ Postscript (PS): Jazyk PostScript byl navržen firmou Adobe v roce 1985jakojazyk pro popis stránek. Díky svým rozsáhlým možnostem se však brzy stal i formátem používaným k přenosu obrázků mezi aplikacemi. ˇ Postscript (PS): Jazyk PostScript byl navržen firmou Adobe v roce 1985jakojazyk pro popis stránek. Díky svým rozsáhlým možnostem se však brzy stal i formátem používaným k přenosu obrázků mezi aplikacemi. * zapouzdřený PostScript (Encapsulated PostScript - EPS): Od normálního strukturovaného PostScriptu se příliš neliší-jediný zásadní rozdílje v tom, že neobsahuje žádné příkazy pro nastavení zařízení či souřadného systému a nemanipuluje s interpretem tak, aby to ovlivnilo zpracování ostatních částí dokumentu. Některé PostScriptové příkazy tedy formát EPS zcela zakazuje, jiné omezuje. Aplikace pro EPS připraví prostředí (souřadný systém) tak, aby byl obrázek ve správné poloze a velikosti. K tomu jí napomáhá informace o ohraničujícím rámu (Bounding Box), která se nachází ve strukturovaných komentářích každého EPS souboru. ˇ Postscript (PS): Jazyk PostScript byl navržen firmou Adobe v roce 1985jakojazyk pro popis stránek. Díky svým rozsáhlým možnostem se však brzy stal i formátem používaným k přenosu obrázků mezi aplikacemi. * zapouzdřený PostScript (Encapsulated PostScript - EPS): Od normálního strukturovaného PostScriptu se příliš neliší-jediný zásadní rozdílje v tom, že neobsahuje žádné příkazy pro nastavení zařízení či souřadného systému a nemanipuluje s interpretem tak, aby to ovlivnilo zpracování ostatních částí dokumentu. Některé PostScriptové příkazy tedy formát EPS zcela zakazuje, jiné omezuje. Aplikace pro EPS připraví prostředí (souřadný systém) tak, aby byl obrázek ve správné poloze a velikosti. K tomu jí napomáhá informace o ohraničujícím rámu (Bounding Box), která se nachází ve strukturovaných komentářích každého EPS souboru. * Portable Document Format (PDF): Interpretace postscriptového kódu je poměrně složitá a relativně pomalá. PostScript je navíc textový formát, což zvyšuje velikost souborů. Formát PDF přebral ideu popisu stránky, ovšem vyřadil všechny programovací konstrukce. Naproti tomu přidal podporu komprese celého kódu, kryptografie, náhledů stran, hypertextových odkazů, apletů, barevných profilů ICC aj. Zdroje informací, software * C^TUG: http : //www. cstug. cz/ * Archívy CTAN a C^TUG: http://www.cstug.cz/ctan/index.html * Konference a news skupiny: http://www.cstug.cz/diskuze-index.html * Kurs I^TjnXu: http://www.math.muni.cz/~plch/vyuka/tex/ tex.html * Ghostview, Ghostscript: http://www.cs.wisc.edu/~ghost/index.html * Adobe Reader: http://www.adobe.com/products/acrobat/readstep2. html * I^rßX2html: http : //www. Iatex2html. org/ * PDFCreator: http://www.slunečnice.cz/product/PDFCreator/ Literatura [1] Beran V.: Aktualizovaný typografický manuál, nakladatelství Manuál 2003. [2] Cechová L., Plch R.: Sázíme v ETßXu diplomovou práci z matematiky, skriptum MU Brno 2003. [3] Goossens M., Rahtz S., Mittelbach F.: The ET[X Companion, AddisonWesley 1994. [4] Goossens M., Rahtz S., Mittelbach F.: The ETjdí Graphics Companion, Addison-Wesley 1997. [5] Grätzer G.: Math into ET^X, Third Edition, Birkhäuser Boston 2000. [6] Kočer M.: Ne příliš stručný úvod do systému ETßX2e, 1998. http://www.penguin. cz/~kocer/texty/lshort2e/ lshort2e-cz.pdf [7] Olšák P.: Typografický systém Tjdí, Konvoj Brno, 2000. [8] Olšák P.: Jak TpX pracuje s PostScriptem, Zpravodaj Československého sdružení uživatelů TjnXu, 3 (3), 101-113, 1993. [9] Rybička J.: WT^Kpro začátečníky, 3. vydání, KONVOJ, Brno 2003.