Traits d'union conditionnels et insécables

Une colonne étroite justifiée se relâche dès que les mots sont longs : les espaces s'étirent, des rivières blanches descendent la page, et l'œil tombe dedans au lieu de lire. Ce qui remet la page d'aplomb aujourd'hui, et ne coûte rien, c'est de dire dans le texte lui-même où tel mot a le droit d'être coupé (la coupure automatique des mots, avec un dictionnaire par langue derrière elle, est prévue pour une version à venir).

Un tel caractère est invisible tant qu'on n'en a pas besoin : il se tient à l'écart, et un trait d'union n'apparaît que sur la ligne qui se coupe vraiment là. Son contraire est aussi sur la page — une espace qui refuse de se couper, posée à l'intérieur du montant 1 200 EUR, qui garde la somme et sa monnaie sur une même ligne quelle que soit l'étroitesse de la colonne. Aucun des deux caractères ne paraît dans le document fini ; les deux se lisent dans le texte lui-même.

Ce que montre cet exemple

  • Des mots longs qui se coupent là où le texte l'autorise, et un trait d'union dessiné là seulement.
  • Un montant et sa monnaie tenus ensemble sur une seule ligne.
  • Le même paragraphe des deux façons, l'un au-dessus de l'autre.

Le code source complet

Rien n'est omis et rien n'est simplifié : c'est le programme exactement tel qu'il tourne, pour le développeur qui utilise cette bibliothèque. La troisième est la description elle-même : une simple liste de ce que la page doit dire, et c'est elle qu'on envoie au service.

Voir le code Rust Voir le code Python Voir le code JSON

Le document lui-même

Ouvrir le document en anglais Ouvrir le document en français

Traits d'union conditionnels et insécables, première page

Optimisé, ce document pèse 12.0 ko — au moins 85 % de moins que ce qu'écriraient la plupart des générateurs de PDF

Le document est plus léger qu'avant, et chaque page a exactement le même aspect. Voir la ligne de ce document dans le tableau de tous les exemples.

Des exemples voisins de celui-ci

Couper un mot trop long

Un mot plus long que la colonne qui le contient : la bibliothèque le laisse entier, ou le coupe au bord de la colonne.

Couper aux barres obliques et aux traits d'union

Une colonne justifiée composée deux fois : des chemins de fichiers et des mots composés qui débordent du bord faute de points de coupure, puis qui passent à la ligne là où une coupure après une barre oblique ou un trait d'union est autorisée.

Une police derrière la police

Une même ligne d'états composée deux fois : d'abord dans la police de l'entreprise seule, où les caractères dont elle n'a pas le glyphe sortent en cases vides ; puis avec une seconde police derrière elle, qui trace ces caractères.

Ce qu'une police sait de ses propres lettres

Quatre échantillons composés deux fois chacun, une fois tel quel et une fois avec un seul réglage activé : les lettres liées, les petites capitales, les chiffres qui descendent sous la ligne, et les paires rapprochées.

Tous les exemples, par sujet