使用 R、knitr 和 beamer,我创建了一个 pdf,其中包含我们地区每所学校的图表。我使用 /foreach 循环中的 \includegraphics 命令读取每个图表。我想使用 R 变量“学校”为每所学校创建一个唯一的部分名称。我希望此部分名称出现在左侧目录中。相关代码如下。谢谢。
\foreach \i in {1,...,\Sexpr{length(school)}} {%
\section{\Sexpr{school[i]}} %%% Here is where it is breaking down
\begin{frame}
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{plot_\i.pdf}
\end{frame}%
}
答案1
您使用变量\i
,它是 TeX 变量。问题是,R 对此一无所知。由于 R 在 TeX 之前运行,因此您的循环永远不会到达 R。
相反,您可以在 R 中创建循环。R 代码应该生成 TeX 代码。您需要在模式中输出结果asis
,并抑制代码本身。
这对我有用:
<<echo=FALSE,results='asis'>>=
for (i in 1:length(school)) {
cat(paste("\\section{",school[i],"}\n",sep=""))
cat("\\begin{frame}\n")
cat(paste("\\includegraphics[width=\\textwidth,",
"height=\\textheight,keepaspectratio]{plot_",
i, ".pdf}\n", sep=""))
cat("\\end{frame}\n")
}
@
每个都cat
形成一个 TeX 行,包含在 TeX 文件中;块选项使代码对 TeX 不可见,并且结果按“原样”发送