LaTeX Beamerで図表などの位置を絶対座標で指定する方法

  • 9
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

LaTeX Beamerを使いはじめるにあたっての一番の障壁がなんといっても図の配置だと思います.
PowerPointやKeynoteといったWYSIWYG系のプレゼンテーション作成ツールに慣れている人がBeamerスライドを見ると,「ここの図をもうちょっと左に動かして」とか,「ここの部分赤丸で囲んだほうが良いんじゃない」みたいな指摘が飛ぶことがあるのですが,楽な方法がなかなか検索しても出てきません.

これまで私は\vspace\hspaceをふんだんに駆使して図を巧みに配置していたのですが,さすがにこれではコードが汚くなりすぎます.
というわけでシンプルでかつ効果的な方法を見つけたので書きます.

方法

textposパッケージを利用します.プリアンブルに以下を記述します.

\usepackage[absolute,overlay]{textpos}
  • absolute : textposパッケージを絶対座標指定モードで使用する
  • overlay : 文字の上から配置する

textblock*環境の幅と座標を指定して,中に表示させたい図表やテキストを差し込むだけでOKです.

% この場合は (230pt, 100pt) の位置に 0.4\linewidth の幅のブロックができる.
\begin{textblock*}{0.4\linewidth}(230pt, 100pt)
    \begin{figure}
        \centering
        \includegraphics[width=0.8\linewidth]{./figure.pdf}
    \end{figure}
\end{textblock*}

TiKZで描画した図形も同様にして配置できます.

% この場合は (300pt, 180pt) の位置に 0.4\linewidth の幅のブロックができる.
\begin{textblock*}{0.4\linewidth}(300pt,180pt)
    % TiKZを使った図形の描画
    \begin{tikzpicture}
        % 幅 0.7cm, 高さ 0.5cm の楕円を,線幅2pt,色は赤色で作成
        \draw[tangored, line width=2pt] ellipse (0.7cm and 0.5cm);
    \end{tikzpicture}
\end{textblock*}

アスタリスクなしのtextblock環境との違いは値を自由に指定できる点です.textblock環境の方は,変数で設定した値の定数倍の位置に配置するものになっているので,このような用途ではtextblock*環境の方が使いやすいと思います.

textposパッケージはもともと発表ポスターを作る際の図の配置を便利にしようというモチベーションで開発されたもののようですので,Beamerとの相性も抜群ではないでしょうか.
お困りでしたらぜひお試しください.

参考