2017-04-05 16 views
2

モデルを推定するShinyアプリケーションを構築しました。見積りが終わったら、pdf形式でモデルの要約をダウンロードできるようにしたいと思います。次のように私はアプリでダウンロードボタンを含めました:knitr with Shiny:temporary directory

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のテンプレートを使用しています。問題は、シャイニーのダウンロードボタンをクリックするたびにknitrがチャンクを評価しますが、その後は「定義されていない制御シーケンス」のLaTeXエラーが発生することです。代わりにのみ転送使用するには、ファイルパスにスラッシュIニット場合、knitrは、例えば

\includegraphics{C:\Users\admin\AppData\Local\Temp\Rmksdfj0568\report_model_files/figure-latex/unnamed-chunk-5-1.pdf}. 

、後方及び前方スラッシュの組み合わせを生成する:これは\includegraphics{}内のレポートの数値へのパスが間違って指定されているために発生します光沢の外部RStudioからまったく同じ文書、.texを一時ディレクトリにむしろ.Rmdが置かれるディレクトリで製造されていないため、この現象が発生せず、私はまた

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

として正しいパスを取得します私がカスタムテンプレートを使うのではなく、Pandocの組み込みテンプレートを使用するとythingはうまく動作します。私は、しかし、カスタムテンプレートの使用が違いを作る理由を把握することができませんでした。これを修正する方法はありますか?

答えて

1

この問題を解決するには、少なくともこの特定のケースでは、カスタムテンプレートを使用して「RMD」ファイルの先頭に

```{r, echo = FALSE, include = FALSE} 
knitr::opts_knit$set(base.dir = normalizePath(tempdir(), winslash = '/')) 
knitr::opts_chunk$set(fig.path = "figure/") 
``` 

を含めることです。これは、アプリケーションがローカルで実行されているときに機能し、アプリケーションのデプロイ時にソリューションが機能しないことがあります。