Après que ma bien-aimée Nausicaa ait préparé sa thèse d’histoire médiévale en LaTeX, notamment grâce à quelques trucs et astuces de LaTeX appliquées aux thèses en sciences humaines, le livre qui en est l’adaptation sera bientôt publié. Dans ce billet, qui sera la conclusion de cette petite série, je vous propose les péripéties de l’adaptation de sa thèse au format livre.
Après le long travail que représente une thèse, on serait tenté de croire que la faire publier au format livre serait une formalité. Le texte est en effet déjà prêt, alors cela ne devrait-il pas passer comme une lettre à la Poste ?
En réalité, c’est un peu plus difficile que cela. Je passe les détails sur le choix de l’éditeur : cela mériterait un billet de blog dédié au sujet. Puis, après avoir soumis la thèse telle quelle au comité de lecture, celui-ci donne un avis positif ou négatif. Mais un avis positif n’est que le début de l’aventure, car dans le cas de Nausicaa, son éditeur a demandé de réduire considérablement le texte pour ne pas dépasser les huit cent mille signes.
S’ajoute à ces contraintes une question technique de taille : la maison d’édition ne saurait que faire de fichiers LaTeX. Leur procédé de soumission impose en effet le format Word. Dans ce billet, nous verrons donc les différents obstacles techniques qu’il a fallu surmonter pour passer de la thèse au livre.
Passer de LaTeX à Word : Pandoc à la rescousse
Les formats de fichiers TeX et DOCX n’ont strictement rien à voir. TeX est en fait un langage assez bas niveau mais qu’il est possible d’enrichir avec des commandes ad hoc, jusqu’à former un mini-langage d’aide à la génération d’éléments structurels (délimiter les chapitres, les sections, etc.) et d’aide à la rédaction. C’est, du moins, ce qu’est LaTeX par rapport à TeX. DOCX, quant à lui, est une archive ZIP contenant une collection de fichiers XML, dont l’un comporte un texte dans une structure similaire au HTML ou à DocBook dans l’idée, mais bien plus complexe. J’avais déjà dit ailleurs ce que je pensais de ce format. Bref : ce sont deux mondes à part et pour des raisons techniques complexes, le passage de LaTeX à DOCX allait forcément entraîner des pertes d’information.
J’étais donc assez pessimiste quant à la fiabilité d’éventuels convertisseurs de LaTeX vers DOCX. Mais étant donné que la thèse faisait plus de six cents pages une fois imprimée et contenait au total 2 014 occurrences de \cite{}
et \footcite{}
, il était hors de question de faire cette conversion à la main. Il nous fallait donc impérativement un outil automatique qui sache en outre traiter les références bibliographiques.
Heureusement, après avoir essayé plusieurs outils différents, j’ai fini par trouver Pandoc qui, en plus d’être le convertisseur qui marchait le mieux, est activement développé et cochait toutes les cases de ce petit cahier des charges. Il est en outre programmé en Haskell, un langage que j’ai étudié peu de temps avant la soutenance, ce qui m’a permis de l’adapter ponctuellement à nos besoins.
Pandoc est en fait décomposé en deux parties : l’outil de conversion lui-même, la commande pandoc
, auquel on peut adjoindre un autre appelé pandoc-citeproc
s’il faut convertir des références bibliographiques. Pour cela, pandoc-citeproc
lit une base de données bibliographique au format BibTeX et un fichier de style bibliographique au format CSL (le même format que celui utilisé par Zotero) pour produire les références dans le style souhaité.
L’architecture logicielle de pandoc
me plaît bien, d’ailleurs : il est en effet conçu comme un compilateur. D’abord, pandoc
utilise une front-end pour convertir le texte source dans une représentation intermédiaire, puis une back-end pour transformer cette structure intermédiaire dans le format cible. Ainsi, ajouter la prise en charge d’un format de fichiers ne nécessite l’écriture que d’une front-end et d’une back-end pour ce format et il devient alors possible de le convertir depuis ou vers n’importe quel autre format déjà pris en charge par pandoc
.
Une conversion fidèle mais un peu laborieuse
J’ai donc chargé le style bibliographique des Presses Universitaires de Rennes (PUR), différent du style ISO 690 utilisé dans la thèse, et fait un essai sur un petit extrait de la thèse. J’avais utilisé les dernières versions de ces deux outils à cette époque-là : Pandoc version 2.10.1 et pandoc-citeproc version 0.17.0.2. Le résultat était plutôt convaincant, comme on peut le voir sur la comparaison que j’ai reproduite.
Et ainsi, j’obtenais un résultat qui, à première vue, semblait plutôt fidèle. La perte de la mise en forme lors de la conversion ne nous importait peu, mais le texte et les notes de bas de page y sont. On notera que les références bibliographiques sont également converties du style ISO 690 au style des PUR.
La conversion de la thèse complète ne s’est pas passée entièrement sans accrocs, cependant.
Premièrement, le document Word contenait des guillements à l’anglo-saxonne (“ ”), alors qu’il fallait des guillements français (« »), car Pandoc convertissait les commandes \enquote{}
(du package csquotes) sans tenir compte de la langue du document. Je ne me souviens plus comment j’ai résolu ce problème, mais il me semble que j’ai dû préciser à Pandoc que le document doit être en français (avec l’option de ligne de commandes -M lang=fr-FR
).
Deuxièmement, la source LaTeX était un peu trop complexe pour Pandoc. Elle est composée d’un fichier racine, these.tex
, dont les réglages de forme se trouvaient dans un fichier auxiliaire these-style.sty
référencé dans le fichier principal par une commande \usepackage{these-style}
. Chaque chapitre se trouve dans un fichier séparé et these.tex
les référence, dans le bon ordre, avec des commandes \include
. Las, quand je donnais à Pandoc le fichier these.tex
tel quel, la conversion échouait avec un message d’erreur vraiment pas clair :
Error at "source" (line 107, column 16):
unexpected end of input
\end{document}
^
La solution a donc été de préparer une version allégée de these.tex
appelée these-light.tex
. J’ai copié le contenu de these-style.sty
directement dans these.tex
avant d’en retirer pratiquement toutes les commandes de mise en forme. Parmi les \usepackage
, je n’ai gardé que l’essentiel, dont biblatex, babel, csquotes, tabu, hyperref, graphicx et quelques autres. Avec cette modification, Pandoc était content.
En fin de compte, après s’être placé dans le répertoire racine de la thèse LaTeX et y avoir téléchargé le fichier CSL des PUR, j’ai fini par trouver cette ligne de commande exacte pour convertir la thèse de LaTeX vers Word :
TEXINPUTS=. pandoc \
these-light.tex \
--filter pandoc-citeproc \
-M lang=fr-FR \
-M csl=presses-universitaires-de-rennes.csl \
-o these.docx
Un gain de temps à relativiser
À première vue, la conversion avait bien marché. In fine, seuls quelques tableaux faits avec l’environnement tabulary n’ont pas été converties correctement.
Il y avait aussi quelques problèmes dans les notes de bas de page. Par exemple, dans certaines références, il manquait des espaces entre l’abréviation « coll. » et le nom de la collection. Par ailleurs, la thèse utilisait beaucoup de raccourcis comme « ibid. » ou « op. cit. » et la moindre modification du texte a des répercussions sur ces références-là.
Or, la cible des huit cent mille signes imposée par l’éditeur imposait des coupes parfois très lourdes dans le texte. Les notes de bas de page étaient donc à reprendre intégralement quoi qu’il arrivait.
Il en émergeait aussi le besoin de compter les signes. Or LaTeX ne permet pas de facilement compter les signes d’un document fini. Une recherche sur Internet donne quelques scripts qui s’y essayent, mais je doute de leur fiabilité : avec TeX, il n’est pas possible d’accéder à une représentation intermédiaire où toutes les macros ont été substituées (afin de pouvoir, notamment, compter les caractères dans les notes de bas de page, également inclus dans le décompte). Un outil comme Pandoc serait à mon avis mieux à même d’en donner une estimation.
C’est ce besoin de surveiller constamment le nombre de signes qui a imposé le workflow consistant à convertir la thèse au format DOCX d’abord et la réduire ensuite. Sinon, le travail aurait probablement été fait dans l’ordre inverse : réduire le texte en intervenant sur la source LaTeX d’abord, puis convertir en DOCX ensuite.
Dans tous les cas, après une conversion comme celle-ci, il est indispensable d’examiner intégralement le résultat afin de s’assurer que rien n’a été perdu au moment de la conversion. Pour cette raison, convertir d’abord et réduire ensuite était peut-être la bonne méthode.
Conclusion : Markdown comme format source ?
Les éditeurs qui imposent des formats de fichiers qui, sans l’existence d’alternatives libres, auraient imposé l’achat d’un logiciel onéreux et non libre, sont un effet émergent regrettable de la mainmise qu’ont certains éditeurs de logiciels sur le marché des suites bureautiques, alors qu’il existe des systèmes de préparation mieux adaptés aux travaux scientifiques, mais moins connus en dehors des milieux techniques.
Or, pour des publications scientifiques préparées sur ordinateur, il est justement important de pouvoir conserver les textes dans des formats de fichiers pérennes et peu susceptibles de tomber dans l’obsolescence. Les formats reposant sur du texte brut, combiné à des outils externes transformant ce texte brut en un format lisible, ont donc tout intérêt à être favorisés.
Pandoc pourrait peut-être bien apporter une solution à cela : en permettant à l’auteur de rédiger son texte dans l’outil de son choix puis de convertir à la demande dans les formats requis par les éditeurs, nul besoin d’enfermer son propos dans des formats difficiles à lire par autre chose que le logiciel de l’éditeur. Pour ce faire, Pandoc propose une variante de Markdown avec des extensions propres à Pandoc, conçu pour que tout document préparé dans ce format puisse être converti sans trop de pertes dans l’un des autres formats cible de Pandoc – y compris LaTeX.
Pour ces raisons, si je devais moi-même faire une thèse, j’envisagerais sérieusement de rédiger le manuscrit en Markdown-Pandoc, puis de passer par une conversion vers LaTeX pour en faire un joli PDF. Le résultat sera toujours aussi esthétiquement plaisant grâce à la puissance de TeX, mais cela me donne davantage de souplesse vis-à-vis des exigences des éditeurs lorsqu’il sera temps de la publier. La méthodologie est décrite dans l’article de Dennis Tenen et Grant Wythoff intitulé Sustainable Authorship in Plain Text using Pandoc and Markdown, qui montre qu’en sciences humaines tout du moins, cette approche pourrait bien être le meilleur de plusieurs mondes.
Commentaires
Poster un commentaire
Poster un commentaire