Accueil > Informatique > Emacs > Outils linguistiques et Emacs
Outils linguistiques et Emacs
samedi 21 novembre 2020, par
Introduction
Grammalecte est un bon correcteur grammatical et typographique open source dédié à la langue française. Il peut être utilisé sous forme de plugin dans libreoffice ou Mozilla firefox par exemple. Il existe également une interface en ligne de commande et un serveur en python.
Ce correcteur peut être utilisé dans emacs grâce au paquetage flycheck-grammalecte
Pour compléter cet outil, il est possible d’utiliser n’importe quel dictionnaire au format stardict depuis emacs grâce à sdcv
Pré-requis et contexte
-* Debian buster sid
-* emacs 26+ (testé avec emacs 27)
-* straight pour la gestion de paquets d’emacs
-* pyenv installé et fonctionnel voir ce billet avec un environnement appelé default
- wget, unzip installés
flychek-grammalecte
L’installation se fait en deux temps :
- l’installation de l’interface en ligne de commande de grammalecte
- quelques paquetages elisp à charger au démarrage d’emacs
Grammalecte CLI
On commence par récupérer l’archive sur le site de grammalecte puis on installe le programme python dans l’environnement default.
wget https://grammalecte.net/grammalecte/zip/Grammalecte-fr-v1.12.2.zip
unzip Grammalecte-fr-v1.12.2.zip -d grammalecte
cd grammalecte
pyenv activate default
python setup.py installemacs
En utilisant straight, il suffit de ces quelques lignes pour installer pyenv-mode et flycheck-grammalecte. Les options de flycheck-grammalecte sont décrites ici
(use-package pyenv-mode
:straight t
:config
:init
(add-to-list 'exec-path "~/.pyenv/bin")
(add-to-list 'exec-path "~/.pyenv/shims")
(pyenv-mode t)
(pyenv-mode-set "default")
)
(use-package flycheck
:straight t
:init
(global-flycheck-mode))
(use-package flycheck-tip
:straight t
)
(use-package flycheck-grammalecte
:straight t
:bind
(("C-c D" . flycheck-grammalecte-find-synonyms-at-point))
:after flycheck
:config
(setq flycheck-grammalecte-report-spellcheck nil)
(setq flycheck-grammalecte-report-grammar t)
(setq flycheck-grammalecte-report-apos nil)
(setq flycheck-grammalecte-report-nbsp nil)
(setq flycheck-grammalecte-report-esp nil)
(setq flycheck-grammalecte-filters-by-mode
'((latex-mode
"(?s)\\\\\\[.*?\\\\\\]"
"\\\\label{.*?}"
"\\\\href{.*?}"
"(?s)\\\\begin{tikzpicture}.*?\\\\end{tikzpicture}"
"(?s)\\\\begin{align}.*?\\\\end{align}"
"(?s)\\\\begin{align\\*}.*?\\\\end{align\\*}"
"(?s)\\\\begin{equation\\*}.*?\\\\end{equation\\*}"
"(?s)\\\\begin{equation}.*?\\\\end{equation}"
"(?s)\\\\begin{eqnarray\\*}.*?\\\\end{eqnarray\\*}"
"(?s)\\\\begin{eqnarray}.*?\\\\end{eqnarray}"
"(?s)\\$.*?\\$"
"(?s)\\\\\\(.*?\\\\\\)"
"\\\\(?:title|(?:sub)*section){([^}]+)}"
"\\\\\\w+(?:\\[[^]]+\\])?(?:{[^}]*})?"
)
(org-mode "(?ims)^[ \t]*#\\+begin_src.+#\\+end_src"
"(?im)^[ \t]*#\\+begin[_:].+$"
"(?im)^[ \t]*#\\+end[_:].+$"
"(?m)^[ \t]*(?:DEADLINE|SCHEDULED):.+$"
"(?m)^\\*+ .*[ \t]*(:[\\w:@]+:)[ \t]*$"
"(?im)^[ \t]*#\\+(?:caption|description|keywords|(?:sub)?title):"
"(?im)^[ \t]*#\\+(?!caption|description|keywords|(?:sub)?title)\\w+:.*$")))
(flycheck-grammalecte-setup)
)Lors de la compilation de init.el (Byte-compile and load), emacs demande s’il faut télécharger les données de grammalecte :
bien sûr il faut répondre oui !
La partie concernant flycheck-grammalecte-filters-by-mode, permet de filtrer les parties du texte qui n’ont pas à être vérifiée.
Le paquet définit plusieurs commandes dont :
- flycheck-grammalecte-find-synonyms-at-point
- flycheck-grammalecte-correct-define-at-point
La première (mappée sur C-c D) cherche un synonyme dans le dictionnaire électronique des synonymes et la seconde la définition dans le « Trésor de la Langue Française informatisé » disponible sur le site web du « Centre National de Ressources Textuelles et Lexicales »
La partie qui suit explique comment installer et utiliser dans emacs des dictionnaires lorsque l’on travaille hors ligne.
sdcv
Nous allons installer deux dictionnaires le Littré et la 8ème édition du dictionnaire de l’Académie Française.
Le dictionnaire Littré est empaqueté dans Debian :
apt-get install stardict sdcv stardict-xmlittre -yNous récupérons l’archive du dictionnaire de l’Académie Française sur le site polyglotte
wget http://download.tuxfamily.org/polyglotte/dicos/dict/francais%2Fstardict-academie-francaise-1935_38.xdxf-2.4.2.zip
mkdir -p ~/.stardict/dic
unzip francais\%2Fstardict-academie-francaise-1935_38.xdxf-2.4.2.zip -d ~/.stardict/dicNormalement, si tout c’est bien déroulé la commande
sdcv -lRenvoie la liste des dictionnaires installés.
Enfin, configurons emacs grâce à ce paquet elisp.
;; dictionnaire
(use-package sdcv
:straight t
:bind
(("C-c d" . sdcv-search-pointer))
:config
(setq sdcv-dictionary-data-dir "~/.stardic/dic")
(setq sdcv-dictionary-simple-list ;setup dictionary list for simple search
'("XMLittre"
))
(setq sdcv-dictionary-complete-list ;setup dictionary list for complete search
'(
"XMLittre"
"Dictionnaire de l’Académie Française, 8ème édition (1935)."
))
)La commande sdcv-search-pointer est mappée sur C-c d, ainsi à chaque activation de ce raccourci clavier les définitions du mot le plus près du pointeur sont cherchées et le cas échéant affichées dans un tampon nommé *SDCV*.
Conclusion
Ci-joint un fichier init.el qui reprend les différents éléments de configuration développés ici.
sdcv et flycheck-grammalecte définissent d’autres commandes pour par exemple conjuger un verbe, afficher la définition dans une fenêtre pop-up ,etc. (cf. la documentation de chacun de ces paquets).
Par exemple
M-x flycheck-grammalecte-conjugate-verb
Enfin, un correcteur d’orthographe n’est pas infaillible (il y a beaucoup de faux positifs) rien ne remplace une relecture attentive !!
Heptagone