servr包可以实时查看对Rnw文件的编辑吗?

时间:2015-12-02 09:02:14

标签: r pdf latex knitr rnw

据我了解,servr软件包可以实时编辑以HTML格式查看Rmd文件。

但是,servr是否能够实时编辑以PDF格式查看Rnw文件?

1 个答案:

答案 0 :(得分:1)

您可以简单地使用带有Makefile的无限循环来在必要时连续更新PDF。有关简单函数make_maybe(),请参阅https://github.com/yihui/servr/blob/master/R/make.R#L31-L35;有关简单Makefile,请参阅https://github.com/yihui/servr/blob/master/inst/examples/make1/Makefile(您需要更改all的目标make%.pdf: %.Rnw规则}})。然后循环在R中看起来像这样(你当然也可以使用shell脚本):

while (servr:::make_maybe()) {
  Sys.sleep(1)
}

如果您不熟悉make,那么在纯R中实现它也很容易。您只需要检查mtime的{​​{1}},并在每次更新时,重新编译Rnw文件。好吧,既然这很容易,我只需要wrote a function and added it knitr的开发版本。使用 knitr (> = 1.11.20),您只需调用函数file.info('your_file.Rnw')即可连续更新PDF。请注意,您需要一个PDF查看器,可以在PDF文件更新时自行更新(据我所知,Windows上的Acrobat阅读器不起作用;如果您不使用Windows,默认情况下您可能会很好)。