write_soft_hyphen.json
Le fichier JSON de l'exemple « Traits d'union conditionnels et insécables ». Une colonne justifiée composée deux fois : les mots longs coupés à leurs traits d'union conditionnels, trait d'union affiché, ou laissés entiers, et un nombre qu'une espace insécable garde d'un seul tenant.
Ce fichier est une requête : une application l'envoie par le réseau au serveur, qui crée le PDF et le renvoie. Il donne la même page que les versions Rust et Python de cet exemple. Une requête nomme chaque fichier qu'elle emploie, jamais le contenu de ces fichiers ; l'appel porte la requête et les fichiers ensemble. Une police que le serveur détient déjà, comme DejaVuSans, se nomme sans rien y joindre. Envoyez la requête à l'adresse que donne la page de l'API.
La bibliothèque écrit le paragraphe une seule fois et lui retire ses traits d'union conditionnels pour le panneau du haut ; la demande l'écrit deux fois, celui du haut déjà sans eux. La hauteur de chaque panneau est un nombre que la bibliothèque mesure sur les lignes qu'elle vient de composer, pour que le cadre se referme sur la dernière ; ici il est tapé à la main, et il faudrait le retaper si un mot changeait.
À quoi sert cet exemple
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).
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.