Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[LaTeX] Table 만들기 본문

기타/논문작성 Writing

[LaTeX] Table 만들기

보통의공대생 2023. 3. 14. 14:35

latex에서 table을 만드는 것이 일반 파워포인트나 워드, 한글에 비해 난이도가 있어서 다들 table generator를 많이 쓰는데 이렇게 만들어서 export했을 때 본인이 원하는 대로 수정하려면 어느정도 원리를 이해할 필요가 있다. 그리고 개인적으로는 export할 때 너무 코드가 난잡해서 불편할 때가 많았다.

그래서 정리하는 표 만들기 방법.

 

참고*

행과 열이 맨날 헷갈리는데, 보통 글을 쓸 때 '행간'을 얼마로 지정할지 정한다. 행은 즉, 각 줄의 사이 간격을 의미한다. 나는 이런 식으로 구별한다.

 

 

1. 기본 코드 구성

 

table을 만들 때는 위치와 정렬 및 구분자를 지정해야 한다.

\begin{table}[hbt] # 위치 지정
\caption{캡션}
\label{tab: 이름}
\begin{tabular}{ccc} # {}안에 정렬 및 구분자 지정
(내용)
\end{tabular}
\end{table}

 

기본 테이블 코드는 \begin{tabular}~\end{tabular}이면 되지만 caption과 label을 위해서 table로 감싸줌으로써 table 객체임을 알 수 있다. 캡션 위치는 table 위 또는 아래인데 위의 코드에는 tabular 시작 전에 썼으므로 캡션이 위에 생긴다.

 

\begin{tabular}만 있는 경우에는

\begin{tabular}[위치]{열 정렬 및 구분자}
\end{tabular}

 

position을 tabular 옆에서 지정한다. 위에서는 \begin{table} 옆에 위치를 지정했다. 위의 예시에서는 hbt 순서로 우선순위를 정했지만 (!,h,t,b,p) 원하는 것을 골라서 쓸 수 있다.

각 인자에 대한 의미는 다음과 같다.

 

! : 결과가 페이지 규격 및 규칙과 잘 안 맞더라도 강제로 배치
h : 표를 바로 이 위치에 배치
t : 표를 페이지 상단에 배치
b : 표를 페이지 하단에 배치
p : 별도의 페이지를 만들고, 그 페이지는 floating 개체(그림이나 표)만 배치

 

2. 내용 정렬 및 선 그리기

 

열은 &로 구분하고 행은 \\로 구분한다.

 

열의 개수는 정렬에 쓰이는 문자로 지정해야 한다.

 

l (왼쪽 정렬), c (가운데 정렬), r (오른쪽 정렬), p{<length>} (폭을 <length> 로 지정하고 양쪽 정렬)

다음과 같이 옵션이 4가지가 있으며, 문자 개수에 따라 열의 개수가 지정된다.

 

선을 그릴 때는 내부에 그려지는 열에 대한 세로선의 경우에는 {|c|c|c|} 다음과 같이 열 문자 사이에 |를 넣어줌으로써 지정할 수 있다.

가로선의 경우에는 행을 바꿀 때 \\를 쓰는데 이 옆에 \hline을 넣어주면 그 행이 넘어갈 때 가로선을 추가하게 된다.

가로선 두 줄을 만들고 싶으면 \hline을 두 번 써주면 된다.

 

만약 일부 열에서만 가로선을 그리고 싶다면 \hline 대신 \cline{a-b} (a는 시작 열, b는 끝 열)로 넣어준다.

 

 

3. 행(row)/열(column) 합쳐서 그리기

 

열을 합쳐서 사용한다면 

\multicolumn{사용할 열의 수}{정렬}{넣을 내용}

이 때 두 개의 열을 사용할 것이라면 시작하는 열에 저 코드를 넣고 열 구분자를 생략하여야 한다.

 

행을 합쳐서 사용한다면 package를 가져와야한다.

\usepackage{multirow}
\multirow{사용할 행 수}{너비}{넣을 내용} # 너비에 *를 넣으면 자동으로 폭 조절

이 때도 합칠 행의 맨 처음에 저 코드를 넣고 아래에서 쓸 때는 내용을 비워둬야 한다.

 

 

예시

 

\begin{table}[htbp]
\caption{Table Type Styles}
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
\multirow{2}{*}{\textbf{Table}}&\multicolumn{3}{|c|}\textbf{Table Column Head} \\
\cline{2-4} 
 & \textbf{\textit{Table column subhead}}& \textbf{\textit{Subhead}}& \textbf{\textit{Subhead}} \\
\hline
copy& More table copy$^{\mathrm{a}}$& &  \\
\hline
\multicolumn{4}{l}{$^{\mathrm{a}}$Sample of a Table footnote.}
\end{tabular}
\label{tab1}
\end{center}
\end{table}

 

 

4. 그 외 유용한 package

 

- booktabs : 더 예쁜 표 그리기

- longtable : table이 길 때 다음 장으로 넘어갈 수 있게 하는 라이브러리

- array : column을 fixed width로 지정할 수 있음

- tabularx : 테이블 전체 크기 조절

 

등 유용한 package가 있는데 잘 사용해보지 않아서 나중에 사용하게 되면 따로 글을 쓸 것 같다.

 


https://www.overleaf.com/learn/latex/Tables

 

 

Comments