Un rapport qui se met en page tout seul

Placer une page à la main, c'est savoir avant d'écrire un mot quelle hauteur fera chaque paragraphe. Traduisez-en un et tous les nombres du dessous sont faux ; ajoutez une ligne à un tableau et la note de bas de page se pose sur le numéro de page. La facture arrive des mois plus tard, quand le rapport doit changer et que rien dans le code ne dit lesquels de ses nombres le tenaient debout.

L'endroit où les deux pages se séparent n'est pas choisi à la main non plus, et c'est pourquoi le rapport français et l'anglais ci-dessous sortent d'un seul et même programme : le français court plus long, la coupure tombe ailleurs, et rien n'a eu à être ajusté pour cela. La seule hauteur que quelqu'un ait fixée dans cet exemple est celle où se pose le numéro de page — et elle appartient à la page, pas à ce qui est dit dessus.

Ce que montre cet exemple

  • Des blocs empilés dans l'ordre de lecture : du texte, un tableau, des filets et des espaces.
  • Un tableau coupé entre deux rangées, sa ligne d'en-tête reprise sur la page suivante.
  • Un paragraphe gardé d'un seul tenant plutôt que laissé avec une ligne toute seule.

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

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