Re: Il log che scorre in Emacs

#51119
Up
0
Down
::

Buonasera a tutti,
da qualche giorno mi sono buttato nel mondo di emacs e sto cercando di imparare ad utilizzarlo e personalizzarlo il più possibile. In particolare ho installato anche l’estensione AUCTeX per lavorare meglio con LaTeX, però ho dei problemi nel comprendere delle cose. Seguendo, ad esempio, la guida di Onofrio de Bari sul secondo numero di ArsTeXnica trovo scritto che AucTeX va attivato aggiungendo al file .emacs le righe
`(load auctex.el nil t t)
(require ’tex-site) `

Che sistema hai? Come hai installato AUCTeX? Credo che quelle righe comunque non servano. A ogni modo
`(require ’tex-site) `
è un vecchio modo per caricare l’estensione, ora non serve più (lo dice nel manuale: http://www.gnu.org/software/auctex/manual/auctex.html)

Poi un’altra richiesta: ho attivato la visualizzazione del .log in un buffer di emacs quando do il comando “latex” però questo rimane fermo sulla parte iniziale e non segue il flusso di compilazione. Si può fare in modo che, invece, la finestra scorra seguendo tale flusso (come avviene in altri editor)?

Personalmente compilo raramente in quel modo perché mi scrivo i Makefile e compilo usando il comando
`compile RET RET`
e lì l’output scorre normalmente, credo che ci sia da impostare la variabile `compilation-scroll-output’ su non-nil. Come al solito le variabili possono essere modificate con il comando
`customize-variable RET compilation-scroll-output`
e dopo aver cambiato il valore salva con C-x C-s (che non fa altro che salvare le modifiche nel .emacs) oppure fai clic sull’apposito pulsante.
Se non hai intenzione di usare questa modalità di compilazione puoi utilizzare la compilazione interattiva (ma vedo dal tuo .emacs che è già impostata). La attivi con C-c C-t C-i, oppure da Command → TeXing options → Run interactively. In questo modo se non ci sono errori non scorre, però se ne incontra rimane sempre fermo in alto. L’aspetto negativo è che se trova un errore non ti rimanda automaticamente al rigo in cui l’ha incontrato (a differenza del comando `compile’, che preferisco anche per questo motivo).

EDIT: forse la soluzione è più facile di quanto pensassi: modifica la variabile `TeX-command-list’ con il comando
`customize-variable RET TeX-command-list`
Vai al comando che usi per compilare (immagino sia `LaTeX’) e imposta `How’ su `TeX-run-compile’. Ciò equivale a sostituire `TeX-run-interactive’ con `TeX-run-compile’ nel .emacs dopo la definizione del comando LaTeX (o quello che ti interessa)

EDIT 2: giustamente questo cambiamento ha un effetto collaterale. Perdi la compilazione “intelligente”: dopo aver eseguito una volta LaTeX, se deve essere lanciato di nuovo per sistemare dei riferimenti, Emacs non ne se ne accorgerà se hai impostato la modalità `TeX-run-compile’. Puoi, più o meno, risolvere questo problema creando un comando (o se preferisci, ma te lo sconsiglio, cambiando `LaTeX’) che compila usando lo script `texi2pdf’ (fa parte di texinfo) al posto di `pdflatex’. Qui come modalità puoi impostare `TeX-run-compile’ perché texi2pdf cerca di eseguire `pdflatex’ il numero di volte strettamente necessario per la compilazione (e anche bibtex e makeindex, all’occorrenza)

Go to top