첨자와 간격

수식의 모양을 결정하는 세부 요소 중 가장 자주 쓰는 두 가지는 첨자(위첨자와 아래첨자)간격입니다. 첨자는 ^_ 두 문자만으로 쓸 수 있지만, 중괄호를 어떻게 붙이느냐에 따라 결과가 달라집니다. 간격은 TeX가 자동으로 넣는 여백을 작성자가 \, 같은 명령으로 미세 조정하는 장치입니다. 이 페이지에서는 두 규칙과 그때그때의 “왜”를 확인 가능한 사실에 한정해 살펴봅니다.

위첨자와 아래첨자

수식 모드에서는 ^위첨자(superscript) 를, _아래첨자(subscript) 를 만듭니다. 예를 들어 x^2는 x의 오른쪽 위에 2를 붙이고, a_n은 a의 오른쪽 아래에 n을 붙입니다. 이 두 문자는 일반 본문에서는 특별한 의미가 없으므로 첨자는 반드시 $ ... $\[ ... \] 같은 수식 모드 안에 써야 합니다.

중요한 규칙이 하나 있습니다. ^_바로 뒤의 “토큰 하나”만 첨자로 삼습니다. 토큰이란 문자 하나이거나 명령 하나입니다. 따라서 두 글자 이상을 함께 올리거나 내리고 싶을 때는 중괄호 { }로 묶어 하나의 덩어리로 만들어야 합니다.

latex
$x^{10}$    % 10 全体が上付き:x の右肩に「10」
$x^10$      % 1 だけが上付き、0 は本行の大きさ:x¹0
$a_{ij}$    % ij をまとめて下付き
$2^{n+1}$   % n+1 全体が指数

x^{10}은 “10” 전체가 지수가 되지만, 중괄호를 뺀 x^10“1”만 위첨자가 되고 “0”은 보통 크기로 본문 줄에 남습니다(x¹0 같은 배열). 오류가 아니라 컴파일이 그대로 통과하기 때문에 오히려 알아차리기 어려운 함정입니다. 지수나 첨자가 한 글자가 아닐 때는 망설이지 말고 중괄호로 감싸는 습관을 들이면 안전합니다.

하나의 기호에 위첨자와 아래첨자를 동시에 붙일 수도 있습니다. x_i^2라고 쓰든 x^2_i라고 쓰든, 순서와 관계없이 LaTeX가 올바르게 겹쳐 배치합니다. 또한 첨자를 중첩(여러 단계) 할 수도 있지만, 이때도 각 단계마다 중괄호가 필요합니다. x^{y^z}는 z를 y의 지수로, 그 y^z 전체를 x의 지수로 만듭니다. 중괄호를 생략한 x^y^z“Double superscript” 오류가 되어 조판이 멈춥니다. x_{i_0} 같은 아래첨자 중첩도 마찬가지입니다.

첨자를 기호의 에 붙이고 싶을 때(동위원소 표기의 왼쪽 위/왼쪽 아래 등)는 빈 중괄호 {} 를 받침으로 사용합니다. {}_{Z}^{A}X처럼 쓰면 처음의 {}가 “아무것도 없는 요소”로서 첨자가 붙을 대상이 되어, A와 Z를 X의 왼쪽 위와 왼쪽 아래에 놓을 수 있습니다.

미분의 프라임 기호 는 아포스트로피 '로 간단히 쓸 수 있습니다. f'(x)는 f의 오른쪽 위에 프라임을 붙이고, f''(x)는 두 개를 나란히 붙입니다. 이는 내부적으로 ^{\prime}의 축약형이므로 f^{\prime}라고 써도 결과는 같습니다. 프라임은 자동으로 위첨자가 되므로 f^'처럼 직접 ^를 붙일 필요가 없습니다.

\limits와 \nolimits — 대형 작용소의 첨자 위치

\sum, 적분 \int, 극한 \lim, 총곱 \prod 같은 대형 작용소에서는 ^_로 붙인 첨자를 기호의 위아래에 둘지 오른쪽에 둘지 선택하게 됩니다. 예를 들어 합 기호의 위아래에 붙는 첨자는 “상한과 하한의 값”을 나타내므로 이를 리미트(limits) 위치라고 부릅니다.

기본 위치는 수식 스타일에 따라 결정됩니다. 별행(display style)에서는 \sum_{i=1}^{n}의 첨자가 기호의 바로 위와 바로 아래에 가운데 맞춤으로 놓입니다. 반면 본문 중(inline/text style)의 $\sum_{i=1}^{n}$에서는 같은 첨자가 오른쪽에 작게 나란히 붙습니다. 이는 줄 간격을 밀어 넓히지 않기 위한 처리입니다. \lim 등 많은 작용소도 같은 방식으로 동작합니다.

\int만은 예외입니다. 정의에 \nolimits가 내장되어 있기 때문에 별행에서도 첨자는 오른쪽에 붙습니다(적분의 위아래에 한계를 놓으면 세로로 늘어진 것처럼 보이기 때문입니다). 이 기본값을 덮어쓰는 것이 다음 두 명령입니다. \limits는 바로 앞 작용소의 첨자를 위아래로, \nolimits오른쪽으로 강제합니다.

latex
\[ \sum_{i=1}^{n} i           % display:i=1 が下、n が上に中央配置\]
\[ \int_{0}^{1} f(x)\,dx     % \int は既定で 0,1 を右側に\]
\[ \int\limits_{0}^{1} f(x)\,dx  % 0,1 を上下に置く\]
$\displaystyle\sum_{i=1}^{n} i$  % 本文中でも上下配置を強制

스타일 자체를 전환하는 방법도 있습니다. 본문 중에서 합의 첨자를 위아래에 놓고 싶다면 $\displaystyle\sum_{i=1}^{n}$를 쓰고, 반대로 별행 수식에서 오른쪽으로 보내고 싶다면 \textstyle을 붙입니다. 차이는 \limits / \nolimits가 “그 작용소 하나”만 겨냥하는 데 비해, \displaystyle / \textstyle이후 수식 전체의 체재를 바꾼다는 점입니다.

수식 안의 간격과 mu

수식 모드에서는 TeX가 기호의 종류(연산자, 관계 기호 등)에 따라 간격을 자동으로 넣습니다. 예를 들어 a+b+ 좌우나 a=b= 좌우 간격은 작성자가 지정한 것이 아닙니다. 그렇지만 자동 간격이 부족하거나 너무 많은 경우가 있고, 그 부분을 손으로 조정하는 것이 간격 명령입니다.

이 폭들은 mu(math unit, 수식 단위) 로 정의됩니다. mu는 1/18 em이며, em은 “현재 수식 기호 글꼴의 크기”(대략 대문자 M의 폭)입니다. 따라서 1 em = 18 mu입니다. 글꼴 크기에 비례하는 상대 단위이므로 글자를 키우면 간격도 같은 비율로 넓어집니다. 대표적인 명령과 폭은 다음과 같습니다.

명령사용처
\,3 mu(얇은 간격, = 1/6 em)가장 자주 쓰는 조정: dx 앞, \sqrt{2}\,x의 구분 등
\:4 mu(중간 간격)조금 더 넓게 띄우고 싶을 때(\medspace와 같음)
\;5 mu(두꺼운 간격)넓은 구분(\thickspace와 같음)
\!−3 mu(음의 얇은 간격)간격을 좁힘. \,의 정확한 반대
\quad18 mu(= 1 em)식과 단서, 경우 나눔의 조건 등을 크게 띄울 때
\qquad36 mu(= 2 em)\quad의 두 배. 더 크게 띄움

가장 자주 쓰는 것은 얇은 간격 \,입니다. 전형적인 예는 적분의 피적분함수와 dx 사이로, \int f(x)\,dx라고 쓰면 f(x)와 dx가 약간 떨어져 읽기 쉬워집니다(\,를 생략하면 f(x)dx가 붙어 보입니다). \quad\qquad는 수식과 단서(예: “식 (n ≥ 1일 때)”)를 띄우는 것처럼 어느 정도 큰 여백에 알맞습니다.

반대 방향의 \!는 간격을 좁히는 음의 간격입니다. 예를 들어 이중적분을 \int\!\!\int라고 써서 두 적분 기호를 가깝게 붙이는 조정에 사용합니다. 한편 \ 뒤에 공백 하나를 둔 \ (control space)은 수식 안에서도 본문과 같은 단어 사이 간격을 넣습니다.

\!는 사실 \negthinspace의 별명이며, \,의 음수판입니다. amsmath 패키지를 읽어 들이면 \:(4 mu)와 \;(5 mu)의 음수판인 \negmedspace(−4 mu)와 \negthickspace(−5 mu)도 사용할 수 있어, 음수 쪽에서도 3/4/5 mu의 대칭이 완성됩니다.

\phantom과 \mathstrut — 보이지 않는 상자로 높이와 폭 맞추기

조판에서는 “자리만 확보하고 내용은 보이지 않게 하는” 조정이 자주 필요합니다. 이를 담당하는 것이 \phantom 계열입니다. \phantom{...}은 인수를 조판했을 때와 같은 높이, 깊이, 폭을 가진, 내용이 비어 있는 보이지 않는 상자를 만듭니다. 글자는 나오지 않지만 그만큼의 공간은 정확히 남습니다.

치수 중 한 방향만 꺼내는 버전도 있습니다. \hphantom{...}폭만 가지고 높이와 깊이는 0입니다. \vphantom{...}은 반대로 높이와 깊이만 가지고 폭은 0입니다. 즉 \vphantom은 “세로 높이는 확보하고 싶지만 가로로는 자리를 차지하고 싶지 않을 때” 사용합니다.

구체적인 예로, 첨자 중첩 때문에 높이가 맞지 않는 경우를 생각해 봅시다. 아래의 두 항을 나란히 놓으면 오른쪽에는 3^{3^{3^j}}라는 높은 지수 탑이 있어, TeX가 그만큼 합의 본체를 아래로 내려 배치합니다. 그러면 좌우의 \sum 세로 위치가 어긋납니다. 왼쪽에 \vphantom{3^{3^{3^j}}}를 넣으면 보이지 않는 채로 오른쪽과 같은 높이를 확보할 수 있어 두 합의 높이가 맞습니다.

latex
\[
  \sum_{j \in \{0,\ldots,10\} \vphantom{3^{3^{3^j}}}}
  \sum_{i \in \{0,\ldots,3^{3^{3^j}}\}} i \cdot j
\]

비슷한 용도의 \mathstrut(매스 스트럿)은 \vphantom(로 정의된 전용 보이지 않는 지주(strut) 입니다. 즉 여는 괄호 (와 같은 높이와 깊이를 가지며 폭은 0입니다. 인수를 받지 않고, 그냥 놓기만 하면 그 위치에 괄호 한 글자만큼의 세로 여백을 확보합니다. \sqrt{a}\sqrt{a^2}처럼 높이가 다른 요소를 나란히 놓을 때 각 인수 앞에 \mathstrut을 넣으면 근호의 높이가 맞아 줄이 깔끔해 보입니다.

latex
$\sqrt{\mathstrut a}\;\sqrt{\mathstrut a^2}\;\sqrt{\mathstrut b}$
% 各 \sqrt の中身が同じ高さになり、根号の天井がそろう

정리하면, 폭을 맞추고 싶다면 \hphantom, 높이를 맞추고 싶다면 \vphantom이나 \mathstrut, 둘 다라면 \phantom 이 기본적인 구분입니다. 모두 “보이지 않는 상자로 치수만 조작한다”는 같은 발상에 서 있습니다.