OVH Cloud OVH Cloud

auto big left

1 réponse
Avatar
Olivier
Bonjour,

C'est vendredi, alors je travaille doucement :-)
Resultat des courses : de quoi eviter de taper
bigl( bigr) soit meme. Du code pas trop intrusif
comme je les aime :-)
---------------------------------------------------
(defun if-big-is-before ()
(save-excursion
(if (bobp) nil
(backward-char 1)
(if (not (eq (char-after) ?g)) nil
(if (bobp) nil
(backward-char 1)
(cond
((eq (char-after) ?g)
(if (bobp) nil
(backward-char 1)
(if (not (eq (char-after) ?i)) nil
(if (not (memq (char-after) (list ?b ?B))) nil
(if (bobp) nil
(backward-char 1)
(if (eq (char-after) ?\\) t nil))))))
((eq (char-after) ?i)
(if (bobp) nil
(backward-char 1)
(if (not (memq (char-after) (list ?b ?B))) nil
(if (bobp) nil
(backward-char 1)
(if (eq (char-after) ?\\) t nil)))))
(t nil)))))))

(defun if-big-and-more-is-before ()
(save-excursion
(if (bobp) nil
(backward-char 1)
(if (eq (char-after) ?\\) (if-big-is-before) nil))))

(defun if-big-is-before-insert-r nil
(if (if-big-is-before) (insert "r")))
(defun if-big-is-before-insert-l nil
(if (if-big-is-before) (insert "l")))
(defun if-big-and-more-is-before-insert-r nil
(if (if-big-and-more-is-before)
(progn (backward-char 1) (insert "r") (forward-char 1))))
(defun if-big-and-more-is-before-insert-l nil
(if (if-big-and-more-is-before)
(progn (backward-char 1) (insert "l") (forward-char 1))))

(setq plain-TeX-mode-hook
'(lambda ()(message"\n \n --------------------\n\n")
(defun TeX-insert-left-paren () (interactive)
(if-big-is-before-insert-l) (insert "("))
(defun TeX-insert-right-paren () (interactive)
(if-big-is-before-insert-r) (insert ")"))
(defun TeX-insert-left-brace () (interactive)
(if-big-is-before-insert-l) (insert "["))
(defun TeX-insert-right-brace () (interactive)
(if-big-is-before-insert-r) (insert "]"))
(defun TeX-insert-left-acc () (interactive)
(if-big-and-more-is-before-insert-l) (insert "{"))
(defun TeX-insert-right-acc () (interactive)
(if-big-and-more-is-before-insert-r) (insert "}"))
(define-key LaTeX-mode-map (kbd "(") 'TeX-insert-left-paren)
(define-key LaTeX-mode-map (kbd ")") 'TeX-insert-right-paren)
(define-key LaTeX-mode-map (kbd "[") 'TeX-insert-left-brace)
(define-key LaTeX-mode-map (kbd "]") 'TeX-insert-right-brace)
(define-key LaTeX-mode-map (kbd "{") 'TeX-insert-left-acc)
(define-key LaTeX-mode-map (kbd "}") 'TeX-insert-right-acc))
------------------------------------------------------------------

Vola, j'm'suis pas trop fatigue, voyez :-p
Si ca vous plait, je le proposerais a auctex.
Amities,
Olivier

1 réponse

Avatar
Olivier
J'ai oublie la description :-(
"Transforme automatiquement big( en bigl(
au moment ou le caractere ( est entre. Idem
pour Big, bigg, Bigg, et [, ], { et }."