Files
ouc_latex_template/试卷/README.md
T
laoyang 8984b93ee7 模板内容填充:全库 × 占位换成完整虚构示例,README 表述同步 #11
把 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 正文 × 清零;真实信息零泄漏。
2026-10-27 12:50:02 +08:00

99 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 试卷 —— 试卷与参考答案 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` 之后。