pandoc 和 rmarkdown:无法获取比 rmarkdown 文档高一级的图像
pandoc and rmarkdown: Can't fetch an image one level above a rmarkdown document
我刚开始使用 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 将获取与该目录相关的文件?但似乎 "working directory" 总是设置为相对于 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`
Pandoc 不知道 knitr 的 root.dir
选项。您必须编写相对于当前工作目录的路径,例如 ../figures/test.svg
。或者scripts
目录下的运行Rscript
如果你刚开始使用rmarkdown和knitr,我强烈建议你不要使用root.dir
选项,除非你真的明白这意味着什么。这些目录可以是 really, really tricky.
我刚开始使用 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 将获取与该目录相关的文件?但似乎 "working directory" 总是设置为相对于 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`
Pandoc 不知道 knitr 的 root.dir
选项。您必须编写相对于当前工作目录的路径,例如 ../figures/test.svg
。或者scripts
目录下的运行Rscript
如果你刚开始使用rmarkdown和knitr,我强烈建议你不要使用root.dir
选项,除非你真的明白这意味着什么。这些目录可以是 really, really tricky.