수식 한 줄을 여러 단계로 풀어 쓸 때, 등호가 가지런히 정렬되어 있으면 식의 흐름이 한눈에 들어옵니다. Word 에서는 탭과 공백을 손으로 맞추다가 컴파일·내보내기 한 번에 어긋나기 일쑤지만, LaTeX 의 align 환경 은 & 위치 하나로 모든 행의 정렬점을 잡아 줍니다.
이전 글 #4 에서 행렬과 cases 의 & 가 열 구분자였다면, align 의 & 는 정렬 표시자 입니다. 같은 기호가 환경에 따라 의미가 달라진다는 점이 처음에는 헷갈리지만, 한 번 익히면 두 환경을 자유롭게 오갈 수 있습니다.
1. 왜 align — equation 의 한계
수식 한 줄짜리라면 equation 으로 충분합니다.
1
2
3
\begin{equation}
(a+b)^2 = a^2 + 2ab + b^2
\end{equation}
문제는 유도 과정 입니다. 위 식을 한 줄에 다 적지 않고 단계별로 풀어 보이고 싶다면, 각 단계의 등호를 같은 세로선 위에 정렬해야 가독성이 살아납니다.
equation 으로 시도해 보면 정렬이 안 됩니다.
1
2
3
4
5
6
% 시도 1 — 줄바꿈만 넣어도 정렬은 안 됨
\begin{equation}
(a+b)^2 = (a+b)(a+b) \\
= a^2 + ab + ba + b^2 \\
= a^2 + 2ab + b^2
\end{equation}
equation 은 한 줄짜리 식만 가정하기 때문에 \\ 줄바꿈이 위 코드에서는 오류를 냅니다 (또는 정렬이 깨진 채로 출력). 등호를 세로로 맞추려면 여러 줄을 한 번에 다루면서 정렬점을 표시할 수 있는 환경 — align — 이 필요합니다.
align 은 amsmath 패키지가 제공합니다. 프리앰블에 다음 한 줄이 있어야 합니다 (#4 와 같음).
1
\usepackage{amsmath}
2. 기본 정렬 — & 가 정렬 표시자
align 의 핵심은 두 가지 기호입니다.
&— 이 자리가 세로 정렬점. 보통 등호 앞 에 둡니다.\\— 줄 바꿈.
1
2
3
4
5
\begin{align}
(a+b)^2 &= (a+b)(a+b) \\
&= a^2 + ab + ba + b^2 \\
&= a^2 + 2ab + b^2
\end{align}
출력:
\[\begin{align} (a+b)^2 &= (a+b)(a+b) \\ &= a^2 + ab + ba + b^2 \\ &= a^2 + 2ab + b^2 \end{align}\]세 줄 모두 & 자리의 등호가 같은 세로선 위에 놓입니다. 각 줄에는 자동으로 (1), (2), (3) 번호가 매겨집니다. & 위치는 등호 바로 앞 이 관례입니다 — 시각적으로 등호 정렬이 가장 자연스럽기 때문입니다.
2.1 들여쓰기는 자유 — 정렬은 & 가 결정
위 예에서 두 번째·세 번째 줄의 들여쓰기는 단지 사람이 읽기 쉽게 한 것일 뿐, LaTeX 가 정렬에 사용하는 건 오직 & 위치입니다. 다음 두 코드는 출력이 완전히 동일합니다.
1
2
3
4
5
6
7
8
9
% 사람 친화적 들여쓰기
(a+b)^2 &= (a+b)(a+b) \\
&= a^2 + ab + ba + b^2 \\
&= a^2 + 2ab + b^2
% 들여쓰기 없음 — 출력 동일
(a+b)^2 &= (a+b)(a+b) \\
&= a^2 + ab + ba + b^2 \\
&= a^2 + 2ab + b^2
코드 가독성을 위해 들여쓰기는 두는 편이 좋습니다.
3. align* — 번호 없이 정렬만
수식 번호가 필요 없다면 별표 붙은 align* 을 씁니다. 문법은 동일하고 번호만 빠집니다.
1
2
3
4
\begin{align*}
2x + 3y &= 7 \\
x - y &= 1
\end{align*}
출력:
\[\begin{align*} 2x + 3y &= 7 \\ x - y &= 1 \end{align*}\]위 예처럼 연립방정식 을 보일 때 align* 이 유용합니다. 정렬점 & 를 등호 앞에 두면 두 식의 등호가 세로로 맞춰져 시각적으로 깔끔해집니다.
casesvsalign*연립방정식: #4 의cases는 함수의 조건부 정의 (“x ≥ 0 일 때 …”) 용입니다. 같은 변수에 대한 두 식을 연립한다면align*이 맞습니다. 둘은 외양은 비슷해 보여도 의미가 다릅니다.
equation* 과 마찬가지로, 번호가 필요 없는 자리에는 별표 환경을 쓰는 것이 관례입니다. 본문에서 식을 참조하지 않는 단순 보조 식은 번호를 빼는 편이 깔끔합니다.
4. 일부 줄만 번호 빼기 — \notag
align 안의 모든 줄에 번호가 붙는 것이 기본이지만, 가끔 중간 유도 줄 은 번호를 빼고 최종 결과 줄 에만 번호를 남기고 싶을 때가 있습니다.
1
2
3
4
5
6
7
8
\begin{align}
\sin^2\theta + \cos^2\theta
&= \frac{e^{i\theta} - e^{-i\theta}}{2i} \cdot \frac{e^{i\theta} - e^{-i\theta}}{2i}
+ \frac{e^{i\theta} + e^{-i\theta}}{2} \cdot \frac{e^{i\theta} + e^{-i\theta}}{2} \notag \\
&= \frac{-(e^{2i\theta} - 2 + e^{-2i\theta})}{-4}
+ \frac{e^{2i\theta} + 2 + e^{-2i\theta}}{4} \notag \\
&= 1
\end{align}
이 식은 세 줄짜리 유도지만 번호는 마지막 줄에만 (1) 로 붙습니다. \notag 를 줄 끝 (\\ 직전) 에 적으면 그 줄의 번호만 빠집니다. \nonumber 도 같은 동작을 합니다 — 둘 중 어느 쪽을 써도 무방합니다.
본문에서 참조할 식이 한 줄짜리라면 위 패턴이 가장 깔끔합니다. 매 줄 번호가 다 붙어 있으면 본문에서 어느 번호로 참조해야 할지 헷갈리는 문제를 피할 수 있습니다.
5. 정렬점이 두 개 이상 — & … &
align 은 짝수 개의 & 를 두면 여러 정렬점 을 만들 수 있습니다. 각 & 가 번갈아 가며 “정렬점 → 열 구분자 → 정렬점 → 열 구분자” 역할을 합니다.
1
2
3
4
\begin{align*}
a &= b & c &= d \\
e &= f & g &= h
\end{align*}
출력:
\[\begin{align*} a &= b & c &= d \\ e &= f & g &= h \end{align*}\]두 쌍의 식이 한 줄에 나란히 정렬됩니다. 각 쌍의 등호가 같은 세로선 위에 맞춰집니다. 표 같은 정돈된 모양이 필요할 때 유용합니다.
& 개수 | 역할 |
|---|---|
| 1 개 | 정렬점 한 군데 (가장 흔함) |
| 3 개 | 정렬점 두 군데 — 두 쌍의 식을 한 줄에 |
| 5 개 | 정렬점 세 군데 — 거의 안 씀 |
& 가 홀수 개여야 한다는 점에 주의하세요. 짝수 개면 마지막 & 가 열 구분으로 남아 출력이 어색해집니다.
6. 줄 간격 미세 조정 — \[2pt]
기본 줄 간격이 너무 좁거나 넓을 때는 \\ 뒤에 대괄호로 추가 수직 공간을 줄 수 있습니다.
1
2
3
4
\begin{align}
a &= b \\[6pt]
c &= d
\end{align}
6pt 자리에 원하는 수치를 적습니다. 분수나 행렬을 포함한 줄이 위·아래로 너무 붙어 보일 때 자주 씁니다. 단위는 pt, em, ex, mm 등 LaTeX 의 표준 길이 단위를 모두 받습니다.
마이너스 값 (\\[-3pt]) 으로 줄 간격을 좁힐 수도 있지만, 너무 좁히면 위·아래 식이 겹쳐 보일 수 있으니 보수적으로 사용합니다.
7. 자주 하는 실수 세 가지
7.1 첫 줄에 & 빠뜨림
align 의 모든 줄은 같은 개수의 & 를 가져야 합니다. 첫 줄에서 & 를 빼면 정렬이 깨지고 컴파일러가 경고를 띄웁니다.
1
2
3
4
5
6
7
8
9
10
11
% 틀린 예
\begin{align}
(a+b)^2 = (a+b)(a+b) \\ % & 없음
&= a^2 + 2ab + b^2
\end{align}
% 올바른 예
\begin{align}
(a+b)^2 &= (a+b)(a+b) \\
&= a^2 + 2ab + b^2
\end{align}
7.2 빈 줄로 환경 분리
align (그리고 equation) 환경 안에 빈 줄을 넣으면 컴파일 오류 가 납니다.
1
2
3
4
5
6
7
8
9
10
11
12
% 틀린 예 — 빈 줄 때문에 에러
\begin{align}
a &= b \\
c &= d
\end{align}
% 올바른 예 — 줄 사이 빈 줄 없음
\begin{align}
a &= b \\
c &= d
\end{align}
수식 환경 안에 단락 구분의 의미가 없기 때문입니다. 빈 줄로 코드를 보기 좋게 끊고 싶다면 % 로 주석 처리한 빈 줄을 쓰세요 — % 만 단독으로 있는 줄은 LaTeX 가 무시합니다.
7.3 마지막 줄 끝에 \ 붙이기
align 의 마지막 줄 뒤에 \\ 를 붙이면 출력에 어색한 빈 줄이 추가됩니다. 마지막 행은 \\ 없이 끝내는 것이 깔끔합니다.
1
2
3
4
5
6
7
8
9
10
11
% 어색한 빈 줄이 생김
\begin{align}
a &= b \\
c &= d \\
\end{align}
% 권장
\begin{align}
a &= b \\
c &= d
\end{align}
#4 의 행렬 도 같은 원칙입니다.
정리
| 패턴 | 환경·명령어 | 비고 |
|---|---|---|
| 한 줄 식 + 번호 | equation | 단순 식 |
| 한 줄 식 + 번호 없음 | equation* | 보조 식 |
| 여러 줄 정렬 + 번호 | align | 유도 과정 |
| 여러 줄 정렬 + 번호 없음 | align* | 연립방정식 |
| 특정 줄만 번호 빼기 | \notag / \nonumber | \\ 직전에 |
| 정렬점 여러 개 | & ... & (홀수 개) | 두 쌍 한 줄에 |
| 줄 간격 미세 조정 | \\[2pt] 같은 형식 | 보수적으로 |
align 한 환경만 손에 익히면 유도 과정·연립방정식·정의의 단계별 풀이까지 대부분의 다중 행 수식이 깔끔하게 정돈됩니다. 핵심은 두 가지 — & 는 등호 앞에, \\ 로 줄을 끊는다. 이 두 규칙과 별표 환경·\notag 의 번호 제어만 알면 본문에서 식이 어떻게 보일지 머릿속으로 거의 예측할 수 있습니다.
다음 글에서는 이렇게 자동 매겨진 번호를 본문에서 참조 하는 방법 — \label 로 이름 붙이기와 \eqref 로 본문에서 부르기 — 를 정리합니다.
이전 글: #4 LaTeX 행렬과 연립방정식 — pmatrix·bmatrix·cases 다음 글: #6 LaTeX 수식 번호와 참조 — \label과 \eqref