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}

figure

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の値を入れることができます。widthheightの両方が指定されている場合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.cnftexmf.cnfを見つけ、 web2c以下にある方のtexmf.cnfshell_escape_commandsの値にextractbbを追加。

私の例

shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
kpsewhich,\
makeindex,\
mpost,\
repstopdf,\

画像をトリミングする際、BoundingBoxを見たければextractbbを使えば画像のLaTeXでのサイズが分かります。