29

在 Windows 上,我如何指示 R 调用 TeXlive 而不是 MikTeX?

我在我的 Linux 和 Windows 机器上设置了 R。在我的 Windows 机器上,我碰巧有 MikTeX 和 TeXlive 可用。由于我不会进入的原因,我希望 R 调用 TeXlive。此时,R 正在选择 MikTeX。

我猜我需要在我的 Renviron 文件中设置 TEXINPUTS 或类似的东西。但是我一直无法在网上找到准确的说明。帮助将不胜感激。

更新:这是我尝试过的不同的事情:更改 PATH 中 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&mode=desktop]

但是仍然需要使用 MikTeX。

Sys.which("pdflatex")
                                         pdflatex 
"C:\\PROGRA~2\\MIKTEX~1.9\\miktex\\bin\\pdflatex.exe" 

更新 2:我尝试过的另一件事:虽然 texlive 已经在我的 PATH 上,但以防万一我从 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
4

2 回答 2

2

我在一个类似的项目中遇到了同样的问题,并花了一些时间了解其中的技巧。即使您清理了路径,MikTeX 仍然被选中的事实是由于在安装 MikTeX 时设置了相当多的 Windows 注册表项这一有点令人恼火的事实(特别是对于像我和其他人这样面向 *nix 的开发人员)。便携式 MikTeX(仅限 win32)发行版是唯一的例外。因此,如果您确实需要 MikTeX,我的建议就是做我所做的:

  1. 卸载您当前的 MikTeX 发行版
  2. 清理注册表(ccleaner 效果很好)
  3. 安装便携式 win32 MikTeX 发行版

现在再次检查您的路径是否包含您的 TeXlive bin 目录路径。
如果您使用 pandoc 从 Rmarkdown 或其他 markdown 语言创建 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

于 2015-11-27T16:22:58.053 回答
0

我很确定您需要在全局环境变量中添加路径。请参阅:http ://statmath.wu.ac.at/software/R/qfin/和http://www.howtogeek.com/51807/how-to-create-and-use-global-system-environment-variables /

于 2015-11-04T20:37:18.217 回答