LaTeX 수식 줄바꿈: split, aligned, align, multline 선택 방법

블로그EasyLaTeX게시일

LaTeX 수식을 줄바꿈하려면 amsmath를 불러오고 여러 행을 지원하는 환경을 사용합니다. 하나의 수식을 정렬하고 번호 하나를 붙이려면 equation과 split, 행마다 번호를 붙이려면 align, 정렬 기준이 없는 긴 수식에는 multline을 사용합니다. 일반 equation에 \\만 추가해서는 원하는 여러 행 배치가 되지 않습니다.

소스는 로컬 TeX Live·MiKTeX와 EasyLaTeX에서 공통으로 사용할 수 있습니다. 예제는 article, pdfLaTeX와 영문 본문을 사용하므로 한글 글꼴 설정이 필요하지 않습니다. 기존 한글 논문이나 투고 템플릿에서는 원래 문서 클래스와 엔진을 유지하고 필요한 수식 부분만 옮기세요.

컴파일할 수 있는 전체 예제

main.tex로 저장합니다. 제곱 오차 항과 두 정규화 항을 두 행에 배치하고 목적함수 전체에 번호 하나를 붙입니다.

LaTeX
\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로 쓰면 다음과 같습니다. 이후 코드는 기존 문서 본문에 넣는 조각입니다.

LaTeX
\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를 상수로 취급합니다.

LaTeX
\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를 사용합니다.

LaTeX
\begin{align}(x+1)^2 &= x^2+2x+1 \notag \\        &= x(x+2)+1. \label{eq:expansion}\end{align}

레이블은 번호를 남긴 행에 둡니다. 참조가 ??이면 로컬에서 다시 컴파일하고 중복 레이블을 확인합니다. 플랫폼에서는 현재 컴파일이 끝난 뒤 참조 결과를 확인하세요.

multline: 정렬 지점 없이 나누기

같은 목적함수를 & 없이 쓸 수 있습니다.

LaTeX
\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 structuresequation 안에 align을 넣었는지 확인
Misplaced alignment tab character &정렬 환경에서만 & 사용, multline에서는 제외
괄호 오류 또는 Missing \right.\left와 \right가 행 경계를 넘는지 확인
PDF는 만들어지지만 수식이 넘침분할 지점을 바꾸고 Overfull \hbox와 PDF 확인

잘못된 중첩 예입니다.

LaTeX
% Incorrect nesting\begin{equation}\begin{align}a &= b \\  &= c\end{align}\end{equation}

번호 하나가 필요하면 다음처럼 바꿉니다.

LaTeX
\begin{equation}\begin{split}a &= b \\  &= c\end{split}\end{equation}

\left(와 \right)는 정렬 행 경계를 넘어 짝지을 수 없습니다. 고정 크기 괄호를 쓸 수 있습니다.

LaTeX
\[\begin{aligned}F(x) &= \Bigl(a+b+c \\     &\qquad +d+e\Bigr).\end{aligned}\]

a부터 e는 더하는 항입니다. 수학 환경 안에 빈 문단을 넣지 말고 마지막 행에는 보통 \\를 추가하지 않습니다.

2단 논문에서는 각 행을 짧게

사용할 수 있는 폭은 한 단의 폭입니다. 데이터 항과 정규화 항을 정의하면 목적함수를 유지하면서 행을 줄일 수 있습니다.

LaTeX
\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로 저장하고 해당 폴더에서 아래 명령을 두 번 실행해 참조를 갱신합니다. 편집기의 빌드 버튼을 사용한다면 루트 파일과 엔진도 확인합니다.

Shell
pdflatex -interaction=nonstopmode -halt-on-error main.tex

main.log의 첫 오류부터 수정하고 넘침 경고를 확인합니다. 새 main.pdf에서 두 행, 번호 하나, ?? 없는 괄호 참조를 점검하세요. 온라인과 다르면 클래스, 엔진, 패키지 버전, 단 폭을 비교합니다.

EasyLaTeX의 빈 테스트 프로젝트에서 main.tex를 만들고 상단 주 파일 선택 목록에서 지정합니다. 편집기 설정에서 pdfLaTeX를 고른 뒤 컴파일합니다. 기존 논문에서는 원래 주 파일, 엔진, 템플릿을 유지하세요. 컴파일러는 프로젝트 안에서 사용자별로 저장되므로 공동 작업자도 자신의 설정을 확인해야 합니다.

현재 작업이 끝나면 PDF 미리보기를 확인하고, 오류는 Bug의 Original Log에서 조사합니다. AI Fix로 Agent에 요청하거나 Chat & Agent에서 다음과 같이 범위를 지정할 수 있습니다.

현재 목적함수를 두 행으로 나누고 번호 하나와 기존 레이블을 유지해 주세요. 모든 항, 계수, 괄호, 부호를 보존하고 주 파일과 기존 패키지를 먼저 확인하세요. 관련 수식 블록만 수정하고 컴파일 후 남은 오류나 넘침을 보고해 주세요.

소스 변경과 현재 컴파일 결과를 확인합니다. 이전 PDF가 보이는 것만으로 최신 컴파일 성공을 판단할 수 없습니다. 원래 식과 항별로 비교한 다음 PDF 또는 LaTeX 프로젝트를 내려받아 투고하거나 로컬에서 편집하세요.

관련 문서: 여러 행 수식과 정렬, 번호와 참조, EasyLaTeX 시작하기, 컴파일 오류 해결.

참고 문서