Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[LaTeX] Table 고급 기능 본문

기타/논문작성 Writing

[LaTeX] Table 고급 기능

보통의공대생 2023. 12. 20. 11:01

LaTeX가 참 편하고 좋지만 단점을 찾자면 table 기능이 조금 어렵다는 점에 있다.

저번 글에서는 기본적인 table 작성 방법을 다루었고 여기서는 몇 가지 사용할 수 있는 좋은 방법들을 모아놓는다.

다루고자 하는 항목은 다음과 같다.

1. Table 글씨 크기 조정
2. Table 사이즈 조절
3. Table 내에서 줄바꿈
4. Table 내 highlight
5. Table vertical, horizontal spacing 변경



1. Table 글씨 크기 조정

이는 문서 내의 일부만 폰트 크기를 바꾸는 기능으로 꼭 table 뿐 아니라 다른 단락 등에도 사용할 수 있는 방법이다.

다음과 같이 폰트 사이즈를 의미하는 커맨드가 있다.

원하는 부분에 다음과 같이 원하는 사이즈의 폰트를 감싸주면 된다.

저 위의 \large와 같은 것들은 절대적인 사이즈가 아니라 default 사이즈를 기준으로 배수를 하는 것이다.

따라서 기본적인 폰트 사이즈는

\documentclass[10pt]{beamer}

다음과 같이 옵션 []안에 8,9,10.. 등의 pt를 설정해주고 로컬하게 바꾸고 싶은 부분은 {\small }와 함께 작성하면 된다.

{\footnotesize \begin{tabular}{|c|c|c|}
                    & & \\
                    & &
                \end{tabular}}

2-3. Table 사이즈 조절 / Table 내에서 줄바꿈 

 

2번과 3번 항목을 같이 묶은 이유는 보통 table가 너무 커지는 문제 때문에 위와 같은 방법들을 고민하기 때문이다.

1) Table 자체 사이즈 조절

이는 이전 글에서도 업로드한 적이 있는데,
graphicx package를 import 하면 \resizebox라는 명령어를 사용할 수 있다.


\resizebox{ 가로 길이 }{ 세로길이 }{ 내용 }


여기서 내용은 굳이 table이 아니어도 가능하기는 하다. 가로 길이를 \textwidth로 맞고 세로 길이도 임의로 정한다면 글자나 그림이 구겨질 수도 있는데, 대신에 !로 설정함으로써 비율을 그대로 맞출 수도 있다.

 

임의로 글씨 크기를 조정할 때

 

자세한 방법은 graphicx document에서 resizebox를 검색하면 된다.

 

\resizebox{\textwidth}{!}{
                {\scriptsize \begin{tabular}{|p{1cm}|p{4cm}|p{4cm}|}
                    & & &
                \end{tabular}}
                }               

 

2) Table 내에서 줄바꿈

 

Table에서 줄바꿈을 하는 방법은 찾아보니 굉장히 많았다. 그 중에서도 간편하게 쓸 수 있는 방법 몇 가지를 소개한다.
각자 목적에 맞게 쓸 여지가 있다.

 

 

2-1. 자동 줄바꿈을 위한 p{length} 사용

 

과거 table 만드는 법을 본 사람이라면

\begin{tabular}{|p{3cm}|p{3cm}|}
\hline
Multilined cell text & 28--31 \\
Very very long \newline cell text & 28--31 \\
\hline
\end{tabular}

 

위의 tabular 옆 p{길이}를 통해 각 열의 가로 폭을 조절할 수 있다는 것을 안다. 따라서 위와 같이 지정하면 무조건 각 열이 3cm로 고정되면서 넘치는 길이는 아래로 넘어가고 좌우정렬이 된다.

 

그런데 내가 원하는 지점에서 일부러 line break를 하고 싶을 수도 있을 것이다. 이럴 때는 두 번째 row처럼 \newline을 삽입해서 강제로 끊어줄 수도 있다.

 

 

2-1. makecell package 사용

makecell package를 사용하면 여러 가지 유용한 기능을 사용할 수 있다. (table line 두께지정, 대각선 셀 만들기, 모든 cell 세로 space 지정하기 등)

 

아래 코드는 makecell package에서 소개한 예시이다. makecell의 여러 옵션들에 대해서 확인해볼 수 있다.

 

 

\begin{tabular}{|c|c|}
\hline
Celltext&28--31\\
\hline
\makecell{Multilined \\cell text}&28--31\\
\hline
\makecell[l]{Left aligned\\cell text}&37--43\\
\hline
\makecell*[r]{Right aligned\\cell text}&37--43\\
\hline
\makecell[b]{Bottomaligned\\cell text}&52--58\\
\hline
\makecell*[{{p{3cm}}}]{Cell long text with predefined width}&52--58\\
\hline
\makecell[{{>{\parindent1em}p{3cm}}}]{Cell long...}&52--58\\
\hline
\end{tabular}

 

\makecell*의 경우에는 vertical \jot space를 만드는 cell이다. 세번째 row와 다섯 번째 row를 보면 셀의 위쪽이 살짝 띄어져있는 것을 볼 수 있다.

makecell이 편한 것은 \newline을 사용하지 않고 \\를 사용했으며 내부를 좀 더 자유롭게 쓸 수 있다는 장점이 있다.

2-1과 마찬가지로 p를 사용하여 자동 줄바꿈을 할 수도 있다.


4. Table 내 Highlight

 

Table 색상을 바꾸기 위해서 \usepackage{colortbl} 패기지를 사용한다.

이 패키지를 이용하면, column color, row color, cell color 등을 지정할 수 있다.

 

\begin{tabular}{|l|c|}
\rowcolor[gray]{.9} one&two\\
\rowcolor[gray]{.5} three&four
\end{tabular}

 

 


 

5. Vertical, Horizontal spacing 변경

 

document 시작 전에

% Change horizontal spacing
\setlength{\tabcolsep}{20pt}
% Change vertical spacing
\renewcommand{\arraystretch}{1.5}

 

다음과 같이 horizontal spacing과 vertical spacing을 지정할 수 있다.

Comments