r - 在 Windows 上设置 R 以使用 texlive 而不是 miktex

标签 r latex rstudio miktex

在 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已经在我的路径上,以防万一我从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 也会被选中,这是因为在安装 MikTeX 时,设置了相当多的 Windows 注册表项,这有点令人恼火(特别是对于像我和其他人这样的面向 *nix 的开发人员)。可移植 MikTeX(仅限 win32)发行版是唯一的异常(exception)。因此,如果您确实需要 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

关于r - 在 Windows 上设置 R 以使用 texlive 而不是 miktex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033615/

相关文章:

python - 在Python/R中使用SLINK后分离集群

templates - latex :不同页边距不同

pdf - 将 IPython 笔记本 mhchem markdown 转换为 pdf

r - 在 RStudio/RMarkdown 中,如何设置 wd?

r - 在 R 演示文稿中绘制未填充幻灯片

RStudio 找不到用于绘图的字体

R编程: Evaluating an expression when objects exist in multiple environments

r - 在 R 中实现 1/mean 函数

r - 无法在以前工作的 r 脚本中打开连接

python - matplotlib 中的 Latex 脚本