일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 논문작성
- 우분투
- 수치해석
- 논문작성법
- ChatGPT
- 생산성
- MATLAB
- 텝스
- Dear abby
- Julia
- Python
- 수식삽입
- 인공지능
- matplotlib
- IEEE
- WOX
- Zotero
- Statics
- Numerical Analysis
- JAX
- 텝스공부
- 옵시디언
- obsidian
- 고체역학
- pytorch
- 딥러닝
- teps
- Linear algebra
- 에러기록
- LaTeX
- Today
- Total
뛰는 놈 위에 나는 공대생
[LaTeX] Table 만들기 본문
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
'기타 > 논문작성 Writing' 카테고리의 다른 글
[논문작성] Biography (예시) (0) | 2023.04.05 |
---|---|
[LaTeX] 여러 줄 주석처리 (0) | 2023.03.16 |
[논문작성] Zotero에서 bibtex 내보낼 때 제목형식 바꾸는 방법 (0) | 2023.03.07 |
[서지관리프로그램] ENDNOTE/Mendeley/Zotero (3) | 2023.03.06 |
[논문작성] AIAA 양식 정리 (3) Mathematics (0) | 2023.02.15 |