Le trait d’union vu d'InDesign

Le trait d'union est un signe de ponctuation servant aussi bien à joindre des unités lexicales (mots composés) qu'à les diviser (césure syllabique). Les typographes distinguent d'ailleurs ces deux concepts, l'un orthographique pour lequel ils réservent le terme de trait d'union (au sens strict), l'autre typographique pour lequel ils emploient le mot division (ou div), désignant spécialement la marque d'une coupure de mot (césure). Quoi qu'il en soit, l'entité ortho/typo/graphique que nous appellerons trait d'union implique et des caractères et des glyphes distincts, pour ses emplois dits insécable, conditionnel, etc.

Entre autres avatars, le trait d'union au sens large intervient dans le mécanisme de la césure automatique, situation dans laquelle aucun caractère n'a été effectivement saisi par le metteur en page bien qu'un signe imprimé soit finalement produit logiciellement. Inversement, le trait d'union conditionnel réalise un caractère explicite (formellement, U+00AD) qui peut rester muet, graphiquement invisible, selon sa position dans la ligne composée.

Une terminologie claire est indispensable pour aborder la diversité de ces situations. Voici celle adoptée dans cet article :

Trait d'union... Caractère saisi Glyphe Remarques
Normal U+002D TRAIT D'UNION SIGNE MOINS /hyphen Dans InDesign, presque tous les effets de césure reposent sur le glyphe de ce caractère, qu'on appelle parfois trait d'union Ascii.
Unicode U+2010 TRAIT D'UNION /hyphentwo Sous-employé (y compris dans InDesign), il devrait en principe se comporter comme le trait d'union normal, bien que son glyphe puisse s'en distinguer.
Insécable U+2011 TRAIT D'UNION INSÉCABLE /hyphen (devrait être /u2011) IndyFont permet d'assigner un glyphe dédié à ce caractère, mais InDesign n'en tiendra pas compte.
Conditionnel (visible) U+00AD TRAIT D'UNION CONDITIONNEL /hyphen (devrait être /sfthyphen) IndyFont permet d'assigner un glyphe dédié à ce caractère, mais InDesign n'en tiendra pas compte. Appelé «tiret conditionnel» dans InDesign, il s'active seulement lorsque le caractère sous-jacent occupe la position d'une césure possible dans la composition courante.
Conditionnel (inactif) U+00AD TRAIT D'UNION CONDITIONNEL aucun Même caractère que ci-dessus, mais inhibé tant qu'il n'est pas en situation de césure.
Automatique aucun /hyphen Pas de caractère sous-jacent, mais le glyphe est produit logiciellement au point de coupure de ligne, en accord avec les options de césure réglées par l'utilisateur. InDesign utilise alors le glyphe du trait d'union normal.

Note. — Le présent article se concentre sur les traits d'union, au sens donné ci-dessus, compte tenu de leur fonctionnement particulier dans InDesign. Il ne sera pas fait mention des tirets cadratin et demi-cadratin, moins et autres traits horizontaux, tous étrangers au processus de césure. IndyFont vous permet de personnaliser les glyphes de tels caractères sans contrainte notable. (À propos des caractères spéciaux sous InDesign, cf. cet article plus ancien.)

Récapitulons les règles adoptées par InDesign en matière de traits d'union :

Gestion des traits d'union dans InDesign.

Le glyphe du trait d'union normal (U+002D) est réinvesti partout où un trait d'union, quelle que soit sa nature véritable, doit apparaître. InDesign signale d'ailleurs la substitution — en jaune — pour les traits d'union insécable et automatique. La règle s'applique également au trait d'union conditionnel actif. Toutefois, concernant le trait d'union Unicode, InDesign se résout à employer son glyphe s'il est disponible dans la police courante.

La terrible vérité

Techniquement, IndyFont serait en mesure d'assigner un glyphe distinct à tous les caractères que nous avons décrits ci-dessus, mais InDesign ignorera purement et simplement vos efforts à cause de la substitution automatique des glyphes. Pour en faire la démonstration, testons une fonte minimale où chaque trait d'union revêt un glyphe dédié :

Police minimale mettant InDesign à l'épreuve des traits d'union.

Dans ce modèle IndyFont, le trait d'union normal subit une lègère inclinaison, de façon à repérer immédiatement toute occurrence de cette forme. Puis, une ligne verticale figure le trait d'union conditionnel (visible), un triangle figure le trait d'union Unicode, et un disque le trait d'union insécable.

Voici le dialogue IndyFont avant l'export OTF. Notez que tous les caractères et glyphes sont parfaitement valides. La conversion OpenType se déroulera sans anicroche :

IndyFont prêt à distiller la police OpenType.

Maintenant que notre police TestHyphens-Regular est opérationnelle, voyons comment elle agit dans un bloc-texte échantillon où seraient introduits tous les traits d'union possibles. On n'oublie pas d'activer la césure automatique des paragraphes afin d'observer aussi le trait d'union automatique (à la fin du texte). Notez enfin que, dans la capture ci-dessous, le trait d'union insécable est sélectionné :

InDesign ne rend pas hommage à notre créativité typographique.

(Cliquez sur l'image pour voir le contenu de la palette Glyphes.) Ainsi, tous les glyphes additionnels sont inhibés, à l'exception de notre trait d'union Unicode triangulaire (U+2010). Ceci confirme bien qu'InDesign traite le glyphe du trait d'union normal comme représentation canonique de tous les caractères de cette espèce, y compris lorsque la police fournit un dessin exclusif pour lesdits caractères. Le trait d'union insécable étant sélectionné sous InDesign CC 2017, nous observons en passant que son glyphe théorique devrait être un disque, comme en témoigne la mini-fenêtre surgissante sous la sélection. Mais qu'il n'en est point ainsi.

Vers une solution propre

Quelle conclusion tirer à ce stade ? Qu'il est vain de déclarer et de définir des traits d'union additionnels dans IndyFont, puisqu'InDesign ne veut bien discuter qu'avec le trait d'union standard.

Mais imaginons que votre client réclame une mise en forme particulière à la césure automatique et conditionnelle. Par exemple, que ces traits d'union-là soient figurés par des tildes (~), tandis que le dessin habituel serait maintenu pour le trait d'union normal et sa contrepartie insécable. Une idée simple vient à l'esprit : nous pourrions créer sous IndyFont une variante de glyphe, disons /hyphen.swash, et faire en sorte que cet attribut OpenType soit sélectionné pour les caractères qui nous intéressent. Pour ce faire, il suffira d'un style de caractère ad hoc et d'une redirection sur ce dernier par le truchement d'un style Grep. Facile !

Cependant, gardons en tête que le trait d'union automatique n'est pas un caractère, et qu'en conséquence il ne peut être la proie d'aucune expression Grep. La mise en forme de la césure automatique résulte par héritage du style possédé par le caractère situé en amont dans le flux textuel, style que nous devons donc considérer comme appliqué « par défaut », c'est-à-dire sans variante de glyphe. De là s'ensuit que, dans notre modèle IndyFont, nous devons retravailler le glyphe du trait d'union standard (/hyphen) de sorte qu'il corresponde aux emplois automatique et conditionnel, tandis que la variante « italique ornée » (/hyphen.swash) sera spécialement utilisée pour les caractères effectivement accessibles au Grep InDesign, à savoir le trait d'union normal U+002D et le trait d'union insécable U+2011.

Voici à quoi ressemble notre modèle de police après ces modifications :

Attribution de la variante « swash » au trait d'union normal ou insécable.

Relançons IndyFont pour produire la nouvelle version de cette police de caractères. Observez que deux glyphes sont enregistrés, /hyphen et /hyphen.swash, pour le seul et unique caractère U+002D :

Les deux glyphes du trait d'union, vus depuis le dialogue principal d'IndyFont.

L'étape suivante consiste à créer le style de caractère « Swash » dans le document InDesign, en activant simplement l'option « Variantes de lettres italiques ornées » :

Le style de caractère «Swash».

Il nous faut maintenant un style de paragraphe doté d'un style Grep affectant la classe [-~~], instruction qui représente aussi bien le trait d'union normal que le trait d'union insécable :

Expression de style Grep permettant d'ajuster à la fois le trait d'union normal et insécable.

La magie va-t-elle opérer ? Le trait d'union normal et le trait d'union automatique vont-ils enfin nous apparaître sous des habits différents ? Un nouvel échantillon de texte en fera la preuve :

Résultat dans InDesign.

Ce qui fait le charme de la solution proposée ici, à mon avis, est qu'elle ne transgresse pas la sémantique des caractères Unicode et n'opère aucun détour vers une fonte secondaire. Tout est géré au sein de votre police de caractères principale.


Un grand merci à Camilo Umana pour avoir posé la question prétexte à cet article.