Auctex et Windows

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Auctex et Windows

Messagepar Tryphon » Samedi 29 Mars 2008, 18:27

Je viens d'installer Emacs et Auctex pour Windows, et je vois que la combinaison pour compléter une commande est M-tab, soit, si j'ai bien compris, Alt-tab.

Or Alt-tab est aussi un raccourci Windows pour naviguer d'application en application (et je l'utilise souvent).

Y'a-t-il moyen de modifier le raccourci pour la complétion de commandes pour Auctex ? Je préfèrerais qu'il soit tab tout court...
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Samedi 29 Mars 2008, 19:31

Bonjour,

À la place de M-TAB tu peux faire Esc-TAB.

Je ne te conseille pas de redéfinir TAB car il est très utile pour l'indentation du code.
Voilà une partie des raccourcis clavier que j'utilise où je te propose d'utiliser ² pour la complétion.
Ce code est à placer dans ton .emacs puis, pour éviter de redémarrer Emacs, place le curseur juste après la dernière parenthèse et presse C-x C-e.

Code: Tout sélectionner
;; ----------------------
;; * Raccourcis clavier *
(eval-after-load "latex"
  '(progn
     ;; Gestion des paires.
     (setq skeleton-pair t)
     (define-key LaTeX-mode-map "\$" 'skeleton-pair-insert-maybe)
     (define-key LaTeX-mode-map "\{" 'skeleton-pair-insert-maybe)
     (define-key LaTeX-mode-map "\(" 'skeleton-pair-insert-maybe)
     (define-key LaTeX-mode-map "["
       (lambda ()
         (interactive)
         (if (and
              (string= "\\" (char-to-string (char-before)))
              (not (string= "\\" (char-to-string (char-before (- (point) 1))))))
             (progn
               (insert "[\\]")(backward-char 2))
           (skeleton-pair-insert-maybe 1))))


     ;; Completion avec ²
     (define-key LaTeX-mode-map (kbd "²") 'TeX-complete-symbol)
     ;; Completion avec TAB (pas conseillé)
     ;; (define-key LaTeX-mode-map (kbd "TAB") 'TeX-complete-symbol)

     ;; ---------------------------
     ;; * Indentation automatique *
     (define-key LaTeX-mode-map "\C-m"
       (lambda()
         (interactive)
         (newline)
         (indent-for-tab-command)))

     ;; In math mode _ inserts _{*} and ^ inserts ^{*}
     ;;      where *=cursor. It's very useful
     (if (require 'texmathp "texmathp.elc" t)
         (progn
           (define-key LaTeX-mode-map [(^)] (lambda ()
                                              (interactive)
                                              (if (texmathp)
                                                  (progn
                                                    (insert "^{}")
                                                    (backward-char))
                                                (insert "^"))))

           (define-key LaTeX-mode-map [(_)] (lambda ()
                                              (interactive)
                                              (if (texmathp)
                                                  (progn
                                                    (insert "_{}")
                                                    (backward-char))
                                                (insert "_")))))
       (progn
         (message "texmathp not find...")))))


Pour répondre strictement à ta question la ligne qui t'intéresse est:

Code: Tout sélectionner
(define-key LaTeX-mode-map (kbd "TAB") 'TeX-complete-symbol)
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Dimanche 30 Mars 2008, 12:24

Merci, ça marche au poil.

Par contre, tu me dis que Tab permet l'indentation du code, et tant mieux, sauf que chez moi tab ne produit rien. Il y a une option à activer ?
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Dimanche 30 Mars 2008, 12:37

Tryphon a écrit:chez moi tab ne produit rien. Il y a une option à activer ?


Pas que je sache. En revanche il est de bon goût de mettre

Code: Tout sélectionner
;;Permanently force Emacs to indent with spaces, never with TABs:
(setq-default indent-tabs-mode nil)


Pour savoir ce que fait un raccourci presse C-h k puis ton raccourci (ici TAB). Dis nous ce que ça donne.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Dimanche 30 Mars 2008, 13:24

TAB (translated from <tab>) runs the command indent-for-tab-command which is an interactive compiled Lisp function in `indent.el'.
It is bound to TAB. (indent-for-tab-command &optional arg)

Indent line in proper way for current major mode or insert a tab. Depending on `tab-always-indent', either insert a tab or indent. If initial point was within line's indentation, position after the indentation. Else stay at same point in text. The function actually called to indent is determined by the value of `indent-line-function'.


Pourtant, je confirme que ça ne fait rien...
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Dimanche 30 Mars 2008, 14:19

Tryphon a écrit:Pourtant, je confirme que ça ne fait rien...


N'est-ce pas parce que le code est déjà indenté ?
Copie/colle ce texte dans un .tex, place le curseur n'importe où sur taratata et presse TAB. Je serais surpris qu'il ne se passe rien...

Code: Tout sélectionner
\begin{center}
taratata
\end{center}
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Dimanche 30 Mars 2008, 14:25

Tu as raison. En fait, l'indentation est plus intelligente que je pensais : tu ne peux pas indenter une ligne qui n'est pas elle-même dans un bloc !

Merci :)

J'essaie de faire fonctionner la compilation et le lancement d'un viewer maintenant !
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Dimanche 30 Mars 2008, 14:41

Tryphon a écrit:En fait, l'indentation est plus intelligente que je pensais

Ben n'as pas fini d'être surpris pas Emacs alors... ;-)
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Dimanche 30 Mars 2008, 17:32

C'est bien pour ça que je le teste ! :)

J'ai un autre problème : sur certains de mes documents les accents sont corrects, sur d'autres j'ai des séquences de controle du type \351 à la place des lettres accentuées. Je suppose qu'il s'agit d'un problème d'encodage, mais je ne sais pas pourquoi ça marche avec certains fichiers et pas d'autres.
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar gigiair » Dimanche 30 Mars 2008, 19:58

Tryphon a écrit:J'essaie de faire fonctionner la compilation et le lancement d'un viewer maintenant !


C-c C-c deux fois de suite.
Si tu as une installation MikTeX, il faut ajouter dans le .emacs

Code: Tout sélectionner
(require 'tex-mik)


Si tu préfères compiler en pdflatex plutôt que latex

C-c C-t C-p

C'est une bascule, donc la même commande fait passer d'un mode à l'autre.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2293
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Lundi 31 Mars 2008, 07:49

Merci.

Par contre, j'ai toujours ce problème louche d'encodage : certains de mes fichiers passent sans problèmes, d'autres, tapés dans les mêmes conditions, affichent des caractères comme \351 à la place des lettres accentuées. Et lorsque je copie/colle ces fichiers dans un autre éditeur, j'ai un comportement carrément rigolo, à savoir ça :

La v柩tation d'un pays imaginaire est compos早 椀渀椀琀椀愀氀攀洀攀渀琀 搀攀 琀爀漀椀猀 琀礀瀀攀猀 搀攀 瀀氀愀渀琀攀猀 㨀ഀ਀㐀  尀─ 猀漀渀琀 搀攀 琀礀瀀攀 ␀䄀␀Ⰰ 㐀㄀ 尀─ 搀攀 琀礀瀀攀 ␀䈀␀ 攀琀 ㄀㤀 尀─ 搀攀 琀礀瀀攀 ␀䌀␀⸀


J'en déduis donc que emacs essaue de déterminer automatiquement l'encodage d'un fichier (vu que je n'ai modifié aucun réglage entre l'ouverture du fichier qui va bien et celui qui va mal) et que cette détection automatique n'est pas parfaite.

Vu que je n'utilise que l'encodage iso-bidule-latin de windows, puis-je le préciser quelque part de façon à ce qu'il ne m'embête pas avec ça ?
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar gigiair » Lundi 31 Mars 2008, 08:41

Le mieux est de préciser l'encodage sur la première ligne du fichier lui-meme, que l'on met en commentaire
Le % est nécessaire pour un fichier LaTeX, mais ça peut être un autre caractère selon la nature du fichier.

par exemple :
Code: Tout sélectionner
%-*- coding: iso-8859-1 -*-

et ton fichier sera encodé en iso-8859-1quelque soit l'encodage par défaut de la machine.

D'autre part, la commande
C-x return f
permet de sélectionner l'encodage dans lequel le fichier sera sauvegardé, et du même coup Tab permet de lister les encodages possibles.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2293
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Lundi 31 Mars 2008, 09:17

Merci du tuyau.

Comment peut-on définir un préambule perso qui serait automatiquement (ou par raccourci clavier) affiché lors de la création d'un nouveau fichier TeX (contenant notamment cette ligne sur l'encodage) ?

(je sais, j'aurais dû commencer par demander si c'était possible, puis continuer sur la façon de le faire, mais je ne doute pas une seconde que ça soit possible :D ).
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar gigiair » Lundi 31 Mars 2008, 10:01

On peut en plus définir l'encodage par défaut dans le .emacs http://www.delorie.com/gnu/docs/emacs/emacs_221.html

Tryphon a écrit:Comment peut-on définir un préambule perso qui serait automatiquement (ou par raccourci clavier) affiché lors de la création d'un nouveau fichier TeX (contenant notamment cette ligne sur l'encodage) ?

(je sais, j'aurais dû commencer par demander si c'était possible, puis continuer sur la façon de le faire, mais je ne doute pas une seconde que ça soit possible :D ).

Emacs demande un effort, mais il ne m'a jamais laissé sans solution. Comme il est programmé en lisp, on peut toujours prendre son courage à deux mains et la doc de l'autre pour écrire l'extension qui nous convient.

Il y a plusieurs systèmes, personnellement j'utilise template qui me satisfait totalement. Il suffit de charger un nouveau fichier dont l'extension est reconnue parmi les modèles (.tex par exemple) pour qu'Emacs propose d'utiliser un fichier modèle. On peut laisser des champs à définir dynamiquement à la création du document. Il y a des modèles pour tous les types de fichiers courants, on peut les personnaliser ou en créer de nouveaux.
http://emacs-template.sourceforge.net/
L'installation est raisonnablement simple, il suffit de recopier le fichier template.el au bon endroit, d'ajouter deux commandes dans le .emacs, et de copier les modèles dans le répertoire ~/.templates
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2293
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Lundi 31 Mars 2008, 17:30

Tryphon a écrit:Par contre, j'ai toujours ce problème louche d'encodage ...
Vu que je n'utilise que l'encodage iso-bidule-latin de windows, puis-je le préciser quelque part de façon à ce qu'il ne m'embête pas avec ça ?


Essaye ça:

Code: Tout sélectionner
;; ---------------
;; * Les accents *
(set-language-environment "French")    ;met à dispo latin-1 et latin-9
(prefer-coding-system 'latin-1)        ;mais on préfère latin-1
(set-terminal-coding-system 'latin-1)
(set-keyboard-coding-system 'latin-1)
;; When emacs is running in a text terminal...
(when (not window-system)
  (set-keyboard-coding-system locale-coding-system)
  (set-terminal-coding-system locale-coding-system))
;; Les caractères encodables en latin-9 le seront directement:
(require 'ucs-tables) ;;Inutile dans Emacs22
(when (< emacs-major-version 23)
  (unify-8859-on-encoding-mode 1)
  (unify-8859-on-decoding-mode 1))
;; Système de codage avec les autres client X (presse-papier).
;; Par defaut dans Emacs22: compound-text-with-extensions
(setq selection-coding-system 'compound-text-with-extensions)
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar Tryphon » Jeudi 03 Avril 2008, 08:11

Merci à vous deux, tout va bien côté codage et je commence à taper vraiment.

Je remarque que la complétion de commandes est parfois louche : elle insère des accolades après des commandes sans paramètres, par exemple, je tape \hli,je complète et j'obtiens \hline{} alors que \hline n'a pas de paramètres. Peut-on modifier les complétions d'Auctex ? Ca se passe dans quel fichier ? Une recherche sur le répertoire d'emacs (dans lequel j'ai copié les fichiers d'auctex) ne donne rien...
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar Tryphon » Jeudi 03 Avril 2008, 08:59

Ah tiens j'ai un problème louche : la correction que je tape ne passe pas la compilation, j'ai un "missing \begin{document}" (alors qu'il y est , pas de problèmes). Néanmoins un dvi sort, quasi-correct si ce n'est qu'avant le début de mon texte j'ai un "DM6.aux DM6.aux DM6.aux" qui apparaît en première ligne.

Le nom du fichier est "Correction DM6.tex", donc je me pose la question de savoir si l'espace dans le nom ne poserait pas problème. Si c'est le cas, ça se corrige comment ?

A signaler que le même fichier compilé avec LEd passe sans problème.
Pas de questions en MP
La calculatrice, c'est comme Linux, c'est de la merde !
Tryphon
Péta-utilisateur
 
Messages: 1840
Inscription: Mercredi 01 Juin 2005, 17:39
Localisation: Un peu plus à l'Ouest
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar Ph. Ivaldi » Jeudi 03 Avril 2008, 09:05

Tryphon a écrit:Peut-on modifier les complétions d'Auctex ?


Oui certainement.

Tryphon a écrit:Ça se passe dans quel fichier ?


Je n'en ai aucune idée et je ne te conseille pas de modifier ce comportement par défaut. Je penses que les développeurs de AucTeX savent ce qu'ils ont fait...
En revanche j'utilise beaucoup le raccourci M-/ qui est la complétion à tout faire, quelque soit le mode d'édition.

Pour terminer je ne peux que te conseiller d'essayer une petite extension que j'ai développée à ce propos:
* copie ce fichier et ce fichier dans ton load-path (C-h v load-path <ret> pour connaître les valeurs possibles)
* Mettre dans ton .emacs:

Code: Tout sélectionner
;; ---------------
;; * Abréviation *
;; ;; utilisation :
;; ;; taper l'abbrev
;; ;; taper C-x ail pour abbrev local et C-x aig pour abrev global
;; ;; taper la definition
;; ;; M-x edit-abbrevs pour modifier les abbrevs M-x write-abbrev-file pour sauver
;; ;; M-x list-abbrevs pour lister
;; (setq-default abbrev-mode t) ;; enable abbreviations
;; Bascule du mode abbrev-mode
(global-set-key (kbd "<f7>") 'abbrev-mode)
(global-set-key (kbd "<f3>") 'tempo-complete-tag)
;; (if (file-readable-p abbrev-file-name)   ;; read the abbreviations every
;;     (read-abbrev-file abbrev-file-name)) ;; time emacs is started
;; Combine tempo et abbrev
(require 'pi-tempo-abbrev)
;; Essayer dans un fichier LaTeX enu<SPACE> ou enu<F3>.
;; Ajouter/modifier des tag directement dans pi-tempo-abbrev-latex.el
;; Voir le manuel de tempo: http://www.lysator.liu.se/~davidk/elisp/tempo.texi
(setq tempo-interactive t) ;; autorise tempo en interactif.
;; La valeur par défaut de `tempo-insert-region' pose des pb chez moi
(setq-default tempo-insert-region nil)
(load "pi-tempo-abbrev-latex")


Je ne me vois plus taper du code LaTeX (ou autre) sans cette extension.
Tu peux aussi essayer toute ma configuration de Emacs pour Windows disponible ICI (lire le _emacs pour voir tous les raccourcis).

Pour Linux ça se passe par ICI.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: Auctex et Windows

Messagepar kojak » Jeudi 03 Avril 2008, 09:07

Salut Tryphon,

Tryphon a écrit:Le nom du fichier est "Correction DM6.tex", donc je me pose la question de savoir si l'espace dans le nom ne poserait pas problème.


Je ne réponds pas réellement à ta question mais les noms de fichiers avec des espaces ou des caractères spéciaux sont à proscrire, même si dans certains cas, cela ne pose pas de problème particuliers. Alors, soit il vaut mieux tout attacher, ou mettre des _ et - : correction_dm06.tex ou correction-dm06.tex :wink:
pas d'aide par MP
kojak
Modérateur
 
Messages: 10336
Inscription: Samedi 18 Novembre 2006, 19:50
Statut actuel: Actif et salarié | Enseignant

Re: Auctex et Windows

Messagepar gigiair » Jeudi 03 Avril 2008, 09:12

Tryphon a écrit:Je remarque que la complétion de commandes est parfois louche : elle insère des accolades après des commandes sans paramètres, par exemple, je tape \hli,je complète et j'obtiens \hline{} alors que \hline n'a pas de paramètres.

C'est tout à fait normal d'insérer {} après une commande sans paramètres. Pour \hline, ça ne gène en rien et pour des commandes comme \latex ou les raccourcis personnels, ça évite de voir le logo $\LaTeX$ collé au mot qui suit. Autrement, je ne me suis jamais posé le problème de modifier ce comportement, une chose est certaine : c'est possible.
Une autre possibilité pour avoir l'auto-complétion dans Emacs est d'utiliser le mode abbrev.
Il y a un tutoriel sur le site http://www.tuteurs.ens.fr/unix/editeurs/super_emacs.html
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2293
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Suivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], DotBot [Crawler], Proximic [Spider], Yahoo [Bot] et 17 invités