paper2tex — 学術論文 Word → LaTeX 変換ツール
学術的な .docx ファイルを、IEEE、ACM、Springer LNCS、Elsevier、NeurIPS、ICML、CVPR、MDPI、Nature といった任意の会議・ジャーナル形式に合わせた、出版可能かつコンパイル可能な LaTeX 文書に変換します。
必須ステップ 0: 図の出所確認
抽出パイプラインを実行する前に、エージェントは必ずユーザーに次の質問をしなければなりません:
「高解像度またはベクター画像(例:
./figures)が入った専用のfigures/フォルダがありますか? それとも、Word 文書から埋め込み画像を直接抽出しますか?(フォルダのパスを入力するか、'extract' と返信してください)」
- ユーザーが
'extract'と返信した場合:python -m scripts.extract input.docx work_dir/を実行します。パイプラインは.docxから埋め込み図面を自動的に抽出、正規化、自動回転します。 - ユーザーがフォルダパス(例:
./figuresまたはC:/assets/figs)を指定した場合:python -m scripts.extract input.docx work_dir/ --figures-dir <path>を実行します。パイプラインは、指定された高解像度ベクター(.pdf、.svg)およびラスター(.png、.jpg、300 DPI 以上)ファイルを文書の図にマッチングさせます。
クイックスタート
エンドツーエンドの抽出およびアセンブリパイプラインを実行します:
# 1. システムツールチェーンの確認
python -m scripts.preflight
# 2. コンテンツ、数式(OMML)、表、図、参考文献の抽出
python -m scripts.extract input.docx work_dir/ [--figures-dir <path>]
# 3. 対象の会議テーマを適用(またはカスタムテンプレート ZIP を解析)
python -m scripts.template_spec "ieee-conference" work_dir/
# 4. テンプレート対応のサブフィギュアとシームレスなフロート配置で main.tex をアセンブル
python -m scripts.assemble work_dir/
# 5. コンパイルとビジュアル QA 検証の実行
python -m scripts.compile work_dir/main.tex
python -m scripts.visual_qa work_dir/main.pdf work_dir/
ワークフローステージ
STAGE 0: 図の確認 → ユーザーに figures/ フォルダまたは "extract" の確認を問い合わせ
STAGE 1: 事前チェック → pandoc、tectonic/latexmk、lxml、Pillow、pymupdf の確認
STAGE 2: 前処理 → 変更履歴の除去、Symbol フォントの問題修正、フィールドコードのマッピング
STAGE 3: 抽出 → OMML 数式、表、図、参考文献の並列抽出
STAGE 4: テーマ指定 → レシピ(IEEE/ACM/LNCS)に合わせるか、Firecrawl で調査
STAGE 5: AST アセンブル → テンプレート対応のサブフィギュアとサブフロートによる決定論的アセンブル
STAGE 6: コンパイルループ → エンジン選択(XeLaTeX/pdfLaTeX)+ 自動ログ修正
STAGE 7: 検証 → マニフェスト差分 + 特殊文字監査 + ビジュアル QA
STAGE 8: 納品 → submission/ フォルダ(.tex、.bib、figures/、.pdf、report.md)
コアアーキテクチャの保証
- 100% 原文通りの散文保存: Markdown AST を直接 LaTeX にマッピング。段落の欠落、言い換え、テキストの改変は一切行いません。
- OpenXML 回転と反転の正規化:
<a:xfrm rot="...">を正確に解析し、画像の横倒れや回転を防止します。 - テンプレート対応サブフィギュア:
IEEEtranでは\usepackage[caption=false,font=footnotesize]{subfig}と\subfloatを、acmart/llncsではsubcaptionを使用します。 - サブキャプション分解:
(a)、(b)、(c)を含む複合キャプションを個別のパネルキャプションに分割します。 - シームレスなフロート配置: セクション前の不適切な
\FloatBarrier注入を排除。フロートは空白ページを発生させずに自然に配置されます([!t]、[b])。 - 決定論的 OMML 数式: Word の数式は MathML XSLT を介して直接 LaTeX に変換。LLM によるテキスト再生成は一切行いません。
ドキュメントとリファレンス
- レイアウトとフロートルール: LAYOUT_GUIDELINES.md を参照(図のサイズ、サブフィギュアのジオメトリ、表の書式設定)
- テーマと Firecrawl 調査: THEMES_AND_TEMPLATES.md を参照(会場レシピとオンラインテンプレート調査)
- テクニカルリファレンス: REFERENCE.md を参照(抽出内部、Symbol フォントマッピング、コンパイラ自動修正分類)
- エージェント指示: AGENTS.md を参照(ステップバイステップの指示)
- セットアップガイド: SETUP.md を参照(プラットフォーム別セットアップ: Antigravity、Claude Code、Cursor、OpenCode)