Profitez des offres Memoirevive.ch!
Excalibur, un correcteur orthographique pour LaTeX

Aujourd'hui, après quelque temps, je reviens à un test concernant LaTeX. Une des questions qui reviennent souvent au sujet de ce formidable « formateur de texte » est de savoir s'il existe des correcteurs orthographiques ou grammaticaux compatibles avec lui. C'est-à-dire des correcteurs capables de distinguer, dans le flot du texte, les commandes LaTeX du texte proprement dit. Voire de rectifier éventuellement les commandes elles-mêmes.

À ma connaissance, de correcteurs grammaticaux, il n'y en a pas jusqu'à présent qui gèrent le langage LaTeX (si je me trompe, qu'on n'hésite pas à le mentionner ici). La seule façon de bénéficier d'une correction grammaticale avec LaTeX, c'est le « copier-coller » direct du PDF obtenu vers un des correcteurs existants, comme Antidote ou ProLexis.

Cette tactique peut également être employée pour la correction orthographique, bien sûr. Mais là nous disposons sur Mac OS X d'au moins deux solutions directement prévues pour LaTeX : cocoAspell, testé par Fabien sur ce site il y a quelques années, et Excalibur, que je vais brièvement présenter ici.

Présentation

Excalibur est un logiciel gratuit et libre, créé par Robb Gottshall et Rick Zaccone, qui permet donc la correction orthographique dans le code source LaTeX même, et ce dans pas mal de langages (dont le nôtre bien sûr), dont vous pouvez voir la liste précise ici. Mais il peut également être utilisé par la grande majorité des traitements de texte existants, bien que les correcteurs de référence que j'ai cités plus haut soient certainement plus puissants. Excalibur, lui, est particulièrement simple et dépouillé, un bon compagnon potentiel pour TextEdit, par exemple. Voici son logo :

image

Il est à télécharger ici dans sa dernière version, la 4.0.7, datant de février 2009, mais il fait également partie de la distribution MacTeX, peut-être dans une version antérieure si l'installation de cette dernière n'est pas toute récente.

Installation

Une fois l'image disque d'Excalibur atterrie sur notre ordinateur, on constate qu'elle contient cinq fichiers : l'application elle-même, la licence (GNU GPL-2.0), le manuel (très clair, mais uniquement en anglais), un fichier « Readme » très succinct, et un dernier fichier, « Standard dictionary », qui est en fait un dictionnaire de la langue anglaise pour Excalibur.

L'installation d'Excalibur lui-même est ultra-classique (s'il n'a pas déjà été installé directement par MacTeX) : par glisser-déposer de son icône dans le dossier « Applications » ou un sous-dossier de celui-ci. Il faut alors placer le fichier « Standard dictionary » dans le même répertoire qu'Excalibur.

Ceci rend déjà Excalibur complètement fonctionnel si on se contente d'écrire en anglais. Si on écrit dans une autre langue, ce qui est fort probable dans notre cas :-), il faut télécharger le dictionnaire correspondant dans la page du site dédiée, déjà mentionnée plus haut, « dézipper » ce dictionnaire et l'installer également dans le répertoire contenant Excalibur. Pour le dictionnaire français, le lien direct est celui-ci.

Ça y est, Excalibur est prêt à contrôler vos textes !

Comment ça marche ?

Le fonctionnement d'Excalibur est très simple : on commence par ouvrir Excalibur et on choisit son ou ses dictionnaires de travail, en sélectionnant la ou les options appropriées dans le menu « Dictionary » (ici, cochez « Dico français » si vous souhaitez écrire en français) :

image

Puis on ouvre son menu « File ». Là, on a le choix entre deux options : « Open … » et « Open Clipboard ».

image

Pour les LaTeXiens qui écrivent en utilisant un encodage autre qu'ASCII (le vieux standard américain bien connu) ou Mac OS Roman (l'ancien standard Apple d'encodage sur un octet), il vaut mieux utiliser l'option « Open Clipboard », et donc avoir préalablement mis le texte à corriger dans le presse-papier (c'est-à-dire en le « copiant »). Sinon, on risque d'avoir des surprises pour les caractères accentués… C'est d'ailleurs le principal défaut d'Excalibur : il ne reconnaît pas l'encodage du texte qu'il ouvre par l'option « Open … », et ne fournit pas d'option dans ses Préférences pour régler cela. Problème qui heureusement disparaît si on choisit l'option « Open Clipboard ».

Supposons que vous avez quand même choisi l'option « Open … ». Alors, indiquez à Excalibur le chemin où se trouve le fichier que vous contrôlez, et hop, ce dernier ouvrira sa fenêtre de travail :

image
Début du fichier LaTeX de ma thèse…

Vous obtenez bien sûr la même fenêtre de travail si vous êtes passé par le presse-papiers.

Cliquez sur le bouton « Start » pour lancer la vérification. Si Excalibur a repéré beaucoup d'erreurs, plus de 500, il vous en avertit par ce message :

image

Vous pouvez passer outre à ce message, et commencer à lister les erreurs (ou supposées erreurs) repérées par Excalibur.

Il peut s'agir par exemple de noms propres ou de mots étrangers à la langue choisie, auquel cas on clique sur « Ignore » et on passe au mot suivant.

S'il s'agit effectivement d'une erreur, on tape alors le bon mot dans le champ « Change to », ou on peut selon le cas choisir une des « suggestions » d'Excalibur, figurant dans la colonne en bas à droite, puis on clique sur « Change ».

image

Attention, autre défaut important d'Excalibur, la correction faite n'est pas immédiatement visible dans la fenêtre de travail. Cependant, elle a bien été effectuée dans le fichier.

Notez qu'on peut créer son propre dictionnaire pour Excalibur, et que si on utilise un de ces dictionnaires, on peut élargir le choix des suggestions associées à un mot donné, en cliquant sur « Suggest », ou ajouter soi-même un mot au dictionnaire avec le bouton « Add … ». Je n'ai moi-même jamais effectué ces deux manœuvres, n'ayant jamais créé de dictionnaire. Peut-être parce qu'en fait je ne suis pas un grand utilisateur des correcteurs informatiques en général ;-)

D'expérience, une fois passées les inévitables « fausses erreurs » du type de celles citées plus haut, les dictionnaires anglais et français d'Excalibur sont étonnamment fiables et riches. De plus, la reconnaissance des commandes LaTeX m'a paru beaucoup plus performante qu'avec cocoAspell, que j'ai utilisé également pendant un temps.

Préférences

Rien ne vaut un petit tour dans les Préférences d'une application pour voir ce qu'elles ont dans le ventre. Celles d'Excalibur fournissent pas mal d'options pour ceux qui veulent personnaliser leurs corrections.

image

La section « Spelling » fournit quelques paramétrages de la correction. Par défaut, toutes les options sont cochées, sauf la dernière. Je conseille de laisser les choses en l'état.

L'option « Ignore all CAPS » permet d'ignorer les mots entièrement en majuscules, cocher « Ignore Throughout » permet d'ignorer la même occurence sur tout le document, « Replace throughout » permet de remplacer chaque occurrence d'un mot par le même mot que vous avez choisi dès la première correction de ce mot, et « Auto suggest » active la suggestion des corrections. En bonus, vous pouvez même vérifier si les URLs contenus dans vos documents sont valides, avec l'option « Spell check URLs »

Je ne m'étend pas sur la fenêtre « Dialogs », suffisamment claire :

image

Mais la fenêtre « Word Boundaries » vaut la peine qu'on s'y attarde :

image

Je passe sur l'option « Use German babel conventions », ne connaissant pas l'allemand, et vous renvoie donc au manuel pour les détails, mais je suppose qu'elle doit être cochée si vous écrivez dans la langue de Goethe !

Pour le francophone, en tout cas, il faut que l'option suivante, « Treat single quotation mark as end of word », soit cochée. Elle fait en sorte que l'apostrophe ne soit jamais considérée comme faisant partie d'un mot, et donc que des expressions du genre « l'accord » ne soit pas traitée comme un seul mot et donc ne renvoie pas d'erreur.

L'anglophone peut désactiver cette option, mais alors il aura intérêt à cocher « Regard 's as end of word » (grisée si l'option précédente, plus stricte, a été cochée), ce qui permettra quand même à Excalibur de bien reconnaître les contractions du genre « Obama's ».

La section « Startup », suffisamment claire elle aussi, permet de définir le comportement d'Excalibur à l'ouverture.

image

Attardons-nous enfin sur la section « LaTeX » :

image

L'option « Do LaTeX command parsing » indique à Excalibur que le document à corriger contient du code LaTeX. Une fois cette option cochée, les autres deviennent accessibles. Ainsi, cocher « Ignore \tt text » permet d'ignorer tout ce qui sera en police à chasse fixe (les codes de programme informatique en particulier). « Warn on parsing errors » permet de vérifier la syntaxe des commandes LaTeX elles-mêmes, du moins les commandes les plus usuelles. Bien pratique !

Enfin, l'option « Use TeX style accents » permet de remplacer lors de la correction chaque occurrence d'une lettre accentuée par son code old style en LaTeX. Par exemple, « é » deviendra \'{e}. Pour des non-anglophones, cette option est à négliger. Il vaut mieux cocher l'option suivante « Use extended character set », qui permet d'utiliser les lettres accentuées directement… mais seulement au codage Mac OS Roman, comme je l'ai dit plus haut, ce qui est assez limitatif à l'ère d'Unicode !

Pour conclure

Voilà pour ce petit tour d'horizon des possibilités d'Excalibur. Je suis loin d'avoir tout dit sur lui, notamment sur la possibilité d'élaborer et de personnaliser ses propres dictionnaires (via le menu « Dictionary » en particulier), ce que je n'ai jamais fait personnellement. Je vous renvoie à la documentation pour les détails.

Tel qu'il est, Excalibur, malgré son côté dépouillé par rapport aux poids lourds genre Antidote ou ProLexis, m'a convaincu par la qualité de ses dictionnaires et par son excellente prise en compte des commandes LaTeX. Ce serait bien en revanche qu'il évolue vers plus de reconnaissance des différents encodages de texte, notamment Unicode. Peut-être l'avenir nous réservera-t-il de bonnes surprises là-dessus !

8 commentaires
1)
felix-fi
, le 20.10.2009 à 10:21

Dans le style commentaire “oldies but goldies”…

Pour ceux qui n’ont pas peur d’emacs (ou xemacs), j’utilise pour ma part ispell et le mode flyspell-mode (qui comme son nom l’indique fait de la verification a la volee)… tout ca en mode latex sous x?emacs.

2)
Leo_11
, le 20.10.2009 à 11:51

Merci Franck…

J’ai essayé avec une lettre que j’ai faite selon « KOMA letter »… ben j’ai été obligé de me créer un dico spécial « KOMA letter » car Excalibur s’arrêtait sur toutes descriptions d’options de la lettre…

En plus… il s’arrête avant la fin du document et me donne une erreur de code LaTeX comme quoi il manque ou un < } > ou un < \end > à quelque part… chose qui n’arrive pas en compilant la dite lettre…

3)
Chichille
, le 20.10.2009 à 13:27

ou supposée erreurs

Ben, en voilà une qu’Excalibur n’a pas vue…

4)
Guillôme
, le 20.10.2009 à 15:21

J’utilise cocoAspell qui me convient parfaitement pour son intégration au correcteur natif OsX.

Dois-je comprendre qu’Excalibur ne gère pas la correction à la volée comme cocoAspell? Ce serait assez rédibitoire pour moi.

Par contre, le côté positif c’est qu’il est en développement actif. Merci pour cette découverte.

5)
Franck Pastor
, le 20.10.2009 à 16:18

Leo : quelle version d’Excalibur as-tu ? La dernière (4.0.7) est censée corriger le bug que tu signales. J’avais eu aussi ce type de problème avec la version précédente. En fait dans mon cas il signalait cette pseudo-erreur à la toute fin du document, après avoir signalé toutes les autres erreurs, donc je ne m’en souciais pas trop.

Chichille : c’est rectifié, mais comme c’était une faute grammaticale et pas orthographique, Excalibur ne pouvait pas la voir ;-)

Guillôme : non, Excalibur ne fait pas de corrections à la volée, c’est vrai. Il s’agit bien d’une application entièrement indépendante du correcteur natif OS X. Mais elle m’a paru néanmoins plus performante que cocoAspell sur les quelques essais comparatifs que j’ai effectués.

6)
Leo_11
, le 21.10.2009 à 10:29

@ Franck… ben j’avais la 4.0.6 que j’ai remplacé suite la lecture de ton billet pour la 4.0.7 et c’est avec cette dernière que cette erreur est apparue… le document incriminé est passé que par cette version à aucun moment par la mouture précédente…

7)
jdmuys
, le 21.10.2009 à 10:36

Mac OS Roman (le standard Apple)

Le standard Apple est UTF-8 depuis bien des années…

8)
Franck Pastor
, le 21.10.2009 à 12:24

Leo_11 : alors je ne sais pas quoi dire, sinon qu’il est probable qu’Excalibur a quand même fait son travail dans ton texte avant d’envoyer ce message bizarre, et donc que ça ne devrait pas prêter à conséquence.

Jdmuys : depuis quand exactement ? Tant mieux de toutes façons. Excalibur a donc « bien des années » de retard dans sa conception du standard Apple :-) Pour mettre tout le monde d’accord, on va dire que le standard Apple 8 bits est Mac OS Roman. Il faut rappeler que malheureusement le TeX standard (pdfTeX) en est encore à l’ère des encodage de caractères sur un octet (8 bits). Mais XeTeX et LuaTeX sont deux nouveaux standards Unicode-compliant, heureusement :). Il leur reste encore à s’imposer.