LaTeX 문서를 손으로 빌드하려면 “compile → bibliography → compile → compile”을 반복하고, 언제 무엇을 다시 실행해야 하는지 기억해야 합니다. 자동 빌드는 그 판단을 도구에 맡기는 방식입니다. 의존 관계를 추적하고 필요한 단계만 실행하며, 감시 모드에서는 저장하는 순간 다시 빌드합니다. 이 페이지에서는 그 워크플로를 다룹니다(도구 자체의 사용법은 “Build tools” 참조).
자동 빌드란 무엇인가
상호 참조, 목차, 참고문헌, 색인이 있으면 컴파일은 여러 번 필요하고 그 사이에 biber나 makeindex가 들어갑니다. 자동 빌드 도구는 이 순서와 횟수를 스스로 판단하고, 보조 도구를 알맞은 시점에 호출하며, 출력이 안정될 때까지 계속 실행합니다. 실제로 입력하는 것은 명령 하나뿐입니다. 표준은 latexmk이고, 선언적으로 작성하는 대안은 llmk입니다.
latexmk로 자동화하기
latexmk -pdf document.tex 한 번이면 필요한 횟수만큼 컴파일하고 bibtex/biber와 makeindex를 호출한 뒤, 결과가 안정될 때까지 반복합니다. 프로젝트별 설정은 .latexmkrc에 둘 수 있습니다(엔진 교체, 일본어 uplatex + dvipdfmx 구성 등). 공동 작업에서는 이 설정 파일을 저장소에 커밋하고 “이 문서는 이 명령으로 빌드한다”는 프로젝트 약속으로 삼으면, 에디터나 OS가 달라도 같은 PDF를 재현하기 쉬워집니다. 개별 옵션은 “Build tools”를 보세요.
latexmk -pdf document.tex # 必要な手順を自動で回す / runs all the needed steps먼저 결정할 것은 PDF를 만드는 엔진 경로입니다. 영어만 있는 짧은 문서는 pdflatex로 충분한 경우가 많고, 일본어 텍스트나 OpenType 폰트를 쓰면 보통 upLaTeX + dvipdfmx 또는 LuaLaTeX를 선택합니다. 그 판단을 .latexmkrc에 적어 두면 에디터 버튼, 터미널, CI가 모두 같은 경로를 사용합니다. 문서가 길어질수록 이 고정된 빌드 경로의 효과가 커집니다.
# .latexmkrc — upLaTeX + dvipdfmx の例 / example route
$latex = 'uplatex -interaction=nonstopmode -halt-on-error %O %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;저장할 때마다 다시 빌드 — latexmk -pvc
작성 중 가장 유용한 모드는 -pvc(preview continuously)입니다. latexmk는 의존하는 모든 소스 파일을 감시합니다. 본문 파일뿐 아니라 \input/\include로 불러온 .tex 파일과 이미지 파일까지 포함됩니다. 그중 하나를 저장할 때마다 자동으로 다시 빌드하고 뷰어를 새로 고칩니다. 문서용 “개발 서버”처럼, 저장하면 즉시 결과가 보입니다.
latexmk -pdf -pvc document.tex # 監視して保存ごとに自動更新 / watch and auto-rebuild on save바뀐 부분만 처리 — 증분 빌드
latexmk가 불필요한 재실행을 피할 수 있는 이유는 의존 관계를 기록하기 때문입니다. 실행할 때마다 각 소스 파일의 상태를 .fdb_latexmk라는 데이터베이스에 저장하고, -recorder가 만드는 .fls 파일(그 실행에서 읽고 쓴 파일 목록)을 사용해 어떤 입력과 출력이 관련되는지 정확히 파악합니다. 다음에 실행할 때 어떤 단계는 입력이 바뀐 경우에만 다시 실행됩니다. 아무것도 바꾸지 않았다면 아무 일도 일어나지 않고, 작은 수정이면 필요한 단계만 실행됩니다. 그래서 재빌드가 빠릅니다.
llmk도 마찬가지로 빌드를 자동화합니다. 설정을 llmk.toml(또는 문서 안의 magic comments)에 선언적으로 쓰기 때문에, 누가 어떤 환경에서 실행해도 같은 절차가 됩니다. 재현성이 뛰어나고 공동 작업이나 배포에 잘 맞습니다. latexmk는 로그와 의존 관계에서 필요한 재실행을 추론하는 도구, llmk는 문서 프로젝트 안에 처리 워크플로를 명시하는 도구로 나누어 생각하면 선택하기 쉽습니다.
워크플로에 넣기
-pvc는 작성 중에 쓰는 도구이고, 일반 latexmk 실행은 제출 전 확인이며, latexmk -C는 오래된 생성물에 의존하지 않는지 확인하는 정리 작업입니다. 특히 공동 작업에서는 clean build가 되지 않는 문서가 다른 사람의 환경에서도 깨질 가능성이 큽니다. 저장 시 즉시 미리보기만 믿지 말고, 중요한 시점마다 한 번씩 정리한 뒤 다시 빌드하는 습관을 들이면 마지막 PDF 제출 때 당황하지 않습니다.
- 작성 중 →
latexmk -pdf -pvc: 저장할 때마다 자동 업데이트. - 설정을 프로젝트에 포함 → 재현성을 위해
.latexmkrc/llmk.toml을 저장소에 둡니다. - 배포 전 최종 확인 →
latexmk -C로 출력을 지운 뒤 clean build. - 서버나 CI에서 빌드 → “CI” 페이지를 보세요.