Par� s��w o programie TeX

Najpro�ciej m�wi�c, TeX jest programem s�u��cym do sk�adu tekst�w, jego podstawow� rol� jest zast�pienie pracy zecera. Jest to jednak zbyt du�e uproszczenie. TeX jest systemem, czyli zbiorem r�nych narz�dzi, stanowi�cych logiczn� ca�o��, s�u��cym do profesjonalnego przygotowania publikacji, ze szczeg�lnym uwzgl�dnieniem matematyki. J�drem systemu jest oczywi�cie program TeX. U�ywaj�c terminologii informatycznej jest to specjalizowany makrogenerator przystosowany do przetwarzania tekst�w. J�zyk, przy pomocy kt�rego sterujemy sk�adem, pozwala na absolutnie precyzyjne wyra�enie swoich �ycze�. Osoba opisuj�ca posta� dokumentu jest w roli redaktora technicznego przekazuj�cego swoj� wol� zecerowi. J�zyk opisu jest niew�tpliwie trudny, mo�na powiedzie� �e tak trudny jak problem, kt�rego rozwi�zaniu s�u�y.

�amanie tekstu jest nie tylko wiedz�, ale i sztuk�. Ostateczny kszta�t dokumentu musi uwzgl�dnia�: tradycj�, regu�y estetyki, zdolno�ci percepcyjne cz�owieka, funkcjonalno�� i wiele innych aspekt�w. Iluzj� jest, �e jakikolwiek program jest w stanie samodzielnie uwzgl�dni� wszystkie aspekty; musi zrobi� to cz�owiek posiadaj�cy odpowiedni� wiedz� i do�wiadczenie. Program jest jedynie narz�dziem, kt�re pozwoli na efektywne osi�gni�cie postawionego celu.

Podstawow� cech� programu TeX, r�ni�c� go od innych jest to, �e mo�e on zrobi� tyle, na ile pozwala wiedza osoby go u�ywaj�cej, a nie tyle, na ile pozwala wyobra�nia jego tw�rcy. Jest to nie tylko system, ale i pewna filozofia podej�cia do rozwi�zywanego problemu.

Program TeX zosta� wymy�lony i napisany przez Donalda Knutha. Historia jego powstania jest na tyle ciekawa, �e pozwol� sobie j� w paru s�owach przytoczy�.

Przygotowuj�c publikacj� wydajemy dyspozycje sk�adu w postaci polece�, nast�pnie tak przygotowany tekst przetwarzamy programem TeX. Jest to dzia�anie w trybie off line w odr�nieniu od trybu on line oferowanego przez programy nowej generacji. Ostateczny efekt zale�y od precyzji (naszej wiedzy) wyra�ania naszych �ycze�. Program wymaga od nas �cis�ego formu�owania naszych �ycze�, pozwala na obiektowe podej�cie do zagadnienia -- jest to naturalne podej�cie do problemu. Definiujemy obiekty: akapity, tytu�y, listy, skorowidze, spisy itp. i okre�lamy sposoby sk�adu tych obiekt�w: marginesy, czcionk�, odst�py itp. Maj�c wprowadzony tekst, opisany poleceniami sk�adu, mo�emy zmieni� form� dokumentu zmieniaj�c jedynie atrybuty (cechy) zdefiniowanych obiekt�w bez konieczno�ci modyfikowania dokumentu. Tryb pracy popularnych program�w typu MS-Word sprzyja wstawianiu znak�w steruj�cych w danym miejscu, daj�cych po��dany efekt wizualny -- zmiana formy dokumentu wymaga skasowania starych znak�w steruj�cych i wstawienia nowych w ca�ym dokumencie. Praca z systemem TeX zdecydowanie utrudnia tego rodzaju dzia�anie (dora�na ingerencja wymaga wi�kszej, a nie mniejszej wiedzy). Przyst�puj�c do pracy nale�y okre�li� jakie efekty chcemy uzyska�, zdefiniowa� odpowiednie obiekty, kt�re b�d� reprezentowane w ten spos�b, a nast�pnie pos�ugiwa� si� ich definicjami.

Dodatkow� zalet� pracy z systemem TeX, jest to, �e u�ywamy wy��cznie znak�w pisarskich bezpo�rednio dost�pnych na klawiaturze. Pisz�c wzory matematyczne u�ywamy nazw symboli i konstrukcji i nie musimy zmienia� trybu pracy edytora, odrywa� r�k od klawiatury, aby wzi�� mysz itp. W 99/100 przypadk�w z�o�ony wz�r matematyczny nie wymaga ,,r�cznych'' interwencji; w odr�nieniu od wszystkich innych znanych mi program�w. Zdefiniowane s� prawie wszystkie u�ywane symbole matematyczne (jak do tej pory brakowa�o mi tylko symbolu potr�jnej ca�ki po kole). Nazwy polece� odzwierciedlaj� ich funkcje, nie musimy pami�ta� znaczenia wielu klawiszy funkcyjnych, kt�rych znaczenie trudno skojarzy� z ich nazwami. Je�eli nazwy polece� s� trudne do zapami�tania mo�na w �atwy spos�b tworzy� ich synonimy.

Niew�tpliwie TeX-a nie da si� u�ywa� nie rozumiej�c jego j�zyka programowania, w odr�nienu od program�w typu MS-Word, ale twierdz� �e sprzyja to systematycznemu podej�ciu do problemu. Aby u�ywa� TeX-a trzeba zdoby� niezb�dn� wiedz� r�wnie� o sztuce sk�adu publikacji, nie da si� go u�ywa� tak jak starej maszyny do pisania. W�o�ony wysi�ek szybko procentuje wzrostem efektywno�ci pracy. W znanych mi narz�dziach, w miar� zdobywania wiedzy o nich i do�wiadczenia, napotykamy na liczne bariery, b��dy i ograniczenia, bardzo denerwuj�ce do�wiadczonego u�ytkownika. U�ywanie takiego programu staje si� walk� z narz�dziem, a nie z postawionym zadaniem. Autor TeX-a zadba� o to, aby by� to program bezb��dny i jego cechy oraz w�asno�ci nie uleg�y zmianie; TeX jest niezwykle stabilnym programem.

Przewag� TeX-a nad innymi programami wida� szczeg�lnie przy sk�adzie formu� matematycznych. Symbole i operatory matematyczne zosta�y podzielone na grupy. Zosta�y zdefiniowane cechy tych grup i okre�lone zasady s�siedztwa (np. odst�p mi�dzy znakami). Nazwy symboli s� jasne i logiczne. Nie musimy okre�la� pozycji ka�dego symbolu; robi to za nas TeX. Wiele program�w (np. WordPerfect) ma zapo�yczony spos�b definiowania wzor�w matematycznych, ale efekt ko�cowy jest drastycznie gorszy (bez r�cznej korekty).

Na szcz�cie u�ywaj�c programu TeX mo�emy korzysta� z wiedzy innych. Mamy do dyspozycji ponad 20 MB zbior�w makroinstrukcji, u�atwiaj�cych proces sk�adu. W celu u�atwienia pracy w 1982 zosta� napisany przez L.Lamporta zbi�r makroinstrukcji nazwany systemem LaTeX. Zawiera on definicje najcz�ciej u�ywanych obiekt�w i okre�la spos�b ich sk�adu. LaTeX jest pewnego rodzaju nak�adk� na j�zyk sk�adu TeX-a (zdefiniowan� w jego j�zyku), u�atwiaj�c� pisanie typowych artyku��w, raport�w i ksi��ek przez samych autor�w. Opatruj�c tekst kilkoma (no mo�e kilkudziesi�cioma) poleceniami, otrzymujemy zadowalaj�cy rezultat sk�adu. Zmieniaj�c cechy zdefiniowanych obiekt�w mo�emy tak� publikacj� bardzo �atwo dostosowa� do wymaga� konkretnego wydawnictwa.

L.Lamport ma niew�tpliwie du�e zas�ugi w popularyzacji TeX-a i dostosowaniu go do potrzeb ,,normalnego'' u�ytkownika, ale sam kod systemu LaTeX jest bardzo nieporz�dny, w dodatku przez kilka lat zosta�o napisanych szereg makroinstrukcji pisanych w r�ny spos�b, cz�sto wprowadzaj�cych efekty uboczne. W wyniku pracy p. Franka Mitellbacha i Rainera Schöpfa ca�y pakiet LaTeX-a zosta� napisany od nowa -- znany jest on pod nazw� LaTeX2e (2 epsilon, jako forma przej�ciowa do systemu 3), a coraz cz�ciej pod nazw� LaTeX (,,stary'' LaTeX zosta� nazwany LaTeX-209).

Nowy system ma budow� warstwow�. W j�zyku TeX-a zosta�a zdefiniowana sp�jna i logiczna warstwa umo�liwiaj�ca pisanie kodu prawie ,,proceduralnego'', a nie jako klasyczne makrowo�ania. Zosta� zdefiniowany elegancki interface dla programist�w definiuj�cych sk�ad i pisz�cych nowe pakiety makroinstrukcji. Ze wzgl�du na to, �e klasyczne makrogeneratory trac� na znaczeniu, a wi�kszo�� programist�w przyzwyczajonych jest do j�zyk�w proceduralnych (Pascal, C) jest to niew�tpliwie du�e u�atwienie. W tym j�zyku po�rednim zosta� zdefiniowany od nowa system LaTeX, jako zbi�r polece� realizuj�cych podobne cele, jak system LaTeX L.Lamporta.

Dodatkow� zalet� programu TeX i pakietu LaTeX jest to, �e s� one programami public domain, u�ywaj�c ich nie musimy wnosi� �adnych op�at. W szerz�cej si� komercyjnej bylejako�ci TeX jest przyk�adem rzadko spotykanej staranno�ci, stabilno�ci i bezb��dno�ci dzia�ania.


W�odzimierz Macewicz