U�ywanie TeX-a w systemie UNIX (AUCTeX)

Adam Dawidziuk

TeX, jak wiadomo, nie jest zaopatrzony w standardowy interfejs u�ytkownika, co daje du�� swobod� wyboru metod przygotowywania dokument�w �r�d�owych. O ile format plik�w wej�ciowych i spos�b ich przetwarzania przez TeX-a pozostaje z za�o�enia niezmienny, to narz�dzia wspomagaj�ce wprowadzanie tre�ci dokument�w we w�a�ciwym formacie s� nieustannie rozwijane. W artykule jest opisany jeden z mo�liwych sposob�w u�ywania TeX-a w systemie UNIX, ze szczeg�lnym uwzgl�dnieniem pakietu AUC TeX.

Przetwarzanie danych

Brak narzuconego i okienkowego interfejsu u�ytkownika powoduje, �e TeX bywa postrzegany jako program przestarza�y i trudny. Przeci�tny u�ytkownik komputera zwykle nie jest w stanie zrozumie� sposobu dzia�ania TeX-a, a jeszcze trudniej dostrzec mu korzy�ci, jakie mo�na osi�gn�� przygotowuj�c dokumenty w ten w�a�nie spos�b. Pierwsz� i najpowa�niejsz� barier� poj�ciow� jest fakt, �e TeX nie jest systemem kompletnym, ale wymaga korzystania z wielu dodatkowych narz�dzi wspomagaj�cych prac�. Wprawdzie ma�o kto wprowadza tre�� dokumentu z klawiatury w chwili, gdy TeX poka�e na ekranie dwie gwiazdki, ale na pomys� stworzenia sobie wygodnego i efektywnego �rodowiska pracy te� niestety wpada nieliczne grono u�ytkownik�w.

Dzia�anie TeX-a mo�na sprowadzi� do przetwarzania plik�w. TeX czyta dokument �r�d�owy, zwykle z pliku o nazwie z przyrostkiem .tex, i tworzy obraz kolejnych stron dokumentu w pliku o nazwie ko�cz�cej si� napisem .dvi. Zadaniem u�ytkownika jest przygotowanie plik�w wej�ciowych i uruchomienie ci�gu przetworze�, kt�re doprowadz� do po��danego wyniku. Zar�wno przygotowanie danych, jak i ich przetwarzanie mo�na zorganizowa� w zasadzie w dowolny spos�b. Istniej� dwie istotnie r�ne metody tworzenia plik�w z danymi wej�ciowymi: generowanie i wpisywanie.

Generowanie danych wej�ciowych do TeX-a to zagadnienie bardzo rozleg�e i maj�ce wiele praktycznych zastosowa�. Sam proces przygotowania danych, ich obr�bka i metody generowania mog� by� bardzo r�ne. Wszystko zale�y od celu przetwarzania i postawionych wymaga�. TeX jest doskona�ym narz�dziem do formatowania wydruk�w z baz danych (np. s�owniki, sprawozdania) pozwalaj�cym na uzyskanie wysokiej jako�ci typograficznej przy ca�kowitej automatyzacji procesu sk�adania tekstu. Cz�sto u�ytkownik (autor tekstu) nie ma bezpo�redniego kontaktu z TeX-em i nie musi zna� specyficznego dla TeX-a systemu oznacze� tekstu. Jednak jest to temat znacznie wykraczaj�cy poza ramy tego artyku�u.

Wi�kszo�� u�ytkownik�w zadowala si� zwyczajnym wpisywaniem tekstu. W takim wypadku najwa�niejszy jest ergonomiczny i dobrze opanowany edytor tekst�w. Zwykle ka�dy ma sw�j ulubiony edytor, w kt�rym wszystko mu wychodzi naj�atwiej. I prawdopodobnie to b�dzie ten edytor, kt�rego nale�y u�y� tworz�c pliki �r�d�owe do przetwarzania TeX-em. Je�li jednak zamierzamy pisa� du�o, to nie powinni�my eksperymentowa� z edytorami zbyt prostymi. Czas po�wi�cony na poznanie inteligentnego, konfigurowalnego edytora zwr�ci si� ju� po kilku dniach pisania. Z edytor�w dost�pnych w systemie UNIX doskona�y jest vim. Mo�na go ,,nauczy�'' wielu po�ytecznych skr�t�w, a jego ostatnie wersje potrafi� rozpoznawa� sk�adni� i zwi�ksza� czytelno�� plik�w �r�d�owych przez stosowanie kolor�w. Lepszy jest tylko emacs (tak twierdz� u�ytkownicy Emacsa). Niestety, zar�wno vim jak i Emacs u niekt�rych wywo�uj� reakcje alergiczne, a na to rady nie ma.

Zwolennicy okienek MS nie powinni czu� si� pokrzywdzeni (a przynajmniej nie z powodu braku edytora). Z rzeczy dobrych godny polecenia jest WinEdit, kt�ry mo�e bardzo du�o i sk�adni� pliku TeX-owego zna na tyle dobrze, �e wyr�nia kolorami odpowiednie fragmenty. Jest �atwo konfigurowalny w zakresie wystarczaj�cym do efektywnej pracy. Mi�dzy innymi umo�liwia powi�zanie z polami menu dowolnych skrypt�w np. przetwarzaj�cych pliki �r�d�owe. Daje si� u�ywa� bez zbyt cz�stego si�gania do myszy. Jedn� z jego g��wnych zalet jest sprawdzanie na bie��co sk�adni wprowadzanych s��w -- te kt�rych brak w s�owniku s� wyr�niane. Do podstawowych wad nale�y konieczno�� konfigurowania w�a�ciwie wszystkiego od pocz�tku oraz to, �e, w przeciwie�stwie do vima i Emacsa nie jest to program bezp�atny. Cena jest jednak umiarkowana.

Przewiduj�c trwa�y zwi�zek z TeX-em warto usprawni� przetwarzanie pliku �r�d�owego do postaci wynikowej. Nie ma wielkiego problemu, je�li przetwarzaniu podlega jeden plik, a formatem wyj�ciowym jest dvi. Ju� jednak konwersja pliku dvi do PostScriptu oznacza konieczno�� uruchomienia dodatkowego programu. Je�li jeszcze do�o�ymy do tego tworzone podczas pisania rysunki (w szczeg�lno�ci rysunki generowane, np. MetaPost-em) to liczba program�w, kt�re trzeba uruchomi� w ï¿½ci�le okre�lonym porz�dku, zniech�ca do robienia tego r�cznie. �atwo si� pomyli�. Dobrym pomys�em jest napisanie skryptu, kt�ry wykonuje wszystkie operacje. Przetwarzanie za ka�dym razem wszystkich plik�w �r�d�owych nie zawsze jest konieczne, a znacznie wyd�u�a czas oczekiwania na wynik. W takiej sytuacji najwygodniej u�y� programu make.

Do�wiadczony u�ytkownik TeX-a zwykle ma w�asny zestaw program�w, kt�re czyni� �ycie �atwiejszym. Cz�sto w sk�ad tego zestawu wchodzi dodatkowo jaki� edytor strumieniowy np. sed, czy cz�ciej awk lub perl (najbardziej wszechstronny). W przypadku umieszczania w dokumentach ilustracji lub zdj�� nale�y uwzgl�dni� specjalizowane programy do przetwarzania obrazk�w itd. Podstawow� zalet� TeX jest �atwo�� zintegrowania go z dowolnym u�ywanym systemem.

Ka�dy mo�e wi�c u�ywa� TeX dok�adnie tak, jak lubi i tak jak mu wygodnie. Trudno jest w jednym kr�tkim tek�cie om�wi� wszystkie typowe przypadki. Ogranicz� si� do przyk�adu szczeg�lnego -- systemu UNIX. Przyczyn tego wyboru m�g�bym wymieni� wiele. Przede wszystkim ca�y UNIX zbudowany jest z program�w wykonuj�cych dobrze okre�lone funkcje, takich ,,klock�w'', z kt�rych mo�na zbudowa� dowolnie skomplikowane systemy przetwarzania informacji. Nie posiadaj�cy interfejsu u�ytkownika, przetwarzaj�cy pliki w inne pliki i konfigurowalny TeX �atwo daje si� dopasowa� do potrzeb u�ytkownika UNIXa. Oczywi�cie istnieje mn�stwo r�nych i dobrych sposob�w pracy z TeX-em. Zar�wno podany przyk�ad edytora (Emacs z AUC TeX-em), jak i techniki przetwarzania dokument�w nosz� wyra�ne pi�tno moich osobistych preferencji.

AUC TeX

AUC TeX to dost�pne w edytorze emacs zintegrowane �rodowisko do tworzenia i przetwarzania dokument�w TeX-owych i LaTeX-owych. Mo�liwo�ci AUC TeX-a s� ogromne, na szcz�cie nie trzeba wiedzie� wszystkiego, aby z niego korzysta�. AUC TeX-a mo�na oswaja� ,,krok po kroku'', podobnie jak i samego Emacsa.

Emacs

Edytor emacs ma d�ug� histori� w systemie UNIX. W du�ej cz�ci zosta� napisany w j�zyku Lisp (dok�adniej w dialekcie Emacs Lisp). Jest to j�zyk funkcyjny s�u��cy przede wszystkim do porozumiewania si� z Emacsem. Lisp bywa� ch�tnie stosowany w tworzeniu tzw. ,,system�w sztucznej inteligencji''. Nie dziwi wi�c naprawd� nieprzeci�tna inteligencja edytora Emacs je�li u�wiadomimy sobie, �e jest to najwi�kszy z popularnych program�w napisanych w Lispie. A mo�liwo�ci i umiej�tno�ci Emacsa s� chyba niezg��bione (strzy�e, �piewa, ta�czy, gotuje, krawaty wi��e...).

Edytor ten bywa niezbyt lubiany przez pocz�tkuj�cych u�ytkownik�w ze wzgl�du na spos�b wydawania polece� i niezbyt zrozumia�� terminologi� stosowan� w dokumentacji i komunikatach. Koncepcja porozumiewania si� z edytorem jest rzeczywi�cie mocno egzotyczna, ale wbrew pozorom ma g��boki sens. Kluczem do sukcesu jest znalezienie klawisza Meta na klawiaturze. Wci�ni�cie tego klawisza ze znakiem x (oznaczane jako Meta-x lub M-x) rozpoczyna wprowadzanie polece�. W klawiaturze komputera PC zwykle klawiszem Meta jest Alt. Je�li jednak Alt zosta� przedefiniowany (np. w celu wprowadzania polskich znak�w) to M-x mo�na wprowadzi� sekwencyjnie wciskaj�c najpierw klawisz Esc, a potem x. Tego typu problemy nie istniej� z klawiszem Ctrl. Podstawowymi chwytami s� Ctrl-xCtrl-c, opisywane cz�sto jako C-xC-c.

Mocn� stron� Emacsa jest dokumentacja (C-h). Funkcje przypisane klawiszom zmieniaj� si� w zale�no�ci od trybu pracy (mode), co zawsze mo�na sprawdzi� wpisuj�c C-h m. Wiedz�c, �e Emacs mo�e otwiera� wiele plik�w jednocze�nie, ale ka�dy w innym buforze (buffer), �e w ï¿½rodowisku okienkowym mo�e otwiera� wiele okien zwanych ramkami (frames) i ï¿½e ka�da ramka mo�e by� podzielona na wiele ,,okien'' (window) mo�na bez problemu zrozumie� j�zyk dokumentacji.

Istnieje wiele odmian Emacsa. Na potrzeby tego artyku�u za�o�ymy sobie, �e dysponujemy zainstalowan�, wsp�czesn� wersj� XEmacsa. Za�o�enie to jest uzasadnione, poniewa� norm� s� ju� komputery, na kt�rych dzia�aj�ce okienka graficzne nie powoduj� zatrzymania systemu. A XEmacs dobrze wygl�da w okienkach. Poza tym w XEmacsie AUC TeX jest domy�lnie zainstalowany, co pozwala skr�ci� ten tekst o rozdzia� po�wi�cony instalacji. Dodatkowo nie b�d� rozwija� problemu konfiguracji, kt�r� w XEmacsie mo�na wykona� za pomoc� myszy. Wszystkie ustawienia AUC TeX-a wykonuje si� wybieraj�c mysz� z menu Options Customize Emacs Wp Tex AUC Tex, a potem ju� wed�ug uznania. W to samo miejsce mo�na trafi� wciskaj�c M-x customize, tyle �e po drodze jest wi�cej obja�nie� i ï¿½atwiej si� zagubi�.

Je�li kto� nie dysponuje XEmacsem lub nie lubi myszy, to b�dzie musia� wpisywa� odpowiednie zakl�cia do pliku .emacs, kt�ry znajduje si� w katalogu domowym u�ytkownika. Pomocne mo�e by� odszukanie pliku tex.eltex-site.el, kt�re le�� gdzie� z innymi plikami Emacsa (ale w r�nych katalogach -- przyda si� program find). Mo�na w nich podejrze�, jak s� zadawane warto�ci pocz�tkowe list i zmiennych i je zmodyfikowa�. Nie nale�y przy tym zmienia� pliku tex.el (ani jego skompilowanej wersji tex.elc) lecz kopiowa� co trzeba do pliku .emacs. Je�li zmiana ma dotyczy� wszystkich u�ytkownik�w nale�y odpowiedni fragment pliku tex.el skopiowa� do pliku tex-site.el i tam pozamienia� wszystko to, co wymaga zmiany.

I jeszcze jedna uwaga dla pocz�tkuj�cych: w Emacsie mo�na zapisa� plik z bufora na dysk wciskaj�c C-x C-s, a prac� z Emacsem zako�czy� sekwencj� C-x C-c. Emacs nie jest jednak ma�ym programem, wi�c szanuj�c sw�j czas lepiej nie otwiera� go i nie zamyka� bez wyra�nej potrzeby, zw�aszcza, �e raz otwarty mocno nie przeszkadza.

Do efektywnego wykorzystania Emacsa na potrzeby j�zyka polskiego jest potrzebna polska klawiatura (ka�dy robi to jak lubi, jedna z klasycznych metod w systemie XWindow sprowadza si� do wykorzystania xmodmap) oraz polski s�ownik do programu ispell. Zagadnienia te s� dok�adnie om�wione w tekstach po�wi�conych polskim ,,ogonkom''.

Uruchomienie AUC TeX-a

Po uruchomieniu edytora Emacs utworzenie nowego pliku jest mo�liwe po wci�ni�ciu C-x C-f i podaniu nazwy. Podaj�c nazw� pliku z przyrostkiem .tex zmusimy edytor do wej�cia w tryb LaTeX-mode. Informacja o tym powinna pojawi� si� w wierszu trybu pracy (Mode Line) w dolnej cz�ci okna jako napis LaTeX. Mo�na te� wymusi� wej�cie w tryb LaTeX wywo�uj�c polecenie LaTeX-mode (M-x LaTeX-mode). Do rozwijania nazw mo�na u�y� znaku klawisza tabulacji (Tab).

Je�li powy�sze dzia�ania nie prowadz� do uruchomienia AUC TeX-a, to albo nie jest on zainstalowany, albo w pliku .emacs brakuje wiersza

(require 'tex-site) 

Brak zainstalowanego AUC TeX-a mo�e prowadzi� do pomy�ek poniewa� Emacs wchodzi w takiej sytuacji w du�o prostszy tryb wspomagania LaTeX-a, a wszystko dzia�a inaczej (w szczeg�lno�ci ,,klawiszologia'' jest inna).

S�owa kluczowe LaTeX-a

Przy tworzeniu pliku LaTeX-owego pewne oznaczenia tekstu pojawiaj� si� cz�ciej ni� inne. Na szczeg�ln� uwag� zas�uguj� mechanizmy AUC TeX-a u�atwiaj�ce wpisywanie tych w�a�nie cz�sto wyst�puj�cych s��w kluczowych. Najcz�ciej wprowadza si� do tekstu oznaczenia �rodowisk i ich nazwy, ,,zwyk�e'' polecenia TeX-owe, �r�dtytu�y oraz polecenia zmiany kroju pisma.

Najwa�niejsz� konstrukcj� LaTeX-a s� �rodowiska, czyli pary \begin{*} \end{*}. Do wprowadzania �rodowisk s�u�y polecenie LaTeX-enviroment domy�lnie przypisane do sekwencji C-c C-e. Po wydaniu tego polecenia AUC TeX pyta o nazw� �rodowiska i ewentualne dodatkowe dane. Przy pomocy klawisza Tab lub spacji mo�na rozwija� cz�ciowo wpisane nazwy. AUC TeX zna mn�stwo standardowych �rodowisk, poza tym potrafi uczy� si� nowych analizuj�c w��czane pakiety i nag��wek pliku.

Otwarte �rodowisko mo�na zamkn�� poleceniem LaTeX-close-enviroment (C-c ]). Zdecydowanie jednak najbezpieczniejsze jest wprowadzanie kompletnych �rodowisk przy u�yciu C-c C-e.

Poza �rodowiskami w pliku LaTeX-owym cz�sto pojawiaj� si� tradycyjne polecenia TeX-a, czyli s�owa rozpoczynaj�ce si� znakiem \. Zapami�tanie wszystkich polece� jest trudne, a przy ich wprowadzaniu �atwo o b��d. Dlatego nale�y korzysta� z polecenia LaTeX-complete-symbol. Je�li pisane s�owo rozpoczyna si� znakiem \ to wystarczy wcisn�� M-Tab aby je zako�czy�, lub uzyska� list� mo�liwych zako�cze�.

Inny spos�b wpisywania makr TeX-owych polega na wykorzystaniu polecenia TeX-insert-macro (C-c C-m). Aby u�y� jeszcze innej metody nale�y np. w pliku .emacs ustawi� r�n� od nil warto�� zmiennej TeX-electric-escape

(setq TeX-electric-escape t)

Wi��e to znak \ z funkcj� TeX-electric-macro, co umo�liwia uruchamianie mechanizmu rozwijania makr przez wpisanie tego znaku. Jest to metoda najszybsza.

AUC TeX domy�lnie wstawia par� pustych nawias�w {} po wpisaniu makra, co zabezpiecza przed ,,znikni�ciem'' spacj� znajduj�c� si� za tym makrem. Je�li nawiasy nie s� mile widziane nale�y zmiennej TeX-insert-braces przypisa� warto�� nil.

Inaczej oznacza si� elementy listy \item. S�u�y do tego polecenie LaTeX-insert-item (M-Return), kt�rego dzia�anie zale�y od kontekstu.

Kolejnym cz�sto wyst�puj�cym elementem tekstu s� �r�dtytu�y, oznaczane s�owami kluczowymi \chapter, \section itd. Mo�na u�atwi� sobie �ycie korzystaj�c z polecenia LaTeX-section (C-c C-s). Wywo�anie tego polecenia spowoduje wstawienie oznaczenia �r�dtytu�u, przy czym domy�lnie AUC TeX zapyta o tytu� i etykiet� zwi�zan� z tym �r�dtytu�em (argument polecenia \label). Domy�lny poziom �r�dtytu�u mo�na zmieni� wpisuj�c r�cznie w�a�ciwe s�owo kluczowe (z rozwijaniem) lub podaj�c argument (C-u) przed wywo�aniem polecenia LaTeX-section. Je�li argument jest ujemny, to poziom zostanie zmieniony w d� o jeden.

I tak, je�li ostatnio wstawiony by� �r�dtytu� na poziomie \subsection to b�dzie to aktualny poziom domy�lny. Sekwencja C-c C-s oznacza polecenie wpisania �r�dtytu�u na tym w�a�nie poziomie. Podanie C-u C-c C-s to wpisanie \subsubsection, a C-u -1 C-c C-s spowoduje wstawienie \section. Przedrostki nazw w etykietach \label s� kontrolowane zmienn� LaTeX-section-label. Je�li warto�ci� tej zmiennej jest nil, to odno�niki nie b�d� wstawiane.

AUC TeX udost�pnia r�wnie� silny mechanizm zmiany kroju pisma. Jego podstaw� jest polecenie TeX-font (skr�t C-c C-f), po kt�rym podaje si� argument okre�laj�cy po��dan� zmian� kroju pisma. I tak C-e powoduje wpisanie \emph{}, C-i -- \textit{}, C-t -- \texttt{} itd, w��cznie z usuwaniem ustawienia kroju pisma C-d. Lista mo�liwo�ci jest wypisywana po podaniu spacji jako argumentu:

Font list:

     C-b          \textbf{ }
     C-c          \textsc{ }
     C-e            \emph{ }
     C-f          \textsf{ }
     tab          \textit{ }
  return          \textmd{ }
     C-n        \textnormal{ }
     C-r          \textrm{ }
     C-s          \textsl{ }
     C-t          \texttt{ }
     C-u          \textup{ }
     C-d        -- delete font

Je�li polecenie TeX-font jest poprzedzone argumentem (C-u), to zostanie zmieniony kr�j pisma w miejscu, w kt�rym znajduje si� kursor. Przyk�adowo je�eli kursor jest umieszczony na tek�cie b�d�cym argumentem polecenia \textit{}, to sekwencja C-u C-c C-f C-e zmieni polecenie \textit na \emph.

Inne elementy tekstu

W tre�ci dokumentu pojawiaj� si� nie tylko s�owa kluczowe, ale tak�e znaki specjalne: cudzys��w, znak dolara $, nawiasy klamrowe {} oraz znak komentarza %.

W TeX-u nie u�ywamy znak�w " na oznaczenie cudzys�owu. W tekstach pisanych po angielsku u�ywamy znaku `` jako cudzys�owu otwieraj�cego i znaku '' jako cudzys�owu zamykaj�cego. Je�li u�ytkownik wpisuje " to AUC TeX zadba, aby w tek�cie pojawi�o si� to co trzeba. W przypadku j�zyka polskiego (i spolszczonego LaTeX-a) cudzys��w otwieraj�cy oznacza si� w tek�cie dwoma przecinkami ,,. Aby polecenie TeX-insert-quote wywo�ywane klawiszem " zadzia�a�o prawid�owo nale�y zmiennej TeX-open-quote przypisa� warto�� ,, (czyli dwa przecinki).

Znaki dolara $ w pliku TeX-owym obejmuj� tekst wzoru matematycznego, a w podw�jne dolary $$ jest uj�ty wz�r wyeksponowany w osi strony. W celu lepszej kontroli otwierania i zamykania wzor�w wprowadzenie znaku dolara powoduje wywo�anie polecenia TeX-insert-dollar. Polecenie to, opr�cz wprowadzenie do pliku znaku $ sprawdza stan sparowania tych znak�w. Dzi�ki temu dok�adnie wiadomo, gdzie si� zaczyna i gdzie ko�czy �rodowisko matematyczne, a przy okazji nie da si� wzoru rozpocz�tego dwoma dolarami zamkn�� tylko jednym.

Polecenie TeX-insert-braces pozwala wprowadza� nawiasy klamrowe parami. Skr�t klawiaturowy jest intuicyjny: C-c {.

Przy wprowadzaniu i usuwaniu znaku komentarza na pocz�tku wierszy przydaje si� polecenie TeX-comment-regin (C-c ;). Umo�liwia ono wstawienie znaku komentarza na pocz�tku ka�dego wiersza zaznaczonego fragmentu tekstu (region) czyli obszaru od punktu oznaczonego przez C-spacja do bie��cej pozycji kursora (lub zaznaczonego mysz�). Podobnie dzia�a polecenie TeX-comment-paragraph (C-c %) dla akapitu. Aby usun�� znak komentarza wpisujemy C-u - C-c ; lub C-u - C-c %.

Matematyka

W przypadku wprowadzania du�ej liczby wzor�w matematycznych warto mie� pod r�k� mechanizm przyspieszaj�cy wpisywanie s��w takich jak \upsilon czy \rightarrow. Mechanizm taki uruchamia si� (i wy��cza) w AUC TeX-u poleceniem LaTeX-math-mode (C-c ~). W trybie matematycznym po wprowadzeniu znaku ,,`'' klawiatura zmienia znaczenie i zamiast zwyk�ych znak�w pojedynczym klawiszem mo�na wprowadza� symbole matematyczne. I tak (w trybie matematycznym) sekwencja klawiszy `d spowoduje wpisanie \delta, `G -- \Gamma, a `cN -- {\cal N}.

Po�yteczne bywa podanie argumentu (C-u) przed symbolem matematycznym. Sekwencja klawiszy C-u `e spowoduje wpisanie do bufora $\epsilon$ -- co znacznie przy�piesza wstawianie pojedynczych symboli w bloku tekstu.

Bez mo�liwo�ci definiowania w�asnych skr�t�w przydatno�� trybu matematycznego by�aby znacznie ograniczona. Mo�na to robi� modyfikuj�c na prywatne potrzeby list� LaTeX-math-list. Nie sprawi te� problemu zamiana klawisza ` na jaki� por�czniejszy (je�li kto� musi) -- nale�y zmieni� warto�� zmiennej LaTeX-math-abberv-prefix.

W�asne definicje

Powr��my do rozwijania s��w kluczowych. Cz�sto si� zdarza, �e definiujemy w�asne makra. AUC TeX doskonale nas rozumie. Je�li wpiszemy definicj� LaTeX-ow� (\renewcommand) to AUC TeX j� rozpozna i si� jej ,,nauczy'' -- b�dzie ona dost�pna poprzez mechanizm rozwijania pocz�tk�w wyraz�w. Mo�liwe jest r�wnie� rozpoznawanie definicji TeX-a wprowadzanych jako \def.

AUC TeX rozpoznaje makrodefinicje zapisane w pliku podczas parsowania dokumentu po wydaniu polecenia TeX-normal-mode (C-c C-n). Je�li wi�c wpiszemy w pliku now� definicj�, nale�y wcisn�� C-c C-n i nie musimy jej dok�adnie pami�ta�. Informacje o makrodefinicjach zapisywane s� w pliku ./auto/nazwa.el.

Mo�na wymusi� parsowanie dokumentu natychmiast po jego wczytaniu oraz umieszczanie informacji o nim w katalogu auto przy ka�dym zapisie na dysk np. przez wpisanie do pliku .emacs nast�puj�cych wierszy:

; parsowanie przy wczytywaniu:
(setq TeX-parse-self t) 
; parsowanie przy zapisie:
(setq TeX-auto-save t) 

Zmian� pliku ./auto/nazwa.el powoduje r�wnie� wstawienie do tekstu dokumentu nazwy etykiety \label. Wstawiaj�c odno�nik do tej etykiety (\ref, \pageref) mo�na etykiet� wybra� z listy etykiet pokazywanej przez mechanizm rozwijania (Tab). I to jest naprawd� cenna w�a�ciwo��.

Spos�b parsowania dokumentu mo�na konfigurowa� (po szczeg�y odsy�am do dokumentacji). Na przyk�ad je�eli mamy s�aby komputer i chcemy, aby rozpoznawane by�y tylko etykiety musimy zadba� o nast�puj�ce ustawienia (zn�w plik .emacs):

(setq-default 
  TeX-auto-regexp-list 
  'LaTeX-auto-label-regexp-list)

Przetwarzanie z wn�trza AUC TeX-a

Na uwag� zas�uguje mo�liwo�� uruchamiania TeX-a i ogl�dania plik�w .dvi bez konieczno�ci opuszczania Emacsa. S�u�y do tego polecenie przypisane do sekwencji C-c C-c, czyli TeX-command-master. Po wydaniu tego polecenia AUC TeX zapyta jakie dzia�ania ma podj��. Je�li w pliku by�y dokonywane jakie� zmiany, to zaproponuje jego przetworzenie TeX-em. Po przetworzeniu i kolejnym wci�ni�ciu C-c C-c b�dzie chcia� uruchomi� przegl�dark� .dvi. Je�eli nie wyst�pi� �adne b��dy w przetwarzaniu, to w okienku obok obejrzymy wynik sk�adu.

Standardowe polecenia przetwarzania pliku �r�d�owego mo�na �atwo rozszerzy� o nasze ulubione: mex, platex czy pdftex. Naj�atwiej przez menu XEmacsa. W razie potrzeby mo�na skopiowa� odpowiedni fragment z pliku tex.el (czy wr�cz tex.elc). Prawdopodobnie warto zmienion� list� TeX-command-list wstawi� do pliku tex-site.el -- niech si� ciesz� wszyscy u�ytkownicy.

Naprawd� niezwykle u�yteczna (i trudna do zaimplementowania poza edytorem) jest mo�liwo�� przetworzenia tylko fragmentu pliku �r�d�owego. W przypadku sk�adania skomplikowanego dokumentu mo�na TeX-owa� tylko fragment nad kt�rym pracujemy, co zaoszcz�dza mn�stwo czasu. S�u�y do tego polecenie TeX-command-region przypisane do sekwencji C-c C-r. Wszystko dzia�a tak samo jak w przypadku TeX-command-master, z jednym wyj�tkiem -- AUC TeX buduje z nag��wka i zaznaczonego fragmentu tekstu nowy plik, kt�ry przetwarza TeX-em. Kolejne C-c C-r umo�liwia obejrzenie w�a�ciwego pliku .dvi. Trzeba si� tylko pilnowa�, �eby nie definiowa� �adnych makr globalnych poza nag��wkiem. W plikach LaTeX-owych ko�cem nag��wka jest wiersz zawieraj�cy napis \begin{document}. W plikach TeX-owych jest to natomiast %**end of header. Znacznik ko�ca nag��wka mo�na zdefiniowa� jako wyra�enie regularne okre�laj�c warto�� zmiennej TeX-header-end.

W przypadku wyst�pienia b��d�w w czasie przetwarzania mo�na ogl�da� je kolejno przy pomocy polecenia TeX-next-error (|C-c `|). AUC TeX opatruje b��dy TeX-a dodatkowym komentarzem, co mo�e pom�c pocz�tkuj�cym u�ytkownikom.

I wi�cej...

Zatrzymajmy si� jeszcze nad tym, co widzimy na ekranie. Emacs (w szczeg�lno�ci XEmacs) potrafi inteligentnie zaznacza� odpowiednie fragmenty tekstu kolorami. Konfigurowanie kolor�w w XEmacsie jest proste (mysz� w sekcji faces -- dlatego warto u�ywa� XEmacsa). Je�li kolorowanie nie w��czy�o si� z w�asnej woli mo�na je wymusi� poleceniem font-lock-mode.

Nawet bez kolorowania tre�� dokumentu mo�na wprowadzi� w niezwykle czytelnej formie dzi�ki zaawansowanym poleceniom formatowania tekstu. W wolnej chwili warto wypr�bowa� polecenia:

LaTeX-fill-paragraph (C-c C-q C-p lub M-q), LaTeX-fill-enviroment (C-c C-q C-e), LaTeX-fill-section (C-c C-q C-s) oraz LaTeX-fill-region (C-c C-q C-r lub M-g).

Ograniczona obj�to�� artyku�u nie pozwala om�wi� wszystkich mo�liwo�ci AUC TeX-a. Nie zmie�ci�y si� tematy obszerne, takie jak konfigurowanie dzia�ania AUC TeX-a i liczne szczeg�owe, np. praca z dokumentami hierarchicznymi. Wszystko mo�na doczyta� w dokumentacji. Czytaj�c trzeba pami�ta�, �e AUC TeX jest cz�ci� edytora Emacs i przez ca�y czas mo�na korzysta� ze wszystkiego, co Emacs oferuje. Przyk�adem jest niezale�ny (ale wspierany przez AUC TeX-a) tryb ,,ukrywania'' fragment�w tekstu, w��czany/wy��czany poleceniem outline-minor-mode. Pojawiaj�ce si� dodatkowe pozycje menu (i polecenia) pozwalaj� wy�wietli� zamiast rozdzia�u, podrozdzia�u itd. tylko fragment pierwszego wiersza z tytu�em (bez zmiany tekstu). Mo�liwe jest np. pisanie czwartego rozdzia�u trzy wiersze od ko�ca nag��wka, albo poruszanie si� po tek�cie tak, jakby sk�ada� si� on tylko ze �r�dtytu��w.

Przetwarzanie zewn�trzne

W ca�ej zabawie z Emacsem najmilsze jest to, �e wcale nie trzeba go u�ywa�. Tekst mo�na przygotowa� korzystaj�c z jakiegokolwiek edytora (np. ...Emacsa), a pliki �r�d�owe przetwarza� zewn�trznie. Przypu��my, �e kolega podes�a� nam 46 felieton�w, kt�re napisa� w ostatnim roku. Wszystkie, to kompletne pliki LaTeX-owe. W takiej sytuacji TeX-owanie z wn�trza edytora zajmie zbyt du�o czasu. Najszybsz� metod� b�dzie umieszczenie wszystkich plik�w w jednym katalogu i napisanie w terminalu mniej wi�cej czego� takiego:

~$ for i in *.tex; do latex $i; done

Nie zawsze jednak jest tak prosto. Cz�sto otrzymanie wyniku ko�cowego wymaga wielu przetworze�. Wpisywanie ci�gu tych samych polece� po ka�dej modyfikacji pliku bywa m�cz�ce. Dlatego m�drzy ludzie stworzyli program make (lub gnumake). Wszystkie polecenia wystarczy wpisa� raz ale do pliku Makefile w bie��cym katalogu. W najprostszym przypadku plik ten b�dzie wygl�da� tak:

all: referat.ps

%.dvi: %.tex
        latex $<

%.ps: %.dvi
        dvips $<

%.pdf: %.tex
        pdflatex $<

Z zawarto�ci pliku wynika, �e pracujemy nad referatem (tworzymy plik referat.tex) i ï¿½e u�ywamy przegl�darki plik�w PS. Teraz ca�e TeX-owanie sprowadza si� do uruchomienia w terminalu programu make. Program ten domy�lnie wykona pierwsz� regu�� z pliku Makefile (all: referat.ps -- zamiast nazwy all mo�na wstawi� dowolne s�owo, np. PsiaBuda) i dowie si�, �e jeste�my zainteresowani plikiem .ps. Z trzeciej regu�y program wywnioskuje, �e pliki .ps robi si� z plik�w .dvi poleceniem dvips. Nie ma jednak pliku .dvi, ale o tym jak go zrobi� m�wi druga regu�a. A plik referat.tex jest na dysku.

Ostatnia regu�a zostanie wykorzystana gdy wykonamy polecenia make pdf -- wtedy zostanie utworzony plik referat.pdf.

Najwa�niejsz� cech� programu make jest to, �e do przetwarzania dochodzi tylko wtedy, gdy program �r�d�owy by� modyfikowany po ostatnim przetworzeniu (plik wynikowy jest starszy od pliku �r�d�owego). Dzi�ki temu mo�na w terminalu napisa� takie (lub podobne) zakl�cie:

~$ while [ TRUE ]; do make; 
  sleep 5; done

Tak potraktowany interpretator polece� co 5 sekund b�dzie uruchamia� program make, kt�ry przetworzy plik �r�d�owy tylko wtedy, gdy ten ostatni zosta� zapisany na dysk po ostatnim przetworzeniu. Teraz wystarczy tylko mysz� wskaza� przegl�dark�, �eby zobaczy�, co ,,nask�adali�my'' do tej pory (przegl�darka powinna reagowa� na modyfikacj� przegl�danego pliku). Ta technika jest wra�liwa na zapisywanie pliku z b��dem. Oczywi�cie, je�li mamy dobry edytor, to wpisanie z�ego s�owa kluczowego, czy nie domkni�cie �rodowiska lub nawiasu nie jest proste.

Co si� jednak stanie, gdy pope�nimy b��d, na kt�rym TeX si� zatrzyma? Po pierwsze mo�emy przeczyta� uwa�nie o co chodzi i w edytorze przeskoczy� do w�a�ciwego wiersza, a TeX-owi powiedzie� np. x. Je�eli jednak ustawimy zmienn� �rodowiska:

TEXEDIT='emacsclient +%d %s'

lub w przypadku XEmacsa:

TEXEDIT='enu +%d %s'

i je�eli u�ywamy Emacsa w kt�rym powiemy M-x server-start (gnuserv-start), to mo�emy odpowiedzie� TeX-owi e (od edit). Wtedy Emacs wczyta plik z b��dem i kursorem wska�e wiersz, co do kt�rego TeX ma w�tpliwo�ci. Po zako�czeniu poprawek nale�y zapisa� plik (C-x C-s) i powiedzie� klientowi, �e ju� po wszystkim (C-x #). Dla jasno�ci: serwer to Emacs, a  klient to TeX...

Korzystanie z emacsowego klienta i serwera pomaga w wielu trudnych sytuacjach. Wyobra�my sobie ksi��k� maj�c� 42 rozdzia�y, ka�dy zapisany w oddzielnym pliku. Je�li w kilkunastu plikach zamiast \ala omy�kowo wpisali�my \ola, z tym �e czasem \ola jest dobrze i ma zosta�, to zanosi si� na d�u�sze poprawianie. A mo�na z poziomu interpretatora polece� shell napisa�:

~$  gnuclient `grep -l \\ola *.tex`

Potem wystarczy wciskanie klawisza C-s i czasem C-x e (pierwszy raz oczywi�cie r�wnie� C-x (C-x )). Je�eli jednak kto� ma tendencje do zapominania o takich szczeg�ach jak -l, to niech lepiej pr�buje si� uczy� krok po kroku... Na razie. Po jakim� czasie mo�e okaza� si� potrzebny dodatkowy wiersz w pliku .emacs:

(gnuserv-start)

Bardzo niech�tnie u�ywam mo�liwo�ci przetwarzania pliku TeX-owego z wn�trza edytora. Nawet pisz�c niewielki dokument warto (moim zdaniem) korzysta� z programu make. Ju� kilka razy zapomnia�em uruchomi� dvips-a (mam drukark� PS), w efekcie drukuj�c nieaktualn� wersj� dokumentu. Dlatego mi wystarcza, gdy wewn�trz edytora mo�na wykona� tylko jedno polecenie -- make.

Podsumowanie

Wsp�czesne narz�dzia umo�liwiaj� wygodne i bezbolesne korzystanie z dobrodziejstw oferowanych przez TeX-a. We wsp�czesnym sprz�cie karta graficzna i monitor pozwalaj� na prac� w systemie okienkowym (np. XWindow); mo�na tak�e na bie��co ogl�da� w s�siednim oknie gotowy dokument. W przypadku korzystania z XEmacsa (lub podobnego edytora) pracowa� z LaTeX-em mog� nawet ci u�ytkownicy, kt�rzy nie zdejmuj� r�ki z myszy.

Mam nadziej�, �e uda�o mi si� pokaza�, jak du�e mo�liwo�ci stoj� przed kim�, kto chce wygodnie i efektywnie u�ywa� TeX-a. Opisa�em tylko najprostsze warianty konfiguracji �rodowiska pracy. Istnieje wiele sposob�w i sposobik�w, o kt�rych nie wspomnia�em i jak s�dz�, jeszcze wi�cej takich, o kt�rych nigdy nie s�ysza�em. Wszystkim �ycz� mi�ego TeX-owania.


Adam Dawidziuk

Tekst jest przedrukiem z Biuletynu GUST, nr 11/1998, s. 58--64.
(c) Polska Grupa U�ytkownik�w Systemu TeX
Ostatnia modyfikacja 15.01.2000