株式会社クリアコード > ククログ

ククログ


RabbitでスライドやPDFの自動ページ送り(スライドショー)をする方法

この記事では、プレゼンテーションツールRabbitでスライドやPDFの自動ページ送り(スライドショー)を実現する方法を説明します。Rabbit以外で作成したPDFのスライドショーにも使うことができます。

用途としては、イベントのブースでコミュニティの紹介スライドを流しっぱなしにしておく使い方などを想定しています。

主な対象読者はRabbitでスライドを作成したことがある方ですが、Rabbitを使ったことがない方でも概要を知ることができる構成になっています。

Rabbitとは

Rabbitはプログラマー向け(主にRubyist向け)のプレゼンテーションツールです。

RDやMarkdownなどのテキスト形式でプレゼン資料を作成できるので、好きなエディターでスライドを作成できる、バージョン管理できるなどのメリットがあります。

RubyGems.orgで公開されているので、以下のコマンドでインストールできます。

$ gem install rabbit

マルチプラットフォーム対応なので、LinuxだけでなくOS XやWindowsでも動きます。各プラットフォーム向けのインストール方法はRabbit - インストールにまとまっています。

スライドの作成方法はRabbit - スライドの作り方Rabbit - rabbit-slideコマンドの使い方をご覧ください。作成されたスライドはRabbit Slide Showで公開されています。

Rabbitのテーマ機能

スライドショーはテーマを使って実現するので、テーマについて簡単に説明します。

Rabbitにはテーマ機能があり、スライドの見た目を内容とは別に作成して管理することができます(テーマはRubyで書くことができます)。Rabbit本体にも組み込みのテーマがたくさん含まれていますし、サードパーティ製のテーマはRubyGemsで公開されています。Rabbitのテーマはrabbit-theme-で始まっているので、簡単に検索できます

以下はサードパーティ製テーマの例です。

テーマの中には組み合わせて使うことを想定されているテーマもあります。たとえば、lightning-talk-toolkitというテーマを組み合わせることで、高橋メソッドのような大きな文字を実現することができます。

スライドショーのやり方

スライドショーはslide-showテーマを使って実現することができます。

やり方は3通りあります。

  • (A)右クリックメニューからテーマを追加する
  • (B)起動時のオプションにテーマを指定する
  • (C)専用のテーマを作成する

(A)は簡単ですが、カスタマイズができません。(B)は事前にPDFを生成しておく必要がありますが、Rabbit以外で作成したPDFも使えます。(C)は少し手間がかかりますが、間隔やループの有無のカスタマイズができます。

(A)右クリックメニューからテーマを追加する

右クリックメニューからテーマを追加して、途中からスライドショーを開始するやり方です。

このやり方は簡単です。Rabbitを起動したあとに、右クリックメニュー(実はスライドショー以外にもいろいろなことができます)から「テーマを追加」>「時間」>「スライドショー」を選択するだけです。そうすれば自動で次のページに進むようになります。次のページに進むまでの間隔は、「持ち時間(allotted time)/スライドの全ページ数」になります(持ち時間が設定されていない場合は60秒です)。

(B)起動時のオプションにテーマを指定する

起動時のオプションにテーマを指定して、最初からスライドショーさせるやり方です。

コマンドラインでRabbitを起動するときに、--themeオプションにslide-showを指定します。このやり方はテーマが上書きされてしまうので、事前にPDFを生成してから使います。PDFは以下のコマンドで生成できます。

$ rabbit --print --output-filename=XXX.pdf XXX.rd

オプションを短縮して以下のように書くこともできます(詳細は--helpオプションで見られます)。

$ rabbit -p -o XXX.pdf XXX.rd

そして以下のコマンドを実行すれば、最初からスライドショーする状態でRabbitを起動できます。

$ rabbit --theme=slide-show XXX.pdf

また、PDFの再生時に持ち時間を指定する場合は--allotted-timeオプションを指定します。Rabbit以外で作成したPDFにかめとうさぎのタイマーを表示するときによく使われるやり方です。

$ rabbit --allotted-time=1m XXX.pdf

--theme=slide-showオプションと--allotted-timeオプションを組み合わせることで、スライドショーの間隔を調整することができます。

$ rabbit --theme=slide-show --allotted-time=1m XXX.pdf
(C)専用のテーマを作成する

スライドショー専用のテーマを作成するやり方です。少し手間がかかりますが、間隔やループの有無のカスタマイズができます。

rabbit-themeコマンドを使って本格的にテーマを作成してもよいのですが、ここではカレントディレクトリーのテーマファイルを使う簡易的なやり方について説明します。

用意するものは、以下の2ファイルです。

  • 内容を書くファイル
  • テーマを書くファイル
内容を書くファイル

ファイル名は自由ですが、タイトルの英語を付けることが多いです。拡張子はファイル形式に合わせます。

以下はサンプルです。RD形式なので、ファイル名はshiritori.rdとします。

= しりとり

: theme
   .

= 1ページ目

りす

= 2ページ目

すいか

= 3ページ目

かかし

タイトルページのメタ情報のthemeに、テーマ名ではなく.(ドット)を指定するのがポイントです。

Markdown形式の場合は以下のようになります。

# しりとり

theme
:    .

# 1ページ目

りす

# 2ページ目

すいか

# 3ページ目

かかし
テーマを書くファイル

ファイル名はtheme.rbとします。サンプルは以下です。

include_theme("clear-blue")

@slide_show_span = 1000  # ミリ秒
@slide_show_loop = true  # true/false

include_theme("slide-show")

include_themeには好きなテーマを設定します。ここでは、Rabbit本体に組み込みで入っていて人気のあるclear-blueテーマを使います。

@slide_show_span@slide_show_loopで、次のページに進むまでの間隔とループするかどうかを設定することができます。@slide_show_spanはミリ秒で指定します。@slide_show_loopはループするならtrue、しないならfalseを設定します。

最後に、再びinclude_themeを使ってslide-showテーマを組み込みます。

実行

以上の2ファイルを同じディレクトリーに置き、内容を書いたファイルを引数に指定してrabbitコマンドを実行します。

$ rabbit shiritori.rd

そうすると、1000ミリ秒(1秒)間隔でページが進んでループするスライドショーが始まります。

まとめ

RabbitでスライドやPDFのスライドショーを実現する方法を説明しました。興味のある方はコミュニティーにも参加してみてください。

2016-05-06

«前の記事: FirefoxアドオンのWebExtensions移行についてMozilla Blogに寄稿しました 最新記事 次の記事: PostgreSQL標準添付のpg\_trgmでリビルドせずにインデックスを使った日本語全文検索をする方法:LC\_CTYPEにC.UTF-8を指定»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|