- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 01/2000

NTS a interaktivní dokumenty na Fakultě informatiky

David Antoš, 14. prosince 1999

V sobotu 11. prosince 1999 pořádalo Československé sdružení uživatelů TeXu CsTUG a Fakulta informatiky Masarykovy univerzity v Brně v prostorách fakulty přednášky o systému NTS. NTS (New Typesetting System) je připravovaný následník TeXu.

Přednášejícími byli Hans Hagen, vedoucí a koordinátor projektu NTS a Karel Skoupý, programátor, který se v současné době práci na NTS plně věnuje.

V prvním bloku sobotního dopoledne informoval Karel Skoupý o postupech, stavu a problémech implementace NTS. Idea vznikla před třemi lety a s vlastní implementací se začalo před rokem. Není bez zajímavosti, že Karel Skoupý je jediným programátorem projektu. První fází, kterou autoři zamýšlejí dokončit do poloviny roku 2000, je systém plně kompatibilní s TeXem.

Pro implementaci byl zvolen jazyk Java. Patří totiž mezi nejlépe přenositelné programovací jazyky vůbec a navíc se realizačnímu týmu zalíbil javovský systém balíčků objektů. TeX je program více než dvacet let starý a ačkoli byl vytvářen podle nejlepších postupů své doby, je to rozsáhlý monolit strukturovaného kódu.

TeX byl tedy "rozebrán" na části a ty jsou postupně přepisovány v Javě přísně objektově. Za hlavní problém označil Karel Skoupý existenci velkého množství závislostí mezi jednotlivými částmi TeXu, které jsou přirozeným důsledkem jeho architektury, zato se však nesmírně obtížně modelují pomocí objektů. Ačkoli TeX patří mezi nejlépe dokumentované programy, TeXbook popisuje jeho činnost pouze ve standardních situacích. Pro dosažení úplné kompatibility je třeba provádět mnoho pokusů, které odhalují jeho chování v neobvyklých podmínkách.

NTS v současné době zvládá expanzi maker, odstavcový zlom a výstup, což dostačuje k tomu, aby nám byla jeho funkce demonstrována. Karel Skoupý pomocí NTS zalomil tři odstavečky textu, pak totéž provedl TeXem a výsledky porovnal. Nejen že byly stejné napohled, ale výsledné dvi soubory se shodovaly do posledního bitu.

Určitě čtenáře napadá otázka, zda takové úsilí stojí za to, aby vznikl "TeX II", jenže objektový, v Javě a, jak jsme viděli, také mnohokrát pomalejší. Odpověď poskytla přednáška Hanse Hagena pod názvem

What things do we want NTS to do?

NTS není prvním následníkem TeXu. Jmenujme třeba eeTeX, nebo známější pdfTeX. Všechny dosavadní deriváty TeXu stojí na původním Knuthově kódu, ve kterém je část přepsána či upravena. To není jednoduché, zdrojový kód obsahuje mnoho velmi účinných optimalizací, které ovšem vedou k naprosté nepřehlednosti. Počet lidí na světě, kteří se v tex.web skutečně vyznají, se odhaduje na několik desítek.

Cílem zvolené architektury NTS je maximální modularita. Tím se autoři projektu snaží dát prostor programátorům, kteří by chtěli přepracovat a vylepšit část systému. Počítá se s tím, že se objeví nové výstupní formáty, jako se to třeba nedávno stalo s PDF, takže by mělo být umožněno zpracovávat jiné vstupy, než ty, na které jsou TeXisté zvyklí, například SGML. Ačkoli určitě není pochyb o tom, že kupříkladu řádkový zlom TeXu patří k nejlepším, musíme si také přiznat, že i TeX má své slabiny. Sazba na rejstřík, vícesloupcová sazba se zarovnáním nebo třeba obtékání obrázků jsou sice úkoly řešitelné, ale nepříliš pohodlně, přesněji řečeno velmi obtížně.

Tyto problémy by postupně měly řešit další verze NTS , také iniciativě programátorů mimo zatím poněkud uzavřený tým se meze nekladou. Kód bude volně dostupný a NTS bude šířen podobně jako TeX. Předpokládá se, že jeho jednotlivé moduly budou moci být využity i samostatně, například váš WWW browser si přečte zdrojový kód dokumentu třeba v LaTeXu a zobrazí jej pomocí NTS jako typograficky krásné dílo.

Mezi další kroky patří integrace NTS a METAFONTu. Vychází se z toho, že TeX dnes vůbec nebere v úvahu tvary znaků, které sází. Prostě jen skládá boxy a "neví", jestli znak třeba box nepřesahuje. Autoři rovněž uvažují o vytvoření interaktivního prostředí, ve kterém by bylo možno (slovy Hanse Hagena) "sedět s rukama na řídících pákách", měnit parametry zlomu a sledovat, co se s dokumentem děje.

NTS je velmi zajímavý projekt zaměřený do blízké i vzdálenější budoucnosti. Nám tedy nezbývá, než celému týmu popřát mnoho úspěchů.

Tvorba interaktivních dokumentů

Hans Hagen vedl na půdě Fakulty informatiky v pozdním odpoledni 13. 12. 1999 opět pod záštitou CsTUG u a Fakulty informatiky čtyřhodinový tutoriál s názvem Advanced Interactive Documents. Jak již pravila pozvánka, TeX je jeden z mála programů schopných vytvářet sofistikované dokumenty v PDF. Chtělo by se dodat, že zvláště tehdy, když se TeX a PDF spojí s Hansem Hagenem, což dokazovaly jeho lehce avantgardně navržené a zpracované prezentace.

Pan Hagen rozebral v úvodu výhody a nevýhody formátu PDF jako prostředku pro přenos informací a dále se věnoval problému, kdy (ne)použít TeX. TeX se ukazuje jako velmi vhodný prostředek pro kvalitní typografické zpracování dokumentů pravidelné struktury, jejichž sazbu lze dobře algoritmizovat.

Dále byly rozebrány základní charakteristiky (před několika lety se u nás říkalo "špecifiká") interaktivních dokumentů. Je třeba počítat s omezeními, která přináší použitá technologie a na druhé straně je škoda nevyužít možností. Pak lze těžko rozlišit, co je ještě dokument a co je program. Představte si zkoušku z angličtiny, při které vám PDFko nabízí možnosti doplňování slov, a když slovo vyberete, je do dokumentu nejen vloženo (to by nebylo nic moc), ale odstavec je vysazen, takže vypadá zcela dokonale, i když jste vybrali nejméně dobrou ze všech možností.

Zbytek tutoriálu byl věnován tématům důležitosti strukturovaného a flexibilního kódování dokumentů a tomu, jak si můžeme takové dokumenty navrhnout a vytvořit sami.

Hans Hagen si vzal za cíl touto přednáškou ukázat, že uživatelé TeXu se mohou dostat až na hranice možností tvorby dokumentů. Myslím, že se mu to podařilo, stejně jako se podařilo CsTUG u připravit dva dny plné zajímavých informací. *


- předchozí článek - následující článek - obsah - úvodní stránka -