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. 套用目標會議主題(或分析自訂模板壓縮檔)
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/
工作流程階段
階段 0:圖形查詢 → 向使用者詢問 figures/ 資料夾或 "extract" 確認
階段 1:預檢 → 檢查 pandoc、tectonic/latexmk、lxml、Pillow、pymupdf
階段 2:前處理 → 移除追蹤修訂、修正 Symbol 字型陷阱、對應功能變數代碼
階段 3:提取 → OMML 數學、表格、圖形、參考文獻的並行提取器
階段 4:主題規格 → 比對配方 (IEEE/ACM/LNCS) 或透過 Firecrawl 研究
階段 5:AST 組裝 → 使用主題感知子圖與子浮動的確定性組裝
階段 6:編譯迴圈 → 引擎選擇 (XeLaTeX/pdfLaTeX) + 自動化日誌自動修正
階段 7:驗證 → 清單差異比對 + 特殊字元稽核 + 視覺化 QA
階段 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)。