问题描述
使用 RStudio 新建一个 bookdown 示例项目,不做任何修改,默认生成 epub 和 gitbook 没有问题,但生成 pdf 会报错。错误信息为
! File ended while scanning use of \kvsetkeys.
<inserted text>
\par
<*> test-rstudio.texError: LaTeX failed to compile test-rstudio.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See test-rstudio.log for more info.
Execution haltedExited with status 1.
尝试的解决方法
尝试了以下方法,未果。错误信息仍然相同
- 重新安装最新版 R 和 Rstudio 并更新相关 R 包,失败
- 升级 Texlive (MacTeX) 到 2021, 重启电脑后再尝试,失败
- 根据这位坛友的经历,卸载 RStudio 并安装旧版本,失败
- 根据这位坛友的经历,删除本地安装的 pandoc, 失败
按提示检索了下错误信息,似乎出现这个问题是因为少了一个花括号 }
. 遂怀疑问题出在 pandoc template,但我不确定下一步该如何继续排查。
之前一直用 Typora, 写完 md 文件,用 pandoc 转为 latex 后可以直接成功编译。昨天拿起了 bookdown, 发现它已经不认我了。
系统环境
这个问题我在 RStudio v1.4 和 v1.3 均可复现。
> sessionInfo()
R version 4.0.5 (2021-03-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils
[5] datasets methods base
loaded via a namespace (and not attached):
[1] Rcpp_1.0.4.6 rstudioapi_0.11
[3] knitr_1.28 servr_0.21
[5] magrittr_1.5 R6_2.4.1
[7] rlang_0.4.10 stringr_1.4.0
[9] highr_0.8 tools_4.0.5
[11] xfun_0.22 sessioninfo_1.1.1
[13] cli_2.3.1 withr_2.4.1
[15] htmltools_0.4.0 yaml_2.2.1
[17] digest_0.6.25 assertthat_0.2.1
[19] bookdown_0.22 later_1.1.0.1
[21] promises_1.1.0 glue_1.4.0
[23] evaluate_0.14 mime_0.9
[25] rmarkdown_2.7 stringi_1.4.6
[27] compiler_4.0.5 jsonlite_1.6.1
[29] httpuv_1.5.2
.log 文件错误信息
文件很长,见这个 github gist
这里我也有个小疑问,默认的 bookdown 示例文件只包含英文,为啥还是用的 XeTeX?