使用Emacs-ESS编织Beamer幻灯片(错误停止)

时间:2013-03-03 20:37:39

标签: r emacs latex knitr ess

我正在编织以下文件(注意eRRoR()函数):

\documentclass{beamer}

<<setup, include=FALSE>>=
opts_knit$set(stop_on_error=2L, message=FALSE)
options(width=40)
@

\begin{document}
\begin{frame}[fragile]{Test}
<<test1>>=
eRRoR()
message("aaa")
print("test1")
@

<<test2>>=
print("test2")
@

\end{frame}
\end{document}

我想让knitr在错误时停下来。但是,尽管stop_on_error=2L选项,R输出如下:

> local({..od <- getwd(); setwd("c:/test/"); require(knitr); knit("c:/test/ktest.rnw"); setwd(..od) })


processing file: c:/test/ktest.rnw
  |>>>>>>>>>                                                        |  14%
  ordinary text without R code

  |>>>>>>>>>>>>>>>>>>>                                              |  29%
label: setup (with options) 
List of 1
 $ include: logi FALSE

  |>>>>>>>>>>>>>>>>>>>>>>>>>>>>                                     |  43%
  ordinary text without R code

  |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                            |  57%
label: test1
  |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                   |  71%
  ordinary text without R code

  |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>         |  86%
label: test2
  |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>| 100%
  ordinary text without R code


output file: c:\test\ktest.tex

> 

显然不会发生停止。此外,如果我PdfLaTeX .tex输出文件,我得到以下PDF幻灯片:

Test

   eRRoR()
   ## Error:
   could not find function "eRRoR"
   message("aaa")
   ## aaa
   print("test1")
   ## [1] "test1"

   print("test2")
   ## [1] "test2"

幻灯片确认编织继续,尽管有错误。

还不清楚(对我而言)为什么knitr打印“没有R代码的普通文本”。这些块中有R代码。 此外,通过输出,选项message=FALSE似乎没有效果。

我做错了什么? 我正在使用ESS 12.09-1 [rev。 5167(2012-09-24)]和knitr_0.8。

1 个答案:

答案 0 :(得分:1)

听起来像是在使用knitr的旧版本;见FAQ 1