2012-02-09 5 views
3

一時ファイルとしてtexファイルからpdfを生成する必要があります。しかし、私は間違いに直面しています。私はそれは、関数tools::texi2dviが同じ名前のシステムコマンドの呼び出しにすぎないという事実によると信じています。 RtmpディレクトリはRにファイルを作成できるだけなので、そこでpdfファイルを作成することはできません。Rの中でtexi2dviを使って一時ファイルとしてpdfを生成する

私がしようと、私は取得エラーだあります:私は1つの回避策はtempfile()を使用して新しい一時ファイルを作成し、それに出力を書くことtools::texi2dviを依頼されるだろうと考えてい

> tf <- tempfile() 
> brew("template.brew", tf) 
> tools::texi2dvi(tf) 

Error in tools::texi2dvi(tf) : 
    Running 'texi2dvi' on '/tmp/Rtmp9n4JFU/filea5811e6a32a' failed. 
Messages: 
    /usr/bin/texi2dvi: etex exited with bad status, quitting. 

。しかし、私はシステムがファイルを編集することが許可されているかどうかはわかりません。また、出力ファイルtools::texi2dviを設定する方法が見つかりませんでした。

誰かが回避策を知っていますか?

ありがとうございます!

+2

'tex2dvi'を呼び出す前に' setwd() 'を使って作業ディレクトリを変更してみてください。 – Andrie

答えて

2

TeXは、ファイルの拡張がないために混乱しているようです。 以下は動作するはずです。

tf <- tempfile(fileext=".tex") 
cat(
    "\\documentclass{minimal}\\begin{document}test\\end{document}", 
    file=tf 
) 
tools::texi2dvi(tf) 
+0

あなたは正しいです!今私はpdfを生成することができました。しかし、pdfファイルは私の作業ディレクトリ(ホームディレクトリ)に生成され、texファイル(一時的な作業ディレクトリ)と同じフォルダには生成されません。 texi2dviの出力ファイルを設定する方法はありますか? –

+0

これは明らかにtexi2dviのインデントされた動作です。上のAndrieのコメントで示唆されているように、texi2dviを呼び出す前に作業ディレクトリを変更して、それを元に戻してください。 'oldwd < - getwd(); setwd(tempdir()); ...; setwd(oldwd) ' –

関連する問題