3

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,然后正确构建文档。

我想将该设置放入 my 中.Rprofile,以便 RStudio(不会读取我的.zshrc)和其他随机 R 会话等内容将看到该设置。但以下任何一项似乎都对我没有任何影响.Rprofile

Sys.setenv(R_TEXI2DVICMD='/usr/local/bin/texi2dvi')
options(texi2dvi='/usr/local/bin/texi2dvi')

我猜.Rprofile不会被R CMD命令读取,对吗?有合适的地方放置我的设置吗?

更新:

由于德克怀疑我.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在此处无效。

4

3 回答 3

1

有同样的问题并想出了如何解决它 - 我认为这与之前安装的 macports 干扰了使用 brew 安装 R 时的路径有关(假设你在 OSX 上)。

在终端中运行以下命令:

defaults write com.apple.finder AppleShowAllFiles TRUE

然后去 Apple > Force Quit > Finder > Relaunch。您现在可以看到隐藏文件。

在您的用户目录中可能有一个名为.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

在终端中并重新启动它。

希望有帮助。

于 2016-04-15T10:46:40.540 回答
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之前先启动——想想~/.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$ 

如您所见,它受到尊重。

编辑:也不要忘记RenvironRenviron.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:~$ 
于 2015-11-30T21:11:47.760 回答
0

与 Dirk 的反复讨论产生了一些解决方案,但它们都被埋没了,所以我在这里总结一下。

诊断: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'}}

这是在默认位置安装MacTeX的某个人(可能是我,可能是 Homebrew 的 R 包创建者)的残余,然后该路径在Renviron文件中及时冻结。Mytexi2dvi现在位于/usr/local/bin/texi2dvi,因此需要以某种方式覆盖此值。

1)$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
...

有关启动文件的更多信息,请参阅“ R 会话开始时的初始化”,尽管如上所示,该文档中有关覆盖的信息R_HOME/etc/Renviron对于这种情况是不正确或不完整的。也许它应该在 about 部分进行修改,R_CHECK_ENVIRON并且R_BUILD_ENVIRON还包括一些 about R CMD RD2*,但我不确定这是否是怎么回事,我只知道这不是一个解决方案。

2)$HOME/.zshrc(和朋友)无济于事。

在 OS X 上,启动 GUI 应用程序时不会参考您的 shell 启动文件。您可以使用defaults writelaunchctl setenv更改该TEXI2DVI变量,以便在 R 启动时设置它,但您还必须将它粘贴到您的 shell 启动文件中,以用于不是由启动的进程launchd,这很恶心。我还对我的 dotfiles 进行版本控制,而且我不喜欢将这一点配置保留launchctl在我无法轻易记住它存在的地方。但launchctl大概是解决这个问题的一种方法。

3)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的设置在这里没有生效。我变得不耐烦了,所以我没有尝试诊断原因。

3) 编辑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 的文档特别指出“不要更改 'R_HOME/etc/Renviron' 本身”。但至少它有效。

于 2015-12-01T17:07:27.833 回答