Il arrive que l'on souhaite décaler ou changer légèrement l'échelle d'une mise en page tout en préservant à la fois le format du document et la stricte correspondance entre chaque page et son contenu. Que faire en pareil cas ? Évidemment, on pourrait songer à « Activer la modification de mise en page » (Page > Modifier la mise en page...). Cela fonctionnerait — bon an mal an ! — si la composition était autorisée à se redistribuer librement selon de nouvelles marges et repères. Mais ici, puisque la mise en page est fixée en elle-même et ne doit plus bouger, l'ajustement automatique n'est d'aucun secours. Ce qui nous sauverait, ce serait de pouvoir repositionner et/ou remettre à l'échelle le contenu de chaque page pris comme un tout — ainsi qu'on procéderait avec une simple image sous Photoshop.

Une solution serait de grouper (i.e. associer) manuellement les objets et de transformer le tout, page par page, afin de faire coïncider la maquette finale avec les marges du nouveau gabarit d'empagement. Vous devinez que ce n'est pas tout à fait le genre d'approche que nous préconisons par ici ! Un outil infiniment plus puissant est à notre portée, quoique inaccessible depuis l'interface d'InDesign. En résumé, notre stratégie consistera à modifier le facteur d'échelle et, si nécessaire, le point d'origine des pages elles-mêmes. Ces paramètres invisibles modifient ce qu'on appelle « l'espace de coordonnées interne » (inner coordinate space) associé à chaque objet Page. Depuis InDesign CS5, cet espace est transformable (au sens des matrices de transformations), ce qui nous ouvre certaines possibilités contre-intuitives, notamment celle de changer l'échelle d'aperçu d'une page sans pour autant modifier ses dimensions réelles !

Note technique. — Les prémices du script TotalRescale ont germé dans un article publié en août 2011, « Transforming spreads in InDesign » (en anglais). Entre-temps, j'ai découvert un fait singulier : à la différence des vues de planches (objet Spread), les vues de pages (objet Page) peuvent être transformées indépendamment des objets situées sur lesdites pages. Imaginez que vous avez le pouvoir d'étirer une page, comme un élastique, mais sans appliquer cette distorsion aux objets qu'elle contient. Lorsque vous imprimez ou exportez cette page à sa taille réelle (c'est-à-dire non étirée), les objets qui n'avaient subi aucune transformation apparente, à l'écran, vont soudain se rétracter selon les lois inverses de l'étirement de la page. Telle est l'astuce sur laquelle repose le script. J'utilise ensuite un stratagème qui neutralise à l'écran la transformation subie par les pages. Comment ? En appliquant la transformation réciproque aux planches (objets parents des pages). Ce faisant, on restitue à l'utilisateur la taille réelle des pages et, du coup, il voit immédiatement à l'écran la contrepartie ressentie au niveau des objets. Ce petit tour de passe-passe fournit un exemple fructueux de collaboration entre deux transformations inverses, l'une portant sur la vue des pages, l'autre portant sur la vue des planches.

Utilisation du script TotalRescale

TotalRescale.js ne peut tourner que sous InDesign CS5 ou CS5.5 (car la faculté de transformer des pages n'était pas implémentée auparavant).

1) Démarrez ID et ouvrez un document.

2) À partir de la palette Pages, sélectionnez la page type qui porte les marges de votre actuel gabarit d'empagement — ces marges constituent notre aire de référence initiale.

Placement d'un nouveau gabarit rectangulaire sur la page type.

3) Sur la page type, créez et positionnez un rectangle. Le périmètre de ce dernier représente le gabarit désiré, c'est-à-dire la situation des marges à la fin de l'opération. (Le rectangle en question peut être plus grand ou plus petit que l'aire de référence, proportionnel ou disproportionné, etc.)

4) Sélectionnez le rectangle et exécutez TotalRescale.js depuis la palette Scripts.

Si le document de travail est basé sur des pages en vis-à-vis, le script vous proposera le cas échéant d'appliquer votre gabarit en mode miroir (symétriquement) selon les pages « main gauche » et « main droite », comme illustré ci-dessous. À l'inverse, vous pouvez décider d'appliquer le gabarit uniformément, c'est-à-dire sans tenir compte du vis-à-vis.

Mise en page résultante. (Notez que le format de page n'a pas changé.)

Avertissement

1) Comme d'habitude dans cette rubrique, le script proposé ici est PUREMENT ET OUVERTEMENT EXPÉRIMENTAL. Je NE GARANTIS PAS son bon fonctionnement dans n'importe quelle configuration. N'oubliez pas de sauvegarder vos documents de travail avant le grand saut.

2) TotalRescale exploite des fonctionnalités que VOUS NE POUVEZ PAS DIRECTEMENT COMMANDER NI INVERSER DEPUIS L'INTERFACE D'INDESIGN (toutefois, il est possible d'annuler l'effet du script par Édition > Annuler TotalRescale). Utilisez ce script en phase finale, au moment de l'export ou de la production définitive. Il est solennellement déconseillé de l'exécuter durant les étapes de création et de mise en page, en raison du trompe-l'œil qu'il met en œuvre dans l'interface utilisateur.

3) Une fois la transformation opérée, InDesign est susceptible d'afficher certaines dimensions, mesures, tailles de texte en unités RELATIVES. Cela dépend notamment de l'option « Les transformations sont totales » du panneau de contrôle, mais pas que.

4) Ce script EST INCAPABLE de traiter des documents basés sur des formats de pages variables. Il est donc présumé que la taille des pages est la même pour l'ensemble des planches maquettées. (Le script affecte toutes les pages du document.)

5) Contre toute attente, lorsqu'un alignement sur ligne de base est actif, certaines des lignes soumises à cette contrainte PEUVENT INOPINÉMENT se démarquer de la conformation initiale. Dans cette situation exceptionnelle, le principe de conservation de la mise en page n'est donc plus respecté. Il y a fort à parier que ce « bug » résulte d'une erreur d'arrondi engendrée par InDesign lui-même lorsqu'il est confronté à d'infimes décalages d'interligne.