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

使用r/exams生成PDF笔试题目时,cloze题##ANSWERn##渲染异常求助

解决r/exams中Cloze题型PDF渲染占位符的问题

核心解决方法

r/exams默认不会自动将##ANSWERn##渲染为可视化占位符,需通过自定义题目代码或LaTeX模板实现需求:

1. num类型题目:生成空白横线

直接在cloze题目中替换##ANSWERn##为LaTeX下划线命令:

  • 固定长度横线:
The unit price is \rule{2cm}{0.15mm}.
  • 自适应长度横线(填满剩余行宽):
The unit price is \hrulefill.

2. schoice类型题目:生成选择框

两种实现方式:

  • 纯文本视觉方框(无需额外宏包):
[  ] Yes    [  ] No
  • 可勾选LaTeX方框(需在模板中引入宏包):
    先在自定义LaTeX模板的导言区添加:
\usepackage{checkbox}

然后在题目中写:

\checkbox Yes    \checkbox No

3. 批量统一格式:自定义LaTeX模板

如果需要所有cloze题目统一占位符样式,可修改全局模板:

  1. 查看默认模板路径:exams::tex_template()
  2. 复制模板并添加自定义命令到导言区:
\newcommand{\numblank}{\rule{2cm}{0.15mm}}
\newcommand{\choicebox}{[  ]}
  1. 在题目中用自定义命令替代##ANSWERn##,或通过R代码批量替换:
q <- exams::read_exam("my_cloze_question.Rmd")
# 替换num类型占位符
q$question <- gsub("##ANSWER([0-9]+)##", "\\numblank", q$question)
# 替换schoice类型占位符(需区分不同类型时单独处理)
q$question <- gsub("##ANSWER([0-9]+)##", "\\choicebox", q$question)
  1. 生成PDF时指定自定义模板:
exams::exams2pdf("my_cloze_question.Rmd", template = "my_custom_template.tex")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:42:07