diff options
Diffstat (limited to 'Master/texmf-doc/doc/polish/tex-virtual-academy-pl/prog/auctex.html')
-rw-r--r-- | Master/texmf-doc/doc/polish/tex-virtual-academy-pl/prog/auctex.html | 767 |
1 files changed, 767 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/prog/auctex.html b/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/prog/auctex.html new file mode 100644 index 00000000000..1037975da8c --- /dev/null +++ b/Master/texmf-doc/doc/polish/tex-virtual-academy-pl/prog/auctex.html @@ -0,0 +1,767 @@ +<html> +<head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> +<meta http-equiv="Content-language" content="pl"> +<meta name="Author" content="Włodzimierz Macewicz"> +<meta name="Keywords" content="tex, Wirtualna Akademia"> + <title>Używanie TeX-a w systemie UNIX</title> +</head> +<body> +<h1>Używanie TeX-a w systemie UNIX (AUCTeX)</h1> +<p> + <em>Adam Dawidziuk</em> +</p> +<p> + 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. +</p> + +<h2>Przetwarzanie danych</h2> +<p> + 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. +</p> +<p> + Działanie TeX-a można sprowadzić do przetwarzania + plików. TeX czyta dokument źródłowy, zwykle z pliku o nazwie + z przyrostkiem <code>.tex</code>, i tworzy obraz kolejnych stron + dokumentu w pliku o nazwie kończącej się napisem + <code>.dvi</code>. 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. +</p> +<p> + 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. +</p> +<p> + 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 <code>vim</code>. 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 <code>emacs</code> (tak twierdzą użytkownicy + Emacsa). Niestety, zarówno <code>vim</code> jak i Emacs + u niektórych wywołują reakcje alergiczne, a na to rady nie ma. +</p> +<p> + 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. +</p> +<p> + 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 <code>make</code>. +</p> +<p> + 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. +</p> +<p> + 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. +</p> + +<h2>AUC TeX</h2> +<p> + AUC TeX to dostępne w edytorze <code>emacs</code> + 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. +</p> + +<h3>Emacs</h3> +<p> + Edytor <code>emacs</code> ma długą historię w systemie UNIX. + W dużej części został napisany w języku <code>Lisp</code> + (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...). +</p> +<p> + 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 + <code>Meta</code> na klawiaturze. Wciśnięcie tego klawisza ze + znakiem <code>x</code> (oznaczane jako <code>Meta-x</code> + lub <code>M-x</code>) rozpoczyna wprowadzanie poleceń. + W klawiaturze komputera PC zwykle klawiszem <code>Meta</code> jest + <code>Alt</code>. Jeśli jednak <code>Alt</code> został + przedefiniowany (np. w celu wprowadzania polskich znaków) to + <code>M-x</code> można wprowadzić sekwencyjnie wciskając + najpierw klawisz <code>Esc</code>, a potem + <code>x</code>. Tego typu problemy nie istnieją z klawiszem + <code>Ctrl</code>. Podstawowymi chwytami są + <code>Ctrl-x</code> i <code>Ctrl-c</code>, opisywane + często jako <code>C-x</code> i <code>C-c</code>. +</p> +<p> + Mocną stroną Emacsa jest dokumentacja (<code>C-h</code>). Funkcje przypisane + klawiszom zmieniają się w zależności od trybu pracy (<em>mode</em>), co + zawsze można sprawdzić wpisując <code>C-h m</code>. Wiedząc, że Emacs może + otwierać wiele plików jednocześnie, ale każdy w innym buforze + (<em>buffer</em>), że w środowisku okienkowym może otwierać wiele okien + zwanych ramkami (<em>frames</em>) i że każda ramka może być podzielona na + wiele ,,okien'' (<em>window</em>) można + bez problemu zrozumieć język dokumentacji. +</p> +<p> + 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 <code>Options Customize Emacs Wp + Tex AUC Tex</code>, a potem już według uznania. W to samo miejsce + można trafić wciskając <code>M-x customize</code>, tyle że po drodze jest + więcej objaśnień i łatwiej się zagubić. +</p> +<p> + Jeśli ktoś nie dysponuje XEmacsem lub nie lubi myszy, to będzie musiał wpisywać + odpowiednie zaklęcia do pliku <code>.emacs</code>, który znajduje się + w katalogu domowym użytkownika. Pomocne może być odszukanie pliku + <code>tex.el</code> i <code>tex-site.el</code>, które leżą gdzieś + z innymi plikami Emacsa (ale w różnych katalogach -- przyda się + program <code>find</code>). 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 <code>tex.el</code> (ani jego skompilowanej wersji + <code>tex.elc</code>) lecz kopiować co trzeba do pliku <code>.emacs</code>. + Jeśli zmiana ma dotyczyć wszystkich użytkowników należy odpowiedni fragment + pliku <code>tex.el</code> skopiować do pliku <code>tex-site.el</code> + i tam pozamieniać wszystko to, co wymaga zmiany. +</p> +<p> + I jeszcze jedna uwaga dla początkujących: w Emacsie można zapisać plik + z bufora na dysk wciskając <code>C-x C-s</code>, a pracę + z Emacsem zakończyć sekwencją <code>C-x C-c</code>. 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. +</p> +<p> + 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 <code>xmodmap</code>) + oraz polski słownik do programu <code>ispell</code>. Zagadnienia te są + dokładnie omówione w tekstach poświęconych polskim ,,ogonkom''. +</p> + +<h3>Uruchomienie AUC TeX-a</h3> +<p> + Po uruchomieniu edytora Emacs utworzenie nowego pliku jest możliwe po + wciśnięciu <code>C-x C-f</code> i podaniu nazwy. Podając nazwę pliku + z przyrostkiem <code>.tex</code> zmusimy edytor do wejścia w tryb + <code>LaTeX-mode</code>. Informacja o tym powinna pojawić się + w wierszu trybu pracy (<em>Mode Line</em>) w dolnej części okna + jako napis <code>LaTeX</code>. Można też wymusić wejście w tryb + <code>LaTeX</code> wywołując polecenie <code>LaTeX-mode</code> (<code>M-x + LaTeX-mode</code>). Do rozwijania nazw można użyć znaku klawisza tabulacji + (<code>Tab</code>). +</p> +<p> + Jeśli powyższe działania nie prowadzą do uruchomienia + AUC TeX-a, to albo nie jest on zainstalowany, albo w pliku + <code>.emacs</code> brakuje wiersza +</p> +<pre> +(require 'tex-site) +</pre> +<p> + 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). +</p> + +<h3>Słowa kluczowe LaTeX-a</h3> +<p> + 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. +</p> +<p> + Najważniejszą konstrukcją LaTeX-a są środowiska, czyli pary + <code>\begin{*}</code> <code>\end{*}</code>. Do wprowadzania środowisk służy + polecenie <code>LaTeX-enviroment</code> domyślnie przypisane do sekwencji + <code>C-c C-e</code>. Po wydaniu tego polecenia AUC TeX pyta + o nazwę środowiska i ewentualne dodatkowe dane. Przy pomocy + klawisza <code>Tab</code> 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. +</p> +<p> + Otwarte środowisko można zamknąć poleceniem + <code>LaTeX-close-enviroment</code> (<code>C-c ]</code>). + Zdecydowanie jednak najbezpieczniejsze jest wprowadzanie + kompletnych środowisk przy użyciu <code>C-c C-e</code>. +</p> +<p> + Poza środowiskami w pliku LaTeX-owym często pojawiają się + tradycyjne polecenia TeX-a, czyli słowa rozpoczynające się znakiem + <code>\</code>. Zapamiętanie wszystkich poleceń jest trudne, + a przy ich wprowadzaniu łatwo o błąd. Dlatego należy korzystać + z polecenia <code>LaTeX-complete-symbol</code>. Jeśli pisane słowo + rozpoczyna się znakiem <code>\</code> to wystarczy wcisnąć + <code>M-Tab</code> aby je zakończyć, lub uzyskać listę możliwych + zakończeń. +</p> +<p> + Inny sposób wpisywania makr TeX-owych polega na wykorzystaniu + polecenia <code>TeX-insert-macro</code> (<code>C-c C-m</code>). + Aby użyć jeszcze innej metody należy np. w pliku + <code>.emacs</code> ustawić różną od <code>nil</code> + wartość zmiennej <code>TeX-electric-escape</code> +</p> +<pre> +(setq TeX-electric-escape t) +</pre> +<p> + Wiąże to znak + <code>\</code> z funkcją + <code>TeX-electric-macro</code>, co umożliwia uruchamianie + mechanizmu rozwijania makr przez wpisanie tego znaku. Jest to metoda + najszybsza. +</p> +<p> + AUC TeX domyślnie wstawia parę pustych nawiasów <code>{}</code> 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 + <code>TeX-insert-braces</code> przypisać wartość <code>nil</code>. +</p> +<p> + Inaczej oznacza się elementy listy <code>\item</code>. Służy do tego polecenie + <code>LaTeX-insert-item</code> (<code>M-Return</code>), którego działanie + zależy od kontekstu. +</p> +<p> + Kolejnym często występującym elementem tekstu są śródtytuły, oznaczane słowami + kluczowymi <code>\chapter</code>, <code>\section</code> itd. Można ułatwić + sobie życie korzystając z polecenia <code>LaTeX-section</code> (<code>C-c + C-s</code>). 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 + <code>\label</code>). 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 + (<code>C-u</code>) przed wywołaniem polecenia <code>LaTeX-section</code>. Jeśli + argument jest ujemny, to poziom zostanie zmieniony w dół o jeden. +</p> +<p> + I tak, jeśli ostatnio wstawiony był śródtytuł na poziomie + <code>\subsection</code> to będzie to aktualny poziom domyślny. Sekwencja + <code>C-c C-s</code> oznacza polecenie wpisania śródtytułu na tym właśnie + poziomie. Podanie <code>C-u C-c C-s</code> to wpisanie + <code>\subsubsection</code>, a <code>C-u -1 C-c C-s</code> spowoduje + wstawienie <code>\section</code>. Przedrostki nazw w etykietach + <code>\label</code> są kontrolowane zmienną <code>LaTeX-section-label</code>. + Jeśli wartością tej zmiennej jest <code>nil</code>, to odnośniki nie będą + wstawiane. +</p> +<p> + AUC TeX udostępnia również silny mechanizm zmiany kroju pisma. Jego + podstawą jest polecenie <code>TeX-font</code> (skrót <code>C-c C-f</code>), po + którym podaje się argument określający pożądaną zmianę kroju pisma. I tak + <code>C-e</code> powoduje wpisanie <code>\emph{}</code>, <code>C-i</code> -- + <code>\textit{}</code>, <code>C-t</code> -- <code>\texttt{}</code> itd, + włącznie z usuwaniem ustawienia kroju pisma <code>C-d</code>. Lista możliwości + jest wypisywana po podaniu spacji jako argumentu: +</p> +<pre> +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 +</pre> +<p> + Jeśli polecenie <code>TeX-font</code> jest poprzedzone argumentem + (<code>C-u</code>), 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 <code>\textit{}</code>, to sekwencja + <code>C-u C-c C-f C-e</code> zmieni polecenie <code>\textit</code> na + <code>\emph</code>. +</p> + +<h3>Inne elementy tekstu</h3> +<p> + W treści dokumentu pojawiają się nie tylko słowa kluczowe, ale także znaki + specjalne: cudzysłów, znak dolara <code>$</code>, nawiasy klamrowe + <code>{}</code> oraz znak komentarza <code>%</code>. +</p> +<p> + W TeX-u nie używamy znaków <code>"</code> na oznaczenie cudzysłowu. + W tekstach pisanych po angielsku używamy znaku <code>``</code> jako + cudzysłowu otwierającego i znaku <code>''</code> jako cudzysłowu + zamykającego. Jeśli użytkownik wpisuje <code>"</code> 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 <code>,,</code>. Aby polecenie + <code>TeX-insert-quote</code> wywoływane klawiszem <code>"</code> zadziałało + prawidłowo należy zmiennej <code>TeX-open-quote</code> przypisać wartość + <code>,,</code> (czyli dwa przecinki). +</p> +<p> + Znaki dolara <code>$</code> w pliku TeX-owym obejmują + tekst wzoru matematycznego, a w podwójne dolary <code>$$</code> + 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 <code>TeX-insert-dollar</code>. Polecenie to, oprócz + wprowadzenie do pliku znaku <code>$</code> 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. +</p> +<p> + Polecenie <code>TeX-insert-braces</code> pozwala + wprowadzać nawiasy klamrowe parami. Skrót klawiaturowy jest + intuicyjny: <code>C-c {</code>. +</p> +<p> + Przy wprowadzaniu i usuwaniu znaku komentarza na początku wierszy + przydaje się polecenie <code>TeX-comment-regin</code> (<code>C-c ;</code>). + Umożliwia ono wstawienie znaku komentarza na początku każdego wiersza + zaznaczonego fragmentu tekstu (<em>region</em>) czyli obszaru od punktu + oznaczonego przez <code>C-</code>spacja do bieżącej pozycji kursora (lub + zaznaczonego myszą). Podobnie działa polecenie + <code>TeX-comment-paragraph</code> (<code>C-c %</code>) dla akapitu. Aby + usunąć znak komentarza wpisujemy <code>C-u - C-c ;</code> lub <code>C-u - + C-c %</code>. +</p> +<p> + +<h3>Matematyka</h3> +<p> + W przypadku wprowadzania dużej liczby wzorów matematycznych warto mieć pod ręką + mechanizm przyspieszający wpisywanie słów takich jak <code>\upsilon</code> czy + <code>\rightarrow</code>. Mechanizm taki uruchamia się (i wyłącza) + w AUC TeX-u poleceniem <code>LaTeX-math-mode</code> (<code>C-c ~</code>). + W trybie matematycznym po wprowadzeniu znaku + ,,<code>`</code>'' klawiatura zmienia znaczenie i zamiast zwykłych znaków + pojedynczym klawiszem można wprowadzać symbole matematyczne. I tak + (w trybie matematycznym) sekwencja klawiszy <code>`d</code> spowoduje + wpisanie <code>\delta</code>, <code>`G</code> -- <code>\Gamma</code>, + a <code>`cN</code> -- <code>{\cal N}</code>. +</p> +<p> + Pożyteczne bywa podanie argumentu (<code>C-u</code>) przed + symbolem matematycznym. Sekwencja klawiszy <code>C-u `e</code> + spowoduje wpisanie do bufora <code>$\epsilon$</code> -- co + znacznie przyśpiesza wstawianie pojedynczych symboli w bloku + tekstu. +</p> +<p> + 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ę <code>LaTeX-math-list</code>. Nie sprawi też problemu zamiana klawisza + <code>`</code> na jakiś poręczniejszy (jeśli ktoś musi) -- należy zmienić + wartość zmiennej <code>LaTeX-math-abberv-prefix</code>. +</p> + +<h3>Własne definicje</h3> +<p> + 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ą (<code>\renewcommand</code>) 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 + <code>\def</code>. +</p> +<p> + AUC TeX rozpoznaje makrodefinicje zapisane w pliku podczas + parsowania dokumentu po wydaniu polecenia + <code>TeX-normal-mode</code> (<code>C-c C-n</code>). + Jeśli więc wpiszemy w pliku nową definicję, należy wcisnąć <code>C-c C-n</code> + i nie musimy jej dokładnie pamiętać. Informacje + o makrodefinicjach zapisywane są w pliku + <code>./auto/nazwa.el</code>. +</p> +<p> + 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 <code>.emacs</code> następujących + wierszy: +</p> +<pre> +; parsowanie przy wczytywaniu: +(setq TeX-parse-self t) +; parsowanie przy zapisie: +(setq TeX-auto-save t) +</pre> +<p> + Zmianę pliku <code>./auto/nazwa.el</code> powoduje również + wstawienie do tekstu dokumentu nazwy etykiety + <code>\label</code>. Wstawiając odnośnik do tej etykiety + (<code>\ref</code>, <code>\pageref</code>) można etykietę + wybrać z listy etykiet pokazywanej przez mechanizm rozwijania + (<code>Tab</code>). I to jest naprawdę cenna właściwość. +</p> +<p> + 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 <code>.emacs</code>): +</p> +<pre> +(setq-default + TeX-auto-regexp-list + 'LaTeX-auto-label-regexp-list) +</pre> + +<h3>Przetwarzanie z wnętrza AUC TeX-a</h3> +<p> + 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 <code>C-c C-c</code>, czyli <code>TeX-command-master</code>. 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 <code>C-c C-c</code> + będzie chciał uruchomić przeglądarkę <code>.dvi</code>. Jeżeli nie wystąpią + żadne błędy w przetwarzaniu, to w okienku obok obejrzymy wynik + składu. +</p> +<p> + Standardowe polecenia przetwarzania pliku źródłowego można łatwo rozszerzyć + o nasze ulubione: <code>mex</code>, <code>platex</code> czy + <code>pdftex</code>. Najłatwiej przez menu XEmacsa. W razie potrzeby + można skopiować odpowiedni fragment z pliku <code>tex.el</code> (czy + wręcz <code>tex.elc</code>). Prawdopodobnie warto zmienioną listę + <code>TeX-command-list</code> wstawić do pliku <code>tex-site.el</code> -- + niech się cieszą wszyscy użytkownicy. +</p> +<p> + 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 <code>TeX-command-region</code> przypisane do sekwencji <code>C-c + C-r</code>. Wszystko działa tak samo jak w przypadku + <code>TeX-command-master</code>, z jednym wyjątkiem -- AUC TeX + buduje z nagłówka i zaznaczonego fragmentu tekstu nowy plik, który + przetwarza TeX-em. Kolejne <code>C-c C-r</code> umożliwia obejrzenie właściwego + pliku <code>.dvi</code>. 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 <code>\begin{document}</code>. W plikach + TeX-owych jest to natomiast <code>%**end of header</code>. Znacznik końca + nagłówka można zdefiniować jako wyrażenie regularne określając wartość zmiennej + <code>TeX-header-end</code>. +</p> +<p> + W przypadku wystąpienia błędów w czasie przetwarzania można oglądać je + kolejno przy pomocy polecenia <code>TeX-next-error</code> (|C-c `|). + AUC TeX opatruje błędy TeX-a dodatkowym komentarzem, co może pomóc + początkującym użytkownikom. +</p> + +<h3>I więcej...</h3> +<p> + 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 <em>faces</em> -- dlatego + warto używać XEmacsa). Jeśli kolorowanie nie włączyło się z własnej + woli można je wymusić poleceniem <code>font-lock-mode</code>. +</p> +<p> + 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: +</p> +<p> +<code>LaTeX-fill-paragraph</code> (<code>C-c C-q C-p</code> lub <code>M-q</code>), +<code>LaTeX-fill-enviroment</code> (<code>C-c C-q C-e</code>), +<code>LaTeX-fill-section</code> (<code>C-c C-q C-s</code>) oraz +<code>LaTeX-fill-region</code> (<code>C-c C-q C-r</code> lub <code>M-g</code>). +</p> +<p> + 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 + <code>outline-minor-mode</code>. 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. +</p> + +<h2>Przetwarzanie zewnętrzne</h2> +<p> + 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: +</p> +<pre> +~$ for i in *.tex; do latex $i; done +</pre> +<p> + 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 <code>make</code> + (lub <code>gnumake</code>). Wszystkie polecenia wystarczy + wpisać raz + ale do pliku + <code>Makefile</code> w bieżącym katalogu. W najprostszym + przypadku plik ten będzie wyglądał tak: +</p> +<pre> +all: referat.ps + +%.dvi: %.tex + latex $< + +%.ps: %.dvi + dvips $< + +%.pdf: %.tex + pdflatex $< +</pre> +<p> + Z zawartości pliku wynika, że pracujemy nad referatem (tworzymy + plik <code>referat.tex</code>) i że używamy przeglądarki + plików PS. + Teraz całe TeX-owanie sprowadza się do uruchomienia + w terminalu programu <code>make</code>. Program ten domyślnie + wykona pierwszą regułę z pliku Makefile + (<code>all: referat.ps</code> -- zamiast nazwy + <code>all</code> można wstawić dowolne słowo, + np. <code>PsiaBuda</code>) i dowie się, że jesteśmy + zainteresowani plikiem <code>.ps</code>. Z trzeciej reguły + program wywnioskuje, że pliki <code>.ps</code> robi się z plików + <code>.dvi</code> poleceniem <code>dvips</code>. Nie ma + jednak pliku <code>.dvi</code>, ale o tym jak go zrobić mówi + druga reguła. A plik referat.tex jest na + dysku. +</p> +<p> + Ostatnia reguła zostanie wykorzystana gdy + wykonamy polecenia <code>make pdf</code> -- wtedy + zostanie utworzony plik <code>referat.pdf</code>. +</p> +<p> + 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: +</p> +<pre> +~$ while [ TRUE ]; do make; + sleep 5; done +</pre> +<p> + 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. +</p> +<p> + 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. <code>x</code>. Jeżeli jednak ustawimy zmienną + środowiska: +</p> +<pre> +TEXEDIT='emacsclient +%d %s' +</pre> +<p> +lub w przypadku XEmacsa: +</p> +<pre> +TEXEDIT='enu +%d %s' +</pre> +<p> + i jeżeli używamy Emacsa w którym powiemy + <code>M-x server-start</code> + (<code>gnuserv-start</code>), to możemy odpowiedzieć TeX-owi + <code>e</code> (od <em>edit</em>). 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 + (<code>C-x C-s</code>) i powiedzieć klientowi, że już po + wszystkim (<code>C-x #</code>). Dla jasności: serwer to Emacs, a + klient to TeX... +</p> +<p> + 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 + <code>\ala</code> omyłkowo wpisaliśmy <code>\ola</code>, + z tym że czasem <code>\ola</code> jest dobrze i ma zostać, to + zanosi się na dłuższe poprawianie. A można z poziomu interpretatora + poleceń shell napisać: +</p> +<pre> +~$ gnuclient `grep -l \\ola *.tex` +</pre> +<p> + Potem wystarczy wciskanie klawisza <code>C-s</code> + i czasem <code>C-x e</code> (pierwszy raz oczywiście również + <code>C-x (</code> i <code>C-x )</code>). Jeżeli jednak + ktoś ma tendencje do zapominania o takich szczegółach jak + <code>-l</code>, to niech lepiej próbuje się uczyć krok po + kroku... Na razie. Po jakimś czasie może okazać się potrzebny + dodatkowy wiersz w pliku <code>.emacs</code>: +</p> +<pre> +(gnuserv-start) +</pre> +<p> + 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ć <code>dvips</code>-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. +</p> + +<h2>Podsumowanie</h2> +<p> + 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. +</p> +<p> + 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. +</p> +<hr> +<p> + <A href="mailto:A.Dawidziuk@GUST.org.pl"> Adam Dawidziuk </A> +<P><i> Tekst jest przedrukiem z Biuletynu GUST, nr 11/1998, +s. 58--64.</i><BR>(c) Polska Grupa Użytkowników Systemu TeX +<BR><i>Ostatnia modyfikacja 15.01.2000</i> +</P> +</body> +</html> |