Il log che scorre in Emacs

  • Creatore
    Topic
  • #51118
    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) `
    In realtà, però, se provo a far ciò mi viene restituito l’errore:
    `Warning (initialization): An error occurred while loading `/home/spike/.emacs':
    Symbol's value as variable is void: auctex.el`
    Inoltre se apro un file .tex AUCTeX si avvia anche senza quelle due stringhe. Come devo procedere? Le metto? Le tolgo?
    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)?
    Allego infine il contenuto del mio file di configurazione .emacs con la speranza che possiate dirmi se c’è o no qualche cosa che non va (ho aggiunto a mano solo le prime righe; il resto è frutto di impostazioni di AUCTeX effettuate da dentro emacs stesso).
    `; lunghezza righe
    (setq-default fill-column 72)
    ; richiede file master
    (setq-default TeX-master nil)
    ; interpretazione logica del sorgente
    (setq TeX-parse-self t)
    (setq TeX-auto-save t)
    (setq TeX-interactive-mode t)

    (custom-set-variables
    ;; custom-set-variables was added by Custom.
    ;; If you edit it by hand, you could mess it up, so be careful.
    ;; Your init file should contain only one such instance.
    ;; If there is more than one, they won't work right.
    '(TeX-PDF-mode t)
    '(TeX-command-list (quote ((“TeX” “%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t” TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help “Run plain TeX”) (“LaTeX” “%`%l%(mode)%' %t” TeX-run-interactive nil (latex-mode doctex-mode) :help “Run LaTeX”) (“Makeinfo” “makeinfo %t” TeX-run-compile nil (texinfo-mode) :help “Run Makeinfo with Info output”) (“Makeinfo HTML” “makeinfo –html %t” TeX-run-compile nil (texinfo-mode) :help “Run Makeinfo with HTML output”) (“AmSTeX” “%(PDF)amstex %`%S%(PDFout)%(mode)%' %t” TeX-run-TeX nil (ams-tex-mode) :help “Run AMSTeX”) (“ConTeXt” “texexec –once –texutil %(execopts)%t” TeX-run-TeX nil (context-mode) :help “Run ConTeXt once”) (“ConTeXt Full” “texexec %(execopts)%t” TeX-run-TeX nil (context-mode) :help “Run ConTeXt until completion”) (“BibTeX” “bibtex %s” TeX-run-BibTeX nil t :help “Run BibTeX”) (“View” “%V” TeX-run-discard-or-function t t :help “Run Viewer”) (“Print” “%p” TeX-run-command t t :help “Print the file”) (“Queue” “%q” TeX-run-background nil t :help “View the printer queue” :visible TeX-queue-command) (“File” “%(o?)dvips %d -o %f ” TeX-run-command t t :help “Generate PostScript file”) (“Index” “makeindex %s” TeX-run-command nil t :help “Create index file”) (“Check” “lacheck %s” TeX-run-compile nil (latex-mode) :help “Check LaTeX file for correctness”) (“Spell” “(TeX-ispell-document \”\”)” TeX-run-function nil t :help “Spell-check the document”) (“Clean” “TeX-clean” TeX-run-function nil t :help “Delete generated intermediate files”) (“Clean All” “(TeX-clean t)” TeX-run-function nil t :help “Delete generated intermediate and output files”) (“Other” “” TeX-run-command t t :help “Run an arbitrary command”))))
    '(TeX-show-compilation t)
    '(TeX-source-correlate-method (quote synctex))
    '(TeX-source-correlate-mode t)
    '(TeX-source-correlate-start-server t))
    (custom-set-faces
    ;; custom-set-faces was added by Custom.
    ;; If you edit it by hand, you could mess it up, so be careful.
    ;; Your init file should contain only one such instance.
    ;; If there is more than one, they won't work right.
    )`
    Grazie mille
    Fra

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #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)

    • #51120
      Up
      0
      Down
      ::


      Buongiorno e grazie mille per la risposta!

      Che sistema hai? Come hai installato AUCTeX? Credo che quelle righe comunque non servano. A ogni modo

      Hai ragione avrei dovuto specificarlo prima. Ho Ubuntu appena aggiornato alla 10.10 ed ho installato AUCTeX scaricando da http://www.gnu.org/software/auctex/download-for-unix.html e poi dando i comandi
      `./configure
      make
      make install`
      come spiegato in http://www.gnu.org/software/auctex/manual/auctex.html#Installation alla voce “installazione”. Comunque vorrei in futuro installarlo anche su Windows7. Ci sono sostanziali differenze?

      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.

      Qui mi sono un po’ perso nel senso che non ho ben capito cosa siano questi Makefile e come possano essere creati! Puoi darmi qualche riferimento?

      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)

      Se l’unico effetto collaterale è quello di dover compilare a mano più volte quando necessario penso che possa andarmi bene per ora. Ho provato, però, a sostituire l’opzione che mi hai suggerito dalle impostazioni di AUCTeX ed il log continua a non scorrere..inoltre si trova in un buffer in sola lettura quindi anche se vado manualmente al punto in cui c’è l’errore non posso interagire. Sbaglio qualcosa?

      Grazie mille
      Fra

    • #51121
      Up
      0
      Down
      ::

      Buongiorno e grazie mille per la risposta!

      Che sistema hai? Come hai installato AUCTeX? Credo che quelle righe comunque non servano. A ogni modo

      Hai ragione avrei dovuto specificarlo prima. Ho Ubuntu appena aggiornato alla 10.10 ed ho installato AUCTeX scaricando da http://www.gnu.org/software/auctex/download-for-unix.html e poi dando i comandi
      `./configure
      make
      make install`
      come spiegato in http://www.gnu.org/software/auctex/manual/auctex.html#Installation alla voce “installazione”.

      Io su Ubuntu ho installato AUCTeX 11.86 usando i pacchetti di Debian sid, funzionano perfettamente: http://packages.debian.org/sid/auctex
      http://packages.debian.org/sid/preview-latex-style

      Comunque vorrei in futuro installarlo anche su Windows7. Ci sono sostanziali differenze?

      Non ho mai installato AUCTeX su Windows. Nelle istruzioni che riporta qui sembra che si debba installare Cygwin: http://www.gnu.org/software/auctex/manual/auctex.html#Installation-under-MS-Windows

      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.

      Qui mi sono un po’ perso nel senso che non ho ben capito cosa siano questi Makefile e come possano essere creati! Puoi darmi qualche riferimento?

      Avevo scritto una guida un po’ di tempo fa: http://elubuntu.blogspot.com/2009/10/guida-introduttiva-alla-creazione-di.html. Se hai qualche difficoltà chiedi pure in questa discussione: http://www.guit.sssup.it/phpbb/viewtopic.php?t=6690 😉

      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)

      Se l’unico effetto collaterale è quello di dover compilare a mano più volte quando necessario penso che possa andarmi bene per ora. Ho provato, però, a sostituire l’opzione che mi hai suggerito dalle impostazioni di AUCTeX ed il log continua a non scorrere..inoltre si trova in un buffer in sola lettura quindi anche se vado manualmente al punto in cui c’è l’errore non posso interagire. Sbaglio qualcosa?

      Grazie mille
      Fra

      Ho suggerito varie cose, esattamente cosa hai sostituito? 🙂
      Visto che hai Ubuntu, se hai intenzione di usare texi2pdf, per ottenere texinfo ti basta installare da Synaptic/Software Centre il pacchetto omonimo, oppure da terminale:
      `sudo apt-get install texinfo`

    • #51122
      Up
      0
      Down
      ::

      [quote]
      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)

      Se l’unico effetto collaterale è quello di dover compilare a mano più volte quando necessario penso che possa andarmi bene per ora. Ho provato, però, a sostituire l’opzione che mi hai suggerito dalle impostazioni di AUCTeX ed il log continua a non scorrere..inoltre si trova in un buffer in sola lettura quindi anche se vado manualmente al punto in cui c’è l’errore non posso interagire. Sbaglio qualcosa?

      Grazie mille
      Fra

      Ho suggerito varie cose, esattamente cosa hai sostituito? 🙂
      Visto che hai Ubuntu, se hai intenzione di usare texi2pdf, per ottenere texinfo ti basta installare da Synaptic/Software Centre il pacchetto omonimo, oppure da terminale:
      `sudo apt-get install texinfo`[/quote]
      Scusami sempre colpa mia! 🙂 Comunque ho cambiato l’impostazione Tex-run-interactive in TeX-run-compile, ma il risultato è quello che ti accennavo sopra! Intanto cercherò di leggere la tua guida sui makefile! Grazie e complimenti! 😉

      Fra

    • #51123
      Up
      0
      Down
      ::

      Scusami sempre colpa mia! 🙂 Comunque ho cambiato l’impostazione Tex-run-interactive in TeX-run-compile, ma il risultato è quello che ti accennavo sopra!

      Hai modificato il valore della variabile `compilation-scroll-output’? Se la risposta è negativa dai il comando
      `customize-variable RET compilation-scroll-output`
      e salva per le sessioni future oppure con C-x C-s.

      Intanto cercherò di leggere la tua guida sui makefile! Grazie e complimenti! 😉
      Fra

      Grazie, ciao 🙂

    • #51124
      Up
      0
      Down
      ::

      Scusami sempre colpa mia! 🙂 Comunque ho cambiato l’impostazione Tex-run-interactive in TeX-run-compile, ma il risultato è quello che ti accennavo sopra!

      Hai modificato il valore della variabile `compilation-scroll-output’? Se la risposta è negativa dai il comando
      `customize-variable RET compilation-scroll-output`
      e salva per le sessioni future oppure con C-x C-s.

      Allora purtroppo ancora c’è qualcosa che non va!! Se utilizzo TeX-run-compile settando compilation-scroll-output (sia su “scroll compilation output” che su “stop compilation at first error”) il .log scorre per bene e si ferma appena incontrato un errore però il buffer è in modalità di sola lettura e quindi è impossibile interagire con la compilazione. Se invece utilizzo l’opzione TeX-run-interactive il .log non scorre più per qualsiasi valore della variabile compilation-scroll-output, ma ho la possibilità di interagire in caso di errore!! C’è un modo per avere entrambe le cose?

      Grazie ancora
      Fra

    • #51125
      Up
      0
      Down
      ::

      [quote]Scusami sempre colpa mia! 🙂 Comunque ho cambiato l’impostazione Tex-run-interactive in TeX-run-compile, ma il risultato è quello che ti accennavo sopra!

      Hai modificato il valore della variabile `compilation-scroll-output’? Se la risposta è negativa dai il comando
      `customize-variable RET compilation-scroll-output`
      e salva per le sessioni future oppure con C-x C-s.

      Allora purtroppo ancora c’è qualcosa che non va!! Se utilizzo TeX-run-compile settando compilation-scroll-output (sia su “scroll compilation output” che su “stop compilation at first error”) il .log scorre per bene e si ferma appena incontrato un errore però il buffer è in modalità di sola lettura e quindi è impossibile interagire con la compilazione. Se invece utilizzo l’opzione TeX-run-interactive il .log non scorre più per qualsiasi valore della variabile compilation-scroll-output, ma ho la possibilità di interagire in caso di errore!! C’è un modo per avere entrambe le cose?

      Grazie ancora
      Fra[/quote]
      Insomma vuoi la botte piena e la moglie ubriaca 😀

      Credo che la modalità `compilation’ sia più che altro orientata alla programmazione (C, C++ e compagnia), lì non mi risulta che esista la compilazione interattiva.

      Puoi provare a fare così: lascia stare `TeX-run-compile’ e ritorna a `TeX-run-interactive’: il log non scorre automaticamente se non ci sono errori (e penso che sia una cosa accettabile), però in caso di errori si ferma e puoi interagire (il buffer non è in sola lettura, ho appena controllato). Se ti interessa controllare anche i warning puoi selezionare l’opzione Command → TeXing Options → Debug Warnings (non ho controllato però a che variabile corrisponda)

    • #51126
      Up
      0
      Down
      ::

      Insomma vuoi la botte piena e la moglie ubriaca 😀

      Eh si!! 😀 In realtà ero passato ad emacs proprio perchè pensavo di poter ottenere tutto ciò che desideravo!! 🙂 Vedrò di accontentarmi, comunque!!!

      Credo che la modalità `compilation’ sia più che altro orientata alla programmazione (C, C++ e compagnia), lì non mi risulta che esista la compilazione interattiva.

      Puoi provare a fare così: lascia stare `TeX-run-compile’ e ritorna a `TeX-run-interactive’: il log non scorre automaticamente se non ci sono errori (e penso che sia una cosa accettabile), però in caso di errori si ferma e puoi interagire (il buffer non è in sola lettura, ho appena controllato). Se ti interessa controllare anche i warning puoi selezionare l’opzione Command → TeXing Options → Debug Warnings (non ho controllato però a che variabile corrisponda)

      Penso che alla fine farò così! Mi sembra comunque accettabile! Penso che continuerò comunque ad utilizzare emacs perchè ha molte cose che mi piacciono (preview, multipiattaforma e alta velocità dovuta all’inutilizzo completo del muose).

      Grazie mille per l’aiuto!!!
      Fra

    • #51127
      Up
      0
      Down
      ::

      Insomma vuoi la botte piena e la moglie ubriaca 😀

      Eh si!! 😀 In realtà ero passato ad emacs proprio perchè pensavo di poter ottenere tutto ciò che desideravo!! 🙂 Vedrò di accontentarmi, comunque!!!

      In realtà con Emacs si può in linea teorica fare di tutto, l’unica difficoltà è che per poter personalizzare per bene questo programma (almeno autonomamente) è necessario conoscere il Lisp, o meglio il suo dialetto Elisp. Non conoscendolo mi limito a utilizzare le opzioni fornite da Emacs e AUCTeX (o quello che trovo su Internet), ma immagino che chi lo conosce sia in grado di ottenere quello che chiedi velocemente (non mi sembra così difficile da realizzare lo scorrimento di un buffer)

    • #51128
      Up
      0
      Down
      ::

      [quote]
      Insomma vuoi la botte piena e la moglie ubriaca 😀

      Eh si!! 😀 In realtà ero passato ad emacs proprio perchè pensavo di poter ottenere tutto ciò che desideravo!! 🙂 Vedrò di accontentarmi, comunque!!!

      In realtà con Emacs si può in linea teorica fare di tutto, l’unica difficoltà è che per poter personalizzare per bene questo programma (almeno autonomamente) è necessario conoscere il Lisp, o meglio il suo dialetto Elisp. Non conoscendolo mi limito a utilizzare le opzioni fornite da Emacs e AUCTeX (o quello che trovo su Internet), ma immagino che chi lo conosce sia in grado di ottenere quello che chiedi velocemente (non mi sembra così difficile da realizzare lo scorrimento di un buffer)[/quote]
      Cercando su internet non sono riuscito a trovare qualche cosa che faccia al caso mio! Beh non mi resta che aspettare, magari qualcuno che ne sa di più potrebbe esaudire il desiderio!! 😉 Comunque ti ringrazio di nuovo per il tuo aiuto!!!

      Fra

Visualizzazione 9 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top