【发布时间】:2012-07-24 02:40:30
【问题描述】:
我正在尝试使用knitr 制作ggplot2 geoms 的画廊。为了快速做到这一点,我想使用内置的examples 来填充内容。
经过反复试验,我已经到了这一点:
\documentclass[a4paper,titlepage]{tufte-handout}
\usepackage{pdflscape}
\usepackage{graphicx}
\usepackage{alltt}
<<setup, include=FALSE, cache=FALSE>>=
options(replace.assign=TRUE,tidy=TRUE)
library(ggplot2)
library(plyr)
library(scales)
geoms <- setdiff(apropos("^geom_"),"geom_blank")
@
\title{ggplot2 Gallery}
\begin{document}
\maketitle
<<examples, echo=FALSE, comment=NA>>=
for(i in geoms){
writeLines(paste0("\\section{",gsub("_","\\\\_",i),"}"))
do.call("example",list(i))
}
@
\end{document}
但仍有许多问题我无法解决:
我似乎无法在块中混合
markup和asis结果选项,以便生成部分标题。 (这对于稍后的文档导航至关重要)。有没有其他方法可以在块中生成书写 LaTex?有一些示例会引发错误(这就是为什么
geom_blank被排除在外的原因)。 knitr documentation 声明在出现错误的情况下继续计算,但似乎只有编织过程在继续;示例循环在此时停止。有没有办法避免示例中出现错误的部分?example代码输出的语法未突出显示。 (有用但不是必需的)。
【问题讨论】:
-
不,你不能混淆
markup和asis;当geom_blank出现错误时,我很惊讶 ggplot2 通过了 R CMD 检查;我认为最好的方法是使用knitr及其 brew 语法生成带有示例代码的 Rnw 文档,然后编译它。这很有趣,如果你到时候还没有弄清楚,我稍后会回来。 -
将调用包装在 ?try 中以解决第二个问题。错误将被绕过。