Knitr не компилирует PDF: "Ошибка в инструментах :: file_path_as_absolute (output_file)"
Я создал отчет в уценке и использую функцию render()
для компиляции кода в PDF файл. Он работал отлично месяц назад, но когда я запускаю код сейчас, он дает мне ошибку:
Latexmk: Это латексмк, Джон Коллинз, 22 апреля 2016 года, версия: 4.45. Результат: выход /Medborgerskabstabeller99.pdf
Ошибка в инструментах :: file_path_as_absolute (output_file): файл 'output/Medborgerskabstabeller99.pdf' не существует
Команда render, которую я использую для создания PDF, выглядит так:
outfile <- file.path("output",paste0("Medborgerskabstabeller99"))
render(input = "Medborgerskabstabeller.Rmd",
encoding = "UTF-8",
output_file = paste0(outfile,".pdf"))
Прежде всего, "Latexmk" -message раньше не появлялся, когда работал код.
Во-вторых, я не знаю, почему в нем говорится, что "Medborgerskabstabeller99.pdf" не существует, когда сказано выше, что он просто создал файл.
Любые предложения по этой проблеме будут высоко оценены!
Ответы
Ответ 1
Лучшим решением является использование tinytex.
install.packages('tinytex')
tinytex::install_tinytex()
Если вам нужно использовать MikTex и установить его уже, откройте консоль MikTex и измените параметр отсутствующего пакета на:
Always install missing packages on the fly
Если вы еще не установили MikTex, тогда при установке обязательно выберите:
Install missing packages: Yes
Когда я изначально был установлен, я выбрал " Ask me first
и он потерпит неудачу. Я попытался изменить настройки MikTex, а также удалить его и просто устроился для tinytex, который был немного более легким для моих нужд.
Исходная нить с решением в нижней части: https://github.com/rstudio/rmarkdown/issues/1285
Ответ 2
У меня была похожая проблема. После поиска в интернете я нашел решение в сообществе r studio
Кажется, ошибка связана с версией 1.9 rmarkdown, поэтому решение - вернуться к версии 1.8.
install.packages("devtools")
library(devtools)
install_version("rmarkdown",version=1.8)
После переустановки, когда вы попытаетесь снова связать, вероятно, вам будет предложено установить какой-то пакет от Miktex. Если у вас есть какие-либо проблемы, проверьте правильность зеркала. Надеюсь это поможет.
Ответ 3
Тем временем проблема, кажется, исправлена в версии для разработки 1.10.11
:
devtools::install_github('rstudio/rmarkdown')
Ответ 4
Просто комментарий к выходу вопрос, как я застрял с этим, тоже: outfile
должен быть абсолютный путь. Я думаю, что dir.exists()
выглядит в локальном рабочем каталоге. Использование ".\\"
в начале помогло в моем случае. В paste0(".\\",outfile,".pdf")
это будет использовать paste0(".\\",outfile,".pdf")
.
Ответ 5
Если вы используете MikTex, возможно, вам не хватает некоторых пакетов (установлены базовые пакеты Miktex). Просто скомпилируйте ваш текстовый файл, чтобы найти недостающие пакеты (ошибки компиляции) и установить их. Тогда свяжите свой документ RMD, и это должно работать.