docx2tex ── Word 原稿を LaTeX に変換する
はじめに
著者から届く原稿は Word(.docx)であることが多く、これを LaTeX で組み直す場面はよくあります。全文を手で打ち直すのは非効率なので、まず機械変換で下地を作り、そこから整えるのが現実的です。
docx2tex は、その下地作りに使えるツールのひとつです。.docx を入力に取り、LaTeX ソースを出力します。この記事では docx2tex の考え方と、変換の前後で何をすべきかを整理します。
docx2tex とは
docx2tex は、ドイツの組版会社 le-tex による変換基盤 transpect から派生したオープンソースのツールです。特徴は次のとおりです。
.docxを直接読む(後述のとおり.docxは ZIP でまとめられた XML)- Word のスタイルを手がかりに、段落・文字の役割を LaTeX の命令や環境へ対応づける
- 表・画像・脚注・箇条書きなど、文書構造をひととおり扱う
- 対応づけ(マッピング)は設定で調整できる
XProc パイプラインとして実装されており、動かすには Java が必要です。導入や実行方法の詳細は配布元のリポジトリ(transpect/docx2tex)の README が一次情報です。
Pandoc との使い分け
Word → LaTeX で広く使われるのは Pandoc です。
pandoc -f docx -t latex -o main.tex draft.docx
一行で動き、手軽です。個々の原稿を素早く LaTeX 化したいだけならこれで十分なことも多いでしょう。
docx2tex が向くのは、同じ体裁の原稿を継続的に変換するケースです。「Word のこのスタイル名は、この LaTeX 環境に」という対応を設定として作り込めるため、シリーズものの教材や、決まったテンプレートの学術文書で効果が出ます。逆に単発なら Pandoc の手軽さが勝ちます。どちらも「変換は下地作り」という位置づけは同じです。
.docx の中身
.docx は実体が ZIP アーカイブで、中に WordprocessingML という XML が入っています。拡張子を .zip にして展開すると word/document.xml などが見えます。
ここで重要なのは、変換ツールが拾えるのは構造の情報だという点です。
- 「見出し 1」スタイルが当たった段落 → 章見出しとして拾える
- 太字ボタンで太くしただけの「見出しっぽい行」 → ただの太字テキストにしかならない
つまり、元の Word 原稿がスタイルで書かれているほど、変換結果はきれいになります。
スタイルのマッピング
docx2tex の肝は、Word のスタイル名を LaTeX の出力へ対応づける設定です。たとえば次のような対応を定義します。
| Word のスタイル | LaTeX の出力 |
|---|---|
| 見出し 1 / 見出し 2 | \chapter{...} / \section{...} |
| 定理・命題・証明 | theorem / proof 環境 |
| ソースコード | verbatim や lstlisting 環境 |
| 図キャプション・表キャプション | \caption{...} |
| 本文(標準) | 通常の段落 |
この対応表を原稿の様式に合わせて用意しておけば、以降は同じ設定で繰り返し変換できます。設定を持たない部分は既定の変換にフォールバックします。
変換後にやること
機械変換で得られるのは、あくまで 7〜8 割の下地です。残りは手作業になります。校正・組版の観点で特に見るべき点を挙げます。
- 相互参照:Word のフィールド参照が
\ref/\labelにきれいに移らないことがある。番号を打ち直し、参照を貼り直す。 - 数式:Word の数式(OMML)から LaTeX への変換には限界がある。崩れた式は目視で確認して書き直す。
- 表:セル結合や罫線の凝った表は、変換結果をそのまま使わず
tabularを組み直したほうが速いことが多い。 - 体裁:余分な
\\、空段落、全角スペースによる字下げなどの「Word 由来のクセ」を掃除する。 - 画像:貼り込み画像は抽出されるが、解像度や配置は要確認。
ここまで整えたら、あとは latexmk で組版を回しながら仕上げていく通常の作業になります。変換結果は最初のコミットとして Git で版管理し、手直しを差分で追えるようにしておくと安全です。
変換しやすい Word 原稿の書き方
著者側で次を守ってもらえると、変換の精度が上がり、後工程がぐっと楽になります。
- 見出しや引用、コードは必ず段落スタイルを使う(手動で太字・サイズ変更しない)
- 字下げは Tab やスペースでなく段落設定で行う
- 数式は Word の数式エディタで入力する(画像で貼らない)
- 図表には Word のキャプション機能で番号を振る
- 半角・全角、ダッシュ類、引用符の使い方を原稿内で統一しておく
これは LaTeX へ移すかどうかに関わらず、原稿としての品質を上げる指針でもあります。
関連記事
- latexmk — 変換後の LaTeX を組み上げる
- Git と GitHub の基本 — 変換結果を版管理して手直しを差分で追う
- シェルスクリプト・sed・awk — 変換後に残る「Word 由来のクセ」を一括で掃除する
- TeX Live 入りコンテナと Makefile — 移行後の組版環境を固定する
まとめ
- docx2tex は
.docxを LaTeX に変換するツール。Word のスタイルを手がかりに構造を対応づける。 - 単発なら Pandoc、同じ様式を継続的に変換するならマッピングを作り込める docx2tex、と使い分ける。
- どちらも出力は下地。相互参照・数式・表・体裁の手直しが必ず要る。
- 変換の精度は元原稿の書き方で決まる。スタイルで書かれた Word ほどきれいに移る。
「機械変換で下地 → 手作業で整える → latexmk で組む」という流れに乗せれば、Word 原稿からの移行は現実的な作業になります。