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

Flyspell et les accents

57 réponses
Avatar
Ph. Idlavi
Bonsoir,

Cela fait plusieurs jours que je me bat avec flyspell et là je n'en peut
plus.
Voici mon problème :
Je crée un nouveau buffer en mode texte (flyspell n'est pas activé par
défaut).
Je l'active (M-x flyspell ,.emacs contient
(ispell-change-dictionary "francais" t))

Je tape gentillement les mots "aprés" et "après" est j'obtiens le groupe
"apr" en rouge souligné dans les deux mots.
Le fonctionnement deviens correct si je réactive flyspell (2 fois
M-x Flyspell)
OU si je "change" le dictionnaire en français.

Le comportement est le même en lançant Emacs avec
emacs ou avec emacs --no-site-file ou encore emacs -q --no-site-file

8<------8<------8<------8<------8<------8<------8<------8<------8<------
Dans mon .emacs j'ai (entre autre) :

;;flyspell
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
(autoload 'flyspell-delay-command "flyspell" "Delay on command." t)
(autoload 'tex-mode-flyspell-verify "flyspell" "" t)
(ispell-change-dictionary "francais" t) ; dictionnaire par défaut.
;;;;;;;;;

;;Les accents
(set-terminal-coding-system 'latin-1)
(set-keyboard-coding-system 'latin-1)
(set-language-environment 'latin-1)
(require 'ucs-tables)
(unify-8859-on-encoding-mode 1) ;les caractères encodables en latin-9
(unify-8859-on-decoding-mode 1) ;le seront directement
(setq selection-coding-system 'compound-text-with-extensions)
;;;;;;;;;;;;;
8<------8<------8<------8<------8<------8<------8<------8<------8<------


8<------8<------8<------8<------8<------8<------8<------8<------8<------
M-x emacs-version
GNU Emacs 21.4.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of
2005-03-17 on trouble, modified by Debian

M-x check-ispell-version
@(#) International Ispell Version 3.1.20 10/10/95, patch 1, ispell.el 3.6 - 01/07/2003 (+ Debian patch)

M-x locate-libr <RET> ispell.el
Library is file /usr/share/emacs/21.4/lisp/textmodes/ispell.el

M-: (ispell-get-word nil)
sur le mot aprés donne :
("Apr" 1 4) <- Lorsque flyspell déconne...
("aprés" 866 871) <- sinon

M-: (ispell-get-casechars)
donne :
Lorsque flyspell déconne :
"[A-Za-z]"
Sinon :
"[A-Za-zÀÀÀÀÀÂÂÂÂÂÂÂÆÆÆÆÆÇÇÇÇÇÇÈÈÈÈÈÉÉÉÉÉÉÉÊÊÊÊÊËËËËËËËÎÎÎÎÎÎÎÏÏÏÏÏÔÔÔÔÔÔÔÙÙÙÙÙÛÛÛÛÛÛÜÜÜÜÜÜÜàààààâââââââççççççèèèèèéééééééêêêêêëëëëëëëîîîîîîîïïïïïôôôôôôôùùùùùûûûûûûüüüüüüü]"
8<------8<------8<------8<------8<------8<------8<------8<------8<------


8<------8<------8<------8<------8<------8<------8<------8<------8<------
$ locale
LANG=fr_FR
LC_CTYPE="fr_FR"
LC_NUMERIC="fr_FR"
LC_TIME="fr_FR"
LC_COLLATE="fr_FR"
LC_MONETARY="fr_FR"
LC_MESSAGES="fr_FR"
LC_PAPER="fr_FR"
LC_NAME="fr_FR"
LC_ADDRESS="fr_FR"
LC_TELEPHONE="fr_FR"
LC_MEASUREMENT="fr_FR"
LC_IDENTIFICATION="fr_FR"
LC_ALL=
8<------8<------8<------8<------8<------8<------8<------8<------8<------


Merci de votre aide.

--
Philippe I.

10 réponses

1 2 3 4 5
Avatar
noone
Ph. Idlavi a écrit :
Bonsoir,

Cela fait plusieurs jours que je me bat avec flyspell et là je n'en peut
plus.
Voici mon problème :
Je crée un nouveau buffer en mode texte (flyspell n'est pas activé par
défaut).


j'ai également le même problème et c'est ch...
Avatar
drkm
Ph. Idlavi wrote:

Je l'active (M-x flyspell ,.emacs contient
(ispell-change-dictionary "francais" t))

Je tape gentillement les mots "aprés" et "après" est j'obtiens le gro upe
"apr" en rouge souligné dans les deux mots.



Je n'ai jamais ete tres fort avec les encodages, mais il me semble
que ces problemes d'encodages et de Ispell/Flyspell ont ete debatus a
maintes reprises recemment. Je pense me souvenir que Sebastien avait
amene quelques reponses. As-tu cherche dans les archives ?

--drkm
Avatar
Ph. Idlavi
"" écrivit le 10/20/05 à 09h23:33 :

Ph. Idlavi a écrit :
Bonsoir,
Cela fait plusieurs jours que je me bat avec flyspell et là je n'en
peut
plus.
Voici mon problème :
Je crée un nouveau buffer en mode texte (flyspell n'est pas activé par
défaut).


j'ai également le même problème et c'est ch...



Ça c'est facile à régler :

(add-hook 'text-mode-hook
'(lambda ()
(flyspell-mode)
(turn-on-auto-fill)
))

Ce sont les accents qui me posent vraiment des problèmes.

En bonus, comme je sais que tu utilise beaucoup LaTeX :
;;;; LaTeX add-hook ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-hook 'LaTeX-mode-hook
'(lambda ()
(load "mon-tex.el") ;def de mes fonctions.
(LaTeX-math-mode)
(flyspell-mode)
(setq ispell-parser 'tex)
(turn-on-reftex) ; reftex pour AUCTeX LaTeX mode
))
;;;;;;;;;;;;;;;;;;;;;;;;; Fin add-hook ;;;;;;;;;;;;;;;


--
Philippe I.
Avatar
Sébastien Kirche
Le 20 octobre 2005 à 11:10, drkm a formulé :

Je n'ai jamais ete tres fort avec les encodages, mais il me semble
que ces problemes d'encodages et de Ispell/Flyspell ont ete debatus a
maintes reprises recemment. Je pense me souvenir que Sebastien avait
amene quelques reponses. As-tu cherche dans les archives ?



Pas vraiment une solution mais plutôt un workaround (ou tourne-autour
comme j'ai pu lire, ça doit être du québécois): re-sélectionner le
dictionnaire manuellement avec un M-x ispell-change-dictionary peut
aider.

--
Sébastien Kirche
Avatar
Paul Gaborit
À (at) Thu, 20 Oct 2005 11:41:06 +0200,
Sébastien Kirche écrivait (wrote):
Pas vraiment une solution mais plutôt un workaround (ou tourne-autour
comme j'ai pu lire, ça doit être du québécois)


[...]

En français, on peut utiliser « contournement ». ;-)


--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Ph. Idlavi
"drkm" écrivit le 10/20/05 à 11h05:08 :

Je n'ai jamais ete tres fort avec les encodages, mais il me semble
que ces problemes d'encodages et de Ispell/Flyspell ont ete debatus a
maintes reprises recemment. Je pense me souvenir que Sebastien avait
amene quelques reponses. As-tu cherche dans les archives ?



J'ai cherché, trouvé des infos, testé plein de trucs, mais rien à faire...
D'ailleurs je continue à chercher, il n'est pas de question que ça ne
fonctionne pas!

J'ai remarqué, lors de l'envoie de mail, que le dico fonctionne bien un
mail sur deux exactement.
Si ça marche une fois sur deux, ça doit pouvoir fonctionner tout
le temps!

En plus, je n'ai fais que recopier la configuration d'emacs qui
fonctionne parfaitement sous Mandrake. Y-aurait-il un bug avec le
flyspell (ou ispell d'ailleurs) de debian?


--
Philippe I.
Avatar
Ph. Idlavi
En rajoutant systématiquement (ispell-change-dictionary "fancais")
dans les (add-hook '....) ça semble marcher (à voir à l'usage).
(un seul (ispell-change-dictionary "fancais" t) ne suffit pas!)

En revanche le .emacs contient :

(setq default-major-mode 'text-mode) ; Pour que les nouveaux buffers
; soient par défaut en mode majeur Text
(add-hook 'text-mode-hook
'(lambda ()
(flyspell-mode 1)
(ispell-change-dictionary "fancais")
(turn-on-auto-fill)
))

pourtant flyspell n'est pas lancé lors d'un C-x C-f essai.txt

Ce n'est pas très grave mais si vous avez une explication?..

--
Philippe I.
Avatar
Prakash Countcham
Bonjour,

Ph. Idlavi writes:

En rajoutant systématiquement (ispell-change-dictionary "fancais")



francais ?

dans les (add-hook '....) ça semble marcher (à voir à l'usage).
(un seul (ispell-change-dictionary "fancais" t) ne suffit pas!)



Je prends note car j'ai le même problème que toi (*). Mais ce n'est pas
systématique. Par ailleurs, Gnus ne semble pas utiliser les mêmes accen ts
pour le texte cité (le tien, Philippe) et celui que j'écris. Du coup j' ai
certains mots coupés aux accents et d'autres non.

C-x = me donne :

Char: é (04351, 2281, 0x8e9, file ...) # -> é cité
Char: é (07551, 3945, 0xf69, file ...) # -> é écrit

En revanche le .emacs contient :

(setq default-major-mode 'text-mode) ; Pour que les nouveaux buffers
; soient par défaut en mode majeur Text
(add-hook 'text-mode-hook
'(lambda ()
(flyspell-mode 1)
(ispell-change-dictionary "fancais")
(turn-on-auto-fill)
))

pourtant flyspell n'est pas lancé lors d'un C-x C-f essai.txt

Ce n'est pas très grave mais si vous avez une explication?..



Non, je n'ai pas ce problème et j'utilise la même version que toi.

Amicalement,

--
Prakash
(*) : Je viens tout juste d'essayer la version CVS (paquet debian
emacs-snapshot), et il n'y a plus ce problème d'accents.
Avatar
Ph. Idlavi
Prakash Countcham écrivit le 10/20/05 à 20h02:11 :

Bonjour,

Ph. Idlavi writes:

En rajoutant systématiquement (ispell-change-dictionary "fancais")



francais ?



Héhé! elle est là mon erreur!
C'est bizarre je n'avais aucun avertissement.



dans les (add-hook '....) ça semble marcher (à voir à l'usage).
(un seul (ispell-change-dictionary "fancais" t) ne suffit pas!)



Je prends note car j'ai le même problème que toi (*). Mais ce n'est pas
systématique. Par ailleurs, Gnus ne semble pas utiliser les mêmes accents
pour le texte cité (le tien, Philippe) et celui que j'écris. Du coup j'ai
certains mots coupés aux accents et d'autres non.

C-x = me donne :

Char: é (04351, 2281, 0x8e9, file ...) # -> é cité
Char: é (07551, 3945, 0xf69, file ...) # -> é écrit




Alors là, ça me dépasse.
J'ai beaucoup (trop) passé de temps sur la configuration d'emacs et
maintenant il faut que bosse.
Je regarderais ça plus tard...


En revanche le .emacs contient :

(setq default-major-mode 'text-mode) ; Pour que les nouveaux buffers
; soient par défaut en mode majeur Text
(add-hook 'text-mode-hook
'(lambda ()
(flyspell-mode 1)
(ispell-change-dictionary "fancais")
(turn-on-auto-fill)
))

pourtant flyspell n'est pas lancé lors d'un C-x C-f essai.txt

Ce n'est pas très grave mais si vous avez une explication?..



Non, je n'ai pas ce problème et j'utilise la même version que toi.



En fait tu as trouvé l'erreur, merci.

(*) : Je viens tout juste d'essayer la version CVS (paquet debian
emacs-snapshot), et il n'y a plus ce problème d'accents.



Où le trouves-tu ce paquet (je débute sous Debian)?


Amicalement,



merci,

--
Philippe I.
Avatar
Sébastien Kirche
Le 20 octobre 2005 à 20:10, Prakash Countcham vraute :

Par ailleurs, Gnus ne semble pas utiliser les mêmes accents pour le
texte cité (le tien, Philippe) et celui que j'écris. Du coup j'ai
certains mots coupés aux accents et d'autres non.

C-x = me donne :

Char: é (04351, 2281, 0x8e9, file ...) # -> é cité
Char: é (07551, 3945, 0xf69, file ...) # -> é écrit



Oui, c'est un problème lié à Emacs et qui n'a pas fini de nous
empoisonner l'existence :o/

En bref : le Français peut s'écrire grâce au latin-1 (iso-8859-1) qui
contient les caractères accentués nécessaires, mais *pas* l'euro, ni oe
qui sont respectivement le symbole monétaire (un rond entouré de 4
points) et 1/2 (plus quelques autres comme 1/4 et 3/4).

Ces caractères ont été introduits en latin-9 (également appelé latin-0
ou iso-8859-15) en remplaçant les caractères du jeu latin-1
correspondant. Les autres caractères sont identiques, avec les mêmes
codes.

Le problème c'est qu'Emacs en interne utilise des codes différents pour
représenter les caractères identiques du latin-1 et latin-9 en fonction
de l'encodage courant.

C'est ce qui m'a fait paramétrer la plaisanterie suivante dans .gnus :

;; afficher les noms des destinataires à la place du mien pour les messages que j'ai envoyés
(setq gnus-ignored-from-addresses "S(e|x8e9|xf69)bastien Kirche") ;; 8e9 = é latin-1 / f69 = é latin-9


D'où les différences que tu as constaté : tu dois être en latin-1 alors
que Ph. Idlavi doit être en latin-9.

Il existe une parade qui a pu me dépanner : depuis l'ajout du support
ucs dans emacs il existe unify-8859-on-encoding-mode et
unify-8859-on-decoding-mode qui permettent de considérer identique un é
latin-1 et un é latin-9

Voici comment je les utilise dans .emacs et les les commentaires que
j'en fait :
;;(require 'ucs-tables) - inutile dans la version cvs
(unify-8859-on-encoding-mode t) ; les caractères encodables en latin-9 le seront directement
(unify-8859-on-decoding-mode t) ; au décodage, les caractères latins représentables en latin-1
; sont remappés, les autres passent en mule-unicode-0100-24ff
; ça permet par exemple de comparer «é» latin-1 identique à «é» latin-9

Ça pourra peut-être t'aider?

PS: tu peux te demander pourquoi j'ai détaillé é 8e9 et é f69 plus
haut ? Ben simplement avec le unify-8859-on-xxx si j'en avais mis un de
chaque directement sans passer par le code, il me les aurait passés en
latin-1 à l'enregistrement du fichier :oP
--
Sébastien Kirche - Hope que ça explique et que ça Helpe
1 2 3 4 5