La journée d'un utilisateur de LaTeX s'achève à l'instant où un coauteur lance : « envoie-le-moi en Word ». Le pont habituel s'appelle pandoc, un convertisseur qui circule entre Markdown, LaTeX et .docx — mais les deux sens n'ont rien de comparable. Word → LaTeX fabrique une structure qui n'existait pas : rien n'est perdu. LaTeX → Word fait l'inverse : il aplatit la structure patiemment construite — le lien entre \label et \ref, le sens d'un \newcommand, la forme d'une formule. LaTeX est un programme ; un .docx est l'enregistrement d'un résultat achevé. On peut exécuter un programme et en conserver le résultat, mais on ne reconstitue pas le programme à partir du résultat. Cette asymétrie est la colonne vertébrale de cette page.
Pourquoi LaTeX → Word perd plus que l'inverse
La réponse est simple : il n'y a rien à l'arrivée pour l'accueillir. Un .docx est pour l'essentiel un conteneur de paragraphes, de mises en forme de caractères et de noms de styles. Il n'a pas d'équivalent de \newcommand, ni de mécanique pour recalculer le numéro que désigne un \ref. pandoc traduit donc votre intention aussi loin que le vocabulaire de Word le permet, et abandonne le reste. Les numéros se figent sur la valeur du moment et les renvois deviennent de simples caractères plutôt que des liens vivants. Le sens inverse est bien plus commode. Un document Word n'a guère de structure au-delà des niveaux de titre, des listes et du gras : pandoc se contente de les projeter sur \section et itemize, et l'information ne peut que s'ajouter, jamais disparaître. Cette asymétrie est inscrite jusque dans l'histoire de pandoc — la sortie docx est arrivée avec pandoc 1.9 en 2012, et le lecteur docx, capable de comprendre le suivi des modifications, a été apporté par Jesse Rosenthal en 2014 : six et huit ans après le début du projet.
Les bases de pandoc : -f, -t et --pdf-engine
Se servir de pandoc consiste à nommer le format d'entrée avec -f (--from) et le format de sortie avec -t (--to). Au centre trône un unique arbre syntaxique abstrait : les readers construisent l'AST, les writers en produisent la sortie, et c'est pourquoi ajouter des formats ne multiplie pas le travail. Son auteur, John MacFarlane, est professeur de philosophie à l'université de Californie à Berkeley ; il a lancé le projet pour apprendre Haskell. La première version, publiée le 3 août 2006, faisait environ 3 000 lignes — et savait déjà convertir entre Markdown, reStructuredText, HTML et LaTeX. Elle en est aujourd'hui à plus de cinquante formats d'entrée et plus de soixante-dix de sortie. Ajouter --pdf-engine=lualatex mène d'un trait jusqu'au PDF via un moteur LaTeX, mais attention : pandoc ne fait pas partie de TeX Live. C'est un programme indépendant écrit en Haskell, à installer séparément.
pandoc -f markdown -t latex in.md -o out.tex # Markdown to LaTeX
pandoc in.md -o out.pdf --pdf-engine=lualatex # Markdown straight to PDF
pandoc in.tex -o out.docx # LaTeX to Word
pandoc in.docx -o out.tex # Word to LaTeXDeux autres prises permettent de façonner la sortie. --template remplace l'échafaudage extérieur des formats de sortie textuels (latex, html et consorts) : on y glisse son propre préambule ou son propre \documentclass. Il ne fait rien pour les formats binaires comme .docx — c'est le rôle de --reference-doc vu plus haut. L'autre prise est un filtre Lua (--lua-filter), qui réécrit directement l'AST, après lecture et avant écriture. Des tâches comme « transformer cet environnement en un autre titre » ou « supprimer tous les \todo{...} » sont bien plus sûres à ce stade qu'à coups d'expressions régulières sur la source LaTeX.
Ce que pandoc comprend de LaTeX, et s'il vous prévient
pandoc ne comprend qu'une partie de LaTeX, mais il n'est pas non plus entièrement muet. Pour les mathématiques, lorsqu'il rencontre quelque chose qu'il ne sait pas analyser, il émet l'avertissement Could not convert TeX math et laisse la formule en LaTeX dans la sortie : elle est transmise telle quelle, pas supprimée. Les macros maison résistent mieux qu'on ne le croit : quand l'extension latex_macros est active, pandoc, selon les termes du manuel officiel, analyse les définitions de macros LaTeX et applique les macros obtenues à toutes les mathématiques LaTeX et à tout le LaTeX brut. Un \newcommand{\R}{\mathbb{R}} passe donc sans peine. Ce qui disparaît vraiment en silence vient après. Un bloc que pandoc classe comme LaTeX brut — un environnement tikzpicture, par exemple — est conservé dans l'AST sous forme raw, mais les writers docx et HTML ne l'émettent pas. Aucun avertissement n'apparaît, contrairement au cas des formules : on ne s'en aperçoit qu'en ouvrant le fichier dans Word, la figure ayant purement et simplement disparu.
Régler l'apparence du fichier Word avec --reference-doc
Quand l'allure du .docx produit ne convient pas, ce n'est pas un gabarit qu'il faut toucher mais --reference-doc. Le manuel officiel expose le mécanisme sans détour : le contenu du docx de référence est ignoré ; seules ses feuilles de styles et ses propriétés de document — marges, format de page, en-tête et pied de page compris — servent au nouveau docx. Le fichier de référence est donc un échantillon de mise en forme vierge, non un texte type. La bonne méthode consiste ainsi à extraire le fichier de référence par défaut de pandoc, à l'ouvrir dans Word ou LibreOffice, à corriger les styles (Heading 1, Body Text, Table Caption, etc.) selon les consignes de soumission, puis à l'enregistrer et à le réutiliser. Le manuel ajoute que le docx de référence donne les meilleurs résultats lorsqu'il s'agit d'une version modifiée d'un docx produit par pandoc. Dans la commande d'extraction, -o doit précéder --print-default-data-file.
# 1. extract the default reference file (-o must come first)
pandoc -o custom-reference.docx --print-default-data-file reference.docx
# 2. edit the STYLES in Word or LibreOffice, then save
# 3. reuse it for every export
pandoc in.tex -o out.docx --reference-doc=custom-reference.docxLes options qui comptent vraiment pour Word → LaTeX
Un .docx est en réalité une archive ZIP remplie de XML : pandoc peut donc le lire directement. Le premier drapeau à ajouter à l'import est --extract-media=media, qui fait exactement ce que dit le manuel officiel : extraire vers ce répertoire les images et autres médias contenus dans le document source ou liés depuis lui, et réécrire les références d'images vers les fichiers extraits. Si on l'oublie, les figures n'apparaissent nulle part. Les fichiers renvoyés par un coauteur portent le plus souvent un suivi des modifications, et --track-changes=accept / reject / all décide de leur sort — all conserve tout, enveloppé dans des spans. L'option n'agit que sur le lecteur docx. La bibliographie se résout avec --citeproc et un fichier .bib, le style CSL se choisissant par --csl. Si les paragraphes coupés en dur dans la sortie vous gênent, ajoutez --wrap=none. Les styles de paragraphe de Word survivent sous forme de custom-style, ce qui donne prise pour faire correspondre les styles maison d'un auteur à des environnements LaTeX.
pandoc in.docx -o out.tex \
--extract-media=media \
--track-changes=accept \
--wrap=none
# with a bibliography and a journal style
pandoc in.docx -o out.tex --citeproc --bibliography=refs.bib --csl=apa.cslAller vers Word sans installer pandoc : la sortie ODT de tex4ht
Peu de gens le savent : TeX Live seul permet d'atteindre un format de traitement de texte. make4ht -f odt file.tex produit un .odt, c'est-à-dire un texte OpenDocument. En l'ouvrant, on découvre qu'il ne s'agit pas d'un collage d'images : les mathématiques y sont incorporées comme objets de formule ODF de type application/vnd.oasis.opendocument.formula, et à l'intérieur se trouve du MathML. Les équations restent donc des équations côté traitement de texte. mk4ht oolatex file.tex emprunte le même chemin (des articles anciens évoquent une commande autonome oolatex ; sous TeX Live 2024, elle s'invoque comme nom de tâche de mk4ht). Word sait ouvrir un texte OpenDocument, et pour plus de sûreté on peut l'ouvrir dans LibreOffice puis l'enregistrer en .docx. Quand l'objectif est de livrer des formules qui restent modifiables, cette voie surpasse parfois celle de pandoc.
# LaTeX to OpenDocument text, using only TeX Live
make4ht -f odt file.tex
# the same route under its historical name
mk4ht oolatex file.texDeux autres outils méritent au moins d'être cités. writer2latex est un programme Java libre qui convertit les documents LibreOffice/OpenOffice en LaTeX, et GrindEQ un convertisseur commercial Word ↔ LaTeX réputé pour bien traiter les équations MathType. Ni l'un ni l'autre ne fait partie de TeX Live, et aucun n'était installé sur la machine ayant servi à cet article : leur comportement n'a donc pas été vérifié ici. Si vous en adoptez un, essayez-le d'abord sur un petit extrait de votre fichier réel et vérifiez de vos yeux que formules et figures survivent.
Composer avec un coauteur qui exige Word
- Gardez LaTeX comme version de référence. Un
.docxest une sortie, pas un fichier de travail. Dès qu'une version modifiée directement dans Word devient l'original, chaque aller-retour la dégrade. - Transmettez des sections, pas l'article entier. N'envoyer que la section sur laquelle vous attendez des remarques se réintègre bien plus facilement qu'un
.docxgéant. - Lisez d'abord le retour avec
--track-changes=all. Voyez ce qui a changé, puis importez avecacceptou reportez à la main les seules modifications dans la source. - Tenez les figures sous forme de fichiers image dès le départ. TikZ disparaît en passant par pandoc ; une organisation où les figures sont exportées en SVG ou PDF et rappelées par
\includegraphicsrésiste à chaque conversion. - Si les formules doivent rester modifiables, essayez la voie ODT.
make4ht -f odtles conserve comme objets de formule MathML. - Enfermez les consignes de la revue dans un
--reference-doc. Reprendre à la main marges et styles dans Word est exactement ce qu'on oublie de refaire la deuxième fois.