knitr+beamer

https://github.com/yihui/knitr-examples/blob/master/050-allowframebreaks.Rnw

にあるように, beamerにknitrを埋め込むとき, もし評価のアウトプットが複数ページに渡る場合, 以下のようなknit_hooksを付け加えればよい.

knit_hooks$set(document = function(x) {
gsub('\\\\(begin|end)\\{kframe\\}', '', x)
})

ただし, \usetheme をデフォルト以外だとでないとうまくいかないようにみえる. 実際, 別のテーマを指定するとうまくいかない.

よく調べてみると, 評価のアウトプットのところだけ, フレームタイトルがなければ良いようである.

\documentclass{beamer}
\usetheme{Berkeley}
\title{Test framebreaks}
\author{Kenji Miyazaki}
\begin{document}
\maketitle
<<setup, include=FALSE>>=
library(knitr)
# the kframe environment does not work with allowframebreaks, so remove it
knit_hooks$set(document = function(x) {
gsub('\\\\(begin|end)\\{kframe\\}', '', x)
})
@
\begin{frame}[fragile]
\frametitle{Preliminaries}
<<step0,size="footnotesize",out.width=".7\\linewidth",eval=FALSE>>=
example(step)
@
\end{frame}
\begin{frame}[allowframebreaks,fragile]
%\frametitle{Preliminaries}
<<step0,size="footnotesize",out.width=".7\\linewidth",eval=FALSE>>=
@
\end{frame}
\end{document}

この結果は以下である.

beamer

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中