changer le rôle du soulignement et du signe moins uniquement en mode LateX


12

Lors du travail avec des fichiers tex avec auctex + emacs (mode LateX), j'utilise plus fréquemment _ (souligné) au lieu de - (signe moins). Identique à ^ au lieu de 6. L'inconvénient est que je dois appuyer plus fréquemment sur la touche Maj.

Il serait souhaitable de personnaliser emacs de telle manière que lorsque emacs est en mode LateX ( et juste dans ce mode ), lorsque je tape - les types emacs _ et quand je tape _ les types emacs -. c'est-à-dire les raccourcis clavier suivants:

- donne _

_ donne -

6 donne ^

^ donne 6

C'est possible?

Réponses:


16

Quelque chose comme ça:

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

(defun my-latex-hook ()
  (require 'tex-site)
  (define-key LaTeX-mode-map "-" (lambda () (interactive) (insert "_")))
  (define-key LaTeX-mode-map "_" (lambda () (interactive) (insert "-")))
  (define-key LaTeX-mode-map "6" (lambda () (interactive) (insert "^")))
  (define-key LaTeX-mode-map "^" (lambda () (interactive) (insert "6"))))

merveilleux, votre code fonctionne parfaitement.
Nom du

1
(define-key LaTeX-mode-map "-" "_")et ainsi de suite devrait être suffisant ( "_"est interprété comme une macro de clavier), en plus cela fonctionne avec TeX-electric-sub-and-superscript.
Constantine

1
Non, @Constantine. Ce que vous proposez provoquera une récursivité.
abo-abo

Oh, c'est vrai. Il le fait si _et -sont mappés les uns aux autres.
Constantine
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.