OVH Cloud OVH Cloud

La fct tex-insert-quote

16 réponses
Avatar
Benoît Barbier
Bonjour à tous,

je n'arrive pas à imiter la fct tex-insert-quote avec un truc du genre
Ctrl-" (dans le mode LaTeX) .

;;Ctrl-"
(defun INSERT-fr-gui()
"Insère des guillemets français"
(interactive)
(insert "\\og \\fg")
(backward-char 4))
;(define-key global-map(read-kbd-macro "\C-\"") 'INSERT-fr-gui)

C'est sûrement "\C-\"" qui ne fonctionne pas.
Si j'enlève le commentaire j'ai un message d'erreur

Si il y a une meilleur méthode pour faire la macro dites le moi svp.
Je ne suis pas calé en lisp et encore moins dans le dialecte d'emacs.

Merci d'avance,

Benoît

6 réponses

1 2
Avatar
drkm
Benoît Barbier writes:

Je supposes que global-set-key est local à un buffer ?



Ben non. Elle est globale. Et 'local-set-key' est locale ;-).

L'idéal est de mapper des macros différentes entre un buffer java et un
buffer LaTeX sur de mêmes raccourcis clavier.

Pour l'instant je n'y arrive pas.
Si j'ouvre les deux buffers dans emacs en même temps c'est le bord..
(enfin je voulais dire effet de bord;)).



Ah ben vi, évidemment. Tu fixes le binding au niveau global
dans le premier mode, puis tu donnes une autre valeur, toujours
au niveau global, dans le second mode. Alors évidemment, le
premier mode, il utilise le nouveau binding, prévu pour le second
mode. Je ne sais pas si je suis très clair, mais l'idée est
là :-).

Tu peux utiliser deux solutions différentes. Soit tu ajoutes
une fonction dans le hook des modes qui vont bien, fonction qui
utilisera 'local-set-key', soit tu modifies directement la map
des mêmes modes qui vont bien :

(add-hook 'the-mode (lambda ()
(local-set-key (kbd "...") 'the-command)))

v/s :

(eval-after-load "the-mode"
'(define-key the-mode-map (kbd "...") 'the-command))

Intuitivement, j'utiliserais le premier dans mon ~/.emacs.el,
et le second dans un mode ou une bibliothèque. Sans doute parce
que le premier aura finalement le dernier mot, et que cela est
bon.

--drkm
Avatar
drkm
drkm writes:

(add-hook 'the-mode (lambda ()



Oops.

(add-hook 'the-mode-hook (lambda ()

Évidemment. Bien que l'on peut l'appeler comme l'on veut.
Mais cela serait mal©®.

--drkm
Avatar
Matthieu Moy
Benoît Barbier writes:

(insert "og fg")



C'est que tu aimes vraiment lire og et fg ?

Parce que sinon, «  », c'est du latin-1 au même titre que les lettres
accentuées. Accessibles via Alt-Gr-quelque-chose sur un clavier
AZERTY.

Tu as aussi, tout simplement << >> si tu as un
usepackage[french]{babel} .

Moi, mes docs LaTeX en francais se terminent en général par

%%% Local Variables:
%%% mode: latex
%%% TeX-open-quote: "« "
%%% TeX-close-quote: " »"
%%% ispell-local-dictionary: "francais"
%%% TeX-master: "main"
%%% End:

--
Matthieu
Avatar
Prakash Countcham
Salut !

Matthieu Moy writes:
Parce que sinon, «  », c'est du latin-1 au même titre que les l ettres
accentuées. Accessibles via Alt-Gr-quelque-chose sur un clavier
AZERTY.



C'était accessible via AltGr-z et AltGr-x sur mon clavier latin1, mais de puis
que j'ai coché la case latin9, j'utilise AltGr-w et AltGr-x.

Mais comme l'explique la doc de frenchb, il y a des problèmes d'espacement
qui font qu'il est souvent plus simple d'utiliser og et fg :

documentclass{article}
usepackage[T1]{fontenc}
usepackage[latin9]{inputenc}
usepackage[frenchb]{babel}
begin{document}
« a »

« a »

<<~a~>>

og a fg{}
end{document}

Moi, mes docs LaTeX en francais se terminent en général par

%%% Local Variables:
%%% mode: latex
%%% TeX-open-quote: "« "
%%% TeX-close-quote: " »"



C'est une bonne idée ! Cependant j'utiliserais "« " et " »" avec les
newcommand* qu'il faut (toujours à cause de ce problème d'espacement).

À plus,

--
Prakash
Avatar
Ralf Angeli
* Matthieu Moy (2005-11-01) writes:

Benoît Barbier writes:

(insert "og fg")



C'est que tu aimes vraiment lire og et fg ?

Parce que sinon, «  », c'est du latin-1 au même titre que les lettres
accentuées. Accessibles via Alt-Gr-quelque-chose sur un clavier
AZERTY.



Mais la documentation de frenchb décrit que ça produit du l'espacement
inférieur si on ne les allume pas comme alias pour `og...fg':

,----[ <URL:http://daniel.flipo.free.fr/frenchb/frenchb-doc.pdf> ]
| Lorsqu'on travaille en codage T1 avec frenchb, l'existence des
| ligatures << et >> permet de saisir <<~guillemets français~>>, mais
| les espaces insécables sont indispensables. Les commandes og et fg
| (ou leurs alias « et », à condition que ceux-ci aient été activés
| dans frenchb.cfg ou dans le préambule) sont préférables : elles
| introduisent automatiquement des espaces insécables et plus fines
| pour un meilleur rendu typographique.
`----

--
Ralf
Avatar
Ralf Angeli
* Matthieu Moy (2005-11-01) writes:

Benoît Barbier writes:

(insert "og fg")



C'est que tu aimes vraiment lire og et fg ?



Oh, j'ai oublié quelque chose. Si on veut écrire "og ...fg" mais
_voir_ "« ... »" dans Emacs, on peut obtenir ça avec le mode TeX Fold.
On doit seulement modifier `TeX-fold-macro-spec-list', activer le mode
et utiliser `C-c C-o C-b' pour plier les macros.

--
Ralf
1 2