Créer une justification ultrafluide dans InDesign
January 28, 2015 | Extras | fr | en
Un ami typographe m'interroge sur le moyen le plus pratique de créer des échantillons de texte avec retours de ligne arbitraires et sans césure. Cette mise en forme est d'usage courant chez les fondeurs lorsqu'ils préparent des spécimens de typographie au kilomètre. Le client doit visualiser le comportement de la police de caractères sans artifice de justification — bloc ferré à gauche, approche nulle, échelle des glyphes à 100 %, etc. — afin de se faire une idée exacte de la chasse des caractères et du crénage d'usine…
Le problème crucial qui se pose au concepteur d'échantillons est de déployer des bribes de texte réalistes, avec un alphabet varié, tout en préservant l'équilibre optique d'une composition justifiée. Mais, puisque l'emploi d'un moteur de justification forcée est proscrit, ce problème débouche sur un casse-tête qui ne peut se régler qu'avec des algorithmes intelligents. On voit par exemple ci-dessous comment un spécimen en vitrine sur fontsquirrel.com se décline dans plusieurs corps, chaque bloc typographique donnant l'illusion d'un parfait équilibre esthétique en dépit de la composition au fer à gauche :

Je ne me lancerai pas ici dans l'expertise des algorithmes sous-jacents — sujet au demeurant très stimulant pour les scripteurs InDesign — mais on peut du moins entrevoir une solution approchée, très simple à mettre en œuvre par Rechercher/Remplacer en utilisant la magie du Grep.
Notre objectif, modeste, n'est pas d'obtenir le parfait alignement à droite d'un bloc-texte ferré à gauche, mais simplement de le rendre « ultrafluide ». En clair, on souhaite que chaque caractère du texte, peu importe qu'il figure au sein d'un mot, puisse circuler librement d'une ligne à la suivante sans jamais provoquer de césure (le signe de coupure de ligne ne doit pas apparaître). De cette façon, le texte remplit de façon optimale le bloc conteneur et ce dernier pourra être redimensionné à volonté :

L'astuce repose sur l'insertion systématique, après chaque caractère, d'un « saut de ligne conditionnel » (terminologie InDesign), c'est-à-dire du caractère U+200B ESPACE SANS CHASSE selon Unicode.
Note. — Pour un aperçu complet des caractères spéciaux d'InDesign, cf. notre PDF sur le sujet.
Le code Grep du saut conditionnel étant ~k, il suffit donc de remplacer le motif . (tout caractère) par $0~k, comme illustré ci-dessous (cliquez pour agrandir) :
Bien entendu, si vous devez modifier le texte source, il conviendra au préalable de supprimer partout le caractère invisible par une requête inverse : rechercher ~k, remplacer par champ vide.
Note. — En cas de recours intensif à l'ultrafluidité, n'oubliez pas d'enregistrer l'opération dans votre liste de requêtes prédéfinies.

Comments
Très joli résultat que l'"ultrafluidité" ainsi créée !
Une astuce à conserver en mémoire, sans aucun doute.
Absolument génial.
Merci aussi pour le rappel des caractères spéciaux.
I have downloaded IndexMaticTry.jsx, loaded it into InDesign Scripts Panel folder (Mac). When I try and use it I am not getting a Scope panel come up -- only Scripts, Script Panel and Data Merge. Help please., Christine
@ Christine
Well, your question is somewhat off-the-topic ;-)
Anyway. IndexMatic is not supposed to setup a 'Scope panel' in InDesign. This so-called 'panel' is just an area ('SCOPE') visible in the main dialog of IndexMatic.
Now, in order to execute IndexMatic, go into your Scripts panel (InDesign), open the User branch, then double-click IndexMaticTry.jsx.
Hope that helps.
Regards,
Marc
Absolument dingue