구분 기호(\left \right)

수식의 괄호나 세로줄 안에 키가 큰 분수나 행렬이 들어가면, 보통 크기의 구분 기호는 너무 작아 보입니다. LaTeX에는 두 가지 도구가 있습니다. 내용의 높이에 맞춰 구분 기호를 자동으로 늘리는 \left\right, 그리고 손으로 네 단계 크기를 고르는 \big \Big \bigg \Bigg입니다. 이 페이지에서는 둘의 사용 구분, 한쪽만 비우는 “보이지 않는 구분 기호”, 늘어나는 중간 구분선 \middle, 그리고 구분 기호 목록을 정리합니다.

\left\right로 자동 크기 조정

가장 쉬운 방법은 여는 구분 기호 앞에 \left, 닫는 구분 기호 앞에 \right를 두는 것입니다. LaTeX가 내용의 높이를 재고, 구분 기호를 내용을 딱 덮을 만큼 늘립니다. \left 또는 \right 바로 뒤에 쓴 문자가 실제 구분 기호입니다. 소괄호는 ( ), 대괄호는 [ ], 중괄호는(아래 설명처럼) \{ \}, 꺾쇠괄호는 \langle \rangle을 씁니다.

latex
\[
  \left( \frac{a^2 + b^2}{c^2} \right)
  \qquad
  \left[ \sum_{k=1}^{n} \frac{1}{k} \right]
\]

첫 번째는 높은 분수를 감싸도록 소괄호가 위아래로 늘어나 분수 높이에 정확히 맞습니다. 그대로 ( \frac{a^2+b^2}{c^2} )라고 쓰면 괄호는 보통 한 글자 높이뿐이라 큰 분수 옆에 작은 괄호가 떠 있는 모양이 됩니다. 두 번째도 마찬가지로 합 기호가 들어간 내용에 맞춰 대괄호가 늘어납니다.

중요한 규칙이 두 가지 있습니다. 첫째, \left\right는 반드시 쌍으로 써야 합니다. 하나를 빠뜨리면 컴파일 오류가 납니다. 둘째, 짝이 되는 구분 기호가 같은 종류일 필요는 없습니다. \left( … \right]처럼 소괄호로 열고 대괄호로 닫는 반열린 구간 표기도 가능합니다. \left\right로 감싼 범위는 하나의 묶음(그룹)이 되며, 그 안의 출력에는 줄바꿈을 넣을 수 없습니다. 긴 수식을 줄바꿈하려면 정렬 환경의 각 줄에서 쌍을 완결해야 합니다.

\left\right는 편리하지만, 원하는 것보다 약간 큰 구분 기호를 고르는 경향이 있습니다. 또한 각 구분 기호가 inner atom으로 취급되기 때문에 연산자나 관계 기호 주변에서 기대하는 세밀한 간격이 어긋날 수 있습니다. 항상 사용하면 괄호가 지나치게 커 보이거나 여러 줄에서 크기가 맞지 않을 수 있으므로, 아래의 수동 크기와 나누어 씁니다.

보이지 않는 구분 기호(.로 한쪽 비우기)

\left\right는 항상 쌍으로 써야 하지만, 때로는 한쪽에만 구분 기호를 표시하고 싶을 수 있습니다. 그럴 때는 비우고 싶은 쪽의 \left 또는 \right 바로 뒤에 마침표 .를 둡니다. .는 “아무것도 그리지 않는 구분 기호”(null delimiter)로 취급되어 쌍 규칙을 만족하면서 그쪽에는 아무것도 표시하지 않습니다.

latex
\[
  \left. \frac{dy}{dx} \right|_{x=0}
  \qquad
  \left. \frac{x^3}{3} \right|_{0}^{1}
\]

이는 평가 세로줄(“x=0에서 평가”)을 만드는 대표적인 방법입니다. 왼쪽의 \left.는 아무것도 그리지 않고, 오른쪽의 \right|만 내용 높이에 맞춰 늘어난 세로줄이 되며 오른쪽 아래에 x=0이 붙습니다. 두 번째 예에서는 세로줄이 분수 x^3/3의 높이에 맞춰 늘어나고, 아래에 0, 위에 1이 붙어 정적분 평가에서 익숙한 모양이 됩니다. f(x) \big|_{0}^{1}처럼 수동 크기의 세로줄을 쓰는 방법도 있으며(다음 절), 이쪽은 짝이 되는 \left가 필요 없습니다.

늘어나는 구분선 \middle

집합 조건 제시 표기 { x | condition }처럼 바깥쪽 구분 기호 안쪽에 세로줄 같은 구분선을 두고, 그것도 괄호와 같은 높이까지 늘리고 싶을 때가 있습니다. \left\right 사이에는 \middle 뒤에 임의의 구분 기호를 원하는 만큼 둘 수 있습니다. \middle|라고 쓰면 바깥 중괄호와 같은 높이로 늘어난 세로줄이 가운데에 들어갑니다.

latex
\[
  \left\{\, x \in \mathbb{R} \;\middle|\; x^2 < \frac{1}{2} \,\right\}
\]

이 예에서는 바깥 중괄호가 내용(키 큰 분수 포함)에 맞춰 늘어나고, \middle|의 세로줄도 같은 높이까지 늘어나 좌우 조건을 깔끔하게 나눕니다. 그냥 |를 쓰면 세로줄이 한 글자 높이에 머물러 늘어난 중괄호와 비교해 눈에 띄게 작아 보입니다. \middle\left/\right와 함께 있을 때만 사용할 수 있으며 단독으로는 쓸 수 없습니다.

수동 크기: \big \Big \bigg \Bigg

\big \Big \bigg \Bigg네 단계 중에서 크기를 직접 고르게 해 줍니다. 이 순서대로 커지며, \big(처럼 바로 뒤에 구분 기호를 씁니다. \big은 보통 구분 기호보다 조금 큰 정도라 줄 간격을 넓히지 않고 인라인에서도 사용할 수 있습니다. \Big은 대략 1.5배 높고, \bigg / \Bigg는 더 커서 별행 수식에 더 알맞습니다.

왜 자동 \left\right 대신 수동 크기를 고를까요? 주된 이유는 세 가지입니다. 첫째, 여러 줄에서 크기를 맞출 수 있음입니다. \left\right는 각 줄의 내용 높이에 따라 크기가 바뀌므로 쌓인 식에서 괄호 높이가 달라지기 쉽지만, 수동 크기는 모든 줄을 같은 단계로 고정할 수 있습니다. 둘째, 지나치게 큰 괄호를 피할 수 있음입니다. 내용이 조금만 높아도 \left\right가 한 단계 큰 괄호를 고르는 경우, \big 정도로 억제할 수 있습니다. 셋째는 간격 제어이며, 여기서는 아래의 l/r 형태가 핵심입니다.

\big 같은 그대로의 형태는 구분 기호를 “ordinary atom”으로 조판하므로 앞뒤에 불필요한 간격이 들어갑니다. 이를 여는/닫는 괄호로 올바르게 조판하려면 여는 쪽에는 \bigl, 닫는 쪽에는 \bigr을 사용합니다(l은 left, r은 right이며, 각 크기에 \Bigl/\Bigr, \biggl/\biggr, \Biggl/\Biggr가 있습니다). l/r이 붙은 형태는 여는/닫는 구분 기호로 취급되어 앞 항과의 사이에 불필요한 공백을 넣지 않습니다. 또한 조건제시 표기의 세로줄처럼 가운데에 관계 기호로 둘 때는 \bigm| 같은 m(middle) 형태를 쓰면 양쪽에 관계 기호로서 적절한 간격이 들어갑니다.

latex
\[
  \bigl( a \bigr)
  \quad
  \Bigl( b \Bigr)
  \quad
  \biggl( c \biggr)
  \quad
  \Biggl( d \Biggr)
\]
\[
  \biggl\{\, x \bigm| x > 0 \,\biggr\}
\]

첫 줄은 같은 소괄호가 왼쪽에서 오른쪽으로 단계적으로 커지는 모습을 보여 줍니다(내용 높이와 관계없이 지정한 단계의 높이로 조판됨). 둘째 줄은 \biggl\{\biggr\}로 크기를 고정한 중괄호 안에 \bigm| 세로줄을 관계 기호로 둔 조건제시 표기입니다. 수동 크기는 \bigl( \Bigl[ \,\cdots\, \Bigr] \bigr)처럼 중첩 괄호에서 안쪽 쌍을 한 단계 크게 하여 구분하기 쉽게 만드는 데도 적합합니다.

구분 기호 목록

표에는 \left/\right 또는 \big 계열 바로 뒤에 둘 수 있는 주요 구분 기호를 정리했습니다. 소괄호, 대괄호, 슬래시는 키보드에서 직접 입력하지만, { }는 LaTeX 예약 문자이므로 수식 안에서도 구분 기호로 중괄호를 내려면 \{ \}라고 써야 합니다. 단일 세로줄은 |(\vert도 같음), 이중 세로줄은 \|(\Vert도 같음)입니다. 꺾쇠괄호는 반드시 \langle \rangle을 사용하고 키보드의 < >로 대신하지 마세요. < >는 관계 기호(부등호)로 취급되어 앞뒤에 관계 기호용 간격이 들어가므로 괄호처럼 보이지 않습니다.

명령출력비고
( )소괄호 ( )직접 입력. 가장 일반적
[ ]대괄호 [ ]직접 입력. \lbrack \rbrack도 같음
\{ \}중괄호 { }{ }는 예약 문자. 괄호로는 \{ \}라고 씀
\langle \rangle꺾쇠괄호 ⟨ ⟩내적이나 브라-켓에 사용. < >와 다름
| 단일 세로줄 |절댓값 등. \vert도 같음
\|이중 세로줄 ‖노름 등. \Vert도 같음
\lfloor \rfloor바닥 함수 ⌊ ⌋내림(가장 큰 정수)
\lceil \rceil천장 함수 ⌈ ⌉올림(가장 작은 정수)
\backslash역슬래시 \몫집합 등에 사용. /는 짝의 오른쪽
\uparrow \downarrow위/아래 화살표 ↑ ↓이중선: \Uparrow \Downarrow. \updownarrow도 있음
\lgroup \rgroup그룹 괄호 ⟮ ⟯굵은 둥근 괄호 모양. 큰 표시용
\lmoustache \rmoustache콧수염 괄호 ⎰ ⎱큰 중괄호의 위/아래 절반

절댓값, 노름과 \DeclarePairedDelimiter

절댓값과 노름에서 단순히 |x| 또는 \|x\|라고 쓰면 LaTeX가 각 |가 여는 쪽인지 닫는 쪽인지 판단하지 못해 간격이 어긋날 수 있습니다. amsmath는 좌우를 구분하는 명령을 제공합니다. 절댓값은 여는 \lvert / 닫는 \rvert, 노름은 여는 \lVert / 닫는 \rVert를 쓰면 여는/닫는 괄호로서 올바른 간격으로 조판됩니다.

그렇다고 매번 \left\lvert … \right\rvert라고 쓰는 것은 번거롭습니다. mathtools package\DeclarePairedDelimiter를 쓰면 여는 기호, 닫는 기호, 자동 크기, 수동 크기를 하나의 명령으로 묶을 수 있습니다. 프리앰블에서 정의해 두면 본문에서는 \abs{x}\norm{v}라고 쓸 수 있고, 별표가 붙은 \abs*{…} \norm*{…}는 내부에서 \left\right를 호출해 내용에 맞춰 늘어납니다. 별표 없는 형태는 보통 크기이며, [\big] 같은 선택 인수로 수동 크기도 고를 수 있습니다.

document.tex
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

% 本文では:
\[
  \abs{x} \le \abs*{\frac{a}{b}}, \qquad \norm*{\frac{v}{2}}
\]

여기서 \abs{x}는 보통 크기의 절댓값이고, \abs*{\frac{a}{b}}는 분수 높이에 맞춰 늘어난 세로줄로 분수를 감싼 절댓값입니다. \norm*{…}도 마찬가지로 이중 세로줄이 내용에 맞춰 늘어납니다. 같은 구분 기호를 문서에서 여러 번 쓴다면 이렇게 한 번 정의해 두는 것이 확실하며, 간격과 크기도 일관됩니다. 자세한 내용은 mathtools 페이지를 참고하세요.