如果我在\usepackage{Sweavel}
文件中包含.rnw
,我会收到X11弹出错误“您似乎正在使用特定于Sweave的语法;您可能需要Sweave2knitr(”IPT-baseline-test。当我在RStudio(版本0.98.484)中编译时,将它转换为knitr。该文件编译,但我不得不驳回错误。
(1)为什么\ usepackage {Sweavel}会触发错误的想法?
(2)是否有办法在文档编译后关闭弹出窗口?
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.5
loaded via a namespace (and not attached):
[1] colorspace_1.2-4 dichromat_2.0-0 digest_0.6.3 evaluate_0.5.1
[5] formatR_0.10 ggplot2_0.9.3.1 grid_3.0.2 gtable_0.1.2
[9] labeling_0.2 MASS_7.3-29 munsell_0.4.2 plyr_1.8
[13] proto_0.3-10 RColorBrewer_1.0-5 reshape2_1.2.2 scales_0.2.3
[17] stringr_0.6.2 tools_3.0.2
答案 0 :(得分:2)
我认为你不应该明确\usepackage{Sweavel}
- knitr
应该自动处理。如果您确实要禁止此误报,可以将Sweavel.sty
重命名为不以Sweave
开头的文件名... https://github.com/yihui/knitr/blob/de7c65c58acfb1f3f5c0ac2f00b92cd2546be943/R/utils-sweave.R上的which_sweave()
函数显示你有什么样的模式knitr
正在寻找检测“旧的Sweave语法”,特别是在这种情况下是正则表达式
regexp <-
'^\\s*\\\\(usepackage(\\[.*\\])?\\{Sweave|SweaveInput\\{|SweaveOpts\\{)'
所以改为mySweavel.sty
应该有用......
grepl(regexp,"\\usepackage{Sweave}") ## TRUE
grepl(regexp,"\\usepackage{Sweavel}") ## TRUE
grepl(regexp,"\\usepackage{mySweavel}") ## FALSE
我的猜测是你的新版本上有knitr
的新版本而不是旧版本的机器版本,并且它正在努力检测旧的Sweave语法。
答案 1 :(得分:0)
删除乳胶文档中的 Sweave
标记可防止出现警告。它不会阻止文件的呈现。因此,上述评论中提出的建议有效...... knit2pdf(在我的情况下)将其弄清楚。 - E