You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R exams生成PDF时实现代码高亮?报错求助

解决R/exams生成PDF时代码高亮的LaTeX错误

错误原因

当你在Rmd代码块中使用highlight=TRUE时,pandoc会生成依赖framed、xcolor等LaTeX包的Shaded环境,但R/exams默认的PDF模板未包含这些包,因此触发Environment Shaded undefined错误。

解决方法

方法1:调用exams2pdf时加载所需LaTeX包

直接在函数中通过header参数添加缺失的LaTeX包:

exams::exams2pdf("example.Rmd",
  header = "\\usepackage{framed}\n\\usepackage{xcolor}\n\\usepackage{fancyvrb}")

方法2:修改习题文件的代码块参数

去掉代码块中的highlight=TRUE,保留echo=TRUE即可用R/exams自带的格式化方式显示代码:

Question
========
Some question with code:

```{r echo=TRUE, warning=FALSE, eval=FALSE}
library("blavaan")
HS.model <- 'visual =~ x1 + prior("normal(1,1)")*x2 + x3
             verbal =~ x4 + x5 + x6 '

bfit <- bcfa(model = HS.model,
             data = HolzingerSwineford1939,
             dp = dpriors(lambda = "normal(1,5)"),
             burnin = 500,
             sample = 500,
             n.chains = 4)
Meta-information

exname: some_ex_name
extype: string
exsolution: nil

之后执行原命令即可:
```r
exams::exams2pdf("example.Rmd")

方法3:自定义LaTeX模板(长期方案)

创建自定义LaTeX模板,在预导言部分加入\usepackage{framed}、\usepackage{xcolor}等包,然后在exams2pdf中通过template参数指定该模板,后续生成PDF时即可自动加载所需包。

内容的提问来源于stack exchange,提问作者Sinval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:13:07