Я прочитал несколько вопросов, перечисленных ниже:
Установить путь к miktex для pdflatex в R
Как установить латекс дорожка для развертки в R?
https://tex.stackexchange.com/questions/267299/how-to-fix-the-sorry-but-c-miktex-pdftex-exe-did-not-succeed-error https://tex.stackexchange.com/questions/429706/rstudio-not-detecting-miktex https://tex.stackexchange.com/questions/231595/rstudio-cant-find-pdflatex-on-windows-7
Приведенный выше список не исчерпывает всего, что я пробовал, включая переустановку RStudio, R и MikTex.
Затем я подумал, что могу отредактировать путь для удаления MikTeX 1.9, который R продолжает вызывать, но не знаю, как это сделать.
Я нашел эту функцию, которая показывает, что я фактически установили правильный путь к MikTex, но R продолжает вызывать MikTeX 1.9:
Sys.which2 <- function(cmd) {
stopifnot(length(cmd) == 1)
if (.Platform$OS.type == "windows") {
suppressWarnings({
pathname <- shell(sprintf("where %s 2> NUL", cmd), intern=TRUE)[1]
})
if (!is.na(pathname)) return(setNames(pathname, cmd))
}
Sys.which(cmd)
}
Различный вывод между Sys.which
и Sys.which2
:
Sys.which2("pdflatex")
pdflatex
"C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64\\pdflatex.exe"
Sys.which("pdflatex")
pdflatex
"C:\\PROGRA~1\\MIKTEX~1.9\\miktex\\bin\\x64\\pdflatex.exe"
Как мне лучше всего решить эту проблему?
Моя идея заключалась в том, чтобы каким-то образом определить, где R находит этот MikTeX 1.9, и заменить его, но я не могу найти его в своей системе и не совсем понимаю, что Sys.which
делает за кулисами.
ИЗМЕНИТЬ
Попытка найти, где 1.9:
stringr::str_detect(unlist(strsplit(Sys.getenv("PATH"),";")),"latex")
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Вывод sys.getenv("PATH"
:
"C: / Program Files / MiKTeX 2.9 / miktex / bin / x64: C: \ Program Files \ R \ R-3.6.2 \ bin \ x64; C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Program Files \ copasi.org \ COPASI 4.22.170 \ bin; C: \ Program Files (x86) \ Intel \ TXE Components \ iCLS \; C: \ Программные файлы \ Intel \ TXE Components \ iCLS \; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; C: \ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Users \ Администратор \ AppData \ Local \ Microsoft \ WindowsApps; C: \ Recovery \ OEM \ Backup \; C: \ Program Files \ Intel \ TXE Components \ DAL \; C: \ Program Files (x86) \ Intel \ TXE Components \ DAL \; C: \ Program Files \ Intel \ TXE Components \ IPT \; C: \ Program Files (x86) \ Intel \ TXE Components \ IPT \; C: \ Program Files \ Intel \ WiFi \ bin \; C: \ Program Files \ Common Files \ Intel \ WirelessCommon \; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; C: \ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \; C: \ WINDOWS \ System32 \ OpenSSH \; E: \ MATLAB \ runtime \ win64; E: \ MATLAB \ bin; C: \ Program Files \ Git \ cmd; C: \ Program Files \ Microsoft SQL Server \ Clie nt SDK \ ODBC \ 130 \ Tools \ Binn \; C: \ Program Files (x86) \ Microsoft SQL Server \ 140 \ Tools \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 140 \ Tools \ Binn \; C : \ Program Files \ Microsoft SQL Server \ 140 \ DTS \ Binn \; C: \ ProgramData \ chocolatey \ bin; C: \ Program Files \ MiKTeX 2.9 \ miktex \ bin \ x64 \; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python38 \ Scripts \; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python38 \; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python36 \ Scripts \; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python36 \; C: \ Users \ мое имя \ Desktop \ wget-1.20.3-win64; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python37 \ Scripts \; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python37 \; C: \ Users \ my name \ AppData \ Local \ Microsoft \ WindowsApps; C: \ Users \ мое имя \ AppData \ Local \ Programs \ Python \ Python37-32; E: \ jdk-12_windows-x64_bin; C: \ Users \ мое имя \ AppData \ Local \ Microsoft \ WindowsApps; C: \ Users \ my name \ Desktop \ adb + - + платформа + инструменты + v28.0.1 "
C:\\PROGRA~1\\MIKTEX~1.9\\miktex\\bin\\x64
, вероятно, находится в вашей переменной PATH Windows. В этом случае вам необходимо удалить его. - person Stéphane Laurent   schedule 28.02.2020"latex"
на"miktex"
в вашей команде R, и вы должны его найти. Чтобы удалить его, перейдите в меню «Пуск» Windows и укажите путь к поиску. Вы должны найти что-то вроде Редактировать переменные среды. В windows 10 это очень чисто. Затем вам нужно удалить эту папку из переменной PATH. - person Stéphane Laurent   schedule 28.02.2020Sys.getenv("PATH")
. - person Stéphane Laurent   schedule 28.02.2020