Imprimer
Catégorie : JS inDesign
Également disponible :  English (UK) 
Affichages : 5248

Vous avez à modifier une tête-de-lettre qui comporte en pied une adresse sur deux lignes. La nouvelle adresse étant plus longue doit comporter trois lignes, mais la dernière (troisième) ligne de la nouvelle adresse doit être au même niveau que la dernière (deuxième) ligne de l'ancienne adresse. Dans ce cas bien sûr l'adresse devrait logiquement être déjà dans un bloc avec le texte aligné en pied (Options de bloc de texte → Justification verticale → Alignement → Bas) mais le stagiaire qui s'était chargé de la précédente édition avait laissé l'alignement du bloc par défaut sur "Haut").

Vous pouvez manuellement ajouter un repère au niveau de la dernière ligne, régler l'alignement sur "Bas" et remonter le bloc pour réaligner à vue de nez la dernière ligne là ou elle se trouvait, avant de modifier l'adresse, ou bien vous pouvez utiliser ce script qui permet de "copier-coller" la ligne de base (la coordonnée verticale) d'un texte sélectionné :

Dans le cas présent vous n'aurez qu'à

  • sélectionner la dernière ligne de texte,
  • lancer le script qui vous ouvrira une nouvelle palette,
  • cliquer sur le bouton "Copier la ligne de base",
  • changer le paramètre du bloc sur "Options de bloc de texte > Justification verticale > Alignement > Bas",
  • sélectionner l'action "Déplacer le bloc verticalement" dans le menu déroulant de la palette
  • et cliquer sur le bouton "Coller la ligne de base".
copy paste baseline fr

La ligne de base (coordonnée verticale) d'un caractère est une propriété qui n'est pas affichée dans l'interface utilisateur d'InDesign mais existe dans le le DOM JavaScript d'InDesign (propriété "baseline") où elle est en lecture seule, ce qui est logique car elle résulte de nombreux paramètres. D'où l'idée de rendre cette propriété non seulement accessible mais aussi éditable en créant cette palette qui vous propose divers actions possibles pour obtenir la valeur de "baseline" souhaitée[1] en agissant sur un seul paramètre à la fois. Vous pouvez ainsi dans la version actuelle :

Dans certains cas vous aurez un message d'erreur vous avertissant que la valeur de "baseline" demandée est impossible à obtenir en agissant uniquement sur le paramètre sélectionné, par exemple lorsqu'il faudrait appliquer au paramètre une valeur négative alors qu'il ne peut être que nul ou positif, (ex. : décalage minimum 1re ligne de base du bloc, espace avant/après paragraphe) ou que la modification testée réduirait l'espace disponible dans le bloc jusqu'à provoquer du texte en excès.

Un certain nombre d'actions parmi celles proposées peuvent être effectuées de plusieurs façons selon la position du localisateur de point de référence P RefPointLocator1 22x22 N (de la palette Transformation ou Contrôle) : par exemple si vous sélectionnez l'action "Redimensionner le bloc" vous redimensionnerez le bas du bloc en positionnant le point de référence en haut, ou le haut du bloc  en positionnant le point de référence en bas (le choix n'étant utile que si les deux possibilités permettent d'influer sur la ligne de base, par exemple quand le texte est verticalement centré dans le bloc), de même pour l'action "Modifier espace avant/après paragraphe" vous modifierez l'espace après si vous positionnez le point de référence en haut, ou l'espace avant si vous positionnez le point de référence en bas.

Remarque : Ce script ne gère correctement que les blocs texte horizontaux, n'est prévu ni pour les textes curvilignes, ni pour les blocs textes affectés par une transformation et notamment par une rotation.

[1] avec une précision plus élevée que les trois décimales visibles par l'utilisateur dans l'interface d'InDesign : comme pour tous les scripts jsx la précision est de 15 chiffres en virgule flottante, par exemple pour une valeur entre 10 et 99 millimètres la précision est de 13 décimales, soit l'ordre de grandeur d'un noyau atomique.

[2] Ce script vous permettra également de constater une limitation d'InDesign qui n'est pas documentée par Adobe : quand vous mettez l'interlignage d'un texte à "0 pt", l'interlignage réel n'est pas zéro mais 0,01 pt (0,0035277777778 mm). De même, si vous essayez le réglage suivant « Options de bloc de texte > Justification verticale > Alignement > Haut ; Options de ligne de base > Première ligne de base > Décalage : Fixe, Min. : 0 », la ligne de base de la première ligne de texte ne sera pas réellement au niveau du bord supérieur du bloc mais exactement 0,01 pt en dessous.

Pas encore de commentaires.

Laissez votre commentaire

En réponse à Some User