2013-02-22 33 views
23

在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 
+1

我要補充一點,我並不急於解決這個問題,因爲我已經關掉在此期間到Linux,因此如果有人誰知道這個問題在幾個月後回答這個問題,請分享你的智慧。提前致謝。 – PatrickT 2013-02-23 18:25:59

+0

嘗試使用普通的R(無RStudio)嘗試上述各種方法,以便至少可以確定其是R問題還是R Studio問題。也讓你的例子可重現。我們不知道您如何獲取該警告消息。 – 2013-02-25 15:51:43

+0

謝謝!我在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

回答

1

我在類似的項目中遇到了同樣的問題,並花了一些時間來理解這些技巧。 即使你清理了路徑,MikTeX出來的事實也是由於某些令人不快的事實(特別是對於像我和其他人那樣的面向nix的開發者)而言,在安裝MikTeX時設置了相當多的Windows註冊表項。便攜式MikTeX(僅限win32)發行版是唯一的例外。所以,如果你確實需要在船上MIKTEX,我的建議是隻是做我所做的:

  1. 卸載當前MIKTEX發行
  2. 清理註冊表(CCleaner的結果不錯)
  3. 安裝便攜的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

+0

這聽起來似乎是合理的,所以我接受了你的回答:我有2年沒有Windows機器,所以我無法檢查。謝謝! – PatrickT 2015-11-27 16:29:28

相關問題