web-dev-qa-db-ja.com

KnitrはPDFをコンパイルしません: "tools :: file_path_as_absolute(output_file)のエラー"

マークダウンでレポートを作成し、関数render()を使用してコードをPDFにコンパイルしました。 1か月前は問題なく動作していましたが、今すぐコードを実行するとエラーが発生します。

Latexmk:これは、Latexmk、John Collins、2016年4月22日、バージョン4.45です。作成される出力:output/Medborgerskabstabeller99.pdf

Tools :: file_path_as_absolute(output_file)のエラー:ファイル 'output/Medborgerskabstabeller99.pdf'は存在しません

PDFの作成に使用するレンダリングコマンドは次のようになります。

outfile <- file.path("output",paste0("Medborgerskabstabeller99"))
render(input = "Medborgerskabstabeller.Rmd",
       encoding = "UTF-8",
       output_file = paste0(outfile,".pdf"))

まず第一に、以前の「Latexmk」メッセージは、コードが機能したときに表示されませんでした。

第二に、「Medborgerskabstabeller99.pdf」が存在しないと言う理由がわからないが、ファイルを作成したばかりだと言ったとき。

問題に関する提案は大歓迎です!

27
Emilie Kirk

より良い解決策は、tinytexを使用することです。

install.packages('tinytex')
tinytex::install_tinytex()

MikTexを使用してインストールする必要がある場合は、MikTexコンソールを開き、不足しているパッケージ設定を次のように変更します。

Always install missing packages on the fly

MikTexをまだインストールしていない場合は、インストール時に次を選択してください。

Install missing packages: Yes

最初にインストールしたとき、Ask me firstを選択しましたが、失敗しました。 MikTexの設定の変更とアンインストールの両方を試してみましたが、ニーズに合わせて少し軽量だったtinytexに落ち着きました。

一番下にソリューションを持つ元のスレッド: https://github.com/rstudio/rmarkdown/issues/1285

25
Shawn

同様の問題がありました。インターネットで検索した後、 community r studio で解決策を見つけました

バグはrmarkdownの1.9バージョンに関連しているようですので、解決策は1.8バージョンに戻すことです

install.packages("devtools")
library(devtools)
install_version("rmarkdown",version=1.8)

再インストールした後、再度編成しようとすると、おそらくMiktexからパッケージをインストールするように求められます。問題がある場合は、適切なミラーを確認してください。お役に立てれば。

16
Juan Acosta

私もこれにこだわったので、出力の質問へのコメントだけです。outfileは絶対パスでなければなりません。 dir.exists()はローカルの作業ディレクトリを検索すると思います。私の場合、".\\"を前に使用すると助かりました。あなたのものでは、paste0(".\\",outfile,".pdf")を使用することになります。

0
Sff

MikTexを使用している場合、おそらくいくつかのパッケージが欠落しています(基本的なMiktexパッケージがインストールされています)。 texファイルをコンパイルして、不足しているパッケージを見つけ(コンパイルエラー)、インストールします。次に、rmdドキュメントを編むと動作するはずです。

0
Elligno

その間、問題は開発バージョン1.10.11で修正されたようです:

devtools::install_github('rstudio/rmarkdown')
0
jay.sf