[Avertissement] 02/04/12. — Comme l'observe non sans facétie notre ami JRB, mes styles Grep d'artilleur sont aussi plaisants que superflus, puisqu'on pouvait atteindre l'objectif avec de simples styles imbriqués ! (Voir commentaires infra.) Nonobstant son ridicule, la rédaction d'Indiscripts abandonne courageusement ce billet à la postérité…

Mettons que vous souhaitiez appliquer en boucle différents styles de caractères à votre texte. Par exemple, alterner les couleurs prélevées dans un jeu de quatre ou cinq nuances prédéfinies. (La méthode exposée dans ce billet fonctionne avec n'importe quels paramètres de mise en forme, pourvu que vous puissiez les piloter à travers des styles de caractères.)

Donc, comment automatiser le cycle d'application de ces styles ? Une solution consisterait bien sûr à confier cette tâche ingrate à un script — comme l'illustre cette contribution de Jongware au forum d'InDesignSecrets (en anglais) — mais dès lors nous ne bénéficierions pas d'une actualisation automatique de l'effet puisqu'il faudrait relancer le script après toute modification du texte.

Les styles Grep nous offrent une option bien plus confortable :

Mise en place des règles de styles Grep.

L'astuce repose sur le fait que les styles Grep sont appliqués séquentiellement de haut en bas, c'est-à-dire que tout motif de texte soumis à une règle donnée peut encore être retraité par la ou les règle(s) suivante(s). Forts de cette petite mécanique, nous exploitons la magie des lookbehind positifs, qui permettent en quelque sorte de décaler périodiquement l'application des styles de caractères :

Style2
(?<=.).{1,4}
 
Style3
(?<=..).{1,3}
 
Style4
(?<=...).{1,2}
 
Style5
(?<=....).
 

Eh oui, c'était aussi simple que ça ;-)