V souΦasnΘ dob∞ v∞tÜina u₧ivatel∙ prochßzφ jakousi pyramidou program∙ na zpracovßnφ text∙. V∞tÜinou zaΦφnß s T602 nebo n∞jak²m podobn²m jednoduch²m editorem. M∙₧e se ale stßt, ₧e pot°ebuje pou₧φvat v∞tÜφ mno₧stvφ font∙, zaΦlenit do textu obrßzek, graf nebo tabulku. Pak mß ovÜem velmi bohatou nabφdku, zejmΘna pokud se t²kß textov²ch procesor∙ b∞₧φcφch pod MS-Windows (AmiPro, MS Word, WinText602, WordPerfect atd.). Pokud ani to u₧ivateli nestaΦφ, jsou pro n∞j t∞sn∞ pod vrcholem pomyslnΘ pyramidy p°ipraveny DTP programy jako Ventura Publisher, PageMaker, 3B2 nebo QuarkXPress. Pokud by u₧ivatel absolvoval tuto dlouhou cestu formou legßln∞ zakoupen²ch program∙ (jak jinak by takΘ mohl), p°iÜlo by ho to na p∞kn²ch pßr desφtek tisφc. A to jeÜt∞ nedosßhl vrcholu pyramidy. Co se na n∞m skr²vß? Ano, odpov∞∩ m∙₧ete naleznout v nßzvu Φlßnku, je to TeX. Slovo TeX se Φte "tech", pochßzφ toti₧ z °eckΘho (dovednost, um∞nφ).
Zvφdav² Φtenß°, kter² slyÜφ o TeXu poprvΘ si asi polo₧il otßzku, proΦ by nejdokonalejÜφ m∞l b²t program, o kterΘm v ₧ßdnΘm z mnoha poΦφtaΦov²ch magazφn∙, kterΘ Φte, nebylo ani pφsmenko. O typografick²ch kvalitßch TeXu se vßs pokusφm p°esv∞dΦit v nßsledujφcφch odstavcφch Φlßnku. S kvalitou souvisφ i cena, kterß je pro v∞tÜinu u₧ivatel∙ d∙le₧itß. Tento program je "public domain", byl vytvo°en na p∙d∞ StanfordskΘ university a jeho autor Donald Ervin Knuth ho v∞noval ÜirokΘ ve°ejnosti k pou₧φvßnφ. KomerΦn∞ se Üφ°φ pouze n∞kterΘ specißlnφ verze.
Mezi TeXem a ostatnφmi textov²mi editory jsou velkΘ rozdφly. U v∞tÜiny editor∙ se text pφÜe a pr∙b∞₧n∞ zobrazuje u₧ tak, jak bude vypadat (tzv. WYSIWYG -- What You See Is What You Get -- "co vidφÜ, to dostaneÜ"). Narozdφl od nich TeX pot°ebuje na sv∙j vstup text p°ipraven² v podstat∞ libovoln²m ASCII editorem, kter² krom∞ vlastnφho textu obsahuje p°φkazy, kterΘ urΦujφ jak se mß s textem pracovat, tj. urΦujφ typ pou₧itΘho pφsma, druh zarovnßvßnφ atd. N∞kdy se tedy m∙₧eme setkat s oznaΦenφm WYWIWYG (What You Want Is What You Get -- "co chceÜ, to dostaneÜ"). U₧ nynφ je tedy patrnΘ, ₧e zatφmco z naÜich obvykl²ch program∙ dostaneme pouze to, co vidφme, z TeXu obdr₧φme to, co opravdu pot°ebujeme.
V srpnu 1978 se TeX dostal k prvnφm u₧ivatel∙m. Dnes je tato verze oznaΦovßna jako TeX 78. O dva roky pozd∞ji, 22. ·nora 1980, byla zalo₧ena organizace, sdru₧ujφcφ u₧ivatele TeXu, kterß se jmenuje TUG (TeX Users Group) a tΘm∞° souΦasn∞ s jejφm vznikem zaΦal vychßzet TUGBoat -- Φasopis pln∞ v∞novan² problematice TeXu. Pozd∞ji vznikaly i lokßlnφ organizace TUG, u nßs existuje CSTUG, kter² mimo jinΘ Φty°ikrßt roΦn∞ vydßvß "Zpravodaj ╚eskoslovenskΘho sdru₧enφ u₧ivatel∙ TeXu". DalÜφ v²znamnou verzφ je TeX82, kter² byl rozÜφ°en o vylepÜenou skupinu font∙ Computer Modern. V roce 1989 byl Knuthem TeX p°epracovßn tak, aby mohl pracovat se vstupnφm souborem, kter² obsahuje znaky s k≤dem 0-255 (do tΘ doby podporoval pouze 128 k≤d∙). Tak vznikl TeX 3.0, kter² je navφc multilingußlnφ, tj. v jednom textu lze d∞lit slova podle pravidel r∙zn²ch jazyk∙.
TeX je velice mocn² a dokonal² "formßtovaΦ" zejmΘna pro matematickΘ texty. Z tΘto jeho specializace a velikΘ flexibility vypl²vß pro zaΦφnajφcφho u₧ivatele nep°ßtelskost a slo₧itost celΘho programu. Aby bylo usnadn∞no zpracovßnφ textu, byly vytvo°eny soubory maker, kterΘ u₧ivateli mnohΘ usnadnφ. Nejznßm∞jÜφmi jsou PlainTeX, LaTeX, AmSTeX a LamSTeX. PlainTeX je nejjednoduÜÜφ nadstavba a vÜechna ostatnφ makra ji pou₧φvajφ jako sv∙j zßklad. LaTeX je urΦen zejmΘna pro sazbu rozsßhl²ch publikacφ, a to nejen matematick²ch, podporuje tvorbu obsahu, rejst°φku a k°φ₧ov²ch referencφ. AmSTeX je uzp∙soben pro sazbu slo₧it²ch kratÜφch matematick²ch dokument∙ a v LamSTeXu je patrnß tendence rozÜi°ovat makra o novΘ dalÜφ funkce a tφm je vlastn∞ sbli₧ovat; je to toti₧ jak²si "mφÜenec" AmSTeXu a LaTeXu.
Tvorba strßnky mß dv∞ fßze, kterΘ probφhajφ tΘm∞° souΦasn∞. V prvnφ fßzi se Φte vstupnφ soubor a ka₧dΘmu znaku se p°i°adφ jeho kategorie. Ze vstupnφho textu jsou zßrove≥ vypuÜt∞ny p°ebyteΦnΘ mezery a komentß°e. Druhou fßzφ je vlastnφ sazba strßnky. Obecn∞ lze °φci, ₧e se postupuje od nejjednoduÜÜφch objekt∙ k slo₧it∞jÜφm. P°itom za nejjednoduÜÜφ objekt pova₧ujeme pφsmeno, kterΘ je charakterizovßno svou Üφ°kou, v²Ükou nad ·Φa°φ a hloubkou pod ·Φa°φ. Tato pφsmenka jsou pak na zßklad∞ t∞chto ·daj∙ sklßdßny do slov a ta (s pomocφ mezer, kterΘ majφ definovßno krom∞ svΘ optimßlnφ velikosti i to o kolik mohou b²t smrÜt∞ny Φi rozta₧eny) do °ßdk∙, ty pak postupn∞ do odstavc∙ a ty po slo₧enφ dajφ ji₧ koneΦn² objekt -- strßnku.
Z p°edchozφho vypadß popis tvorby strßnky velmi jednoduÜe, ve skuteΦnosti jsme ale opomn∞li spoustu mo₧nostφ, jako umφst∞nφ tabulek na strßnku, obtΘkßnφ textu kolem obrßzk∙, sazbu do sloupc∙, hornφ a dolnφ zßhlavφ, poznßmky pod Φarou a spoustu dalÜφch. Vzhledem ke komplikovanosti sazby se TeX automaticky podle pot°eby pohybuje mezi Üesti re₧imy prßce. Ka₧d² z re₧im∙ mß na starost specifickΘ ·koly: sklßdßnφ pφsmenek na °ßdku a do slov, sklßdßnφ °ßdek do odstavc∙, sklßdßnφ odstavc∙ na strßnku (i do vφce sloupc∙), dopl≥ovßnφ strßnky o zßhlavφ, sazbu matematick²ch vzorc∙ atd.
Velice zajφmav² je nap°φklad zp∙sob tvorby odstavce. TeX nejprve zkusφ vysßzet odstavec tak, aby nemusel pou₧φt d∞lenφ slov. Tato fßze je velmi rychlß, proto₧e nemusφ zjiÜ¥ovat, jak je kterΘ mφsto slova vhodnΘ k d∞lenφ. Pokud se mu to nepoda°φ (nenφ-li Üφ°ka °ßdky p°φliÜ malß, stane se to mßlokdy), doplnφ slova o ·daje o vhodnosti d∞lenφ a cel² odstavec zpracuje znovu ji₧ s mo₧nostφ d∞lit slova.
TeX kontroluje i spoustu takov²ch maliΦkostφ, jako je to, aby odstavec nezaΦφnal na poslednφ °ßdce strßnky, nebo naopak nekonΦil na prvnφ °ßdce strßnky. Dßle TeX kontroluje, aby poslednφ slovo odstavce nebylo na samostatnΘ °ßdce, a spoustu dalÜφch "maliΦkostφ", kterΘ ve skuteΦnosti velmi pozvednou estetick² vzhled dokumentu.
Primitivnφ funkce je mo₧nΘ podle jejich Φinnosti za°adit do n∞kolika skupin:
Takto p°ipraven² vstupnφ soubor potom nechßme p°elo₧it TeXem, ten vytvo°φ .dvi soubor (device independant), kter² popisuje vzhled jednotliv²ch strßnek tak, ₧e strßnka je soubor k≤d∙ znak∙ a p°φsluÜn²ch font∙ s ·dajem o jejich umφst∞nß na strßnce. Z t∞chto ·daj∙ pak m∙₧e b²t dokument vytiÜt∞n nebo zobrazen na libovolnΘm v²stupnφm za°φzenφ; tento soubor je tedy naprosto nezßvisl² na v²stupnφm za°φzenφ. To je takΘ jedna ze siln²ch strßnek TeXu -- mo₧nost tisknout dokumenty na Φemkoliv, poΦφnaje devφtijehliΦkovou tiskßrnou a konΦe osvitovou jednotkou s rozliÜovacφ schopnostφ n∞kolik tisφc dpi.
O vlastnφ zobrazenφ dokumentu, tj. .dvi souboru, se starß ovladaΦ p°φsluÜnΘho za°φzenφ, kter² z informace obsa₧enΘ v .dvi souboru a bitov²ch map jednotliv²ch pφsmenek vytvo°φ koneΦnou podobu dokumentu a zobrazφ ji na obrazovce nebo tiskßrn∞.
Do vstupnφho souboru staΦφ zapsat: $$ \lim_{n \rightarrow \infty} \left(1 + {1 \over n} \right)^n = e $$, co₧ nenφ v∙bec nepodobnΘ tomu, jak by vßm tento vzorec v Americe nadiktovali do telefonu.
Je tu vÜak je jeÜt∞ jedna mo₧nost, vhodnß zejmΘna pro technickΘ obrßzky a grafy pr∙b∞hu r∙zn²ch matematick²ch funkcφ: pomocφ METAFONTu, programu na generovßnφ font∙ pro TeX, vytvo°it font, kter² obsahuje po₧adovanΘ obrßzky. S nimi se pak pracuje jako s jednotliv²mi pφsmeny, kterΘ jsou stejn∞ jako ostatnφ pφsmena nezßvislß na v²stupnφm za°φzenφ.
Poslednφ dobou se objevuje mnoho program∙, kterΘ umo₧≥ujφ, v∞tÜinou a₧ na ·rovni ovladaΦe obrazovky nebo tiskßrny, zaΦlenit do dokumentu obrßzek v n∞kterΘm z rozÜφ°en²ch grafick²ch formßt∙ (PCX a jinΘ), nebo z r∙zn²ch program∙ (nap°. MATHEMATICA).
Krom∞ bitmapov²ch obrßzk∙ lze do dokumentu za°azovat i obrßzky v PostScriptu (EPS), p°i jejich₧ pou₧itφ nenφ ztrßcena nezßvislost na rozliÜovacφ schopnosti v²stupnφho za°φzenφ.
Nejd∙le₧it∞jÜφ v∞c, prßce s Φesk²mi pφsmy, je na prvnφ pohled velmi elegantn∞ vy°eÜenß u₧ v p∙vodnφ anglofonnφ verzi TeXu. Pφsmo Computer Modern toti₧ obsahuje tzv. lΘtajφcφ akcenty, samostatnΘ znaky, kterΘ mohou b²t umφst∞ny nad kter²mkoliv jin²m pφsmenem. Bohu₧el kv∙li malΘ zkuÜenosti D.E. Knutha s jazyky, kterΘ pou₧φvajφ hßΦek, nenφ tvar tohoto znamΘnka p°φliÜ poveden². Mnohem v∞tÜφm nedostatkem je ale algoritmus pou₧φvan² pro umφs¥ovßnφ akcent∙ nad pφsmena. TeX to °eÜφ nejjednoduÜÜφm mo₧n²m zp∙sobem, akcent umφstφ nad logick² st°ed boxu pφsmenka. To bohu₧el v₧dy nenφ opticky nejlepÜφ, zejmΘna u v∞tÜφch font∙, zvlßÜt∞ pak sklon∞n²ch (slanted a italica). JistΘ problΘmy jsou jeÜt∞ se znaky jako `¥' a `∩', nebo¥ apostrof se nechovß jako typick² akcent.
JedinΘ ·plnΘ °eÜenφ je tedy vytvo°it novΘ fonty, kterΘ budou obsahovat znaky s ji₧ umφst∞n²mi akcenty (tyto fonty ovÜem budou nekompatibilnφ s ostatnφmi), a pou₧φvat TeX 3.0, kter² umo₧≥uje zpracovat osmibitovou vstupnφ abecedu. Na setkßnφ u₧ivatel∙ CS-TeXu v Φervenci, byla p°ednesena p°ednßÜka o novΘ verzi programu (ten byl zßrove≥ rozÜφ°en mezi Φleny sdru₧enφ CSTUG), kterß mimo jinΘ obsahuje zmφn∞nΘ osmibitovΘ fonty s ji₧ umφst∞n²mi akcenty.
Jeliko₧ je TeX velmi variabilnφ systΘm, nenφ problΘm p°edefinovat takovΘ v∞ci jako je formßt data a typografickΘ zvyklosti. Tuto novou definici nap°φklad obsahuje styl czech.sty.
D∞lenφ slov je jednou z nejobtφ₧n∞jÜφch Φßstφ ka₧dΘho systΘmu na zpracovßnφ textu. Pro ΦeÜtinu, stejn∞ tak jako pro v∞tÜinu jazyk∙, neexistujφ zcela jednoznaΦnß pravidla pro d∞lenφ. P°i d∞lenφ slova v ΦeÜtin∞ mß p°ednost d∞lenφ mezi p°φponou (p°φpadn∞ p°edponou) a ko°enem slova, slovo se m∙₧e d∞lit po slabikßch, ale jak bezpeΦn∞ rozeznat slabiku. Navφc jeÜt∞ ΦeÜtina obsahuje slabikotvornΘ souhlßsky, kterΘ celou situaci znaΦn∞ komplikujφ. Existuje samoz°ejm∞ mnoho dalÜφch kritΘriφ pro d∞lenφ slov, ale nemß smysl je zde jmenovat. V souΦasnΘ dob∞ existujφ dva zp∙soby d∞lenφ slov, pomocφ algoritmickΘho popisu pravidel d∞lenφ a pomocφ tabulky d∞lenφ. TeX vyu₧φvß druhou mo₧nost, tj. algoritmus d∞lenφ °φzen² tabulkou. Ten poskytuje docela sluÜnΘ v²sledky a dokonalost °ßdkovΘho zlomu TeXu navφc omezuje pot°ebu d∞lenφ slov na minimum.
Na zßv∞r se jeÜt∞ zmφnφme o jednom typografickΘm pravidlu, specifickΘm pro ΦeÜtinu. Na konci °ßdky nesmφ z∙stat neslabiΦnß p°edlo₧ka. To lze v TeXu snadno vy°eÜit pomocφ tzv. aktivnφho znaku `~', kter² p°edstavuje mezeru, ale v mφst∞ pou₧itφ zakazuje lßmat °ßdku. Existuje krßtk² program vlnka.exe, kter² ve vstupnφm textu za vÜechny neslabiΦnΘ p°edlo₧ky automaticky doplnφ tento znak.
-- Ji°φ Kosek ml. --