2013-02-22 6 views
23

В Windows, как я могу поручить R вызывать TeXlive вместо MikTeX?Настройка R для приема texlive, а не miktex на Windows

У меня есть R, установленный на моих машинах Linux и Windows. На моих машинах Windows у меня есть как MikTeX, так и TeXlive. По причинам, в которые я не буду входить, мне бы хотелось, чтобы R звонил в TeXlive. В это время R вместо этого собирает MikTeX.

Я предполагаю, что мне нужно установить TEXINPUTS внутри моего файла Renviron или что-то подобное. Но я не смог найти точные инструкции в Интернете. Помощь будет оценена.

ОБНОВЛЕНИЕ: Я пробовал разные вещи: меняя порядок TeXlive и MikTeX в PATH. Удаление 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" 

UPDATE 2: Еще одна вещь, которую я пробовал: В то время как texlive уже на моем пути, только в случае, если я добавил его из в R.

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

Я также попытался установить путь к pdflatex, возвращаемый Sys.which («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

+0

Попробуйте различные вещи, которые вы пробовали выше, с помощью простого R (без RStudio), чтобы вы могли, по крайней мере, определить, является ли проблема с R или проблемой R Studio. Также сделайте свой пример воспроизводимым. Мы не знаем, что вы сделали, чтобы получить это предупреждение. –

+0

Спасибо! Я запускаю knitr внутри R (не RStudio, за исключением проверки переменной среды RSTUDIO_PDFLATEX, как описано). Сообщения об ошибках отображают путь к исполняемым файлам miktex. Однако при запуске с texlive ошибок нет. Я знаю это, потому что у меня есть 2 установки linux и 1 установка окон, которые вызывают texlive (я специально удалил miktex из этой машины Windows для тестирования), и он работает там. Я определил переменную среды с именем R_PDFLATEX, которая подхвачена R, но это не помогает R найти texlive. Какие-либо предложения? Благодарю. – PatrickT

ответ

1

Я столкнулся с той же проблемой в аналогичном проекте и некоторое время разбирался в трюках. Тот факт, что MikTeX выбирается, даже если вы очистили путь, вытекает из некоторого раздражающего факта (особенно для * nix-ориентированных разработчиков, таких как я и другие), что при установке MikTeX установлено довольно большое количество записей реестра Windows. Единственным исключением является переносимый дистрибутив MikTeX (только win32).Так что, если вам нужно MikTeX на борту, мой совет просто делать то, что я сделал:

  1. удалить текущий MikTeX дистрибутивом
  2. очистки реестра (CCleaner работал хорошо)
  3. установить портативную win32 MikTex distro

Теперь проверьте, что ваш путь снова включает в себя путь к каталогу TeXlive bin.
Если вы используете pandoc для создания pdf-файлов из Rmarkdown или других языков разметки, удобным способом решения проблем с путями является указать параметр --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

Это звучит правдоподобно, поэтому я принял ваш ответ: у меня не было машины Windows в течение 2 лет, поэтому я не могу проверить. Благодаря! – PatrickT

 Смежные вопросы

  • Нет связанных вопросов^_^