LaTeX 수식 줄바꿈: split, aligned, align, multline 선택 방법
LaTeX 수식을 줄바꿈하려면 amsmath를 불러오고 여러 행을 지원하는 환경을 사용합니다. 하나의 수식을 정렬하고 번호 하나를 붙이려면 equation과 split, 행마다 번호를 붙이려면 align, 정렬 기준이 없는 긴 수식에는 multline을 사용합니다. 일반 equation에 \\만 추가해서는 원하는 여러 행 배치가 되지 않습니다.
소스는 로컬 TeX Live·MiKTeX와 EasyLaTeX에서 공통으로 사용할 수 있습니다. 예제는 article, pdfLaTeX와 영문 본문을 사용하므로 한글 글꼴 설정이 필요하지 않습니다. 기존 한글 논문이나 투고 템플릿에서는 원래 문서 클래스와 엔진을 유지하고 필요한 수식 부분만 옮기세요.
컴파일할 수 있는 전체 예제
main.tex로 저장합니다. 제곱 오차 항과 두 정규화 항을 두 행에 배치하고 목적함수 전체에 번호 하나를 붙입니다.
\documentclass[a4paper,11pt]{article}\usepackage{amsmath}\begin{document}\begin{equation}\begin{split}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{split}\label{eq:objective}\end{equation}See Equation~\eqref{eq:objective}.\end{document}n은 양의 정수, w, w_0, x_i, y_i는 실수이며 \lambda, \mu는 음이 아닌 값입니다. 둘째 행은 덧셈의 연속입니다. &는 정렬 지점, \\는 행 구분입니다. 소스 파일에서 엔터를 누르는 것만으로 PDF 수식이 줄바꿈되지는 않습니다.
정렬과 번호에 따라 환경 선택하기
환경 선택 개념도. 번호 개수를 먼저 정한 다음 정렬 여부를 선택합니다. 선은 수식 내용을 나타냅니다.
| 필요한 배치 | 환경 | 번호와 사용 위치 |
|---|---|---|
| 하나의 긴 수식을 정렬하여 나누기 | equation + split | 바깥 환경에서 번호 하나 부여 |
| 더 큰 수식 안의 정렬 블록 | aligned | 수학 모드 안에서 사용, 바깥에서 번호 제어 |
| 여러 수식이나 단계를 개별 참조 | align | 기본적으로 행마다 번호, 독립 사용 |
| 공통 정렬 지점 없는 긴 수식 | multline | 전체에 번호 하나, 독립 사용 |
| 번호 없음 | align*, multline*, 또는 \[...\] 안의 aligned | 정렬 필요에 따라 선택 |
여기서 split은 행마다 & 하나를 사용하고 표시 수식 전체를 차지합니다. aligned는 여러 정렬 열 쌍을 지원하며 바깥 괄호와 조합할 수 있습니다. 둘 다 줄바꿈 위치를 자동으로 정하지 않습니다.
split과 aligned: 번호 하나 유지하기
첫 예제는 split입니다. 같은 목적함수를 aligned로 쓰면 다음과 같습니다. 이후 코드는 기존 문서 본문에 넣는 조각입니다.
\begin{equation}\begin{aligned}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{aligned}\label{eq:aligned}\end{equation}aligned 자체는 번호를 만들지 않습니다. equation 안에서는 번호 하나, \[...\] 안에서는 번호 없이 표시합니다. aligned*나 split* 대신 바깥 환경으로 번호를 제어합니다.
소스와 배치의 대응 개념도. D(w)는 데이터 오차 항, R(w)는 두 정규화 항의 합입니다. 정렬 지점과 행 구분을 표시했습니다.
\quad는 들여쓰기를 추가합니다. 행 앞의 더하기 기호에 이항 연산자 간격을 유지하려면 &\quad {}+ ...를 사용할 수 있습니다. 소스 공백을 반복해서 행을 맞추지 마세요.
align: 목적함수와 도함수를 따로 참조하기
w로 미분할 때 x_i, y_i, w_0, \lambda, \mu를 상수로 취급합니다.
\begin{align}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 + \lambda w^2 + \mu(w-w_0)^2 \label{eq:loss} \\J'(w) &= \frac{2}{n}\sum_{i=1}^{n}x_i(w x_i-y_i) + 2\lambda w + 2\mu(w-w_0). \label{eq:gradient}\end{align}본문에서는 \eqref{eq:loss}, \eqref{eq:gradient}로 참조합니다. 두 행은 각각 별개의 등식입니다. 한 덧셈식이 다음 행으로 이어질 뿐이라면 등호를 추가하지 않아야 합니다.
모든 번호를 없애려면 align*, 특정 행만 생략하려면 해당 행에 \notag를 사용합니다.
\begin{align}(x+1)^2 &= x^2+2x+1 \notag \\ &= x(x+2)+1. \label{eq:expansion}\end{align}레이블은 번호를 남긴 행에 둡니다. 참조가 ??이면 로컬에서 다시 컴파일하고 중복 레이블을 확인합니다. 플랫폼에서는 현재 컴파일이 끝난 뒤 참조 결과를 확인하세요.
multline: 정렬 지점 없이 나누기
같은 목적함수를 & 없이 쓸 수 있습니다.
\begin{multline}J(w) = \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ + \lambda w^2 + \mu(w-w_0)^2.\label{eq:multline}\end{multline}이 예제의 기본 오른쪽 번호 설정에서는 첫 행이 왼쪽, 마지막 행이 오른쪽에 배치되며 양 끝에는 정해진 여백이 있습니다. 중간 행은 가운데 정렬이고 번호는 마지막 행 오른쪽에 놓입니다. 문서 클래스와 amsmath 옵션에 따라 배치가 달라질 수 있습니다. 번호를 없애려면 multline*을 쓰고 equation이나 \[...\] 안에는 넣지 않습니다.
줄바꿈이 실패할 때 확인할 항목
| 증상 또는 로그 | 확인과 수정 |
|---|---|
Environment align undefined | 주 파일의 프리앰블에서 amsmath를 불러오고 로컬 설치 확인 |
equation 안의 \\가 줄을 나누지 않음 | split·aligned 추가 또는 독립 align·multline 사용 |
Erroneous nesting of equation structures | equation 안에 align을 넣었는지 확인 |
Misplaced alignment tab character & | 정렬 환경에서만 & 사용, multline에서는 제외 |
괄호 오류 또는 Missing \right. | \left와 \right가 행 경계를 넘는지 확인 |
| PDF는 만들어지지만 수식이 넘침 | 분할 지점을 바꾸고 Overfull \hbox와 PDF 확인 |
잘못된 중첩 예입니다.
% Incorrect nesting\begin{equation}\begin{align}a &= b \\ &= c\end{align}\end{equation}번호 하나가 필요하면 다음처럼 바꿉니다.
\begin{equation}\begin{split}a &= b \\ &= c\end{split}\end{equation}\left(와 \right)는 정렬 행 경계를 넘어 짝지을 수 없습니다. 고정 크기 괄호를 쓸 수 있습니다.
\[\begin{aligned}F(x) &= \Bigl(a+b+c \\ &\qquad +d+e\Bigr).\end{aligned}\]a부터 e는 더하는 항입니다. 수학 환경 안에 빈 문단을 넣지 말고 마지막 행에는 보통 \\를 추가하지 않습니다.
2단 논문에서는 각 행을 짧게
사용할 수 있는 폭은 한 단의 폭입니다. 데이터 항과 정규화 항을 정의하면 목적함수를 유지하면서 행을 줄일 수 있습니다.
\begin{equation}\begin{split}J(w) &= D(w)+R(w), \\D(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2, \\R(w) &= \lambda w^2+\mu(w-w_0)^2.\end{split}\label{eq:compact}\end{equation}실제 투고 템플릿에서 폭, 번호, 괄호를 다시 확인합니다. \resizebox로 전체를 축소하기보다 수학적 구조에 맞게 나누세요. 두 단에 걸친 수식은 출판사 지침을 따릅니다.
로컬과 EasyLaTeX에서 확인하기
컴파일 흐름 개념도. 두 경로 모두 최신 PDF의 여백과 번호를 확인합니다.
로컬에서는 전체 예제를 main.tex로 저장하고 해당 폴더에서 아래 명령을 두 번 실행해 참조를 갱신합니다. 편집기의 빌드 버튼을 사용한다면 루트 파일과 엔진도 확인합니다.
pdflatex -interaction=nonstopmode -halt-on-error main.texmain.log의 첫 오류부터 수정하고 넘침 경고를 확인합니다. 새 main.pdf에서 두 행, 번호 하나, ?? 없는 괄호 참조를 점검하세요. 온라인과 다르면 클래스, 엔진, 패키지 버전, 단 폭을 비교합니다.
EasyLaTeX의 빈 테스트 프로젝트에서 main.tex를 만들고 상단 주 파일 선택 목록에서 지정합니다. 편집기 설정에서 pdfLaTeX를 고른 뒤 컴파일합니다. 기존 논문에서는 원래 주 파일, 엔진, 템플릿을 유지하세요. 컴파일러는 프로젝트 안에서 사용자별로 저장되므로 공동 작업자도 자신의 설정을 확인해야 합니다.
현재 작업이 끝나면 PDF 미리보기를 확인하고, 오류는 Bug의 Original Log에서 조사합니다. AI Fix로 Agent에 요청하거나 Chat & Agent에서 다음과 같이 범위를 지정할 수 있습니다.
현재 목적함수를 두 행으로 나누고 번호 하나와 기존 레이블을 유지해 주세요. 모든 항, 계수, 괄호, 부호를 보존하고 주 파일과 기존 패키지를 먼저 확인하세요. 관련 수식 블록만 수정하고 컴파일 후 남은 오류나 넘침을 보고해 주세요.
소스 변경과 현재 컴파일 결과를 확인합니다. 이전 PDF가 보이는 것만으로 최신 컴파일 성공을 판단할 수 없습니다. 원래 식과 항별로 비교한 다음 PDF 또는 LaTeX 프로젝트를 내려받아 투고하거나 로컬에서 편집하세요.
관련 문서: 여러 행 수식과 정렬, 번호와 참조, EasyLaTeX 시작하기, 컴파일 오류 해결.