# To run with it without system install. # % ruby -I./lib bin/rabbit -f sample/rabbit-implementation.rd # $Id$ = Rabbitの実装 : subtitle The implementation of Rabbit : author 須藤功平 : institution COZMIXNG : theme rabbit = 概要 * Rabbitって何? * Rabbitってどうなってるの? = Rabbit? * Ruby/GTK2を用いたプレゼンツール * フォントはアンチエイリアス * 多言語対応 * ソースはRD * 簡単に書ける = ターゲット * 使うべき人 * 楽にスライドを作成したい人 * 使うべきではない人 * 数式ばかり使う人 * スライドをGUIで作成したい人 * 豊富なテンプレートが欲しい人 (自分では作りたくない) = スライド作成 * インタラクティブ * ソースの自動再読み込み * テーマの再読み込み * 特殊文字(記号) * UTF-8で直接記述 * 実体参照 = プレゼンテーション * 豊富なキーバインド * Emacs系,vi系,矢印... * 起動時: RD (('→')) Rabbitオブジェクト * モッサリ(遅いマシンだと) * 起動後: オンメモリ * サクサク(遅いマシンでも) = スライド公開 * スライドを画像へ変換 * 画像を並べるのは他のツール * ギャラリー,zphoto... = 実装 * ページの構造 * 描画方法 * テーマ = ブロックとインライン : ブロック 0個以上の要素((-スライド上に配置されるオブジェクト-))を含む 段落,箇条書きなど : インライン 直接描画される要素 テキスト,画像など = テキスト * 多言語を扱える * さまざまな装飾が可能 * サイズ,色,下線... = テキスト * 多言語を扱える * さまざまな装飾が可能 * サイズ,色,下線... ((*Pangoを使用しているから*)) = Pango フレームワーク * 世界中のテキストを配置/表示 : Pan ギリシャ語で「全て」 : Go 日本語で「言語」 = 画像 * URIで指定 * 制限 * 他のインラインと同居できない * ビットマップとして扱う # image # src = lavie.png # caption = Lavie # keep_ratio = true # # width = 100 # # height = 100 # # relative_width = 100 # relative_height = 100 = 描画 * 2つのフェーズ * コンパイル * 描画 * 再帰的 * ネスト数大 (('→')) 計算時間大 * コンパイル結果をキャッシュ = コンパイル * オブジェクトの描画サイズの決定 * シミュレーション描画 * 実際には描画しない * 描画の下準備 * 画像のロード * Pangoレイアウトの生成 = テーマ * 見栄えを指定 * Rubyスクリプトとして記述 * ソースとは独立 * データ(RD)と混在させない * フック * 要素の描画前後 = テーマの適用 流れはCSSと類似 (1) 対象となる要素を選択 (1) 要素に対して * プロパティを設定(代入) * フックを設定(ブロック) (1) 繰り返し = サイズ * 絶対的な値 * 画像サイズで指定可能 * 正規化した値 * ウィンドウサイズに応じて増減 * テキスト/画像サイズで指定可能 * ウィンドウサイズに対する割合 * 画像サイズで指定可能 = まとめ * スライドが楽に作成できる * 見栄えも悪くない * スライド用の書き方をすれば * テーマはRubyスクリプト * 簡単なもの: 知識はいらない * 細部にこだわる: 知識が必要