Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

une touche pour sauver, compiler, visualiser (auctex)

12 réponses
Avatar
Stéphane Dutailly
Bonjour à tous,

Voilà trois mois que je suis passé à emacs et mon adaptation n'a pas été
si douloureuse que je le craignais. Néanmoins, il y a un truc que
j'aimerais vraiment pouvoir faire (tout est dans le titre).
Pour l'instant, j'utilise emacs à 95% pour éditer des fichiers Tex
(j'utilise donc auctex et pdflatex comme moteur). Pour voir le rendu de
ce que j'écris, je dois faire:
la 1ere fois
sauver: C-x C-s
compiler: C-c C-c RET
visualiser: C-c C-c RET RET
puis ensuite:
sauver: C-x C-s
compiler: C-c C-c RET (et l'affichage est rafraichit automatiquement)

Je me suis habitué mais je voudrais savoir si quelqu'un aurait une idée
pour faire tout cela avec une seule touche (sous texniccenter,
j'utilisais f5 pour faire build+view, et la sauvegarde était automatique
à la compilation).
Merci d'avance,
Stéphane

10 réponses

1 2
Avatar
Alain Ketterlin
Stéphane Dutailly writes:

la 1ere fois
sauver: C-x C-s
compiler: C-c C-c RET
visualiser: C-c C-c RET RET
puis ensuite:
sauver: C-x C-s
compiler: C-c C-c RET (et l'affichage est rafraichit automatiquement)

Je me suis habitué mais je voudrais savoir si quelqu'un aurait une
idée pour faire tout cela avec une seule touche (sous texniccenter,
j'utilisais f5 pour faire build+view, et la sauvegarde était
automatique à la compilation).



<f3> C-x C-s C-c C-c RET <f4>

et ensuite <f4> chaque fois que tu voudras sauver puis compiler.

Je te recommande de lire toute la section info sur les "Keyboard
Macros", c'est très pratique.

-- Alain.
Avatar
Stéphane Dutailly
Le 02/02/2011 17:25, Alain Ketterlin a écrit :
Stéphane Dutailly writes:

la 1ere fois
sauver: C-x C-s
compiler: C-c C-c RET
visualiser: C-c C-c RET RET
puis ensuite:
sauver: C-x C-s
compiler: C-c C-c RET (et l'affichage est rafraichit automatiquement)

Je me suis habitué mais je voudrais savoir si quelqu'un aurait une
idée pour faire tout cela avec une seule touche (sous texniccenter,
j'utilisais f5 pour faire build+view, et la sauvegarde était
automatique à la compilation).



<f3> C-x C-s C-c C-c RET<f4>

et ensuite<f4> chaque fois que tu voudras sauver puis compiler.

Je te recommande de lire toute la section info sur les "Keyboard
Macros", c'est très pratique.

-- Alain.



Super, merci Alain. Ça marche bien, c'est ce que je veux faire, mais
j'ai une dernière question, comment faire pour pouvoir retrouver cette
macro après un redémarrage d'emacs?
Merci encore,
Stéphane
Avatar
Damien Wyart
* Stéphane Dutailly in fr.comp.applications.emacs:
Super, merci Alain. Ça marche bien, c'est ce que je veux faire, mais
j'ai une dernière question, comment faire pour pouvoir retrouver cette
macro après un redémarrage d'emacs?



http://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html

Réponse un peu RTFM, mais bon, Emacs est quand même très bien documenté,
donc autant en profiter ;)

--
DW
Avatar
vincent.belaiche
Stéphane Dutailly writes:

Le 02/02/2011 18:25, Damien Wyart a écrit :



[...]




G-E-N-I-A-L, merci beaucoup à tous les deux (ça ouvre de sacrées
perspectives..), vous m'avez faire découvrir quelque chose de bien utile.
Stéphane

PS: ça veut dire quoi RTFM?



Sinon tu peux faire un truc du genre --- pas testé (ça ne devrait faire
que save et compile):

-----------------------------------------------------------------------
(defun my-save-compile-view ()
(interactive)
(TeX-save-document "")
(TeX-command "LaTeX" 'TeX-active-master 0))
(defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))
-----------------------------------------------------------------------
Avatar
Paul Gaborit
À (at) Thu, 03 Feb 2011 07:36:07 +0100,
(Vincent Belaïche) écrivait (wrote):

Sinon tu peux faire un truc du genre --- pas testé (ça ne devrait faire
que save et compile):

-----------------------------------------------------------------------
(defun my-save-compile-view ()
(interactive)
(TeX-save-document "")
(TeX-command "LaTeX" 'TeX-active-master 0))
(defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))
-----------------------------------------------------------------------



Cela me semble plus sûr que la solution précédente puisque ça permet
d'enregistrer *tous* les fichiers du document en cours. En fait c'est
équivalent à :

C-c C-d <ret>
C-c C-c <ret>

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Alain Ketterlin
Stéphane Dutailly writes:

PS: ça veut dire quoi RTFM?



Read The Fine/Formidable/Funny/.../F***ing Manual. C'est une remarque
qui est en général, disons, teintée d'agacement.

-- Alain.
Avatar
Alain Ketterlin
(Vincent Belaïche) writes:

-----------------------------------------------------------------------
(defun my-save-compile-view ()
(interactive)
(TeX-save-document "")
(TeX-command "LaTeX" 'TeX-active-master 0))
(defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))
-----------------------------------------------------------------------



Ne faudrait-il pas tester la valeur de retour de TeX-save-document pour
savoir s'il est nécessaire de relancer latex ?

-- Alain.

P/S: en tout cas c'est beaucoup mieux que la macro à base de C-c C-c,
qui risque de faire autre chose que latex...
Avatar
Paul Gaborit
À (at) Thu, 03 Feb 2011 11:07:37 +0100,
Alain Ketterlin écrivait (wrote):

(Vincent Belaïche) writes:

-----------------------------------------------------------------------
(defun my-save-compile-view ()
(interactive)
(TeX-save-document "")
(TeX-command "LaTeX" 'TeX-active-master 0))
(defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))
-----------------------------------------------------------------------



Ne faudrait-il pas tester la valeur de retour de TeX-save-document pour
savoir s'il est nécessaire de relancer latex ?



Si AucTeX était parfait, cela serait une bonne idée... Mais AucTeX,
contrairement à latexmk, ne détecte pas que certains fichiers externes
ont changé (par exemple une image). Il est donc parfois nécessaire de
forcer la recompilation alors que AucTeX estime que ce n'est pas
nécessaire.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
vincent.belaiche
Stéphane Dutailly writes:

Le 03/02/2011 07:36, Vincent Belaïche a écrit :

Sinon tu peux faire un truc du genre --- pas testé (ça ne devrait faire
que save et compile):

-----------------------------------------------------------------------
(defun my-save-compile-view ()
(interactive)
(TeX-save-document "")
(TeX-command "LaTeX" 'TeX-active-master 0))
(defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))
-----------------------------------------------------------------------



Merci vincent. C'est bien mais il me reste deux questions du coup:

1) (defun my-LaTeX-mode-hook ()
(local-set-key [f5] 'my-save-compile-view))

n'a pas d'effet (j'obtiens <f5> is undefined)
(en fait je crois que j'ai déjà testé d'autres choses avec des local-set-key
et ça ne marchait pas non plus... je ne comprends pas pourquoi)




Oui c'est complètement normal, parce que j'ai oublié de te donner le
code pour enrigistrer la fonction my-LaTeX-mode-hook dans la liste des
crochets LaTeX, il suffit de faire ça:

(add-hook 'LaTeX-mode-hook 'my-LaTeX-mode-hook)



2) si je mets (global-set-key [f5] 'my-save-compile-view) alors cela
fonctionne bien mais lorsque j'appuie sur f5, le mini-buffer me demande tout
de même: Save file /home/.../monfichier.tex? (y or n)
et je dois donc appuyer sur y (d'accord, d'accord, je chipote... :-) )
Peut-on éviter cela?




Avec le truc que je t'ai donné ça ne marchera que si tu tapes f5 alors
que le cruseur est dans un tampon en mode LaTeX.

Merci encore.



De rien,

Stéphane



Vincent.
Avatar
vincent.belaiche
Stéphane Dutailly writes:


[...]


Avec le truc que je t'ai donné ça ne marchera que si tu tapes f5 alors
que le cruseur est dans un tampon en mode LaTeX.



Je ne comprends pas bien. Il me semble que c'est le cas -- je suis en train de
taper un fichier .tex --.
Quand je regarde le tampon *Messages*
1) si je fais C-x C-s C-c C-c RET , j'ai:

Saving file /home/.../test_emacs.tex...
Wrote /home/.../test_emacs.tex
Type `C-c C-l' to display results of compilation.
LaTeX: successfully formatted {1} page.

2) si je fais f5 pour my-save-compile-view (et il faut que j'appuie sur y),
j'ai:

Save file /home/.../test_emacs.tex? (y or n)
Saving file /home/.../test_emacs.tex...
Wrote /home/.../test_emacs.tex
Type `C-c C-l' to display results of compilation.
LaTeX: successfully formatted {1} page.

Suis-je à côté de la plaque par rapport à ta remarque?
Stéphane



Est-ce que tu as supprimé le global-set-key et relancé EMACS? que se
passe-t-il si tu fais `C-h k f5' (ça te donne la liaison de f5 à une
commande).

Vincent.
1 2