Tantôt, j’ai esssayé de me remettre à notre template LaTeX pour esssayer de voir ce que je pouvais faire pour les derniers problèmes en dates. Et j’en suis arrivé à une trise conclusion: c’est beaucoup trop compliqué pour ce que c’est. J’utilise LATEX au quotidien, il permet facilement d’obtenir des documents de qualités, mais globalement, il nécessite de construire son document petit à petit, d’utiliser des hacks pas piqués des hannetons, et globalement, il vieillis.
Pour moi, les principaux avantages de LaTeX pour nous sont les suivants:
- Il est multiplate-forme et génère (bien) des PDFs. Il se trouve que c’est pas une qualité si répendue que ça, puisqu’il la partage avec les éditeurs de textes et les navigateurs.
- La typographie est nickel. En même temps, il a été conçu pour ça.
- Les maths sont supportées par défaut, et composent une part non négligeable de nos contenus.
Les défauts sont les suivants:
- C’est une dépendance qui pèse son poids, malgré des efforts pour n’installer que les packages nécessaires.
- Le support d’UTF-8 est toujours partiel, malgré l’utilisation de LuaLaTeX.
- Le support des tableaux est pour le moins compliqué. C’est typiquement un truc qui même quand on rédige à la main demande de l’ajustement manuel.
- LaTeX gère assez mal les machins imbriqués dans les trucs eux-mêmes intégrés dans des bidules. En ce qui nous concerne, mettre un bloc de code dans un tableau est globalement hasardeux, et la gestion des blocs secrets imbriqué est capricieuse. De manière générale, malgré l’apparente simplicité du Markdown, il est quand même relativement facile de prendre LaTeX en défaut, et le rendu n’est pas très satisfaisant.
- Et quand bien même, tel le bon compilateur qu’il est, il n’est pas très tolérant aux erreurs, ce qui fait qu’un certain nombre de contenus n’ont tout simplement pas de PDFs.
Quels sont les solutions à notre disposition ? Une killer-feature serait d’avoir un export en format OpenDocument, mais ça demanderai énormément de travail (quoique ce n’est jamais "que" du XML zippé). Une autre serait de tout miser sur l’EPUB, mais je ne sais pas si c’est utilisé que ça.
Une alternative, qui m’avait parue encore limitée à l’époque1, serait d’employer weasyprint. Avant de présenter les avantages, je me permettrais de rappeler que le but n’est pas simplement de faire un CTRL+P d’un fichier HTML (avec CSS custom, évidement). En particulier, ce que je recherche dans ce genre d’export, c’est que les saut de pages ne soient pas (trop) fait n’importe comment, qu’on aie des liens internes et une table des matières, et, par exemple, que les notes de bas de page soient effectivement en bas de page et non à la fin du document.
Or, il se trouve que Weasyprint semble permettre tout ça, grâce à du CSS spécifique qui n’est même pas spécifique à Weasyprint, puisqu’il s’agit de commandes issues du W3C pour gérer des média différents de ceux des pages webs.2
Quant aux autres avantages de cet outil, ils sont les suivants:
- C’est du Python derrière, donc ça s’interface bien avec notre code le cas échéant.
- Le but serait de générer du HTML un peu tuné, ce qui demande un moindre effort, vu que zMarkdown le fait déjà par ailleurs.
- HTML/CSS, c’est le bon combo pour avoir plus d’aide qu’avec LaTeX que peu de personnes ici connaissent
Les points d’attention étant les suivants:
- Weasyprint tente réellement d’interpréter le HTML et le CSS, donc possède son propre support du CSS, qui n’est pas parfait. Normalement, on utilise pas des choses trop poussées, mais c’est à savoir.
- Pour ce qui est des maths, gros point d’interrogation. Le support du MathML est pas très poussé (en même temps, le support MathML des navigateur ne l’est pas spécialement non plus) et les gens trichent généralement en transformant les maths en SVG grâce à MathJaX … Sauf qu’on est passé à KaTeX! Donc ça demande des tests.
Sinon, il y a d’autres alternatives listées ici, avec une liste de ce qui est supporté ou pas. Weasyprint n’est donc pas la seule alternative
Bref, dites moi ce que vous en pensez!