총합 Σ, 적분 ∫, 집합의 합 ⋃은 수식 안에서 크게 조판되고 위아래나 옆에 범위(리미트)를 가지는 특수한 기호입니다. LaTeX에서는 이들을 가변 크기 연산자(대형 연산자)라고 부르며 \sum, \int, \bigcup 같은 명령으로 냅니다. 공통된 원리는 아래첨자 _와 위첨자 ^가 곧 연산자의 리미트가 되어, 표시 수식에서는 기호의 위아래에 쌓이고, 본문 안에서는 오른쪽 옆에 붙는 것입니다. 이 페이지에서는 리미트가 붙는 방식과 위치 제어(\limits, \nolimits), 여러 줄 첨자, 사용자 정의 연산자까지 정리합니다.
가변 크기 연산자란
수식 기호에는 글자 높이에 들어가는 고정 크기 기호(+, =, \cup 등)와, 조판되는 문맥에 따라 크기가 달라지는 가변 크기 연산자가 있습니다. 대표적인 예가 총합 \sum, 총곱 \prod, 적분 \int, 집합의 합 \bigcup입니다. 이들은 표시 스타일에서는 크게, 텍스트 스타일에서는 작게 조판되며, 아래첨자와 위첨자를 리미트로 특별히 처리합니다.
“리미트”란 합이나 적분의 범위를 나타내는 첨자입니다. \sum_{i=1}^{n}이라고 쓰면 i=1이 하한, n이 상한이 됩니다. 이는 x_i나 x^2처럼 문자 오른쪽 아래/위에 붙는 일반 아래첨자와 위첨자와는 다르게 처리됩니다. 가변 크기 연산자에 붙은 첨자는 기호의 바로 아래와 바로 위에 놓일 수 있습니다. 어느 쪽이 되는지는 조판 스타일과 기호 종류에 따라 결정되며, 이것이 다음 절의 주제입니다.
기본 구성원은 표준 LaTeX(실제로는 그 아래의 TeX)에 내장되어 있어 추가 패키지 없이 사용할 수 있습니다. 다중 적분 \iint, \iiint, 뒤에서 다룰 여러 줄 첨자 \substack, 연산자 정의 \DeclareMathOperator 등은 amsmath 패키지가 필요합니다. amsmath는 사실상의 표준이므로 본격적으로 수식을 조판한다면 프리앰블에 \usepackage{amsmath}를 써 두는 것이 좋습니다.
총합, 총곱과 리미트가 붙는 방식
총합은 \sum, 총곱은 \prod, 쌍대곱은 \coprod입니다. 범위는 아래첨자 _와 위첨자 ^로 줍니다. 예를 들어 \sum_{k=0}^{n} a_k에서 표시 수식은 총합 기호 Σ를 크게 조판하고, k=0을 바로 아래, n을 바로 위에 둡니다. 같은 식을 본문 안에 쓰면 줄 높이를 흐트러뜨리지 않도록 Σ가 작아지고, k=0과 n은 기호의 오른쪽 옆에 작게 위아래로 붙습니다.
別行立て:
\[
\sum_{k=0}^{n} a_k = a_0 + a_1 + \dots + a_n,
\qquad \prod_{k=1}^{n} k = n!
\]
本文中: 級数 $\sum_{k=0}^{n} a_k$ は行内に収まる。이 위아래/옆 전환은 스타일에 연동된 기본 동작입니다. 총합, 총곱, 쌍대곱 같은 “sum-class” 기호는 표시 스타일에서는 리미트를 위아래에 쌓고, 텍스트 스타일에서는 옆에 붙입니다. amsmath 용어로 이 방식을 displaylimits(표시될 때만 위아래)라고 합니다. 주변 본문 줄간격이 불필요하게 넓어지는 것을 피하는 합리적인 기본값입니다.
범위가 하나뿐이면 한쪽 첨자만 씁니다. \sum_{i \in S}처럼 하한에 조건을 쓸 수도 있으며, 표시 수식에서는 i ∈ S가 Σ 바로 아래에 놓입니다. 첨자가 여러 토큰에 걸치면 반드시 { }로 묶어야 합니다(\sum_{k=1}의 k=1처럼). 이를 잊고 \sum_k=1이라고 쓰면 k만 아래첨자가 되고 =1은 기호 오른쪽으로 흘러나갑니다.
적분 — 옆에 붙는 리미트
적분 기호는 \int이며, 그 범위(적분 구간)도 아래첨자와 위첨자로 줍니다. \int_a^b f(x)\,dx라고 쓰면 하한 a, 상한 b의 정적분이 됩니다. 여기서 중요한 점은 적분은 총합과 기본 동작이 다르다는 것입니다. \int 같은 “integral-class” 기호는 표시 수식에서도 리미트를 기호 오른쪽 옆에 붙입니다. 이는 수학 조판 관습이며, \int 정의 안에 내부적으로 \nolimits(옆 붙임)가 들어 있기 때문입니다.
\[
\int_{0}^{\infty} e^{-x}\,dx = 1,
\qquad \oint_{C} \mathbf{F}\cdot d\mathbf{r}
\]이 예는 표시 수식에서도 0을 ∫의 오른쪽 아래, ∞를 오른쪽 위에 붙입니다(총합이라면 위아래에 쌓일 자리입니다). 피적분함수와 dx 사이의 \,(얇은 공백)은 수학 조판에서 관례적으로 넣는 작은 간격입니다. 폐곡선을 따라 적분하는 선적분은 \oint이며, ∫에 작은 원을 겹친 기호가 됩니다.
다중 적분은 기호를 나란히 \int\int처럼 써도 되지만, 기호 사이 간격이 어색해지기 쉽습니다. amsmath를 불러오면 간격을 최적으로 좁힌 전용 명령을 사용할 수 있습니다. 이중 적분 \iint, 삼중 적분 \iiint, 사중 적분 \iiiint, 그리고 두 적분 기호 사이에 점을 두는 점선 다중 적분 \idotsint(∫⋯∫처럼)입니다. 모두 본문과 표시 수식 양쪽에서 간격이 조정됩니다.
\[
\iint_{D} f(x,y)\,dx\,dy,
\qquad \iiint_{V} f\,dV,
\qquad \idotsint_{A} f\,dV
\]물리에서 자주 쓰는 선, 면, 부피에 대한 닫힌 적분 기호(환적분의 이중, 삼중판 등)가 필요하다면 esint 패키지가 \oiint, \oiiint 등을 제공합니다. 표준으로는 \oint만 사용할 수 있습니다.
리미트 위치 바꾸기(\limits / \nolimits)
기본 붙는 방식은 두 명령으로 덮어쓸 수 있습니다. 연산자 바로 뒤에 \limits를 두면 리미트를 강제로 위아래에 붙이고, \nolimits를 두면 강제로 옆에 붙입니다. 예를 들어 본문 안의 총합 범위를 위아래로 내고 싶으면 \sum\limits_{k=1}^{n}라고 쓰고, 반대로 표시 수식의 적분에서도 리미트를 위아래에 쌓고 싶으면 \int\limits_0^1이라고 씁니다.
本文中で上下に: $\sum\limits_{k=1}^{n} k$
別行立ての積分を上下に:
\[
\int\limits_{0}^{1} x^2\,dx = \frac{1}{3}
\]여기서 핵심은 놓는 위치입니다. \limits와 \nolimits는 적용할 연산자의 바로 뒤(첨자를 쓰기 전)에 와야 합니다. \sum_{k=1}\limits처럼 첨자 뒤에 두면 오류가 납니다. \limits, \nolimits, \displaylimits가 여러 개 연속으로 나타나면 마지막 것이 우선합니다.
표시 수식인지 본문 중인지에 연동되는 기본 동작(sum-class의 displaylimits)으로 되돌리고 싶을 때는 \displaylimits를 씁니다. 다음 표는 기호 종류별 기본값과 덮어쓰기 명령의 효과를 정리합니다.
| 대상 / 명령 | 표시 스타일 | 인라인 스타일 |
|---|---|---|
\sum, \prod, \bigcup … | 위아래에 쌓임 | 오른쪽 옆에 붙음 |
\int, \oint, \iint … | 오른쪽 옆에 붙음 | 오른쪽 옆에 붙음 |
\limits(作用素の直後) | 위아래에 쌓임(강제) | 위아래에 쌓임(강제) |
\nolimits(作用素の直後) | 옆에 붙음(강제) | 옆에 붙음(강제) |
\displaylimits | 위아래에 쌓임 | 오른쪽 옆에 붙음 |
극한과 상하극한(\lim 계열)
\lim(극한), \limsup(상극한), \liminf(하극한)은 함수명처럼 직립체(로만체)로 조판되는 연산자이지만, 첨자의 처리는 가변 크기 연산자와 같은 sum-class 방식입니다. 즉 표시 수식에서는 아래첨자가 바로 아래에, 본문 안에서는 오른쪽 아래에 붙습니다. \limsup와 \liminf는 각각 “lim sup”, “lim inf” 두 단어로, 단어 사이에도 적절한 간격이 들어갑니다.
\[
\lim_{n \to \infty} \frac{1}{n} = 0,
\qquad \limsup_{n \to \infty} a_n \ge \liminf_{n \to \infty} a_n
\]이 예는 표시 수식이므로 n→∞가 lim 바로 아래에 조판됩니다. 같은 식을 본문 안에 쓰면 n→∞는 lim의 오른쪽 아래에 작게 붙습니다. \sup, \inf, \max, \min도 같은 계열이며 아래첨자를 아래에 둡니다(이들은 “수식 모드 기본”의 함수명 절에도 모아져 있습니다). →는 \to, 무한대는 \infty입니다.
큰 기호(n항 연산자)
집합, 논리, 대수에서 쓰는 n항 연산자에도 \sum과 같은 가변 크기의 “큰” 버전이 있습니다. 명령은 대응하는 이항 연산자 이름 앞에 big을 붙인 형태입니다. 예를 들어 이항 합집합 \cup(A ∪ B)에 대한 가변 크기 버전이 \bigcup입니다. 이들은 모두 sum-class라서 표시 수식에서는 리미트를 위아래에 쌓고, 본문 안에서는 옆에 붙입니다.
| 명령 | 의미 | 대응하는 이항 연산자 |
|---|---|---|
\bigcup | 합집합(n항) | \cup(∪) |
\bigcap | 교집합(n항) | \cap(∩) |
\bigsqcup | 서로소 합(각진 합) | \sqcup(⊔) |
\biguplus | 다중집합의 합 | \uplus(⊎) |
\bigvee | 논리합 / 상한(n항) | \vee(∨) |
\bigwedge | 논리곱 / 하한(n항) | \wedge(∧) |
\bigoplus | 직합(동그라미 속 +) | \oplus(⊕) |
\bigotimes | 텐서곱(동그라미 속 ×) | \otimes(⊗) |
\bigodot | 동그라미 속 점(n항) | \odot(⊙) |
\[
\bigcup_{i=1}^{n} A_i, \qquad
\bigcap_{i \in I} A_i, \qquad
V = \bigoplus_{k} V_k
\]이 예는 표시 수식이므로 \bigcup_{i=1}^{n}에서 i=1은 큰 ⋃ 바로 아래에, n은 바로 위에 쌓입니다. \bigoplus_{k}에서는 커진 ⊕ 아래에 k가 놓여 직합 V = V₁ ⊕ V₂ ⊕ … 을 하나의 기호로 나타낼 수 있습니다. 본문 안에 쓰면 모든 리미트가 기호 오른쪽 옆에 작게 붙습니다.
여러 줄 첨자(\substack와 subarray)
총합이나 대형 연산자 아래에 조건을 여러 줄로 쓰고 싶을 때가 있습니다(예: “0 ≤ i ≤ m 그리고 0 < j < n”). amsmath의 \substack{…}을 쓰면 \\로 구분한 각 줄이 가운데 정렬로 쌓인 첨자가 됩니다. \substack{…} 전체를 아래첨자 위치에 둔다는 점에 주의하세요.
\[
\sum_{\substack{0 \le i \le m \\ 0 < j < n}} P(i,j)
\]표시 수식에서는 “0 ≤ i ≤ m”과 “0 < j < n”이 두 줄로 총합 기호 Σ 바로 아래에 쌓입니다. 각 줄은 가운데 정렬됩니다. \substack 안의 \\는 줄 구분이며, 마지막 줄 뒤에는 붙이지 않습니다.
각 줄을 왼쪽 정렬하고 싶을 때는 더 일반적인 subarray 환경을 씁니다. \begin{subarray}{l} … \end{subarray}의 {l}이 왼쪽 정렬을 지정합니다({c}이면 가운데 정렬). 내용은 \substack와 마찬가지로 \\로 줄을 바꿉니다. 조건식의 시작을 맞추고 싶을 때 읽기 좋아집니다.
\[
\sum_{\begin{subarray}{l} i \in \Lambda \\ 0 < j < n \end{subarray}} P(i,j)
\]사용자 정의 연산자(\DeclareMathOperator*)
목록에 없는 연산자 이름을 직립체로 조판하고, 아래첨자를 바로 아래에 두고 싶을 때, 예를 들어 argmax, argmin, esssup 같은 경우에는 amsmath의 \DeclareMathOperator를 씁니다. 프리앰블에서 한 번 선언하면 본문에서 짧은 명령으로 호출할 수 있습니다. 리미트를 바로 아래에 두는(\lim과 같은 sum-class 동작) 핵심은 별표가 붙은 \DeclareMathOperator*를 쓰는 것입니다. 별표가 없으면 아래첨자는 함수명 오른쪽 아래에 붙습니다.
% プリアンブルで:
\usepackage{amsmath}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator{\rank}{rank}
% 本文で:
\[
\hat{\theta} = \argmax_{\theta} L(\theta),
\qquad \rank A \le n
\]이 예에서 \argmax는 별표가 붙어 정의되었으므로 표시 수식에서는 θ가 arg max 바로 아래에 놓입니다(본문 안에서는 오른쪽 아래). 이름 텍스트 안의 \,는 단어 사이의 얇은 공백으로, “arg max” 두 단어를 적절히 떨어뜨립니다. 반면 \rank는 별표가 없으므로 \rank A는 rank A로 직립체와 적절한 간격으로 조판되고, 첨자를 붙이면 오른쪽 아래에 붙습니다. 한 번만 쓸 경우 선언하지 않고 \operatorname{rank}라고 직접 쓸 수도 있습니다(리미트를 아래에 두려면 \operatorname*{…}).
이름 텍스트 안에는 특별한 약속이 있습니다. 하이픈 -은 본문과 같은 일반 하이픈(마이너스 기호가 아님)으로, 별표 *는 위로 올라간 텍스트 별표(가운데 이항 연산자 별이 아님)로 조판됩니다. 함수명은 \text{…}가 아니라 \DeclareMathOperator나 \mathrm로 조판하는 것이 올바르며, 이렇게 하면 앞뒤 간격이 자동으로 조정되고 정리 환경처럼 이탤릭 문맥에 놓여도 직립체가 유지됩니다.
관련된 작은 기법으로, sum-class 기호의 네 모서리에 첨자를 붙이고 싶을 때(총합 기호에 “prime(′)”을 붙이는 경우 등)는 amsmath의 \sideset이 있습니다. \sideset{}{'}\sum_{n} a_n처럼 쓰면 Σ의 오른쪽 위에 prime을 붙이면서 아래에는 리미트를 둘 수 있습니다. \sideset은 sum-class 기호 전용이며, 첫 번째 인수는 왼쪽, 두 번째 인수는 오른쪽 네 모서리를 지정합니다. 각 인수 안에서는 _{lo}^{hi} 형태로 아래쪽과 위쪽 모서리를 따로 쓸 수 있어, \sideset{_a^b}{_c^d}\sum이면 네 모서리 모두에 서로 다른 첨자를 둘 수 있습니다(일반 _, ^ 리미트는 그대로 사용할 수 있습니다).