Qui s’en souvient ? Avec InDesign CS, était apparu un script intitulé TextCleanup associé à un fichier-texte appelé FindChangeList contenant une série de lignes de commande Rechercher/Remplacer.  Nous avions-là un script permettant d’enchaîner une série de requêtes pour automatiser le nettoyage typographique ou le formatage d’un texte.

1) FindChangeByList


Depuis la cinquième version d’InDesign, TextCleanup a disparu des scripts fournis par défaut. Il a simplement été remplacé par le script dénommé FindChangeByList toujours associé à un fichier .txt externe appelé FindChangeList (placé dans le dossier FindChangeSupport). La syntaxe a quelque peu évolué. Surtout, cette version offre aussi la possibilité d’y indiquer des Rechercher/Remplacer GREP.

En mode texte ou GREP, la syntaxe de base est relativement simple :
  • en tête de ligne, on trouve la déclaration du mode de recherche : texte ou grep ;
  • suit une première accolade, correspondant à la zone Rechercher du panneau, indiquée sous la forme {findWhat:” “} ;
  • suivent les conditions de remplacement mentionés sous la forme {changeTo:” “}.
  • la troisième accolade a trait aux options : {includeLockedStoriesForFind:false, includeLockedLayersForFind:false, includeHiddenLayers:false, includeMasterPages:false, includeFootnotes:true}. La valeur false ou true interdit ou autorise les options.

Chaque accolade est séparée par une tabulation. On peut aussi introduire un commentaire en le précédant de deux barres obliques //


La syntaxe est un peu plus complexe à mettre en œuvre si l’on souhaite, par exemple, spécifier des attributs de caractères particuliers ou indiquer des styles de paragraphes pour préciser les critères.  En effet, il faut connaître la syntaxe exacte des propriétés des objets Javascript. Elle est longue et ne s’invente pas (aperçu ici).

Par exemple, si nous souhaitions rechercher un mot avec un style de caractère (style 1), il faudrait préciser cette condition par : appliedCharacterStyle:”style 1” ; spécifier une couleur de caractères s’obtient avec la propriété fillColor:” ” ; le nom d’une police de caractère avec fontStyle:” ” ; etc.


2) RecordFindChange


Désormais, il n’est plus utile d’être savant. Le JavaScript RecordFindChange de Martin Fischer adapté en anglais par Kasyan Servetsky prépare les lignes d’instructions automatiquement à partir des critères indiqués dans le panneau Rechercher/Remplacer.

Prenons un exemple concret : nous recherchons une adresse e-mail ou web avec une police de caractère spécifique dans un style de paragraphe donné pour au final lui attribuer un style de caractère (avec une police différente) tout en l’encadrant des signes < et >. Ce qui donne dans le panneau Rechercher/Remplacer :




Après avoir double-cliqué sur RecordFindChange, les lignes suivantes sont directement inscrites dans un fichier .txt que vous utilisez à votre convenance (vous pouvez enregistrer le fichier pour l’utiliser avec FindChangeByList ou recopier les lignes dans un fichier déjà existant).

Rmq : comme il se doit dans la syntaxe JavaScript, les barres obliques inversées sont doublées.

Bien sûr, vous pouvez ainsi enregistrer autant de requêtes que vous le souhaitez en vue de les exécuter à la chaîne (un peu à l’image de chain_queries).

Mais attention : suivant la même logique que les styles GREP, les requêtes s’exécutent les unes à la suite des autres, la dernière s’imposant sur toutes les autres. Si vous demandez que telle chaîne de caractère soit rouge, puis ensuite bleue, elle finira dans cette dernière couleur.

3) FindChangeByList_Mod1


Dans la mesure où toutes les requêtes du fichier .txt s’exécutent, à moins de neutraliser les “indésirables” en les déclarant comme un commentaire, il peut être prudent de les enregistrer par “type” et d’ensuite les appeler comme bon vous semble. Cette tâche peut être facilitée avec le script FindChangeByList_mod1 de Martin Fischer.

En plaçant ce script à la même racine que le dossier FindChangeSupport, il permet de sélectionner le fichier .txt de son choix. Vous pourriez ainsi constituer un fichier pour mettre les bonnes espaces avant les signes de ponctuation ; un autre pour accentuer les capitales ; un autre encore pour formater du texte, etc. La condition préalable est cependant d’annuler le fichier .txt par défaut : FindChangeList (il suffit de le renommer).

Après avoir double-cliqué sur le script FindChangeByList_Mod1, la fenêtre habituelle d’étendue de recherche s’affiche :

Après l’avoir choisie, un autre panneau vous donne accès aux différents fichiers .txt :


  • Le script original FindChangeByList est fourni par défaut avec InDesign CS3 et CS4.
  • RecordFindChange est à télécharger sur le site de Kasyan Servetsky en bas de la page ici ou sur la page ci-contre (en allemand)
  • FindChangeByList_Mod1 est téléchargeable soit sur le site russe adobeindesign.ru, ici ou en recopiant le code sur la page ci-contre (en allemand)

Remarque : Le site abracadabraPDF offre une version de “JSFindChangeList.txt” adaptée aux règles typographiques du français dans lequel il n’y a qu’à activer ou désactiver les instructions qu’il contient. S’y mêlent des requêtes texte et GREP (téléchargez ici).