Czarna sztuka na najwyższym poziomie

Desktop Publishing jest, prawdę mówiąc, mizerną namiastką pracy zecera. Komu autentycznie potrzebna jest czarna sztuka, ten używa TeXa.

Desktop Publishing jest, prawdę mówiąc, mizerną namiastką pracy zecera. Komu autentycznie potrzebna jest czarna sztuka, ten używa TeXa.

Dokumenty takie jak artykuły, doniesienia, prace naukowe i książki, do niedawna składane przez specjalnie wykształconego zecera, mogą być obecnie skutecznie powielane na komputerze osobistym lub stacji roboczej - w tym kontekście najczęściej daje się słyszeć hasło Desktop Publishing, programy takie jak Pagema-ker czy Ventura są na ustach wszystkich.

Co prawda programy Desktop Publishing stawiają do dyspozycji tylko ułamek tego, czego może dokonać wykwalifikowany zecer. Istnieje jednak inny program, za pomocą którego można osiągnąć poziom tradycyjnej "czarnej sztuki" składania - system składania tekstów TeX. Przez wiele lat pędził on skromny żywot na nielicznych uniwersytetach, uważany za zbyt skomplikowany dla pojedynczych użytkowników. Ale w ostatnich czasach TeX przeżywa gwałtowny rozkwit.

Zaczęło się wszystko niemal dwadzieścia lat temu, gdy jako student matematyki w Stanfordzie irytował się, że zecer przy składaniu jego rozpraw naukowych formuły matematyczne, które w oryginale musiały być, chcąc nie chcąc wpisane ręcznie, źle interpretował, źle składał lub dzielił w niewłaściwym miejscu. Jest to problem, który ciągle jeszcze w literaturze matematycznej i fizycznej często prowadzi do nieporozumień. Jako zagorzały fan komputerowy postanowił napisać program mający zautomatyzować to zadanie. Były student stał się w międzyczasie jednym z najbardziej znanych informatyków - Do nald E.Knuth znany jest ze swego sztandarowego dzieła 'The Art of Computer Programming", zaś jego program składający jest dziś kompletnym systemem - używanym przede wszystkim przez wiodące wydawnictwa książek naukowych.

Niezwykła wymowa

O tej poniekąd niezwykłej wymowie Knuth pisze: "Angielskie słowa takie jak 'technology' pochodzą od greckiego rdzenia rozpoczynającego się od liter tau-ep-silon-chi; to greckie słowo oznacza nie tylko technologię, ale również sztukę. Stąd pochodzi nazwa TEX, pisana wielkimi literami wersja tau-epsilon-chi.

Jeśli chodzi o wymowę kontynuuje: "Wtajemniczeni wymawiają 'chi' w nazwie TeX nie jak X, ale jak greckie 'chi'. Jest to dźwięk 'ch' taki jak w szkockim słowie 'loch', albo niemieckim 'ach'; to jest hiszpańskie 'j' i rosyjskie 'kh'. Jeśli wymówisz to poprawnie do swego komputera, jego ekran może zwilgotnieć. Ta wymowa, ma na celu podkreślenie, że pierwszorzędną funkcją TeXa jest dostarczanie tekstów wysokiej jakości technicznej; nacisk położony jest, tak jak w greckim pierwowzorze, na sztukę i technologię. Przestawienie litery e w TeX powinno przypominać, że TeX jest systemem składania tekstów i odróżniać jego nazwę od innych systemów.

Ale co ukrywa się za nazwą TeX, na czym polega tajemnica odróżniająca go od innych programów desktop-publishing. I co skłania wydawnictwa takie, jak Addi-son-Wesley czy Springer, aby składały swe książki TeXem.

Przede wszystkim - odpowiednie przedstawienie TeXa jest trudne, ponieważ niniejszy artykuł nie

będzie składany TeXem, tylko przy pomocy środków Desktop Publishing (na co autor nie ma niestety wpływu) i oryginał jest tekstem w kodzie ASCII. Po przykłady druku najlepiej udać się do najbliższej księgarni i przyjrzeć się książkom wspomnianych wydawców.

Języki programowania

Zarówno TeX jak i LaTeX (o czym dalej) są językami i i co za tym idzie, trzeba się ich mozolnie nauczyć. Niewątpliwie droga do pierwszych wyników jest tu dłuższa niż przy pro gramach desktop-publishing, zaś nauka czasochłonna. Ponadto niezbędne jest zapoznanie się z podręcznikiem i konieczne ciągłe posiadanie go pod ręką.

Złożenie tekstu TeXem składa się zasadniczo z następujących kroków:

• Przygotowanie tekstu źródłowego, zawierającego przemieszany tekst autorski i komendy wewnętrzne.

• Użycie "kompilatora", który ten tekst źródłowy skonwertuje do postaci niezależnej od urządzenia drukującego lub wyświetlającego (nieco podobnej do Postscriptu); tak zwany

DVI-file (DeVice Independent). Te obydwa kroki są niezależne od konfiguracji sprzętowej;

• Ewentualne użycie tak zwanego "Previewera". który pokazuje DVI-file na monitorze graficznym, tak dobrze jak to jest możliwe; po tym możliwe jest dokonanie podstawowych poprawek w tekście źródłowym;

• Wydrukowanie DVI-file na drukarce w celu kontrolnego przeczytania go;

• Ewentualnie bezpośrednie użycie DVI-file

do sterowania naświetlarką dla uzyskania klisz poligraficznych.

Jak widać, dokładnie tak przebiega pisanie programu komputerowego. To właśnie, w połączeniu z licznymi zakodowanymi rozkazami, jest głównym powodem, dla którego przeciętny użytkownik wzdraga się przed TeXem.

Na tym gruncie rozwinął się La-Tex, mający być uproszczeniem i jednocześnie rozszerzeniem Te-Xa. Trzeba mieć świadomość, że TeX jest systemem typograficznym i dlatego dysponuje niemal wszystkimi rozkazami użytecznymi dla zecera. Nie zastępuje on zecera w pracy, wykonuje tylko jego czynności mechaniczne. Stąd kto używa TeXa, powinien posiadać wiedzę typograficzną - komu obce są pojęcia takie jak łamanie, li-gatura, czy firet, będzie miał z Te-Xem problemy. TeX oferuje dokładnie wszystkie możliwe do pomyślenia środki typograficzne, również te prawie nie używane lub wręcz mogące przerodzić się w zabawki.

Dlatego też napisany został przez Leslie Lamperta pakiet makrodefi-nicji dla TeXa o nazwie LaTeX -jak gdyby program napisany w Te-Xu (można tu porównać TeXa z a-semblerem zaś LaTeXa z językiem wysokiego poziomu).

LaTeX ofiarowuje użytkownikowi możliwość podzielenia jego tekstu na fragmenty logiczne, takie jak rozdziały, akapity, tabele, ilustracje i tym podobne, które zostaną automatycznie złożone (za pośrednictwem TeXa) według uznanych reguł. Użytkownik nie musi teraz dokładnie określać jak dużym pismem złożyć tytuł, wystarczy tylko jeśli powie, że chodzi właśnie o tytuł.

W przypadku idealnym LaTeX powinien przejąć funkcje zecera, użytkownik zaś może skoncentrować się na strukturze logicznej tekstu. Spisy treści, usytuowanie tabel i ilustracji, indeksy, przypisy i tym podobne będą tworzone automatycznie.

Zyski przy składaniu wzorów

Nasuwa się pytanie, dlaczego przeciętny użytkownik ma brać na siebie trud uczenia się tak rozbudowanego języka programowania jak LaTeX, gdy mógłby posłużyć się Pagemakerem, Venturą, Word-Perfektem lub czymś równie prostym. Istotnie zarówno dla okazjo nalnch użytkowników jak i do składania gazet, czasopism i niewielkich dokumentów LaTęX jest mało przydatny. Ale są dziedziny, w których przewaga LaTeXa nad

ckich i wydawców książek z zakresu nauk przyrodniczych.

Dokumenty z jednej formy

Z drugiej strony jakie możliwości oferuje TeX przeciętnemu użytkownikowi, który nie składa zwykle zbyt wielu wzorów. Główna korzyść wynikająca z używania LaTe-Xa to zwolnienie z obowiązku troszczenia się o detale typograficzne. W istocie trzeba opisać tylko strukturę tekstu, resztę załatwi system. Niektóre korzyści, przy składaniu na przykład książki, to:

• jednolity styl w obrębie całego dokumentu

• automatyczne numerowanie akapitów i podtytułów

• automatyczne tworzenie spisów treści, spisów tabel i wykazów ilustracji

• automatyczne tworzenie wykazów literatury z odpowiednimi re-

i ferencjami (dla prac naukowych)

• automatyczne generowanie i numerowanie odsyłaczy (stopek)

• półautomatyczne tworzenie indeksów (bez pomocy specjalnego programu, ale nie w pełni automatyczne)

• wstawianie znaczników do tekstu.

Desktop Publishing jest bardzo wyraźna.

Podstawową zaletą dla matematyków i fizyków jest oczywiście specjalny język do wyrażania wzorów matematycznych - kto chociaż raz próbował złożyć poprawnie skomplikowany wzór pomocy programu Desktop Publishing, wie jak męczące jest to zajęcie.

Wzory w LaTeXu przedstawiane są niemal tak jak w języku programowania, poprawne rozmieszczenie jest zautomatyzowane. Wyrażenie formułujące twierdzenie Pitagorasa w Pascalu ma postać

c:= sqrt(a*a + b*b) a w TeXu jest zapisywane:

$c-\sqrt{aA2 + bA2)$.

Znaki dolara ograniczają wzór, "backslash" wskazuje, że napis "sqrt" jest interpretowany nie jako tekst lecz jako rozkaz nakazujący użycie znaku pierwiastka. Nawiasy klamrowe określają wielkość (zakres) znaku pierwiastka (oznaczają blok). Pierwiastkami można operować w sposób dowolny, system troszczy się o właściwe proporcje.

Praktycznie każdy wzór może być wyrażany w wewnętrznym języku TeXa - oczywiście główna korzyść dla prac z zakresu nauk przyrodniczych i główna przyczyna, dla której TeX znalazł tak duże uznanie w kręgach uniwersyte-

Jako dalsze udogodnienie należy mieć na uwadze, że tekst źródłowy dokumentu jest najzwyklejszym tekstem ASCII (bez specjalnych znaków narodowych) i dlatego może być przeniesiony i wydrukowany na dowolnym sprzęcie, na którym zainstalowany jest TeX.

Kompatybilność dotyczy również zbiorów DVI, co jest wielką zaletą w zestawieniu z Desktop Publishing. Autor ma więc możliwość przygotować i poprawić tekst w domu a następnie przesłać go do wydawnictwa do wydrukowania na maszynach poligraficznych czytających bezpośrednio tekst źródłowy. Przy tym radykalnie redukuje się koszty pono szone przez autora. Nic dziwnego więc, że niektóre wydawnictwa istotnie proponują korzystne warunki dla książek złożonych Te-Xem.

Główną wadą tego rozwiązania jest, że autor musi nauczyć się naprawdę złożonego języka programowania - ale komu się to przytrafi, temu trudno dłużej przygo towywać dokumenty metodami tradycyjnymi.

Generator fontów

Obok TeXa istnieje cały szereg programów, które razem z nim tworzą kompletny system składania tekstów. Czołową pozycję zajmuje tutaj Metafont, program do przygotowywania zestawów znaków dla TeXa, nadający się również do tworzenia grafiki. W przeciwieństwie do większości tego typu programów, znaki definiowane są za pomocą obiektów matematycznych (dokładniej tzw. funkcji sklejanych), naturalnie znowu w postaci tekstu źródłowego. Następnie program tłumaczy te abstrakcyjne definicje na postać punktową znaku, przy czym ten sam tekst źródłowy może być wykorzystany dla urządzenia drukującego o dowolnej konstrukcji.

Metafont zawiera nawet kompletny system rozwiązywania układów równań, przy którym punkty definiujące znaki nie muszą być dokładnie ustalone - wystarczy sformułowanie warunków definiujących te punkty. Również Metafont jest naturalnie znowu własnym złożonym językiem programowania i nie cieszy się popularnością, co jednak może się zmienić. Istnieją na przykład opisy znaków pisma chińskiego czy fraktu-ry i właściwie każde życzenie z zakresu znaków specjalnych. może być zrealizowane przez Metafont.

Należy również wspomnieć o istnieniu programu o nazwie Web, umożliwiającego tworzenie pro gramów w Pascalu. Daje on możliwość programowania "literackiego", zredagowania programu niejako w postaci książki, splecenia w jedną całość dokumentacji i tekstu źródłowego. Nie miejsce tutaj na dokładniejsze przedstawienie Weba - chodzi jednak bezsprzecznie o kompletny sprawny pro gram, który wzbudził chyba zbyt małe zainteresowanie. Sam TeX zresztą napisany jest w Webie.

Słabe strony

Obok nieco uciążliwego manipulowania ma również TeX pewne inne słabości, których nie powinno się ukrywać. Jako główny problem przedstawić można trudności, jakie ma system ze wstawieniem grafiki do tekstu. Wprawdzie można zmajstrować grafikę z małych punktów (ewentualnie za pomocą PiCTEXa, co niesamowicie zwiększa zbiory DVI), albo z części grafiki postscriptowej, ale nie istnieje żaden standard w tej dziedzinie. Temat ten regularnie pojawia się na porządku dziennym spotkań TeX-Users-Group (TUG).

Ponadto są problemy z używaniem specjalnych znaków narodo wych (jak na przykład umlauty), które realizowane są jako akcenty, co prowadzi z kolei do kłopotów z automatycznym dzieleniem na sylaby. I wreszcie, irytujące chyba każdego użytkownika TeXa, niezwykle obszerne i często kompletnie nieczytelne informacje o błędach - relikt z czasów mainframe'ów.

Skomplikowana składnia rozkazów czyni korzystanie z TeXa przez początkujących równie nie najłatwiejszym. Mimo to trzeba powiedzieć, że na rynku nie ma jak dotąd niczego porównywalnego z TeXem, zwłaszcza że on sam jest oprogramowaniem public do main (ale nie jego implementacje).

Ponadto TeX ma długą historię, był wiele razy przerabiany i może być nazwany produktem dojrzałym.