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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:23:14