把 11 个模板里满篇的 × 换成一套连贯的虚构数据,让样张能看出排版效果。
虚构设定(跨模板统一):
- 数字逻辑 / 2025 秋 / 张远航 / 计算机科学与技术学院,教学日历、成绩构成
说明、试卷归档封面、试卷四份互相对得上
- 简历:张远航,1985.03,教授博导,论文/专利/项目/获奖全套虚构
- 年度考核:同一人的 2025 年度考核表,年度总结四段写满
- 执行大纲:刻意不套用上面那套(原件就是《信号与线性系统分析》的课,
强行改课程名会让章节体系、学时分配、思政案例全对不上)
假数据都留肉眼可辨标记:DOI 统一 10.9999/、专利号 ZL209999…、
软著 2024SR99999…、手机 138 0000 0000、邮箱 example.net。
签字/日期/评语栏仍然留空——编了就分不清该改哪儿。
修掉一个既有 bug(填充时才暴露):
年度考核登记表「出生年月」的值从来不显示,连字符都不在 PDF 里。
根因是 tabularray 的 cell{r}{c}={c=n} 里那个 c 是数据行的单元序号、
不是视觉列号,表头三处 c=2 要求该行吃 15 个视觉列而表只有 11 列,
超出部分静默丢弃。迷惑点:写 12 格丢值,写 9 格反而正常。
正解是表头不写 cell{},改用行内 \SetCell[c=n]{c},每行照常写满 11 格。
同时 R0 行原件本就装不下(前六字段 115.76mm,剩 42.20mm 要放
19.68mm 标签 + 17.22mm 值,但列宽被切成 15.31/1.38/25.51),
把标签折两行「出生/年月」解决,列宽一个没改。
README 同步:根 README 与 8 个模板 README 里「一律用 × 占位」的说法
已不成立,统一改为「示例内容全部虚构」,并说明哪些位置仍必须留空。
验证:12 个模板零 error,4 处基线警告未新增;干净副本重编页数一致;
PDF 正文 × 清零;真实信息零泄漏。
99 lines
4.9 KiB
Markdown
99 lines
4.9 KiB
Markdown
# 试卷 —— 试卷与参考答案 LaTeX 模板
|
||
|
||
中国海洋大学期末考试**试卷**与**参考答案及评分标准**的 XeLaTeX 模板。
|
||
两份模板均不含真题,题目与分值都是示意,按教学大纲替换即可。
|
||
|
||
> 样张是《数字逻辑》2025 秋的一份**完整虚构 A 卷**:16 类题型(填空 / 选择 /
|
||
> 判断 / 化简 / 分析 / 设计 / 时序 / 计数器 / 状态机 / 存储器 / ADC-DAC /
|
||
> Verilog / 综合设计 …)+ 对应参考答案与评分标准(8 大题 / 满分 100)。
|
||
> **题目是按数字逻辑课程内容真编的、答案算过是对的**,不是「略」或「×××」——
|
||
> 这样既能看清版式,也能看出各题型的排版难度(比如卡诺图、时序波形图
|
||
> 都是 TikZ 内联画的)。
|
||
>
|
||
> 与 [`课程教学日历/`](../课程教学日历/)、[`成绩构成说明/`](../成绩构成说明/)、
|
||
> [`试卷归档封面/`](../试卷归档封面/) 是同一门课,四份一起看是自洽的。
|
||
> 唯一**故意留空**的是命题人 / 审核人 / 各题得分栏 —— 那是要签字担责的,
|
||
> 编名字上去容易被误当真实署名。
|
||
|
||
## 文件
|
||
|
||
| 文件 | 说明 |
|
||
|---|---|
|
||
| `oucexam.sty` | 试卷版式包。纸张 195×270mm(学校专用试卷纸),含装订栏、成绩表、页脚 |
|
||
| `ouckey.sty` | 答案与评分标准版式包。默认 A4;加 `exampaper` 选项则与试卷同纸同边距 |
|
||
| `试卷题型示例.tex` | 试卷范例,16 类题型,6 页 |
|
||
| `参考答案与评分标准示例.tex` | 答案范例,8 大题 / 满分 100,3 页 |
|
||
|
||
## 编译
|
||
|
||
```bash
|
||
xelatex 试卷题型示例.tex
|
||
xelatex 试卷题型示例.tex # 跑两遍,第二遍才能取到正确总页数(lastpage)
|
||
```
|
||
|
||
必须用 **XeLaTeX**(fontspec + xeCJK),pdflatex 编译不过。
|
||
两份 .tex 都在本目录内自包含,不依赖任何图片文件(示例配图是 TikZ 内联画的)。
|
||
|
||
## 试卷模板要点
|
||
|
||
纸张、页边距、行距、装订栏位置、页脚样式都已在 `oucexam.sty` 里按原卷实测值定好,
|
||
一般**只改 `\examsetup` 那一块**(下例是样张实际用的虚构值):
|
||
|
||
```latex
|
||
\examsetup{
|
||
year = {2025}, % 学年(会自动印成 2025—2026)
|
||
term = {秋}, % 秋 / 春
|
||
course = {数字逻辑},
|
||
college = {信息科学与工程学院},
|
||
type = {A}, % 卷头「试卷类型:A 卷」
|
||
foottype = {}, % 页脚课程名后是否再印类型字母,空=不印
|
||
proposer = {}, % 命题人
|
||
reviewer = {}, % 审核人
|
||
mode = {闭卷},
|
||
allowed = {无}, % 允许携带的物品
|
||
nsec = {16}, % 大题数,成绩表自动按 nsec+1 栏等分
|
||
}
|
||
```
|
||
|
||
- `proposer` / `reviewer` 样张里**故意留空**:命题人、审核人是要签字担责的,
|
||
编一个名字上去容易被误当真实署名。留空时模板自动不印该项、不留空横线。
|
||
- `type` 与 `foottype` 互不影响:前者只管卷头,后者只管页脚。
|
||
原卷 A 卷页脚没印字母、B 卷印了 B,这是出卷人手工差异,不是规则。
|
||
- 大题数变了必须同步改 `nsec`,否则成绩表格子会错位。
|
||
|
||
## 答案模板要点
|
||
|
||
```latex
|
||
\keysetup{
|
||
year = {2025}, term = {秋}, course = {数字逻辑}, type = {A},
|
||
dept = {计算机科学与技术学院}, college = {信息科学与工程学院},
|
||
major = {计算机科学与技术专业 \TNR{2023} 级},
|
||
teacher = {张远航}, examiner = {张远航},
|
||
mode = {闭卷、笔试}, total = {100},
|
||
}
|
||
```
|
||
|
||
如实现在试卷同一张纸上印,把 `\usepackage{ouckey}` 改成 `\usepackage[exampaper]{ouckey}`。
|
||
|
||
体例四条(学校没有统一模板,按国内高校通行做法拟定):
|
||
|
||
1. 抬头信息齐全,留空的项自动不印、不留空横线
|
||
2. 客观题答案集中列(`\objkeys{C,B,A,...}`,每行 6 个自动换行),附统一给分规则
|
||
3. 主观题**内嵌**分步分值(`\pt{2}`),阅卷时批到哪里看到哪里
|
||
4. 每个大题末尾给【评分标准】`\scoring{...}`
|
||
|
||
主观题内嵌分值是有意为之:阅卷是流水作业,分值必须和答案文字贴在一起,
|
||
集中写在末尾会让批卷人来回翻页。
|
||
|
||
文末 `\keytotal{20,10,12,12,12,16,8,10}` 是分值汇总表,用于阅卷前核对
|
||
「各大题相加 = 满分」。签名栏 `\keysign` 只留命题人一处。
|
||
|
||
## 书写注意
|
||
|
||
- 题干内部换行用 `\\*`,**不要用裸 `\\`**。裸 `\\` 语义是"允许在此断页",
|
||
题干会被切到上下两页,学生看到半句话。
|
||
- 数字、英文用 `\TNR{...}` 包起来(内部显式 `\normalfont` 收尾)。
|
||
裸用字体切换命令会让字体状态泄漏到后续段落。
|
||
- `\keyitem{题号}{分值}{答案正文}` 的参数里**不要嵌 `tabular` / `tikzpicture`**——
|
||
这些环境的 `&` 与 `\\` 会被当成参数分隔符,报 `File ended while scanning`。
|
||
表格和图写在 `\keyitem` 之后。 |