Re: cleveref & babel | babel-french ne font pas bon ménage

Liste des GroupesRevenir à fct tex 
Sujet : Re: cleveref & babel | babel-french ne font pas bon ménage
De : dflipo (at) *nospam* nowhere.com (Daniel Flipo)
Groupes : fr.comp.text.tex
Date : 26. Sep 2022, 15:32:27
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6331a9eb$0$5149$426a34cc@news.free.fr>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0
Le 25/09/2022 à 23:11, Vincent Belaïche a écrit :

J'ai regardé un peu le code de cleveref.sty et celui de french.ldf, et
le fond du problème c'est que tout deux surchargent \@makefntext.
 Comme cleveref.sty le fait à son chargement, alors que french.ldf le
fait dans un \AtBeginDocument, french.ldf fait la surcharge en second et
cleveref en premier, alors qu'il faudrait que ce soit dans l'autre sens
pour que ça marche (ou bien il faudrait que french.ldf n'efface pas
certaines données de contexte). Donc un contournement simple pour que
tout ça fonctionne ensemble est de mettre les surcharges dans l'ordre
inverse, comme ceci :
 --------8<-----------8<-----------8<-----------8<-----------8<-------
\documentclass[french]{article}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{cleveref}
\usepackage{babel}
\crefformat{footnote}{#2\footnotemark[#1]#3}
\begin{document}
\makeatletter
\begingroup
% original
\let\@tempa\cref@old@makefntext
% babel
\let\@tempb\@makefntext
% cleveref
\let\@tempc\@makefntextORI
% inverse l'ordre de surcharge
\global\let\@makefntext\@tempc
\global\let\cref@old@makefntext\@tempb
\global\let\@makefntextORI\@tempa
\endgroup
\makeatother
Une note\footnote{\label{fn/xxx}Le texte de la note.}.
 Et avec la même marque d'appel\cref{fn/xxx}.
\end{document}
 --------8<-----------8<-----------8<-----------8<-----------8<-------
 Bon, ce n'est pas très satisfaisant. Il vaudrait mieux que french.ldf
n'écrase pas le contexte.
Yaka…
Jean-Yves Baudais a déjà indiqué un moyen simple d'empêcher french.ldf de toucher au formatage des notes de bas-de-page :
\frenchsetup{FrenchFootnotes=false}
On ne peut pas demander à french.ldf /à la fois/ de modifier la présentation de ces notes et /en même temps/ de ne pas toucher à \@makefntext, il faut /choisir/.
Le clash avec cleveref arrivera avec toute extension modifiant \@makefntex. Essayer par exemple de remplacer babel/french par \usepackage[symbol]{footmisc}.
L'intervention de french.ldf a lieu au \begin{document} justement afin de prendre en compte le contexte, en particulier si une autre extension a modifié les notes de bas-de-page (bigfoot par exemple).
Conclusion : aucune « amélioration » n'est à espérer du côté de babel-french pour résoudre ce clash.
--
Daniel Flipo

Date Sujet#  Auteur
10 Sep 22 * cleveref & babel | babel-french ne font pas bon ménage7Vincent Belaïche
11 Sep 22 +- Re: cleveref & babel | babel-french ne font pas bon ménage1Jean-Côme Charpentier
11 Sep 22 +- Re: cleveref & babel | babel-french ne font pas bon ménage1Denis Bitouzé
12 Sep 22 `* Re: cleveref & babel | babel-french ne font pas bon ménage4news.free.fr
24 Sep 22  `* Re: cleveref & babel | babel-french ne font pas bon ménage3Vincent Belaïche
25 Sep 22   `* Re: cleveref & babel | babel-french ne font pas bon ménage2Vincent Belaïche
26 Sep 22    `- Re: cleveref & babel | babel-french ne font pas bon ménage1Daniel Flipo

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal