Ka�dy z nas mo�e zosta� szefem pana Kazia. Wystarczy nauczy� si� sposobu przygotowania mu na pi�mie polece� dotycz�cych sposobu sk�adania.
Nie b�dziemy jednak zawraca� panu Kaziowi g�owy i przygotowywa� polece� dla niego w jego obecno�ci. Przygotujemy je zawczasu i udamy si� do niego z pro�b� o realizacj�.
Tu w�a�nie zaczyna si� pierwszy etap pracy.
Polecenia, kt�re przygotujemy, to b�d� informacje o tym co i w jaki spos�b nale�y z�o�y�. Do przygotowania zbioru polece� u�yjemy zwyk�ego edytora, kt�ry jest zwykle zainstalowany na ka�dym komputerze. Powinien to by� tzw. edytor typu ASCII.
Napiszmy przyk�adowy plik tekstowy, zawieraj�cy nast�puj�ce dwie linijki:
Ala ma psa. \end
Oczywi�cie w momencie, kiedy piszemy ten tekst, TEX -- pan Kazio -- go nie widzi.
Po zako�czeniu pisania (edycji), tworzymy w pami�ci dyskowej komputera plik z tekstem. Nazwijmy przygotowany przez nas plik ala.mex. Zwyczajowo pliki zawieraj�ce dane dla TEX-a maj� rozszerzenie .tex, a pliki z danymi dla polskiej wersji TEX-a maj� rozszerzenie .mex.
Wkr�tce wyja�ni si�, co oznaczaj� polecenia napisane w tym tek�cie i jak zrozumie je pan Kazio. Na razie uwierzmy, �e b�d� one dla niego zrozumia�e i prze�led�my dalsz� drog� wiod�c� ku ostatecznemu efektowi.
Teraz ju� nadesz�a pora, �eby poprosi� pana Kazia o wykonanie sk�adu na podstawie naszych polece�.
Na ka�dym komputerze, na kt�rym zainstalowany jest system TEX, istnieje specyficzny spos�b uruchamiania go. Nie b�dziemy tu wyja�nia� rozmaitych sposob�w uruchamiania TEX-a.
TEX, czyli pan Kazio przyst�puje do pracy i realizuje polecenia. Po pewnym czasie daje zna�, �e wszystko gotowe.
Wynik jego pracy zapisany jest na dysku w postaci pliku ala.dvi. Oznaczenie dvi jest skr�tem od angielskich s��w ,,device independent'' -- niezale�ny od urz�dzenia. Pan Kazio podj�� wszystkie decyzje dotycz�ce po�o�enia znak�w na stronach, ale nie wie jeszcze na jakim urz�dzeniu zewn�trznym zdecydujemy si� wydrukowa� lub wy�wietli� wynik jego pracy. Z tego powodu przygotowuje wynik swojej pracy w postaci niezale�nej od urz�dzenia.
Dodatkowo, jako niezwykle skrupulatny pracownik, pan Kazio umieszcza na dysku jeszcze jeden plik, o nazwie ala.log, zawieraj�cy zapis tego, co podczas jego pracy wy�wietla� ekran komputera.
Na tym ko�czy si� rola TEX-a -- pana Kazia. Przyni�s� nam zmontowane, gotowe strony tekstu (w postaci pliku dvi) i dalej musimy jako� sobie radzi�. Jak ju� wspomnieli�my TEX nigdy nie dzia�a samotnie. Pan Kazio by�by bezu�yteczny w firmie, gdyby nie by�o w niej innych pracownik�w. W istocie u�yteczno�� TEX-a w ogromnym stopniu zale�y od jego powi�za� z innymi programami.
Jeden z mo�liwych sposob�w wsp�pracy, to wykorzystanie, po zako�czeniu pracy TEX-a, jednego z wielu program�w, kt�re umo�liwiaj� zobaczenie tego, co TEX przygotowa�. Takie programy, zwane sterownikami, s�u�� do wy�wietlania, drukowania, na�wietlania lub jeszcze innych mo�liwych sposob�w uwidocznienia wyniku pracy TEX-a.
U�ycie TEX-a, a nast�pnie sterownika jest najbardziej popularnym, cho� nie jedynym sposobem uzyskania wyniku sk�adu.
W przypadku przetwarzania pliku polece� ala.mex, je�li na naszym komputerze zainstalowany jest sterownik ekranowy, to mo�emy obejrze� wynik sk�adu na ekranie.
Jak mamy post�powa� dalej, je�li nie b�dziemy usatysfakcjonowani tym co zobaczymy? Oczywi�cie jedynym sposobem poprawienia czegokolwiek w ko�cowym efekcie jest przygotowanie zmienionej wersji polece� dla naszego pana Kazia i powt�rzenie ca�ego cyklu przetwarzania.
Ka�dy chyba zdaje sobie spraw�, jak wiele zale�y od organizacji pracy w firmie: od zatrudnienia w�a�ciwych pracownik�w i utworzenia odpowiednich mechanizm�w ich wsp�pracy. Podobnie jest z cyklem przetwarzania, kt�rego cz�ci� jest zecer, pan Kazio. Powi�zanie jego dzia�alno�ci z odpowiednimi programami mo�e da� czasem zdumiewaj�ce efekty. Ale to jest ju� temat na osobn� pogadank�.
Przyjrzyjmy si� obecnie uwa�niej plikowi przygotowanemu w poprzednim rozdziale. Z punktu widzenia TEX-a/pana Kazia plik ten sk�ada si� jedynie z komend, czyli polece�. Przypomnijmy, �e tre�ci� pliku by�o:
Ala ma psa. \endPlik ten zawiera 13 komend.
Pierwsze trzy z nich, to trzy pierwsze litery.
Ka�da z nich to polecenie:
,,Umie�� w sk�adzie literk� <<A>>'',
,,Umie�� w sk�adzie literk� <<l>>'',
,,Umie�� w sk�adzie literk� <<a>>''.
Nast�pna komenda, to odst�p. Oznacza ona polecenie
,,zr�b zwyk�y odst�p mi�dzywyrazowy''.
Podobnie rzecz si� ma z kolejnymi dwoma literami, odst�pem i dalszymi
czterema literami. R�wnie� kropka, to po prostu polecenie
,,Umie�� w sk�adzie kropk�''.
Dwunaste polecenie w tym pliku jest najmniej widoczne. Zmiana wiersza (przej�cie do nowej linii) nast�puj�ca po kropce traktowana jest przez TEX-a jak odst�p i w zwi�zku z tym oznacza to samo, co zwyk�y odst�p. (W sk�adzie ten odst�p nie b�dzie widoczny, poniewa� po nim nie nast�puje ju� �aden tekst.)
Ostatnie, trzynaste polecenie znacznie r�ni si� od pozosta�ych. Jest ono zapisane nie w postaci pojedynczego znaku, ale w postaci trzech liter poprzedzonych znakiem \ (wty�ciach, po angielsku backslash). Wi�kszo�� komend systemu TEX, kt�re oznaczaj� co� innego ni� ,,umie�� w sk�adzie...'' zapisuje si� w�a�nie w postaci znaku w-ty�-ciach i nast�puj�cego po nim ci�gu liter. Istnieje jeszcze trzecia kategoria komend, kt�r� wkr�tce poznamy, zapisywana w postaci znaku w-ty�-ciach i nast�puj�cego po nim pojedynczego znaku nie b�d�cego liter�.
Komenda \end oznacza ,,zako�cz prac�''. Jest to jedyne polecenie, kt�re musi znale�� si� w ka�dym pliku danych (zestawie polece�) dla TEX-a.
Uwa�ny czytelnik mo�e zada� pytanie: ,,Sk�d pan Kazio wiedzia� jakimi wielko�ciami liter ma wykona� sk�ad, jaki ma by� kr�j pisma itp.?'' To bardzo wa�ne pytanie. Ot� w bardzo wielu sprawach szef um�wi� si� z panem Kaziem: ,,je�li nie napisz� ci tego-i-tego, to post�puj tak-i-tak''. W szczeg�lno�ci s� um�wieni: ,,je�li nie napisz� ci jakim krojem pisma masz wykonywa� sk�ad, to ma to by� Computer Modern Roman''.
W istocie liczba tego rodzaju ,,um�w'' z panem Kaziem jest
ogromna i si�ga kilkuset. Pozwala to na stosowanie stosunkowo zwartej
i skr�towej notacji. Dzi�ki temu, �e TEX jest systemem programowalnym,
mo�emy zawiera� z panem Kaziem w�asne umowy, specyficzne dla konkretnego
zastosowania, do kt�rego go wykorzystujemy.
System TEX montuje stron� z podobnych element�w, tylko metalowe
czcionki zosta�y zast�pione ich obrazem komputerowym i nazywaj�
si� w TEX-u pude�kami, a odst�py nazywaj� si� klejem. Mo�na
sobie wyobrazi�, �e ka�da strona montowana jest z pude�ek, zawieraj�cych
litery i inne znaki, po��czonych ze sob� r�nymi ilo�ciami elastycznego
kleju, i dzi�ki niemu utrzymywanych w odpowiednich odleg�o�ciach od siebie.
Opracowanie przez autora systemu TEX matemetycznego modelu
sk�adu drukarskiego jest prawdopodobnie jednym z jego najwa�niejszych
osi�gni�� zwi�zanych ze stworzeniem TEX-a. Podstawowym elementem
tego modelu jest stwierdzenie, �e budowane przez system strony
s� pude�kami o hierarchicznej budowie. Ka�dy pojedynczy znak jest pude�kiem.
Z takich znak�w mo�na tworzy� pude�ka bardziej skomplikowane.
Na ka�dym etapie tworzenia pude�ek dowolonie skomplikowane pude�ko
mo�e by� u�yte w takiej samej roli jak pojedynczy znak. Pozwala
to wyrazi� bardzo z�o�one konstrukcje za pomoc� prostych �rodk�w.
Poni�ej opisujemy podstawowe narz�dzia, jakich dostarcza system TEX,
do konstruowania pude�ek.
Podstawowe dwa nastroje, w jakich bywa TEX -- pan Kazio --
to nastr�j pionowy i poziomy. Zale�nie od tego nastroju ma
zwyczaj umieszcza� napotykane przez siebie (w tek�cie z poleceniami)
pude�ka albo pionowo -- jedno pod drugim, albo poziomo -- jedno
obok drugiego.
Na pocz�tku pracy, przed przeczytaniem pierwszego polecenia
z pliku wej�ciowego, TEX znajduje si� w nastroju pionowym.
Pewne wydarzenia mog� jednak wp�yn�� na zmian� jego nastroju
na poziomy.
TEX jest w nastroju poziomym w dw�ch rodzajach sytuacji:
podczas sk�adania akapitu i podczas tworzenia pude�ka poziomego.
Jest to podstawowy nastr�j, w kt�rym nast�puje sk�adanie tekst�w.
Nastr�j pionowy s�u�y do montowania w strony element�w
utworzonych w nastroju poziomym.
Po zako�czeniu sk�adania akapitu i po zako�czeniu tworzenia pude�ka
poziomego TEX wraca do nastroju, w jakim znajdowa� si� poprzednio.
Podczas sk�adania akapitu TEX tworzy d�ug� poziom� list�,
z�o�on� z pude�ek i poziomego kleju. Kolejno napotkane litery
traktuje jako pude�ka, a odst�py mi�dzy literami zamienia na
klej i oddziela nim pude�ka
W przyk�adzie cytowanym w poprzednich rozdzia�ach
akapit zawieraj�cy napis ,,Ala ma psa.'' zostanie przez
TEX-a zamieniony na nast�puj�c� konstrukcj� z�o�on� z pude�ek i kleju:
Po zako�czeniu czytania akapitu (TEX w tym wypadku rozpozna koniec akapitu
po komendzie \end) system dokona po�amania akapitu na linijki o szeroko�ci
takiej jak zadana szeroko�� kolumny tekstu, zaczynaj�c pierwsz� z nich
wci�ciem akapitowym odpowiedniej wielko�ci oraz ko�cz�c ostatni� z nich
odpowiedni� ilo�ci� poziomego kleju, wype�niaj�c� praw� stron� ostatniego
pude�ka.
Ka�da linijka, kt�ra powstaje w wyniku po�amania akapitu, jest pude�kiem
o szeroko�ci takiej jak szeroko�� kolumny tekstu.
W naszym przyk�adzie TEX utworzy akapit jednolinijkowy, a zatem
powstanie linijka zaczynaj�ca si� od wci�cia akapitowego i ko�cz�ca si�
klejem dope�niaj�cym j� do prawej strony.
Nie zachowuj�c proporcji wymiar�w, bo litery rysujemy tu w powiekszeniu
mo�na by narysowa� t� linijk� jako:
Aby utworzy� w TEX-u poziome pude�ko o okre�lonej zawarto�ci
nale�y napisa� komend� \hbox i po niej w nawiasach klamrowych
napisa� zawarto�� tego pude�ka.
Na przyk�ad, je�li chcemy utworzy� pude�ko zawieraj�ce napis:
,,Od rana jestem dzi� w poziomym nastroju.'',
to musimy w pliku polece� dla TEX-a napisa�:
Pude�ko takie mo�e by� u�yte jako element konstrukcujny innych pude�ek.
Na przyk�ad, je�li przed przeczytaniem tego pude�ka TEX znajdowa� si�
w nastroju pionowym, to potraktuje to pude�ko jako element konstrukcyjny
strony i umie�ci w obr�bie strony pod innymi pude�kami. Je�li
znajdowa� si� w nastroju poziomym i by� w trakcie sk�adania akapitu,
to potraktuje to pude�ko tak jak inne znaki znajduj�ce si� w akapicie
i umie�ci je na li�cie poziomej przeznaczonej do �amania na linijki.
Nale�y zwr�ci� uwag� na r�nic� pomi�dzy umieszczeniem w akapicie
zdania ,,Od rana jestem dzi� w poziomym nastroju.'' od umieszczenia
w akapicie pude�ka poziomego zawieraj�cego takie zdanie.
W pierwszym przypadku w r�nych miejscach zdania TEX ma prawo
dokona� �amania listy poziomej na linijki, w tym r�wnie� z uwzgl�dnieniem
przenoszenia wyraz�w.
W drugim przypadku ca�e pude�ko traktowane jest jako jeden znak i �adne
�amanie wewn�trz niego nie mo�e mie� miejsca. Mo�e to by� w szczeg�lno�ci
u�yteczne do wprowadzenia lokalnego zakazu �amania na linijki.
5.2. Pude�ka i kleje
System TEX sk�adaj�c tekst (wykonuj�c polecenia) pracuje
podobnie do tego jak pracowali dawniej zecerzy. Je�li zecer
otrzymywa� polecenie (np. czyta� je z przygotowanego maszynopisu):
,,umie�� w sk�adzie liter� <>'', to si�ga� r�k� do tzw. kaszty,
czyli skrzynki, gdzie znajdowa�y si� metalowe czcionki, wyjmowa� czcionk�
z literk� ,,A'' i ustawia� w odpowiednim miejscu komponowanej strony.
Podobnie, gdy trzeba by�o zrobi� odst�p, umieszcza� w montowanej stronie
odpowiedni kawa�ek metalu, kt�ry s�u�y� do odsuniecia nast�pnych czcionek.
5.3. Nastroje pana Kazia
TEX zna dwa podstawowe sposoby montowania wi�kszych pude�ek
z mniejszych pude�ek i kleju. Stosuje jeden z tych sposob�w,
zale�nie od nastroju (lub inaczej m�wi�c ,,trybu'', w jakim si�
w danej chwili znajduje). Angielskie s�owo mode oznaczaj�ce
tryb (rodzaj) wykonywanej pracy jest podobne do s�owa mood
oznaczaj�cego nastr�j.
Wydaje si�, �e w�a�ciwe jest wyobra�anie sobie TEX-a
(pana Kazia z poprzednich rozdzia��w) jako istoty poddaj�cej si�
nastrojom.
5.4. Sk�adanie akapitu
Pocz�tek akapitu TEX rozpoznaje po pewnych typach element�w,
kt�re stanowi� zwykle cz�� akapitu.
W szczeg�lno�ci, je�li b�d�c w trybie pionowym
TEX napotka w pliku pojedyncz� liter�, to stwierdzi, �e
chcemy rozpocz�� sk�adanie akapitu i zmieni nastr�j na poziomy.
Ala ma psa.
(jest to dziewi�� pude�ek i dwa kawa�ki kleju mi�dzy nimi).
Ala ma psa.
\end
5.4. Sk�adanie pude�ka poziomego
Drugim mo�liwym sposobem umieszczania poziomo obok siebie
pude�ek jest jawne utworzenie tzw. pude�ka poziomego.
Podstawow� komend� s�u��c� w TEX-u do tego celu jest komenda
\hbox (h, to skr�t od angielskiego horizontal
-- poziomy, box, to po angielsku pude�ko).
Od rana jestem dzi� w poziomym nastroju.