대규모 LaTeX 프로젝트의 구조, 장 미리보기, 명명 규칙
큰 프로젝트는 수정 위치가 불명확하고 컴파일이 느리며 패키지 설정이 흩어질 때 관리 비용이 커집니다. 파일 역할을 나누고 서문을 모으며 이름을 일관되게 사용하세요.
역할별 폴더
project/├── main.tex % 클래스와 장 순서├── preamble.tex % 패키지와 프로젝트 명령├── chapters/│ ├── intro.tex│ ├── method.tex│ └── results.tex├── tables/ % \input으로 읽는 표 소스└── figures/아래 메인 파일은 지정한 위치의 preamble.tex와 세 장 파일이 필요합니다.
% main.tex\documentclass[11pt]{article}\usepackage{kotex}\input{preamble}% 장 미리보기에만 주석 해제, 최종에는 주석 유지% \includeonly{chapters/method}\begin{document}\include{chapters/intro}\include{chapters/method}\include{chapters/results}\end{document}클래스, 공통 설정, 장 순서는 메인이 맡고 장 수정은 보통 chapters/의 한 파일에서 합니다.
패키지 로딩은 한곳에서
여러 곳에서 다른 옵션으로 불러오면 Option clash for package ...가 날 수 있습니다.
% preamble.tex: 프로젝트 패키지를 여기서 로딩\usepackage{amsmath,amssymb}\usepackage{graphicx}\usepackage{booktabs}\usepackage[hidelinks]{hyperref}본문 전에 \input으로 읽고 hyperref 등 순서를 확인하세요. 장에서 같은 패키지를 다시 불러오지 않습니다.
\includeonly로 부분 확인
출력할 장을 줄이지만 제외 장의 번호와 참조는 작업 사이에 보장되지 않는 보조 정보에 의존합니다. \include에만 적용되며 \input은 제한하지 않습니다.
% 방법 장만 미리보기\includeonly{chapters/method}보조 정보가 없으면 ??가 나오고 장 길이가 바뀌면 제외 페이지 번호가 오래될 수 있습니다. 제출 전 제한을 제거하고 전체를 컴파일하세요.
라벨 접두어
| 개체 | 접두어 | 예 |
|---|---|---|
| 절 | sec: | \label{sec:method} |
| 그림 | fig: | \label{fig:pipeline} |
| 표 | tab: | \label{tab:ablation} |
| 수식 | eq: | \label{eq:update} |
중복 라벨은 컴파일을 멈추지 않아도 잘못된 참조를 만들 수 있습니다. 검색용 접두어와 별개로 이름은 고유해야 합니다. 플로트의 라벨은 캡션 뒤에 두세요. 반대면 오류 없이 이전 카운터를 참조할 수 있습니다.
경로·라벨·전체 컴파일 확인
수정 후 파일 트리와 포함 목록, 참조 대상을 비교하고 전체 컴파일 필요성을 판단합니다.
| 메시지 | 원인 | 조치 |
|---|---|---|
There were multiply-defined labels. | 중복 이름 | 검색·변경 후 전체 갱신 |
Reference 'fig:x' undefined | 라벨 누락·제외 장 | 전체 컴파일과 위치 확인 |
Label(s) may have changed. | 참조 변경 | 반복 처리 대기, 계속되면 조사 |
Option clash for package hyperref. | 옵션 충돌 | 서문 한곳에 통합 |
\include cannot be nested. | 장 안에서 다시 포함 | 내부는 \input 사용 |
코드 재사용, 오류 해결, 안전한 AI 수정을 참고하세요.
정리
메인 구조, 장, 표 소스, 이미지를 나누고 패키지는 한곳에서 관리합니다. 부분 미리보기 후 제출 전 전체를 컴파일하고 검색 가능한 고유 라벨을 사용하세요.
전체 폴더를 EasyLaTeX에 가져와 main.tex를 선택합니다.