The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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.
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 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.
 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-x i Ctrl-c, opisywane
 często jako C-x i C-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.el i tex-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''.
 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).
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.
 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 %.
 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.
 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)
 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.
 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.
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 ( i 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. 
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
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.