수식에서 \sin이나 \log 같은 함수 이름을 입력하면, 앞뒤에 알맞은 간격을 두고 직립체(로만체) 로 조판됩니다. 이것은 장식이 아닙니다. 수학 모드에서는 모든 글자가 변수로 취급되므로 sin(x)를 그대로 쓰면 s, i, n 세 변수의 곱으로 해석됩니다. 그래서 LaTeX는 자주 쓰는 함수 이름을 명령으로 미리 정의해 둡니다. 이 페이지에서는 삼각함수, 로그와 지수 함수 계열, \lim이나 \max처럼 아래첨자를 바로 밑에 두는 연산자, \bmod와 \pmod 같은 나머지 표기, 그리고 목록에 없는 연산자를 직접 정의하는 방법을 다룹니다.
이름 붙은 연산자가 필요한 이유
수학 모드 안에서는 각 영문자가 변수 이름으로 받아들여지고 수학 이탤릭체로 조판됩니다. 그래서 sin x라고 쓰면 “사인”이 아니라 s, i, n, x 네 양의 곱으로, 변수들이 이어진 간격과 기울어진 글꼴로 출력됩니다. 함수 이름과 상수는 직립체로 쓴다는 수학 관례와 맞지 않습니다.
올바른 방법은 \sin처럼 전용 명령 을 쓰는 것입니다. LaTeX는 자주 쓰는 함수와 연산자 이름을 미리 정의해 두며, 모두 직립체 로 조판되고 앞뒤에는 연산자에 맞는 간격이 자동으로 들어갑니다. 예를 들어 \sin x는 직립 “sin” 뒤에 얇은 공백이 오고 변수 x가 이어지는 교과서식 결과를 만듭니다. 이 명령들은 모두 표준 LaTeX에 포함되어 있어 추가 패키지가 필요 없으며, 직접 정의할 때만 amsmath가 필요합니다.
삼각, 로그, 지수 함수
가장 자주 쓰이는 것은 삼각함수, 쌍곡선함수, 로그와 지수 함수 계열입니다. 이들은 보통 연산자라서 첨자가 붙어도 기호의 오른쪽 에 놓이고, 아래에 놓이지 않습니다. 아래에 놓는 종류는 다음 절에서 다룹니다.
- 삼각함수:
\sin\cos\tan\cot\sec\csc, 그리고 역함수\arcsin\arccos\arctan. - 쌍곡선함수:
\sinh\cosh\tanh\coth. - 로그:
\log(일반 로그),\ln(자연로그),\lg(밑이 2인 로그). - 지수 및 기타:
\exp(지수함수),\deg(차수),\dim(차원),\ker(핵),\hom,\arg(편각).
밑과 지수는 일반적인 첨자 기능으로 그대로 붙입니다. \log_2 x는 “log”의 오른쪽 아래에 작은 2가 붙은 밑이 2인 로그가 되고, \sin^2\theta는 “sin”의 오른쪽 위에 지수 2가 붙은 익숙한 sin²θ 모양이 됩니다. 의미에 따라 \log, \ln, \lg를 고르며, 자연로그는 \ln, 정보이론 등에서 자주 쓰는 밑이 2인 로그는 \lg를 씁니다.
\[
\sin^2\theta + \cos^2\theta = 1, \qquad
\log_2 8 = 3, \qquad
\ln e = 1.
\]이 별행 수식에서는 “sin”, “cos”, “log”, “ln”이 모두 직립체로 조판됩니다. \sin^2\theta는 sin의 오른쪽 위에 2를 두고, \log_2 8은 log의 오른쪽 아래에 2를 둡니다. 세 식은 넓은 간격 \qquad로 구분되어 한 줄에 놓입니다. 비교해 보면 sin^2\theta처럼 \를 빼면 s, i, n이 기울어진 변수로 조판되고 간격도 맞지 않습니다.
극한을 아래에 두는 연산자
앞 절의 함수와 달리 아래첨자를 기호 바로 밑 에 두는 연산자들이 있습니다. 극한, 상한과 하한, 최댓값과 최솟값이 여기에 속합니다. “어떤 범위나 조건에서”를 기호 아래에 크게 보이는 것이 수학적 관례이기 때문입니다.
\lim(극한),\limsup(상극한),\liminf(하극한).\sup(상한),\inf(하한),\max(최댓값),\min(최솟값).\det(행렬식),\gcd(최대공약수),\Pr(확률).- amsmath가 추가하는 것:
\injlim과\projlim(순극한과 역극한, “inj lim” / “proj lim”으로 조판), 화살표 장식 변형\varinjlim과\varprojlim, 그리고\varlimsup/\varliminf. 범주론과 함자의 극한에서 자주 쓰입니다.
이들은 디스플레이 스타일 에서는 아래첨자를 바로 밑에 두고, 텍스트 스타일(인라인) 에서는 오른쪽 아래에 둡니다. \sum이나 \int 같은 대형 연산자와 완전히 같은 동작이며 스타일에 의해 결정됩니다. 인라인에서도 아래에 강제로 두려면 \displaystyle을 사용합니다. 예를 들어 \lim_{x \to 0}은 별행 수식에서는 “lim” 바로 아래에 x→0을 두고, 본문 안에서는 “lim”의 오른쪽 아래에 작게 둡니다.
\[
\lim_{x \to 0} \frac{\sin x}{x} = 1, \qquad
\max_{1 \le i \le n} a_i .
\]이 별행 수식에서는 x→0이 “lim” 바로 아래에, 1≤i≤n이 “max” 바로 아래에 놓이고 각 식의 본문은 오른쪽에 이어집니다. \sin x도 직립체로 올바르게 조판됩니다. 같은 식을 $\lim_{x\to0}\frac{\sin x}{x}$처럼 인라인으로 쓰면 범위는 “lim”의 오른쪽 아래에 작게 붙습니다.
나머지 산술(mod)
나머지 산술의 “mod”는 쓰이는 문맥에 따라 여러 형태가 있으며, 간격과 괄호가 각각 다릅니다. 표준 LaTeX는 \bmod와 \pmod를 제공하고, amsmath는 여기에 \mod와 \pod를 더합니다.
\bmod는 이항 연산자 로서의 mod입니다. b는 binary를 뜻합니다. 5 \bmod 3이라고 쓰면 5, “mod”, 3 사이에 이항 연산자 간격이 들어가 “5 mod 3”처럼 조판됩니다. 값 자체, 즉 나머지를 뜻할 때 씁니다. 반면 \pmod{n}은 합동식 끝에 붙이는 괄호가 있는 법 입니다. a \equiv b \pmod{n}이라고 쓰면 수식 오른쪽에 조금 떨어져 “(mod n)”이 붙어 “a ≡ b (mod n)”처럼 됩니다. 인수 n은 중괄호로 넘깁니다. amsmath를 읽으면 인라인 수식에서 \pmod 앞의 간격이 자동으로 조금 줄어듭니다.
\[
5 \bmod 3 = 2, \qquad
17 \equiv 5 \pmod{12}.
\]이 별행 수식에서 왼쪽 식은 “5 mod 3 = 2”처럼 이항 연산자 간격으로 조판되고, 오른쪽 식은 합동 기호 \equiv를 사이에 두고 끝에 괄호 있는 “(mod 12)”가 붙어 “17 ≡ 5 (mod 12)”처럼 조판됩니다.
amsmath가 추가하는 두 명령은 \pmod의 변형입니다. \mod{n}은 괄호 없이 “mod n”만 조판하며, 앞에 간격을 두는 표기를 선호하는 저자들이 씁니다. \pod{n}은 “mod”를 생략하고 괄호만 남겨 “(n)”으로 조판합니다. 다음 표는 네 가지 차이를 정리합니다.
| 명령 | 출력(예: n=3) | 용도/비고 |
|---|---|---|
\bmod | a mod b | 이항 연산자. 나머지 값을 나타냄. 표준 LaTeX |
\pmod | (mod 3) | 합동식 끝에 붙임. 괄호 있음. 표준 LaTeX |
\mod | mod 3 | 괄호 없는 변형. amsmath 필요 |
\pod | (3) | “mod”는 생략하고 괄호만 유지. amsmath 필요 |
직접 연산자 정의하기
목록에 없는 함수 이름, 예를 들어 부호 함수 sgn, trace tr, rank rank, image Im을 직립체로 올바르게 조판하고 싶을 때가 있습니다. 한 번만 쓸 것이라면 amsmath의 \operatorname{…}를 사용합니다. \operatorname{sgn} x라고 쓰면 “sgn”이 직립체와 알맞은 간격으로 조판되어 \sin 같은 명령과 같은 품질이 됩니다.
같은 연산자를 반복해서 쓴다면 프리앰블에서 \DeclareMathOperator{\sgn}{sgn}처럼 한 번 선언합니다. 그러면 본문에서는 \sgn만 쓰면 되고 정의는 한 곳에 모입니다. \lim처럼 아래첨자를 바로 밑 에 두어야 하는 연산자는 별표가 붙은 \DeclareMathOperator*{\argmax}{arg\,max}로 정의합니다. 한 번만 쓸 때는 별표가 붙은 \operatorname*{…}도 같은 역할을 합니다. 별표가 없으면 첨자가 오른쪽에, 별표가 있으면 디스플레이에서 아래에 놓입니다. 이 기능은 모두 amsmath가 제공하며 내부적으로 amsopn 패키지를 자동으로 읽으므로 \usepackage{amsmath}가 필요합니다.
\usepackage{amsmath}
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator*{\argmax}{arg\,max}
% 本文中 / in the body:
% \[ \sgn x, \qquad \argmax_{x \in S} f(x) \]이 선언 뒤에는 별행 수식에서 \sgn x가 직립 “sgn”과 변수 x로 조판되고, \argmax_{x \in S}는 “arg max”를 두 단어 사이의 얇은 \, 간격과 함께 조판하며 x∈S를 바로 아래에 놓습니다. 이름 안에 \,를 넣는 것은 “arg”와 “max” 사이에 적절한 간격을 남기기 위해서입니다. 한 번 정의해 두면 나중에 표기를 바꾸고 싶을 때 프리앰블 한 줄만 고치면 문서 전체에 반영됩니다.