lastnamesong
[LaTex Figure] 여러 개의 그림을 넣는 법 - 1 (subfigure, LaTex 그림 여러개) 본문
LaTex 문서에 사용되는 그림에 대해서 정리했으니, 이제 그림을 넣는 코드에 대해 다뤄야 할 차례이다.
[LaTex Figure] 문서에 사용하는 이미지 확장자 (PPT 그림 저장 방법)
논문을 리뷰하다보면 어떤 그림을 보고 "와 기깔난다"는 생각이 들 때도 있고 "정말 대충 만들었네" 하는 생각이 들 때도 있다. 어떻게 보면 굉장히 minor한 평가이지만, 그림의 퀄리티, 맞춤법이
lastnamesong.tistory.com
단순하게 그림 한 개를 넣는 것은 구글링을 통해 쉽게 찾아볼 수 있기 때문에 따로 적지는 않겠다.
대신 한 개의 figure에서 여러 개의 그림을 넣는 방법에 대해 정리하도록 하겠다. 내가 아는 LaTex에서 subfigure를 넣는 방법은 크게 1) subfigure, 2) subfloat를 이용하는 방법이 있다. 논문을 쓰는 경우에는 타겟으로 하는 학술지나 학회의 템플릿에서 사용하는 방식이 있다면, 그걸 따르면 된다.
이번 글에서는 subfigure를 이용하여 여러 개의 그림을 넣는 방법을 실제 코드와 그 결과를 보여줌으로써 정리해보겠다.
시작하기에 앞서 두 종류의 패키지가 필요하다. graphix는 그림을 넣기 위한 패키지이고, subcaption은 여러 개의 그림을 넣을 때 필요한 패키지이다. 문서의 단 갯수 (i.e., onecolumn, twocolumn)에 관계 없이 사용 가능한 것을 확인했다.
\usepackage{graphix}
\usepackage{subcaption}
테스트 결과는 단의 종류 (document class의 옵션에 해당하며 onecolumn, twocolumn으로 정의 가능하다.)에 관계 없이 사용 가능한 코드이다.
- Two subfigures
가장 기초적인 두 개의 그림을 넣는 방법이다. 각 subfigure의 크기를 정의하고 그림을 삽입한다.
\begin{figure}[]
\begin{subfigure}{\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1A.png}
\caption{Caption for figure A.}
\label{fig1a}
\end{subfigure}
\vfill
\begin{subfigure}{\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1B.png}
\caption{Caption for figure B.}
\label{fig1b}
\end{subfigure}
\caption{$2 \times 1$ array.}
\end{figure}
\begin{figure}[]
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1A.png}
\caption{Caption for figure A.}
\label{fig2a}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1B.png}
\caption{Caption for figure B.}
\label{fig2b}
\end{subfigure}
\caption{$1 \times 2$ array.}
\end{figure}
- Three subfigures
수직방향의 경우는 두 개짜리에 하나를 더 붙여주면 되므로 생략한다. 수평방향은 크기를 조절해주면 된다.
\begin{figure}[]
\begin{subfigure}{0.32\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1A.png}
\caption{Figure A.}
\label{fig3a}
\end{subfigure}
\hfill
\begin{subfigure}{0.32\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1B.png}
\caption{Figure B.}
\label{fig3b}
\end{subfigure}
\hfill
\begin{subfigure}{0.32\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1C.png}
\caption{Figure C.}
\label{fig3c}
\end{subfigure}
\caption{$1 \times 3$ array.}
\end{figure}
\begin{figure}[]
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1A.png}
\caption{Caption for figure A.}
\label{fig3a}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1B.png}
\caption{Caption for figure B.}
\label{fig3b}
\end{subfigure}
\hfill
\begin{subfigure}{0.99\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1C.png}
\caption{Caption for figure C.}
\label{fig3c}
\end{subfigure}
\caption{Three subfigures with different size.}
\end{figure}
- Four subfigures
마찬가지로 한 방향으로 하는건 그냥 덧붙여주면 된다. \( 2 \times 2\) 행렬에 대해서만 정리하였다. 크기가 다른 그림에 대해서는 바로 위에서 했던 것처럼 subfigure의 크기를 조절하고 \hfill과 \vfill을 적절하게 사용해주면 된다.
\begin{figure}[]
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1A.png}
\caption{Caption for figure A.}
\label{fig3a}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1B.png}
\caption{Caption for figure B.}
\label{fig3b}
\end{subfigure}
\vfill
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1C.png}
\caption{Caption for figure C.}
\label{fig3c}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{Figures/ex_1D.png}
\caption{Caption for figure D.}
\label{fig3c}
\end{subfigure}
\caption{$2 \times 2$ array.}
\end{figure}
Caption은 중괄호 안의 내용을 비우면 labeling (i.e., (a), (b), etc.)만 나오게 할 수 있다. 코드에서 그림마다 정의하는 \label{}은 본문에서 언급할 때에 사용한다. 없어도 에러가 나오지는 않는다.
논문 작성에 조금이나마 도움이 되기를..