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でのサイズが分かります。