RcppしながらSweave

\documentclass{jsbook}

\usepackage{amsmath,amssymb}
\usepackage{bm}
%\usepackage{graphicx}
\usepackage{ascmac}
\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{bigdelim,multirow}
\usepackage{amsmath,amsthm,amssymb,cases}
\usepackage{ascmac}
\usepackage{eclbkbox}
\usepackage{wrapfig}
\usepackage{listings, jlisting}
\usepackage[dvips,usenames]{color}
\usepackage{makeidx}
\usepackage{url}
\usepackage[dvipdfmx,setpagesize=false]{hyperref}
\SweaveOpts{eps=TRUE}

\lstdefinestyle{MyFrame}{backgroundcolor=\color{green},frame=shadowbox}
\lstdefinestyle{MyC++Style} {language=C++,style=MyFrame,frame=none}
\lstset{
    language=R,
    basicstyle=\ttfamily,
    backgroundcolor={\color[gray]{.85}},
    keywordstyle=\color{blue}\bfseries,
}

\begin{document}

\chapter{Rcppを使う}
C++ファイルを書きつつ、それには、自作のlstlistingスタイルを使わせる。
\begin{lstlisting}[style=MyC++Style]
#include <RcppArmadilloExtensions/sample.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp ;

// [[Rcpp::export]]

int int_int(int n,int d) {
	int ret = n+d;
	return ret;
}
\end{lstlisting}
その上で、そのc++ファイルをRの中でsourceCpp()で呼び出す。
そのときのRのためのlstlistingはc++のそれと変わるようにする
\begin{lstlisting}[language=R]
library(Rcpp)
library(RcppArmadillo)
sourceCpp("InOutTemplate.cpp")
x <- runif(100)
\end{lstlisting}
\begin{breakbox}
<<fig=FALSE>>=
library(Rcpp)
library(RcppArmadillo)
sourceCpp("InOutTemplate.cpp")
@
\end{breakbox}
\end{document}