如何在R/exams的exams2nops()中仅修改第二页起的字体?
解决R/exams中exams2nops()的字体与首页logo自定义需求
步骤1:导出NOPS模板文件
先把默认模板导出到本地目录,方便后续修改:
exams::make_nops_template(dir = "custom_nops")
执行后会在当前工作目录生成custom_nops文件夹,包含所有LaTeX模板文件。
步骤2:替换首页logo(保留无衬线字体)
打开custom_nops/header.tex,找到logo对应的LaTeX代码段,替换成你的自定义logo路径。示例:
% 原默认logo代码 % \includegraphics[width=0.2\textwidth]{nops.pdf} % 替换为自定义logo \includegraphics[width=0.2\textwidth]{your_logo.pdf}
注意首页的无衬线字体设置保持原样,避免影响后续扫描识别。
步骤3:设置第二页及以后的字体为Computer Modern Roman
打开custom_nops/preamble.tex,添加以下LaTeX代码,实现从第二页开始切换字体:
% 导入afterpage包实现延迟执行字体切换 \usepackage{afterpage} % 从第二页起切换文本和数学字体为Computer Modern Roman \afterpage{ \renewcommand{\familydefault}{\rmdefault} \mathversion{normal} }
\familydefault{\rmdefault}:将文本字体切换为默认罗马字体(即Computer Modern Roman)\mathversion{normal}:同步把数学字体切换为Computer Modern Roman
步骤4:使用自定义模板生成PDF
调用exams2nops()时指定自定义模板目录:
exams2nops("deriv2.Rmd", template = "custom_nops")
验证效果
生成PDF后检查:
- 首页logo已替换,字体仍为无衬线,不影响扫描
- 第二页及以后的正文、数学公式均使用Computer Modern Roman字体
内容的提问来源于stack exchange,提问作者Bruce James
相关产品推荐
相关产品推荐

