tabular 기초

표를 조판하는 바탕은 tabular 환경 입니다. \begin{tabular}{ccc}에서 {ccc}열 지정 으로, 열이 몇 개인지와 각 열을 어떻게 맞출지를 먼저 선언합니다. 본문에서는 셀을 & 로 나누고 각 행을 \\ 로 끝냅니다. 가로줄은 \hline 으로 긋습니다. 이 페이지에서는 이 세 가지 약속, 기본 열 지정자인 l, c, r, p{width}, 그리고 “표의 내용”을 만드는 tabular와 번호와 캡션이 있는 그림표처럼 배치하는 부동 table 환경의 차이를 다룹니다.

tabular 환경

tabular는 행과 열로 이루어진 표를 조판하는 환경입니다. 가장 큰 특징은 \begin{tabular} 바로 뒤에 필수 인수, 즉 열 지정을 받는다는 점입니다. \begin{tabular}{ccc}라고 쓰면 “가운데 정렬 열 세 개”라는 뜻이며, 여기서 선언한 열의 개수와 정렬 방식이 표 전체의 골격을 정합니다. 본문의 각 행은 선언한 열 수만큼의 셀을 &로 이어서 씁니다.

표 안에서는 세 가지 기호가 의미를 가집니다. &(앰퍼샌드) 는 같은 행에서 셀과 셀을 나누는 열 구분자 입니다. \\(백슬래시 두 개) 는 행의 끝을 나타내는 행 끝 표시(줄바꿈) 입니다. 그리고 \hline 은 그 위치에 표 전체 폭의 가로줄 을 하나 긋습니다. 맨 마지막 행 뒤의 \\는 생략할 수 있지만, 마지막 행 아래에 줄을 긋고 싶다면 \\로 행을 닫은 다음 \hline을 둡니다.

latex
\begin{tabular}{ccc}
  \hline
  A & B & C \\
  D & E & F \\
  \hline
\end{tabular}

이 예는 3열 2행 표를 만들고 위아래를 각각 가로줄 하나로 둘러쌉니다. 각 셀의 내용(A부터 F)은 열 지정 c에 따라 모두 가운데에 맞습니다. & 앞뒤의 공백은 무시되므로, 소스에서는 읽기 좋게 공백으로 위치를 맞춰도 됩니다.

또한 \begin{tabular}에는 열 지정 앞에 대괄호로 수직 위치 선택 인수 를 줄 수 있습니다. \begin{tabular}[t]{…}는 표의 위쪽을, [b]는 아래쪽을 주변 행의 기준선에 맞춥니다. 기본값은 표의 세로 가운데를 행에 맞추는 것입니다.

기본 열 지정

열 지정 인수는 열마다 한 글자씩 나열해 씁니다. 기본은 네 가지입니다. l 은 왼쪽 정렬, c 는 가운데 정렬, r 은 오른쪽 정렬이며, 모두 열을 내용의 자연 너비 만큼 넓힙니다. 이들은 행 안에서 줄바꿈하지 않습니다. 셀 내용이 길면 열은 그 한 줄의 길이만큼 가로로 늘어나 표가 지면 폭을 넘을 수 있습니다.

네 번째인 p{width} 는 성격이 다릅니다. 지정한 폭의 단락 상자(parbox) 로 조판되는 열이며, 내용이 그 폭을 넘으면 자동으로 줄바꿈 되어 여러 줄이 됩니다. 긴 문장을 담는 열에는 p{width}를 사용합니다. 폭은 p{5cm} 같은 절대값뿐 아니라 p{0.3\linewidth}처럼 본문 폭에 대한 상대값으로도 지정할 수 있습니다. p 열의 내용은 기본적으로 위쪽 정렬과 양쪽 정렬로 조판됩니다.

지정자정렬줄바꿈?
l왼쪽 정렬아니요(자연 너비)
c가운데 정렬아니요(자연 너비)
r오른쪽 정렬아니요(자연 너비)
p{幅}위쪽, 양쪽 정렬예(지정 폭에서 줄바꿈)

더 복잡한 열 지정, 예를 들어 여러 열을 가로지르는 셀을 위한 \multicolumn, 열을 반복하는 *{n}{…}, array 패키지의 m{width}(세로 가운데), b{width}(아래쪽), >{…} 열 전처리 훅 등은 “열 지정 상세” 페이지에서 다룹니다. 우선 l, c, r, p{width} 네 가지만 알아도 대부분의 표를 만들 수 있습니다.

줄 — 가로줄과 세로줄

가로줄은 \hline 으로 긋습니다. 행과 행 사이, 또는 표의 위아래에 놓아 표 전체 폭에 선 하나를 긋습니다. \hline을 두 개 이어 \hline\hline 으로 쓰면 평행한 두 줄, 즉 이중선 이 됩니다. 표 중간에서 특정 열에만 줄을 긋고 싶다면 \cline{2-3}처럼 열 번호 범위를 지정하는 \cline을 사용합니다.

세로줄은 열 지정 안에 |(세로 막대) 를 끼워 넣어 만듭니다. {|l|c|r|}라고 쓰면 3열의 좌우와 각 열 사이에 세로줄이 들어가고, \hline과 함께 쓰면 모든 셀이 격자처럼 선으로 둘러싸입니다. ||는 이중 세로줄입니다.

latex
\begin{tabular}{|l|c|r|}
  \hline
  左 & 中央 & 右 \\
  \hline
  1 & 2 & 3 \\
  \hline
\end{tabular}

다만 선을 지나치게 많이 긋는 것은 피하는 것이 정석 입니다. 특히 세로줄과 이중선은 전문 조판에서 권장되지 않습니다. booktabs 패키지의 저자는 “세로줄은 쓰지 말고, 이중선도 쓰지 말라”고 분명히 말하며, 학술지 표의 표준은 가로줄 몇 개만 있는 간결한 디자인입니다. 읽기 좋은 표 디자인과 \toprule / \midrule / \bottomrule을 쓰는 방식은 “줄과 출판 품질의 표” 페이지에서 자세히 다룹니다.

행 끝과 행 간격 조정

행 끝의 \\에는 선택 인수 를 붙일 수 있습니다. \\[2pt]처럼 길이를 대괄호에 넣으면 그 행 아래에 추가 세로 공간 이 들어갑니다. 음수 값을 주어 좁힐 수도 있습니다. 선 위아래가 답답해 보이거나 행마다 여백을 주고 싶을 때 사용합니다.

참고로 \\는 본래 줄바꿈 명령 입니다. 표의 행 끝뿐 아니라 뒤에서 다룰 수식 행렬이나 align 같은 정렬 환경에서도 같은 “행 구분자”로 동작합니다. 그래서 “&로 열을 나누고 \\로 행을 바꾼다”는 감각은 표뿐 아니라 수식 정렬에도 그대로 이어집니다.

행 전체의 높이를 일괄로 넓히고 싶다면 \renewcommand{\arraystretch}{1.3}로 행 높이 배율을 바꿀 수 있습니다. 열과 열 사이의 간격(기본값은 한쪽 6pt)은 \tabcolsep이라는 길이로 제어합니다. 이런 세부 치수 조정도 “열 지정 상세”와 “줄과 출판 품질의 표” 페이지에서 다룹니다.

tabular와 table 환경의 차이

자주 혼동되지만 tabulartable은 완전히 다른 것 입니다. tabular표 그 자체, 즉 행과 열의 내용 을 조판하는 환경이며 텍스트 모드라면 어디에나 둘 수 있습니다. 문단 중간, 목록 항목 안, 그림 캡션 안, 심지어 $…$ 밖이라면 각주 안에도 쓸 수 있습니다. tabular 자체에는 캡션도 번호도 배치 조정도 없습니다.

반면 tabletabular를 감싸서 쓰는 부동체(float) 환경입니다. table이 제공하는 것은 \caption{…}을 통한 제목과 자동 연속 번호(“표 1” 등), \label{…}\ref{…}를 통한 상호 참조, 그리고 [htbp] 같은 배치 지정 으로 “페이지 어디에 둘지”를 LaTeX에 맡기는 구조입니다. 표가 커서 페이지 나눔에 걸릴 것 같을 때도 부동체로 만들면 LaTeX가 적절한 위치로 보낼 수 있습니다. table 환경의 자세한 사용법(캡션, 번호, 배치)은 별도 페이지에서 다룹니다.

document.tex
\begin{table}[htbp]
  \centering
  \caption{四半期ごとの売上}
  \begin{tabular}{lrr}
    \hline
    四半期 & 売上 & 前年比 \\
    \hline
    Q1 & 1{,}200 & +5\% \\
    Q2 & 1{,}350 & +8\% \\
    \hline
  \end{tabular}
\end{table}

이 예에서는 바깥쪽 table이 “Table 1: Quarterly sales”라는 번호 붙은 캡션과 배치를 맡고, 안쪽 tabular가 내용을 조판합니다. \centering은 표를 가로 가운데에 놓습니다. 핵심은 내용은 tabular, 제목과 배치는 table 이라는 역할 분담입니다. tabular만으로도 표는 만들 수 있지만, 논문이나 보고서에서 “표 N”으로 참조하려면 table로 감쌉니다.

완전한 예

마지막으로 지금까지의 요소를 조합한 tabular 예를 보겠습니다. 1열은 왼쪽 정렬 레이블, 2열은 줄바꿈하는 p{width} 열, 3열은 오른쪽 정렬 숫자로 구성합니다.

latex
\begin{tabular}{l p{5cm} r}
  \hline
  項目 & 説明 & 価格 \\
  \hline\hline
  りんご & 蜜入りの大玉。贈答にも使われる人気の品種です。 & 380 \\
  みかん & 甘くて手で剥ける小ぶりの柑橘。 & 120 \\
  \hline
\end{tabular}

이 표는 3열로 조판됩니다. 1열 “Item”은 내용의 자연 너비로 왼쪽에, 3열 “Price”는 오른쪽에 맞습니다. 2열 “Description”은 폭 5cm의 p 이므로 긴 설명문은 5cm 폭에서 자동으로 줄바꿈되고 그 셀만 여러 줄이 됩니다. 그 결과 행 높이도 내용에 맞게 늘어납니다. 머리글 행 아래는 \hline\hline으로 이중선, 표의 위아래는 단일 \hline입니다. 같은 긴 글을 l이나 r 열에 넣으면 줄바꿈하지 않고 가로로 늘어나 버립니다. 이것이 p{width}와의 결정적인 차이입니다.