Narzędzia osobiste
Jesteś w: Start Dokumentacje Co to jest TeX?

Co to jest TeX?

Najkrótsze wprowadzenie do systemu TeX. Autorzy: Marcin Sochacki, Tomasz Przechlewski.

Wstęp

Dla wielu posługiwanie się systemem TeX wydaje się dziwactwem w sytuacji gdy standardem są aplikacje typu WYSIWYG (programy potrafiące wyświetlić na ekranie komputera dokument w postaci możliwie zbliżonej do postaci drukowanej oraz pozwalające na manipulowanie/modyfikowanie tak wyświetlonego dokumentu). TeX nie jest WYSIWYG, a przypomina „ręczne” tworzenie dokumentu HTML. Zatem pierwsze pytanie, na które trzeba odpowiedzieć brzmi:

Dlaczego TeX i dlaczego taki trybu pracy nie tylko nie jest umartwianiem się,
ale wprost przeciwnie – w wielu wypadkach jest sposobem lepszym od tego,
który takim się wydaje na pierwszy rzut oka?

Dla tych, którzy pozytywnie odpowiedzą na powyższe pytanie przeznaczona jest pozostała część tekstu, zawierająca minimum informacji potrzebnej do rozpoczęcia pracy z systemem.

Pomijając nieistotne szczegóły sposób redagowania dokumentu w każdym programie edycyjnym jest identyczny: autor dopisuje treść i określa jednocześnie – za pomocą specyficznych dla danego systemu poleceń – jak ma być on sformatowany (w systemach „nowoczesnych”, te polecenia to najczęściej operacje myszą lub wybór z menu). Jeżeli polecenia opisują wygląd dokumentu – mówimy o formatowaniu wizualnym, a jeżeli dotyczą jego logicznej struktury – mówimy o formatowaniu logicznym. Formatowanie logiczne operuje takimi pojęciami jak: tytuł rozdziału, tytuł punktu, tabela, tytuł tabeli, odsyłacz itp. Formatowanie wizualne to odstępy, stopień i krój pisma, kolory itp. W przypadku tworzenia większych dokumentów, zwłaszcza dokumentów naukowotechnicznych odznaczających się skomplikowaną strukturą i typowo zawierających wiele różnych elementów, takich jak: śródtytuły, tabele, rysunki, wzory matematyczne, przypisy, odsyłacze, itp., itd. znakowanie logiczne ma zdecydowaną przewagę nad wizualnym, zwiększa wygodę pracy i jej wydajność.

Potwierdzeniem tezy o supremacji jednego sposobu pracy nad drugim niech będzie fakt, że współcześnie wszystkie edytory WYSIWYG umożliwiają formatowanie strukturalne za pomocą stylów. Jednakże funkcjonalność stylów typowego programu edycyjnego to niewielki ułamek możliwości TeXa.

Asynchroniczna praca w systemie TeX zniechęca do formatowania wizualnego, a zachęca do posługiwania się formatowaniem strukturalnym. W połączeniu z programowalnością znakomicie zwiększa wydajność pracy, a przecież o to przede wszystkim chodzi.

Wielu porównuje TeXa z edytorem biurowym MS Word. O tyle jest to porównanie nietrafne, że TeX to program do składu drukarskiego, przewyższający edytory biurowe tak możliwościami jak i jakością wyniku. Z kolei programy DTP typu Framemaker czy InDesign, których funkcjonalność jest bardziej porównywalna z TeXem są skomplikowane i wcale nie tak łatwe do opanowania.

TeX: język programowania

Powstał w Stanach Zjednoczonych na Uniwersytecie Stanforda a jego autorem jest wybitny informatyk profesor Donald E. Knuth. Został ukończony w 1986 roku, w 10 lat po rozpoczęciu pracy. TeX to system składu drukarskiego, dostępny w każdym używanym współcześnie systemie operacyjnym. Cechuje go m.in.: wysoka jakość składu, możliwość dopasowywania do specjalizowanych zadań, łatwa współpraca z innymi aplikacjami, przenośność (na każdej platformie systemowej działa identycznie). Rozpowszechniany jest na licencji typu Open Source.

TeX to wyspecjalizowany język programowania pozwalający na złożenie w sposób automatyczny dokumentu o dowolnej skali trudności. Co za tym idzie TeX to skomplikowany język, o specyficznej składni i dużej liczbie poleceń. Poleceń pierwotnych (wbudowanych) jest około 300 (zmienne, instrukcje podstawienia/warunkowe, definiowanie nowych funkcji). Ponieważ są one zorientowane na graficzny opis strony nie są wykorzystanie w codziennej pracy. Użytkownik „końcowy” używa instrukcji zdefiniowanych za pomocą instrukcji podstawowych, podobnie jak użytkownik dowolnego języka wysokiego poziomu wykorzystuje biblioteki. Przeciętny użytkownik TeXa nie zna praktycznie tego języka, a umie posługiwać się wyłącznie owymi poleceniami wysokiego poziomu, przygotowanymi i udostępnionymi przez innych. Zbiór takich instrukcji nosi nazwę formatu. Cztery powszechnie używane formaty to: Plain, LaTeX, AMSTeX oraz ConTeXt. Istnieje więcej formatów zaprojektowanych do specyficznych zadań. Zdecydowana większość użytkowników TeXa zna i używa wyłącznie LaTeXa.

Podstawowym podręcznikiem do LaTeXa jest [5], ostatnio przetłumaczony na język polski. Do nauczenia się LaTeXa wystarczy wszakże jeden z wielu dostępnych podręczników w wersji elektronicznej [6, 2, 3] Język TeX jest opisany szczegółowo w książce [4]. Dostępny online jest także doskonały podręcznik dla zaawansowanych [1].

TeX: system składu

Za pomocą dowolnego edytora (w tym względzie podstawowym kryterium są oczywiście własne przyzwyczajenia, ale wiele edytorów, np. vi/vim, Emacs, Kile, udostępnia całkiem wygodne IDE do pracy w systemie TeX) lub w inny sposób tworzony jest plik tekstowy, zawierający treść wymieszaną z poleceniami języka TeX. Plik ten jest interpretowany przez program tex i tworzony jest plik pośredni opisujący dokument wynikowy strona po stronie (plik .dvi) Plik .dvi zawiera tylko opis, nie zawiera wielu zasobów niezbędnych do reprodukcji na urządzeniu wyjściowym, takich jak fonty (kształty znaków) i pliki graficzne. Sterownik zamienia plik .dvi, korzystając z niezbędnych zasobów na dokument docelowy możliwy do reprodukcji na określonym urządzeniu.

Kompletny system składa się minimum z: edytora, sterowników, programu tex oraz zbioru fontów. Współczesny system TeX zawiera dodatkowo wiele innych zasobów i programów. Najważniejsze z nich to:

pdftex
wariant programu TeX potrafiący bezpośrednio tworzyć dokumenty w formacie PDF;
METAFONT
program do tworzenia fontów bitmapowych i METAPOST do tworzenia grafiki wektorowej;
makeindex/plindex
programy do przygotowania skorowidzów;
bibtex
program do zarządzania spisami bibliograficznymi.

System może korzystać ponadto z dodatkowych zasobów systemowych, np. programów do sprawdzania poprawności ortograficznej, takich jak ispell czy interpretatora języka Postscript, takiego jak ghostscript.

System składu oparty na programie tex, przygotowana na określoną platformę systemową, nazywamy dystrybucją. W chwili obecnej popularnymi dystrybucjami są: miktex i fptex na systemy MS Windows oraz tetex na wszystkie Uniksy. Dystrybucja texlive udostępnienia „wszystko w jednym”, tj. zawiera fptex + tetex oraz rozliczne oprogramowanie towarzyszące.

System TeX dla MS Windows jest dostępny w www.miktex.org/. W przypadku Linuksa TeX jest dostępny we wszystkich ważniejszych dystrybucjach. Pod adresem www.ctan.org znajduje się centralne archiwum TeXowe (CTAN) zawierające praktycznie wszystkie zasoby związane z TeXem. Godnym polecenia punktem startu jest strona Polskiej Grupy Użytkowników Systemu TeX, http://www.gust.org.pl/.

Fonty

W sposób oczywisty fonty są bardzo istotną częścią systemu składu. Font to program komputerowy zawierający opisy znaków plus dodatkowe informacje określające sposób ich pozycjonowania w składzie (ligatury, kerning, itp.). Większość fontów jest komercyjna i nie może być swobodnie rozpowszechniana. Z tego powodu system TeX wyposażony jest we „własne” kroje pisma o statusie Oprogramowania Otwartego.

Knuth opracował własny system tworzenia fontów o nazwie METAFONT i z jego pomocą zaprojektował ponad 70 krojów pism. Ten standardowy zestaw fontów nazywa się Computer Modern (CM) i jest wzorowany na kroju Modern 8A firmy Monotype. Fonty CM są 128 znakowe i nie zawierają kompletu polskich znaków. Znaki diakrytyczne, niezbędne do składu po polsku i w innych językach europejskich dostępne są w 256 znakowych fontach European Computer Modern (EC), Latin Modern (LM) czy Polish Computer Modern (PL).

Z punktu widzenia sposobu definiowania znaków fonty dzielimy na bitmapowe i obwiedniowe, przy czym te pierwsze mają raczej znaczenie historyczne (z wyjątkiem systemu TeX!). Istnieje kilka standardów definiowania fontów obwiedniowych: fonty postscriptowe (inaczej fonty typu pierwszego, zaprojektowane przez firmę Adobe Inc.), fonty TrueType (ich pozycję określa fakt, że są częścią każdego systemu Windows firmy Microsoft.) oraz najmłodsze OpenType (wspólna inicjatywa firm Adobe i Microsoft). Kiedy powstawał TeX, żaden z ww. formatów jeszcze nie istniał, dlatego też system METAFONT nie jest z nimi „kompatybilny”.

W systemie METAFONT kształtów znaków są określonych w programach napisanych w języku METAFONT, a program mf potrafi „na żądanie” wygenerować fonty bitmapowe o odpowiedniej rozdzielczości, które następnie są wykorzystywane do drukowania na określonym urządzeniu wyjściowym.

Ponieważ fonty bitmapowe są technologią przestarzałą, zaleca się wykorzystywanie w pracy fontów obwiedniowych (zwłaszcza gdy tworzymy pliki PDF). TeX umożliwia wykorzystanie zarówno fontów Postscriptowych jak i Truetype (z fontami OpenType jest gorzej). Oryginalnie dostępne jako bitmapowe fonty CM czy PL w chwili obecnej są dostępne także w wersjach obwiedniowych. Jeżeli korzystamy z języka Postscript, wtedy niezbędnym elementem systemu TeX jest ghostscript; alternatywa to tworzenie plików PDF i posługiwanie się np. programem Adobe Acrobat.

Literatura

Wszystkie pozycje wymienione na liście za wyjątkiem książki Lamporta są dostępne online, np. w archiwum CTAN.

  1. Eijkhout, Victor: TeX by topic, Addison-Wesley 1991.
  2. Flynn, Peter: A beginner’s introduction to typesetting with LaTeX.
  3. Greenberg Harvey J.: A Simplified Introduction to LaTeX, 2000.
  4. Knuth, Donald E.: The TeXbook, Addison-Wesley 1989.
  5. Lamport, Leslie: LaTeX: a document preparation system, Addison-Wesley 1994. Polskie tłumaczenie: LaTeX System opracowywania dokumentów. Podręcznik i przewodnik użytkownika, WNT 2004 (tł. M. Wolińska, M. Woliński).
  6. [6] Oetiker, Tobias i inni: Not so short introduction to LaTeX2e. Polskie tłumaczenie: Nie za krótkie wprowadzenie do systemu LaTeX2ε.