在Windows上设置R拾取texlive而不是miktex
在Windows上,如何指示R调用TeXlive而不是MikTeX?在Windows上设置R拾取texlive而不是miktex
我在我的Linux和Windows机器上安装了R。在我的Windows机器上,我恰好同时拥有MikTeX和TeXlive。由于我不想进入的原因,我希望R给TeXlive打电话。此时,R正在拿起MikTeX。
我猜我需要在我的Renviron文件中设置TEXINPUTS,或类似的东西。但我一直无法在网上找到准确的说明。帮助将不胜感激。
更新:这里是我尝试的不同的东西:改变路径中的TeXlive和MikTeX的顺序。从路径中移除MikTeX。两人都没有工作,MikTeX仍然被拾起。
我找不到R的相关文档,但是我在RStudio文档中发现了一些提示,所以我试图在RStudio中解决这个问题。我成功定义的RSTUDIO_PDFLATEX环境变量:
Sys.getenv('RSTUDIO_PDFLATEX')
[1] "C:/texlive/2012/bin/win32"
[参考:http://www.rstudio.com/ide/docs/authoring/latex_program?version=0.97.312 &模式=桌面]
但是MikTeX仍然被要求。
Sys.which("pdflatex")
pdflatex
"C:\\PROGRA~2\\MIKTEX~1.9\\miktex\\bin\\pdflatex.exe"
更新2:我已经试过另外一件事:虽然是的texlive已经在我的道路,以防万一我说从内R.
Sys.setenv("PATH" = paste(Sys.getenv("PATH"),"C:/texlive/2012/bin/win32",sep=":"))
我也试着设置路径如通过以下返回由Sys.which(“pdflatex”)pdflatex:
Sys.setenv(pdflatex="C:/texlive/2012/bin/win32")
以及与PDFLATEX或“PDFLATEX”变种,但没有帮助。我还去掉一切从路径除了路径与texlive:
Sys.setenv("PATH" = "C:/texlive/2012/bin/win32")
这给了我希望的路径
Sys.which("pdflatex")
pdflatex
"C:\\texlive\\2012\\bin\\win32\\pdflatex.exe"
但是,运行TEXI2DVI失败:
tools::texi2pdf(Out)
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, :
pdflatex is not available
我在类似的项目中遇到了同样的问题,并花了一些时间来理解这些技巧。 即使你清理了路径,MikTeX出来的事实也是由于某些令人不快的事实(特别是对于像我和其他人那样的面向nix的开发者)而言,在安装MikTeX时设置了相当多的Windows注册表项。便携式MikTeX(仅限win32)发行版是唯一的例外。所以,如果你确实需要在船上MIKTEX,我的建议是只是做我所做的:
- 卸载当前MIKTEX发行
- 清理注册表(CCleaner的结果不错)
- 安装便携的win32 MIKTEX发行版
现在检查您的路径是否再次包含您的TeXlive bin目录路径。
如果您使用pandoc从Rmarkdown或其他降格语言创建PDF文件,解决路径问题的一种便捷方法是指定--latex-engine
选项并将完整的文件路径添加为参数。下面是一个可能的命令行,改编自RStudio IDE:path/to/pandoc.exe -V papersize=A4 +RTS -K512m -RTS file.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output file.pdf --template path/to/default.tex --highlight-style tango --latex-engine /path/to/pdflatex.exe --variable geometry:margin=1in
这听起来似乎是合理的,所以我接受了你的回答:我有2年没有Windows机器,所以我无法检查。谢谢! – PatrickT 2015-11-27 16:29:28
我要补充一点,我并不急于解决这个问题,因为我已经关掉在此期间到Linux,因此如果有人谁知道这个问题在几个月后回答这个问题,请分享你的智慧。提前致谢。 – PatrickT 2013-02-23 18:25:59
尝试使用普通的R(无RStudio)尝试上述各种方法,以便至少可以确定其是R问题还是R Studio问题。也让你的例子可重现。我们不知道您如何获取该警告消息。 – 2013-02-25 15:51:43
谢谢!我在R中运行knitr(不是RStudio,除了测试环境变量RSTUDIO_PDFLATEX,如上所述)。错误消息显示miktex可执行文件的路径。但是,如果使用texlive运行,则不会出现错误。我知道这是因为我有2个Linux设置和1个调用texlive的窗口设置(我专门从该Windows机器上删除了miktex来测试),并且它在那里工作。我已经定义了一个名为R_PDFLATEX的环境变量,它被R拾取,但它不能帮助R找到texlive。有什么建议么?谢谢。 – PatrickT 2013-02-25 19:40:34