티스토리 뷰

연구/Latex

LaTeX로 IEEE 논문 쓰기 - 04_Table 관리

태양의티아 2023. 9. 17. 17:28

Blog_Post_Title_Image.png

LaTeX에서 논문을 쓰다 보면 Table을 사용해야 할 때가 많다. 이번 글에서는 Table을 쓸 때, 기본적으로 사용할 수 있는 방법에 대해서 알아보고자 한다.

기본 사용법

표 생성하기

LaTex에서 Table은 기본적으로 Tabular를 통해서 만들어진다. 아래의 코드를 보자.

\begin{tabular}{|c|l|r|} 
	\hline
	Header 1 & Header 2 & Header 3 \\     % 열 제목 
	\hline 
	Row 1, Col 1 & Row 1, Col 2 & Row 1, Col 3 \\ % 첫 번째 데이터 행 
	Row 2, Col 1 & Row 2, Col 2 & Row 2, Col 3 \\ % 두 번째 데이터 행 
	\cline{1-2}
\end{tabular}

LaTex에서는 표를 만들 때, 기본적으로 몇 개의 열을 생성할 것인지 알려줘야 한다. \begin{tabular}{|c|l|r|}에서 두 번째 중괄호에 생성할 열의 개수만큼 (l, c, r) 중에 하나를 선택해서 넣어 주어야 한다. 이렇게 하지 않으면 컴파일 단계에서 Error가 발생한다.

  • 10열 : \begin{tabular}{ccclllrrrc}
  • 3열 : \begin{tabular}{ccc}

생성할 열의 개수를 지정했으면, 그 이후에는 자유롭게 만들면 된다. 이 때, 열 구분은 &를 통해서 수행하고, 행이 끝나면 \\를 넣어주어야 한다.

위의 코드를 LaTex에서 컴파일하면 아래와 같은 표가 만들어진다.

Pasted image 20230917160218.png

표 꾸미기

LaTex의 표는 기본적으로 표가 구분선이 없는 상태로 그려진다. 구분선을 그리는 방법은 기본적으로 총 3가지가 있다.

  • \hline : 수평선을 그린다.
  • \cline{1-2} : 1열~2열 사이의 수평선을 그린다.
  • \begin{tabular}{|cl|r|} : 가장 바깥 외곽선과 2~3열 사이에 수직선을 그린다.

원하는 행과 행 사이에 \cline{1-2} 혹은 \hline을 적어주면 위에서 컴파일된 표와 같은 형태가 나타난다.

표 병합하기

표를 병합하기 위해서는 Package가 필요하다.

\usepackage{multirow}

앞서 Package 관리편을 따라했다면 추가로 진행할 필요는 없으며, 진행하지 않았다면 해당 package를 추가해주자.

해당 Package에서 중요한 함수는 2가지다.

  • \multirow{4}{*}{Text}
  • \multicolumn{1}{c}{Text}

multirow는 행끼리 병합하는 형태를 의미한다. 첫 번째 중괄호는 병합할 행의 개수를 의미하고, 2번째는 바꾸지 말고 그냥 *을 사용하자. 마지막 3번째 중괄호는 들어갈 Text를 의미한다.

multicolumn은 열끼리 병합하는 형태를 의미한다. 첫 번째 중괄호는 병합할 열의 개수이고, 두 번째 중괄호는 해당 Column의 Text 정렬을 어떻게 할 것인지 결정하는 것이다. 마지막 3번째 중괄호는 해당 병합한 Column에 들어갈 Text를 의미한다.

multicolumn은 특히 중요한데, 그 이유는 표 내에서 글자 정렬을 바꾸고 싶을 때 \multicolumn{1}{c}{text}형태로 쓰면 해당 위치만 변경이 가능하기 때문이다. 그래서 표에서 Column Index 부분을 가운데 정렬하고, Data는 우측 정렬하고 싶을 때 Column Index 부분에서 쓰면 좋다.

표를 정렬하기

LaTex에서 Tabular만 사용하게 되면 표는 생성되지만, Caption이나 표의 위치 정렬, ref를 위한 label을 하지는 못한다. 이를 위해서 사용하는 것이 바로 \begin{table}이다.

\begin{table}[t]
    \caption{Experiments}
    \centering
    \begin{tabular}{|c|l|r|} 
		\hline
		Header 1 & Header 2 & Header 3 \\     % 열 제목 
		\hline 
		Row 1, Col 1 & Row 1, Col 2 & Row 1, Col 3 \\ % 첫 번째 데이터 행 
		Row 2, Col 1 & Row 2, Col 2 & Row 2, Col 3 \\ % 두 번째 데이터 행 
		\cline{1-2}
	\end{tabular}
    \label{tab:Experiment}
\end{table}

본문에서는 \ref{tab:Experiment} 으로 언급 가능하다.

위의 코드에서 보이듯이 만들어진 표를 \begin{table} ~~~ \end{table}로 감싸주게 되면, 그사이에 여러가지 추가적인 설정을 할 수 있게 된다.

  • \caption{text1} : text1이라 적힌 Caption을 Table에 넣는다.
  • \centering : 표를 가운데 정렬한다.
  • \label{label_name} : 본문에서 \ref를 통해서 해당 table을 언급하기 위한 label을 작성한다.

표의 길이를 맞추기

Tabular에서 길이 맞추기

Tabular에서 표의 길이를 맞추는 방법은 간단하지만, 생각보다 쉽지 않다. 그래서 해당 방법은 간단하게 언급만 하고 다른 방법을 제시하고자 한다.

열의 길이를 조절하려면 p, m, 또는 b 열 정의자를 사용해서 수행한다. 예를 들어, p{2cm}은 해당 열의 폭을 2 센티미터로 설정한다.

  • p{width}: 고정 너비 열
  • m{width}: 중앙 정렬 열
  • b{width}: 아래 정렬 열

Tabularx를 통한 표의 길이 맞추기

Tabular는 표의 길이를 조절하는 것이 쉽지 않고, 또한 각각의 열을 조절해서 전체 길이를 맞춰야 하는 단점이 존재하고 있기 때문에, 개인적으로는 Tabularx를 사용하는 것을 권장한다.

Tabularx는 아래의 Package를 선언하면 사용할 수 있다.

\usepackage{tabularx}

사용법은 간단하다. 우선 아래에 있는 \newcolumntype{}{} 명령어 3개를 복사해서 붙여 넣어주고, tabular를 tabularx로 바꿔서 선언하고 바로 옆에 중괄호에 전체 표의 길이를 선언해주면 된다.

\begin{table}[t]
    \caption{Experiments}
    \centering
    \newcolumntype{L}{>{\raggedright\arraybackslash}X}
    \newcolumntype{R}{>{\raggedleft\arraybackslash}X}
    \newcolumntype{C}{>{\centering\arraybackslash}X}
    \begin{tabularx}{\linewidth}{cRL}
		\hline
		Header 1 & Header 2 & Header 3 \\     % 열 제목 
		\hline 
		Row 1, Col 1 & Row 1, Col 2 & Row 1, Col 3 \\ % 첫 번째 데이터 행 
		Row 2, Col 1 & Row 2, Col 2 & Row 2, Col 3 \\ % 두 번째 데이터 행 
		\cline{1-2}
	\end{tabularx}
    \label{tab:Experiment}
\end{table}

각각을 설명하면 다음과 같다.

  • \newcolumntype{L}{>{\raggedright\arraybackslash}X}

    • 왼쪽 정렬을 하며, 표의 길이는 유동적으로 조절 해서 맞춘다.
  • \newcolumntype{R}{>{\raggedleft\arraybackslash}X}

    • 오른쪽 정렬을 하며, 표의 길이는 유동적으로 조절 해서 맞춘다.
  • \newcolumntype{C}{>{\centering\arraybackslash}X}

    • 가운데 정렬을 하며, 표의 길이는 유동적으로 조절 해서 맞춘다.
  • \begin{tabularx}{\linewidth}{cRL}

    • 표의 전체 길이를 \linewidth에 맞춰서 그린다.
    • cRL
      • 첫 번째 열은 일정한 열의 넓이를 갖도록 하고, 중앙 정렬한다. (tabular의 기능)
      • 두 번째 열은 전체 표의 길이에 맞게 열의 넓이를 확장하고, 오른쪽 정렬한다.
      • 두 번째 열은 전체 표의 길이에 맞게 열의 넓이를 확장하고, 왼쪽 정렬한다.

해당 기능을 잘 사용하면 Column이나 전체 Page에 딱 맞게 들어가는 표를 생성할 수 있게 된다.

–관련 글–
LaTeX로 IEEE 논문 쓰기 - 00_Overleaf 준비
LaTeX로 IEEE 논문 쓰기 - 01_IEEE format 가져오기
LaTeX로 IEEE 논문 쓰기 - 02_Package 관리
LaTeX로 IEEE 논문 쓰기 - 03_구조화 및 Reference 구조화

-이 글은 Obsidian을 통해서 작성되었습니다-

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함