reference figure - PMOB/study-tex GitHub Wiki
図
\begin{figure}[H]
\centering
\includegraphics[options]{path/to/image}
\caption{what this is}
\label{fig:something}
\end{figure}
図の利用にはfigure
環境を使います。
また、画像の挿入にはincludegraphics
コマンドを使いますが、
これを利用するにはgraphicx
パッケージを利用することになります。
また、画像の適用に際して、利用するdviコンバータを指定する必要があります。
これらをまとめて、利用は以下。
\documentclass[dvipdfmx, a4j]{jsarticle}
\usepackage{graphicx}
\usepackage{here}
\newcommand*{\figref}[1]{図\ref{fig:#1}}
\begin{document}
\figref{PMOB}はどうやらPMOBのマスコットらしいが真偽は定かではない。
特に\figref{board}の持ってるやつは何だかわからない。
\begin{figure}[H]
\centering
\includegraphics[width=120]{images/pmob.png}
\caption{PMOBのなんか}
\label{fig:PMOB}
\includegraphics[trim=200 180 0 60, clip]{images/pmob.png}
\caption{持ってるやつ}
\label{fig:board}
\end{figure}
\end{document}
dvipdfmx
利用の明示箇所はdocumentclass
ではなく、以下のようにgraphicx
で行っても大丈夫です。
\documentclass[a4j]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
しかし、documentclass
に指定する方が合理的だと思います。
明示しないとどのdviコンバータが選択されるかは環境依存です。
私の環境ではdviout
になっていました。
明示するようにしましょう。
今回はPMOBのなんかの画像を使って、
texファイルと同じディレクトリにimages
ディレクトリを作成し、
そこに画像を配置しました。
ラベルが正しく働かなかった場合、\caption
の中に入れると正しく動作します。
\includegraphics
コマンドでは、
オプションの指定で画像のサイズ変更やトリミングができます。
オプション | 説明 |
---|---|
width=xx | 画像の幅を指定します。単位が指定されていないとptとなります。 |
height=xx | 画像の高さを指定します。単位が指定されていないとptとなります。 |
keepaspectratio | アスペクト比を保つかどうかの設定です。true /false の値を入れることができます。width とheight の両方が指定されている場合false が設定されます。値を入れなければtrue となります。既定値はtrue です。 |
scale=xx | 画像の大きさを倍率で指定できます。1以下の少数にすれば縮小、1以上の値にすれば拡大できます。 |
angle=xx | 画像を反時計回りにxx度回転させます。 |
clip | 指定されたサイズで画像を切り抜いて表示します。true /false の値を入れることができます。値を入れなければtrue となります。既定値はfalse です。 |
trim=l b r t | clipがtrue なら、画像を左(left)からl 、下(bottom)からb 、右(right)からr 、上(top)からt の範囲で切り抜きます。単位が指定されていないとptとなります。 |
page=x | 複数枚のpdfを参照した場合、ページ数を指定します。既定値は1 です。 |
resolution=x | 解像度を指定します。単位はdpiです。 |
これらのオプションを有効活用すればリソース画像を個別で加工する必要がなく、 手間の削減にもなりますし、リソースの再利用もできますので、積極的に利用していきましょう。
BoundingBox
BoundingBoxについて少し説明をしておきます。
組版される文書の単位が画素となるわけではないので、
TeX/LaTeXで用いる単位は画像の単位ピクセルとは異なります。
そこで、TeX/LaTeXの単位に画像の単位を矯正するために
「BoundingBox」というものを作成する必要があります。
このため、LaTeXでは画像に対してextractbb
というソフトウェアを使って
*.xbb
の形になるBoundingBoxファイルを抽出する必要があります。
昔はいちいち画像に対してextractbb
を使用する必要がありましたが、
TeX Live2015以降(バージョンいくつからか知らぬ)ではこれを自動で実行し、
中間ファイルである*.xbb
ファイルを自動削除するようになりました。
標準でこのオプションが入っていないバージョンでも、
platex
の実行時に--shell-escape
オプションをつけるか、
設定ファイルからextractbb
の実行を許可すれば自動で処理してくれます。
platex --shell-escape
あるいは、kpsewhich -a texmd.cnf
でtexmf.cnf
を見つけ、
web2c
以下にある方のtexmf.cnf
のshell_escape_commands
の値にextractbb
を追加。
私の例
shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
kpsewhich,\
makeindex,\
mpost,\
repstopdf,\
画像をトリミングする際、BoundingBoxを見たければextractbb
を使えば画像のLaTeXでのサイズが分かります。