七个模板原先分两套做法:幻灯片/fonts(49MB 鸿蒙 18 个字重)与 科技报告/font(92MB,含 5 款方正商业字体),其余模板直接调系统 SimSun/SimHei/KaiTi/FangSong/Times New Roman。换机器就编不出来, 方正系列也不允许随仓库分发。 统一到仓库根的 fonts/ + fonts.tex: - OUC Serif(思源宋体 SC 子集) —— 宋体 - OUC Sans(思源黑体 SC 子集) —— 黑体 - OUC Kai(霞鹜文楷子集) —— 楷体 - Zhuque Fangsong(朱雀仿宋) —— 仿宋 - TeX Gyre Termes —— 西文 Times 等价(度量逐字相同) - HarmonyOS Sans —— 幻灯片/科技报告原有字体 fonts.tex 是唯一允许声明字体的地方,7 个模板全部 \input 它。 字体体积 141MB -> 49MB(去掉重复),全库共用一套最小集合。 几处踩过的坑(均已写进源码注释): - \newCJKfontfamily 与 ctex 默认 fontset 冲突会中断编译,改用 \setCJKfamilyfont + \def - \newfontfamily 缺粗体档会让 \bfseries 静默失效,四档必须全给 - UprightFont= 与主参数不能同时给,否则文件名被拼两次 - Path= 相对编译时工作目录,不是相对 .sty - ×/□/○ 等符号按 Unicode 区段被判成西文,需 \xeCJKDeclareCharClass - 中文斜体的 ItalicFont 与主字体不在同一目录,须在 ItalicFeatures 里单独写 Path/Extension(否则报 OUCKai-Regular cannot be found) 顺带: - 科技报告 report.tex 的字体演示正文改为新字体名(原文写着方正系列) - 试卷归档封面新模板并入本库 - 科技报告 shell 命令框底色改海大蓝(#5 遗留) 验证(7 个模板 8 个 PDF 全量重编 + 逐行 A/B 对照): - 错误 0,缺字 0 - 幻灯片 362 行逐行完全一致,零漂移 - 年度考核登记表 / 劳务发放说明表 / 试卷题型示例 / 参考答案 文本完全一致 - 课程执行大纲 仅 2 处断字连字符差异(throughout、processing), 1 条 6.39pt Overfull 已论证不可见(距纸张右边缘仍有 20.7mm) - 科技报告 内嵌字体方正归零,只剩 OUC Serif/Sans/Kai + Zhuque - 全库正文 857 个非 ASCII 字符,四款中文字体(含粗体)覆盖 100%
试卷 —— 试卷与参考答案 LaTeX 模板
中国海洋大学期末考试试卷与参考答案及评分标准的 XeLaTeX 模板。 两份模板均不含真题,题目与分值都是示意,按教学大纲替换即可。
文件
| 文件 | 说明 |
|---|---|
oucexam.sty |
试卷版式包。纸张 195×270mm(学校专用试卷纸),含装订栏、成绩表、页脚 |
ouckey.sty |
答案与评分标准版式包。默认 A4;加 exampaper 选项则与试卷同纸同边距 |
试卷题型示例.tex |
试卷范例,16 类题型,6 页 |
参考答案与评分标准示例.tex |
答案范例,8 大题 / 满分 100,3 页 |
编译
xelatex 试卷题型示例.tex
xelatex 试卷题型示例.tex # 跑两遍,第二遍才能取到正确总页数(lastpage)
必须用 XeLaTeX(fontspec + xeCJK),pdflatex 编译不过。 两份 .tex 都在本目录内自包含,不依赖任何图片文件(示例配图是 TikZ 内联画的)。
试卷模板要点
纸张、页边距、行距、装订栏位置、页脚样式都已在 oucexam.sty 里按原卷实测值定好,
一般只改 \examsetup 那一块:
\examsetup{
year = {2025}, % 学年(会自动印成 2025—2026)
term = {秋}, % 秋 / 春
course = {课程名称},
college = {××学院},
type = {A}, % 卷头「试卷类型:A 卷」
foottype = {}, % 页脚课程名后是否再印类型字母,空=不印
proposer = {}, % 命题人
reviewer = {}, % 审核人
mode = {闭卷},
allowed = {无}, % 允许携带的物品
nsec = {16}, % 大题数,成绩表自动按 nsec+1 栏等分
}
type与foottype互不影响:前者只管卷头,后者只管页脚。 原卷 A 卷页脚没印字母、B 卷印了 B,这是出卷人手工差异,不是规则。- 大题数变了必须同步改
nsec,否则成绩表格子会错位。
答案模板要点
\keysetup{
year = {2025}, term = {秋}, course = {课程名称}, type = {A},
dept = {××学院}, college = {××学院},
major = {××专业 \TNR{2024} 级},
teacher = {×××}, examiner = {×××},
mode = {闭卷、笔试}, total = {100},
}
如实现在试卷同一张纸上印,把 \usepackage{ouckey} 改成 \usepackage[exampaper]{ouckey}。
体例四条(学校没有统一模板,按国内高校通行做法拟定):
- 抬头信息齐全,留空的项自动不印、不留空横线
- 客观题答案集中列(
\objkeys{C,B,A,...},每行 6 个自动换行),附统一给分规则 - 主观题内嵌分步分值(
\pt{2}),阅卷时批到哪里看到哪里 - 每个大题末尾给【评分标准】
\scoring{...}
主观题内嵌分值是有意为之:阅卷是流水作业,分值必须和答案文字贴在一起, 集中写在末尾会让批卷人来回翻页。
文末 \keytotal{20,10,12,12,12,16,8,10} 是分值汇总表,用于阅卷前核对
「各大题相加 = 满分」。签名栏 \keysign 只留命题人一处。
书写注意
- 题干内部换行用
\\*,不要用裸\\。裸\\语义是"允许在此断页", 题干会被切到上下两页,学生看到半句话。 - 数字、英文用
\TNR{...}包起来(内部显式\normalfont收尾)。 裸用字体切换命令会让字体状态泄漏到后续段落。 \keyitem{题号}{分值}{答案正文}的参数里不要嵌tabular/tikzpicture—— 这些环境的&与\\会被当成参数分隔符,报File ended while scanning。 表格和图写在\keyitem之后。