themeを書く
themeは,タイトルスライドで theme を指定して選択する.例:
: theme rabbit
自分でthemeを書く場合は,theme名がhogeなら rubyの$LOAD_PATH/rabbit/theme/hoge/hoge.rb のように配置する.
この間使ったthemeの一部.
include_theme("rabbit") include_theme("image-timer") slide_body = [Slide, Body] item_list_item = [ItemList, ItemListItem] n = 0.9 match(*(slide_body + (item_list_item * 1))) {|items| items.prop_set("size", (screen_size(5 * n) * Pango::SCALE)) } match(*(slide_body + (item_list_item * 2))) {|items| items.prop_set("size", (screen_size(4 * n) * Pango::SCALE)) } match(*(slide_body + (item_list_item * 3))) {|items| items.prop_set("size", (screen_size(3 * n) * Pango::SCALE)) } match("**", Text) {|texts| texts.prop_set("font-family", "Hiragino Maru Gothic Pro") } match("**", PreformattedText, "**", Text) {|texts| texts.prop_set("font-family", "Monaco") }
rabbitをベースにちょっと弄っただけだけど,この短いソースからいくつかの重要な事実が分かる.
- matchは可変長引数で階層を指定
match(Slide, Body, ItemList, ItemListItem) {|items| ... }
のような感じで.- matchはワイルドカードっぽいものが使える
- "**"は「任意の要素の繰り返し」という意味だろうか?
- 亀を出すには
include_theme("image-timer")
- タイトルスライドで allotted-time を指定する必要がある:
: allotted-time 20m
デフォルトだと文字がでかすぎると思って,全体的に少し小さくしようと思ったんだけど,そういうやり方が分からなかった.仕方なく各ネストレベルで個別に指定した.これ以上深くネストしたらどうなるかは知らない.
画面サイズはどうやって設定するんだろう?