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 :

Spécimen de la police Viga, aperçu sur fontsquirrel.com.

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é :

Le volume de texte se distribue, caractère par caractère, dans tout l'espace disponible.

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) :

Composition ultrafluide par simple Rechercher/Remplacer.

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.