Fantaisie

Le net ralentissement de mon activité professionnelle, lié à la pandémie (mes clients sont pour certains en mode survie, les conseils en sécurité informatique ne sont pas vraiment leur priorité) me donne du temps pour travailler à l'une de mes fantaisies : de belles mises en page pour mes rapports.

Je n'utilise que LaTeX (et XeTeX depuis quelque temps) pour produire mes documents. Sans vraiment rien faire d'évolué, c'est très au-dessus, en qualité, d'un document produit par des logiciels-jouets. Je n'évoquerai que les références croisées avec pagination (y compris entre documents : je peux écrire « voir la table X à la page Y du document Z », les numérotations et pages sont mises à jour quand je modifie les documents) ou les tables des matières, globales et par chapitre (voire par section).

Depuis un moment, un point me titillait. Quand je produis (via du code, je ne fais pas ça à la main) des tables chronologiques d'événements, j'élimine les informations redondantes qui alourdissent la perception visuelle et occultent les données utiles. Donc, les dates ne sont pas présentes sur chaque ligne, seulement l'heure et l'événement. Lors d'un changement de date, bien sûr, une ligne spéciale est ajoutée pour dire « 14 juillet 1789 ». Elle est suivie des événements de cette journée.

Cette présentation est relativement digeste : les lignes ne contiennent pas d'information inutile, et une suite de lignes ne contient pas la répétition « 14/07/1789 », qui n'apporte rien.

Cependant, quand la table fait plusieurs pages, on perd cette information du jour courant. Il faut remonter une (ou plusieurs, parfois) pages en arrière pour retrouver la ligne indiquant la date à laquelle se rapportent les événements. C'est chiant.

J'ai donc besoin d'en-têtes variables : le premier entête est normal, les entêtes des pages suivantes doivent rappeler, outre l'information fixe de l'objet de la table et de la liste des colonnes, la date du jour dont j'affiche les données. Laquelle date peut changer plusieurs fois par page, ou jamais, selon les dites données.

Il m'a fallu une bonne demi-journée pour comprendre que longtable ne pouvait rien pour moi. J'ai galéré à peu près aussi longtemps pour comprendre le fonctionnement de supertabular[1], mais... j'y suis arrivé.

Cette fantaisie personnelle (je ne consomme pas mes rapports ; je pourrais donc considérer que le temps perdu par le lecteur à revenir en arrière pour déterminer le jour courant de l'événement qui l'intéresse ne me regarde pas) m'a pris une journée. Est-ce que cela sera utile pour mes clients ? Je n'en sais rien et ne le saurai probablement jamais. J'ai toutefois la satisfaction du travail bien fait.

Note

[1] À ma charge, je le reconnais, j'étais parti sur une idée bien trop complexe à base de macros redéfinies lors des changements de date.