log

org-s5 で Org-mode 形式のテキストからスライドを生成する

スライドを作るときに PowerPoint やら Keynote やら立ち上げるのが面倒なのでテキストからスライドを生成するツールを使っている。
最近 Emacs 環境を整えてるので、スライドも Emacs 経由で(できれば Org-mode から)生成できないか調べてみた。



結果、org-s5 を使うのがよさげだった。前も同名のレポジトリがあったけど、それとは別物らしい。



とりあえずレポジトリを git clone する。


$ git clone git://github.com/eschulte/org-S5.git
$ mv org-s5 ~/.emacs.d/elisp/



init.el に設定を追記する。


; org-s5
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")



スライドを生成するためのファイルを作る。
~/Dropbox/org/test-org-s5.org



ファイルと同じディレクトリに org-s5 内の ui ディレクトリを配置する。


$ cp -r ~/.emacs.d/elisp/org-s5/ui ~/Dropbox/org/



Emacs 上でファイル(test-org-s5.org)を開いた状態で以下のコマンドを実行するとスライドが生成される。



M-x org-export-as-s5



デフォルトの状態だとテーマが微妙なので変更する。
~/.emacs.d/init.el


; org-s5
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")
(setq org-s5-theme "railscast") ; ← 追加



スライド上部に常に出てくるタイトルが邪魔なのでCSSを変更する。
~/Dropbox/org/ui/railscast/pretty.css


h1.title {
visibility: hidden;
}



シンタックスハイライトが微妙なのでカスタマイズする。
そのために、生成時のCSSの扱いを変更する。
~/.emacs.d/init.el


; org-s5
(setq org-export-htmlize-output-type 'css) ; ← 追加
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")
(setq org-s5-theme "railscast")



カスタマイズ用のCSSを作成する。
~/Dropbox/org/ui/railscast/htmlize.css


pre.src {
background-color: #ffffff;
color: #000000;
}

span.org-keyword {
color: #000000;
font-weight: bold;
}

span.org-string {
color: #8b0000;
}

span.org-function-name {
color: #000080;
}

span.org-type {
color: #004000
}

span.org-comment {
color: #888888;
}



作成したCSSを読み込むように修正する。
~/Dropbox/org/ui/railscast/slides.css


@import url(s5-core.css); /* required to make the slide show run at all */
@import url(framing.css); /* sets basic placement and size of slide components */
@import url(pretty.css); /* stuff that makes the slides look better than blah */
@import url(htmlize.css); /* 追加 */



これでとりあえず完了。
ショートカットキー追加したりしたいけどまた後で。