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

R-exams使用问题:如何调整exams2nops()生成试卷的试题区边距?

解决exams2nops()自定义边距仅第一页生效的问题

问题原因

你通过header参数传入的\usepackage[margin=1cm]{geometry}仅在LaTeX导言区生效,exams2nops内部会在文档正式开始(\begin{document})后,调用默认模板的geometry配置覆盖导言区设置,因此只有未被覆盖的第一页会应用自定义边距。

解决方案

  • 方法1:使用内置geometry参数(推荐,适用于exams 2.4-0及以上版本)
    直接给exams2nops的geometry参数传入边距配置,函数会自动将配置全局应用到所有页面,无需手动编写LaTeX命令:
    exams2nops(..., geometry = list(margin = "1cm"))
    
  • 方法2:用\AtBeginDocument钩子覆盖默认配置(兼容所有版本)
    在header参数中添加钩子,让你的边距设置在exams内部配置加载完成后再执行,即可实现全局生效。注意R字符串中的反斜杠需要转义,要写为双反斜杠:
    exams2nops(..., header = "\\usepackage{geometry} \\AtBeginDocument{\\geometry{margin=1cm}}")
    
  • 方法3:自定义NOPS模板(适合需要大幅调整页面格式的场景)
    1. 找到官方默认的NOPS LaTeX模板,默认路径可通过system.file("nops", "nops.tex", package = "exams")获取
    2. 复制模板到你的工作目录,修改模板里的\geometry相关参数为你需要的边距
    3. 调用exams2nops时指定修改后的模板:
    exams2nops(..., template = "your-custom-nops.tex")
    

内容的提问来源于stack exchange,提问作者Piotr Gawroński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:00