summaryrefslogtreecommitdiff
path: root/info/tex-virtual-academy-pl/prog
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/tex-virtual-academy-pl/prog
Initial commit
Diffstat (limited to 'info/tex-virtual-academy-pl/prog')
-rw-r--r--info/tex-virtual-academy-pl/prog/auctex.html767
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-1.html41
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-2.html76
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-3.html244
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-4.html168
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-5.html138
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-6.html50
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-7.html40
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex-8.html95
-rw-r--r--info/tex-virtual-academy-pl/prog/bibtex/bibtex.html60
-rw-r--r--info/tex-virtual-academy-pl/prog/dvidvi.html196
-rw-r--r--info/tex-virtual-academy-pl/prog/dvistro1.gifbin0 -> 7010 bytes
-rw-r--r--info/tex-virtual-academy-pl/prog/dvistro2.gifbin0 -> 8216 bytes
-rw-r--r--info/tex-virtual-academy-pl/prog/hyph.html476
-rw-r--r--info/tex-virtual-academy-pl/prog/prog.html54
15 files changed, 2405 insertions, 0 deletions
diff --git a/info/tex-virtual-academy-pl/prog/auctex.html b/info/tex-virtual-academy-pl/prog/auctex.html
new file mode 100644
index 0000000000..61c8ff53f4
--- /dev/null
+++ b/info/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&nbsp;systemie UNIX</title>
+</head>
+<body>
+<h1>Używanie TeX-a w&nbsp;systemie UNIX (AUCTeX)</h1>
+<p>
+ <em>Adam Dawidziuk</em>
+</p>
+<p>
+ TeX, jak wiadomo, nie jest zaopatrzony w&nbsp;standardowy interfejs
+ użytkownika, co daje dużą swobodę wyboru metod przygotowywania
+ dokumentów źródłowych. O&nbsp;ile format plików wejściowych i&nbsp;sposób ich
+ przetwarzania przez TeX-a pozostaje z&nbsp;założenia niezmienny, to
+ narzędzia wspomagające wprowadzanie treści dokumentów we właściwym
+ formacie są nieustannie rozwijane. W&nbsp;artykule jest opisany jeden
+ z&nbsp;możliwych sposobów używania TeX-a w&nbsp;systemie UNIX, ze szczególnym
+ uwzględnieniem pakietu AUC&nbsp;TeX.
+</p>
+
+<h2>Przetwarzanie danych</h2>
+<p>
+ Brak narzuconego i&nbsp;okienkowego interfejsu użytkownika powoduje, że TeX
+ bywa postrzegany jako program przestarzały i&nbsp;trudny. Przeciętny
+ użytkownik komputera zwykle nie jest w&nbsp;stanie zrozumieć sposobu działania
+ TeX-a, a&nbsp;jeszcze trudniej dostrzec mu korzyści, jakie można osiągnąć
+ przygotowując dokumenty w&nbsp;ten właśnie sposób. Pierwszą
+ i&nbsp;najpoważniejszą barierą pojęciową jest fakt, że TeX nie jest systemem
+ kompletnym, ale wymaga korzystania z&nbsp;wielu dodatkowych narzędzi
+ wspomagających pracę. Wprawdzie mało kto wprowadza treść dokumentu
+ z&nbsp;klawiatury w&nbsp;chwili, gdy TeX pokaże na ekranie dwie gwiazdki, ale
+ na pomysł stworzenia sobie wygodnego i&nbsp;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&nbsp;pliku o&nbsp;nazwie
+ z&nbsp;przyrostkiem <code>.tex</code>, i&nbsp;tworzy obraz kolejnych stron
+ dokumentu w&nbsp;pliku o&nbsp;nazwie kończącej się napisem
+ <code>.dvi</code>. Zadaniem użytkownika jest przygotowanie
+ plików wejściowych i&nbsp;uruchomienie ciągu przetworzeń, które doprowadzą
+ do pożądanego wyniku. Zarówno przygotowanie danych, jak i&nbsp;ich
+ przetwarzanie można zorganizować w&nbsp;zasadzie w&nbsp;dowolny sposób. Istnieją
+ dwie istotnie różne metody tworzenia plików z&nbsp;danymi wejściowymi:
+ generowanie i&nbsp;wpisywanie.
+</p>
+<p>
+ Generowanie danych wejściowych do TeX-a to zagadnienie bardzo rozległe
+ i&nbsp;mające wiele praktycznych zastosowań. Sam proces przygotowania danych,
+ ich obróbka i&nbsp;metody generowania mogą być bardzo różne. Wszystko zależy
+ od celu przetwarzania i&nbsp;postawionych wymagań. TeX jest doskonałym
+ narzędziem do formatowania wydruków z&nbsp;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&nbsp;TeX-em i&nbsp;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&nbsp;takim wypadku najważniejszy jest ergonomiczny i&nbsp;dobrze opanowany
+ edytor tekstów. Zwykle każdy ma swój ulubiony edytor, w&nbsp;którym wszystko
+ mu wychodzi najłatwiej. I&nbsp;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&nbsp;edytorami zbyt
+ prostymi. Czas poświęcony na poznanie inteligentnego, konfigurowalnego edytora
+ zwróci się już po kilku dniach pisania. Z&nbsp;edytorów dostępnych
+ w&nbsp;systemie UNIX doskonały jest <code>vim</code>. Można go ,,nauczyć''
+ wielu pożytecznych skrótów, a&nbsp;jego ostatnie wersje potrafią rozpoznawać
+ składnię i&nbsp;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&nbsp;Emacs
+ u&nbsp;niektórych wywołują reakcje alergiczne, a&nbsp;na to rady nie ma.
+</p>
+<p>
+ Zwolennicy okienek MS nie powinni czuć się pokrzywdzeni
+ (a&nbsp;przynajmniej nie z&nbsp;powodu braku edytora). Z&nbsp;rzeczy dobrych godny
+ polecenia jest WinEdit, który może bardzo dużo i&nbsp;składnię pliku
+ TeX-owego zna na tyle dobrze, że wyróżnia kolorami odpowiednie
+ fragmenty. Jest łatwo konfigurowalny w&nbsp;zakresie wystarczającym do
+ efektywnej pracy.
+ Między innymi umożliwia powiązanie z&nbsp;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&nbsp;jego głównych
+ zalet jest sprawdzanie na bieżąco składni wprowadzanych słów -- te
+ których brak w&nbsp;słowniku są wyróżniane.
+ Do podstawowych wad należy
+ konieczność konfigurowania właściwie wszystkiego od początku oraz to,
+ że, w&nbsp;przeciwieństwie do vima i&nbsp;Emacsa nie jest to program
+ bezpłatny. Cena jest jednak umiarkowana.
+</p>
+<p>
+ Przewidując trwały związek z&nbsp;TeX-em warto
+ usprawnić przetwarzanie
+ pliku źródłowego do postaci
+ wynikowej. Nie ma wielkiego problemu, jeśli przetwarzaniu podlega
+ jeden plik, a&nbsp;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&nbsp;szczególności rysunki
+ generowane, np. MetaPost-em) to liczba programów, które trzeba
+ uruchomić w&nbsp;ś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&nbsp;znacznie wydłuża czas oczekiwania na wynik. W&nbsp;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&nbsp;skład tego zestawu wchodzi dodatkowo jakiś
+ edytor strumieniowy np. sed, czy częściej awk lub perl (najbardziej
+ wszechstronny). W&nbsp;przypadku umieszczania w&nbsp;dokumentach ilustracji
+ lub zdjęć należy uwzględnić specjalizowane programy do przetwarzania obrazków
+ itd. Podstawową zaletą TeX jest łatwość zintegrowania go z&nbsp;dowolnym
+ używanym systemem.
+</p>
+<p>
+ Każdy może więc używać TeX dokładnie tak, jak lubi i&nbsp;tak jak mu
+ wygodnie. Trudno jest w&nbsp;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&nbsp;programów wykonujących dobrze określone
+ funkcje, takich ,,klocków'', z&nbsp;których można zbudować dowolnie
+ skomplikowane systemy przetwarzania informacji. Nie posiadający interfejsu
+ użytkownika, przetwarzający pliki w&nbsp;inne pliki i&nbsp;konfigurowalny TeX
+ łatwo daje się dopasować do potrzeb użytkownika UNIXa. Oczywiście
+ istnieje mnóstwo różnych i&nbsp;dobrych sposobów pracy z&nbsp;TeX-em. Zarówno
+ podany przykład edytora (Emacs z&nbsp;AUC&nbsp;TeX-em), jak i&nbsp;techniki
+ przetwarzania dokumentów noszą wyraźne piętno moich osobistych
+ preferencji.
+</p>
+
+<h2>AUC&nbsp;TeX</h2>
+<p>
+ AUC&nbsp;TeX to dostępne w&nbsp;edytorze <code>emacs</code>
+ zintegrowane środowisko do tworzenia i&nbsp;przetwarzania dokumentów
+ TeX-owych i&nbsp;LaTeX-owych. Możliwości AUC&nbsp;TeX-a są ogromne, na
+ szczęście nie trzeba wiedzieć wszystkiego, aby z&nbsp;niego
+ korzystać. AUC&nbsp;TeX-a można oswajać ,,krok po kroku'', podobnie jak
+ i&nbsp;samego Emacsa.
+</p>
+
+<h3>Emacs</h3>
+<p>
+ Edytor <code>emacs</code> ma długą historię w&nbsp;systemie UNIX.
+ W&nbsp;dużej części został napisany w&nbsp;języku <code>Lisp</code>
+ (dokładniej w&nbsp;dialekcie Emacs Lisp). Jest to język funkcyjny służący
+ przede wszystkim do porozumiewania się z&nbsp;Emacsem. Lisp bywał chętnie
+ stosowany w&nbsp;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&nbsp;popularnych programów napisanych w&nbsp;Lispie.
+ A&nbsp;możliwości i&nbsp;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&nbsp;niezbyt
+ zrozumiałą terminologię stosowaną w&nbsp;dokumentacji
+ i&nbsp;komunikatach.
+ Koncepcja porozumiewania się z&nbsp;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&nbsp;klawiaturze komputera PC zwykle klawiszem <code>Meta</code> jest
+ <code>Alt</code>. Jeśli jednak <code>Alt</code> został
+ przedefiniowany (np. w&nbsp;celu wprowadzania polskich znaków) to
+ <code>M-x</code> można wprowadzić sekwencyjnie wciskając
+ najpierw klawisz <code>Esc</code>, a&nbsp;potem
+ <code>x</code>. Tego typu problemy nie istnieją z&nbsp;klawiszem
+ <code>Ctrl</code>. Podstawowymi chwytami są
+ <code>Ctrl-x</code> i&nbsp;<code>Ctrl-c</code>, opisywane
+ często jako <code>C-x</code> i&nbsp;<code>C-c</code>.
+</p>
+<p>
+ Mocną stroną Emacsa jest dokumentacja (<code>C-h</code>). Funkcje przypisane
+ klawiszom zmieniają się w&nbsp;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&nbsp;innym buforze
+ (<em>buffer</em>), że w&nbsp;środowisku okienkowym może otwierać wiele okien
+ zwanych ramkami (<em>frames</em>) i&nbsp;ż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&nbsp;XEmacs dobrze wygląda
+ w&nbsp;okienkach. Poza tym w&nbsp;XEmacsie AUC TeX jest domyślnie
+ zainstalowany, co pozwala skrócić ten tekst o&nbsp;rozdział poświęcony
+ instalacji. Dodatkowo nie będę rozwijać problemu konfiguracji, którą
+ w&nbsp;XEmacsie można wykonać za pomocą myszy. Wszystkie ustawienia AUC TeX-a
+ wykonuje się wybierając myszą z&nbsp;menu <code>Options Customize Emacs Wp
+ Tex AUC Tex</code>, a&nbsp;potem już według uznania. W&nbsp;to samo miejsce
+ można trafić wciskając <code>M-x customize</code>, tyle że po drodze jest
+ więcej objaśnień i&nbsp;ł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&nbsp;katalogu domowym użytkownika. Pomocne może być odszukanie pliku
+ <code>tex.el</code> i&nbsp;<code>tex-site.el</code>, które leżą gdzieś
+ z&nbsp;innymi plikami Emacsa (ale w&nbsp;różnych katalogach -- przyda się
+ program <code>find</code>). Można w&nbsp;nich podejrzeć, jak są zadawane
+ wartości początkowe list i&nbsp;zmiennych i&nbsp;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&nbsp;tam pozamieniać wszystko to, co wymaga zmiany.
+</p>
+<p>
+ I jeszcze jedna uwaga dla początkujących: w&nbsp;Emacsie można zapisać plik
+ z&nbsp;bufora na dysk wciskając <code>C-x C-s</code>, a&nbsp;pracę
+ z&nbsp;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&nbsp;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&nbsp;klasycznych metod
+ w&nbsp;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&nbsp;tekstach poświęconych polskim ,,ogonkom''.
+</p>
+
+<h3>Uruchomienie AUC&nbsp;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&nbsp;podaniu nazwy. Podając nazwę pliku
+ z&nbsp;przyrostkiem <code>.tex</code> zmusimy edytor do wejścia w&nbsp;tryb
+ <code>LaTeX-mode</code>. Informacja o&nbsp;tym powinna pojawić się
+ w&nbsp;wierszu trybu pracy (<em>Mode Line</em>) w&nbsp;dolnej części okna
+ jako napis <code>LaTeX</code>. Można też wymusić wejście w&nbsp;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&nbsp;TeX-a, to albo nie jest on zainstalowany, albo w&nbsp;pliku
+ <code>.emacs</code> brakuje wiersza
+</p>
+<pre>
+(require 'tex-site)
+</pre>
+<p>
+ Brak zainstalowanego
+ AUC&nbsp;TeX-a może prowadzić do pomyłek ponieważ Emacs wchodzi w&nbsp;takiej
+ sytuacji w&nbsp;dużo prostszy tryb wspomagania LaTeX-a, a&nbsp;wszystko działa
+ inaczej (w&nbsp;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&nbsp;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&nbsp;TeX pyta
+ o&nbsp;nazwę środowiska i&nbsp;ewentualne dodatkowe dane. Przy pomocy
+ klawisza <code>Tab</code> lub spacji można rozwijać częściowo wpisane nazwy.
+ AUC&nbsp;TeX zna mnóstwo standardowych środowisk, poza tym potrafi uczyć się
+ nowych analizując włączane pakiety i&nbsp;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&nbsp;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&nbsp;przy ich wprowadzaniu łatwo o&nbsp;błąd. Dlatego należy korzystać
+ z&nbsp;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&nbsp;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&nbsp;funkcją
+ <code>TeX-electric-macro</code>, co umożliwia uruchamianie
+ mechanizmu rozwijania makr przez wpisanie tego znaku. Jest to metoda
+ najszybsza.
+</p>
+<p>
+ AUC&nbsp;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&nbsp;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&nbsp;TeX zapyta o&nbsp;tytuł
+ i&nbsp;etykietę związaną z&nbsp;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&nbsp;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&nbsp;dół o&nbsp;jeden.
+</p>
+<p>
+ I&nbsp;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&nbsp;<code>C-u -1 C-c C-s</code> spowoduje
+ wstawienie <code>\section</code>. Przedrostki nazw w&nbsp;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&nbsp;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&nbsp;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&nbsp;miejscu,
+ w&nbsp;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&nbsp;tekstach pisanych po angielsku używamy znaku <code>``</code> jako
+ cudzysłowu otwierającego i&nbsp;znaku <code>''</code> jako cudzysłowu
+ zamykającego. Jeśli użytkownik wpisuje <code>"</code> to AUC&nbsp;TeX zadba,
+ aby w&nbsp;tekście pojawiło się to co trzeba. W&nbsp;przypadku języka
+ polskiego (i&nbsp;spolszczonego LaTeX-a) cudzysłów otwierający oznacza się
+ w&nbsp;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&nbsp;pliku TeX-owym obejmują
+ tekst wzoru matematycznego, a&nbsp;w podwójne dolary <code>$$</code>
+ jest ujęty wzór wyeksponowany w&nbsp;osi strony. W&nbsp;celu lepszej kontroli
+ otwierania i&nbsp;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&nbsp;gdzie kończy środowisko matematyczne, a&nbsp;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&nbsp;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&nbsp;wyłącza)
+ w&nbsp;AUC TeX-u poleceniem <code>LaTeX-math-mode</code> (<code>C-c ~</code>).
+ W&nbsp;trybie matematycznym po wprowadzeniu znaku
+ ,,<code>`</code>'' klawiatura zmienia znaczenie i&nbsp;zamiast zwykłych znaków
+ pojedynczym klawiszem można wprowadzać symbole matematyczne. I&nbsp;tak
+ (w&nbsp;trybie matematycznym) sekwencja klawiszy <code>`d</code> spowoduje
+ wpisanie <code>\delta</code>, <code>`G</code> -- <code>\Gamma</code>,
+ a&nbsp;<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&nbsp;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&nbsp;TeX doskonale nas rozumie. Jeśli wpiszemy definicję
+ LaTeX-ową (<code>\renewcommand</code>) to AUC&nbsp;TeX ją rozpozna i&nbsp;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&nbsp;TeX rozpoznaje makrodefinicje zapisane w&nbsp;pliku podczas
+ parsowania dokumentu po wydaniu polecenia
+ <code>TeX-normal-mode</code> (<code>C-c C-n</code>).
+ Jeśli więc wpiszemy w&nbsp;pliku nową definicję, należy wcisnąć <code>C-c C-n</code>
+ i&nbsp;nie musimy jej dokładnie pamiętać. Informacje
+ o&nbsp;makrodefinicjach zapisywane są w&nbsp;pliku
+ <code>./auto/nazwa.el</code>.
+</p>
+<p>
+ Można wymusić parsowanie dokumentu natychmiast po jego wczytaniu
+ oraz umieszczanie informacji o&nbsp;nim w&nbsp;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&nbsp;listy etykiet pokazywanej przez mechanizm rozwijania
+ (<code>Tab</code>). I&nbsp;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&nbsp;chcemy, aby rozpoznawane były tylko etykiety musimy zadbać
+ o&nbsp;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&nbsp;wnętrza AUC TeX-a</h3>
+<p>
+ Na uwagę zasługuje możliwość uruchamiania TeX-a i&nbsp;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&nbsp;TeX zapyta jakie działania ma podjąć. Jeśli
+ w&nbsp;pliku były dokonywane jakieś zmiany, to zaproponuje jego przetworzenie
+ TeX-em. Po przetworzeniu i&nbsp;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&nbsp;przetwarzaniu, to w&nbsp;okienku obok obejrzymy wynik
+ składu.
+</p>
+<p>
+ Standardowe polecenia przetwarzania pliku źródłowego można łatwo rozszerzyć
+ o&nbsp;nasze ulubione: <code>mex</code>, <code>platex</code> czy
+ <code>pdftex</code>. Najłatwiej przez menu XEmacsa. W&nbsp;razie potrzeby
+ można skopiować odpowiedni fragment z&nbsp;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&nbsp;trudna do zaimplementowania poza
+ edytorem) jest możliwość przetworzenia tylko fragmentu pliku źródłowego.
+ W&nbsp;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&nbsp;przypadku
+ <code>TeX-command-master</code>, z&nbsp;jednym wyjątkiem -- AUC&nbsp;TeX
+ buduje z&nbsp;nagłówka i&nbsp;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&nbsp;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&nbsp;czasie przetwarzania można oglądać je
+ kolejno przy pomocy polecenia <code>TeX-next-error</code> (|C-c `|).
+ AUC&nbsp;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&nbsp;szczególności XEmacs) potrafi inteligentnie zaznaczać odpowiednie
+ fragmenty tekstu kolorami. Konfigurowanie kolorów w&nbsp;XEmacsie jest
+ proste (myszą w&nbsp;sekcji <em>faces</em> -- dlatego
+ warto używać XEmacsa). Jeśli kolorowanie nie włączyło się z&nbsp;własnej
+ woli można je wymusić poleceniem <code>font-lock-mode</code>.
+</p>
+<p>
+ Nawet bez kolorowania treść dokumentu można wprowadzić
+ w&nbsp;niezwykle czytelnej formie dzięki zaawansowanym poleceniom
+ formatowania tekstu.
+ W&nbsp;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&nbsp;TeX-a. Nie zmieściły się tematy obszerne, takie jak konfigurowanie
+ działania AUC&nbsp;TeX-a i&nbsp;liczne szczegółowe, np. praca
+ z&nbsp;dokumentami hierarchicznymi. Wszystko można doczytać
+ w&nbsp;dokumentacji. Czytając trzeba pamiętać, że AUC&nbsp;TeX jest częścią
+ edytora Emacs i&nbsp;przez cały czas można korzystać ze wszystkiego, co Emacs
+ oferuje. Przykładem jest niezależny (ale wspierany przez AUC&nbsp;TeX-a) tryb
+ ,,ukrywania'' fragmentów tekstu, włączany/wyłączany poleceniem
+ <code>outline-minor-mode</code>. Pojawiające się dodatkowe pozycje menu
+ (i&nbsp;polecenia) pozwalają wyświetlić zamiast rozdziału, podrozdziału itd.
+ tylko fragment pierwszego wiersza z&nbsp;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&nbsp;Emacsem najmilsze jest to, że wcale nie trzeba
+ go używać. Tekst można przygotować korzystając z&nbsp;jakiegokolwiek
+ edytora (np. ...Emacsa), a&nbsp;pliki źródłowe przetwarzać
+ zewnętrznie. Przypuśćmy, że kolega podesłał nam 46&nbsp;felietonów, które
+ napisał w&nbsp;ostatnim roku. Wszystkie, to kompletne pliki LaTeX-owe.
+ W&nbsp;takiej sytuacji TeX-owanie z&nbsp;wnętrza edytora zajmie zbyt dużo
+ czasu. Najszybszą metodą będzie umieszczenie wszystkich plików
+ w&nbsp;jednym katalogu i&nbsp;napisanie w&nbsp;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&nbsp;bieżącym katalogu. W&nbsp;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&nbsp;że używamy przeglądarki
+ plików PS.
+ Teraz całe TeX-owanie sprowadza się do uruchomienia
+ w&nbsp;terminalu programu <code>make</code>. Program ten domyślnie
+ wykona pierwszą regułę z&nbsp;pliku Makefile
+ (<code>all: referat.ps</code> -- zamiast nazwy
+ <code>all</code> można wstawić dowolne słowo,
+ np. <code>PsiaBuda</code>) i&nbsp;dowie się, że jesteśmy
+ zainteresowani plikiem <code>.ps</code>. Z&nbsp;trzeciej reguły
+ program wywnioskuje, że pliki <code>.ps</code> robi się z&nbsp;plików
+ <code>.dvi</code> poleceniem <code>dvips</code>. Nie ma
+ jednak pliku <code>.dvi</code>, ale o&nbsp;tym jak go zrobić mówi
+ druga reguła. A&nbsp;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&nbsp;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&nbsp;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&nbsp;co chodzi i&nbsp;w
+ edytorze przeskoczyć do właściwego wiersza, a&nbsp;TeX-owi powiedzieć
+ np. <code>x</code>. Jeżeli jednak ustawimy zmienną
+ środowiska:
+</p>
+<pre>
+TEXEDIT='emacsclient +%d %s'
+</pre>
+<p>
+lub w&nbsp;przypadku XEmacsa:
+</p>
+<pre>
+TEXEDIT='enu +%d %s'
+</pre>
+<p>
+ i&nbsp;jeżeli używamy Emacsa w&nbsp;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&nbsp;błędem i&nbsp;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&nbsp;powiedzieć klientowi, że już po
+ wszystkim (<code>C-x #</code>). Dla jasności: serwer to Emacs, a&nbsp;
+ klient to TeX...
+</p>
+<p>
+ Korzystanie z&nbsp;emacsowego klienta i&nbsp;serwera pomaga w&nbsp;wielu
+ trudnych sytuacjach. Wyobraźmy sobie książkę mającą 42&nbsp;rozdziały,
+ każdy zapisany w&nbsp;oddzielnym pliku. Jeśli w&nbsp;kilkunastu plikach zamiast
+ <code>\ala</code> omyłkowo wpisaliśmy <code>\ola</code>,
+ z&nbsp;tym że czasem <code>\ola</code> jest dobrze i&nbsp;ma zostać, to
+ zanosi się na dłuższe poprawianie. A&nbsp;można z&nbsp;poziomu interpretatora
+ poleceń shell napisać:
+</p>
+<pre>
+~$ gnuclient `grep -l \\ola *.tex`
+</pre>
+<p>
+ Potem wystarczy wciskanie klawisza <code>C-s</code>
+ i&nbsp;czasem <code>C-x e</code> (pierwszy raz oczywiście również
+ <code>C-x (</code> i&nbsp;<code>C-x )</code>). Jeżeli jednak
+ ktoś ma tendencje do zapominania o&nbsp;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&nbsp;pliku <code>.emacs</code>:
+</p>
+<pre>
+(gnuserv-start)
+</pre>
+<p>
+ Bardzo niechętnie używam możliwości przetwarzania pliku
+ TeX-owego z&nbsp;wnętrza edytora.
+ Nawet pisząc niewielki dokument warto (moim zdaniem) korzystać
+ z&nbsp;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&nbsp;bezbolesne
+ korzystanie z&nbsp;dobrodziejstw oferowanych przez TeX-a.
+ We&nbsp;współczesnym sprzęcie karta graficzna i&nbsp;monitor pozwalają na pracę
+ w&nbsp;systemie okienkowym (np. XWindow);
+ można także na bieżąco oglądać
+ w&nbsp;sąsiednim oknie gotowy dokument. W&nbsp;przypadku korzystania z&nbsp;XEmacsa
+ (lub podobnego edytora) pracować z&nbsp;LaTeX-em mogą nawet ci
+ użytkownicy, którzy nie zdejmują ręki z&nbsp;myszy.
+</p>
+<p>
+ Mam nadzieję, że udało mi się pokazać, jak duże możliwości stoją
+ przed kimś, kto chce wygodnie i&nbsp;efektywnie używać TeX-a. Opisałem
+ tylko najprostsze warianty konfiguracji środowiska pracy. Istnieje
+ wiele sposobów i&nbsp;sposobików, o&nbsp;których nie wspomniałem i&nbsp;jak sądzę,
+ jeszcze więcej takich, o&nbsp;których nigdy nie słyszałem. Wszystkim życzę
+ miłego TeX-owania.
+</p>
+<hr>
+<p>
+<em>Adam Dawidziuk</em>
+<P><i> Tekst jest przedrukiem z&nbsp;Biuletynu GUST, nr&nbsp;11/1998,
+s.&nbsp;58--64.</i><BR>(c) Polska Grupa Użytkowników Systemu TeX
+<BR><i>Ostatnia modyfikacja 15.01.2000</i>
+</P>
+</body>
+</html>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-1.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-1.html
new file mode 100644
index 0000000000..c11b3d3365
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-1.html
@@ -0,0 +1,41 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Wstęp</TITLE>
+</HEAD>
+<BODY>
+<H1>1. <A NAME="s1"></A>Wstęp</H1>
+<P>
+<A HREF="bibtex.html#toc1">Spis treści rozdziału</A></P>
+
+<P>
+Osoby piszące sporo publikacji spotykają się w pewnym momencie z
+problemem cytowania literatury. W różnych dokumentach pojawiają
+się te same odwołania do literatury. Różni wydawcy wymagają różnego
+sposobu formatowania spisów cytowanych publikacji lub różnych form
+odwołań w tekście. Dla pojedynczego dokumentu te problemy są
+nieistotne i zwykle łatwiej w takim przypadku złożyć spis literatury
+ręcznie, używając środowiska <CODE>thebibliography</CODE>. Jeżeli jednak
+istnieje potrzeba cytowania tych samych pozycji w różnych dokumentach to
+warto pracę zautomatyzować.</P>
+<P>Istnieje odpowiednie narzędzie do obróbki bibliografii --
+<CODE>bibtex</CODE> -- program służący do wspomagania tworzenia spisów
+literatury, napisany przez Orena Patashnika. Program ten korzysta z
+bibliograficznej bazy danych zawartej w plikach typu bib. Pozwala na
+automatyczny wybór cytowanych pozycji spośród wszystkich zawartych w
+bazie (lub bazach -- <CODE>bibtex</CODE> może korzystać jednocześnie z kilku
+plików). Razem z programem dostarczonych jest kilka standardowych
+stylów formatowania spisów literatury oraz odwołań do nich. Style te
+-- zapisane w specjalnym języku -- można modyfikować lub tworzyć nowe
+własne.</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-2.html">Następny </A> rozdział<P>
+Spis treści <A HREF="bibtex.html#toc1"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-2.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-2.html
new file mode 100644
index 0000000000..b0b98da4a1
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-2.html
@@ -0,0 +1,76 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Sposób działania programu</TITLE>
+</HEAD>
+<BODY>
+<H1>2. <A NAME="s2"></A>Sposób działania programu</H1>
+<P>
+<A HREF="bibtex.html#toc2">Spis treści rozdziału</A></P>
+
+<P>Korzystając z bibtexa, odwolania do literatury zaznaczamy w zwyczajny
+sposób przy pomocy polecenia <CODE>\cite</CODE>, podając jako argument zbiór
+kluczy identyfikujących odpowiednie pozycje np.:
+<HR>
+<PRE>
+ Więcej na ten temat w pracach \cite{raport,bibtex88}
+</PRE>
+<HR>
+
+W miejscu gdzie chcemy
+otrzymać spis literatury zamiast środowiska <CODE>thebibliography</CODE> i
+listy pozycji umieszczamy polecenie <CODE>\bibliography</CODE> listą plików
+zawierających bazę bibliograficzną jako argumentem np.:
+<HR>
+<PRE>
+ \bibliography{rfc, mybib}
+</PRE>
+<HR>
+</P>
+<P>W powyższym przykładzie zalecamy utworzenie spisu literatury na
+podstawie dwóch plików: <CODE>rfc.bib</CODE> oraz <CODE>mybib.bib</CODE>.</P>
+<P>Dodatkowo w ciele dokumentu (gdzieś między <CODE>\begin{document}</CODE> a
+<CODE>\end{document}</CODE>) musimy podać
+<A HREF="bibtex-7.html#style">styl</A>
+
+formatowania spisu bibliografii np.:
+<HR>
+<PRE>
+ \bibliographystyle{plain}
+</PRE>
+<HR>
+</P>
+<P></P>
+<P></P>
+<P>Jeśli chcemy umieścić jakąś pozycję w spisie literatury, a nie
+odwołujemy się do nie w dokumentcie poleceniem <CODE>\cite</CODE>, to możemy
+użyć polecenia <CODE>\nocite</CODE> podając jako jego argument klucz
+identyfikujący daną pozycję. Argumentem polecenia <CODE>\nocite</CODE> może
+być także <CODE>*</CODE> -- co oznacza, że chcemy aby wszystkie pozycje
+znajdujące się w bazie danych zostały umieszczone w spisie literatury.
+<HR>
+<PRE>
+ \nocite{aup}
+ \nocite{*}
+</PRE>
+<HR>
+</P>
+<P>W czasie przetwarzania pliku z dokumentem LaTeX zapisuje wszystkie
+odwołania do literatury do pliku <CODE>.aux</CODE>. Zapisuje tam także
+nazwy baz danych, z którym ma korzystać bibtex oraz styl formatowania
+bibliografii. Program bibtex czyta zawartość pliku <CODE>.aux</CODE>, po czym
+wybiera z odpowiednich plików <CODE>.bib</CODE> pozycje literatury, i zapisuje
+do pliku <CODE>.bbl</CODE> formatując zgonie z podanym stylem.</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-3.html">Następny </A> rozdział,
+<A HREF="bibtex-1.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc2"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-3.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-3.html
new file mode 100644
index 0000000000..ba981427b4
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-3.html
@@ -0,0 +1,244 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Format pliku bib</TITLE>
+</HEAD>
+<BODY>
+<H1>3. <A NAME="s3"></A>Format pliku bib</H1>
+<P>
+<A HREF="bibtex.html#toc3">Spis treści rozdziału</A></P>
+
+<P>Plik bib zawiera listę rekordów oraz poleceń dodatkowych takich jak
+<A HREF="#skroty">skróty</A>
+ lub definicja
+<A HREF="#preamble">nagłówka</A>
+, który ma się pojawić w pliku <CODE>.bbl</CODE>.
+Istnieją różne typy rekordów --
+odpowiednie dla opisania różnych typów publikacji. Każdy z rekordów
+reprezentuje jedną pozycję literatury i składa się z wielu pól. Różne
+typu rekordów mogą zawierać różne pola. Dla każdego typu rekordu
+istnieją trzy zbiory pól:</P>
+<P>
+<UL>
+<LI>pola <I>wymagane</I> (required) -- takie, które muszą wystąpić.
+Ich brak będzie sygnalizowany przez program i może spowodować
+niewłaściwe sformatowanie pozycji.
+</LI>
+<LI>pola <I>opcjonalne</I> (optional) -- takie, które mogą wystąpić,
+ale nie muszą. Jeśli się pojawią to informacja w nich zawarta zostanie
+wykorzystana. Ich brak nie spowoduje błędów formatowania.
+</LI>
+<LI>pola <I>ignorowane</I> (ignored) -- wszystkie pola, które nie są
+wymagane ani opcjonalne są przez bibtexa ignorowane. Pola takie można
+tworzyć bez ograniczeń.
+Pole ignorowane można np. wykorzystać do przechowywania
+streszczeń bądź słów kluczowych publikacji. W razie potrzeby można
+napisać styl drukujący np. tytuły artykułów razem ze streszceniami
+i/lub słowami kluczowymi.<BR>
+ <B>Uwaga</B> -- Błąd literowy może spowodować zignorowanie pola,
+które powinno się pojawić w spisie. Jeśli będzie to pole wymagane, to
+bibtex wypisze ostrzeżenie, ale jeśli opcjonalne -- to pominie je bez
+żadnego sygnału.
+</LI>
+</UL>
+</P>
+<P>Format zapisu rekordów najlepiej zaprezentować na przykladzie:
+<HR>
+<PRE>
+ @book{PERL,
+ author = &quot;Larry Wall and Randal L. Schwartz&quot;,
+ title = &quot;Programming perl&quot;,
+ publisher = &quot;O'Reilly \&amp; Associates, Inc.&quot;,
+ year = &quot;1992&quot;,
+ address = &quot;Sebastopol, CA&quot;
+ }
+</PRE>
+<HR>
+
+Słowo zaczynające się od znaku <CODE>@</CODE> określa typ cytowanej pozycji --
+w naszym przypadku jest to książka. <CODE>PERL</CODE> jest kluczem służącym do
+identyfikacji -- to właśnie jego używamy w poleceniu <CODE>\cite</CODE> chcąc
+odwołać się do wybranej pozycji. Dalej następuje lista pól
+rozdzielonych przecinkami. Wartości pól zamknięte są w cudzysłowach.
+Zamiast nich można używać nawiasów klamrowych. Także nawiasy klamrowe
+obejmujące cały rekord można zastąpić nawiasami okrągłymi.
+Spacje wokół znaku <CODE>=</CODE> są opcjonalne.
+Znaki nowego wiersza są traktowane jak spacje, a więcej niż jedna
+spacja tak samo jak pojedyncza. W identyfikatorach pól i typów
+rekordów nie są rozróżniane małe i duże litery.
+Można więc sformatować nasz rekord w równoważnej postaci:
+<HR>
+<PRE>
+ @Book(PERL,
+ AUTHOR={Larry Wall and Randal L. Schwartz},
+ Title={Programming perl},
+
+
+ PUBlisHER={O'Reilly \&amp; Associates, Inc.},yEaR={1992},
+ aDDRESS={Sebastopol, CA})
+</PRE>
+<HR>
+</P>
+<P>Ponieważ bibtex w niektórych stylach zmienia czasem duże litery na
+małe, a nie zawsze jest to dopuszczczalne (np. gdy w tytule występuje
+nazwisko), wzięcie fragmentu tekstu w nawiasy klamrowe {}
+zapobiega takiemu działaniu.
+Na przykła aby nie dostać tytułu ,,Pan tadeusz'' powinniśmy zapisać go
+jako <CODE>title = "Pan {T}adeusz"</CODE>.</P>
+<P></P>
+<P></P>
+<A NAME="preamble"></A> <A NAME="skroty"></A> <H2>3.1 <A NAME="ss3.1"></A> Skróty i nagłówek</H2>
+
+<P>Tekst pola może być zastąpiony skrótem. Warto stosować skróty dla
+często używanych nazw np. tytułu czasopisma, z którego artykuły
+pojawiają się w bazie danych często albo nazwy znanego wydanictwa.</P>
+<P>Skrótem może być dowolny ciąg znaków zaczynający się od litery i nie
+zawierający znaków:
+<PRE>
+ &quot; # % ' ( ) , = { }
+</PRE>
+</P>
+<P>Niektóre skróty zdefiniowane są w stylu spisu literatury np.
+trzyliterowe skróty angielskich nazw miesięcy <CODE>jan</CODE>, <CODE>feb</CODE> itd.</P>
+<P>Własne skróty można tworzyć posługując się poleceniem <CODE>@string</CODE>
+np.:
+<HR>
+<PRE>
+ @string{acs = &quot;Archives of Control Sciences&quot;}
+ @string{WNT = &quot;Wydawnictwa Naukowo Techniczne&quot;}
+</PRE>
+<HR>
+
+Zdefiniowanych powyżej skrótów możemy używać np. tak:
+<HR>
+<PRE>
+ journal = acs
+ publisher = WNT
+</PRE>
+<HR>
+
+co jest równoważne z:
+<HR>
+<PRE>
+ journal = &quot;Archives of Control Sciences&quot;
+ publisher = &quot;Wydawnictwa Naukowo Techniczne&quot;
+</PRE>
+<HR>
+</P>
+<P>Nagłówek definiujemy podobnie jak skróty, nie wpisujemy tutaj jednak
+nazwy, ani znaku równości -- tylko ciąg znaków w cudzysłowach.
+Nagłówek może służyć do dodania pewnych definicji na początku
+bibliografii.
+<HR>
+<PRE>
+ @Preamble{ &quot;\newcommand{\swap}[2]{#2#1}&quot;
+ # &quot;\renewcommand{\em}{\bf}&quot; }
+</PRE>
+<HR>
+
+W powyższym przykładzie definiujemy polecenie <CODE>\swap</CODE> i
+predefiniowujemy polecenie <CODE>\em</CODE>. Warto zwrócić uwagę, na
+znak konkatenacji <CODE>#</CODE>, dzięki któremu możemy definiować nagłówki
+wieloliniowe. Pelcenia <CODE>@preamble</CODE> można używać wielokrotnie, ale
+bezpieczniej jest używać konkatenacji, do wpisywania nagłówków
+wieloliniowych.</P>
+<P></P>
+
+<H2>3.2 <A NAME="ss3.2"></A> Rekordy</H2>
+
+<P>Standardowo dostępne są następujące typy rekordów:<BR>
+<A HREF="bibtex-4.html#article">article</A>
+,
+<A HREF="bibtex-4.html#book">book</A>
+,
+<A HREF="bibtex-4.html#booklet">booklet</A>
+,
+<A HREF="bibtex-4.html#conference">conference</A>
+,
+<A HREF="bibtex-4.html#inbook">inbook</A>
+,
+<A HREF="bibtex-4.html#incollection">incollection</A>
+,
+<A HREF="bibtex-4.html#inproceedings">inproceedings</A>
+,
+<A HREF="bibtex-4.html#manual">manual</A>
+,
+<A HREF="bibtex-4.html#mastersthesis">mastersthesis</A>
+,
+<A HREF="bibtex-4.html#misc">misc</A>
+,
+<A HREF="bibtex-4.html#phdthesis">phdthesis</A>
+,
+<A HREF="bibtex-4.html#proceedings">proceedings</A>
+,
+<A HREF="bibtex-4.html#techreport">techreport</A>
+,
+<A HREF="bibtex-4.html#unpublished">unpublished</A>
+.</P>
+<P></P>
+
+<H2>3.3 <A NAME="ss3.3"></A> Pola</H2>
+
+<P>Standardowe typy rekordów są następujące:<BR>
+<A HREF="bibtex-5.html#address">address</A>
+,
+<A HREF="bibtex-5.html#annote">annote</A>
+,
+<A HREF="bibtex-5.html#author">author</A>
+,
+<A HREF="bibtex-5.html#booktitle">booktitle</A>
+,
+<A HREF="bibtex-5.html#chapter">chapter</A>
+,
+<A HREF="bibtex-5.html#crossref">crossref</A>
+,
+<A HREF="bibtex-5.html#edition">edition</A>
+,
+<A HREF="bibtex-5.html#editor">editor</A>
+,
+<A HREF="bibtex-5.html#howpublished">howpublished</A>
+,
+<A HREF="bibtex-5.html#institution">institution</A>
+,
+<A HREF="bibtex-5.html#journal">journal</A>
+,
+<A HREF="bibtex-5.html#key">key</A>
+,
+<A HREF="bibtex-5.html#month">month</A>
+,
+<A HREF="bibtex-5.html#note">note</A>
+,
+<A HREF="bibtex-5.html#number">number</A>
+,
+<A HREF="bibtex-5.html#organization">organization</A>
+,
+<A HREF="bibtex-5.html#pages">pages</A>
+,
+<A HREF="bibtex-5.html#publisher">publisher</A>
+,
+<A HREF="bibtex-5.html#school">school</A>
+,
+<A HREF="bibtex-5.html#series">series</A>
+,
+<A HREF="bibtex-5.html#title">title</A>
+,
+<A HREF="bibtex-5.html#type">type</A>
+,
+<A HREF="bibtex-5.html#volume">volume</A>
+,
+<A HREF="bibtex-5.html#year">year</A>
+.</P>
+<P></P>
+
+<HR>
+<P>
+<A HREF="bibtex-4.html">Następny </A> rozdział,
+<A HREF="bibtex-2.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc3"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-4.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-4.html
new file mode 100644
index 0000000000..dff846830b
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-4.html
@@ -0,0 +1,168 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Typy rekordów</TITLE>
+</HEAD>
+<BODY>
+<H1>4. <A NAME="s4"></A>Typy rekordów</H1>
+<P>
+<A HREF="bibtex.html#toc4">Spis treści rozdziału</A></P>
+
+<P>
+<UL>
+<LI>
+<A NAME="article"></A>
+<B>article</B><P>Artykuł w czasopiśmie.
+<UL>
+<LI>pola wymagane -- <EM>author, title, journal, year</EM></LI>
+<LI>pola opcjonalne -- <EM>volume, number, pages, month, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="book"></A>
+<B>book</B><P>Książka.
+<UL>
+<LI>pola wymagane -- <EM>author</EM> lub <EM>editor, title,
+publisher, year</EM></LI>
+<LI>pola opcjonalne -- <EM>volume, series, address, edition, month,
+note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="booklet"></A>
+<B>booklet</B><P>Książka bez wydawcy.
+<UL>
+<LI>pola wymagane -- <EM>title</EM></LI>
+<LI>pola opcjonalne -- <EM>author, howpublished, address, month,
+year, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="conference"></A>
+<B>conference</B><P>Synonim dla
+<A HREF="#inproceedings">inproceedings</A>
+</P>
+</LI>
+<LI>
+<A NAME="inbook"></A>
+<B>inbook</B><P>Część książki -- rozdział lub strony.
+<UL>
+<LI>pola wymagane -- <EM>author</EM> lub <EM>editor, title, chapter lub/i
+pages, publisher, year</EM></LI>
+<LI>pola opcjonalne -- <EM>volume</EM> lub <EM>number, series,
+type, address, edition, month, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="incollection"></A>
+<B>incollection</B><P>Część książki z własnym tytułem.
+<UL>
+<LI>pola wymagane -- <EM>author, title, booktitle, publisher, year</EM></LI>
+<LI>pola opcjonalne -- <EM>editor, volume</EM> lub <EM>number,
+series, type, chapter, pages, address, edition, month, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="inproceedings"></A>
+<B>inproceedings</B><P>Artykuł w materiałach konferencyjnych.
+<UL>
+<LI>pola wymagane -- <EM>author, title, booktitle, year</EM></LI>
+<LI>pola opcjonalne -- <EM>editor, volume lub number, series,
+pages, address, month, organization, publisher, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="manual"></A>
+<B>manual</B><P>Dokumentacja techniczna.
+<UL>
+<LI>pola wymagane -- <EM>title</EM></LI>
+<LI>pola opcjonalne -- <EM>author, organization, address, edition,
+month, year, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="mastersthesis"></A>
+<B>mastersthesis</B><P>Praca magisterska.
+<UL>
+<LI>pola wymagane -- <EM>author, title, school, year</EM></LI>
+<LI>pola opcjonalne -- <EM>type, address, month, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="misc"></A>
+<B>misc</B><P>Publikacja nie pasująca do żadnego innego typu.
+<UL>
+<LI>pola wymagane -- brak</LI>
+<LI>pola opcjonalne -- <EM>author, title, howpublished, month,
+year, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="phdthesis"></A>
+<B>phdthesis</B><P>Praca doktorska.
+<UL>
+<LI>pola wymagane -- <EM>author, title, school, year</EM></LI>
+<LI>pola opcjonalne -- <EM>type, address, month, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="proceedings"></A>
+<B>proceedings</B><P>Materiały konferencyjne.
+<UL>
+<LI>pola wymagane -- <EM>title, year</EM></LI>
+<LI>pola opcjonalne -- <EM>editor, volume lub number, series,
+address, address, month, organization, publisher, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="techreport"></A>
+<B>techreport</B><P>Raport uczelni lub innej instytucji, zwykle wchodzący w skład
+numerowanej serii.
+<UL>
+<LI>pola wymagane -- <EM>author, title, instutution, year</EM></LI>
+<LI>pola opcjonalne -- <EM>editor, volume</EM> lub <EM>number, series,
+address, address, month, organization, publisher, note</EM></LI>
+</UL>
+</P>
+</LI>
+<LI>
+<A NAME="unpublished"></A>
+<B>unpublished</B><P>Dokument formalnie nie opublikowany.
+<UL>
+<LI>pola wymagane -- <EM>author, title, note</EM></LI>
+<LI>pola opcjonalne -- <EM>month, year</EM></LI>
+</UL>
+</P>
+</LI>
+</UL>
+</P>
+<P>Oprócz pól wymienionych na powyższej liście, każdy z rekordów może
+zawierać opcjonalne pole <EM>key</EM>, wykorzystywane przy sortowaniu,
+tworzeniu odwołań i etykiet dla <CODE>\bibitem</CODE>. Pole takie powinno
+się pojawić dla rekordów, w których brakuje pola <EM>author</EM> lub
+<EM>editor</EM>. Nie należy mylić pole <EM>key</EM> z etykietą używaną w
+poleceniu <CODE>\cite</CODE>.</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-5.html">Następny </A> rozdział,
+<A HREF="bibtex-3.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc4"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-5.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-5.html
new file mode 100644
index 0000000000..f122be0620
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-5.html
@@ -0,0 +1,138 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Typy pól</TITLE>
+</HEAD>
+<BODY>
+<H1>5. <A NAME="s5"></A>Typy pól</H1>
+<P>
+<A HREF="bibtex.html#toc5">Spis treści rozdziału</A></P>
+
+<P>
+<UL>
+<LI>
+<A NAME="address"></A>
+<B>address</B><P>Adres wydawcy (zwykle miasto).</P>
+</LI>
+<LI>
+<A NAME="annote"></A>
+<B>annote</B><P>Komentarz -- pole nie wykorzystywana przez standardowe
+style. Można jednak napisać styl używający tego pola.</P>
+</LI>
+<LI>
+<A NAME="author"></A>
+<B>author</B><P>Imiona i nazwiska autora lub autorów.
+<A HREF="bibtex-6.html#nazwiska">Wpisywanie nazwisk.</A>
+</P>
+</LI>
+<LI>
+<A NAME="booktitle"></A>
+<B>booktitle</B><P>Tytuł książki, której fragment jest cytowany.</P>
+</LI>
+<LI>
+<A NAME="chapter"></A>
+<B>chapter</B><P>Numer rozdziału.</P>
+</LI>
+<LI>
+<A NAME="crossref"></A>
+<B>crossref</B><P>Klucz pozycji bibliograficznej do której się odwołuje pozycja bieżąca.</P>
+</LI>
+<LI>
+<A NAME="edition"></A>
+<B>edition</B><P>Wydanie książki.</P>
+</LI>
+<LI>
+<A NAME="editor"></A>
+<B>editor</B><P>Imiona i nazwiska redaktorów. Jeżeli pole to występuje razem z
+polem <EM>author</EM> to oznacza redaktora większej całości, zktórej
+pochodzi cytowana praca.
+<A HREF="bibtex-6.html#nazwiska">Wpisywanie nazwisk.</A>
+</P>
+</LI>
+<LI>
+<A NAME="howpublished"></A>
+<B>howpublished</B><P>Sposób wydania nietypowej pozycji.</P>
+</LI>
+<LI>
+<A NAME="institution"></A>
+<B>institution</B><P>Instytucja, która opublikowała pracę.</P>
+</LI>
+<LI>
+<A NAME="journal"></A>
+<B>journal</B><P>Nazwa czasopisma. Dla często cytowanych czasopism warto używać
+<A HREF="bibtex-3.html#skroty">skrótów.</A>
+</P>
+</LI>
+<LI>
+<A NAME="key"></A>
+<B>key</B><P>Używany do sortowania jeżeli brakuje pola <EM>author</EM> lub
+<EM>editor</EM>, a także jako etykieta przy odwoływaniu się z jednej
+pozycji do innej przy pomocy <EM>crossref</EM>.</P>
+</LI>
+<LI>
+<A NAME="month"></A>
+<B>month</B><P>Miesiąc wydania lub napisania pracy. Można używać zdefiniowanych w
+standardowych stylach skrótów nazw angielskich.</P>
+</LI>
+<LI>
+<A NAME="note"></A>
+<B>note</B><P>Dodatkowa informacja dla czytelnika. Pole powinno zaczynać się z
+dużej litery.</P>
+</LI>
+<LI>
+<A NAME="number"></A>
+<B>number</B><P>Numer czasopisma lub raportu.</P>
+</LI>
+<LI>
+<A NAME="organization"></A>
+<B>organization</B><P>Organizacja wspomagająca konferencję, lub wydająca manual.</P>
+</LI>
+<LI>
+<A NAME="pages"></A>
+<B>pages</B><P>Zakresy lub numery stron. Można wprowadzać więcej niż jeden zakres
+jednocześnie np. <CODE>7,10,20--34</CODE>.</P>
+</LI>
+<LI>
+<A NAME="publisher"></A>
+<B>publisher</B><P>Nazwa wydawcy.</P>
+</LI>
+<LI>
+<A NAME="school"></A>
+<B>school</B><P>Nazwa uczelni, w której obroniona została praca.</P>
+</LI>
+<LI>
+<A NAME="series"></A>
+<B>series</B><P>Nazwa serii wydawniczej.</P>
+</LI>
+<LI>
+<A NAME="title"></A>
+<B>title</B><P>Tytuł pozycji.</P>
+</LI>
+<LI>
+<A NAME="type"></A>
+<B>type</B><P>Rodzaj raportu np. <EM>Tajne</EM>.</P>
+</LI>
+<LI>
+<A NAME="volume"></A>
+<B>volume</B><P>Tom czasopisma lub wielotomowej książki.</P>
+</LI>
+<LI>
+<A NAME="year"></A>
+<B>year</B><P>Rok wydania lub napisania pracy. Powinien składać się z samych
+cyfr.</P>
+</LI>
+</UL>
+</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-6.html">Następny </A> rozdział,
+<A HREF="bibtex-4.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc5"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-6.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-6.html
new file mode 100644
index 0000000000..a8be9092ab
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-6.html
@@ -0,0 +1,50 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Wpisywanie nazwisk</TITLE>
+</HEAD>
+<BODY>
+<A NAME="nazwiska"></A> <H1>6. <A NAME="s6"></A>Wpisywanie nazwisk</H1>
+<P>
+<A HREF="bibtex.html#toc6">Spis treści rozdziału</A></P>
+
+<P></P>
+<P>Przy formatowaniu nazwisk należy się stosować do pewnej konwencji, aby
+uniknąć niepodzianek.</P>
+<P>Przede wszystkim, jeżeli praca ma wielu autorów to należy ich
+rozdzielać słówkiem <EM>and</EM>, a nie przecinkami. Przecinki służą tutaj
+do oddzielenia nazwiska od imion np.
+<HR>
+<PRE>
+ author = &quot;Boruta, Jan Maria and Piotr Tomasz Dłucki&quot;,
+</PRE>
+<HR>
+
+Powyższy przykład prezentuje dwie dopuszczalne formy zapisywania
+nazwisk -- w pierwszej z nich wszystko, co występuje od początku do
+przecinka jest traktowane jako nazwisko, a po przecinku są imiona -- w
+drugiej najpierw podajemy imiona, nazwisko jest słowem ostatnim
+(chyba, że słowo przedostatnie nie zaczyna się z dużej litery).</P>
+<P>W nazwisku mogą występować dodatkowe słówka typu <EM>von</EM> tak jak np.
+<HR>
+<PRE>
+ author = &quot;Ludwig von Beethoven&quot;
+ author = &quot;von Bethoven, Ludwig&quot;
+</PRE>
+<HR>
+
+Obie powyższe formy są poprawne i w pierwszej z nich do nazwiska
+należy także słówko <EM>von</EM>.</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-7.html">Następny </A> rozdział,
+<A HREF="bibtex-5.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc6"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-7.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-7.html
new file mode 100644
index 0000000000..af3bc0d954
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-7.html
@@ -0,0 +1,40 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Style formatowania</TITLE>
+</HEAD>
+<BODY>
+<A NAME="style"></A> <H1>7. <A NAME="s7"></A>Style formatowania</H1>
+<P>
+<A HREF="bibtex.html#toc7">Spis treści rozdziału</A></P>
+
+<P>
+Style formatowania spisów literatury pisane są w specjalnym
+nienazwanym języku i przezchowywane w plikach <CODE>.bst</CODE>.
+Standardowo dostępne są cztery style:
+<UL>
+<LI><B>plain</B> -- pozycje są posortowane alfabetycznie i
+ponumerowane.</LI>
+<LI><B>usrt</B> -- tak jak <EM>plain</EM>, ale pozycje pojawiają się w
+kolejności ich cytowania.</LI>
+<LI><B>alpha</B> -- pozycje są posortowane, ale zamiast numerów mają
+etykiety typu <EM>Gu96</EM>.</LI>
+<LI><B>abbrv</B> -- Format podobny do <EM>plain</EM>, ale imiona autorów,
+nazwy miesięcy i nazwy czasopism są skracane.</LI>
+</UL>
+</P>
+<P>Istnieje także całe mnóstwo dodatkowych stylów formatowania dostępnych
+np. z sieci archiwów CTAN (katalog <CODE>biblio/bibtex</CODE>).</P>
+<P></P>
+<HR>
+<P>
+<A HREF="bibtex-8.html">Następny </A> rozdział,
+<A HREF="bibtex-6.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc7"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex-8.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-8.html
new file mode 100644
index 0000000000..758515fb79
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex-8.html
@@ -0,0 +1,95 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Narzędzia dodatkowe</TITLE>
+</HEAD>
+<BODY>
+<H1>8. <A NAME="s8"></A>Narzędzia dodatkowe</H1>
+<P>
+<A HREF="bibtex.html#toc8">Spis treści rozdziału</A></P>
+
+<P></P>
+<P></P>
+<H2>8.1 <A NAME="ss8.1"></A> Pożyteczne pakiety LaTeXowe</H2>
+
+<P></P>
+<P></P>
+<H3>Sortowanie i ,,kompresowanie'' odwołań</H3>
+
+<P>Do porządkowania listy odwołań służy pakiet <B>\cite.sty</B>. Styl
+ten sortuje odwołania i tworzy zakresy odwołań np.
+[14, 1, 15, 10, 16, 2, 3, 11] przerobi na [1-3, 10, 11,
+14-16].</P>
+<P></P>
+<H3>Wiele spisów w jednym dokumencie</H3>
+
+<P>W większych dokumentach z wieloma niezależnymi częściami (np. w
+materiałach konferencyjnych, lub książkach skaładających się z części
+napisanych przez różnych autorów) istnieje potrzeba umieszczenia
+oddzielnych spisów literatury dla każdej z części. Istnieją pakiety
+LaTeXowe, które pomagają poradzić sobie w takiej sytuacji. Jednym z
+nich jest <CODE>chapterbib</CODE>, a drugim <CODE>bibunits</CODE> (ten pakiet nie może
+być używany bez poprawek pod DOSem, gdyż tworzy pliki zawierające dwie
+kropki w nazwie).</P>
+<P>
+<UL>
+<LI><B>chapterbib</B><P>Przy użyciu tego pakietu można tworzyć oddzielne spisy literatury dla
+części dokumentu włączanych poleceniem <CODE>\include</CODE>. W każdym z
+włączanych plików powinny pojawić się polecenia
+<CODE>\bibliography</CODE> i <CODE>\bibliographystyle</CODE>. Po
+przetworzeniu dokumentu LaTeXem należy uruchomić program Bibtex
+oddzielnie dla każdego z włączanych plików, co spowoduje powstanie
+oddzielnych plików <CODE>.bbl</CODE>, które zostaną włączone w odpowiedznich
+miejscach.</P>
+<P></P>
+</LI>
+<LI><B>bibunits</B><P>Pakiet <CODE>bibunits</CODE> potrafi stworzyć oddzielne spisy literatury dla
+różnych części dokumentu, którymi mogą być rozdziały
+<CODE>\chapter</CODE>, podrozdziały <CODE>\section</CODE> lub fragmenty
+tekstu zamknięte w środowisku <CODE>bibunit</CODE>. Pakiet rozdziela odwołania
+do literatury z poszczególnych części, do oddzielnych plików, które
+muszą być przetworzone Bibtexem.</P>
+</LI>
+</UL>
+</P>
+<P></P>
+
+<H2>8.2 <A NAME="ss8.2"></A> Programy dodatkowe</H2>
+
+<P>Istnieje także wiele programów dodatkowych (mniej lub bardziej
+przydatnych) służących do zarządzania bibliograficznymi bazami danych.
+Poniżej opisanych jest kilka ciekawszych narzędzi.</P>
+<P>
+<UL>
+<LI><B>aux2bib</B><P>Skrypt perlowy, który z pliku <CODE>.aux</CODE> tworzy przenośny plik
+<CODE>.bib</CODE>. Porzyteczny kiedy istnieje potrzeba przesłania gdzieś
+pliku LaTeXowego wraz z bibliografią. Skrypt ten wybiera ze
+wszystkich odpowiednich baz pozycje cytowane w tekście i umieszcza
+je w nowym pliku <CODE>.bib</CODE> rozwijając przy okazji wszystkie
+odniesienia i skróty.</P>
+</LI>
+<LI><B>printbib</B><P>Skrypt w <CODE>csh</CODE>, który tworzy z pliku <CODE>.bib</CODE> listę pozycji w
+pliku <CODE>.dvi</CODE>. Lista jest posortowana alfabetycznie względem
+kluczy i zawiera także zawartość pola <CODE>abstract</CODE>.</P>
+</LI>
+<LI><B>bibclean</B><P>Pożyteczny program, do sprawdzania poprawności i formatowania baz
+bibliograficzych. </P>
+</LI>
+<LI><B>bibview</B><P>Program napisany pod X-Window, służący do oglądania i edycji baz
+bibliograficznych. Niestety plik z polskimi literami uznawany nie
+jest przez niego za plik bibtexowy.</P>
+</LI>
+</UL>
+</P>
+
+<HR>
+<P>
+<A HREF="bibtex-7.html">Poprzedni </A> rozdział
+<P>
+Spis treści <A HREF="bibtex.html#toc8"> rozdziału</A>,
+ Główny <A HREF="bibtex.html#toc"> spis treści</A></P>
+<P>
+<A HREF="bibtex.html">Początek</A> dokumentu,
+ <A HREF="#0"> Początek rozdziału</A></P>
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/bibtex/bibtex.html b/info/tex-virtual-academy-pl/prog/bibtex/bibtex.html
new file mode 100644
index 0000000000..f26cc22d10
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/bibtex/bibtex.html
@@ -0,0 +1,60 @@
+<HTML>
+<HEAD>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Bibliografia w LaTeXu - program bibtex</TITLE>
+</HEAD>
+<BODY>
+<H1>Bibliografia w LaTeXu - program bibtex</H1>
+
+<H2>
+<A HREF="mailto:P.Bolek@ia.pw.edu.pl">Piotr Bolek</A>
+</H2> Thu Jan 25 09:45:52 MET 1996
+<P><HR><EM></EM><HR></P>
+<P>
+<H2><A NAME="toc1"></A>1. <A HREF="bibtex-1.html">Wstęp</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc2"></A>2. <A HREF="bibtex-2.html">Sposób działania programu</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc3"></A>3. <A HREF="bibtex-3.html">Format pliku bib</A></H2>
+<UL>
+<LI><A HREF="bibtex-3.html#ss3.1">3.1 Skróty i nagłówek</A>
+<LI><A HREF="bibtex-3.html#ss3.2">3.2 Rekordy</A>
+<LI><A HREF="bibtex-3.html#ss3.3">3.3 Pola</A>
+</UL>
+
+<P>
+<H2><A NAME="toc4"></A>4. <A HREF="bibtex-4.html">Typy rekordów</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc5"></A>5. <A HREF="bibtex-5.html">Typy pól</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc6"></A>6. <A HREF="bibtex-6.html">Wpisywanie nazwisk</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc7"></A>7. <A HREF="bibtex-7.html">Style formatowania</A></H2>
+<UL>
+</UL>
+
+<P>
+<H2><A NAME="toc8"></A>8. <A HREF="bibtex-8.html">Narzędzia dodatkowe</A></H2>
+<UL>
+<LI><A HREF="bibtex-8.html#ss8.1">8.1 Pożyteczne pakiety LaTeXowe</A>
+<LI><A HREF="bibtex-8.html#ss8.2">8.2 Programy dodatkowe</A>
+</UL>
+
+
+</BODY>
+</HTML>
diff --git a/info/tex-virtual-academy-pl/prog/dvidvi.html b/info/tex-virtual-academy-pl/prog/dvidvi.html
new file mode 100644
index 0000000000..172e06fef6
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/dvidvi.html
@@ -0,0 +1,196 @@
+<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, dvidvi, Wirtualna Akademia">
+<title>DVIDVI </title>
+</head>
+<body bgcolor=#a0F0f0>
+
+<center>
+<h2>DVIDVI </h2>
+<i></i><p>
+<i></i><p>
+
+autor: <i>Maciej Głowacki </i></center>
+
+<i></i><p>
+<hr>
+<p>
+<code>DVIDVI</code> jest programem sygnowanym przez Radical Eye Software (co w praktyce
+oznacza autorstwo Tomasa Rokickiego). Program ten, operując na pliku typu DVI
+wybiera strony, zmienia ich wzajemne położenie i pozycjonuje na arkuszu druku.
+
+<h3> Format: </h3>
+
+<pre>
+d:p<sub>1</sub>[(x<sub>1</sub>,y<sub>1</sub>)][,p<sub>2</sub>[(x<sub>2</sub>,y<sub>2</sub>)]]...[,p<sub>n</sub>[(x<sub>n</sub>,y<sub>n</sub>)]] fi fo
+</pre>
+gdzie:
+<dl>
+<dd>nawiasy kwadratowe oznaczają nieobowiązkowe użycie tego co zawierają;
+<dd>odstępy, nawiasy okrągłe i przecinki są konieczne w kontekście;
+<dt><code>d</code>
+
+ <dd>dzielnik (modulo); liczba dodatnia z zakresu 1 do 32,
+określająca rozmiar porcji (w stronach), na jakie zostanie podzielony plik
+wejściowy;
+<dt><code>p</code>
+ <dd>pozycja; liczba określająca pozycję strony w ramach porcji
+(pierwsza strona w porcji jest określana liczbą 0, a więc najwyższa możliwa
+pozycja to <code>d</code>-1); gdy liczba ta jest poprzedzona znakiem '-',
+w przetwarzaniu brane będą pod uwagę porcje w odwrotnej kolejności, czyli
+począwszy od ostatniej (nie znaczy to że liczba jest ujemna!); w szczególności
+więc możliwy jest zapis '-0' znaczący co innego niż '0'; można określić
+pozycje tylko niektórych stron, można też powtarzać specyfikacje tych samych
+stron (wtedy w pliku wyjściowym te strony pojawią się wielokrotnie);
+<dt><code>x</code> i <code>y</code>
+ <dd>współrzędna pozioma i pionowa lewego górnego rogu
+strony z pliku wejściowego na arkuszu pliku wyjściowego; specyfikacja -- tak
+jak w TeX-u<sup><a href=#fn1>1</a></sup>; gdy <code>x</code> i <code>y</code> są
+równocześnie zerowe, można je wraz z nawiasami pominąć;
+<dt><code>fi</code>
+ <dd>nazwa pliku wejściowego; rozszerzenie (<code>.dvi</code>) można pominąć;
+<dt><code>fo</code>
+ <dd>nazwa pliku wyjściowego; w podpowiedzi przy wywołaniu programu
+z błędnymi parametrami czytamy, że parametr ten można pominąć; jest to nieprawda
+przynajmniej w używanej przeze mnie wersji 0.5 -- gdy nie zostanie podany ten
+parametr, pierwsza próba zapisu do tego pliku kończy się zawieszeniem programu,
+czyli koniecznością restartu systemu (sic!).
+</dl>
+
+<h3>Opis działania</h3>
+
+<ul>
+<li>Program czyta plik wejściowy i dzieli go na porcje o <code>d</code>
+stronach (ewentualnie ostatnia porcja jest uzupełniana pustymi stronami).
+Następnie zaczyna budować arkusze, tworząc plik wyjściowy.
+<li>Dla każdego tworzonego arkusza zostaje raz użyta każda grupa
+parametrów <code>p(x,y)</code>; kolejność grup w wywołaniu nie ma znaczenia. Arkuszy
+powstanie tyle, ile zostało utworzonych porcji.
+<li>Dla pierwszego arkusza zostają pobrane -- określone przez kolejne
+<code>p</code> z wywołania -- strony z pierwszej porcji
+(gdy przed <code>p</code> jest
+'-', to z ostatniej) i umieszczone w pierwszym arkuszu, w miejscu określonym
+przez odpowiadające im <code>(x,y)</code>.
+<li>Dla każdego następnego arkusza pobrane zostają strony z następnej
+(lub poprzedniej gdy przed <code>p</code> jest '-') porcji. I te deum.
+</ul>
+
+
+<h3> Ograniczenia: </h3>
+
+ <ul>
+<li>Program z całego dostępnego pliku produkuje jedną zszywkę. Chcąc
+więc utworzyć więcej zszywek, należy najpierw plik wejściowy podzielić na
+mniejsze (o ilości stron takiej, jak pojemność jednej zszywki). Nie znam
+sposobu, w jaki mógłby to zrobić <code>DVIDVI</code>.
+<li>Przy tworzeniu arkuszy zawierających piętrowo umieszczone strony,
+program nie potrafi ich obracać włosami w dół, a jest to potrzebne gdy trzeba
+arkusz falcować<sup><a href=#fn2>2</a></sup>,
+a potem dopiero przycinać; można
+temu zaradzić na trzy sposoby: --> pociąć najpierw arkusze na
+poziome pasy o wysokości jednej strony, a potem dopiero falcować;
+--> wydrukować częściowo strony, obrócić o 180<sup>0</sup> i wydrukować
+resztę po tej samej stronie kartek, jednak wtedy trudno (szczególnie na
+drukarce laserowej) uzyskać powtarzalność pozycjonowania; -->
+(najmniej fizyczny) sprzęg z TeX-em: można w obsłudze procesu zrzutu stron
+(output routine) oprogramować obrót wybranych stron. Oczywiście w każdym
+z tych trzech przypadków trzeba przygotować inne parametry dla programu
+<code>DVIDVI</code>.
+</ul>
+
+<h3> Przykłady: </h3>
+
+<ul>
+<li>Ekstrakcja:<br>
+
+<code>dvidvi</code> 30:6 we wy (różne od <code>dvidvi</code> 5 we wy)<br>
+
+z pliku <code>we</code> do pliku <code>wy</code> zostanie przeniesiona 7 strona, pod
+warunkiem, że ilość stron w pliku <code>we</code> nie jest większa niż suma obu
+użytych w wywołaniu liczb.
+
+<li>Panie na lewo, panowie na prawo:<br>
+
+<code>dvidvi 2:0 we wy1</code><br>
+
+<code>dvidvi 2:-1 we wy2</code><br>
+
+Jeśli założymy, że plik wejściowy zawierał 27 lub 28 stron, to program
+poprzestawia je następująco (strzałki unaoczniają machinacje programu <code>DVIDVI</code>):
+
+<center>
+<img src=./dvistro1.gif width=470 height=320>
+</center>
+
+<p>
+w pliku <code>wy1</code> znajdą się strony nieparzyste, a w <code>wy2</code> parzyste, ale
+w odwrotnej kolejności. W przypadku korzystania z drukarki laserowej wystarczy
+wypuścić arkusze zadrukowane jednostronnie zawartością pliku <code>wy1</code> do
+odbiornika drukiem w górę (na ogół służy do tego tacka z przodu drukarki),
+i nie odwracając (tak, by ostatnio wydrukowany arkusz stał się pierwszym
+drukowanym z drugiej strony) podstawić pod druk zawartości pliku <code>wy2</code> (także
+drukiem w górę).
+
+<li>Broszurka w A5<sup><a href=#fn3>3</a></sup>:<br>
+
+<code>dvidvi 4:-3,0(5.5in,0in) we wy1</code><br>
+
+<code>dvidvi 4:1,-2(5.5in,0in) we wy2</code>
+
+<p>Przy założeniu, że na wejściu było od 37 do 40 stron, zostaną one
+poprzemieszczane i połączone jak niżej (strzałki kropkowane łączą przeciwne
+strony kartki przyszłej książeczki):
+
+<center>
+<img src=./dvistro2.gif width=546 height=327>
+</center>
+
+Jeśli więc w pliku <code>we</code> znajdą się strony w formacie A5, to w pliku <code>wy1</code>
+zostaną umieszczone ,,prawe'' strony arkuszy formatu A4, a w <code>wy2</code> --- w tej
+samej kolejności arkuszy --- ,,lewe''. Tym razem należy w pierwszym przebiegu
+wypuścić arkusze do odbiornika drukiem w dół, po czym cały pakiet odwrócić
+,,na grzbiet'' wzdłuż osi równoległej do krótszego boku kartek i tak podstawić
+do druku z drugiej strony. Dodatkowo po zakończeniu drukowania trzeba arkusze
+odpowiednio potasować.
+
+<li>Po tym co napisano powyżej, uważny TeX-nik nie potrzebuje już chyba
+wyjaśnienia (ewentualnie warto to sobie rozrysować):<br>
+
+<code>dvidvi 8:-7,0(4.12in,0in),-5(0in,5.8in),2(4.12in,5.8in) we wy1</code><br>
+
+<code>dvidvi 8:1,-6(4.12in,0in),3(0in,5.8in),-4(4.12in,5.8in) we wy2</code>
+</ul>
+
+
+<h3>Przypisy</h3>
+
+
+<i></i><p>
+<hr width=20% align=left>
+<sup><a name=fn1><b>1</b></A></sup> Z tą zgodnością z TeX-em nie jest tak
+radośnie. Na przykład nie można pominąć w liczbie cyfry '0' przed kropką
+dziesiętną. W ogóle p. Rokicki sprawia wrażenie jakby się trochę dąsał na
+TeX-a --- np. TeX numeruje strony od '1' --- <code>DVIDVI</code> od '0'. Natomiast gdy dla
+ TeX-a nie ma jednostki domyślnej, to w <code>DVIDVI</code> są aż dwie: jedna to cal,
+a druga --- mocniejsza --- taka, jakiej użyto wcześniej.
+
+<hr width=20% align=left>
+<sup><a name=fn2><b>2</b></a></sup> Podobno po polsku mówi się: złamywać, ale są
+także w użyciu słowa: załamywać, składać.
+
+<hr width=20% align=left>
+
+<sup><a name=fn3><b>3</b></a></sup> Podane w tym i następnym
+przykładzie wielkości współrzędnych oczywiście ściśle zależą od lokalnych cech
+środowiska systemowego i parametrów drukarki.
+
+
+<hr>
+Zredagował:
+<em>Włodzimierz Macewicz</em>
+<hr>
+</body>
+</html>
diff --git a/info/tex-virtual-academy-pl/prog/dvistro1.gif b/info/tex-virtual-academy-pl/prog/dvistro1.gif
new file mode 100644
index 0000000000..3cd5743728
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/dvistro1.gif
Binary files differ
diff --git a/info/tex-virtual-academy-pl/prog/dvistro2.gif b/info/tex-virtual-academy-pl/prog/dvistro2.gif
new file mode 100644
index 0000000000..65f0411c71
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/dvistro2.gif
Binary files differ
diff --git a/info/tex-virtual-academy-pl/prog/hyph.html b/info/tex-virtual-academy-pl/prog/hyph.html
new file mode 100644
index 0000000000..2f396f07a6
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/hyph.html
@@ -0,0 +1,476 @@
+
+<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, dzielenie wyrazów, Wirtualna Akademia">
+<title>Tam gdzie minus oznacza dzielenie</title>
+</head>
+<body bgcolor=#a0F0f0>
+
+<center>
+<h2>Tam gdzie minus oznacza dzielenie</h2>
+
+<i></i><p>
+<i></i><p>
+autor: <i>
+Bogusław Jackowski,
+Marek Ryćko
+</i><p>
+
+<i></i><p>
+</center>
+
+<hr>
+
+<i></i><p>
+<i></i><p>
+<h3>Spis treści</h3>
+<dd><b><a href=#r1>Reguły dzielenia wyrazów w języku polskim </a></b>
+<dd><b><a href=#r2>Jak TeX dzieli wyrazy </a></b>
+<dd><b><a href=#r3>Automatyczne tworzenie danych dla algorytmu dzielenia
+ wyrazów</a></b>
+<dd><b><a href=#r4>Ręczne tworzenie danych dla algorytmu dzielenia
+ wyrazów</a></b>
+<dd><b><a href=#r5>Inne aspekty automatycznego dzielenia wyrazów</a></b>
+<dd><b><a href=#r6>Uwagi końcowe</a></b>
+
+<i></i><p>
+<i></i><p>
+<hr>
+
+Ten nieco przewrotny tytuł dotyczy oczywiście przenoszenia, czyli inaczej
+dzielenia wyrazów, zwyczajowo zaznaczanego w tekstach kreską przypominającą
+minus.
+
+<p>
+Automatyczne dzielenie wyrazów należy do podstawowych zadań
+wykonywanych przez programy komputerowe służące do składania tekstów.
+
+<p>
+Jednym z najciekawszych algorytmów dzielenia wyrazów, a przy tym
+dokładnie opisanych i udokumentowanych, posługuje się system TeX.
+Jego ,,ciekawość'' polega na tym, że jest to
+algorytm uniwersalny, tzn. dający się przystosować do dzielenia wyrazów
+w różnych językach, a jednocześnie zdumiewająco prosty i efektywny
+w implementacji. Warto się temu algorytmowi przyjrzeć.
+
+<h3><a name=r1>Reguły dzielenia wyrazów w języku polskim</a></h3>
+
+Żeby zrozumieć, jak trudne zadanie postawił przed sobą Knuth, zajmijmy się
+przez chwilę regułami dzielenia wyrazów w języku polskim. M. Szymczak
+(,,Słownik ortograficzny języka polskiego'', PWN, Warszawa, 1986) pisze:
+
+
+<p>
+,,(...) Dzielenie wyrazów przy przenoszeniu wyrazów z jednego wiersza do
+następnego opiera się w ortografii polskiej na dwóch kryteriach: fonetycznym
+i morfologicznym. Kryterium fonetyczne nakazuje przenoszenie części wyrazu
+z jednego wiersza do drugiego zgodnie z podzielnością na sylaby,
+np. "bu&nbsp;rza", "nie&nbsp;wy trzy&nbsp;ma&nbsp;nie", "li&nbsp;tość",
+"po&nbsp;na&nbsp;pi&nbsp;sy&nbsp;wa&nbsp;li&nbsp;by", "za&nbsp;nie&nbsp;po&nbsp;ko&nbsp;jo&nbsp;ny", "wy&nbsp;so&nbsp;ko", "le&nbsp;piej",
+"te&nbsp;go", "prze&nbsp;ciw". Kryterium morfologiczne nakazuje przenoszenie
+części wyrazu z jednego wiersza do drugiego zgodnie z podzielnością na
+przedrostek i rdzeń, a w wyrazach złożonych --- w miejscu złożenia,
+np. "przed&nbsp;murze", "pod&nbsp;punkt", "wy&nbsp;brzeże", "roz&nbsp;łąka",
+"od&nbsp;dźwięk", "przy&nbsp;kład", "za&nbsp;płata", "na&nbsp;trafić", "wy&nbsp;ścigi",
+"o&nbsp;brona", "bez&nbsp;wstyd", "u&nbsp;kładowy", "po&nbsp;dróż", "pod&nbsp;oficer",
+"pod&nbsp;oddział", "na&nbsp;przód", "pod&nbsp;o&nbsp;pieczny", "po&nbsp;dmuch", "noc&nbsp;leg",
+"konio&nbsp;krad". (...)''
+
+<p>
+
+przy czym
+
+<p>
+,,(...) kryterium morfologiczne jest nadrzędne w stosunku do kryterium
+fonetycznego (...)''
+
+
+<p>
+Zasady ogólne wyglądają prosto i przejrzyście. Omówienie zasad szczegółowych
+zajmuje Szymczakowi pięć stron i o ile człowiekowi mogłoby to wystarczyć,
+to jednak zalecenia takie jak:
+
+<p>
+
+,,(...) Jeżeli przejrzystość podziału na przedrostek i rdzeń jest w <i><b>
+dzisiejszej świadomości językowej zatarta</b></i> (podkr. aut.), grupy
+spółgłoskowe znajdujące się na granicy cząstek dzielimy dowolnie,
+np. "o&nbsp;błok" a. "ob&nbsp;łok", "o&nbsp;tręby" a. "ot&nbsp;ręby", (...)''
+
+<p>
+bardzo trudno zalgorytmizować.
+
+<p>
+Spróbujmy się zastanowić, czy nie ma takich zasad, od których nie
+byłoby wyjątków.
+
+<p>
+Dobrym kandydatem wydawać by się mogła reguła niedzielenia głosek "cz",
+"dz", "rz" oraz "sz". Niestety, są wyjątki od tej reguły:
+"tysiąc&nbsp;złotowy", "pod&nbsp;zwrotnikowy", "mar&nbsp;znąć" i "em&nbsp;es&nbsp;zet".
+Podobnie miękkie "ni" może ulec rozbiciu, na przykład w słowie
+"in&nbsp;iekcja".
+
+<p>
+To może chociaż da się ustalić, że sylaba nie może składać się z samych
+spółgłosek? Jest to w zasadzie dobra reguła, ale ma (co najmniej) jeden
+wyjątek: szkocki przedrostek "Mc" wolno oddzielić. Na przykład nazwisko
+"McMillan" wolno podzielić "Mc-Millan". Oczywiście implikuje to kłopoty
+z rzymskim zapisem liczb --- rok "MCMXCII" komputer mógłby uznać za
+szkockie nazwisko.
+
+<p>
+W takim razie może istnieją nie zakazy, a nakazy dzielenia, od których nie ma
+wyjątków? Np. nakaz rozdzielania par identycznych spółgłosek ("świec&nbsp;cy",
+"Jagieł&nbsp;ło", "łam&nbsp;my", "pan&nbsp;na", "ar&nbsp;ras", "las&nbsp;so", "get&nbsp;to" itp.).
+Odpowiedź, jak łatwo było przewidzieć, brzmi: ,,nie''. Np. kryterium
+morfologiczne nakazuje podział "ode&nbsp;ssie", a nie "odes&nbsp;sie", chyba że chodzi
+o "Odessę". A jeśli się zgodzić, że przedrostek rodzimy musi być oddzielony,
+to będzie kłopot ze słowem "zeppelin", bo jak komputer miałby się domyślić,
+że w tym przypadku nie chodzi o przedrostek "ze"? Mógłby wprawdzie
+wiedzieć, że żadne słowo w języku polskim nie zaczyna się od "pp" (chociaż
+jest słowo zaczynające się od trzech spółgłosek, z czego dwie pierwsze to
+"ww" --- proszę zgadnąć jakie to słowo). Ale jeśli jakiś autor chciałby
+oddać mowę jąkającego się bohatera pisząc np. "zeppsuuty", to co wtedy?
+
+<p>
+Niejednoznaczności typu ,,"odessie"'' stanowią dla komputera trudność
+praktycznie nie do pokonania. Choć jest ich niewiele, to jednak zdarzają się
+i utrudniają życie, np.: "podróżować" --- być w podróży lub pokryć różem
+lica; "odziewać" --- ubierać lub odpowiedzieć w taki sam sposób komuś, kto
+ziewnął; "podrobić" --- np. karmę ptactwu lub podpis;
+"Tarzanie" --- słowo to może oznaczać wzywanie znanego bohatera komiksów
+lub czynność tarzania się; "narwali" --- to słowo z kolei można rozumieć
+jako czas przeszły dokonany albo dopełniacz liczby mnogiej.
+
+<p>
+W sytuacjach tego typu jedynie kontekst semantyczny decyduje o podziale
+słowa. Rozsądnie jest nie żądać zbyt wiele od programów składających teksty
+i zostawić człowiekowi możliwość ingerencji w bardziej skomplikowanych
+przypadkach.
+
+<p>
+Sporo trudności nastręcza dzielenie
+nazwisk i nazw własnych. O nazwiskach
+szkockich już była mowa. Ale i polskie nazwy potrafią sprawić kłopot. Na
+przykład czy w nazwisku "Utnik" głoskę "u" należy traktować jako
+przedrostek, tak jak w słowie "u&nbsp;tnie"? Szczególnie trudne do podziału są
+słowa będące zbitką dwóch lub więcej słów. Zalecany jest oczywiście podział
+w miejscu złożenia: "noc&nbsp;leg", "trzech&nbsp;set&nbsp;letni" itp. Zdarzają się jednak
+czasem bardzo osobliwe nazwy własne, np. "Wierzch&nbsp;las". Chociaż taki właśnie
+podział wydaje się uzasadniony, to przecież trudno dać głowę, że nazwy tej
+nie da się wywieść od "wierzenia" i "chlastania". Podobnie gdyby jakaś
+miejscowość nazywała się "Szynkwas", to nazwa mogłaby się wywodzić
+ostatecznie --- choć jest to mało prawdopodobne --- od "szyn" i "kwasu".
+
+<p>
+"Zeppelin" i "szynkwas" to przykłady słów obcych bądź obcego
+pochodzenia, które zadomowiły się w naszym języku. Słowa tej kategorii, takie
+jak np. "er&nbsp;zac", "jazz&nbsp;man" czy "soft&nbsp;ware", to źródło nowych
+utrapień dla kogoś, kto chciałby sformalizować reguły dzielenia wyrazów
+w języku polskim.
+
+
+<p>
+W tej sytuacji nie dziwią wyniki testów porównawczych W. Puzy
+(W. Puza, praca magisterska pt. ,,Analiza porównawcza wybranych programów
+Desktop Publishing (DTP)'', Instytut Poligrafii Politechniki Warszawskiej),
+który stwierdził, co następuje:
+
+<p>
+,,(...) Test sprawdzający poprawność dzielenia polskich słów
+wyodrębnił 3 różne poziomy skuteczności testowanych programów:
+
+<ul>
+<li>Cyfroset, TeX -- ok. 10% błędów
+
+<li>Dywiz (dedykowany dla Quark'a) -- powyżej 20% błędów
+
+<li>Bizon (dedykowany Calamusowi), VP Commander (dedykowany
+ Venturze) -- powyżej 50% błędów. (...)''
+</ul>
+
+Tak więc pozornie trywialny problem okazuje się w praktyce trudnym
+orzechem do zgryzienia.
+
+
+<p>
+Można oczywiście polemizować z wytycznymi językoznawców. Zalecany przez
+Szymczaka podział "za&nbsp;jrzeć" lub "po&nbsp;jmać" wydaje się dziś anachroniczny.
+Pójście dalej tym tropem, przy równoczesnym zasłanianiu się ,,wymaganiami
+komputerów'', powoduje, że zbyt kuszące staje się maksymalne upraszczanie
+reguł, oczywiście z uszczerbkiem dla języka polskiego.
+
+<p>
+Autor TeX-a obrał zupełnie inną drogę: szukał takiego algorytmu, który
+byłby w zasadzie niezależny od reguł dzielenia wyrazów; reguły dzielenia
+miałyby być określone za pomocą danych do tego algorytmu. Algorytm
+spełniający te wymagania skonstruował F. M. Liang (rozprawa doktorska
+pt. ,,Word Hy-phen-a-tion by Com-put-er'', Uniwersytet Stanforda, USA,
+1983). Udało mu się nawet coś więcej: dane są stosunkowo łatwe do
+utworzenia, nie jest do tego bynajmniej potrzebna wiedza informatyczna.
+
+<h3><a name=r2>Jak TeX dzieli wyrazy</a></h3>
+
+Algorytm dzielenia wyrazów jest niezwykle prosty. Oczywiście przy założeniu,
+że odpowiednie dane zostały utworzone. Załóżmy więc, że te dane mamy.
+Składa się na nie zbiór ciągów utworzonych na przemian z liter
+i cyfr, np.: <code>2s0z1z0</code>, <code>2s0z0l0n0</code>, <code>2t1ć0</code> itp. Zamiast cyfry skrajnej może
+wystąpić kropka, np.: <code>.w0e3s2</code>, <code>.w0w8</code>, <code>8r0s0z.</code>, <code>8r0z0ł.</code> itp. Ciągi te
+nazywać będziemy wzorcami.
+
+<p>
+Przypuśćmy teraz, że mamy dane jakieś słowo, np. <code>odkaszlnąć</code>. Najpierw
+zamieniamy je na postać taką, jaką mają wzorce, wstawiając pomiędzy literami
+cyfrę <code>0</code>, a na brzegach kropki, otrzymując <code>.o0d0k0a0s0z0l0n0ą0ć.</code>
+(kropka --- jak stąd widać --- oznacza skraj słowa). Następnie wyszukujemy
+w naszym zbiorze danych wszystkie wzorce, które na to słowo dają się nałożyć
+w taki sposób, że zgadzają się położenia liter i kropek, ale niekoniecznie
+cyfr; w szczególności cyfra może się nakładać na kropkę, ale nie na literę.
+Powiedzmy, że znaleźliśmy następujące wzorce: <code>.o2d2</code>,
+<code>.o0d3k2</code>, <code>0ą1</code>,
+<code>2d1k0</code>, <code>2l1n0</code>, <code>2s0z1l0</code>,
+<code>2s0z0l0n0</code>, <code>8ć.</code>, <code>0a1</code>,
+<code>0o1</code>, <code>0s4z0</code>. Jeśli
+je nałożymy na słowo <code>.o0d0k0a0s0z0l0n0ą0ć.</code> i spośród cyfr
+nakładających się
+na siebie weźmiemy największe, to otrzymamy <code>.o2d3k2a2s4z2l1n0ą8ć.</code> --- i to
+już wszystko. Zgodnie z algorytmem Lianga słowo wolno podzielić jedynie
+w takim miejscu, w którym pojawia się cyfra nieparzysta. Oznacza to, że
+algorytm dopuszcza w tym wypadku dwa punkty podziału: "od-kaszl-nąć".
+
+<p>
+Wzorce przechowywane są w pamięci komputera jako struktura drzewiasta
+(dokładniej "trie"; p. D. E. Knuth, ,,The Art of
+Computer Programming'', tom 3, ,,Sorting and Searching''). Pozwala to na
+znaczne upakowanie danych przy zachowaniu szybkiego dostępu do informacji,
+a równocześnie struktura danych i algorytm są stosunkowo łatwo
+implementowalne.
+
+<p>
+Warto podkreślić, że dzięki efektywności zastosowanej metody TeX może
+przechowywać w pamięci kilka różnych zestawów wzorców i dzielić wyrazy
+w kilku językach w obrębie jednego dokumentu (a nawet akapitu).
+
+
+<p>
+Problem jedynie w tym skąd wziąć wzorce?
+
+<h3><a name=r3>Automatyczne tworzenie danych dla algorytmu dzielenia
+wyrazów</a></h3>
+
+Główna część pracy Lianga dotyczyła metody tworzenia wzorców na podstawie
+słownika zawierającego słowa poprawnie podzielone. Przygotowanie takiego
+słownika jest oczywiście czaso- i pracochłonne, ale za to dalsza część
+zadania jest już względnie łatwa. W największym uproszczeniu algorytm Lianga
+można zapisać następująco:
+
+<pre>
+ <i>m </i> := maksymalna długość wzorca
+ <b>for</b> <i>c := 1</i> <b>to</b> <i>9</i> <b>do</b>
+ <b>begin</b>
+ ustal kryteria akceptowalności dla wzorców
+ <b>for</b> <i>l:=1</i> <b>to</b> <i>m</i> <b>do</b>
+ <b>begin</b>
+ dla każdego słowa w słowniku sprawdź, czy nie
+ dostarcza ono informacji o możliwości wstawienia
+ cyfry <i>c</i> we wzorcach długości <i>l</i> przy
+ zadanych kryteriach akceptowalności
+ <b>end</b>
+ <b>end</b>
+</pre>
+
+Innymi słowy program uzupełnia zestaw wzorców kolejno dla coraz
+większych cyfr i coraz dłuższych wzorców, zostawiając użytkownikowi na każdym
+etapie możliwość ingerencji. Kryteria akceptowalności określa się przez
+podanie trzech liczb: wagi dla podziałów poprawnych <i>w<sub>p</sub></i>,
+wagi dla podziałów niepoprawnych <i>w<sub>n</sub></i> i poziomu
+akceptowalności <i>p</i>. Wzorzec jest akceptowany,
+gdy <i>{k<sub>p</sub>w<sub>p</sub>-k<sub>n</sub>w<sub>n</sub>&gt;= p}</i>,
+gdzie <i>k<sub>p</sub></i> i <i>k<sub>n</sub></i> oznaczają odpowiednio
+liczbę poprawnych i niepoprawnych podziałów generowanych przez dany wzorzec.
+
+<p>
+W niektórych przypadkach może się zdarzyć, że program nie znajdzie zestawu
+wzorców dzielącego poprawnie wszystkie słowa. Powodem mogą być błędne dane
+(np. w słowniku może się znaleźć dwa razy to samo słowo, ale inaczej
+podzielone) bądź niewłaściwy dobór liczb <i>w<sub>p</sub></i>,
+<i>w<sub>n</sub></i> oraz <i>p</i> w kolejnych
+iteracjach. Różne strategie dobierania wartości tych współczynników wpływają
+na objętość wynikowego zestawu wzorców. Minimalizacja liczby wzorców
+w wygenerowanym automatycznie zestawie wymaga pewnej wprawy
+i --- oczywiście --- przestudiowania pracy doktorskiej Lianga, gdzie
+zagadnienie to jest szczegółowo omówione.
+
+<p>
+Jak widać ,,nauczenie'' TeX-a zasad dzielenia wyrazów w danym języku jest
+właściwie kwestią odpowiednio zasobnego słownika podzielonych poprawnie
+wyrazów. Dostarczenie takiego słownika to zadanie dla językoznawców.
+Natomiast dalszy etap jest ideowo prosty, nie wymaga znajomości technik
+programowania, ani żadnych innych specjalnych umiejętności. Potrzebna jest
+jedynie cierpliwość.
+
+<h3><a name=r4>Ręczne tworzenie danych dla algorytmu dzielenia wyrazów</a></h3>
+
+Możliwość automatycznego tworzenia zestawu wzorców nie wyklucza możliwości
+stworzenia takiego zestawu ręcznie. Początkowo wydawało się, że język polski
+ma na tyle regularne zasady dzielenia wyrazów, że łatwiej będzie utworzyć
+zestaw wzorców w ten właśnie sposób.
+
+<p>
+W 1984 J. D&eacute;sarm&eacute;nienowi udało się zamknąć reguły dzielenia
+wyrazów dla
+języka francuskiego w zestawie liczącym 804 wzorce i dla języka włoskiego
+w zestawie liczącym zaledwie 88 wzorców, podczas gdy standardowy zestaw
+wzorców dla amerykańskiego TeX-a zawiera ich 4447
+(J. D&eacute;sarm&eacute;nien,
+,,The use of TeX in French: hyphenation and
+typography'', w: D. Lucarella (ed.), ,,TeX for Scientific Documentation,
+Proc. of the First European Conference, Addison-Wesley, 1984). Sukces
+podejścia D&eacute;sarm&eacute;niena zainspirował H. Kołodziejską, która
+w roku 1987 opublikowała listę 2168 wzorców dla języka polskiego
+(H. Kołodziejska, ,,Dzielenie wyrazów w systemie TeX'', Sprawozdania
+Instytutu Informatyki Uniwersytetu Warszawskiego, nr 165, 1987).
+
+Wynik Kołodziejskiej zdawał się potwierdzać wstępne założenia. Niestety. Po
+kilku latach intensywnego testowania (maczali w tym palce m.in. autorzy
+niniejszej pracy) wzorców znacznie przybyło. Po gruntownej przeróbce
+liczebność zestawu wzorców wzrosła do 4053 i wolno przypuszczać, że to
+jeszcze nie koniec.
+
+<p>
+W tych warunkach zasadne staje się pytanie, czy nie należałoby zrewidować
+założenia o regularności zasad podziału słów w języku polskim. Jest
+prawdopodobne, że program Lianga mógłby wygenerować mniej liczny zestaw
+wzorców.
+
+<p>
+Tym niemniej, jak wynikało z porównań poczynionych przez Puzę (p. wyżej),
+zestaw wzorców dla języka polskiego w swojej obecnej postaci daje wyniki
+zadowalające. Zważywszy, że Puza w istocie dysponował jedną z wersji
+pośrednich zestawu i że zestaw aktualny jest znacznie udoskonalony w stosunku
+do tamtej wersji, można oczekiwać jeszcze lepszych rezultatów.
+
+<p>
+Najaktualniejsza wersja tego zestawu wchodzi w skład pakietu MeX (polskiej
+adaptacji TeX-a). Pakiet ten jest dystrubuowany w postaci źródłowej jako
+produkt "public domain" przez
+GUST.
+
+<h3><a name=r5>Inne aspekty automatycznego dzielenia wyrazów</a></h3>
+
+Automatyczne znajdowanie miejsc podziału słów nie wyczerpuje spraw związanych
+z dzieleniem wyrazów do celów składu komputerowego. Jak zostało już
+wspomniane, czasami ingerencja człowieka staje się niezbędna. Poprawnie
+zaprojektowany system składu taką ingerencję powinien umożliwiać. Użytkownik
+powinien mieć w szczególności możliwość wprowadzenia zakazu dzielenia
+niektórych słów.
+
+<p>
+W przypadku TeX-a nierozsądne byłoby manipulowanie za każdym razem przy
+zestawie wzorców. Użytkownik TeX-a może podzielić słowo według własnego
+uznania na dwa sposoby.
+
+<p>
+Pierwszy sposób to umieszczenie go na liście wyjątków, nadrzędnej w stosunku
+do wzorców. Jest to, niestety, metoda wygodna jedynie w językach
+niefleksyjnych. W języku polskim umieszczenie jakiegoś słowa na liście
+wyjątków wiąże się (w przypadku TeX-a) z podaniem od razu wszystkich jego
+odmian, co jest raczej nieporęczne. Na szczęście problem taki nie pojawia się
+zbyt często. Głównym powodem tego typu zabiegów bywają słowa złożone lub
+obcego pochodzenia (bądź i jedno, i drugie).
+
+<p>
+Drugi sposób polega na wskazaniu w tekście dodatkowych miejsc podziału
+(ang. <em>discretionary hyphens</em>). Większość systemów DTP
+oferuje taką możliwość użytkownikom. W przypadku TeX-a należy ostrożnie
+posługiwać się tą metodą, bo można przeszkodzić TeX-owi w automatycznym
+wstawianiu drobnych odstępów między znakami (inaczej podcięć, ang. <em>implicit
+kerns</em>).
+
+<p>
+TeX oferuje użytkownikowi jeszcze parę innych możliwości, pozwalających
+na panowanie nad algorytmem podziału wyrazów.
+
+<p>
+Zabronienie podziału wyrazu jest w TeX-u sprawą trywialną, wystarczy wyraz
+,,zamknąć'' w tzw. pudełko (TeX-owa komenda <code>\hbox</code>).
+
+<p>
+Użytkownik może też określić minimalną długość oddzielonego początku
+i końca słowa. Domyślnie TeX nie podzieli słowa krótszego niż
+pięcioliterowe: początek nie może być krótszy niż dwie litery, koniec --- nie
+krótszy niż trzy litery. Przy składaniu w wąskiej szpalcie może się pojawić
+konieczność złagodzenia tych rygorów, zwłaszcza że w języku polskim za
+dopuszczalne uznaje się oddzielanie pojedynczej samogłoski na początku słowa
+i dwuliterowej sylaby na końcu. Z drugiej strony w składzie wysokiej jakości
+powinno się unikać dzielenia wyrazów w ogóle, a tym bardziej na zbyt krótkie
+fragmenty. Możliwość sterowania wielkością dzielonego słowa jest więc bardzo
+przydatna w praktyce.
+
+<p>
+Zasady dobrego składu wymagają, aby wyrazy dzielone nie pojawiały się
+w sąsiednich wierszach i by ostatni wiersz na prawej stronie nie zawierał
+słowa dzielonego. Składy nie spełniające tych wymogów uważa się (i słusznie)
+za brzydkie. TeX dostarcza parametrów pozwalających skutecznie utrudniać
+brzydkie składanie. W szczególności można wręcz zabronić umieszczania słowa
+dzielonego w ostatnim wierszu na stronie. Może to sprawić pewne kłopoty
+algorytmowi łamiącemu wiersze na strony, ale to już zupełnie inna historia.
+
+<p>
+Zostaje jeszcze problem słów zawierających łącznik, np. "biało-czerwony".
+W języku angielskim słowa takie jak "machine-oriented" przenosi się
+
+
+<pre>
+ "machine-"
+ "oriented"
+</pre>
+
+podczas gdy w języku polskim stanowczo zaleca się dostawienie
+dodatkowo łącznika na początku następnego wiersza:
+
+
+<pre>
+"biało-"
+"-czerwony"
+</pre>
+
+TeX pozwala dołączyć do zestawu komend standardowych komendy definiowane
+przez użytkownika. W MeX-u została zdefiniowana komenda <code>\=</code>,
+którą należy podczas przygotowywania tekstu umieścić w miejscu łącznika.
+Kontynuując przykład, "biało-czerwony" należałoby podać TeX-owi jako
+<code>biało\=czerwony</code>. Użytkownik musi pamiętać o konsekwentnym
+przestrzeganiu tej zasady, a o resztę zadba już TeX. Pozostawienie zwykłego
+łącznika oznacza słowo niepodzielne. Jest to przydatne w przypadku takich
+słów jak np. "K-202", których oczywiście dzielić nie należy.
+
+<h3><a name=r6>Uwagi końcowe</a></h3>
+
+Jak widać zagadnienie automatycznego dzielenia wyrazów to problem bardzo
+obszerny. Wchodzą tu w grę zagadnienia językoznawcze, typograficzne
+i informatyczne.
+
+<p>
+Praktyka pokazuje, że bardzo efektywny algorytm automatycznego podziału słów,
+w połączeniu z niekoniecznie bardzo wygodnymi możliwościami ingerowania
+ręcznego, stwarza użytkownikowi możliwość panowania w pełni nad procesem
+dzielenia słów przez system komputerowego składu tekstów.
+
+<p>
+Wydaje się nam, że rozwiązania zastosowane przez Knutha są na tyle
+uniwersalne (a do tego sprawdzone w praktyce), że warto je szerzej
+rozpropagować. Mogą się okazać szczególnie przydatne w Polsce, gdzie rynek
+software'owy dopiero powstaje i dobre <i>nomen omen</i> wzorce są rzeczą nie
+do pogardzenia.
+
+
+<hr>
+Zredagował:
+<em>Włodzimierz Macewicz</em>
+<hr>
+</body>
+</html>
diff --git a/info/tex-virtual-academy-pl/prog/prog.html b/info/tex-virtual-academy-pl/prog/prog.html
new file mode 100644
index 0000000000..9ba9427d6a
--- /dev/null
+++ b/info/tex-virtual-academy-pl/prog/prog.html
@@ -0,0 +1,54 @@
+<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> Oprogramowanie pomocnicze </title>
+</head>
+<body bgcolor=#a0f0f0>
+
+<img src="../gify/prog.gif" width=540 height=135><p>
+
+Jedną z wielu zalet systemu TeX jest możliwość wspomagania jego
+pracy innymi programami. Na przestrzeni kilku lat powstało ich bardzo
+wiele. W tym dziale będę prezentował artykuły omawiające różne
+,,postprocesory'' -- przetwarzające wynik pracy TeX-a lub
+innych ,,postprocesorów'' oraz inne przydatne programy.
+
+<hr>
+<ul>
+<img src="../gify/artykul.gif"> <a href=dvidvi.html><code>Dvidvi</code></a>
+- <i>M. Głowacki</i> operacje na zbiorze .dvi <small>(10.10.1995)</small><br>
+
+<!-- <img src="../gify/artykul.gif">
+<a href="chktex.html">
+<code>chktex</code> -- kontrola poprawności składni</a><br>
+-->
+
+<img src="../gify/artykul.gif">
+<!-- <a href=http://www.ia.pw.edu.pl/~bolek/bibtex/index.html> -->
+<a href="./bibtex/bibtex.html">
+<code>BiBTeX</code> -- baza bibliograficzna</a><br>
+
+<img src="../gify/artykul.gif"> <a href=../idx/index.html><code>plmindex</code> -- skorowidze</a><br>
+
+<img src="../gify/artykul.gif">
+<a href=http://www.radicaleye.com/dvipsman/dvips_toc.html>
+<!-- <a href=../../../../../texmf-dist/doc/dvips/dvips.html> -->
+<code>dvips</code> -- konwerter DVI do PostScript</a>
+(po angielsku)<br>
+
+<!-- <img src="../gify/artykul.gif">
+<a href=./auctex.html>
+<code>AUCTeX</code></a> -- rozszerzenie edytora Emacs
+<br> -->
+</ul>
+
+
+<hr>
+<em>W. Macewicz</em></a>.
+Ostatnie zmiany: 15.05.2014 (<em>StaW</em>).
+<hr>
+</body>
+</html>