수식 모드 기초

LaTeX에는 일반 본문과는 별개의 특별한 상태인 수식 모드가 있습니다. 수식은 전용 글꼴, 간격, 조판 규칙으로 처리되므로 x 하나도 문장 속의 x와는 다른 대상으로 다루어집니다. 이 페이지에서는 수식 모드로 들어가는 두 가지 입구, 즉 문장 흐름 안에 넣는 인라인 수식과 독립된 줄에 놓는 디스플레이 수식을 정리하고, 그 안에서 적용되는 규칙을 살펴봅니다. 공백은 무시되고, 글자는 변수가 되며, 함수 이름은 전용 명령으로 써야 합니다.

수식 모드란

LaTeX가 문서를 조판할 때는 여러 모드(상태) 사이를 전환합니다. 일반적인 문장을 읽고 쓰는 상태가 텍스트 모드이고, 수식을 조판하는 상태가 수식 모드입니다. 둘은 단순히 겉모습만 다른 것이 아니라 내부 조판 규칙 자체가 바뀝니다. 수식 모드에서는 글자가 수학용 이탤릭체(수식 이탤릭)로 조판되고, 글자 간격은 알파벳의 나열이 아니라 수식 구조에서 계산되며, += 같은 기호의 앞뒤에는 연산자와 관계 기호에 맞는 간격이 자동으로 들어갑니다.

왜 별도의 모드가 필요할까요? 수학 조판에는 보통 문장에는 없는 약속이 매우 많기 때문입니다. 변수는 기울임꼴, 상수와 함수 이름은 곧은 글꼴, 첨자는 작게, 분수와 근호는 글자 높이를 넘어가게 조판되고, 기호 사이의 간격에도 세밀한 규칙이 있습니다. 이를 하나씩 손으로 지정하는 것은 현실적이지 않습니다. 그래서 “여기부터는 수식”이라고 선언하면, 그다음은 LaTeX가 수학의 방식대로 한꺼번에 처리해 줍니다. 이것이 수식 모드의 생각입니다. 본문에 $x$라고 쓰면, 앞뒤가 일본어여도 그 x만은 수학 변수로 올바르게 조판됩니다.

수식 모드에는 크게 두 가지 형태가 있습니다. 문장의 흐름 안에 수식을 넣는 인라인 수식(본문 수식) 과, 문단에서 떼어 독립된 줄에 크게 조판하는 디스플레이 수식(별행 수식) 입니다. 같은 수식이라도 어느 쪽으로 조판하느냐에 따라 기호의 크기와 배치가 달라집니다. 차례로 살펴보겠습니다.

인라인 수식

인라인 수식은 본문 중간에 수식을 끼워 넣는 방식입니다. LaTeX가 권장하는 표기는 \(\)로 감싸는 형태이고, TeX에서 온 짧은 표기인 $$도 널리 쓰입니다. 두 방식의 결과는 같으며 취향의 문제로 여겨집니다. (\begin{math}\end{math}라는 환경 형태도 같은 역할을 하지만 길기 때문에 인라인에서는 잘 쓰지 않습니다.)

latex
アインシュタインの関係式は \( E = mc^2 \) である。

The mass--energy relation is $E = mc^2$.

어느 경우든 수식은 본문 줄 높이를 크게 흐트러뜨리지 않도록 적당히 작은 크기로 줄 안에 들어갑니다. E, m, c는 변수로서 기울임꼴이 되고, 2는 위첨자 지수로 작게 조판됩니다. 단, $는 여는 기호와 닫는 기호가 같으므로 닫는 $를 빠뜨리면 이후의 본문이 통째로 수식 모드에 들어가 원인을 알기 어려운 오류가 되기 쉽습니다. \(\)는 열림과 닫힘을 구별할 수 있어 짝을 잘못 맞추기 어렵다는 장점이 있습니다.

인라인 수식은 줄 높이의 제약을 받기 때문에 분수나 총합 등은 조밀하게 조판됩니다. 자세한 내용은 뒤의 “인라인과 디스플레이 스타일의 차이”에서 다룹니다.

디스플레이 수식

중요한 수식이나 큰 수식은 문단에서 떼어 독립된 줄에 조판합니다. 이것이 디스플레이 수식(별행 수식)입니다. LaTeX가 권장하는 표기는 \[\]이며, 이는 displaymath 환경(\begin{displaymath}\end{displaymath})과 완전히 같은 역할을 하는 축약형입니다. 어느 쪽도 식 번호는 붙지 않습니다. 기본적으로는 가운데 정렬되고, 문서 전체에 fleqn 옵션을 주면 왼쪽 정렬됩니다.

latex
次の等式が成り立つ。
\[
  \int_0^1 x^2 \, dx = \frac{1}{3}
\]
これは基本的な積分である。

이 코드는 독립된 줄 가운데에 수식을 출력합니다. 적분 기호는 글자 높이를 넘어 크게 조판되고, 0부터 1까지의 범위가 적분 기호의 아래와 위에 붙으며, 분수 1/3은 가로선을 사이에 두고 세로로 크게 조판됩니다. 앞뒤 본문과는 위아래로 약간의 여백이 생깁니다.

식에 번호를 붙여 나중에 참조하고 싶다면 \[\] 대신 equation 환경을 사용합니다. 이 환경은 수식을 별행으로 조판한 뒤, 오른쪽 끝(가로쓰기 기본값)에 일련번호를 자동으로 붙입니다. \label{…}\ref{…}를 함께 쓰면 “식 (3)에서”처럼 본문에서 번호를 참조할 수 있습니다(번호와 정렬의 자세한 내용은 별도 페이지에서 다룹니다).

latex
\begin{equation}
  e^{i\pi} + 1 = 0
\end{equation}

번호 없는 별행 수식에는 \[\] 외에도 amsmath 패키지의 equation* 환경을 사용할 수 있습니다(이는 displaymath와 동등하며 amsmath의 여러 기능을 함께 쓸 수 있습니다). 다음 표는 별행 수식을 쓰는 주요 방법을 정리한 것입니다.

표기번호비고
\[ … \]없음LaTeX 권장. displaymath의 축약형
displaymath없음\[ \]와 같은 환경 형태
equation있음일련번호 자동 부여. \label로 참조 가능
equation*없음amsmath 필요. displaymath와 동등
$$ … $$없음비권장(다음 절 참조)

$$ … $$를 쓰지 않는 이유

별행 수식을 $$$$로 감싸는 표기를 볼 때가 있지만, 이는 plain TeX 시절의 방식이며 LaTeX에서는 권장되지 않습니다. 겉보기에는 \[\]와 비슷해도 LaTeX가 공식적으로 지원하는 표기가 아니며, 몇 가지 실제 문제가 생깁니다.

  • \[\]가 넣어 주는 적절한 위아래 여백을 얻지 못해 별행 수식 전후의 세로 간격이 달라집니다.
  • 문서 전체를 왼쪽 정렬하는 fleqn 옵션이 적용되지 않습니다.
  • LaTeX가 수행하는 일관성 검사(열림/닫힘 대응 확인 등)가 작동하지 않습니다.
  • \[\]는 필요에 따라 동작을 바꿀 수 있는 재정의 가능한 매크로이지만, $$에는 그런 유연성이 없습니다.
  • amsthm의 proof 환경에서 QED 기호(증명 종료 기호)의 배치가 깨집니다. 마지막 수식을 $$$$로 조판하면 기호가 의도한 오른쪽 끝이 아니라 독립된 줄로 떨어집니다.

AMS의 “Short Math Guide for LaTeX”에서도 $$$$ 사용을 강하게 경고합니다. 별행 수식에는 \[\](번호 없음) 또는 equation 환경(번호 있음)을 사용하세요.

인라인과 디스플레이 스타일의 차이

같은 수식이라도 인라인으로 조판하느냐 디스플레이로 조판하느냐에 따라 스타일(조판 방식)이 달라집니다. 인라인 수식은 줄 높이를 크게 흐트러뜨리지 않도록 텍스트 스타일로 작고 조밀하게, 디스플레이 수식은 여유 있게 디스플레이 스타일로 조판됩니다. 차이가 특히 두드러지는 부분은 총합과 적분의 범위(극한) 위치, 그리고 분수와 첨자의 크기입니다.

  • 총합/적분의 범위: 디스플레이 스타일에서는 \sum의 범위가 기호의 위아래에 붙지만, 텍스트 스타일(인라인)에서는 기호의 오른쪽에 붙습니다. \int의 적분 범위도 같은 방식으로 위치가 달라집니다.
  • 분수: \frac은 디스플레이 스타일에서는 크게, 텍스트 스타일에서는 작고 조밀하게 조판됩니다.
  • 위첨자/아래첨자: 첨자의 크기와 위치도 스타일에 따라 달라지며, 중첩될수록 단계적으로 작아집니다.

이 스타일은 명령으로 덮어쓸 수 있습니다. \displaystyle은 “독립된 줄에 조판할 때의 스타일”을, \textstyle은 “본문 안에서 조판할 때의 스타일”을 그 지점부터 적용합니다. 또한 첨자용 \scriptstyle, 두 번째 단계 첨자용 \scriptscriptstyle도 있으며, 이 순서로 글자가 작아집니다. 예를 들어 본문 중의 총합 범위를 위아래에 내고 싶다면 인라인 수식 안에서 \displaystyle을 사용합니다.

latex
インライン: $\sum_{i=1}^{n} i$ では範囲が右脇に付く。

強制ディスプレイ: $\displaystyle\sum_{i=1}^{n} i$ では範囲が上下に付く。

위 예에서 앞의 수식은 i=1n이 총합 기호의 오른쪽에 작게 붙고, 뒤의 수식은 같은 범위가 총합 기호의 바로 아래와 위에 붙습니다. 다만 본문 중에서 \displaystyle을 많이 쓰면 줄 간격이 넓어지기 쉬우므로 필요한 곳에만 사용하는 것이 좋습니다.

수식 모드 안의 규칙

수식 모드에 들어가면 본문과 다른 세 가지 규칙이 적용됩니다. 이를 모르면 “공백을 넣었는데도 붙어 나온다”거나 “영어 단어가 기울임꼴로 흩어져 나온다”는 상황에서 당황하게 됩니다.

첫째, 소스에 입력한 공백은 무시됩니다. 수식 안의 간격은 모두 LaTeX가 수식 구조에서 결정하므로 a+b라고 쓰든 a + b라고 쓰든 출력은 같습니다. 의도적으로 간격을 넣고 싶을 때는 \,(얇은 간격)이나 \quad, \qquad(넓은 간격) 같은 전용 명령을 사용합니다. 줄바꿈도 마찬가지로 무시되므로, 소스를 읽기 좋게 줄바꿈해도 괜찮습니다.

둘째, 영문자는 모두 변수명으로 간주되어 수식 이탤릭으로 조판됩니다. 그래서 수식 안에 area라고 쓰면 “면적”이라는 단어가 아니라 a, r, e, a라는 네 변수의 곱처럼, 간격도 변수의 나열로 조판됩니다.

셋째, 수식 안에 일반적인 말(곧은 글꼴과 올바른 글자 간격) 을 넣고 싶을 때는 전용 명령을 사용합니다. 표준은 amsmath 패키지의 \text{…}이며, 그 안에 쓴 문자열을 본문과 같은 글꼴과 간격으로 조판합니다. amsmath를 쓰지 않는 경우 \mbox{…}도 비슷한 일을 할 수 있지만, 첨자 안에서 크기가 따라가지 않는 등 문제가 있고 이름도 용도를 잘 드러내지 않습니다.

latex
\[
  V = \frac{4}{3}\pi r^3 \quad \text{(半径 $r$ の球)}
\]

이 예에서는 구의 부피 공식 오른쪽에 \quad 간격을 두고, \text{…} 안의 “(半径 r の球)”이 본문용 곧은 글꼴로 조판됩니다. 또한 \text{…} 안에서 다시 $r$라고 쓰면 그 부분만 수식으로 돌아갈 수 있다는 점도 주목하세요.

연산자와 함수 이름

앞 절의 규칙에서 알 수 있듯이 sin x를 그대로 입력하면 s, i, n이라는 세 변수의 곱처럼 보입니다. 올바른 방법은 \sin 같은 전용 명령을 사용하는 것입니다. LaTeX에는 자주 쓰는 함수와 작용소 이름이 미리 정의되어 있으며, 모두 곧은 글꼴(로만체) 로, 앞뒤에 알맞은 간격을 두고 조판됩니다.

  • 삼각함수와 쌍곡함수: \sin \cos \tan \cot \sec \csc, \sinh \cosh \tanh \coth, 역함수 \arcsin \arccos \arctan.
  • 로그와 지수: \log \ln \lg \exp.
  • 극한과 상하한: \lim \limsup \liminf \sup \inf \max \min.
  • 대수 및 기타: \arg \det \dim \gcd \ker \hom \deg \Pr, 나머지의 \bmod \pmod.

이들 중 일부(\lim, \max, \sup 등)는 디스플레이 스타일에서 아래첨자를 바로 아래에 둡니다. 예를 들어 \lim_{n\to\infty}는 별행 수식에서는 lim 바로 아래에 n→∞가 조판됩니다(인라인에서는 오른쪽 아래에 붙습니다).

latex
\[
  \lim_{n \to \infty} \left(1 + \frac{1}{n}\right)^{n} = e,
  \qquad \sin^2\theta + \cos^2\theta = 1.
\]

목록에 없는 함수 이름을 곧은 글꼴로 조판하고 싶을 때는 amsmath 패키지의 \operatorname{…}을 사용합니다. 예를 들어 \operatorname{rank} A라고 쓰면 rank가 곧은 글꼴과 적절한 간격으로 조판됩니다. 같은 작용소를 여러 번 쓴다면 프리앰블에서 \DeclareMathOperator{\rank}{rank}로 정의해 두고, 본문에서는 \rank라고 쓸 수 있습니다. \lim처럼 첨자를 바로 아래에 두고 싶은 작용소는 별표가 붙은 \DeclareMathOperator*{\argmax}{arg\,max}로 정의합니다.