Настройка R для приема texlive, а не miktex в Windows
В Windows, как я могу поручить R вызывать TeXlive вместо MikTeX?
У меня есть R, установленный на моих машинах Linux и Windows. На моих машинах Windows у меня есть как MikTeX, так и TeXlive. По причинам, в которые я не буду входить, мне бы хотелось, чтобы R звонил в TeXlive. В это время R подбирает MikTeX вместо этого.
Я предполагаю, что мне нужно будет установить TEXINPUTS внутри моего файла Renviron или что-то подобное. Но я не смог найти точные инструкции в Интернете. Помощь будет оценена.
UPDATE: Вот несколько вещей, которые я пробовал: изменение порядка 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
Ответы
Ответ 1
Я столкнулся с той же проблемой в аналогичном проекте и некоторое время разбирался в трюках.
Тот факт, что MikTeX выбирается, даже если вы очистили путь, вызвал несколько раздражающий факт (особенно для * nix-ориентированных разработчиков, таких как я и другие), что при установке MikTeX установлено довольно большое количество записей в реестре Windows. Единственным исключением является переносимый дистрибутив MikTeX (только win32). Поэтому, если вам нужен MikTeX на борту, мой совет - просто сделать то, что я сделал:
- удалите текущий дистрибутив MikTeX
- очистка реестра (ccleaner хорошо работает)
- установить переносимый дистрибутив win32 MikTeX
Теперь проверьте, что ваш путь снова включает в себя путь к каталогу 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
Ответ 2
Я уверен, что вам нужно добавлять пути сюда в свои глобальные переменные окружения. Смотрите: http://statmath.wu.ac.at/software/R/qfin/ и http://www.howtogeek.com/51807/how-to-create-and-use-global-system-environment-variables/