-
Notifications
You must be signed in to change notification settings - Fork 1
/
guidaemacsauctex.tex
1392 lines (1235 loc) · 60.3 KB
/
guidaemacsauctex.tex
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
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%% Copyright (C) 2010-2014 by M. Giordano, O. Iovino, M. Leccardi.
%%
%% Quest'opera è distribuita con licenza Creative Commons,
%% + Attribuzione
%% + Non commerciale
%% + Condividi allo stesso modo
%% 3.0 Italia.
%%
%% Un riassunto della licenza in linguaggio accessibile a tutti è reperibile sul
%% sito ufficiale http://creativecommons.org/licenses/by-nc-sa/3.0/it
\documentclass[b5paper,11pt,oneside]{guidatematica}
\ProvidesFile{guidaemacsauctex.tex}[2016/01/23 v.1.2.0 Breve guida all'uso di Emacs per LaTeX]
\usepackage{guidaemacsauctex}
\begin{document}
\frontmatter
\title{Guida pratica all'uso\\ di\\ GNU Emacs e AUC\TeX}
\author{Mosè Giordano, Orlando Iovino, Matteo Leccardi}
\GetFileInfo{guidaemacsauctex.tex}
\date{Versione~\fileversion\ del \filedate}
\maketitle
\contribguit
\chapter{Licenza d'uso}
\label{chap:licenza}
Quest'opera è soggetta alla Creative Commons Public License versione 3.0 o
posteriore: \emph{Attribuzione}, \emph{Non Commerciale}, \emph{Condividi allo
stesso modo}. Un riassunto della licenza in linguaggio accessibile a tutti è
reperibile sul sito ufficiale
\url{http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it}.
\bigskip\noindent\textsc{tu sei libero:}
\begin{itemize}
\item Di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera.
\item Di modificare quest'opera.
\end{itemize}
\textsc{alle seguenti condizioni:}
\begin{itemize}
\item[\Large\ccAttribution] Devi attribuire la paternità dell'opera nei modi
indicati dall'autore o da chi ti ha dato l'opera in licenza e in modo tale
da non suggerire che essi avallino te o il modo in cui tu usi l'opera.
\item[\Large\ccNonCommercial] Non puoi usare quest'opera per fini commerciali.
\item[\Large\ccShareAlike] Se alteri o trasformi quest'opera, o se la usi per
crearne un'altra, puoi distribuire l'opera risultante solo con una licenza
identica o equivalente a questa.
\end{itemize}
\chapter{Presentazione}
\label{chap:presentazione}
\emacs\ è uno dei più vecchi e potenti editor di testi in circolazione e può
vantare fra i suoi utenti Donald Knuth, l'inventore di \TeX, e Leslie Lamport,
l'autore di \LaTeX.
\auctex, invece, è un pacchetto per \emacs\ scritto interamente in linguaggio
Emacs Lisp, che estende notevolmente le funzionalità di \emacs\ per produrre
documenti in \LaTeX\ e in altri formati legati al programma di tipocomposizione
\TeX.
% Fonti per Donald Knuth:
% https://www.informit.com/articles/article.aspx?p=1193856
% http://tex.loria.fr/litte/knuth-interview
% Fonte per Leslie Lamport:
% http://www.budiu.info/blog/2007/05/03/an-interview-with-leslie-lamport/
% Mihai Budui è un ricercatore della Microsoft
% (https://research.microsoft.com/en-us/people/mbudiu/), come Lamport, quindi
% l'intervista dovrebbe essere attendibile.
In questa guida tematica parleremo del programma \progstyle{GNU Emacs} (ovvero
del programma \emacs\ del progetto GNU, mentre non si accennerà alle sue diverse
varianti) e del pacchetto \auctex. Si spiegherà come installarli e configurarli
sui tre principali sistemi operativi in circolazione (Windows, GNU/Linux e
Mac~OS), e come usarli per scrivere documenti \LaTeX. Per finire si darà
qualche indicazione per personalizzare e rendere più efficiente \emacs.
Si tenga presente che, trattando di un programma così potente come \emacs, la
guida è ben lontana dall'essere esauriente. Per ogni altro approfondimento non
riportato in queste righe rimandiamo il lettore ai manuali ufficiali, in
particolare a \cite{emacs:stallman} per \emacs\ e \cite{auctex:manual} per
\auctex. Speriamo, con queste brevi note, di convincere il lettore che \emacs{}
non è poi così complicato come spesso viene considerato.
\section*{Colophon \& ringraziamenti}
\label{sec:colo:thanks}
Questa guida tematica è stata scritta a \emph{sei mani} grazie al sistema di
controllo di versione \progstyle{git}, che si scarica dal sito
\url{http://git-scm.com}. Chi vuole collaborare può ``clonare'' il progetto dal
deposito ufficiale presente sul sito \url{https://github.com/} alla pagina
\url{https://github.com/GuITeX/guidaemacsauctex}. Per compilare il codice
sorgente si consiglia di munirsi di una distribuzione \LaTeX\ aggiornata. È
inoltre necessario scaricare e installare nel proprio albero personale la classe
\classstyle{guidatematica} disponibile alla pagina
\url{https://github.com/GuITeX/guidatematica}.
Ringraziamo qui Tommaso Gordini per aver, da letterato qual egli è, reso il
testo più leggibile, oltre ad averci dato suggerimenti importanti per la
comprensione della guida.
Va anche a Roberto Giacomelli il ringraziamento per aver suggerito alcune
correzioni utili a rendere l'installazione e la configurazione su Windows più
semplice (oltre a diverse altre idee).
È gradita ogni forma di collaborazione. Chiunque voglia segnalare errori,
refusi, commenti e suggerimenti può farlo agli indirizzi di posta elettronica
qui riportati.
\begin{flushright}
\begin{minipage}{0.6\textwidth}\centering
\textsc{Gli autori} \\[1.5ex]
\textsc{Mosè Giordano} \\
\texttt{mose at gnu dot org} \\[0.5ex]
\textsc{Orlando Iovino} \\
\texttt{orlando dot iovino at yahoo dot it} \\[0.5ex]
\textsc{Matteo Leccardi} \\
\texttt{matteo dot leccardi at gmail dot com} \\
\end{minipage}
\end{flushright}
\newpage\tableofcontents*
\mainmatter
\chapter{Introduzione}
\label{chap:intro}
Lo sviluppo di \emacs{} è cominciato negli anni '70 del Novecento ai laboratori
di Intelligenza Artificiale del MIT, cioè molto prima che si diffondesse
l'informatica che conosciamo oggi. Ciò comporta che \emacs{} utilizza una
terminologia spesso diversa da quella utilizzata dalla stragrande maggioranza
degli altri programmi che usiamo quotidianamente. Perciò non bisogna
sorprendersi se l'operazione di \emph{tagliare} il testo (generalmente indicata
in inglese con \emph{cutting}) in \emacs{} viene chiamata \emph{killing} e
quella di \emph{incollare} il testo copiato (in inglese \emph{pasting}) viene
chiamata \emph{yanking}.
\emacs{} è famoso perché rende possibile eseguire \emph{qualsiasi} operazione
usando solo la tastiera, cioè senza l'ausilio del mouse. A ogni comando può
essere associata una combinazione di tasti. Sebbene questo fatto possa
inizialmente spaventare, è un vero punto di forza di \emacs{}, perché permette
di eseguire le operazioni in maniera rapida, invece di dover spostare il mouse
alla ricerca di appositi pulsanti. In questa guida seguiremo la notazione
diffusa nel mondo di \emacs{} per indicare i tasti. Quindi il tasto
\keys{\ctrl} verrà indicato con \verb!C!, l'\,\keys{Invio} con \verb!RET!, il
tasto \keys{\tab} con \verb|TAB|, mentre \verb!M! indica il tasto \keys{\Meta}
(sulle moderne tastiere quest'ultimo tasto è scomparso, ma si può ottenere lo
stesso risultato con \keys{\Alt} oppure premendo e rilasciando \keys{\esc}\,).
Nella notazione di queste scorciatoie, il trattino che separa due tasti in una
combinazione di tasti indica che i tasti vanno premuti contemporaneamente.
Così, quando si dirà che per eseguire un comando bisogna usare la combinazione
\verb!M-x!, si dovranno premere \emph{contemporaneamente} \keys{\Alt} e \keys{x}
oppure premere \keys{\esc}\,, rilasciarlo e premere \emph{successivamente}
\keys{x}\,.
Il manuale di \emacs~\citep{emacs:stallman} può essere consultato dall'interno
dello stesso programma con le combinazioni \verb!C-h r! (premere
contemporaneamente \keys{\ctrl} e \keys{h}\,, rilasciarli e premere
successivamente \keys{r}\,) oppure \verb!C-h i d m Emacs RET! (premere
contemporaneamente \keys{\ctrl} e \keys{h}\,, rilasciarli e premere poi in
successione \keys{i}\,, \keys{d}\,, \keys{m}\,, scrivere successivamente
\verb!Emacs!, quindi premere \keys{Invio}\,). Se si preferisce, si può
consultare il manuale anche tramite il menu
\menu{Help > Read the Emacs Manual}\,.
Una delle caratteristiche principali di \emacs{} è il fatto di essere un editor
di testi completamente personalizzabile ed espandibile, in modo da risultare
sempre adatto alle esigenze dell'utente. Il linguaggio utilizzato per le
espansioni è l'Elisp, un dialetto del Lisp sviluppato appositamente per
\emacs{}. Esistono migliaia di pacchetti scritti in Emacs Lisp che permettono
di estenderne ulteriormente le funzionalità.
La versione standard di \emacs{}, senza pacchetti aggiuntivi, fornisce già un
discreto supporto alla creazione di documenti \LaTeX, ma il pacchetto \auctex{}
mette a disposizione numerosi strumenti che rendono senza alcun dubbio \emacs{}
uno degli editor di testo più potenti in questo senso. In
questa guida vedremo alcune delle funzioni principali di \auctex.
Per finire, prima di addentrarci nell'installazione e nell'utilizzo di \emacs,
\auctex{} e di altri programmi accessori, è utile riportare qui qualche
indicazione sul file di inizializzazione di \emacs, che contiene codice in
linguaggio Elisp e di fondamentale importanza per modificare il comportamento
delle funzioni del programma. Questo file, che sarà richiamato spesso in questo
documento, presenta diversi nomi (\filestyle{.emacs}, \filestyle{.emacs.el} o
\filestyle{init.el}) e localizzazioni a seconda del sistema operativo. Va creato
perché inizialmente non esiste. Se indichiamo con \verb|~/| la cartella
\begin{lstlisting}[language=bash]
C:/Documents and Settings/£\meta{nome utente}£/Dati Applicazioni
\end{lstlisting}
per Windows XP,
\begin{lstlisting}[language=bash]
C:/Users/£\meta{nome utente}£/AppData/
\end{lstlisting}
per Windows Vista/7 e
\begin{lstlisting}[language=bash]
$HOME
\end{lstlisting}
per GNU/Linux e Mac~OS, questo file può essere così sistemato:
\begin{description}[leftmargin=*]
\item[Windows XP] \filestyle{\textasciitilde{}/.emacs.d/init.el}
\item[Windows Vista/7] \filestyle{\textasciitilde{}/.emacs.d/init.el} o
\filestyle{\textasciitilde{}/.emacs}
\item[GNU/Linux, Mac~OS] \filestyle{\textasciitilde{}/.emacs},
\filestyle{\textasciitilde{}/.emacs.el} o
\filestyle{\textasciitilde{}/.emacs.d/init.el}
\end{description}
Nelle prossime pagine ci riferiremo spesso al file di inizializzazione chiamandolo
semplicemente \verb|.emacs|, indipendentemente dalla posizione in cui si trova e
dall'effettivo nome utilizzato nel proprio sistema (\verb|.emacs|,
\verb|.emacs.el| oppure \verb|init.el| che sia).
Si faccia attenzione quando si copia e incolla il codice da questo documento:
potrebbe essere necessario riscrivere i caratteri \verb|"| e \verb|'| in
\emacs. Facciamo presente, inoltre, che \verb|'| è il carattere l'apice semplice
che si ottiene con il tasto \keys{?}.
%% --------------------------------------------------------------------------
%% Windows
%% --------------------------------------------------------------------------
\chapter{Installare \emacs{} e \auctex}
\label{chap:installazione}
In questo capitolo vedremo come installare \emacs, \auctex, il
correttore ortografico e -- dove possibile --, come impostare la
sincronizzazione del visualizzatore del \filestyle{pdf} con il sorgente
\filestyle{tex}.
Dalla versione 24 di \emacs\ si possono installare dei pacchetti mediante il
deposito ELPA, parte del progetto GNU, e altri depositi non ufficiali come
Marmalade\footnote{\url{http://marmalade-repo.org/}} e
MELPA\footnote{\url{http://melpa.milkbox.net/}}. \auctex\ è disponibile nel
deposito ufficiale e può quindi essere installato con
\verb|M-x package-install RET auctex RET| aggiungendo soltanto la seguente riga
al file \filestyle{.emacs:}
\begin{lstlisting}
(package-initialize)
\end{lstlisting}
Nei paragrafi che seguono descriveremo anche la procedura di installazione
specifica per ogni sistema operativo, indicando caso per caso quale consigliamo.
\section{Windows}
\label{oi:sec:windows}
\subsection{Installare \emacs}
\label{oi:sec:installemacs}
Per sistemi operativi Microsoft Windows non esiste una vera e propria procedura
di installazione. \emacs{} si può utilizzare semplicemente procurandosi
l'archivio che ne contiene gli eseguibili.
All'indirizzo \url{http://ftp.gnu.org/pub/gnu/emacs/windows/} si scarichi
l'archivio compresso \filestyle{emacs-24.5-bin-i686-mingw32.zip} e lo si
decomprima in una posizione di comodo; una buona soluzione, per esempio, è
decomprimerlo in \directory{C:/Programmi/Emacs/}, che assumeremo da questo
momento come cartella d'installazione.
Se si vuole creare un collegamento di \emacs{} nel menù Start, è sufficiente
eseguire il programma \progstyle{addpm.exe} contenuto nella cartella
\directory{C:/Programmi/Emacs/bin}.
A questo punto \emacs{} è pronto per scrivere documenti in \LaTeX: l'utente
infatti non deve specificare nessun percorso degli eseguibili della
distribuzione \LaTeX\ installata perché \emacs{} li trova da solo.
\subsection{Installare AUC\TeX}
\label{oi:sec:installauctex}
Si scarichi l'archivio compresso \filestyle{auctex-11.89-e24.5-msw.zip}
dall'indirizzo \url{http://www.gnu.org/software/auctex/download-for-windows} e
lo si decomprima in \directory{C:/Programmi/Emacs/}. Si noti che alcuni file
sono gli stessi, perciò basta unire il contenuto dell'archivio di \auctex{} con
quello di \emacs.
Dopo aver installato \auctex, \emacs{} caricherà da solo i file necessari per
attivare la modalità \verb!latex-mode!, propria di \auctex, quando si apre o si
crea un file con estensione \filestyle{.tex}.
\subsection{Correttore ortografico}
\label{oi:sec:aspell}
Per usare il correttore ortografico in \emacs{} si deve installare il programma
\progstyle{GNU Aspell} disponibile all'indirizzo
\url{http://aspell.net/win32/}. L'ultima versione stabile è la 0.50-3 del
dicembre 2002.
Si devono installare, nell'ordine:
\begin{enumerate}
\item il programma \progstyle{Aspell-0-50-3-3-Setup.exe};
\item il dizionario precompilato per l'italiano \progstyle{Aspell-it-0.50-2-3.exe}.
\end{enumerate}
Infine rimane da eseguire qualche altra operazione:
\begin{enumerate}
\item Si deve copiare il
percorso della cartella dove sono contenuti gli eseguibili di \progstyle{Aspell}
nella variabile d'ambiente \textsf{PATH}.
\item Si deve aggiungere al proprio file
\filestyle{.emacs} le seguenti righe:
\begin{lstlisting}
(setq-default ispell-program-name "aspell")
(setq-default ispell-extra-args '("--reverse"))
(setq ispell-dictionary "italiano")
\end{lstlisting}
dove la prima e la terza sono quelle strettamente necessarie, mentre la seconda
serve a risolvere gli eventuali problemi presentati dalle versioni precedenti
del programma.
\end{enumerate}
\subsection{Sincronizzare sorgente e anteprima}
\label{oi:sec:ricdirinv}
Prima di attivare la sincronizzazione tra il testo sorgente e l'anteprima del
documento, si spiega come risolvere il problema dei diritti di amministratore
--~qualora l'account utente ne sia fornito~-- per i sistemi operativi Vista e 7
(su XP non dovrebbero esserci problemi, mentre su Windows 8 non è stato
possibile provarlo). Infatti, in tale situazione si potrebbero avere problemi
con la cartella \directory{server} del tipo
\begin{lstlisting}[keywordstyle=\color{black}]
error: The directory '~/.emacs.d/server' is unsafe
\end{lstlisting}
Una possibile soluzione, riportata in~\cite{setupwindows}, è la seguente. Si
apra il prompt dei comandi e ci si porti nella cartella che contiene a propria
volta la cartella \directory{server}, scrivendo nella riga di comando
un'istruzione del tipo
\begin{lstlisting}[language=bash]
cd C:/Users/£\meta{nome utente}£/Roaming/.emacs.d
\end{lstlisting}
oppure
\begin{lstlisting}[language=bash]
cd %APPDATA%/.emacs.d
\end{lstlisting}
e infine
\begin{lstlisting}
takeown /f server
\end{lstlisting}
Il successo dell'operazione verrà segnalato con qualcosa come
\begin{lstlisting}
OPERAZIONE RIUSCITA: il file o la cartella ...
\end{lstlisting}
Si può ora configurare \emacs{} per la sincronizzazione con il
visualizzatore \progstyle{Sumatra~PDF} --~l'unico in grado di supportarla
nei sistemi Windows~-- scaricabile dal sito
\url{http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html}.
Per la ricerca diretta basta scrivere nel file d'inizializzazione
\filestyle{.emacs}
\begin{lstlisting}
(setq TeX-source-correlate-method (quote synctex))
(setq TeX-source-correlate-mode t)
(setq TeX-source-correlate-start-server t)
(setq TeX-view-program-list
'(("Sumatra PDF" ("\"C:/Program Files (x86)/\
SumatraPDF/SumatraPDF.exe\" -reuse-instance"
(mode-io-correlate " -forward-search %b %n") " %o"))))
(setq TeX-view-program-selection
'(((output-dvi style-pstricks) "dvips and start")
(output-dvi "Yap")
(output-pdf "Sumatra PDF")
(output-html "start")))
\end{lstlisting}
Per la ricerca inversa, invece, si apra \progstyle{Sumatra~PDF}, si raggiunga
il menù \menu{Impostazioni > Opzioni\dots} e si scriva
\begin{lstlisting}[flexiblecolumns]
C:/Programmi/Emacs/bin/emacsclientw.exe --no-wait +%l "%f"
\end{lstlisting}
in \textsf{Imposta la ricerca inversa via riga di comando}, come si vede dalla
figura~\ref{oi:fig:sumatra:setup}.
\begin{figure}[t]
\centering
\includegraphics[width=0.50\textwidth]{sumatrapdf}
\caption{Impostazioni per il visualizzatore \progstyle{Sumatra~PDF}.}
\label{oi:fig:sumatra:setup}
\end{figure}
Potrebbe capitare, dopo aver installato \progstyle{Sumatra~PDF}, che non sia
possibile accedere al campo \menu{Impostazioni > Opzioni\dots}. Per ovviare a
questo problema si procede come segue. Se il percorso di \progstyle{Sumatra~PDF}
-- indicato con \meta{SumatraPDF} -- è per esempio
\begin{lstlisting}
C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe
\end{lstlisting}
e quello del programma \progstyle{emacsclientw.exe} -- indicato con
\meta{emacsclientw} -- è
\begin{lstlisting}
C:\Programmi\Emacs\bin\emacsclientw.exe
\end{lstlisting}
allora basterà aprire il \progstyle{Prompt dei comandi} e scrivere
\begin{lstlisting}[flexiblecolumns, breaklines=false]
"£\meta{SumatraPDF}£" -inverse-search "£\meta{emacsclientw}£ --no-wait +%l \"%f\""
\end{lstlisting}
Con queste impostazioni il visualizzatore predefinito per \emacs\ -- ma non del
sistema operativo -- sarà \progstyle{Sumatra~PDF}. Per la ricerca diretta vanno
premuti i tasti \verb!C-c C-v! e il visualizzatore si aprirà (o porterà) in
corrispondenza della riga del testo sorgente in cui si trova il cursore. Per la
ricerca inversa, invece, basta un doppio clic nel visualizzatore.
%% --------------------------------------------------------------------------
%% GNU/Linux
%% --------------------------------------------------------------------------
\section{GNU/Linux}
\label{mg:sec:linux}
\subsection{Installare \emacs}
\label{mg:sec:installemacs}
\emacs{} fa parte del progetto GNU, quindi è presente nei depositi di tutti i
sistemi operativi della famiglia GNU/Linux. Se non fosse già installato, il
metodo più semplice per ottenerlo è tramite il gestore di pacchetti della
propria distribuzione (naturalmente, si possono utilizzare anche i gestori di
pacchetti a interfaccia grafica). Riportiamo qui i comandi da terminale utili
per installare il programma in alcune delle principali distribuzioni.
Su Debian e Ubuntu:
\begin{lstlisting}
$ sudo apt-get install emacs
\end{lstlisting}
Su Fedora:
\begin{lstlisting}
$ sudo yum install emacs
\end{lstlisting}
Su OpenSUSE:
\begin{lstlisting}
$ sudo zypper install emacs
\end{lstlisting}
Il metodo più difficile, per i non avvezzi al terminale, consiste nel compilare
\emacs{} a partire dal codice sorgente, ma non è intenzione di questa guida
spiegare come farlo.
Dopo aver installato \emacs, lo si potrà avviare facendo clic sul suo
\emph{launcher} oppure eseguendo da terminale il comando
\begin{lstlisting}
$ emacs
\end{lstlisting}
Se si desidera utilizzare \emacs{} con interfaccia testuale bisogna aggiungere
al comando appena visto l'opzione \texttt{-nw} oppure
\texttt{--no-window-system}:
\begin{lstlisting}
$ emacs -nw
\end{lstlisting}
Come argomento da linea di comando si può aggiungere il nome del file o dei file
che si vogliono modificare:
\begin{lstlisting}
$ emacs file1.tex file2.tex
\end{lstlisting}
\subsection{Installare \auctex}
\label{mg:sec:installauctex}
\auctex{} può essere installato sia dal deposito ELPA, attraverso il gestore
pacchetti interno di \emacs{}, sia dai depositi dei sistemi GNU/Linux.
Generalmente in ELPA è presente l'ultima versione, quindi suggeriamo il metodo
di installazione descritto all'inizio del capitolo, dato che è più semplice e
non richiede permessi di amministratore per l'installazione.
Per chi non disponesse di una versione di \emacs{} sufficientemente recente, 24
o successiva, allora si deve procedere per un'altra strada. Come già detto per
\emacs{} si consiglia di installare \auctex{} con il gestore di pacchetti della
propria distribuzione. Ecco i comandi da usare nelle principali distribuzioni.
Su Debian e Ubuntu:
\begin{lstlisting}
$ sudo apt-get install auctex
\end{lstlisting}
Su Fedora:
\begin{lstlisting}
$ sudo yum install emacs-auctex
\end{lstlisting}
Su OpenSUSE:
\begin{lstlisting}
$ sudo zypper install emacs-auctex
\end{lstlisting}
Su Debian e Ubuntu, il gestore potrebbe raccomandare di installare la TeX~Live
presente nei depositi ufficiali del sistema operativo. Per evitare che questo
avvenga, per esempio perché si utilizza una TeX~Live installata in altro modo,
installando \auctex{} da terminale è sufficiente aggiungere l'opzione
\verb!--no-install-recommends!:
\begin{lstlisting}
$ sudo apt-get install --no-install-recommends auctex
\end{lstlisting}
\subsection{Correttore ortografico}
\label{mg:sec:aspell}
Il correttore ortografico \progstyle{GNU Aspell} può essere installato
facilmente su GNU/Linux utilizzando, come al solito, il gestore di pacchetti
della propria distribuzione. Il dizionario italiano di \progstyle{GNU Aspell}
per GNU/Linux si chiama \progstyle{aspell-it}, quindi in Debian si installa da
terminale con il comando
\begin{lstlisting}
$ sudo apt-get install aspell-it
\end{lstlisting}
in Fedora con
\begin{lstlisting}
$ sudo yum install aspell-it
\end{lstlisting}
mentre in openSUSE si può dare
\begin{lstlisting}
$ sudo zypper install aspell-it
\end{lstlisting}
\subsection{Sincronizzare sorgente e anteprima}
\label{mg:sec:ricdirinv}
Se si utilizza \progstyle{Evince} come visualizzatore di documenti, per attivare
in \auctex{} la ricerca diretta e inversa con questo programma bisogna
aggiungere le seguenti righe di codice al proprio file di inizializzazione
\filestyle{.emacs}
\begin{lstlisting}
(setq TeX-source-correlate-mode t
TeX-source-correlate-start-server t
TeX-view-program-selection
'(((output-dvi style-pstricks) "dvips and gv")
(output-dvi "Evince")
(output-pdf "Evince")
(output-html "xdg-open")))
\end{lstlisting}
Per eseguire la ricerca diretta da \emacs{} a \progstyle{Evince} è sufficiente
usare la combinazione \verb|C-c C-v|, per eseguire ricerca inversa da
\progstyle{Evince} a \emacs{} bisogna premere \keys{\ctrl} mentre si fa clic con
il tasto sinistro del mouse sulla parola da ricercare.
Se invece si utilizza \progstyle{Okular} come visualizzatore di documenti,
bisogna sostituire \lstinline|"Okular"| a \lstinline|"Evince"| nel precedente
codice, cioè si deve aggiungere al proprio file di inizializzazione
\begin{lstlisting}
(setq TeX-source-correlate-mode t
TeX-source-correlate-start-server t
TeX-view-program-selection
'(((output-dvi style-pstricks) "dvips and gv")
(output-dvi "Okular")
(output-pdf "Okular")
(output-html "xdg-open")))
\end{lstlisting}
Come al solito, la ricerca diretta si esegue con la combinazione \verb|C-c C-v|.
Per la ricerca inversa bisogna configurare appositamente \progstyle{Okular}: nel
menu \menu{Impostazioni > Configura Okular...}, scheda ``Editor'', selezionare
``Emacs client'' nel menu a discesa. A questo punto sarà possibile eseguire la
ricerca inversa tenendo premuto \keys{\shift} mentre si fa clic con il tasto
sinistro del mouse sulla parola.
%% --------------------------------------------------------------------------
%% Mac OS
%% --------------------------------------------------------------------------
\section{Mac OS}
\label{ml:sec:linux}
\subsection{Installare \emacs}
\label{ml:sec:installemacs}
Sul mirror ufficiale \url{http://ftp.gnu.org/pub/gnu/emacs/} non è presente una
versione di \emacs{} già compilata per Mac OS X, perché queste versioni sono
rese disponibili da vari volontari come per esempio il gestore del sito
\url{http://emacsformacosx.com/}. La procedura d'installazione è quella
consueta: dopo aver scaricato la versione più recente, si apra il file
\filestyle{.dmg} (se non è già stato aperto automaticamente al termine del
download) e si trascini l'icona di \emacs{} nella cartella
\directory{Applicazioni}.
In Mac OS le applicazioni avviate dall'interfaccia grafica non hanno
accesso ai valori delle variabili d'ambiente, per cui bisogna rendere
disponibile a \emacs{} la variabile \texttt{PATH} dando da terminale
il comando
\begin{lstlisting}[language=bash]
$ defaults write ~/.MacOSX/environment PATH "$PATH"
\end{lstlisting}
Si noti che le nuove impostazioni saranno effettive solo dopo aver eseguito un logout e un
successivo login. Il comando va ripetuto ogni volta che si installa un programma
che modifica il valore di \texttt{PATH}. (il caso che
riguarda più da vicino i lettori di questa guida è la distribuzione \TeX).
% TODO: controllare che i tasti inseriti con `\keys{}' siano corretti
Per gli utenti che usano la tastiera italiana è utile impostare il
tasto \keys{\cmdmac} come \keys{\Meta} e il tasto \keys{\Altmac} per
scrivere i caratteri speciali (in particolare parentesi quadre,
graffe e tilde) scrivendo queste righe nel file \filestyle{.emacs}:
\begin{lstlisting}
(setq ns-command-modifier 'meta)
(setq ns-alternate-modifier nil)
\end{lstlisting}
\subsection{Correttore ortografico}
\label{ml:sec:aspell}
Anche per Mac OS X è disponibile una versione di \progstyle{GNU Aspell}, chiamata
\progstyle{cocoAspell}, e disponibile all'indirizzo
\url{http://cocoaspell.leuski.net/}.
Dopo aver installato la versione 2.1 (a oggi l'ultima versione) si possono
scaricare i dizionari delle lingue che interessano direttamente
dal sito di \progstyle{GNU Aspell}, all'indirizzo
\url{ftp://ftp.gnu.org/gnu/aspell/dict/}. Quello italiano, per esempio, si chiama
\href{ftp://ftp.gnu.org/gnu/aspell/dict/it/aspell6-it-2.2_20050523-0.tar.bz2}%
{\filestyle{aspell6-it-2.2\_20050523-0.tar.bz2}}.
A questo punto bisogna estrarre il contento
degli archivi in una cartella temporanea, aprire una sessione di
terminale e portarsi nella cartella appena creata. I dizionari si
installano dando i comandi
\begin{lstlisting}[language=bash]
$ ./configure
$ make
$ sudo make install
\end{lstlisting}
Infine si deve configurare \emacs\ aggiungendo al file
\filestyle{.emacs} le righe
\begin{lstlisting}
(setq-default ispell-program-name "aspell")
(setq ispell-dictionary "italiano")
\end{lstlisting}
\subsection{Installare AUC\TeX}
\label{ml:sec:installauctex}
Come per \emacs, non è disponibile una versione di \auctex{} già compilata per
Mac~OS, ma purtroppo in questo caso non ne esistono neppure versioni non
ufficiali, quindi consigliamo di installarlo dal deposito ELPA come descritto
all'inizio del capitolo. Se, come talvolta può capitare, la versione disponibile
in ELPA non è la più recente oppure si utilizza un computer a cui accedono più
utenti\footnote{I package installati da ELPA si trovano nella cartella
\filestyle{\textasciitilde{}/.emacs.d} e di conseguenza sono disponibili solo
per l'utente che li installa.} bisognerà valutare di volta in volta se i
vantaggi dell'uso di ELPA superano gli svantaggi. Per installare \auctex{} senza
usare ELPA è necessario utilizzare il programma \progstyle{make}, che viene
installato insieme al correttore ortografico \progstyle{cocoAspell}, descritto
nel paragrafo~\ref{ml:sec:aspell}. Ecco le istruzioni.
Dalla pagina relativa a Mac OS X,
\url{http://www.gnu.org/software/auctex/download-for-macosx.html},
bisogna scaricare l'archivio compresso \filestyle{auctex-11.89.tar.gz}. Se ne
estragga poi il contenuto in una cartella temporanea, si apra una sessione di
terminale e ci si porti nella cartella appena creata. Bisogna poi configurare
\auctex{} con il comando
\begin{lstlisting}[flexiblecolumns, breaklines=false, language=bash]
$ ./configure
--prefix=/Applications/Emacs.app/Contents/Resources/
--with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs
--with-lispdir=/Applications/Emacs.app/Contents/Resources/site-lisp/
--without-texmf-dir
\end{lstlisting}
sostituendo se necessario a \texttt{Applications}\footnote{Utilizzando il
terminale non bisogna utilizzare i nomi localizzati delle cartelle ma quelli
reali, quindi \texttt{Applications} è corretto anche se si utilizza la
versione italiana di Mac OS.} la cartella in cui si trova \emacs. In questo
modo tutti i file saranno contenuti nel bundle \texttt{Emacs.app}. Il comando
precedente deve essere scritto nel terminale su una sola riga, sostituendo le
interruzioni di linea con spazi.
Infine si compili e si installi dando
\begin{lstlisting}[language=bash]
$ make && make install
\end{lstlisting}
Dopo l'installazione, bisogna impostare i visualizzatori per i vari file creati
con \LaTeX{} scrivendo nel file \filestyle{.emacs} queste righe
\begin{lstlisting}
(setq TeX-view-program-list
'(("dvips and Skim" "%(o?)dvips %d -o &&\
/Applications/Skim.app/Contents/SharedSupport/\
displayline %n %f %b")
("Skim" "/Applications/Skim.app/Contents/\
SharedSupport/displayline %n %o %b")
("open" "open %o")))
(setq TeX-view-program-selection
'(((output-dvi style-pstricks) "dvips and Skim")
(output-dvi "Skim")
(output-pdf "Skim")
(output-html "open")))
\end{lstlisting}
Come visualizzatore si usa \progstyle{Skim},
\url{http://skim-app.sourceforge.net/}, perché supporta la sincronizzazione tra
sorgente e anteprima. La procedura di configurazione di \emacs{} e
\progstyle{Skim} è descritta nel paragrafo~\ref{ml:sec:ricdirinv}.
\subsection{Sincronizzare sorgente e anteprima}
\label{ml:sec:ricdirinv}
L'unico visualizzatore di file PDF per Mac~OS~X associato a \emacs{}
che supporti la sincronizzazione tra sorgente e anteprima è
\href{http://skim-app.sourceforge.net/}{\progstyle{Skim}}
(si veda il paragrafo~\ref{ml:sec:installauctex}) che una volta installato
va configurato nel pannello \menu{Skim > Preferenze\dots > Sincronizza}
come segue e come mostra la figura~\ref{fig:skimpref}:
\begin{itemize}
\item si spunti la casellina \textsf{Controlla cambiamenti del file};
\item si scriva nel campo \textsf{Comando:} \\
\verb!/Applications/Emacs.app/Contents/MacOS/bin/emacsclient!
\item si scriva nel campo \textsf{Argomenti:} \verb!--no-wait +%line "%file"!
\end{itemize}
\begin{figure}[tb]
\centering
\includegraphics[width=\textwidth]{preferenze_skim}
\caption{Preferenze di \progstyle{Skim} per sincronizzare sorgente e anteprima.}
\label{fig:skimpref}
\end{figure}
La prima opzione fa in modo che quando un file aperto in \progstyle{Skim} viene
modificato da un altro processo, il programma chieda se il file modificato debba
essere ricaricato: scegliendo \textsf{Automatico}, i successivi aggiornamenti
verranno visualizzati senza chiedere ulteriori conferme.
\emacs{} si configura scrivendo nel file \filestyle{.emacs} le righe
\begin{lstlisting}
(setq TeX-source-correlate-method 'synctex)
(setq TeX-source-correlate-mode t)
(setq TeX-source-correlate-start-server t)
\end{lstlisting}
Si passa dal sorgente al PDF con la combinazione \verb!C-c C-v!; si ottiene il
contrario facendo clic sulla parola che interessa premendo contemporaneamente
\keys{\shift} e \keys{cmd}\,.
Se alcune versioni di \emacs{} precedenti alla 23.3 lasciassero in primo piano
la finestra del visualizzatore, si aggiungano queste righe al file
\filestyle{.emacs}
\begin{lstlisting}
(defun ns-raise-emacs ()
(ns-do-applescript "tell application \"Emacs\" to activate"))
(add-hook 'server-switch-hook 'ns-raise-emacs)
\end{lstlisting}
\chapter{Primi passi in \emacs}
\label{chap:primi-passi-emacs}
Nel capitolo precedente si è spiegato come installare e configurare i principali
componenti per usare \LaTeX\ con \emacs\ e \auctex. In questo capitolo vedremo
come si scrive in \emacs\ un semplice documento \filestyle{.tex} e come usare il
correttore ortografico.
% e come gestire gli errori.
\section{Ciao mondo}
\label{sec:primodocumento}
Ogni sistema operativo permette di aprire \emacs\ tramite un collegamento al
programma principale, dopo di che sullo schermo dovrebbe comparire la finestra
principale mostrata nella figura~\ref{fig:principale}. Nel gergo di \emacs\ una
finestra è chiamata \emph{frame}. Ciascun \emph{frame} può essere suddiviso in
una o più \emph{windows}, cioè lo spazio dove l'utente scrive, che è la zona di
principale interazione con il programma. Un'altra componente fondamentale di un
\emph{frame} di \emacs, mostrata nella figura, è il \emph{minibuffer}. Questo è
il posto dove \emacs\ dialoga con l'utente mostrando messaggi di notifica oppure
permettendo l'inserimento dell'input dei comandi eseguiti di volta in
volta~\citep{emacs:odebari}. Il testo che si sta modificando in \emacs\ è
contenuto in un oggetto chiamato \emph{buffer}. Quando si apre un file, il suo
testo viene memorizzato in un buffer. In prima approssimazione possiamo dire
che il \emph{buffer} è il contenuto di un file, già esistente oppure che si sta
creando.
\begin{figure}[ht]
\centering
\begin{tikzpicture}\footnotesize\sffamily
%
% immagine
%
\pgfdeclareimage[width=0.70\textwidth]{splash}{figure/splash}
\pgftext[at=\pgfpoint{0}{0},left,base] {\pgfuseimage{splash}};
% \draw[help lines,step=0.1] (0,0) grid (0.70\textwidth,10);
%
% minibuffer
%
\draw[line] (8.2,0.15) -- (9,0.15) node[block,right=2] {minibuffer};
%
% window
%
\draw[line] (8.2,3.5) -- (9,3.5) node[block,right=2] {window};
%
% toolbar
%
\draw[line] (8.2,7) -- (10,7) -- (10,6.5) node[block,below=2] {toolbar};
%
% menubar
%
\draw[line] (8.2,7.4) -- (9,7.4) node[block,right=2] {menubar};
\end{tikzpicture}
\caption{Un \emph{frame} di \progstyle{GNU Emacs} che contiene la classica
schermata iniziale.}
\label{fig:principale}
\end{figure}
Terminata questa breve carrellata terminologica, possiamo passare alla pratica.
Per creare un nuovo documento ci sono due modi: raggiungendo il menù
\menu{File > Visit New File\dots} oppure premendo \verb|C-x C-f|, dopo di che
\emacs\ chiederà di aprire/trovare un file. Scrivendo un nome che nella
cartella di lavoro non esiste questo file sarà creato. Dopo averlo nominato, per
esempio \filestyle{primo.tex}, si può cominciare a scrivere in \LaTeX. Per gli
amanti delle scorciatoie da tastiera (autentico punto di forza di \emacs),
scrivendo \verb|C-c C-e| potremo inserire un nuovo ambiente in modo interattivo.
Il cursore si sposterà nel \emph{minibuffer} e lì si potrà scrivere il nome
dell'ambiente da inserire. Questo è il messaggio visualizzato:
\begin{lstlisting}
Environment type: (default document)
\end{lstlisting}
In questo esempio, dato che non c'è ancora alcun documento attivo, l'ambiente
\ambstyle{document} sarà proposto come quello predefinito. Dopo il primo
\verb|RET| apparirà nel minibuffer la scritta
\begin{lstlisting}
Document class: (default article)
\end{lstlisting}
che permette di scegliere la classe che, per impostazione predefinita, è
\classstyle{article}. Si dia ancora \verb|RET| e si vedrà
\begin{lstlisting}
Options:
\end{lstlisting}
che permette di scegliere le opzioni della classe. Si faccia la scelta, si dia
un terzo \verb|RET| e si avrà infine il classico
\begin{lstlisting}[language={[LaTeX]TeX}]
\documentclass{article}
\begin{document}
£\meta{\textrm{cursore}}£
\end{document}
\end{lstlisting}
con il cursore correttamente posizionato nell'ambiente \ambstyle{document}.
Come è naturale che sia, le macro \LaTeX\ possono essere inserite manualmente,
ma \auctex\ facilità notevolmente il loro inserimento. \auctex, infatti,
conosce la sintassi delle macro e degli ambienti di un centinaio dei pacchetti
\LaTeX\ più diffusi. Per poter inserire una macro nel documento bisogna premere
\verb|C-c RET| (oppure \verb|C-c C-m|) e nel \emph{minibuffer} sarà possibile
inserire il nome della macro. Si può utilizzare \verb|TAB| per
l'autocompletamento. Inoltre conosce gli argomenti e le opzioni delle macro:
infatti, dando \verb!C-c RET frac RET! nel documento si otterrà \verb!\frac{}{}!
e il cursore si posizionerà all'interno del primo paio di parentesi graffe.
Analogamente, con \verb!C-c RET sqrt RET! verrà richiesto l'ordine \verb!n!
della radice da inserire (premere direttamente \verb!RET! per non inserire
nulla) e si otterrà \verb!\sqrt[n]{}!. Un altro esempio è la macro
\verb|\verb|: \auctex\ chiederà di scegliere il carattere da utilizzare come
delimitatore e poi di inserire il testo di argomento.
Per comporre il documento, si può
\begin{compactitemize}
\item premere sul pulsante presente nella \emph{toolbar};
\item scegliere \menu{Command > LaTeX}\,;
\item scrivere \verb|C-c C-c|. In quest'ultimo caso nel minibuffer si vedrà
\begin{lstlisting}
Command: (default LaTeX)
\end{lstlisting}
e si dovrà premere \verb|RET| per lanciare effettivamente \LaTeX.
\end{compactitemize}
Durante la composizione del documento \emacs\ restituirà
\begin{lstlisting}
Type `C-c C-l' to display results of compilation.
\end{lstlisting}
e alla fine, se tutto è filato liscio senza errori, si avrà
\begin{lstlisting}
LaTeX: successfully formatted {1} page
\end{lstlisting}
Con questa procedura si scrive un nuovo documento \LaTeX.
Senza nessuna impostazione personale, il procedimento appena descritto
crea un file \filestyle{.dvi}. Se con gli stessi comandi
si vuole invece un file \filestyle{.pdf}, si deve scrivere
\begin{lstlisting}
(add-hook 'LaTeX-mode-hook 'TeX-PDF-mode)
\end{lstlisting}
nel file \filestyle{.emacs}.
Per visualizzare il documento prodotto, sia esso un file \filestyle{.dvi} o un
\filestyle{.pdf}, si può
\begin{compactitemize}
\item premere sul pulsante presente nella \emph{toolbar};
\item raggiungere \menu{Command > View} e dare poi \verb|RET|;
\item scrivere \verb|C-c C-C RET| o \verb|C-c C-v|.
\end{compactitemize}
Se \emacs\ e \auctex\ sono configurati per lavorare con la sincronizzazione, in
tutti e tre i casi il visualizzatore dovrebbe aprirsi sulla riga corrispondente
del file sorgente.
\section{Correzione ortografica}
\label{sec:corr:orto:in:azione}
Dopo aver descritto le modalità di installazione dei correttori ortografici,
in questo paragrafo specifichiamo come usarli, indipendentemente dal sistema
operativo presente sulla propria macchina.
Per fare una revisione del documento che si sta scrivendo, bisogna dare
\verb!M-x ispell RET!: in questo modo il dizionario proporrà, in sequenza, la
correzione dei termini che trova errati.
Un secondo modo per scrivere correttamente è attivare la modalità
\emph{flyspell} (‘correzione al volo’). Se la si vuole solo sul documento
corrente, basta andare in
\menu{Tools > Spell Checking > Automatic spell checking (Flyspell)}; se invece
la si vuole sempre abilitata si deve aggiungere la riga
\begin{lstlisting}
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
\end{lstlisting}
al proprio file \filestyle{.emacs}.
Quando il correttore rileva una parola potenzialmente non corretta, la colora
(in genere) in rosso. Alcuni termini, però, vengono segnalati come scorretti
anche quando non lo sono, ma solo perché non sono presenti nel dizionario: vi
possono essere aggiunti portando il puntatore del mouse sulla parola in
questione, premendo il tasto centrale e scegliendo \texttt{Save word}.
\chapter{Uso avanzato di \emacs}
\label{chap:uso:avanzato}
\section{Un documento più complesso}
\label{sec:documento:complesso}
Per scrivere documenti piuttosto corposi come libri, manuali, tesi e così via,
conviene suddividere il documento in un file principale, che chiameremo per
esempio \filestyle{master.tex}, e altri file nei quali scrivere il vero e
proprio contenuto del lavoro, per esempio \filestyle{capitolouno.tex} e
\filestyle{capitolodue.tex}.
\emacs, come altri editor di testi, permette di lanciare la composizione del
documento direttamente dal file su cui si sta lavorando anche se questo non è il
file principale, cioè il file \filestyle{master.tex} che dovrà contenere, per
definizione, qualcosa come
\begin{lstlisting}[language={[LaTeX]TeX}]
\documentclass{book}
\begin{document}
\input{capitolouno}
\input{capitolodue}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
\end{lstlisting}
Si notano subito alcune righe commentate non presenti nel codice descritto nel
paragrafo~\ref{sec:primodocumento}: sono le \emph{variabili locali}. Per capire
subito di che cosa si tratti, si pensi alle famose ‘righe magiche’ che si usano
per esempio con \TeX works~\citep{texworks:gregorio}.
Le variabili locali sono metacommenti ignorati da \LaTeX\ --~in quanto
commenti~-- ma non da \emacs\ e servono per impostare alcune preferenze del
documento in lavorazione. Esse si possono indicare alla fine del file tra le
righe \verb|%%% Local Variables:| e \verb|%%% End:| oppure in un'unica riga tra
\verb|% -*-| e \verb|-*-| all'inizio del file. Ci riferiremo al primo caso.
Prima di proseguire è bene ricordare che le due variabili di cui parleremo sono
messe a disposizione da \auctex. La riga \verb|%%% mode: latex| indica che
stiamo scrivendo un documento \LaTeX, mentre \verb|%%% TeX-master: t| indica che
il file in questione è il file principale su cui lanciare le composizioni.
I file \filestyle{capitolouno.tex} e \filestyle{capitolodue.tex}, invece, oltre
al proprio contenuto conterrano alla fine le righe
\begin{lstlisting}[language={[LaTeX]TeX}]
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "master"
%%% End:
\end{lstlisting}
in cui mediante la riga \verb|%%% TeX-master: "master"| si specifica che la
composizione deve essere lanciata sul file \filestyle{master.tex}. La
figura~\ref{fig:complex} mostra un documento complesso come quello appena
descritto così come appare sullo schermo.
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{complesso}
\caption{Lo schema di un documento complesso suddiviso in più file. Il
\emph{frame} è diviso in tre \emph{windows}.}
\label{fig:complex}
\end{figure}
Per fare in modo che all'apertura di un nuovo documento ci venga chiesto se il
file debba essere o no un file \emph{master}, si deve scrivere
\begin{lstlisting}
(setq-default TeX-master nil)
\end{lstlisting}
nel file \filestyle{.emacs} (si veda il capitolo~\ref{chap:personal}).
\section{Le variabili locali}
\label{sec:variabili:locali}
Abbiamo già accennato alle variabili locali nel paragrafo precedente. Ora
vediamo la questione un po' più a fondo. Va detto subito che ogni volta che si
aggiunge una variabile locale si deve ricaricare il file perché questa sia
riconosciuta. Questo può essere fatto aprendo e chiudendo \emacs, oppure, più
semplicemente, eseguendo \verb|M-x revert-buffer RET yes RET|.
Si consiglia di impostare le variabili locali con la modalità di inserimento tra
\verb|%%% Local Variables:| e \verb|%%% End:| alla fine del file. Alle già