每次我运行下面的代码时,它都不会出错。只有当我尝试在请求的最后一帧中编辑输出时,它才会失败。对于像我这样的 LaTeX/Sweaving 新手来说,更令人困惑的是,我将 xtable(....) 函数粘贴到另一个 R 会话中,它会将 LaTeX 输出生成到我的输出窗口。我甚至将生成的 LaTeX 输出粘贴回我的文档作为新幻灯片,它运行得很顺畅。
如您能提供任何帮助,我们将不胜感激。
\documentclass{beamer}
\usepackage[OT1]{fontenc}
%\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} %set the margins
\usepackage{Sweave}
% before compiling, need to change working directory in open version of R
<<echo=FALSE, eval=TRUE>>=
library(xtable)
Aye <- sample(c("Yes", "Si", "Oui"), 177, replace = TRUE)
Bee <- sample(c("Hum", "Buzz"), 177, replace = TRUE)
Sea <- sample(c("White", "Black", "Red", "Dead"), 177, replace = TRUE)
@
\begin{document}
\begin{frame}
\frametitle{First Slide}
Contents of the first slide
\end{frame}
\begin{frame}
\frametitle{Second Slide}
<<>>=
xtable(format(addmargins(table(Aye, Sea))))
@
\end{frame}
\end{document}
答案1
虽然您没有告诉我们您遇到了什么错误,以及您到底想要实现什么,但我相信问题在于 Sweave 试图将 R 输出逐字包含在 tex 文件中。Beamer 不喜欢逐字逐句地包含在框架中,因此会引发错误。
如果想要将表格包含在框架中,请将 更改为<<>>=
。<<echo=false, results=tex>>
如果您确实想逐字逐句地将 LaTeX 代码包含在表格中,则必须使框架“脆弱”,这样它才能适应 Sweave 插入的逐字环境。