在R中使用texi2dvi生成一个临时文件作为pdf

3
我需要从tex文件生成一个pdf临时文件。然而,我遇到了一个错误。我认为这是因为函数tools::texi2dvi只是调用同名的系统命令。由于Rtmp目录只允许R创建文件,我无法在那里创建pdf文件。
以下是我尝试的内容和错误信息:
> 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.

我相信一个解决方法是使用tempfile()创建一个新的临时文件,并要求tools::texi2dvi将输出写入其中。但是我不知道系统是否允许编辑文件。而且,我找不到设置 tools::texi2dvi 输出文件的方法。
有人知道解决方法吗?
谢谢!

2
在调用 tex2dvi 之前,尝试使用 setwd() 更改工作目录。 - Andrie
1个回答

2

TeX 显然因为缺乏文件扩展名而感到困惑。 以下内容应该可以解决问题。

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

你说得对!现在我可以生成PDF了。但是,PDF文件生成到我的工作目录(主目录)中,而不是与tex文件(临时工作目录)相同的文件夹中。有没有办法设置texi2dvi输出文件? - João Daniel
这显然是texi2dvi的缩进行为。你可以在调用texi2dvi之前更改工作目录,如Andrie上面的评论所建议的那样,并在完成后将其改回原来的状态:oldwd <- getwd(); setwd(tempdir()); ... ; setwd(oldwd) - Vincent Zoonekynd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接