使用Sweave以某种方式可以定义Latex命令 并将块中的结果作为参数传递?
基本上我想在这个例子中创建一些东西:
\newcommand{\myCommand} [1] {
\begin{figure}
\begin{center}
#1
\end{center}
\end{figure}
}
\myCommand{
<<fig=TRUE, results=hide>>
plot(1:10,1:10)
@
}
答案 0 :(得分:2)
绘图块的输出是结果.tex文件中的includegraphics命令:
\includegraphics[width=\maxwidth]{figure/testPlot}
所以你的新命令应该工作(这里有更正的语法):当评估块时,includegraphics被写入.tex文件。完成此步骤后,将使用您的所有命令和选项评估乳胶代码。
\documentclass{article}
\begin{document}
\newcommand{\myCommand} [1] {
\begin{figure}[t]
\begin{center}
#1
\end{center}
\end{figure}
}
\myCommand{
<<testPlot>>=
plot(1:10,1:10)
@
}
\end{document}
<强>更新强> 此解决方案仅适用于knitr:
Rscript -e "library(knitr);knit('myFile.Rnw')"
或制作pdf:
Rscript -e "library(knitr);knit2pdf('myFile.Rnw')"
使用Rstudio,请阅读:Weaving .Rnw using rstudio