## テーマについて

スライドの見た目はRDとは別に指定します．それがテーマです．

テーマのテスト用のスライドがsample/theme-bench.rabにあるので 活用してください。

## 置き場所

テーマはrubyの$LOAD_PATHから検索されます．新しくテーマを作成 した場合は$LOAD_PATHに含まれているパス/rabbit/theme/テーマ 名/テーマ名.rbあるいはソースがあるディレクトリ/テーマ 名.rbに置いてください．

## 書き方

テーマはRubyスクリプトです．難しいと思われるかもしれませんが， 凝ったことをしなければそれほど難しいことはありません．

テーマは以下のような記述を列挙していくことになると思います．

1. 対象となるスライド中の要素（段落とか，ページタイトルと か）を選択
2. 選択した要素に対して属性を変更したり，描画時の動作を加 えたりする．

例えば，各ページ（タイトルページは含まない）にあるタイトルの 文字の色を変更したい場合は以下のように書きます．

    match(Page, HeadLine) do |heads|
      heads.prop_set("foreground", "red")
    end

headsというように複数形になっているのは，headsは タイトル（見出し，head line）を0個以上含んでいるからです．

## プロパティ

`prop_set`では前景色（foreground）以外にも以下のものが指 定できます．詳しくはPango Text Attribute Markup を見てください．

font_desc
  フォント情報を指定します．
font_family

  フォント名を指定します．

  フォント名の一覧は`font_families`とやればフォント名の 配列として取得できます．

face
  font_familyと同じです．
size

  フォントの大きさを指定します．

  フォントの大きさを数値で指定する場合は，指定する数値を `screen_size`で変換してから`Pango::SCALE`を掛けて ください．例えば，フォントの大きさを（Rabbitのテーマの世 界の単位で）2にする場合は以下のようにします．

      screen_size(2) * Pango::SCALE

style
  フォントのスタイルを指定します．
weight
  フォントの重みを指定します．
variant
  フォントのvariant（変形方法って感じ？）を指定します．
stretch
  フォントの伸び縮みの具合を指定します．
foreground
  前景色を指定します．
background
  背景色を指定します．
underline
  下線の種類をします．
rise
  文字の上下の位置を指定します．
strikethrough
  取消線を引くかどうかを指定します．
fallback
  指定したフォントがなかった場合に似たようなフォントで代用 するかどうかを指定します．
lang
  言語を指定します．
b
  太字にします．
big
  フォントのサイズを大きくします．
i
  斜体にします．
s
  取消線を引きます．
sub
  下付き文字にします．
sup
  上付き文字にします．
small
  フォントのサイズを小さくします．
tt
  固定スペースフォントにします．
u
  下線を引きます．

## フック

要素が描画される前，又は後に実行される手続きを指定することが できます．それぞれ，`add_pre_draw_proc`， `add_post_draw_proc`で指定できます．これらの手続きを削除 するときは，それぞれ`clear_pre_draw_procs`， `clear_post_draw_procs`を使います．

詳しくは．．．とりあえず，今のところはdefaultテーマを参考に してください．