つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる文書作成18 ~図を並べて表示

 今回はLaTeXで複数の図を1つのfigure環境内にまとめて挿入する方法について紹介する。

1. 図を並べて表示

 LaTeXで複数の図を1つのfigure環境内にまとめて挿入するには、いくつか方法があるがまず2つの図を並べる場合について紹介する。 図を挿入するfigure環境内にminipage環境を挿入して表示する画像ファイルを選択する。例えば

\begin{figure}[htbp]
  \begin{minipage}[b]{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_composite.jpg}
    \caption{Composite}
  \end{minipage}
  \begin{minipage}[b]{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_gradation.jpg}
    \caption{Gradation}
  \end{minipage}
\end{figure}

実行すると以下のように図が並んでそれぞれ番号が表記される。

"図を並べて表示"
図を並べて表示

2. サブキャプションを入れて図を並べて表示

1つの図の中にサブキャプション、例えば図番号の内部に(a),(b)と入れる場合はsubcaptionパッケージを利用する。以下をプリアンブル中に記述してsubcaptionパッケージをロードする。

\usepackage[hang,small,bf]{caption}
\usepackage[subrefformat=parens]{subcaption}
\captionsetup{compatibility=false}

次に2つの図を並べる場合と同様のコードになるが、\caption{}のところを\subcaption{}として、minipage環境外でcaption{}を記述する。

\begin{figure}[htbp]
  \begin{minipage}[b]{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_composite.jpg}
    \subcaption{Composite}
  \end{minipage}
  \begin{minipage}[b]{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_gradation.jpg}
    \subcaption{Gradation}
  \end{minipage}
  \caption{subcaptionを用いて図を並べる}
\end{figure}

実行すると図3のキャプション内に(a),(b)というサブキャプションが挿入され、図が並んで表示される。

"サブキャプションを用いて図を並べる"
サブキャプションを用いて図を並べる

なおsubcaptionロード時にオプションを指定するとサブキャプションの書式を設定できる。subrefformat=parensは括弧(上記の例)、simpleはなし、braceは片括弧に変わる。またlabelsep=spaceは空白(デフォルト、上記の例)、colonはコロン:, periodは. , endashは-がサブキャプションの後に不可される。

3. マトリックス状に図を表示

図をマトリックス状に表示する場合はtabular環境の内部にminipage環境を用いると綺麗に整列して表示させることもできる。tabularなしでminipageだけでも表示できるが、図の配置が揃わなかったりする。 列方向に並べる場合はminipageの間に&を入れ、改行する時は\\を入れる。2x2で図を表示する場合は以下のようになる。

\begin{figure}[htbp]
    \begin{tabular}{cc}
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_composite.jpg}
        \caption{Composite}
        \label{composite}
      \end{minipage} &
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_gradation.jpg}
        \caption{Gradation}
        \label{Gradation}
      \end{minipage} \\
   
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_fill.jpg}
        \caption{Fill}
        \label{fill}
      \end{minipage} &
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_transform.jpg}
        \caption{Transform}
        \label{transform}
      \end{minipage} 
    \end{tabular}
  \end{figure}

実行すると以下のようにそれぞれに図番号が割り当てられて表示される。

"2x2に図を並べて表示"
2x2に図を並べて表示

最後にsubcaptionを用いて2x2で図を表示する場合は

\begin{figure}[htbp]
    \begin{tabular}{cc}
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_composite.jpg}
        \subcaption{Composite}
        \label{composite}
      \end{minipage} &
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_gradation.jpg}
        \subcaption{Gradation}
        \label{Gradation}
      \end{minipage} \\
   
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_fill.jpg}
        \subcaption{Fill}
        \label{fill}
      \end{minipage} &
      \begin{minipage}[t]{0.45\hsize}
        \centering
        \includegraphics[keepaspectratio, scale=0.8]{figures/canvas_transform.jpg}
        \subcaption{Transform}
        \label{transform}
      \end{minipage} 
    \end{tabular}
     \caption{subcaptionを用いた複数図}
  \end{figure}

1つの図番号の中に4つのサブキャプションが表示される。

"サブキャプションを用いて2x2で図を表示"
サブキャプションを用いて2x2で図を表示

4. まとめ

 今回は図をminipageを用いて並べて表示する方法とsubcaptionパッケージを用いてサブキャプションを入れる方法について紹介した。