Cet article fait suite au précédent, nous allons étudier la requête GREP (regex) pour InDesign qui va nous permettre de remplacer ces horreurs typographiques que sont les (i)ème(s) et les (i)ère(s) pour les remplacer par des abréviations ordinales correctes. C’est-à-dire 1er, 1ers, 1re et 1res pour premier(s) et première(s), et ne ou nes pour les suivants.
Voir : http://www.academie-francaise.fr/abreviations-des-adjectifs-numeraux
Puisqu’on est dans les règles typographiques il faut aussi rappeler qu’un exposant ne doit jamais être en capitale, c’est pour cette raison que la requête proposée ci-dessous ne les recherche pas.
Comme il va falloir remplacer des caractères, pour le coup on ne pourra pas utiliser de style GREP, il faudra utiliser le Rechercher-remplacer GREP. Avec une requête pour la recherche et une autre pour le remplacement.
Rechercher
(?<=\d)(i?)([[=e=]]?)(r?)(m?)(e)(r?s?)\>
Explications :
(?<=) : c’est le look behind positif, qui aurait été mieux traduit par “détection positive en amont”. Détecter en amont de quoi ? Détecter si la chaine de caractères recherchée est bien précédée par le caractère qu’on va placer entre le signe égal et la parenthèse fermante.
\d : signifie chiffre quelconque, puisque par nature les abréviations ordinales sont toujours précédées par au moins un chiffre.
( : la parenthèse ouvrante signifie l’ouverture de la première expression marquante.
i? : on recherche un “i”, le point d’interrogation situé immédiatement à sa droite rend sa présence facultative.
) : la parenthèse fermante signifie la fin de la première expression marquante.
([[=e=]]?) : deuxième expression marquante. Le posix “[[=e=]]” s’appelle une équivalence de caractère. On recherche toutes les formes du “e” avec ou sans accent et quel que soit l’accent éventuel, parce-que tant qu’à faire d’abréger incorrectement certains rédacteurs en profitent pour ajouter des fautes d’accent. Le point d’interrogation situé immédiatement à sa droite rend sa présence facultative.
(r?) : troisième expression marquante. On recherche un “r”, le point d’interrogation situé immédiatement à sa droite rend sa présence facultative.
(m?) : quatrième expression marquante. On recherche un “m”, le point d’interrogation situé immédiatement à sa droite rend sa présence facultative.
(e) : cinquième expression marquante. On recherche un “e”.
(r?s?) : sixième expression marquante. On recherche un “r” ou un “s” ou les deux, le point d’interrogation situé immédiatement à la droite de chacun rend sa présence facultative. Le GREP étant “gourmand” si un “r” suit un “s” les deux caractères consécutifs seront captés.
\> : indique la fin de mot, c’est-à-dire qu’il doit être suivi d’une espace, d’une fin de paragraphe, d’un saut de ligne, d’une ponctuation, etc.
On recherche donc éventuellement un “i”, éventuellement suivi d’un “e” sous toutes ses formes, éventuellement suivi d’un “r”, éventuellement suivi d’un “m”, obligatoirement suivi d’un “e”, éventuellement suivi par un “r” ou un “s” ou les deux.
Si et seulement si cette chaine de caractères est immédiatement précédée par au moins un chiffre.
Remplacer
$3e$6
Explications :
$3 : c’est le Trouvé 3 : on remplace le contenu de la troisième expression marquante par lui-même. Donc soit “r”, soit rien.
e : on remplace par un “e”.
$6 : c’est le Trouvé 6 : on remplace le contenu de la sixième expression marquante par lui-même. Donc soit “r”, soit “s”, soit “rs”, soit rien.
Ça n’a pas le dynamisme du style GREP étudié la semaine dernière mais si on se donne la peine d’appliquer l’attribut Exposant lors du Rechercher-remplacer ça ne fait qu’un voyage. Chacun fera comme il préfère.
À bientôt pour un autre abracadabraGREP.
Bonjour,
Merci pour ce document très intéressant. Mais je note une erreur et pas des moindres : première s’abrège 1re, et pas 1e…
Du coup, comment faire ? Une seconde recherche pour remplacer les 1e par des 1re ?
Après m’être creusé un petit peu la tête suivant vos explications, j’ai trouvé la solution à mon commentaire précédent : on crée une première expression marquante pour le “i”, puis une seconde pour le “r”, et enfin une troisième et une quatrième pour la suite du code comme vous aviez fait.
Ce qui nous donne en recherche : (?
et en remplacer : $2e$4
En espérant que ça vous convienne ainsi qu’à mes confrères respectueux de la typographie.
Bonjour.
Merci beaucoup de m’avoir signalé cette grosse bourde. Je viens de corriger l’article entièrement.
Mea culpa.
Par ailleurs il est dommage que les fenêtres de commentaires n’aiment pas les requêtes GREP car du coup on ne voit pas votre proposition.
Quand on recherche \d (chiffre quelconque), pourrait-on envisager d’inclure dans cette requête les chiffres romains ?
Bonjour.
Oui, il faudra mixer la requête ci-dessus avec celle-ci : https://abracadabrapdf.net/ressources-et-tutos/abracadabragrep/abracadabragrep-appliquer-exposant-aux-siecles/
😉
Oui je confirme, il suffit simplement de rajouter |X|I|V derrière /d dans la première requête. D’une pierre trois coups, on gère en une seule recherche tous les exposants (siècles et numériques), en rajoutant un style de caractère “exposant” à sa recherche.
Les spammeurs ont gagné : je ferme les commentaires.
On se retrouve sur https://forum.abracadabrapdf.net/