2013-02-22 18 views
23

Trên Windows, làm thế nào tôi có thể hướng dẫn R gọi TeXlive thay vì MikTeX?Thiết lập R để nhận texlive thay vì miktex trên Windows

Tôi đã thiết lập R trên máy Linux và Windows của mình. Trên các máy Windows của tôi, tôi có cả MikTeX và TeXlive. Vì lý do tôi sẽ không đi vào tôi muốn R gọi TeXlive. Lúc này, R đang chọn MikTeX thay thế.

Tôi đoán tôi sẽ cần đặt TEXINPUTS bên trong tệp Renviron của tôi hoặc một cái gì đó tương tự. Nhưng tôi đã không thể tìm thấy các hướng dẫn chính xác trực tuyến. Trợ giúp sẽ được đánh giá cao.

CẬP NHẬT: Dưới đây là những điều khác nhau tôi đã thử: thay đổi thứ tự của TeXlive và MikTeX trong PATH. Loại bỏ MikTeX khỏi đường đi. Không làm việc, MikTeX vẫn đang được chọn.

Tôi không thể tìm thấy tài liệu liên quan cho R, nhưng tôi đã tìm thấy một số gợi ý trong tài liệu RStudio, vì vậy tôi đã cố gắng giải quyết vấn đề trong RStudio. Tôi định nghĩa thành công trong việc biến môi trường RSTUDIO_PDFLATEX:

Sys.getenv('RSTUDIO_PDFLATEX') 
[1] "C:/texlive/2012/bin/win32" 

[Tham khảo: http://www.rstudio.com/ide/docs/authoring/latex_program?version=0.97.312 & mode = desktop]

nhưng MikTeX vẫn được gọi.

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

UPDATE 2: Một điều tôi đã cố gắng: Trong khi texlive là đã có trên PATH của tôi, chỉ trong trường hợp tôi đã thêm nó từ bên trong R.

Sys.setenv("PATH" = paste(Sys.getenv("PATH"),"C:/texlive/2012/bin/win32",sep=":")) 

Tôi cũng đã cố gắng để thiết lập đường dẫn đến pdflatex như trả về bởi Sys.which ("pdflatex") như sau:

Sys.setenv(pdflatex="C:/texlive/2012/bin/win32") 

cũng như các biến thể với pdflatex hoặc "pdflatex", nhưng điều đó không giúp đỡ. Tôi cũng đã gỡ bỏ tất cả mọi thứ từ các con đường ngoại trừ đường dẫn đến texlive:

Sys.setenv("PATH" = "C:/texlive/2012/bin/win32") 

Đó mang lại cho tôi con đường mong muốn

Sys.which("pdflatex") 
           pdflatex 
"C:\\texlive\\2012\\bin\\win32\\pdflatex.exe" 

Tuy nhiên, chạy texi2dvi thất bại:

tools::texi2pdf(Out) 
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, : 
pdflatex is not available 
+1

Tôi nên thêm rằng tôi không vội vàng giải quyết vấn đề này vì tôi đã chuyển sang Linux trong thời gian chờ đợi, do đó nếu ai đó biết câu trả lời cơ hội cho câu hỏi này vài tháng do đó, xin vui lòng chia sẻ sự khôn ngoan của bạn. Cảm ơn trước. – PatrickT

+0

Hãy thử những điều khác nhau mà bạn đã thử ở trên chỉ với đồng bằng R (không có RStudio) để bạn ít nhất có thể xác định xem đó là vấn đề R hay vấn đề R Studio. Cũng làm cho ví dụ của bạn có thể tái sản xuất. Chúng tôi không biết bạn đã làm gì để nhận được thông điệp cảnh báo đó. –

+0

Cảm ơn! Tôi đang chạy knitr trong R (không RStudio, ngoại trừ kiểm tra biến môi trường RSTUDIO_PDFLATEX, như mô tả). Các thông báo lỗi hiển thị đường dẫn đến các tệp thi hành miktex. Tuy nhiên, nếu chạy với texlive thì không có lỗi. Tôi biết điều này bởi vì tôi có 2 thiết lập linux và 1 cửa sổ thiết lập mà gọi texlive (tôi đặc biệt loại bỏ miktex từ máy tính cửa sổ để kiểm tra), và nó hoạt động ở đó. Tôi đã định nghĩa một biến môi trường có tên là R_PDFLATEX, được chọn bởi R, nhưng nó không giúp R ​​tìm thấy texlive. Bất kỳ đề xuất? Cảm ơn. – PatrickT

Trả lời

1

Tôi đã phải đối mặt với cùng một vấn đề trong một dự án tương tự và dành chút thời gian để hiểu các thủ thuật. Thực tế là MikTeX được chọn ra ngay cả khi bạn dọn dẹp đường dẫn từ thực tế hơi bực mình (đặc biệt là đối với các nhà phát triển định dạng * nix như tôi và những người khác) khi cài đặt MikTeX, một số lượng lớn các mục đăng ký Windows được thiết lập. Bản phân phối MikTeX (win32 only) di động là ngoại lệ duy nhất cho điều này.Vì vậy, nếu bạn cần MiKTeX trên tàu, lời khuyên của tôi chỉ là để làm những gì tôi đã làm:

  1. gỡ bỏ cài đặt distro MiKTeX hiện tại của bạn
  2. dọn dẹp registry (CCleaner làm việc diễn ra tốt đẹp)
  3. cài đặt win32 di MiKTeX distro

Bây giờ hãy kiểm tra xem đường dẫn của bạn có bao gồm đường dẫn thư mục bin TeXlive của bạn lần nữa không.
Nếu bạn sử dụng pandoc để tạo tệp pdf từ Rmarkdown hoặc các ngôn ngữ đánh dấu khác, cách thuận tiện để khắc phục sự cố đường dẫn là chỉ định tùy chọn --latex-engine và thêm tệp đầy đủ làm đối số. Dưới đây là dòng lệnh có thể, được điều chỉnh từ 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

Điều này nghe có vẻ hợp lý nên tôi chấp nhận câu trả lời của bạn: Tôi chưa có máy Windows trong 2 năm, vì vậy tôi không thể kiểm tra. Cảm ơn! – PatrickT

Các vấn đề liên quan