# Przewodnik po systemie TeX

- Co to jest TeX?
- Składniki systemu TeX.
  - tex (virtex, initex) i plik formatu
  - Plik źródłowy
  - Pliki .tfm
  - Program mf
  - Fonty CM, EC i PL
  - Plik .dvi, sterowniki
  - Plik .log
  - LaTeX:
    - pliki .cls, .clo, .sty i .fd
    - inne pliki tworzone przez LaTeX-a
  - Rozszerzone wersje programu TeX
  - TDS
- Web2c
- Jak zacząć pracę z TeX-em
  - Archiwa TeX-owe
  - Generowanie formatów
- Podręczniki dla początkujących

# Co to jest TeX?

TeX (wym. tech) jest systemem profesjonalnego składu drukarskiego. Wśród systemów służących do podobnych celów wyróżnia się dbałością o jakość wyników. Nie ma sobie równych przy składaniu trudnych tekstów naukowych (szczególnie matematycznych), słowników, itp. Inną zaletą TeX-a, istotną w środowisku akademickim, jest jego status oprogramowania public domain.

## Bardzo krótka historia systemu

TeX powstał w Stanach Zjednoczonych na Uniwersytecie Stanforda. Jego twórcą jest wybitny matematyk i informatyk, profesor Donald E. Knuth. System został ukończony w 1986 roku, w dziesięć lat po rozpoczęciu pracy.

## Kto używa TeX-a?

System TeX, odpowiednio przystosowany do pracy w różnych językach, jest używany przez setki tysięcy użytkowników na całym świecie. Na większości wyższych uczelni na świecie jest używany do składania tekstów naukowych. Wykorzystywany jest np. przez dwóch największych na świecie wydawców tekstów naukowych, tj. American Mathematical Society oraz Springer Verlag, a ponadto przez kilkadziesiąt innych cenionych wydawnictw, takich jak: Addison-Wesley Publishing Group, Oxford University Press, Elsevier Publishers, Kluwer Academic Publishers itd.

## Dlaczego używa się TeX-a?

TeX umożliwia efektywne składanie tekstów o dowolnej trudności. Unikalny algorytm, którym posługuje się TeX przy składaniu akapitów, powoduje, że nie ma programu oferującego w tym względzie lepsze możliwości. Inne zalety TeX-a to jego cena i powszechność. System TeX jest oprogramowaniem public domain, co oznacza, że każdy może zostać jego legalnym użytkownikiem bez żadnych opłat licencyjnych.

Ponadto TeX, jak każdy prawdziwy program public domain, jest dostępny łącznie z kodem źródłowym i został zaimplementowany praktycznie na każdej platformie. W rezultacie użytkownicy TeX-a na całym świecie mogą się porozumiewać (np. wymieniać dokumenty poprzez pocztę elektroniczną) bez względu na to, na jakim sprzęcie pracują. TeX działa tak samo na wszystkich platformach.

Wreszcie TeX jest oprogramowaniem otwartym, przez co rozumieć należy jego zdolność do współpracy z innymi programami. Częstą sytuacją jest wykorzystanie TeX-a -- programu, który doskonale działa w trybie wsadowym -- jako ważnego elementu zautomatyzowanych systemów publikacyjnych, np. opartych na standardzie SGML.

## Wersje językowe TeX-a

TeX został zaprojektowany w taki sposób, że może być przystosowany do składania tekstów w dowolnych językach, nawet tak egzotycznych dla nas, użytkowników alfabetu łacińskiego, systemach, jak drukowanie z góry na dół (chińska albo japońska wersja językowa) czy z prawa na lewo (hebrajska i arabska).

## Wymagania sprzętowe

TeX jest przygotowany do pracy na komputerach pracujących pod różnymi systemami operacyjnymi, na przykład na komputerach IBM PC (MS DOS, OS/2, Windows 95/98/NT/2000, Linux), IBM (VM/CMS), VAX (VMS, UNIX), HP (HP-UX), SUN (Solaris), Cray, DEC, Commodore Amiga i Apple Macintosh. W Polsce TeX jest najczęściej używany na komputerach typu IBM PC.

## Kto rozwija TeX-a

System jest rozwijany przez użytkowników na całym świecie. Wielu z nich jest stowarzyszonych w międzynarodowej organizacji TeX Users Group (TUG). TUG liczy około 3000 członków indywidualnych, reprezentujących ponad 1500 szkół, uniwersytetów, agencji rządowych (np. Los Alamos National Laboratory, NASA w USA czy CERN w Europie) i prywatnych, oraz ponad 100 instytucjonalnych. Ponadto istnieje kilkanaście narodowych grup użytkowników TeX-a, z których do największych należą: DANTE (niemieckojęzyczna), GUTENBERG (francuskojęzyczna), NTG (holenderska). TUG i grupy narodowe prowadzą ogólnie dostępne serwery FTP, serwisy informacyjne WWW i listy dyskusyjne, wydają periodyki oraz organizują konferencje i szkolenia.

## TeX w Polsce

W 1992 roku powstała Polska Grupa Użytkowników Systemu TeX (GUST). Obecnie GUST zrzesza ponad 250 członków indywidualnych i instytucjonalnych. Co roku organizowana jest Ogólnopolska Konferencja Użytkowników TeX-a. Organizowane są kursy i szkolenia. W 1994 roku GUST był organizatorem IX Europejskiej Konferencji Użytkowników Systemu TeX w Gdańsku, natomiast w 1998 roku XIX Światowej Konferencji Użytkowników Systemu TeX w Toruniu. GUST wydaje dwa razy do roku swój biuletyn.

[Spis treści]

# Składniki systemu TeX

TeX jest programem do komputerowego składu tekstu. Razem z edytorem, sterownikami umożliwiającymi wydrukowanie czy wyświetlenie złożonego dokumentu, wieloma programami towarzyszącymi, takimi jak: MetaFont do generowania fontów czy MetaPost do tworzenia grafiki wektorowej, BiBTeX do przetwarzania baz bibliograficznych czy MakeIndex do sortowania skorowidzów i innych, tworzy system do elektronicznego składu komputerowego.

Słowo TeX oznacza także pewien wyspecjalizowany język programowania. Jak każdy język programowania, TeX ma specyficzną składnię (zawiera m.in. zmienne, instrukcje podstawienia i instrukcje warunkowe, ale informacja ta nie powinna odstraszyć początkującego użytkownika) oraz pozwala definiować nowe funkcje. Pomiędzy działaniem programu TeX a działaniem kompilatora, takiego jak np. `gcc`, istnieje duże podobieństwo. TeX czyta plik źródłowy tworząc plik wynikowy, podobnie jak w wyniku kompilacji z pliku źródłowego powstaje program. Plik wynikowy tworzony przez TeX jest niezależny od platformy (może być przenoszony na dowolny komputer lub system operacyjny), a także urządzenia, które go wyświetli lub wydrukuje.

TeX to skomplikowany system, w którego skład wchodzi wiele (kilka tysięcy) plików. W tym tekście omówiono rolę i przeznaczenie najważniejszych programów i typów plików wchodzących w skład systemu TeX. Tekst ten nie jest natomiast opisem TeX-a jako języka programowania (patrz: Podręczniki dla początkujących).

## tex (virtex, initex) i plik formatu

Najważniejszą składową systemu jest oczywiście sam program `tex`, który występuje w dwóch odmianach `virtex` i `initex`. W większości współczesnych implementacji obie odmiany to zwykle ten sam program, po prostu `tex` (lub `tex.exe`), uruchamiany z różnymi parametrami, np. `tex --ini` czy `tex /i` oznacza uruchomienie `initex`-a.

TeX zna około 300 instrukcji podstawowych (wbudowanych), tworzących jądro języka. W codziennej pracy użytkownik nie posługuje się instrukcjami wbudowanymi, ponieważ operują one na zbyt niskim poziomie abstrakcji. Użytkownik posługuje się instrukcjami (makrodefinicjami, makrami) zdefiniowanymi za pomocą instrukcji wbudowanych. Zbiór takich instrukcji oraz wzorce dzielenia wyrazów dla różnych języków są czytane podczas uruchamiania `initex`-a i, po przetworzeniu, zapisywane do pliku, który nazywamy formatem. Plik formatu ma zwyczajowe rozszerzenie `.fmt`. Trzy powszechnie używane formaty to: Plain (format zaprojektowany przez D.E. Knutha), LaTeX oraz AMSTeX. Istnieje oczywiście więcej formatów i użytkownik ma pełną swobodę tworzenia własnego formatu, przeznaczonego do specyficznych zadań.

Program `initex` jest wykorzystywany tylko do generowania formatu. Kiedy potrzebujemy wygenerować format? Najczęściej w wypadku zmiany zestawu potrzebnych wzorców dzielenia wyrazów, aktualizacji makr (dotyczy to szczególnie LaTeX-a) albo użycia nowszej wersji samego programu. Natomiast `virtex` jest programem wykorzystywanym w normalnej pracy. Pierwszą rzeczą, którą wykonuje `virtex`, po uruchomieniu, jest przeczytanie formatu. Program `virtex` umożliwia przełączanie pomiędzy poszczególnymi wzorcami dzielenia wyrazów, ale nie potrafi dołączyć nowego.

We współczesnych instalacjach uruchomienie programu o nazwie `tex` bez podawania dodatkowych parametrów tożsame jest z uruchomieniem TeX-a wraz z formatem Plain. Z kolei uruchomienie np. polecenia `latex` oznacza uruchomienie TeX-a z formatem LaTeX itp. Z punktu widzenia przeciętnego użytkownika nieistotne jest, czy takie polecenie zapisane jest na dysku pod nazwą `latex` (Unix), `latex.exe` (Windows), czy `latex.bat` (DOS).
Więcej o tworzeniu formatów -- patrz: Generowanie formatów

Oprócz wersji standardowej programu TeX dostępne są jego wersje rozszerzone, wbogacone o nowe elementy funkcjonalne.

## Plik źródłowy

Po przeczytaniu formatu, TeX rozpoczyna przetwarzanie dokumentu źródłowego. Dokument źródłowy, najczęściej mający rozszerzenie `.tex` lub `.ltx`, to zwykły plik tekstowy (ASCII). TeX nie ma nic wspólnego z jego utworzeniem czy modyfikowaniem. Dokument źródłowy tworzymy/modyfikujemy za pomocą edytora `emacs`, `vi`, `joe`, czy jakiegoś innego przez nas ulubionego. Dla systemów Windows dostępne są implementacje wymienionych edytorów, a także wiele innych edytorów tekstowych o statusie public domain bądź shareware. Jeszcze raz należy podkreślić, że edytor musi zapisać plik jako zwykły plik tekstowy. Dokument źródłowy może być także utworzony automatycznie, np. przez odpowiedni skrypt Perlowy.

Plik źródłowy zawiera tekst oraz polecenia języka TeX. Jeżeli polecenia opisują wygląd dokumentu, to mówimy o formatowaniu wizualnym, a jeżeli dotyczą jego logicznej struktury, to 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. Posługując się TeX-em możemy wykorzystywać oba sposoby formatowania. W przypadku tworzenia większych dokumentów znakowanie logiczne ma zdecydowaną przewagę nad wizualnym, zwiększa wygodę pracy i jej wydajność. Formaty LaTeX i AMSTeX umożliwiają znakowanie logiczne. Format Plain nie definiuje struktury dokumentu, umożliwia w zasadzie znakowanie wizualne, ale pozwala użytkownikowi na pełną swobodę definiowania dowolnej struktury logicznej i na pełne sterowanie procesem składu. Innymi słowy: LaTeX (czy AMSTeX) może być traktowany jako gotowy zbiór szablonów dla wielu typowych dokumentów, podczas gdy Plain wymaga samodzielnego ich zdefiniowania.

Z reguły na początku dokumentu źródłowego znajdują się instrukcje, które powodują, że zanim TeX rozpocznie składanie jakiegokolwiek tekstu, musi zapoznać się z zawartością innych plików, zawierających wymagane makra. Szczególnie dotyczy to formatu LaTeX, gdzie obowiązkowe jest wczytanie minimum pliku tzw. klasy dokumentu (patrz: LaTeX: pliki .cls, .clo, .sty i .fd).

## Pliki .tfm

Są to podstawowe pliki, z których korzysta TeX: musi on mieć informacje o użytych w dokumencie fontach. Informacje takie nie są zaszyte w programie, ale znajdują się w plikach z rozszerzeniem `.tfm`, zwanych plikami metrycznymi. Tym samym nie ma żadnych ograniczeń stosowanych fontów, wystarczy posiadanie odpowiednich plików metrycznych. Dla każdego wykorzystywanego w dokumencie fontu, TeX z odpowiedniego pliku `.tfm` pobiera informacje o wymiarach znaków. Oprócz wymiarów (wysokość, szerokość, głębokość znaku) plik `.tfm` zawiera informacje o podcięciach (kernach) oraz spójkach (ligaturach). Nie ma natomiast informacji o kształcie znaków, ponieważ te informacje nie są TeX-owi potrzebne. Więcej informacji na temat fontów znajduje się w artykule Fontowe ABC.

Wiele implementacji (np. teTeX) pozwala wygenerować brakujący plik `.tfm` ,,w locie'', o ile odnalezione zostaną pliki źródłowe fontu (pliki z rozszerzeniem `.mf`). Służy do tego opisany w kolejnym punkcie program MetaFont.

## Program mf

Do generowania fontów wykorzystywany jest system MetaFont, także autorstwa D.E. Knutha. Jest to program, który tworzy pliki metryczne (`.tfm`) oraz pliki zawierające mapy bitowe, definiujące kształty poszczególnych znaków na podstawie plików źródłowych. Pliki źródłowe MetaFont-a (mają one rozszerzenie `.mf`) opisują znaki w sposób niezależny od rozdzielczości czy konkretnego urządzenia drukującego.

Uwaga: znakomita większość użytkowników TeX-a nie ma potrzeby korzystania z programu MetaFont w inny sposób niż przez jego automatyczne uruchamianie do generowania brakujących fontów. Coraz częściej używane są fonty skalowalne Type 1 (PostScriptowe), ale warto nieco wiedzieć także i o tym programie.

System MetaFont, podobnie jak TeX, to język programowania i program implementujący go. Pliki źródłowe `.mf` przetwarzane są przez program `mf` (w systemach DOS/MS Windows będzie to `mf.exe`). Pierwszą rzeczą wykonywaną po uruchomieniu przez program `mf` jest przeczytanie bazy, która jest tym, czym dla programu TeX jest format. Plik bazy ma zwyczajowe rozszerzenie `.base` (lub `.bas`). W standardowym systemie TeX powinny się znajdować dwa takie pliki: `plain.base` i `cm.base`.

Po wczytaniu bazy MetaFont utworzy (zwykle) opisany wyżej plik `.tfm` oraz plik zawierający kształty poszczególnych znaków, zapisany w specyficznym dla sterowników TeX-owych bitmapowym formacie PK. Mówiąc ściślej, MetaFont tworzy pliki w formacie generic (`.gf`), ale w instalacjach TeX-a automatycznie wywoływany jest program `gftopk` konwersji do bardziej efektywnego formatu PK. Pliki takie mają rozszerzenie `.pk` lub `.999pk`, gdzie `999` oznacza rozdzielczość fontu. Przykładowo, font o nazwie `plr10`, w rozdzielczości 600 DPI będzie znajdował się w pliku `plr10.600pk`.

Tradycyjne, bitmapowe fonty TeX-owe nie są jedynymi, z których może korzystać TeX, np. możliwe jest korzystanie z fontów PostScriptowych lub w formacie TrueType.

Warto tu zwrócić uwagę na program MetaPost, będący mutacją MetaFont-a. Jest to doskonałe narzędzie do tworzenia grafiki obwiedniowej w postaci różnego rodzaju wykresów, schematów czy diagramów (również kolorowych).

## Fonty CM, EC i PL

D.E. Knuth opracował zestaw różnych krojów pisma, wzorując się na kroju Modern 8A firmy Monotype, i udostępnił je publicznie. Fonty te, nazwane Computer Modern, są standardowymi fontami używanymi przez TeX-a. Generowane są, oczywiście, za pomocą programu MetaFont. Jedną z wielu zalet tych fontów jest to, że zawierają bogaty zestaw symboli matematycznych oraz że publicznie dostępne są dodatkowe, optycznie do nich pasujące kroje, umożliwiające skład w wielu alfabetach, nawet tak egzotycznych jak gruziński czy arabski.

Oryginalne fonty Computer Modern (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), opracowanych na podstawie fontów CM przez Joerga Knappena i wiele innych osób. Każda współczesna dystrybucja TeX-a zawiera zarówno fonty CM, jak i EC. Układ znaków w zakresie kodów 0--127 fontów EC różni się nieco od układu CM i w zasadzie tylko LaTeX zapewnia mechanizmy przełączania się między nimi (dla użytkownika jest to prawie niewidoczne). Dostępne są ponadto fonty PL, w pełni zgodne z CM, zawierające dodatkowo wszystkie polskie znaki diakrytyczne oraz cudzysłowy stosowane w polskiej typografii. Fonty CM i PL są dostępne (w odróżnieniu od fontów EC) także w postaci fontów PostScriptowych (skalowalnych).

Omówienie dostępnych polskich fontów, przygotowanych specjalnie dla systemu TeX, zawarto w artykule Polskie fonty komputerowe.

## Plik .dvi, sterowniki

Wynikiem pracy TeX-a jest zwykle kilka plików, z których najważniejszym jest plik z rozszerzeniem `.dvi`, który może być wyświetlony na ekranie bądź wydrukowany. Plik `.dvi` zawiera dla każdego znaku na stronie jego współrzędne oraz informację, z jakiego fontu pochodzi dany znak, nie zawiera natomiast definicji kształtów znaków. Do wydrukowania lub wyświetlenia na ekranie pliku `.dvi` potrzebny jest odrębny program zwany sterownikiem. W systemach Unix takim sterownikiem ekranowym jest np. program `xdvi`, w Windows `windvi` lub `yap`. Dopiero sterownik korzysta z plików zawierających definicje kształtów znaków (np. z plików PK).

Plik `.dvi` można zamienić na plik w formacie PostScript. Służy do tego program `dvips`. Wynikowy plik możemy wydrukować bezpośrednio na drukarce PostScriptowej, a także wyświetlić na ekranie lub wydrukować na dowolnej innej drukarce, wykorzystując interpreter tego języka `Ghostscript`.

Użycie docelowego formatu PostScript otwiera wiele nowych możliwości, niemożliwych do realizacji w tradycyjnym systemie TeX/LaTeX. Najważniejsze to: dołączanie praktycznie dowolnej grafiki (wektorowej, bitmapowej, kolorowej itd.), wykorzystanie kolorów w dokumencie czy korzystanie z różnych krojów pisma w formacie Adobe Type 1 (PostScriptowych). Więcej informacji na temat fontów i grafiki: Instalowanie fontów Type 1/True Type oraz Włączanie grafik do dokumentów LaTeX2e (plik PDF, ok. 800kb).

## Plik .log

Plik `.log` zawiera komunikaty i ewentualne ostrzeżenia TeX-a, wygenerowane podczas kompilacji dokumentu. Przeglądanie tego pliku może być często pomocne w diagnostyce błędów.

## LaTeX

LaTeX jest bardzo rozbudowanym zestawem makr, zawierającym wiele mechanizmów opisu struktury logicznej dokumentów. Jak wspomniano powyżej, zestaw taki, wraz z wzorcami dzielenia wyrazów, jest wstępnie prekompilowany i używany jako tzw. format. LaTeX to obecnie najbardziej rozpowszechniony format i dostarczany w każdej dystrybucji stanowi tym samym ważny sładnik systemu TeX. Twórcą LaTeX-a jest Leslie Lamport. Zaprojektowany przez niego zestaw makr został ,,zamrożony'' jako tzw. LaTeX 2.09 i praktycznie nie jest już używany. Obecnie używany LaTeX to intensywnie rozwijany przez tzw. LaTeX Team projekt, określany jako LaTeX2epsilon (LaTeX2e).

### LaTeX: pliki .cls, .clo, .sty i .fd

Oprócz informacji z plików `.tfm`, LaTeX czyta także pliki `.cls` i `.clo` (klasy) oraz `.sty` (pakiety). Klasa to plik(i) zawierający specyficzne instrukcje służące do sformatowania dokumentu określonego typu, np. książki, artykułu czy listu. Wczytanie pliku klasy jest w LaTeX-u obowiązkowe. Pliki `.sty` rozszerzają możliwości LaTeX-a. Podstawowy LaTeX nie umożliwia np. dołączania grafiki, kolorowania tekstu, automatycznego łamania długich tabel itd. Do wykonania takich zadań służą właśnie pakiety.

Klasy i pakiety LaTeX-a są dystrybuowane w postaci plików z rozszerzeniem `.dtx`. Plik taki zawiera definicje poleceń dla LaTeX-a oraz dokumentację pakietu (opis techniczny i podręcznik użytkownika). Instalacja pakietu dostarczonego w pliku (lub plikach) `.dtx` polega na skompilowaniu pliku o nazwie takiej jak nazwa pliku `.dtx`, ale z rozszerzeniem `.ins` (zwykle plikowi `.dtx` towarzyszy odpowiadający mu plik `.ins`):

`tex plik.ins`

W rezultacie otrzymujemy wiele plików (o rozszerzeniach `.cls`, `.sty`, `.def` i `.fd` lub innych rzadziej spotykanych). Wszystkie takie pliki umieszczamy w katalogu, w którym LaTeX szuka plików tego typu (w strukturze TDS -- patrz niżej -- będzie to podkatalog w ramach `texmf/tex/latex/`).

W plikach z rozszerzeniami `.fd` znajdują się instrukcje definiujące dostępne w danej instalacji LaTeX-owej fonty. Oznacza to, że w przypadku posługiwania się LaTeX-em, sam plik `.tfm` nie wystarczy do tego, żeby system potrafił z niego skorzystać. Konieczne jest, aby font był ,,zarejestrowany'' w systemie. Rejestracja ta odbywa się przez zainstalowanie odpowiedniego pliku `.fd` w strukturze katalogów przeszukiwanych przez LaTeX-a.

Aby wydrukować dokumentację pakietu, należy skompilować plik `.dtx` (polecenie `latex plik.dtx`). Czasem niezbędne jest dwukrotne, a nawet trzykrotne uruchomienie tego polecenia, dzięki czemu dokumentacja będzie zawierała prawidłowe odsyłacze, spis treści itp.

Pliki `.dtx` i `.ins` nie są wykorzystywane w codziennej pracy. Po zainstalowaniu pakietu można je usunąć z systemu.

Polskie opisy wielu pakietów dostępne są w Wirtualnej Akademii TeX-owej. Poszukiwanie potrzebnego pakietu może ułatwić zestawienie w układzie tematycznym.

### Inne pliki tworzone przez LaTeX-a

Wymienione poniżej pliki pomocnicze są tworzone przez LaTeX-a na żądanie użytkownika, tzn. tylko wtedy, gdy dokument zawiera takie opcjonalne elementy, jak: spisy treści, bibliografie i skorowidze. Przykładowo, plik `.toc` powstanie tylko wtedy, gdy dokument ma zawierać spis treści.

#### Pliki .toc, .lot i .lof

Powstałe w wyniku kompilacji dokumentu LaTeX-owego pliki z rozszerzeniami `.toc`, `.lot` oraz `.lof` zawierają spisy treści, tabel i rysunków. LaTeX przetwarza dokument strona po stronie, dlatego w pojedynczym przebiegu niemożliwe jest wstawienie spisu treści na początku dokumentu, ponieważ jego treść nie jest jeszcze znana. Podobnie ma się sprawa ze spisami tabel czy rysunków. Rozwiązanie tego problemu jest tyle proste, co skuteczne. Podczas pierwszej kompilacji do plików pomocniczych zapisywane są odpowiednie informacje, które są następnie wykorzystywane podczas drugiej kompilacji. Patrz też: Spisy w LaTeX-u.

Podobna technika jest stosowana do wstawienia odsyłaczy. Informacje niezbędne do ich prawidłowego zdefiniowania są zapisywane do pliku z rozszerzeniem `.aux`.

#### Pliki .idx, .ind i .ist

Plik z rozszerzeniem `.idx` zawiera hasła skorowidza. Hasła te powinny być następnie posortowane przez program `makeindex` albo `plmindex`. Drugi z tych programów, będący zmodyfikowaną wersją pierwszego, jest zdolny do tworzenia skorowidza zarówno według reguł angielskich, jak i polskich. Wynikiem działania programu `makeindex`/`plmindex` jest plik z rozszerzeniem `.ind`, który zawiera gotowy do przetworzenia przez LaTeX-a skorowidz. Postacią tworzonego skorowidza można sterować w ograniczony sposób za pomocą specjalnych instrukcji zapisanych w pliku `.ist` (index style). Dodatkowo powstający plik `.ilg` zawiera komunikaty pracy programu `makeindex`/`plmindex`. Patrz też Wszystko o indeksowaniu.

#### Pliki .bib, .bbl i .bst

Do przygotowywania spisów bibliograficznych służy program BibTeX. Jest to narzędzie przydatne dla osób piszących np. prace naukowe, które to prace, jak wiadomo, zawierają wiele odwołań do innych dokumentów. Informacja bibliograficzna jest przechowywana w pliku `.bib`. Każda pozycja jest oznaczona etykietą. W dokumencie LaTeX-owym zamiast pełnej treści odwołania wstawiamy etykietę, którą podczas kompilacji LaTeX zapisuje do pliku `.aux`. Na podstawie pliku `.aux` program BibTeX tworzy spis bibliograficzny, obejmujący oczywiście tylko te pozycje z pliku `.bib`, które były cytowane w dokumencie. Spis jest formatowany według specyfikacji zawartej w pliku `.bst` i zapisywany do pliku `.bbl`. Komunikaty programu BibTeX są zapisywane do pliku `.blg`. Dwa kolejne przetworzenia dokumentu powodują poprawne sformatowanie bibliografii i odwołań. Patrz też Bibliografia w LaTeX-u.

## Rozszerzone wersje programu TeX

We współczesnych dytrybucjach oprócz programu `tex` dostępne są jego, intensywnie rozwijane, rozszerzone wersje:

- pdfTeX -- rozszerzenie TeX-a pozwalające tworzyć bezpośrednio pliki w formacie `PDF`, w trybie pracy tworzącym standardowe pliki `DVI` pdfTeX jest w pełni zgodny z programem TeX; pdfTeX wraz z zestawem odpowiednich makr pozwala tworzyć interaktywne dokumenty hipertekstowe i atrakcyjne prezentacje; obszerne omówienie pdfTeX-a zawiera artykuł G. Sapijaszko: Tworzenie dokumentów PDF przy pomocy LaTeX-a.
- e-TeX -- TeX rozszerzony o szereg poleceń pierwotnych, posiada m.in. tryb składu od prawej do lewej (dla m.in. arabskiego i hebrajskiego); w trybie zgodności pracuje jak standardowy program TeX; istnieje także wersja pdfe-TeX, tworząca pliki w formacie `PDF`;
- Omega -- rozszerzenie TeX-a pracujące z fontami ze znakami kodowanymi 16-bitowo (Unicode) i pozwalające na skład w różnych, nawet b. egzotycznych językach.

## TDS

TDS (ang. TeX Directory Structure) oznacza standardową strukturę katalogów systemu TeX. Współczesne instalacje TeX-a są w zdecydowanej większości zgodne z TDS.

W instalacji TeX-owej zgodnej z TDS wszystkie omówione wyżej składniki systemu oprócz plików wykonywalnych (i oczywiście oprócz plików tworzonych podczas pracy) mają swoje standardowe miejsce w katalogu, którego korzeniem jest katalog `texmf`. Umiejscowienie tego katalogu w systemie plików jest zależne od lokalnej konfiguracji, np. w systemie Linux może to być `/usr/TeX/texmf/`, a w systemie Windows np. `C:\tex\texmf\`. Warto tu podkreślić, że z zawartości katalogu `texmf/` mogą korzystać różne systemy operacyjne, wystarczy, aby został on udostępniony w instalacji sieciowej lub zamontowany. Innymi słowy: zawartość `texmf/` jest niezależna od platformy (komputera i systemu operacyjnego); katalog z taką samą zawartością można mieć np. w pracy na maszynie Sun z systemem Solaris i w domu na PC z Windows bądź Linux. Poniżej wymieniono najważniejsze podkatalogi drzewa `texmf/`:

`texmf/web2c/`
  znajdują się tu m.in. formaty dla programu TeX (pdfTeX itp.) i bazy MetaFonta i MetaPosta oraz pliki konfiguracyjne instalacji.
`texmf/tex/`
  podkatalogi tu zawarte są przeszukiwane przez program TeX, i tak np. `generic/` zawiera biblioteki współużytkowane przez różne formaty; `latex/` zawiera biblioteki klas, stylów, plików `.def` i `.fd` dla LaTeX-a. Inne podkatalogi katalogu `tex/` zawierają biblioteki przeznaczone dla innych formatów.
`texmf/fonts/`
  zawiera wszelkiego rodzaju pliki fontowe: podkatalog `source/` to miejsce, w którym znajdują się źródłowe pliki MetaFonta; `type1/` zawiera fonty PostScriptowe (pliki `.pfa` lub `.pfb`); `tfm/` zawiera pliki `.tfm`. Mogą też znajdować się tam inne katalogi, np. `truetype/`, jeżeli instalacja wykorzystuje fonty w formacie TrueType.
`texmf/dvips/`
  zawiera pliki konfiguracyjne i pomocnicze dla programu Dvips (plik map fontowych i pliki przekodowań fontów).

Miejsce, w którym znajdują się pliki zawierające fonty bitmapowe w formacie PK, jest zależne od konkretnej platformy systemowej i dystrybucji. W systemach Unixowych pliki te są często generowane w katalogu udostępnionym do zapisu dla wszystkich użytkowników i kontrolowane przez demona `cron` (po upływie pewnego czasu są automatycznie usuwane). W instalacjach jednostanowiskowych pliki PK mogą być deponowane w katalogu `texmf/fonts/pk/` .

Wszystkie pliki programów znajdują się natomiast w osobnym katalogu, którego położenie jest zależne od konkretnej platformy i dystrybucji. Ponieważ jednak są one wszystkie w jednym miejscu ich odszukanie nie powinno stanowić problemu.

## Web2c

Web2c jest systemem do generowania kompletnego środowiska TeX-owego dla różnorodnych platform, nie tylko Unixowych, ale ostatnio Windows 9x/NT, Amiga, a także MS DOS. W oparciu o Web2c zbudowane są dystrybucje teTeX (Unix, Linux), fpTeX (Windows) i djgpp (MS DOS). Więcej szczegółów zawarto w artykule Web2c, gdzie wymieniono też programy tworzone w tym środowisku.

[Spis treści]

# Jak zacząć pracę z TeX-em

[Część ta jest nadal w przygotowaniu. Na razie zawiera tylko pobieżne omówienie implementacji TeX-a i generowanie formatów.]

## Archiwa TeX-owe

Oprogramowanie dla systemu TeX gromadzone jest na serwerach CTAN (Comprehensive TeX Archive Network) usytuowanych w Niemczech, Anglii i USA. Archiwa CTAN posiadają wiele kopii (mirror) na całym świecie, w Polsce pełna kopia dostępna jest w ICM, zaś selektywna kopia zawierająca ponadto archiwum GUST na Politechnice Gdańskiej. Na serwerach CTAN i ich kopiach dostępne są implementacje dla większości obecnie używanych systemów operacyjnych, a także bogate archiwa makr, fontów i oprogramowania towarzyszącego. Artykuł Implementacje TeX-a omawia najważniejsze dostępne dystrybucje.

## Generowanie formatów

Generowanie formatu polega na uruchomieniu programu `initex` (co jest tożsame z uruchomieniem programu `tex` z parametrem `--ini`) i przetworzeniu odpowiedniego pliku inicjującego. Plik taki zawiera najczęściej deklaracje wczytania pliku z makrami, wzorców przenoszenia wyrazów oraz ewentualne inne polecenia dla TeX-a, wymagane dla danego formatu. Dzięki takiemu podejściu możliwe było zbudowanie programów, które ułatwiają generowanie różnorodnych formatów. Programy takie nie tylko uruchamiają `initex`, ale też umieszczają wygenerowany plik w odpowiednim katalogu instalacji, tworzą polecenie uruchamiania TeX-a (lub jego odmian pdfTeX, eTeX, Omega) z danym formatem, wreszcie odświeżają bazę danych instalacji (co przyspiesza znajdywanie potrzebnych plików w codziennej pracy).

W przypadku formatu LaTeX (lub jego wersji pdflatex dla programu pdfTeX, tworzącego od razu pliki PDF) niezbędne jest określenie wymaganych w formacie wzorców przenoszenia wyrazów. W LaTeX 2e zestaw reguł przenoszenia wyrazów jest deklarowany w pliku o nazwie `language.dat`, który znajduje się zwykle w podkatalogu `tex/generic/config/` lokalnej konfiguracji systemu TeX bądź głównego katalogu instalacji. Modyfikacja `language.dat` polega na usunięciu w tym pliku znaku `%' przed deklaracją potrzebnych wzorców (dla języka polskiego jest to plhyph.tex) i ewentualnym zablokowaniu takim znakiem niepożądanych deklaracji wzorców dzielenia wyrazów. Reasumując, dla formatu LaTeX (pdfLaTeX) należy najpierw wybrać potrzebne wzorce dzielenia wyrazów, a następnie uruchomić generowanie formatu. Uwagi te nie dotyczą generowania formatów `platex/pdfplatex`, które korzystają z ,,prywatnego'' pliku `language.dat` zawierającego deklaracje wzorców dla języka polskiego i angloamerykańskiego (plik ten znajduje się w katalogu `texmf/tex/platex/config/`).

Dystrybucje oparte na Web2c (teTeX, fpTeX, TeX Live)
  Pliki formatów znajdują się w katalogu `texmf/web2c/` (niekiedy jest to lokalna kopia katalogu, dedykowana na prywatne pliki użytkownika). W podkatalogu `web2c/` znajduje się także plik konfiguracyjny `fmtutil.cnf` dla programu `fmtutil` automatyzującego generowanie formatów. Plik ten można modyfikować zgodnie z zawartymi w nim wskazówkami, co zwykle polega na odblokowaniu deklaracji interesującego nas formatu (usunięciu znaku komentarza #) bądź zablokowaniu deklaracji formatów niepożądanych, po czym, po zapisaniu pliku, uruchomienie programu: `fmtutil --all` wygeneruje wszystkie zadeklarowane formaty, `fmtutil --byfmt nazwa_formatu` wygeneruje dany format (`fmtutil --help` wyświetla dostępne opcje). W dystrybucji teTeX (Unix, Linux) modyfikowanie `fmtutil.cnf` możliwe jest po uruchomieniu programu `texconfig` i wybraniu menu `Formats`. Modyfikacja pliku z deklaracjami wzorców przenoszenia wyrazów (dla LaTeX jest to `language.dat`) dostępna jest z kolei z menu `Hyphenation`. Po zakończonej edycji `texconfig` automatycznie uruchomi program `fmtutil` i wygeneruje format(y).

MiKTeX
  W dystrybucji tej, od wersji 2.0, wprowadzono menu `MiKTeX Options`, uruchamiające program `mo.exe` (program można uruchomić także z wiersza poleceń). W podmenu `TeX Formats` można wybrać potrzebny format, po czym, po naciśnięciu przycisku `Build`, wygenerować go. Możliwe jest deklarowanie nowych formatów. Deklaracje formatów są przechowywane w pliku `miktex/config/formats.ini` lokalnego (bądź, przy jego braku, głównego) drzewa instalacji. Podobnie jak w dystrybucjach opartych na Web2c, generowanie formatu LaTeX wymaga uprzedniego zadeklarowania wymaganych wzorców przenoszenia wyrazów. Służy do tego podmenu `Languages` (patrz uwagi zawarte powyżej, dotyczące formatu LaTeX). `MiKTeX Options -- Formats` zawiera deklaracje dla polskich formatów `mex, pdfmex, platex, pdfplatex`. Pliki formatów umieszczane są w podkatalogu `miktex/fmt/` lokalnego drzewa instalacji (bądź, przy jego braku, głównego drzewa instalacji).

### Tworzenie formatów dla języka polskiego

Zanim przedstawimy szczegóły dotyczące generowania formatów dla języka polskiego, zainteresowanych Czytelników zachęcamy do przeczytania artykułu o problemach związanych z kodowaniem polskich liter.

MeX

PLaTeX

ConTeXt

[Spis treści]

# Podręczniki dla początkujących

- Michael Doob: Łagodne wprowadzenie do systemu TeX (tł. Stanisław Wawrykiewicz) -- samouczek dla użytkowników Plain TeX/MeX, ale przydatny także bardziej dociekliwym.
- Tobias Oetiker: Nie za krótkie wprowadzenie do systemu LaTeX2e (tł. Janusz Gołdasz, Ryszard Kubiak, Tomasz Przechlewski) -- całkiem zgrabne wprowadzenie dla niecierpliwych.

01.07.2003.