我刚刚开始使用rmarkdown,pandoc和knitr。我在尝试获取pandoc以获取比rmarkdown文档高一级的图像时遇到了很多困难。例如,考虑我们的项目目录是〜/ test,下面的rmarkdown位于〜/ test / scripts:
---
title: "test"
---
```{r global_options, include=FALSE}
library('knitr')
opts_knit$set(root.dir = '~/test')
```
![test](figures/test.svg)
然后我从〜/ test目录运行命令Rscript -e "rmarkdown::render('scripts/test.Rmd')"
。它给了我错误:
pandoc: Could not fetch figures/test.svg
figures/test.svg: openBinaryFile: does not exist (No such file or directory)
我想通过将root.dir设置为项目目录,pandoc将获取相对于该文件的文件?但似乎"工作目录"始终设置为相对于rmarkdown文档的位置?任何帮助,将不胜感激。谢谢,
>sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8 LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_CA.UTF-8
[7] LC_PAPER=en_CA.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] vimcom_1.0-0 setwidth_1.0-3 colorout_1.0-2
loaded via a namespace (and not attached):
[1] tools_3.1.0`
答案 0 :(得分:3)
Pandoc不知道 knitr 的root.dir
选项。您必须编写相对于当前工作目录的路径,例如../figures/test.svg
。或者在Rscript
目录下运行scripts
。
如果您刚开始使用 rmarkdown 和 knitr ,我强烈建议您不要使用root.dir
选项,除非您真的明白这意味着什么。这些目录可以是really, really tricky。