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.
Ponadto, jak każdy prawdziwy program public domain, jest dostępny łącznie z kodami źródłowymi co oznacza, że możliwe jest przygotowanie TeX-a do pracy w każdym systemie. 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 o standard SGML.
Słowo TeX oznacza także pewien wyspecjalizowany
język programowania.
Jak każdy język programowania, TeX posiada specyficzną składnię,
zawierającą zmienne, instrukcje podstawienia i instrukcje warunkowe
oraz pozwala definiować nowe funkcje. Pomiędzy działaniem programu
TeX a działaniem kompilatora takiego jak np.
TeX to skomplikowany system, w którego skład wchodzi
wiele (typowo 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 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
Program
We współczesnych instalacjach uruchomienie programu o nazwie
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 pod względem wygody pracy i jej
wydajności. 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 w pełni sterować 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ą
kolejnych plików.
System Metafont, podobnie jak TeX, to język programowania i program
implementujący go.
Pliki źródłowe
Po wczytaniu bazy Metafont utworzy (zwykle) opisany wyżej plik
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.
Uwaga: znakomita większość użytkowników TeX-a nie ma potrzeby korzystania
z Metafont-a w inny sposób niż jego automatyczne uruchamianie
do generowania brakujących fontów.
Warto zwrócić natomiast 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.
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. LaTeX zapewnia mechanizmy przełączania się między nimi
i dla użytkownika jest to prawie
niewidoczne. Ponadto istnieją jeszcze 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 także
w postaci fontów PostScriptowych (skalowalnych).
Jeżeli
Pakiety LaTeX-a są udostępniane w postaci plików
z rozszerzeniem
W plikach z rozszerzeniami
Wykorzystanie PostScriptu otwiera dużo nowych możliwości, niemożliwych do
realizacji w tradycyjnym systemie TeX/LaTeX.
Najważniejsze to: dołączania praktycznie dowolnej
grafiki (wektorowej, bitmapowej, kolorowej etc.), wykorzystanie
kolorów w dokumencie czy możliwość 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
Podobna technika jest stosowana do wstawienia odsyłaczy.
Informacje niezbędne do ich prawidłowego zdefiniowania są
zapisywane do pliku
z rozszerzeniem
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
Wszystkie pliki wykonywalne 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.
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 tworzenia fontów czy Metapost do
tworzenia grafiki wektorowej, tworzy system do elektronicznego
składu komputerowego.
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.
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.
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
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ń. initex
jest wykorzystywany tylko do generowania
formatu (robimy to zwykle tylko raz). 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. 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 Plain, LaTeX i ConTeXt dla języka
polskiego
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. Dokument źródłowy
może być także utworzony automatycznie, np. przez odpowiedni skrypt
perl
-owy. 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.
Dla każdego wykorzystywanego w dokumencie
fontu TeX pobiera informacje o wymiarach znaków
z odpowiedniego pliku .tfm
.
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 znajdziesz
w artykule Fontowe ABC
Program mf
Do generowania fontów wykorzystywany jest system Metafont,
także autorstwa D.E. Knutha.
Jest to program, który tworzy pliki metryczne 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.
.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
.
.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 we współczesnych dystrybucjach TeX-a
automatycznie wywoływany jest program gftopk
konwersji
do 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
Fonty CM i EC
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.
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ąca skład
w wielu alfabetach, nawet tak egzotycznych jak gruziński czy arabski.
tex
nie jest w stanie odnaleźć pliku
.tfm
, wiele współczesnych dystrybucji (np. teTeX) pozwala
wygenerować go ,,w locie''. Taka operacja oczywiście się uda, jeżeli
odnalezione zostaną pliki źródłowe fontu (pliki z rozszerzeniem
.mf
).
Pliki .cls .clo, .sty i .fd LaTeX-a
Oprócz informacji z plików .tfm
, LaTeX czyta także pliki
.cls
i .clo
(klasy) oraz .sty
(pakiety). Klasa to plik(i) zawierająca specyficzne instrukcje służące do
sformatowania dokumentu określonego typu, np. książki, artykułu czy listy.
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. .dtx
.
Plik taki zawiera definicje poleceń dla LaTeX-a oraz dokumentację pakietu
(opis techniczny i podręcznik użytkownika). Aby wydrukować tę
dokumentację należy skompilować plik .dtx
(polecenie
latex plik.dtx
).
Instalacja pakietu dostarczonego w pliku (lub plikach)
.dtx
polega natomiast na skompilowaniu pliku o nazwie
identycznej jak plik .dtx
ale z rozszerzeniem .ins
(zawsze jest tak, że
plikowi .dtx
towarzyszy odpowiadający
mu plik .ins
). W rezultacie
otrzymujemy wiele plików (o rozszerzeniach .sty
,
.def
i .fd
lub innych
rzadziej spotykanych). Wszystkie takie pliki umieszczamy
w katalogu w którym LaTeX szuka plików
cls
, clo
i sty
.
Pliki .dtx
i .ins
nie są wykorzystywane
w codziennej pracy. Po zainstalowaniu pakietu
można je usunąć z systemu.
.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ć.
Aby tak się stało font musi być ,,zarejestrowany'' w systemie.
Rejestracja ta odbywa się przez zainstalowanie odpowiedniego
pliku .fd
.
Plik .dvi
Wynikiem pracy TeX-a/LaTeX-a jest wiele 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 unix-ie takim sterownikiem ekranowym jest np.
program xdvi
. Dopiero sterownik korzysta z plików
zawierających definicje kształtów znaków (np. z plików PK). Plik .log
Plik .log
zawiera komunikaty i ostrzeżenia LaTeX-a
wygenerowane podczas kompilacji dokumentu.
Plik .ps
Plik .dvi
można zamienić na plik w formacie PostScript.
Służy do tego program dvips
.
Plik PostScriptowy możemy wyświetlić
lub wydrukować wykorzystując interpreter tego języka
Ghostscript
.
Inne pliki tworzone przez LaTeX-a
Poniżej wymienione 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
.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.
Sposobem tworzenia 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 raczej dla osób piszących 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 TDS
TDS (ang. TeX Directory Structure) oznacza standardową
strukturę katalogów systemu TeX.
Na szczęście współczesne instalacje TeX-a są w zdecydowanej
większości zgodne z TDS. Jeżeli rozpoczynasz pracę z TeX-em,
który nie jest zgodny z TDS to przypuszczalnie otrzymałeś
w spadku podejrzaną staroć od jakiegoś niereformowalnego TeX-owca.
Lepiej poszukaj czegoś nowszego.
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/
, zaś 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żesz mieć w pracy na maszynie np. Sun z systemem Solaris
i w domu na PC z Windows98. Poniżej wymieniono najważniejsze
podkatalogi drzewa texmf/
:
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 odostępnionym do zapisu dla wszystkich użytkowników
i kontrolowane przez demona texmf/web2c/
texmf/tex/
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/
source/
to miejsce w którym znajdują się
źródłowe pliki MetaFonta; type1/
zawiera
fonty PostScriptowe (pliki .pfa
lub .pfb
);
tfm/
pliki .tfm
.
Mogą też znajdować się tam inne katalogi,
np. truetype/
jeżeli twoja instalacja
wykorzystuje fonty w formacie TrueType.
texmf/dvips/
cron
(po upływie pewnego czasu
są automatycznie usuwane). W instalacjach jednostanowiskowych pliki PK
mogą być deponowane w katalogu texmf/fonts/pk/
.
Jak zacząć pracę z TeX-em
[Fragment ten jest ciągle w przygotowaniu. Na razie zawiera tylko
pobieżne omówienie implementacji TeX-a i generowanie formatów do
składu w języku polskim.]
Implementacje TeX-a
Generowanie formatów Plain, LaTeX i ConTeXt dla języka
polskiego
MeX
Podręczniki dla początkujących
TP
i StaW
16.03.2000