Настройка R для приема texlive, а не miktex в Windows

В Windows, как я могу указать R вызывать TeXlive вместо MikTeX?

У меня установлен 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&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=":"))

Я также попытался установить путь к 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

person PatrickT    schedule 22.02.2013    source источник
comment
Попробуйте разные вещи, которые вы пробовали выше, с помощью простого R (без RStudio), чтобы вы могли хотя бы определить, является ли это проблемой R или проблемой R Studio. Также сделайте ваш пример воспроизводимым. Мы понятия не имеем, что вы сделали, чтобы получить это предупреждение.   -  person G. Grothendieck    schedule 25.02.2013
comment
Спасибо! Я запускаю knitr в R (не RStudio, за исключением тестирования переменной окружения RSTUDIO_PDFLATEX, как описано). В сообщениях об ошибках отображается путь к исполняемым файлам miktex. Однако при запуске с texlive ошибок не возникает. Я знаю это, потому что у меня есть 2 настройки Linux и 1 настройка Windows, которые вызывают texlive (я специально удалил miktex с этой машины с Windows для тестирования), и он там работает. Я определил переменную среды с именем R_PDFLATEX, которую использует R, но она не помогает R находить texlive. Какие-либо предложения? Спасибо.   -  person PatrickT    schedule 25.02.2013
comment
Вы также можете попробовать R_PDFLATEXCMD и R_LATEXCMD, чтобы увидеть, имеют ли они какой-либо эффект.   -  person G. Grothendieck    schedule 25.02.2013
comment
Спасибо! стоит попробовать, к сожалению, это не помогло. Sys.getenv ('R_LATEXCMD') [1] C: / texlive / 2012 / bin / win32 / ›Sys.getenv ('R_PDFLATEXCMD') [1] C: / texlive / 2012 / bin / win32 / но затем: запущенная команда 'C: \ PROGRA ~ 2 \ MIKTEX ~ 1.9 \ miktex \ bin \ texi2dvi.exe --quiet --pdf   -  person PatrickT    schedule 26.02.2013
comment
Я поместил это в свой Rprofile (а также выполнил его в консоли): Sys.setenv (pdflatex = C: / texlive / 2012 / bin / win32). Несмотря на то, что Sys.which (pdflatex) возвращает путь к MikTeX ...   -  person PatrickT    schedule 27.02.2013
comment
Переменные среды, которые заканчиваются на CMD, должны содержать команду pdflatex.exe или latex.exe как часть.   -  person G. Grothendieck    schedule 27.02.2013
comment
Google по запросу R_PDFLATEXCMD, чтобы найти примеры.   -  person G. Grothendieck    schedule 28.02.2013
comment
Это далеко не идеально, но вы можете просто удалить MikTeX ...   -  person cameron.bracken    schedule 13.03.2013
comment
вы пробовали это с помощью пакета установки? Если есть пакет texlive, из которого он может быть установлен, он может включать в себя те внутренние настройки, которые вам не хватает. Вы можете изучить содержимое установщика для miktex - возможно, переключатель, который вы ищете, находится там.   -  person EngrStudent    schedule 16.10.2015


Ответы (2)


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

  1. удалите текущий дистрибутив MikTeX
  2. очистка реестра (ccleaner сработал хорошо)
  3. установить портативный дистрибутив Win32 MikTeX

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

person Community    schedule 27.11.2015

Я почти уверен, что вам нужно добавить пути сюда, в глобальные переменные среды. См .: http://statmath.wu.ac.at/software/R/qfin/ и http://www.howtogeek.com/51807/how-to-create-and-use-global-system-environment-variables/

person ZagNut    schedule 04.11.2015