如何在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
相关产品推荐
相关产品推荐

