Cyclic GREP Styles
March 31, 2012 | Extras | en | fr
[Disclaimer] 04/02/12. — As ironically noted by JRB (in French), tweaking GREP to loop character styles is fun but utterly useless since nested styles achieve the same result much more simply! (See Comments section.) Nevertheless, I decided to leave this article online for posterity!
Say you have a set of various InDesign character styles that you want to apply to your text on a cyclic basis. A typical goal is to get alternating character colors, anyway the trick below can be used for any formatting provided that you can control the corresponding attributes through character styles.
Well, how to automate such style cycle? Of course a script could easily do the job—as illustrated in this InDesignSecrets Forum's post—but then we don't get dynamic update so we are forced to restart the script whenever the text changes.
Another approach is to use GREP styles as follows:
The trick is based on the fact that GREP style rules are sequentially applied from top to bottom, which means that any text pattern already affected by a rule can still be re-affected by the following rule(s). Then we use positive lookbehinds to create somewhat character offsets, in the following order:
Style2 (?<=.).{1,4} Style3 (?<=..).{1,3} Style4 (?<=...).{1,2} Style5 (?<=....).
Voilà. Enjoy!
Comments
Bonjour,
Bel exercice de style et bel exemple, mais en fait il y a encore plus simple et beaucoup plus user-friendly pour faire ce genre de chose : les styles imbriqués…
;-)
Eh oui, finalement c'est tellement simple…
Mais tout le mérite est d'y avoir pensé !
Merci Marc.
Gloses > Je suis curieux de voir l'aspect répétitif avec l'emploi de styles imbriqués.
@ JRB
Votre cinglante — mais excellente ! — intervention me mortifie :
> il y a encore plus simple […] : les styles imbriqués…
Et vous avez raison ! Je viens tout bonnement de réinventer la roue avec du Grep alors que les styles imbriqués offrent par nature la périodicité dont il était besoin…
@Reskator
Voici :
1) Sélectionner la rubrique « Styles imbriqués » du style de paragraphe.
2) Créer un nouveau style imbriqué avec la règle « Style1 sur 1 caractère ».
3) Faire de même avec Style2, Style3, etc.
4) Enfin, créer un dernier style imbriqué « [Répéter] » (portant sur les cinq précédents).
Et voilà ! Je n'ai plus qu'à aller me cacher au fond du puits ;-)
Bon… On va quand même laisser mon billet pour la postérité, un parce que j'ai le sens du ridicule, deux parce que « l'exercice de style », pour reprendre cette belle formule de JRB, présente malgré tout quelque éclairage utile sur l'usage du lookbehind.
Merci à tous !
Marc
Thanks for a great solution JRB!
Rhooo… c'est incroyable… à force de manipuler un outil, on finit par ne plus faire attention à certaines options.
Ce n'est pourtant pas faute de me servir des styles imbriqués, tellement d'ailleurs, que ne je ne voyais même plus ce [Répéter] qui domine pourtant le menu.
Quand je pense aux détours que j'ai dû emprunter pour parvenir à mes fins… j'ai honte ! :D