我的texi2dvi
显然位于R CMD Rd2pdf
没有预料到的地方。我的位于/usr/local/bin/texi2dvi
,正在寻找/usr/local/opt/texinfo/bin/texi2dvi
:
[KenMacBook:~/git] % \R CMD Rd2pdf missing
Hmm ... looks like a package
Converting Rd files to LaTeX
Creating pdf output from LaTeX ...
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
Output:
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
Output:
Error in running tools::texi2pdf()
我可以通过运行R_TEXI2DVICMD=/usr/local/bin/texi2dvi R CMD Rd2pdf
解决此问题,然后正确构建文档。
我想将此设置放在我的.Rprofile
中,以便像RStudio(它不会读取我的.zshrc
)和其他随机R会话之类的内容会看到该设置。但是,以下这两项似乎都没有对我的.Rprofile
:
Sys.setenv(R_TEXI2DVICMD='/usr/local/bin/texi2dvi')
options(texi2dvi='/usr/local/bin/texi2dvi')
我猜.Rprofile
没有被R CMD
命令读取,这是正确的吗?是否有适当的地方放置我的设置?
更新
由于Dirk怀疑我怀疑.RProfile
影响R CMD Rd2pdf
:-),这是我的证据:
[KenMacBook:~/git] % tail -n2 ~/.Rprofile
Sys.setenv(TEXI2DVI='/no/where')
cat("End of RProfile\n")
[KenMacBook:~/git] % Rscript -e '2+2'
End of RProfile
[1] 4
[KenMacBook:~/git] % R CMD Rd2pdf missing
Hmm ... looks like a package
Converting Rd files to LaTeX
Creating pdf output from LaTeX ...
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
Output:
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
Output:
Error in running tools::texi2pdf()
请注意,文件的设置在正常的R会话中受到尊重,但设置TEXI2DVI
在此处无效。
答案 0 :(得分:1)
这似乎是错误的,因为/usr/local/bin/texi2dvi
应该在$PATH
中。
我有
edd@max:~$ grep texi2dvi /etc/R/Renviron
## used for options("texi2dvi")
R_TEXI2DVICMD=${R_TEXI2DVICMD-${TEXI2DVI-'/usr/bin/texi2dvi'}}
edd@max:~$
请注意,如果您要设置TEXI2DVI
环境变量,则可能必须先启动,然后启动R-think ~/.bash_profile
以下示例明确设置TEXI2DVI
:
edd@max:/tmp$ TEXI2DVI=/no/where R CMD Rd2pdf Rcpp-package.Rd
Converting Rd files to LaTeX ...
Rcpp-package.Rd
Creating pdf output from LaTeX ...
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: 1: /no/where: not found
Output:
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: 1: /no/where: not found
Output:
Error in running tools::texi2pdf()
edd@max:/tmp$
如您所见,它受到尊重。
编辑:另外,我们不要忘记Renviron
和Renviron.site
因此您有很多选择,所以请设置他的。
编辑2:您似乎怀疑~/.Rprofile
:
edd@max:~$ tail -1 .Rprofile
cat("End of .Rprofile\n")
edd@max:~$ Rscript -e '2+2'
End of .Rprofile
[1] 4
edd@max:~$
答案 1 :(得分:1)
有同样的问题,并想出如何解决它 - 我认为它与先前安装的macports干扰使用brew安装R的路径有关(假设你在OSX上)。
在终端中运行以下命令:
defaults write com.apple.finder AppleShowAllFiles TRUE
然后去Apple>强制退出> Finder>重新启动。您现在可以看到隐藏文件了。
在你的用户目录中可能有一个名为.profile的文件,在这个文件中我注释掉了这一行(即在它前面放一个#,如图所示)。
#export PATH=/opt/local/bin:/opt/local/sbin:$PATH
然后导航到你的R.home()(通过在R)中运行R.home()来获得它
R.home()
[1] "/usr/local/Cellar/r/3.2.4_1/R.framework/Resources"
并修改Renviron中的以下行
R_TEXI2DVICMD=${R_TEXI2DVICMD-${TEXI2DVI-'/usr/local/bin/texi2dvi'}}
这为我修好了。
将取景器恢复正常运行
defaults write com.apple.finder AppleShowAllFiles FALSE
并重新启动它。
希望有所帮助。
答案 2 :(得分:-1)
etc/Renviron
包含陈旧信息。我的/usr/local/Cellar/r/3.2.2_1/R.framework/Versions/3.2/Resources/etc/Renviron
文件(使用Homebrew安装)包含以下行:
R_TEXI2DVICMD=${R_TEXI2DVICMD-${TEXI2DVI-'/usr/local/opt/texinfo/bin/texi2dvi'}}
这是某人(可能是我,可能是Homebrew的R包创建者)的遗留物,他在默认位置安装了MacTeX,然后该路径在Renviron
文件中及时冻结。我的texi2dvi
现在位于/usr/local/bin/texi2dvi
,因此需要以某种方式覆盖此值。
$HOME/.Rprofile
和$HOME/.Renviron
无济于事。它们不会很快生效,让R注意到它们。 R根据它在启动时看到的环境设置options("texi2dvi")
,
% tail -n2 ~/.Rprofile
Sys.setenv(TEXI2DVI='/no/where')
options(texi2dvi='/no/where/else')
% cat ~/.Renviron
TEXI2DVI=/no/where/at/all
% R CMD Rd2pdf myPackageDirectory # Still no joy
Hmm ... looks like a package
Converting Rd files to LaTeX
Creating pdf output from LaTeX ...
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
...
有关启动文件的详细信息,请参阅“Initialization at Start of an R Session”,但如上所示,该文档中有关覆盖R_HOME/etc/Renviron
的信息可能不正确或不完整。也许它应该在关于R_CHECK_ENVIRON
和R_BUILD_ENVIRON
的部分中进行修改,以便也包含R CMD RD2*
的内容,但我不确定这是不是正在发生的事情,我只知道这不是解决方案。
$HOME/.zshrc
(和朋友)无济于事。在OS X上,启动GUI应用程序时不会查询您的shell启动文件。您可以use defaults write
or launchctl setenv
更改TEXI2DVI
变量,以便在R启动时设置它,但您还必须将其粘贴在shell启动文件中,以便进程而不是启动launchd
,这是icky。我也version my dotfiles,我不喜欢在launchctl
以太地方保留这些配置,我不能轻易记住它。但是launchctl
可能是解决这个问题的一种方法。
etc/Renviron.site
无济于事。这个令人惊讶 - 我希望它能起作用:
% cat /usr/local/Cellar/r/3.2.2_1/R.framework/Resources/etc/Renviron.site
R_TEXI2DVICMD=/usr/local/bin/texi2dvi
TEXI2DVI=/usr/local/bin/texi2dvi
% \R CMD Rd2pdf myPackageDirectory
Hmm ... looks like a package
Converting Rd files to LaTeX
Creating pdf output from LaTeX ...
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
Running 'texi2dvi' on 'Rd2.tex' failed.
Messages:
sh: /usr/local/opt/texinfo/bin/texi2dvi: No such file or directory
所以Renviron.site
的设置在这里没有生效。我变得不耐烦,所以我没有尝试诊断原因。
etc/Renviron
作为最后的手段所以这最终有效:
% grep TEXI2DVI /usr/local/Cellar/r/3.2.2_1/R.framework/Resources/etc/Renviron
TEXI2DVI=/usr/local/bin/texi2dvi ## Added by Ken
R_TEXI2DVICMD=${R_TEXI2DVICMD-${TEXI2DVI-'/usr/local/opt/texinfo/bin/texi2dvi'}}
我不喜欢它,因为下次升级R时我会丢失这些设置.R的文档专门说"do not change ‘R_HOME/etc/Renviron’ itself"。但至少它有效。