Correctif pour le paquet e-french (latex)

Contexte

Le paquet efrench avait été créé par Bernard Gaulle pour gérer les spécificités de la typographie française, une tâche dont il s’acquitte bien mieux que l’option french de babel. À la mort de son concepteur en 2006, la maintenance a été assurée par Raymond Juillerat, qui a également œuvré pour que le paquet soit inclus dans les distributions miktex et texlive.

Le paquet n’est manifestement plus mis à jour depuis 2019. Avec l’évolution de latex et d’autres paquets, des conflits peuvent apparaître et empêcher la compilation ou bien générer des erreurs. Parmi les conflits identifiés, il y a :

  • un message d’erreur indiquant que msg-msg.tex est manquant. Ce fichier semble en effet ne plus être fourni dans les distributions récentes. Il faut donc le télécharger indépendamment ;
  • les notes de bas de page provoquent des erreurs de compilation. Il faut appliquer un correctif pour que le paquet efrench soit compatible avec les nouveaux noyaux latex. Un expédient est de forcer la compilation avec l’ancien noyau.

Nature du problème

Le paquet efrench crée des notes de bas de page qui sont référencées par des chiffres. Le paquet utilise \verb+\fr@makefntext+ pour redéfinir localement \@thefnmark sous la forme d’une macro-commande qui commence par \egroup. Pour que cette commande fonctionne, le paquet suppose que :

  • la commande \@textsuperscript a un certain fonctionnement ;
  • la balise \@thefnmark n’est utilisée nulle part ailleurs qu’à cet endroit.

Le nouveau noyau de LaTeX viole au moins l’une de ces deux hypothèses, et les balises \egroup ferment alors un groupe du mauvais type. À la compilation, cela génère des erreurs telles que « Extra }, or forgotten \endgroup ».

Le correctif efrench-fix laisse les balises \@thefnmark intactes. Il redéfinit à la place, localement, \@makefnmark, qui compose directement la même marque que l’ancien noyau : même indentation \parindent, même point suivi de 0,25 em, et même élévation pour \fnsymbol. Les notes de minipage gardent l’appel en exposant suivi d’une espace fine. Aucun fichier d’e-french n’est modifié.

Correctif

Expédient

Il est toujours possible de forcer la compilation avec l’ancien noyau. Il suffit de placer la commande en préambule du document avant l’appel de la classe :

\RequirePackage[2025-11-01]{latexrelease}

Sous Miktex

Pour les utilisateurs sous Windows et utilisant la distribution Miktex, il faut créer un dossier local, par exemple C:/mytexmf et placer les fichiers manquants en suivant l’arborescence classique. Dans la console Miktex, il faut aller ensuite dans Settings, ajouter le dossier (p. ex. ici C:/mytexmf) et enfin dans le menu du haut Tasks, choisir la commande « Refresh file name database ». Cela permet à Miktex de trouver les fichiers msg-msg.tex et efrench-fix.

Sous TeXLive (linux)

Il faut utiliser ou créer un dossier local dans le répertoire personnel :


mkdir -p ~/texmf/tex/latex/efrench-fix
cp efrench-fix.sty ~/texmf/tex/latex/efrench-fix/

On peut vérifier que la variable d’environnement pointe bien vers le dossier exmf local :

kpsewhich -var-value TEXMFHOME

On peut vérifier que latex trouve bien le correctif :

kpsewhich efrench-fix.sty

Utilisation

Après chaque appel de french dans le préambule d’un document, il faut appeler le correctif :


\usepackage{french}
\usepackage{efrench-fix}

On peut conditionner l’utilisation du correctif :


\usepackage{french}
\IfFormatAtLeastTF{2025-11-02}%
{\IfFileExists{efrench-fix.sty}{\usepackage{efrench-fix}}{}}%
{}

Téléchargements

Fichiers :