Comme son nom l'indique, ce métacaractère sélectionne les appels de notes, placés dans le texte courant, et les numéros de note correspondants, placés au début des blocs de note de bas de page ou de fin d'article. Cela, quel que soit le style de note choisi via les Options de note de bas de page…, onglet Numérotation et mise en forme, menu déroulant Style :



Contrairement à plusieurs caractères spéciaux, mais comme d'autres, ~F est absent de la zone Remplacer par. Autrement dit, on ne peut donc pas le rappeler. Et il est inutile de l'encadrer de parenthèses pour en faire une sous-expression marquante et espérer le retrouver à l'aide d'une variable de type Trouvé ($n) : un appel de note serait remplacé par <?> tout en supprimant le bloc note y afférant.

Il existe cependant un moyen pour remédier au problème : le copier/coller. 1) Commencez par saisir votre formule faisant intervenir ~F dans la zone Rechercher ; 2) copiez ensuite l'appel de note du texte courant ; 3) dans le champ Remplacer par, réinjectez-le à l'aide du métacaractère Contenu du presse-papiers (menu Caractères spéciaux pour le remplacement > Autre) : ~C (avec mise en forme) ou ~c (sans mise en forme).

De prime abord, une telle astuce laisse espérer toute sorte de manipulation, notamment l'invertion d'un signe de ponctuation et d'un appel de note. Si l'on souhaite déplacer ce dernier avant la ponctuation, on pourra rechercher ([\s,;.?!~e]+)~F que l'on remplacera par ~C$1 ou ~c$1.

Oui, mais voilà. Une telle manipulation atteint rapidement ses limites dans la pratique et dans une perspective de traitement automatisé à grande échelle. Certes, la permutation s'effectue, mais si l'on y regarde de plus près on constate deux anomalies :



  • le contenu de la note copiée a remplacé celui de toutes les autres notes !


On l'aura compris. Il est fortement déconseillé de recourir à la méthode Rechercher/Remplacer GREP pour la manipulation qui nous préoccupe ici. Mais les expressions régulières ne sont pas à écarter, si on les intègre à un Javascript. Celui que nous vous proposons en téléchargement ici, qui reprend justement la regex ci-dessus, permet de placer avant un signe de ponctuation tout appel de note qui se situerait après (comme c'est le cas, notamment, dans la typographie anglo-saxonne). Le script prend en compte la présence ou non d'une espace avant ces signes et le cas de plusieurs signes de ponctuation consécutifs. Bien sûr, chaque note conserve son contenu !

J'ouvre une parenthèse pour remercier chaleureusement Marc Autret, concepteur et auteur du site IndiScripts.com, qui, à partir d'un Javascript existant, l'a sensiblement amélioré en élargissant la regex originelle et en permettant des manipulations beaucoup plus souples. Je ferme la parenthèse.

Le métacaractère ~F reste utile dans d'autres circonstances.

Pour intervenir sur des chaînes de caractères qui entourent un appel de note dans le texte, ~F, placé dans un lookaround, servira d'ancrage. Par exemple, \s(?=~F) que remplace une zone Remplacer par laissée vide supprime les espaces indésirables précédant l'appel. À noter qu'une espace insérée avant l'appel de note via les Options de note de bas de page > Numérotation et mise en forme > Afficher le préfixe/suffixe dans > Préfixe, n'est pas supprimée.

Une regex commençant par (?<=^~F) ne sélectionne que les numéros de note des blocs de note, pour autant que l'option Inclure les notes de bas de page soit activée. À partir de là, on peut imaginer, dans des cas et d'un usage bien limités malgré tout, des manipulations exclusivement dans les blocs de note.

  • (?<=^~F\t)(.*?)(Jean)(?=\sBernard) que remplace $1 Philippe recherchera après aucun ou plusieurs caractères quelconques (en d'autres termes, au début du paragraphe ou à l'intérieur), Jean qui précède Bernard, pour le remplacer par Philippe.
  • (?<=^~F\t)(«\s)(.+?)(\s») recherchera toute chaîne de caractères entre chevrons. Dès lors, on pourra par exemple supprimer les guillemets et formater le texte en italique, en indiquant simplement $2 dans la zone Remplacer par et ajouter un style de caractère dans Remplacer le format.
  • (?<=^~F\t)([^\d]+)(\d+)(\s)([£$€]) trouvera un ou plusieurs chiffres suivi(s) d'un symbole monétaire que l'on intervertira avec $1$4 $2.


Si l'on fait appel à un style de paragraphe spécifique aux blocs de note, dans la zone Rechercher le format, il est inutile de spécifier (?<=^~F\t), ce qui autorise une plus grande variété de regex.