paper2tex — 학술 논문 Word-to-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. 템플릿 인식 부캡션(subfigures) 및 매끄러운 플로트 배치로 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 조립 → 템플릿 인식 부캡션 및 subfloat가 포함된 결정론적 조립
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에서 추출 내부 동작, 기호 글꼴 매핑 및 컴파일러 자동 오류 수정 분류를 확인하세요.
- 에이전트 명령어: AGENTS.md에서 단계별 에이전트 명령어를 확인하세요.
- 설치 가이드: SETUP.md에서 플랫폼별 설치 방법(Antigravity, Claude Code, Cursor, OpenCode)을 확인하세요.