R Markdown knit失败,pandoc error 83紧急技术求助
问题详情
编译最基础的R Markdown文件时失败,报错提示无法打开pagebreak.lua过滤器文件,返回错误码83。
最小可复现代码
--- title: "Untitled" date: "2022-09-20" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
### 完整报错信息
output file: knit.knit.md
"C:/Users/곽민승/Desktop/Install/RStudio/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS knit.knit.md --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output knit.html --lua-filter "C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --variable bs3=TRUE --section-divs --template "C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmd\h\default.html" --no-highlight --variable highlightjs=1 --variable theme=bootstrap --mathjax --variable "mathjax-url=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --include-in-header "C:\Users\곽민승\AppData\Local\Temp\RtmpolhuTr\rmarkdown-str11e44397877.html"
Error running filter C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmarkdown\lua\pagebreak.lua:
cannot open C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmarkdown\lua\pagebreak.lua: Invalid argument
error: pandoc document conversion failed with error 83
### 环境信息 - Windows系统,用户名为韩文(곽민승) - 已安装`rmarkdown`包 - Pandoc版本2.18 - Rmd文件以UTF-8编码保存 --- ## 解决办法 ### 1. 临时切换R包到纯英文路径(优先尝试) Windows下非ASCII字符路径可能导致pandoc无法正确识别文件位置,临时将R包安装到纯英文路径: ```r # 设置临时库路径(替换为你电脑上的纯英文路径) .libPaths("D:/R_Libraries") # 重新安装rmarkdown到该路径 install.packages("rmarkdown")
安装完成后重新编译Rmd文件。
2. 手动指定Lua过滤器路径
找到rmarkdown包中的两个Lua过滤器文件:
pagebreak.lualatex-div.lua
通常位于C:\Users\곽민승\AppData\Local\R\win-library\4.2\rmarkdown\rmarkdown\lua\目录下,将这两个文件复制到纯英文路径(比如D:/R_Filters/),然后修改Rmd的YAML配置:
--- title: "Untitled" date: "2022-09-20" output: html_document: lua_filters: ["D:/R_Filters/pagebreak.lua", "D:/R_Filters/latex-div.lua"] ---
3. 使用Windows短路径替换非ASCII路径
查看用户名的短路径:
- 打开命令提示符(cmd),运行
dir /x C:\Users\,找到韩文用户名对应的短路径(类似GKWLS~1) - 修改Rmd编译时的pandoc命令,将路径中的
곽민승替换为短路径,或者在R中设置环境变量指定短路径的库位置。
4. 长期解决方案:修改系统用户名为纯英文
如果临时方案有效,建议后续修改Windows用户名为纯英文,彻底避免非ASCII路径带来的兼容性问题。
内容的提问来源于stack exchange,提问作者sfqrtt22

