Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
knitr与shinny:临时目录_R_Shiny_Latex_Knitr_Pandoc - Fatal编程技术网

knitr与shinny:临时目录

knitr与shinny:临时目录,r,shiny,latex,knitr,pandoc,R,Shiny,Latex,Knitr,Pandoc,我已经建立了一个闪亮的应用程序来评估模型;我希望用户能够下载一个pdf格式的模型摘要时,估计完成。我在应用程序中包括了一个下载按钮,如下所示: output$download_estimation = downloadHandler( filename = "report.pdf", content = function(file) { withProgress(message = 'Generating...', { rmarkdown::render('repor

我已经建立了一个闪亮的应用程序来评估模型;我希望用户能够下载一个pdf格式的模型摘要时,估计完成。我在应用程序中包括了一个下载按钮,如下所示:

output$download_estimation = downloadHandler(
  filename = "report.pdf",
  content = function(file) {
    withProgress(message = 'Generating...', {
      rmarkdown::render('report_model.Rmd', output_file = file)
      })
})
文件“report_model.Rmd”使用自定义LaTeX模板。问题是,每当我在Shinny中单击下载按钮时,knitr都会计算块,但之后我会得到一个“Undefined control sequence”的LaTeX错误。这是因为报告中
\includegraphics{}
中的图形路径被错误指定:而不是在文件路径中仅使用正向斜杠,例如,knitr生成向后斜杠和向前斜杠的组合

\includegraphics{C:\Users\admin\AppData\Local\Temp\Rmksdfj0568\report_model_files/figure-latex/unnamed-chunk-5-1.pdf}.
当我从Shinny外部的RStudio编织完全相同的文档时,不会发生这种情况,因为.tex不是在临时目录中生成的,而是在放置.Rmd的目录中生成的,我得到了正确的路径

\includegraphics{report_model_files/figure-latex/unnamed-chunk-5-1.pdf}.

此外,当我不使用自定义模板,而是使用Pandoc内置模板时,一切正常。然而,我无法理解为什么使用自定义模板会产生不同。有办法解决这个问题吗?

至少在这种情况下,解决这个问题的办法是包括

```{r, echo = FALSE, include = FALSE}
knitr::opts_knit$set(base.dir = normalizePath(tempdir(), winslash = '/'))
knitr::opts_chunk$set(fig.path = "figure/")
```
在使用自定义模板的“Rmd”文件的开头。当应用程序在本地运行时,此功能有效。部署应用程序时,解决方案可能无法工作