wrapfigureとraisebox

LaTeXネタです
某書類の書式で、どうしても図を思い通りに貼れないので力技に出てみた。

予備知識

wrapfigure

書式:

\begin{wrapfigure}[rows]{side}[pos]{width}
...
\end{wrapfigure}

引数:

  • rowsは省略可。本文何行分の高さを取るかの指定。
  • sideは図を本文に対しどちら側に置くかの指定。
    • r = 図が右側
    • l = 図が左側
  • posは省略可。図を寄せた側の開始位置の指定ぽい。正の値を指定すると外にはみ出し、負の値にすると内側に入ってくる。
  • widthは画像の横幅。
raisebox

書式:

\raisebox{raise}[height][depth]{text}

引数:

  • raiseはボックスをどれだけ上に上げるかを単位つきで表す。つまり、正なら上に上がり、負なら下に下がる。
  • depth,heightはオプションなのでつけなくても良い。
    • heightはよく分からん
    • depthはテキスト部分の深さで、指定した分だけテキスト部分の開始位置が下に下がる
  • textは勿論表示する本体。\includegraphicsなども入れられる

戦略

  1. wrapfigureで置き場所確保。[rows]指定で適当に高さを調整する。
  2. raiseboxで上からの位置を固定し、画像上部に何故か入る無駄な余白をつぶす。
  3. raiseboxのせいで画像とキャプションの位置がずれるので、 [depth]の指定で画像の下にキャプションが来るように指定しなおす。
\begin{wrapfigure}[14]{r}[0pt]{68mm}
 \begin{center}
  \raisebox{-15.5zw}[0pt][15.5zw]{\includegraphics[clip,width=68mm]{../figs/whole.jpg}}
  \caption{研究の概要}
  \label{fig:system}
 \end{center}
\end{wrapfigure}