pandoc和rmarkdown:无法获取比rmarkdown文档高一级的图像

时间:2015-01-12 20:34:24

标签: r knitr pandoc r-markdown

我刚刚开始使用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`

1 个答案:

答案 0 :(得分:3)

Pandoc不知道 knitr root.dir选项。您必须编写相对于当前工作目录的路径,例如../figures/test.svg。或者在Rscript目录下运行scripts

如果您刚开始使用 rmarkdown knitr ,我强烈建议您不要使用root.dir选项,除非您真的明白这意味着什么。这些目录可以是really, really tricky