Author: Włodzimierz Macewicz
Keywords: tex, Wirtualna Akademia

## 2. Co to jest TEX -- informacje ogólne

TEX, to taki mało znany system, używany przez około milion osób na całym świecie. Służy -- mówiąc bardzo skrótowo -- do wykonywania profesjonalnego składu drukarskiego.

Autorem TEX-a jest jeden z najwybitniejszych matematyków i informatyków na świecie -- profesor Donald Knuth z Uniwersytetu Stanforda w Stanach Zjednoczonych.

Nazwę TEX wymawia się tech, ponieważ są to trzy duże greckie litery Tau, Epsilon, Chi. Polska wersja TEX-a nazywa się MEX (wym. mech). Litera E jest opuszczona w dół i dosunięta do pozostałych, żeby zademonstrować możliwości sytemu.

### 2.1. Cechy TEX-a

Jest to system w znacznym stopniu godny zaufania, co najmniej ze względu na opisane poniżej jego cechy.

#### 2.1.1. Stabilność

Jest to system stosunkowo ,,stary''. Prace nad nim zostały rozpoczęte w roku 1977, a więc jeszcze przed rozpoczęciem ery komputerów osobistych, a ukończone w 1982 roku. W (prawie) niezmienionej postaci używany jest od kilkunastu lat.

Oznacza to bardzo dużą stabilność tego programu. Jest to bardzo ważna cecha, gdyż jest to program trudny do opanowania. Jego stabilność wpływa na bezpieczeństwo użytkownika. Po dość długim czasie inwestowania w swoją umiejętność obsługi TEX-a, użytkownik ma gwarancję, że to, czego się nauczył pozostanie aktualne nawet po wielu latach. Można zatem z dużą ufnością uczyć się go. Ponadto wszelkie dokumenty (teksty) złożone za jego pomocą będą mogły być przetwarzane i poprawiane tym samym systemem mimo upływu czasu. Nie ma obawy co do zmiany ,,sposobu kodowania'' dokumentów, która uniemożliwiałaby dalszą obróbkę ,,starych'' tekstów.

Dobrze jest -- wybierając program tak skomplikowany, jak system składu -- zwracać uwagę na to, czy zdołamy nauczyć się wszystkich jego możliwości, zanim -- w kolejnej wersji -- ulegną one zmianie.

#### 2.1.2. Poprawność (bezbłędność)

TEX jest programem w bardzo znacznym stopniu bezbłędnym. Oznacza to, że działa całkowicie zgodnie z dokumentacją. Autor systemu TEX wyznaczył nawet nagrodę pieniężną dla każdego, kto wykryje jakikolwiek błąd w działaniu programu. Wartość tej nagrody wynosi obecnie ponad 300$. Można mieć pewność, że po kilkunastu latach stosowania programu przez liczne grono użytkowników, znalezienie jakichkolwiek błędów jest bardzo mało prawdopodobne.

Jakże często zdarza się użytkownikom komputerów, że program wysyła im niezrozumiałe komunikaty (np. sygnały błędów), zalecając np. zgłoszenie się do wytwórcy z prośbą o wyjaśnienie. Niewielka to pociecha, jeśli wytwórca jest za oceanem.

#### 2.1.3. Dokumentacja

Autor napisał na temat TEX-a i systemów pokrewnych serię pięciu książek [1--5], stanowiących kompletną dokumentację tych systemów. Wszystkie funkcje tych systemów zostały tam szczegółowo opisane. Dokumentacja nie ma żadnych luk.

#### 2.1.4. Złożoność

TEX jest systemem skomplikowanym. Powoduje to, że jest -- przynajmniej początkowo -- trudny w obsłudze. Często uważane jest to za jego wadę. Jest to jednak absolutnie niezbędna cena jaką trzeba zapłacić za możliwości, które oferuje. W istocie to nie TEX jest skomplikowany, lecz zadanie, które on realizuje jest takie. Jeśli chcemy całkowicie panować nad wynikami uzyskiwanymi za jego pomocą, i osiągać efekty profesjonalne i precyzyjne, musimy nauczyć się obsługi rozmaitych ,,regulatorów'' i ,,pokręteł'' zawartych w TEX-u, aby móc przekazać mu nasze intencje.

Oczywiście, jeśli nie zależy nam na bardzo eleganckich, profesjonalnych wynikach, to nie musimy używać tak skomplikowanego programu jak TEX. Jest wiele prostszych programów, służących do podobnych celów. Należy jednak zdawać sobie sprawę, że używając prostszego programu prędzej czy później natkniemy się na zadanie, któremu ten program nie będzie mógł sprostać. W przypadku stosowania TEX-a takie niebezpieczeństwo nam nie grozi (patrz też -- Rozszerzalność).

Różnice pomiędzy TEX-em, a innymi systemami w zakresie złożoności i zarazem w zakresie szybkości uczenia się i szybkości osiągania efektów można przedstawić stosując następujące porównanie.

Czym się różni rower od samolotu? Obsługi tego pierwszego można się nauczyć bardzo szybko: kierownica do kierowania, pedały do przyspieszania i hamulce do hamowania. Prawie nic więcej. W samolocie są tysiące urządzeń, których obsługi trzeba się nauczyć. Nie oznacza to jednak, że samolot jest gorszy, albo że ma przestarzały ,,interfejs''. Po prostu latanie z dużą szybkością i na duże odległości wymaga bardziej skomplikowanej obsługi.

Co więcej -- pewne proste zadania, które leżą w zasięgu możliwości obu tych urządzeń, mogą być wykonane szybciej i sprawniej rowerem. Jeśli trzeba przejechać kilkaset metrów, to rowerzysta pokona ten dystans jeszcze zanim pilot samolotu zdąży uruchomić silniki. Jednak już pokonanie odległości kilkuset kilometrów zajmie rowerzyście znacznie więcej czasu, niż pilotowi samolotu, nie mówiąc już o wysiłku. Przebycie oceanu rowerem jest raczej niemożliwe. Te porównania nie oznaczają oczywiście, że rower jest lepszy, albo że samolot jest lepszy. Jest jednak jasne, że ktoś, kto jest pewny, że nigdy nie będzie jeździł na większe odległości nie powinien wybierać samolotu.

Oczywiste jest ponadto, że na świecie jest znacznie więcej rowerzystów, niż pilotów samolotów. To znowu nie oznacza, że rower jest lepszy od samolotu, ani nie oznacza, że takie pojazdy jak samoloty są w zaniku i wkrótce przestaną istnieć.

#### 2.1.5. Rozszerzalność

TEX ma wbudowany język programowania (inaczej mówiąc jest językiem programowania). Za pomocą tego języka można definiować rozszerzenia tego systemu, tworząc specjalizowane systemy składu.

#### 2.1.6. Cena

TEX nic nie kosztuje. Ściślej mówiąc jest to program typu public domain (dobro wspólne). Autor TEX-a wyraził zgodę na bezpłatne rozpowszechnianie i używanie tego programu.

Nie wszystkie programy public domain na świecie mają jednak taki sam status. Na ogół ich autorzy decydują o tym, co w ich przypadku oznacza określenie public domain.

W przypadku TEX-a, w ramach szerokiej zgody autora na używanie jego dzieła, możliwe jest nawet utworzenie własnej implementacji z powszechnie dostępnej źródłowej wersji programu i sprzedawanie jej już jako programu komercyjnego -- odpłatnego. Przykładem takiej implementacji jest wspaniale opracowany program ,,Textures'' firmy Blue Sky Research, który jest implementacją TEX-a na komputery Macintosh. Jest to produkt komercyjny, którego używanie wymaga licencji. Użytkownicy Macintosha mogą też wybrać -- jeśli wolą -- bezpłatną implementację TEX-a, program OzTEX.

Polska wersja systemu TEX, zawierająca standardowy zestaw fontów z polskimi znakami diakrytycznymi, polskie reguły przenoszenia (dzielenia) wyrazów oraz komplet makr (makrodefinicji) napisanych w języku TEX nazywa się MEX i ma również status public domain. Jest ona dostępna -- podobnie jak TEX -- w wersji źródłowej.

Coś jednak zawsze kosztuje. Najwięcej chyba (czasu albo pieniędzy) kosztuje nauczenie się obsługi TEX-a. Z pewnością można uczyć się go latami i jeszcze być daleko od stwierdzenia ,,wiem wszystko''. Kosztują też pewne programy związane z TEX-em, np. niektóre sterowniki urządzeń zewnętrznych. Również większość fontów, nie należących do podstawowego kompletu TEX-a można nabyć jedynie odpłatnie.

#### 2.1.7. Przenośność

Kod źródłowy programu TEX jest powszechnie dostępny i zawiera dobrze opracowaną dokumentację wewnętrzną. Został on napisany w specjalnie opracowanej wersji języka Pascal, w tzw. języku WEB. Autor systemu zadbał bardzo starannie o to, żeby cechy programu związane ściśle z określonym typem komputera lub systemem operacyjnym, m. in. takie jak sposoby zapisywania i czytania plików, były starannie wydzielone w tekście programu i łatwe do wymiany. Z dużą pieczołowitością opracował też rozmaite działania wewnętrzne programu, tak żeby dla tych samych danych program dawał dokładnie takie same wyniki, niezależnie od typu komputera, rodzaju procesora użytego do obliczeń itp.

Dzięki tym cechom powstały implementacje TEX-a na dziesiątki różnych typów komputerów, pod różnymi systemami operacyjnymi. Praktycznie każdy typ komputera, poczynając od 16-bitowych ma swoją wersję systemu TEX.

#### 2.1.8. Logiczność w przeciwieństwie do graficzności

,,Logiczność'', to możliwość opisywania w TEX-u logicznej struktury składanego tekstu, co bardzo ułatwia dokonywanie wszelkich zmian w tekście, już po jego złożeniu.

Jest to prawdopodobnie jedna z najważniejszych cech TEX-a, stanowiących o jego sile i możliwościach

### 2.2. Kim są użytkownicy TEX-a?

Użytkownicy TEX-a, to w znacznej części pracownicy naukowi i studenci wyższych uczelni i innych instytucji naukowych, choć nie brakuje też wydawców, a także np. wytwórców pieczątek czy wizytówek, agencji reklamowych itp.

### 2.3. TEX-owcy, łączcie się

Ze względu na to, że TEX ma stosunkowo niewielu użytkowników, TEX-owcy zawiązują stowarzyszenia, zwane grupami, w celu łatwiejszej wymiany informacji, współpracy, łatwiejszego rozpowszechniania oprogramowania itp.

Istnieje międzynarodowe stowarzyszenie użytkowników TEX-a: TEX Users Group z siedzibą w Stanach Zjednoczonych. W Europie prawie w każdym kraju zawiązały się narodowe grupy użytkowników.

W Polsce w 1992 r. powstała Polska Grupa Użytkowników Sytemu TEX, w skrócie GUST. Grupa wydaje własny biuletyn informacyjny, organizuje doroczne konferencje użytkowników oraz współorganizuje szkolenia obsługi systemu. Dzięki Grupie istnieje też dostępna elektronicznie (dla użytkowników sieci komputerowych) lista dyskusyjna oraz archiwum oprogramowania związanego z TEX-em.

### 2.4. Do czego służy TEX?

TEX pozwala komputerowo robić to, co dawniej robili zecerzy.

Praca zecera w drukarni polegała na tym, że z gotowych czcionek, zawierających poszczególne znaki, odlewanych z ołowiu lub innego metalu, układał on kolejne linijki tekstu, a następnie -- układając takie linijki jedna nad drugą -- montował z nich kolumny tekstu, które następnie, spięte odpowiednią ramą, były umieszczane w maszynie drukarskiej i służyły do drukowania stron.

Obecnie takie prace wykonuje się komputerowo. Końcowy efekt pracy komputera w tym zakresie zależy od oczekiwanego stopnia profesjonalizmu lub jakości. W prostszym przypadku wynikiem mogą być strony tekstu wydrukowane bezpośrednio na papierze za pomocą podłączonej do komputera drukarki (laserowej, mozaikowej lub atramentowej). W zastosowaniach profesjonalnych, kiedy wynik składu ma być zastosowany w druku, tworzy się przezroczystą folię z nieprzezroczystym tekstem, naświetloną w urządzeniu zwanym fotonaświetlarką. Promień lasera naświetla na błonie fotograficznej małe punkciki w miejscach, które mają być nieprzezroczyste. Następnie taka błona po wywołaniu służy do wykonania matryc drukarskich do tzw. druku offsetowego.

### 2.5. Czy TEX-em można...?

Często użytkownicy różnych programów służących do podobnych celów zadają sobie nawzajem pytania w rodzaju: ,,Czy twoim systemem można...?''. Podobne pytania mogłyby paść w odniesieniu do systemu TEX. Wymienienie wszystkiego, co można zrobić TEX-em nie tylko nie jest łatwe, ale jest niemożliwe. Możemy jednak przyjrzeć się kilku przykładom.

TEX jest uniwersalnym systemem pozwalającym na wykorzystanie go do wszelkich prac związanych z nadawaniem formy tekstom. Można nim składać wszystko począwszy od listów i ulotek, poprzez wszelkiego rodzaju książki i czasopisma (w tym naukowe i nutowe), a skończywszy na wielkich dziełach, jak encyklopedie.

Typowe systemy mają na ogół listę dobrze przygotowanych, ściśle określonych czynności, które potrafią zrealizować. Nic poza tą listą nie może być wykonane. W przypadku TEX-a trudność może polegać jedynie na tym, że jeszcze nie umiemy czegoś za jego pomocą zrobić.

Z racji swojego sposobu działania TEX nigdy nie pracuje samotnie. W swoim cyklu przetwarzania współpracuje z różnymi programami pomocniczymi, między innymi z edytorem i ze sterownikami urządzeń zewnętrznych. Od wyboru tych programów i sposobu organizacji jego cyklu przetwarzania zależą często jego możliwości. Pisząc poniżej, że TEX może to-i-to, mamy na myśli, że można tak skonfigurować TEX-a i połączyć go z innymi programami, że jest to możliwe. W szczególności bardzo dużą moc daje TEX-owi połączenie z systemem PostScript.

#### 2.5.1. Matematyka i inne nauki

TEX nie ma równego sobie systemu w zakresie składu prac i książek naukowych, w szczególności matematycznych i fizycznych. Większość matematyków używa TEX-a do pisania swoich prac. TEX jest standardem Amerykańskiego Towarzystwa Matematycznego (AMS), największej organizacji matematyków na świecie.

#### 2.5.2. Ilustracje

TEX pozwala na włączanie do tekstu dowolnych ilustracji (w tym zdjęć, również barwnych).

#### 2.5.3. Nuty

Istnieje co najmniej kilka rozszerzeń TEX-a pozwalających na skład nut. Co najmniej jednym z nich można składać nawet najbardziej skomplikowane partytury i -- co bardzo ważne -- łączyć skład nut z wszystkimi innymi elementami, na które pozwala TEX. W tym samym dokumencie, a nawet na tej samej stronie mogą znaleźć się nuty, teksty, formuły matematyczne, zdjęcia itp.

#### 2.5.4. Kolory

Przy odpowiednim połączeniu systemu TEX z wyjściowymi urządzeniami barwnymi TEX może składać w kolorze. Teksty, tło, ilustracje itp. mogą być wielobarwne.

#### 2.5.5. Różne kroje pisma

Niektórzy użytkownicy systemu TEX błędnie sądzą, że ten program wyposażony jest w skończony, ograniczony i zamknięty komplet krojów pisma i że nie można w nim użyć innych krojów.

Autor TEX-a wyposażył go w rodzinę krojów pisma o nazwie Computer Modern. Kroje te, opracowane częściowo na wzór rodziny krojów Modern, zostały zaprojektowane przez Donalda Knutha we współpracy z jednym z najwybitniejszych współczesnych typografów Hermanem Zapfem. Rodzina krojów Computer Modern zawiera dużą liczbę znaków przeznaczonych do składania formuł matematycznych i dlatego dobrze nadaje się do wykonywania składu prac naukowych.

Program TEX nie jest jednak w żaden sposób związany z rodziną Computer Modern. Można w nim wykorzystywać praktycznie wszystkie kroje pisma opracowane na świecie. Każda większa firma zajmująca się produkcją i sprzedażą komputerowych nośników krojów pisma ma w swojej ofercie na ogół około dwa do czterech tysięcy krojów. Wszystkie one mogą być używane w TEX-u. Jak zawsze w przypadku TEX-a problemem nie jest ,,czy można?'', tylko ,,czy już umiem to zrobić?''.

Każdy krój pisma i każda odmiana może być dowolnie skalowana. Nie ma (praktycznie) żadnych ograniczeń na wielkość pisma. Skład można wykonywać zarówno pismem wielkości ułamka punktu drukarskiego (co może mieć zastosowanie do tzw. mikrodruku, stosowanego np. do zabezpieczania banknotów), jak też pismem wielkości kilkudziesięciu centymetrów czy nawet kilku metrów.

### 2.6. Konfiguracja

TEX jest programem zajmującym w pamięci dyskowej -- zależnie od wersji -- około 200--250 kilobajtów. Do pracy potrzebne mu są dodatkowo pliki zawierające podstawowe, tzw. metryczne informacje o fontach.

Każdy font (font, to zestaw znaków określonego kroju i wielkości) używany przez system TEX, reprezentowany jest w pamięci dyskowej komputera co najmniej dwoma różnymi plikami.

Pierwszy z tych plików to tak zwany plik `TFM` ( TEX font metrics). Zawiera on jedynie informacje o wymiarach znaków, w szczególności szerokość, wysokość i głębokość każdego znaku. Nie zawiera informacji o kształcie znaku. Zapis w pliku `TFM` wykorzystywany jest przez program TEX podczas składania tekstu. Cały komplet plików `TFM` obejmujący podstawowy zestaw fontów TEX-a (w jego polskiej wersji), w tym wszystkie fonty specjalne służące do składania wzorów matematycznych, zajmuje poniżej 180 kilobajtów.

Drugi plik informacyjny o foncie zawiera informacje o kształcie każdego znaku. Zapis zawarty w tym pliku przeznaczony jest nie dla programu TEX, ale dla jednego ze sterowników ( drajwerów) współpracujących z TEX-em. Zapis ten służy przeniesieniu obrazu każdego znaku na określone urządzenie zewnętrzne, takie jak ekran komputera, drukarka laserowa, atramentowa lub igłowa albo fotonaświetlarka.

W związku z różnorodnością możliwych urządzeń zewnętrznych, ich jakości, rozdzielczości i sposobów komunikowania się z nimi programów, różne też mogą być zapisy fontów przeznaczonych do przeniesienia na te urządzenia. Dlatego też nie ma jednego określonego standardu zapisywania fontów TEX-owych przeznaczonych dla urządzeń zewnętrznych. Zwyczajowo jednak fonty w postaci map bitowych zapisywane są w tzw. formacie `PK`. Należy jednak pamiętać, że są to fonty przeznaczone dla określonej rozdzielczości urządzenia zewnętrznego i dla określonego rodzaju sterownika.

Zależnie od ilości i rodzaju używanych urządzeń zewnętrznych oraz zależnie od ilości różnych krojów i możliwych wielkości znaków, które chcemy mieć stale dostępne, zapis fontów na dysku może zajmować mniej lub więcej miejsca. Wydaje się, że minimalna konfiguracja, umożliwiająca już pracę z prostymi tekstami, zajmuje poniżej 1 megabajta. Możliwości instalowania fontów są praktycznie nieograniczone można używać nawet kilku tysięcy krojów pisma. Ich zapis na dysku może zajmować dziesiątki i setki megabajtów. Ilość miejsca zajmowanego przez fonty jest jednak niezależna od systemu TEX i wynosiłaby tyle samo przy jakimkolwiek innym systemie składu.