Le Document Object Model d'InDesign CS4 a introduit une très obscure propriété, TextPreference.enableStylePreviewMode, qui déclenche le signalement circonstancié de tous les « remplacements de styles » (de paragraphe et de caractères) sous la forme de biffures ou de barres verticales rouges (voir capture ci-dessus). Pourtant, après des heures d'investigation, je n'ai pas réussi à accéder à cette option d'affichage depuis l'interface d'InDesign CS4. Peut-être bien que je me trompe, mais jusqu'à plus ample informé cette fonctionnalité semble uniquement accessible par les voies du scripting. (Si je suis passé à côté d'une évidence, dépêchez-vous de poster un commentaire pour me ridiculiser !)

Quoi qu'il en soit, je trouve cette option fabuleuse. D'ordinaire, on détecte les formatages locaux en sélectionnant un bout de texte et en regardant dans la palette Styles de paragraphe (ou Styles de caractère) si le nom du style est suivi d'un signe +. Si c'est le cas, on en déduit que la mise en forme du texte contrevient localement aux règles enregistrées dans le style correspondant. (Pour plus de précisions sur ces questions, consultez la rubrique « Remplacement de styles de caractère et de paragraphe » dans l'aide en ligne d'InDesign CS4.) Reste que cette approche est impraticable quand on souhaite dresser un bilan général des écarts de style, notamment à la suite d'une importation depuis Word ou d'une opération similaire.

À noter qu'il est possible d'inclure la détection des remplacements de style dans un profil de contrôle en amont, mais cela me paraît bien lourd pour un usage quotidien.

Le script

ShowHideLocalFormatting.js est le script le plus court que j'aie jamais écrit. Il se contente de basculer entre le mode d'affichage habituel et notre option enrichie en marqueurs rouges :

if (
  app.documents.length &&
  app.activeDocument.textPreferences.enableStylePreviewMode^= 1 &&
  app.layoutWindows.length &&
  app.activeWindow.constructor==LayoutWindow
  )
  {
  app.activeWindow.screenMode = ScreenModeOptions.previewOff;
  // MAJ 25/05/10 - Merci ptruskier
  app.activeWindow.overprintPreview = false;
  }
 

Le code ci-dessus contient quelques instructions d'appoint qui ne doivent pas vous aveugler. En fait, la seule ligne digne d'intérêt est ici :

app.activeDocument.textPreferences.enableStylePreviewMode^= 1;
 

Elle commute la valeur de enableStylePreviewMode, ce qui fait que le script fonctionne comme un interrupteur on/off.

Voici le genre de résultat que nous obtenons :

Chaque marque rouge (biffure pour les caractères, barre latérale pour les paragraphes) signale un remplacement local des attributs de style (équivalent au signe « + » postfixé au nom d'un style dans la palette correspondante).

S'il se confirme que cette option d'affichage est inatteignable depuis l'interface d'InDesign CS4, je vous encourage à créer un raccourci privilégié pour lancer ce script. Il pourrait vous rendre d'appréciables services.

• Voir aussi : « The Hidden Way to Highlight Styles »