LaTeX 文書作成入門 【図の挿入編】
今回は図についてまとめるわね。
ちょっと長くなっちゃったけどゆるして
雛形
\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
、その場に出力ができない場合はt
、b
、p
と左から右への優先度で出力場所の予備指定ができます。
ここで「h
だけでよくね?」と思う方もいるかと思いますが、その論文の提出先によって好ましいスタイルというものがあったりします。
「図表はページ上部にまとめられてる方が良い」という意見もあったり。
ここで注意してほしいのが、「hオプションを指定したからといって、必ずその場に出力してくれるとは限らない」ということです。
場合によってはどうしても図表と後の文章との順番が一部逆転してしまうことがあります。
★でも安心してください、何が何でもその場に出力してくれるオプションが実は存在します。
それが「H
オプション」。大文字ね。
センタリング
\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
だったら、横には並ばず縦に並びますね。
ちなみにオプションの[b]
は、minipage
環境の縦位置を揃えるためのものです。
サイズが異なる図を並べるとき、キャプションの縦位置がズレてしまうのを回避できたりしますね。
オプションなしだと中央寄せ、b
またはt
を指定すると、揃える基準線を上または下にできます。b
とt
の違いは、文中に(改行せずに)minipage
環境を入れてみるとわかります。ここ言葉で説明するより見てみるのが一番だと思う。
ここでは2つの図を並べる例を示しましたが、もちろん3つでも4つでも並べることができます。\begin{minipage}{.33\linewidth}
くらいで3つきれいに並べれるかな
画像挿入簡略化マクロの紹介
追記@2021-07-15
みなさん一度は思うことがあると思います、「画像挿入めんどくせぇ!」と。
複数画像を並べるときなんか特にそうですよね、figureにminipageにcenteringにincludegraphicsに……
ここではそんなあなたに救世主をお送りします。
そう、画像挿入簡略化マクロです。
画像ファイル名とサイズを指定しただけで、他のminipageやらcenteringやらをいちいち入力する必要がなくなるの、よくない?
以下のリンク先記事にて、マクロ定義および使用例を紹介しています。
includegraphicsだけじゃない!figure環境の使い道
figure
環境を使うのはこれだけじゃないぜ!
LaTeXは文書内で直接図を作ることができるんでぇ!
以下でちょいと紹介するぜ
TikZ
とても有名なやつ
直線、曲線、グラフ、図形、まあ図全般つくれるんだわ
TikZの記事もいつか書きたいケド......図全般つくれるもんだから、なかなかに書く量あるんだわ
調べたらわかりやすい入門記事出ると思うので是非ともチャレンジしてみてほしいわよ
CircuiTikZ
図の中でも回路図に特化したやつ
電気回路はもちろん、論理回路とかもいける。
こっちはまだ日本語の記事少ない......公式の英語ドキュメントがんばって読むのが一番だけど完成度はそれはもう素晴らしいのでオタクは回路図を是非ともCircuiTikZで書いてくれ