Rmd代码运行可找到图片,Knit生成PDF时报错无法找到文件
解决RMD Knit PDF时图片找不到的问题
针对你遇到的R 4.4.0环境下Knit报错找不到图片、但代码块单独运行正常的问题,给你几个可行的解决办法:
强制绑定Knit的工作目录到项目根
在RMD开头的setup代码块里添加如下代码,确保knit时的工作目录和项目根一致:knitr::opts_knit$set(root.dir = rprojroot::find_rstudio_root_file())如果未安装
rprojroot,先运行install.packages("rprojroot")完成安装。优化
here包的路径拼接方式
避免手动用paste0拼接路径,改用here的多参数写法,它会自动适配系统路径分隔符,减少出错概率:knitr::include_graphics( here::here("figures", "species", cur_yr, paste0("place_fig1_", cur_yr, ".png")), dpi = 125 )更新
here包到最新版本
R 4.4.0作为新版本,可能和旧版here存在兼容性问题,执行以下命令更新:install.packages("here")验证路径的正确性
在setup块里添加代码打印实际路径,确认Knit时的路径是否和预期一致:# 打印当前工作目录 cat("Knit时工作目录:", getwd(), "\n") # 生成并打印图片路径 img_path <- here::here("figures", "species", cur_yr, paste0("place_fig1_", cur_yr, ".png")) cat("图片路径:", img_path, "\n") # 检查文件是否存在 cat("文件是否存在:", file.exists(img_path), "\n")Knit时查看控制台输出,就能明确是路径错误还是
cur_yr变量取值异常等问题。
内容的提问来源于stack exchange,提问作者cohonomad
相关产品推荐
相关产品推荐

