Word文書生成 — md→pandoc→docx パイプライン
Markdown(中国語または翻訳された英語)から、研究グループの参照原稿スタイルに準拠したWord文書を生成します。pandoc変換とPython zipfile後処理(docx XMLを直接読み書き)で構成されます。
6つの鉄則(最初に暗記すること)
\tag{n}はpandocによって静かに削除される:生成前に\tag{…}を\qquad\text{(n)}に置き換えて、番号が数式の右端に配置されるようにします。mdソースは標準の\tag表記をそのまま保持します。- 暗黙的な図を無効にする:
-f markdown-implicit_figuresを指定し、画像の代替テキストは空にします。そうしないとpandocが代替テキストから重複キャプションを自動生成します。 - 後方参照の構文は言語によって異なる:Pythonの
re.subは\1/\g<1>を使用します。PowerShell/JS は$1を使用します。誤った習慣を持ち込むとリテラル($1)が出力されます。 - 数式フォントは要注意領域:OMML数式ランは
w:ascii="Cambria Math"に依存します。文書全体のフォント置換は<m:oMath>…</m:oMath>で分割し、外側のみに適用し、Cambria Mathのカウントが変わっていないことを確認する必要があります。 - 上書き前に検証する:一時コピー → 検証(機能カウント +
minidom.parseStringによるXML整形式性 + pandoc読み戻し) →os.replace。実際の2つのバグはまさにこのゲートで捕捉されました。 - スタイルシートの編集はボディXMLの編集に優先する:pandocは
--reference-docからスタイルとsectPrを継承します。reference-doc分析の手順は参考文献§3.5にあります。
コンテンツマップ
詳細(pandoc層の落とし穴、OOXML/regex層の落とし穴、エンジニアリング実践、2回目の数式レイアウトとキャプションルールの落とし穴、再利用可能なスクリプト)は references/word-pandoc-pitfalls.md にあります。抽出されたフォーマット仕様自体(ページ/タイポグラフィ/見出し/キャプション/数式/表)は references/word-format-spec.md にあります。
再利用可能なスクリプト(scripts\ に同梱)
_rebuild_word.py:完全なmd→docxパイプライン(\tag前処理、スタイル注入、後処理、書き込み前検証)_fix_docx_format.py:手動編集されたdocxに対して3つの書式項目(TNR、画像中央揃え、表グリッド線)をその場で修正- 呼び出し例(原稿ディレクトリから実行。入力と出力は相対パス):
python <skill-path>\scripts\_rebuild_word.py input.md output.docx
どちらを選ぶか:ユーザーがWordファイルを手動編集した場合 → その場修正のみ(再生成は編集を失う)。ユーザーがmdからの新規ビルドを希望する場合 → 完全パイプライン。最初に確認するか、~$ ロックファイルの有無を確認してドキュメントが編集中かどうかを判断します。
スコープの境界
- Wordコメント/変更履歴(docxエディタMCPの領域):このスキルの対象外
- 原稿フォーマット仕様自体(ページ/タイポグラフィ/見出し規則):このスキルの
references/word-format-spec.mdに含まれる - スクリプト実行時のPowerShell引用符の落とし穴:references/word-pandoc-pitfalls.md §3.4 を参照