Générateur de documents Word — le pipeline md→pandoc→docx
Génère des documents Word à partir de Markdown chinois (ou anglais traduit) stylés selon le manuscrit de référence d'un groupe de recherche : conversion pandoc + post-traitement Python zipfile qui lit et écrit directement le XML du docx.
Six règles d'or (à mémoriser en premier)
\tag{n}est silencieusement ignoré par pandoc : avant la génération, remplacez\tag{…}par\qquad\text{(n)}pour que le numéro soit placé à l'extrémité droite de l'équation ; la source Markdown conserve l'orthographe standard\tagintacte.- Désactiver les figures implicites :
-f markdown-implicit_figures, le texte alternatif de l'image reste vide — sinon pandoc génère automatiquement une légende en double à partir du texte alternatif. - La syntaxe de backreference fait des ravages entre les langues : Python
re.subutilise\1/\g<1>; PowerShell/JS utilisent$1. Adopter la mauvaise habitude produit le littéral($1). - Les polices d'équations sont un champ de mines : les exécutions mathématiques OMML dépendent de
w:ascii="Cambria Math"; toute substitution de police à l'échelle du document doit scinder sur<m:oMath>…</m:oMath>et ne toucher que l'extérieur, en vérifiant que le nombre de Cambria Math reste inchangé. - Vérifier avant d'écraser : copie temporaire → vérification (comptages de fonctionnalités + validité XML via
minidom.parseString+ relecture pandoc) →os.replace; deux vrais bugs ont été détectés exactement par cette barrière. - Éditer la feuille de style plutôt que le corps XML : pandoc hérite des styles et de
sectPrde--reference-doc; le manuel de dissection du document de référence se trouve dans les références §3.5.
Plan du contenu
Les détails complets (pièges de la couche pandoc, pièges de la couche OOXML/regex, pratiques d'ingénierie, deuxième série de pièges de mise en page des équations et de règles de légendes, scripts réutilisables) se trouvent dans references/word-pandoc-pitfalls.md. La spécification de format extraite elle-même (page/typographie/titres/légendes/équations/tableaux) se trouve dans references/word-format-spec.md.
Scripts réutilisables (fournis dans scripts\)
_rebuild_word.py: le pipeline complet md→docx (prétraitement\tag, injection de style, post-traitement, vérification avant écriture) ;_fix_docx_format.py: corrige trois éléments de formatage sur place sur un docx édité manuellement (TNR, centrage des images, grilles de tableau) ;- Invocation (à exécuter depuis le répertoire du manuscrit ; les entrées et sorties sont des chemins relatifs) :
python <chemin-skill>\scripts\_rebuild_word.py input.md output.docx.
Comment choisir entre eux : l'utilisateur a édité manuellement le fichier Word → correction sur place uniquement (la régénération perd les modifications) ; l'utilisateur souhaite une nouvelle construction à partir du Markdown → pipeline complet. Demandez d'abord, ou vérifiez la présence d'un fichier de verrouillage ~$ pour savoir si le document est ouvert pour édition.
Limites du périmètre
- Commentaires/suivi des modifications Word (le territoire de l'éditeur docx MCP) : hors de cette compétence ;
- La spécification de format du manuscrit elle-même (conventions de page/typographie/titres) : portée par
references/word-format-spec.mdde cette compétence ; - Les pièges de quotation PowerShell lors de l'exécution des scripts : voir references/word-pandoc-pitfalls.md §3.4.