LaTeX 文書作成入門 【図の挿入編】

2020-08-12

今回は図についてまとめるわね。
ちょっと長くなっちゃったけどゆるして

雛形

サンプル
\begin{figure}[h]
  \centering
  \includegraphics[width=.8\linewidth]{img/sample.png}
  \caption{Sample}
  \label{fig:sample}
\end{figure}

図はfigure環境と\includegraphics[]{}コマンドのセットで挿入するわよ。

まずfigure環境で文書における、その図の配置を決めるのです。
サンプルでは[h]\centeringが配置場所の指定を示してるわね。

まずはその2つについて書くわよ

figure

上記のサンプルをベースに話していきます。
以下の「図の配置」と「センタリング」は表と同じ

図の配置

まず\begin{figure}をしたあとに[h]オプションを付けていますね。
これは「その場に図を出力せよ」という意味があります。

ほかにどんなオプションがあるか以下に示します。

オプション

意味

h

その場に出力

t

ページ上部に出力

b

ページ下部に出力

p

表専用ページに出力

オプションだけど指定しとかなきゃまじ変な位置に図が配置されちゃう

サンプルでは[h]オプションのみ指定しましたが、実はこれ複数指定できます。
[htbp]って書き方もできるわけなのだ。

この場合、図のサイズなどの問題でh、その場に出力ができない場合はtbpと左から右への優先度で出力場所の予備指定ができます。

ここで「hだけでよくね?」と思う方もいるかと思いますが、その論文の提出先によって好ましいスタイルというものがあったりします。
「図表はページ上部にまとめられてる方が良い」という意見もあったり。

ここで注意してほしいのが、「hオプションを指定したからといって、必ずその場に出力してくれるとは限らない」ということです。
場合によってはどうしても図表と後の文章との順番が一部逆転してしまうことがあります。

★でも安心してください、何が何でもその場に出力してくれるオプションが実は存在します。
それが「Hオプション」。大文字ね。

ただし、Hオプションはfloatパッケージを読み込んでおく必要があります。ここだけ注意。

センタリング

\includegraphicsの前に\centeringコマンドを書いておくことで、図を中央寄せ(センタリング)することができます。
書かなかったら左寄せになるわよ。

中央寄せには\begin{center}...\end{center}という環境を使うことでも実現できますが、まあ\centering使うよね......入れ子はできるだけ減らしたいのある

キャプション

図表においてキャプションは必須。

図の場合、キャプションはに書きます(表だとですわね)。
詳しくはサンプル見てもろて

includegraphics

\includegraphics[サイズ指定、角度など]{ファイルの相対アドレス}

figure環境の準備ができたら、あとはこのコマンドで図をぶち込むだけ☆

引数に挿入したい図(pngやpdfファイル)の相対アドレスを入れるのです!

図のサイズがはじめからぴったりサイズとかなかなかないから、ちゃんとオプションでサイズの指定もしよね。
サイズの指定方法を以下にまとめます

オプション

これはなに

width

図の横幅で指定するよ

height

図の縦幅で指定するよ

scale

元の何倍のサイズにするか指定するよ

追記@2021-07-15

ここで、裏技的なおすすめサイズ指定方法を記します(というかこれしか使わん)。

実は「\linewidth」というものがありまして、
\includegraphics[width=0.7\linewidth]{sample.png}のようにすると、
「width=図の挿入箇所の横幅長*0.7」というサイズが指定できます。

これを用いることで、画像サイズに依存せず、一定のサイズで画像を挿入できるようになります。

長さの単位についての詳しい記事はこちら↓

ちなみに角度はangle
angle = 45で45°反時計回りだ。

\includegraphics[scale=1.2, angle=45]{sample.png}って感じで両方指定もできるえ。

ほかにclipっていう、枠からはみ出たとこを切り取るオプションもあるみてぇだ。

なお、先ほど「pngやpdfファイル」と書きました。
それは基本その2つのフォーマットしか使わない、使えないのももちろんあるからです。
あ、jpgももちろん使える。

まあ軽さ重視ならpngやjpg、ジャギーが生理的に無理だったりするならpdfですかね。知らんけど

複数の図を横に並べる

2つの図を横に並べることとかよくありますよね。
そんなときにはminipage環境を使います。

以下に2つの図を横並びに出力する例を示します。

\begin{figure}[htbp]
  \begin{minipage}[b]{.5\linewidth}
    \centering
    \includegraphics[width=.8\linewidth]{sample1.png}
	\subcaption{sample1}
  \end{minipage}%
  \begin{minipage}[b]{.5\linewidth}
    \centering
    \includegraphics[width=.8\linewidth]{sample2.png}
	\subcaption{sample2}
  \end{minipage}
  \caption{sample figures}
\end{figure}

CSSのflexboxみたいなの、と言えば分かりやすいでしょうか。
それぞれのminipageでflex-itemの横幅を決めて並べるという。

上の例で、もし2つ目のminipageの横幅が.6\linewidthだったら、横には並ばず縦に並びますね。

minipage間の%には後ろの改行を無視する意味があるのだが、これ書いとかないとwidth=.45\linewidthとかにしてやらないと横並びになってくれないのじゃ......

ちなみにオプションの[b]は、minipage環境の縦位置を揃えるためのものです。
サイズが異なる図を並べるとき、キャプションの縦位置がズレてしまうのを回避できたりしますね。

オプションなしだと中央寄せ、bまたはtを指定すると、揃える基準線を上または下にできます。
btの違いは、文中に(改行せずに)minipage環境を入れてみるとわかります。ここ言葉で説明するより見てみるのが一番だと思う。

ここでは2つの図を並べる例を示しましたが、もちろん3つでも4つでも並べることができます。
\begin{minipage}{.33\linewidth}くらいで3つきれいに並べれるかな

サンプルで使ってるsubcaption{}を使うにはsubcaptionパッケージがいるよ!!!!

画像挿入簡略化マクロの紹介

追記@2021-07-15

みなさん一度は思うことがあると思います、「画像挿入めんどくせぇ!」と。

複数画像を並べるときなんか特にそうですよね、figureにminipageにcenteringにincludegraphicsに……

ここではそんなあなたに救世主をお送りします。

そう、画像挿入簡略化マクロです。
画像ファイル名とサイズを指定しただけで、他のminipageやらcenteringやらをいちいち入力する必要がなくなるの、よくない?

以下のリンク先記事にて、マクロ定義および使用例を紹介しています。

※わざわざ上記リンク先記事のように自分用styファイルを作成せずとも、プリアンブル部に直接マクロ定義を記述しておくだけでも使用できます。

includegraphicsだけじゃない!figure環境の使い道

figure環境を使うのはこれだけじゃないぜ!

LaTeXは文書内で直接図を作ることができるんでぇ!

以下でちょいと紹介するぜ

TikZ

とても有名なやつ
直線、曲線、グラフ、図形、まあ図全般つくれるんだわ

TikZの記事もいつか書きたいケド......図全般つくれるもんだから、なかなかに書く量あるんだわ

調べたらわかりやすい入門記事出ると思うので是非ともチャレンジしてみてほしいわよ

CircuiTikZ

図の中でも回路図に特化したやつ
電気回路はもちろん、論理回路とかもいける。

こっちはまだ日本語の記事少ない......公式の英語ドキュメントがんばって読むのが一番だけど完成度はそれはもう素晴らしいのでオタクは回路図を是非ともCircuiTikZで書いてくれ

スポンサーリンク