org-reveal の概要

Org-reveal

org-mode でスライドがかける

基本

org-mode の 1サブツリー = 1ページ

サブツリーを多めにして書けばそのまま読めるスライドになる

基本的な機能

試す

遅延表示

こんな

ふうに

一つづつ

出せる

リンク

Google

org-mode のものがそのまま使える

箇条書き

  • 普通に
  • 使える
  • 遅延表示にも対応

ソースコード

htmlize.el によって emacs と同じハイライトになる。

#include <iostream>

int main() {
  std::cout << "hello world" << std::endl;
  return 0;
}

(かなり嬉しい)

数式

MathJax が使える

\begin{align*} \sin^{2} x + \cos^{2} x = 1 \end{align*}

背景画像の変更

ここでは色を指定

(画像も指定できるけど、いい画像がなかった。)

Hack

スライドを埋め込めるようにする

org-reveal.el をちょっといじれば OK

Hack

埋め込んだスライドをフルスクリーンに切り替える

左下のボタンから

ちょっと javasctipt をかけば OK

本文にソースあり

full screen

org-reveal を使うと org-mode でスライドを書くことができる。

埋め込んだスライドのフルスクリーンを切り替えるためのjavascript

window.onload =
    (function(document, Reveal) {
        return function() {
            function save(elem) {
                elem.oldCssText = elem.style.cssText;
            }
            function hide(elem) {
                elem.style.display = "none";
            }
            function adjust(elem) {
                elem.style.padding = "0px";
                elem.style.margin = "0px";
                elem.style.maxWidth = "none";
            }
            function restore(elem) {
                elem.style.cssText = elem.oldCssText;
                delete elem.style.oldCssText;
            }
            function forEach(collection, f) {
                for (i = 0; i < collection.length; ++i) {
                    f(collection[i]);
                }
            }

            // to delete
            var header = document.getElementsByClassName("header");
            var post_meta = document.getElementsByClassName("post-meta");
            var prev_next_post = document.getElementsByClassName("prev-next-post");
            var content = document.getElementsByClassName("content");
            var menu = document.getElementById("menu");

            // to adjust
            var reveal = document.getElementsByClassName("reveal")[0];
            var main = document.getElementById("main");
            var layout = document.getElementById("layout");

            // save current css texts. (ugly, but works.)
            forEach(header, save);
            forEach(post_meta, save);
            forEach(prev_next_post, save);
            forEach(content, save);
            save(menu);
            save(main);
            save(reveal);
            save(layout);

            // this checkbox will be provided in posts.
            // for example "<input id="fullScreenFlag"> full screen"
            var checkbox = document.getElementById("fullScreenFlag");
            var to_fullscreen = function() {
                forEach(header, hide);
                forEach(post_meta, hide);
                forEach(prev_next_post, hide);
                forEach(header, adjust);
                forEach(post_meta, adjust);
                forEach(prev_next_post, adjust);
                forEach(content, adjust);
                hide(menu);
                adjust(main);
                adjust(layout);
                reveal.style.cssText = "";
                reveal.style.height = "100vh";
            }
            var to_windowed = function() {
                forEach(header, restore);
                forEach(post_meta, restore);
                forEach(prev_next_post, restore);
                forEach(content, restore);
                restore(menu);
                restore(main);
                restore(reveal);
                restore(layout);
                Reveal.layout();
            }
            checkbox.onchange = function() {
                if (checkbox.checked) {
                    to_fullscreen();
                } else {
                    to_windowed();
                }
            };
        }
    })(document, Reveal);

このスライドのもとになった org-mode ソース

org-mode でスライドがかける

** 基本

org-mode の 1サブツリー = 1ページ

サブツリーを多めにして書けばそのまま読めるスライドになる

** 基本的な機能

試す

** 遅延表示

#+ATTR_REVEAL: :frag t
こんな

#+ATTR_REVEAL: :frag t
ふうに

#+ATTR_REVEAL: :frag t
一つづつ

#+ATTR_REVEAL: :frag t
出せる

** リンク

[[https://www.google.co.jp/][Google]]

#+ATTR_REVEAL: :frag t
org-mode のものがそのまま使える

** 箇条書き

#+ATTR_REVEAL: :frag (none none t)
- 普通に
- 使える
- 遅延表示にも対応

** 表

| 名前 | スコア |
|------+--------|
| 田中 |     10 |
| 佐藤 |     15 |
| 斎藤 |      5 |

#+ATTR_REVEAL: :frag t :frag_idx 1
アラインには追加の css が必要

#+ATTR_REVEAL: :frag t :frag_idx 1
#+BEGIN_SRC css
.reveal .org-left {
    text-align: left;
}

.reveal .org-right {
    text-align: right;
}
#+END_SRC

** ソースコード

htmlize.el によって emacs と同じハイライトになる。

#+BEGIN_SRC C++
#include <iostream>

int main() {
  std::cout << "hello world" << std::endl;
  return 0;
}
#+END_SRC

#+ATTR_REVEAL: :frag t
(かなり嬉しい)

** 数式

MathJax が使える

#+ATTR_REVEAL: :frag t :frag_idx 1
\begin{align*}
\sin^{2} x + \cos^{2}  x = 1
\end{align*}

** 画像

例: ditaa

#+ATTR_REVEAL: :frag t
#+BEGIN_SRC ditaa :file org-reveal/org-reveal-example.png :exports result :eval no-export
+--------------------------------+
| /--------\ process  /--------\ |
| | data A +--------->| data B | |
| \--------/          \--------/ |
+--------------------------------+
#+END_SRC

#+ATTR_REVEAL: :frag t
#+RESULTS:
[[file:/org-reveal/org-reveal-example.png]]

** 背景画像の変更
:PROPERTIES:
:REVEAL_BACKGROUND: #123456
:REVEAL_BACKGROUND_TRANS: slide
:END:

ここでは色を指定

#+ATTR_REVEAL: :frag t
(画像も指定できるけど、いい画像がなかった。)

** Hack

スライドを埋め込めるようにする

#+ATTR_REVEAL: :frag t
org-reveal.el をちょっといじれば OK

** Hack

埋め込んだスライドをフルスクリーンに切り替える

#+ATTR_REVEAL: :frag t :frag_idx 1
左下のボタンから

#+ATTR_REVEAL: :frag t :frag_idx 2
ちょっと javasctipt をかけば OK

#+ATTR_REVEAL: :frag t :frag_idx 2
本文にソースあり