Emacs org-modeを使ってみる: (15) Beamerにエクスポート

このエントリーをはてなブックマークに追加

今回は,LaTeX Beamerファイルにエクスポートする方法についてまとめてみる.
なおUbuntu 8.04 LTSとEmacs22上で, org-6.34c (2010年1月10日リリース)の利用を前提にしている.

設定

.emacs等に以下のように設定する.本来の org-export-latex-classes の設定を上書きしているので注意.

(setq org-export-latex-date-format "%Y-%m-%d")
(setq org-export-latex-classes nil)
(add-to-list 'org-export-latex-classes
  '("jarticle"
    "\\documentclass[a4j]{jarticle}"
    ("\\section{%s}" . "\\section*{%s}")
    ("\\subsection{%s}" . "\\subsection*{%s}")
    ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
    ("\\paragraph{%s}" . "\\paragraph*{%s}")
    ("\\subparagraph{%s}" . "\\subparagraph*{%s}")
))
(add-to-list 'org-export-latex-classes
  '("beamer"
    "\\documentclass[compress,dvipdfm]{beamer}"
    org-beamer-sectioning
))

pLaTeX と dvipdfmx の利用を前提にしている.

  • 2010-02-21追記: graphvizとditaaを利用しているので,それらのインストールと設定が必要である.

orgファイルの例

以下は元のorgファイル beamerexport.org の内容である.

#+TITLE: orgファイルでBeamerプレゼンテーション
#+AUTHOR: 屯遁
#+DATE: 2010年2月18日
#+OPTIONS: toc:nil
#+STARTUP: beamer
#+LATEX_CLASS: beamer
#+BEAMER_FRAME_LEVEL: 2
#+BEAMER_HEADER_EXTRA: \usepackage{orgbeamer}
* 基本  
** リスト
   - 通常の文は,黒で表示される
     \pause
   - \structure{構造的な部分}は =\structure= を使う
     \pause
   - \alert{注意書き}は =\alert= を使う
** ブロック
   前書き
*** ブロック1の見出し
    :PROPERTIES:
    :BEAMER_env: block
    :END:
    ブロック1の文書
    \pause
*** ブロック2の見出し
    :PROPERTIES:
    :BEAMER_env: alertblock
    :END:
    ブロック2の文書
    \pause
*** 説明1
*** 説明2
** 表
   前書き
*** 表の見出し
    :PROPERTIES:
    :BEAMER_env: block
    :END:
    |----------+----+----+----+----+------|
    |          | Q1 | Q2 | Q3 | Q4 | 合計 |
    |----------+----+----+----+----+------|
    | パソコン | 30 |  0 | 50 |  0 |   80 |
    | ソフト   |  5 | 15 | 20 |  3 |   43 |
    | 通信     |  2 |  2 |  2 |  2 |    8 |
    |----------+----+----+----+----+------|
    | 合計     | 37 | 17 | 72 |  5 |  131 |
    |----------+----+----+----+----+------|
#+TBLFM: $6=vsum($2..$5)::@5$2=vsum(@2..@4)::@5$3=vsum(@2..@4)::@5$4=vsum(@2..@4)::@5$5=vsum(@2..@4)
*** 説明1
*** 説明2
** 画像
   \centering
   #+ATTR_LaTeX: width=0.7\textwidth
   [[file:org-2010-02-07.png]]
   - 説明文
** プログラム
   #+BEGIN_SRC c -n
   int main(int argc, char* argv[]) {
       .....
   }
   #+END_SRC
* 発展  
** 見出し \\ サブタイトル
*** コラム1
    :PROPERTIES:
    :BEAMER_col: 0.5
    :BEAMER_env: block
    :BEAMER_envargs: C[t]
    :END:
    コラム1の文
*** コラム2
    :PROPERTIES:
    :BEAMER_col: 0.5
    :BEAMER_env: block
    :BEAMER_envargs: <2->
    :END:
    コラム2の文
** graphvizの図
   \centering
   #+ATTR_LaTeX: height=0.6\textheight
   #+begin_dot images/dot.png -Tpng
   digraph data_relationships {
     "org-mode"
     "org-exp-blocks"
     "dot"
     "ditaa"
     "HTML" [shape=Mrecord, label="{HTML|publish on the web\l}"]
     "LaTeX" [shape=Mrecord, label="{LaTeX|publish in PDF\l}"]
     "org-mode" -> "org-exp-blocks"
     "dot" -> "org-mode"
     "ditaa" -> "org-mode"
     "org-exp-blocks" -> "HTML"
     "org-exp-blocks" -> LaTeX
   }
   #+end_dot
   - 説明文
** ditaaの図
   \centering
   #+ATTR_LaTeX: width=0.3\textwidth
   #+begin_ditaa images/blue.png -r -S
+---------+
| cBLU    |
|         |
|    +----+
|    |cPNK|
|    |    |
+----+----+
   #+end_ditaa
   - 説明文

エクスポートの実行

「C-c C-e l」でLaTeXにエクスポートできる.

スタイルファイルの例

以下はスタイルファイルorgbeamer.styの内容である.

\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}
\usetheme{Warsaw}
\renewcommand{\kanjifamilydefault}{\gtdefault}
\usefonttheme{structurebold}
\setbeamertemplate{blocks}[shadow=true,rounded]
% \setbeamercolor{structure}{fg=blue!60!black}
% \setbeamercolor{alerted text}{fg=red!80!black}
% \setbeamertemplate{navigation symbols}{}

PDFの作成

以下のようにしてPDFを作成する.

  $ platex beamerexport.tex
  $ platex beamerexport.tex
  $ dvipdfmx beamerexport.dvi