2

我很好奇,有没有办法将 knitr 选项的更改合并到一个循环中?例如,如果我想循环查看相同的代码块在所有不同的 knitr 主题中的外观,我的第一个猜测是:

\documentclass{文章}

\begin{document}

<<test>>=
themes<-knit_theme$get()


for (a.theme in themes){

  knit_theme$set(a.theme)

  a <- 3+5
   b<- sum(1:10, na.rm=T)
  for(g in 1:10) z<-0
}
@

\end{document}

然而,这会产生一些非常奇怪的输出。有没有办法使用这样的循环来动态更改输出,或者可能动态包含或不包含某些块?

4

1 回答 1

5

这是不可能的。一个文档只支持一个主题,因为所有颜色都在序言中定义,并且只能有一组定义。如果您想要不同的主题,它们必须存在于不同的文档中。请参阅此要点以了解如何在 HTML 中执行此操作以及以下中的内置主题库knitrhttps ://gist.github.com/3422133

使用 LaTeX/PDF,您还可以在 Rnw 文档上执行循环以生成不同主题的 PDF,并用于\includegraphics{}将它们包含在主要的 TeX 文档中。您可能可以弄清楚,因为它与上面的 HTML 示例没有太大区别。

于 2012-10-15T22:11:51.920 回答