latex で プレゼンテーションやってみる(その2)

latexで文書クラスBeamerを利用する際の話。自由な位置でテキストボックスとか入れたいなら、power point 使うほうが何倍も便利だけど、それをlatexでもやりたいという場合の話。

f:id:sqr2:20140616201625p:plain

座標を指定してテキストボックスなどを表示させる

パッケージtextposを利用する。以下プリアンブルに含めるコード。

コード

\usepackage[absolute,showboxes, overlay]{textpos} % パッケージ読み込み
\setlength{\TPHorizModule}{10mm} % 水平方向の基準単位
\setlength{\TPVertModule}{\TPHorizModule} % 垂直方向の基準単位
\textblockorigin{0mm}{6mm} % 原点

説明

\usepackage[absolute,showboxes, overlay]{textpos}は、textposをオプションabsolute, showbox, overlayを使用して読み込む。それぞれのオプションは

  • absolute : 絶対座標でテキストボックスを描く(relative指定もある)
  • showbox : テキストボックスに枠をつける(これは要らないか)
  • overlay : 最前面にテキストボックスを描く。これを指定しないと、本文の後ろに隠れて見えなくなる。

という意味。

背景に格子を描く

そのままでは、テキストボックスを描く位置が分からないので、目安として格子を描く。textpos の機能に格子を描くコマンド\TPGridがあるようだけど、機能しなかった。そのため、beamer の機能を利用する。プリアンブルに以下のコードを含める。

\setbeamertemplate{background}[grid][step=1cm]

1センチ幅の格子を描くことが出来る。beamer のスライドサイズは、デフォルトで幅128ミリ高さ96ミリ。さらに、この格子は、左下を原点として格子を描く。したがって、上と右はすこし中途半端な格子が描かれる。

テキストボックスを描く

\begin{textblock}{5}[0,0](0,0)
とやかくネルソンさんが意味道義そう紹介にすれまし途そうした模範私か脱却にに対してお邁進なですないます
\end{textblock}

オプションは、\begin{textblock}{テキストボックスの幅(cm単位)}[0, 0](x座標, y座標)となる。xy座標は、プリアンブルに書いた\textblockoriginを基準として描かれる。[0, 0]はテキストボックスのどこを基準にして描く設定。

公式のuser guide には、下記のように書いてある。

The coordinates ⟨ho⟩ and ⟨vo⟩ are fractions of the width and height of the text box, respectively, and state that the box is to be placed so that the reference point (⟨ho⟩,⟨vo⟩) within the box is to be placed at the point (⟨hpos⟩,⟨vpos⟩) on the page. The default specification is [0,0], the top left of the box: [0,1] would be the bottom left, and [0.5,0.5] the middle.