【发布时间】:2017-08-30 20:38:55
【问题描述】:
我已经构建了一个估计模型的 Shiny 应用程序;我希望用户能够在估计完成后以 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 模板。问题是,每当我单击 Shiny 中的下载按钮时,knitr 都会评估这些块,但之后我会收到“未定义控制序列”的 LaTeX 错误。发生这种情况是因为\includegraphics{} 内报告中的数字路径指定不正确:例如,knitr 不是在文件路径中使用正斜杠,而是生成反斜杠和正斜杠的组合
\includegraphics{C:\Users\admin\AppData\Local\Temp\Rmksdfj0568\report_model_files/figure-latex/unnamed-chunk-5-1.pdf}.
当我在 Shiny 之外从 RStudio 编织完全相同的文档时,这不会发生,因为 .tex 不是在临时目录中生成,而是在放置 .Rmd 的目录中生成,并且我得到了正确的路径为
\includegraphics{report_model_files/figure-latex/unnamed-chunk-5-1.pdf}.
此外,当我不使用自定义模板而是使用 Pandoc 内置模板时,一切正常。但是,我无法弄清楚为什么使用自定义模板会有所不同。有没有办法解决这个问题?
【问题讨论】:
标签: r shiny latex knitr pandoc