summaryrefslogtreecommitdiff
path: root/info/tex-virtual-academy-pl/prog/auctex.html
blob: 61c8ff53f4558aad379520c3af87f7019f1b197a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
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>